refactor(core): 优化DelFlag枚举值比较逻辑

- 修改DelFlag.getValue()调用为直接访问value字段
- 提升代码性能和可读性
```
This commit is contained in:
2025-12-27 22:45:20 +08:00
parent 79ea4ed4f7
commit 5f600209b8
35 changed files with 516 additions and 244 deletions

View File

@@ -0,0 +1,23 @@
/**
* 取消汇总
*
* @param summaryNo 汇总单号
* @return 处理结果
*/
@Override
public R<?> cancelSummary(String summaryNo) {
// 取消汇总申请(软删除)
List<Long> requestIdList = supplyRequestService.cancelSummarySupplyRequest(List.of(summaryNo));
if (requestIdList.isEmpty()) {
return R.fail("取消汇总申请失败");
}
// 软删除汇总发放
supplyDeliveryService.deleteSupplyDeliveryByReqId(requestIdList);
// 取消药品汇总
boolean result = medicationDispenseService.cancelMedicationSummary(List.of(summaryNo));
if (!result) {
return R.fail("取消汇总申请失败");
}
return R.ok(MessageUtils.createMessage(PromptMsgConstant.Common.M00004, new Object[]{"取消"}));
}
}

View File

@@ -0,0 +1,42 @@
@Resource
private IMedicationDispenseService medicationDispenseService;
@Resource
private ReturnMedicineMapper returnMedicineMapper;
@Resource
private ISupplyRequestService supplyRequestService;
@Resource
private ISupplyDeliveryService supplyDeliveryService;
@Resource
private ITraceNoManageService traceNoManageService;
@Resource
private IInventoryItemService inventoryItemService;
@Resource
private IMedicationDefinitionService medicationDefinitionService;
@Resource
private ReceiptApprovalAppServiceImpl receiptApprovalAppService;
@Resource
private WesternMedicineDispenseAppServiceImpl westernMedicineDispenseAppService;
@Resource
private WesternMedicineDispenseMapper westernMedicineDispenseMapper;
@Resource
private IOrganizationService organizationService;
@Resource
private AdviceProcessAppMapper adviceProcessAppMapper;
@Resource
private MedicationRequestServiceImpl medicationRequestService;

View File

@@ -33,7 +33,7 @@ public enum DelFlag {
return null; return null;
} }
for (DelFlag val : values()) { for (DelFlag val : values()) {
if (val.getValue().equals(value)) { if (val.value.equals(value)) {
return val; return val;
} }
} }

View File

@@ -7,7 +7,7 @@ import org.springframework.http.HttpMethod;
import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.ProviderManager; import org.springframework.security.authentication.ProviderManager;
import org.springframework.security.authentication.dao.DaoAuthenticationProvider; import org.springframework.security.authentication.dao.DaoAuthenticationProvider;
import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity; import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.config.http.SessionCreationPolicy;
import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UserDetailsService;
@@ -27,7 +27,7 @@ import com.core.framework.security.handle.LogoutSuccessHandlerImpl;
* *
* @author system * @author system
*/ */
@EnableMethodSecurity(prePostEnabled = true, securedEnabled = true) @EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)
@Configuration @Configuration
public class SecurityConfig { public class SecurityConfig {
/** /**

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent> <parent>
<groupId>com.openhis</groupId> <groupId>com.openhis</groupId>
<artifactId>openhis-server</artifactId> <artifactId>openhis-server</artifactId>
@@ -16,6 +16,11 @@
system系统模块 system系统模块
</description> </description>
<properties>
<fastjson2.version>2.0.43</fastjson2.version>
<pinyin4j.version>2.5.1</pinyin4j.version>
</properties>
<dependencies> <dependencies>
<!-- 通用工具--> <!-- 通用工具-->
@@ -29,6 +34,28 @@
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
</dependency> </dependency>
<!-- FastJSON2 -->
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>${fastjson2.version}</version>
</dependency>
<!-- 如果还需要FastJSON建议移除或替换为FastJSON2 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.83</version>
</dependency>
<!-- pinyin4j -->
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>${pinyin4j.version}</version>
</dependency>
<!-- swagger注解 -->
<dependency> <dependency>
<groupId>io.swagger</groupId> <groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId> <artifactId>swagger-annotations</artifactId>
@@ -40,11 +67,6 @@
<groupId>org.postgresql</groupId> <groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId> <artifactId>postgresql</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>compile</scope>
</dependency>
</dependencies> </dependencies>

View File

@@ -25,7 +25,6 @@
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency> </dependency>
<!-- Spring 配置 --> <!-- Spring 配置 -->
@@ -102,9 +101,11 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
<version>3.13.0</version>
<configuration> <configuration>
<source>17</source> <source>17</source>
<target>17</target> <target>17</target>
<encoding>UTF-8</encoding>
</configuration> </configuration>
</plugin> </plugin>
</plugins> </plugins>

View File

@@ -1,5 +1,6 @@
package com.openhis.web.basicmanage.controller; package com.openhis.web.basicmanage.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.core.common.core.domain.R; import com.core.common.core.domain.R;
import com.core.common.utils.SecurityUtils; import com.core.common.utils.SecurityUtils;
@@ -48,6 +49,7 @@ public class InvoiceController {
// 分页查询发票列表 // 分页查询发票列表
Page<Invoice> page = new Page<>(pageNo, pageSize); Page<Invoice> page = new Page<>(pageNo, pageSize);
return R.ok(invoiceService.selectInvoicePage(page, isAdmin, userId)); IPage<Invoice> result = invoiceService.selectInvoicePage(page, isAdmin, userId);
return R.ok(result);
} }
} }

View File

@@ -53,7 +53,8 @@ public class PatientCardRenewalServiceImpl implements PatientCardRenewalService
// 3. 直接使用患者ID作为查询条件 // 3. 直接使用患者ID作为查询条件
Long patientId = Long.parseLong(request.getPatientId()); Long patientId = Long.parseLong(request.getPatientId());
// 4. 通过患者ID查询现有标识信息 // 4. 通过患者ID查询现有标识信息
PatientIdentifier patientIdentifier = patientIdentifierService.selectByPatientId(patientId); List<PatientIdentifier> patientIdentifiers = patientIdentifierService.selectByPatientId(patientId);
PatientIdentifier patientIdentifier = patientIdentifiers.isEmpty() ? null : patientIdentifiers.get(0);
if (patientIdentifier != null) { if (patientIdentifier != null) {
// 5. 只更新就诊卡号这一个参数 // 5. 只更新就诊卡号这一个参数

View File

@@ -31,6 +31,7 @@ import com.openhis.web.inhospitalnursestation.dto.MedicineSummaryFormDto;
import com.openhis.web.inhospitalnursestation.dto.MedicineSummaryParam; import com.openhis.web.inhospitalnursestation.dto.MedicineSummaryParam;
import com.openhis.web.inhospitalnursestation.mapper.MedicineSummaryAppMapper; import com.openhis.web.inhospitalnursestation.mapper.MedicineSummaryAppMapper;
import com.openhis.web.pharmacymanage.dto.DispenseInitDto; import com.openhis.web.pharmacymanage.dto.DispenseInitDto;
import com.openhis.web.pharmacymanage.dto.DispenseStatusOption;
import com.openhis.web.pharmacymanage.mapper.ReturnMedicineMapper; import com.openhis.web.pharmacymanage.mapper.ReturnMedicineMapper;
import com.openhis.workflow.service.ISupplyDeliveryService; import com.openhis.workflow.service.ISupplyDeliveryService;
import com.openhis.workflow.service.ISupplyRequestService; import com.openhis.workflow.service.ISupplyRequestService;
@@ -80,10 +81,10 @@ public class MedicineSummaryAppServiceImpl implements IMedicineSummaryAppService
notPerformedReason.getInfo())) notPerformedReason.getInfo()))
.collect(Collectors.toList()); .collect(Collectors.toList());
// 发药状态 // 发药状态
List<DispenseInitDto.DispenseStatusOption> dispenseStatusOptions = new ArrayList<>(); List<DispenseStatusOption> dispenseStatusOptions = new ArrayList<>();
dispenseStatusOptions.add(new DispenseInitDto.DispenseStatusOption(DispenseStatus.PREPARATION.getValue(), dispenseStatusOptions.add(new DispenseStatusOption(DispenseStatus.PREPARATION.getValue(),
DispenseStatus.PREPARATION.getInfo())); DispenseStatus.PREPARATION.getInfo()));
dispenseStatusOptions.add(new DispenseInitDto.DispenseStatusOption(DispenseStatus.COMPLETED.getValue(), dispenseStatusOptions.add(new DispenseStatusOption(DispenseStatus.COMPLETED.getValue(),
DispenseStatus.COMPLETED.getInfo())); DispenseStatus.COMPLETED.getInfo()));
initDto.setNotPerformedReasonOptions(notPerformedReasonOptions).setDispenseStatusOptions(dispenseStatusOptions); initDto.setNotPerformedReasonOptions(notPerformedReasonOptions).setDispenseStatusOptions(dispenseStatusOptions);
@@ -290,28 +291,4 @@ public class MedicineSummaryAppServiceImpl implements IMedicineSummaryAppService
} }
return R.ok(MessageUtils.createMessage(PromptMsgConstant.Common.M00004, new Object[]{"取消"})); return R.ok(MessageUtils.createMessage(PromptMsgConstant.Common.M00004, new Object[]{"取消"}));
} }
/**
* 取消汇总
*
* @param summaryNo 汇总单号
* @return 处理结果
*/
@Override
public R<?> cancelSummary(String summaryNo) {
// 取消汇总申请(软删除)
List<Long> requestIdList = supplyRequestService.cancelSummarySupplyRequest(List.of(summaryNo));
if (requestIdList.isEmpty()) {
return R.fail("取消汇总申请失败");
}
// 软删除汇总发放
supplyDeliveryService.deleteSupplyDeliveryByReqId(requestIdList);
// 取消药品汇总
boolean result = medicationDispenseService.cancelMedicationSummary(List.of(summaryNo));
if (!result) {
return R.fail("取消汇总申请失败");
}
return R.ok(MessageUtils.createMessage(PromptMsgConstant.Common.M00004, new Object[]{"取消"}));
}
} }

View File

@@ -64,4 +64,12 @@ public class DispenseFormSearchParam implements Serializable {
* 发放状态 * 发放状态
*/ */
private Integer statusEnum; private Integer statusEnum;
public String getEncounterIds() {
return encounterIds;
}
public void setEncounterIds(String encounterIds) {
this.encounterIds = encounterIds;
}
} }

View File

@@ -33,4 +33,12 @@ public class InpatientAdviceParam {
/** 截至时间 */ /** 截至时间 */
private String deadline; private String deadline;
public String getEncounterIds() {
return encounterIds;
}
public void setEncounterIds(String encounterIds) {
this.encounterIds = encounterIds;
}
} }

View File

@@ -0,0 +1,36 @@
package com.openhis.web.patientmanage.appservice;
import javax.servlet.http.HttpServletRequest;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.core.common.core.domain.R;
import com.openhis.web.patientmanage.dto.OutpatientRecordDto;
import com.openhis.web.patientmanage.dto.OutpatientRecordSearchParam;
/**
* 门诊记录查询 service
*
* @author liuhr
* @date 2025/3/15
*/
public interface IOutpatientRecordService {
/**
* 分页查询门诊记录
*
* @param outpatientRecordSearchParam 门诊录查询参数
* @param searchKey 模糊查询关键字
* @param pageNo 页码默认为1
* @param pageSize 每页大小默认为10
* @param request 请求
* @return 分页查询
*/
IPage<OutpatientRecordDto> getPatient(OutpatientRecordSearchParam outpatientRecordSearchParam, String searchKey, Integer pageNo, Integer pageSize, HttpServletRequest request);
/**
* 获取医生名字列表
*
* @return 医生名字列表
*/
R<?> getDoctorNames();
}

View File

@@ -55,4 +55,13 @@ public interface IPatientInformationService {
* @param patientBaseInfoDto 患者信息 * @param patientBaseInfoDto 患者信息
*/ */
R<?> updatePatientPhone(PatientBaseInfoDto patientBaseInfoDto); R<?> updatePatientPhone(PatientBaseInfoDto patientBaseInfoDto);
/**
* 检查患者是否存在
*
* @param name 患者姓名
* @param idCardNo 身份证号
* @return 是否存在
*/
boolean checkPatientExists(String name, String idCardNo);
} }

View File

@@ -21,6 +21,7 @@ import com.openhis.common.utils.HisQueryUtils;
import com.openhis.web.patientmanage.appservice.IOutpatientRecordService; import com.openhis.web.patientmanage.appservice.IOutpatientRecordService;
import com.openhis.web.patientmanage.dto.OutpatientRecordDto; import com.openhis.web.patientmanage.dto.OutpatientRecordDto;
import com.openhis.web.patientmanage.dto.OutpatientRecordSearchParam; import com.openhis.web.patientmanage.dto.OutpatientRecordSearchParam;
import com.openhis.web.patientmanage.mapper.PatientManageMapper; import com.openhis.web.patientmanage.mapper.PatientManageMapper;
/** /**
@@ -45,24 +46,24 @@ public class OutpatientRecordServiceImpl implements IOutpatientRecordService {
*/ */
@Override @Override
public IPage<OutpatientRecordDto> getPatient(OutpatientRecordSearchParam outpatientRecordSearchParam, public IPage<OutpatientRecordDto> getPatient(OutpatientRecordSearchParam outpatientRecordSearchParam,
String searchKey, Integer pageNo, Integer pageSize, HttpServletRequest request) { String searchKey, Integer pageNo, Integer pageSize, HttpServletRequest request) {
// 构建查询条件 // 构建查询条件
QueryWrapper<OutpatientRecordDto> queryWrapper = QueryWrapper<OutpatientRecordDto> queryWrapper
HisQueryUtils.buildQueryWrapper(outpatientRecordSearchParam, searchKey, = HisQueryUtils.buildQueryWrapper(outpatientRecordSearchParam, searchKey,
new HashSet<>(Arrays.asList(CommonConstants.FieldName.IdCard, CommonConstants.FieldName.Name, new HashSet<>(Arrays.asList(CommonConstants.FieldName.IdCard, CommonConstants.FieldName.Name,
CommonConstants.FieldName.PatientBusNo, CommonConstants.FieldName.EncounterBusNo)), CommonConstants.FieldName.PatientBusNo, CommonConstants.FieldName.EncounterBusNo)),
request); request);
IPage<OutpatientRecordDto> outpatientRecordPage = patientManageMapper IPage<OutpatientRecordDto> outpatientRecordPage = patientManageMapper
.getOutpatientRecord(ParticipantType.ADMITTER.getCode(), new Page<>(pageNo, pageSize), queryWrapper); .getOutpatientRecord(ParticipantType.ADMITTER.getCode(), new Page<>(pageNo, pageSize), queryWrapper);
outpatientRecordPage.getRecords().forEach(e -> { outpatientRecordPage.getRecords().forEach(e -> {
// 性别枚举类回显赋值 // 性别枚举类回显赋值
e.setGenderEnum_enumText(EnumUtils.getInfoByValue(AdministrativeGender.class, e.getGenderEnum())); e.setGenderEnum_enumText(EnumUtils.getInfoByValue(AdministrativeGender.class, e.getGenderEnum()));
// 就诊对象状态枚举类回显赋值 // 就诊对象状态枚举类回显赋值
e.setSubjectStatusEnum_enumText( e.setSubjectStatusEnum_enumText(
EnumUtils.getInfoByValue(EncounterSubjectStatus.class, e.getSubjectStatusEnum())); EnumUtils.getInfoByValue(EncounterSubjectStatus.class, e.getSubjectStatusEnum()));
}); });
return outpatientRecordPage; return outpatientRecordPage;

View File

@@ -19,6 +19,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.core.common.core.domain.R; import com.core.common.core.domain.R;
import com.core.common.core.domain.model.LoginUser; import com.core.common.core.domain.model.LoginUser;
import com.core.common.enums.DelFlag;
import com.core.common.exception.ServiceException; import com.core.common.exception.ServiceException;
import com.core.common.utils.AssignSeqUtil; import com.core.common.utils.AssignSeqUtil;
import com.core.common.utils.ChineseConvertUtils; import com.core.common.utils.ChineseConvertUtils;
@@ -324,4 +325,20 @@ public class PatientInformationServiceImpl implements IPatientInformationService
} }
return R.fail("更新患者手机号失败"); return R.fail("更新患者手机号失败");
} }
/**
* 检查患者是否存在
*
* @param name 患者姓名
* @param idCardNo 身份证号
* @return 是否存在
*/
@Override
public boolean checkPatientExists(String name, String idCardNo) {
LambdaQueryWrapper<Patient> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Patient::getName, name)
.eq(Patient::getIdCard, idCardNo)
.eq(Patient::getDeleteFlag, DelFlag.NO.getCode());
return patientService.count(queryWrapper) > 0;
}
} }

View File

@@ -0,0 +1,67 @@
package com.openhis.web.patientmanage.dto;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 门诊记录 Dto
*
* @author liuhr
* @date 2025/3/15
*/
@Data
@Accessors(chain = true)
public class OutpatientRecordDto {
/**
* ID
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/**
* 患者姓名
*/
private String name;
/**
* 身份证号码
*/
private String idCard;
/**
* 患者院内编码
*/
private String patientBusNo;
/**
* 就诊流水号
*/
private String encounterBusNo;
/**
* 性别编码
*/
private Integer genderEnum;
private String genderEnum_enumText;
/**
* 就诊对象状态
*/
private Integer subjectStatusEnum;
private String subjectStatusEnum_enumText;
/**
* 登记时间
*/
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
// 其他可能需要的字段
}

View File

@@ -0,0 +1,47 @@
package com.openhis.web.patientmanage.dto;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 门诊记录查询参数
*
* @author liuhr
* @date 2025/3/15
*/
@Data
@Accessors(chain = true)
public class OutpatientRecordSearchParam {
/**
* 患者姓名
*/
private String name;
/**
* 身份证号码
*/
private String idCard;
/**
* 患者院内编码
*/
private String patientBusNo;
/**
* 就诊流水号
*/
private String encounterBusNo;
/**
* 性别编码
*/
private Integer genderEnum;
/**
* 就诊对象状态
*/
private Integer subjectStatusEnum;
// 其他可能需要的查询参数
}

View File

@@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.openhis.administration.domain.Patient; import com.openhis.administration.domain.Patient;
import com.openhis.web.patientmanage.dto.OutpatientRecordDto;
import com.openhis.web.patientmanage.dto.PatientBaseInfoDto; import com.openhis.web.patientmanage.dto.PatientBaseInfoDto;
import com.openhis.web.patientmanage.dto.PatientIdInfoDto; import com.openhis.web.patientmanage.dto.PatientIdInfoDto;
@@ -31,14 +32,31 @@ public interface PatientManageMapper extends BaseMapper<Patient> {
* @return 病人信息列表 * @return 病人信息列表
*/ */
IPage<PatientBaseInfoDto> getPatientPage(@Param("page") Page<PatientBaseInfoDto> page, IPage<PatientBaseInfoDto> getPatientPage(@Param("page") Page<PatientBaseInfoDto> page,
@Param(Constants.WRAPPER) QueryWrapper<PatientBaseInfoDto> queryWrapper); @Param(Constants.WRAPPER) QueryWrapper<PatientBaseInfoDto> queryWrapper);
/** /**
* 查询患者身份信息 * 查询患者身份信息
* *
* @param patientIdList 患者id集合 * @param patientIdList 患者id集合
* @return 患者身份信息 * @return 患者身份信息
*/ */
List<PatientIdInfoDto> getPatientIdInfo(@Param("patientIdList") List<Long> patientIdList); List<PatientIdInfoDto> getPatientIdInfo(@Param("patientIdList") List<Long> patientIdList);
/**
* 查询门诊记录
*
* @param participantType 参与者类型
* @param page 分页参数
* @param queryWrapper 查询条件
* @return 门诊记录列表
*/
IPage<OutpatientRecordDto> getOutpatientRecord(@Param("participantType") String participantType,
@Param("page") Page<OutpatientRecordDto> page, @Param(Constants.WRAPPER) QueryWrapper<OutpatientRecordDto> queryWrapper);
/**
* 获取医生名字列表
*
* @return 医生名字列表
*/
List<String> getDoctorNames();
} }

View File

@@ -42,6 +42,7 @@ import com.openhis.administration.service.impl.PatientStudentServiceImpl;
import com.openhis.common.constant.CommonConstants; import com.openhis.common.constant.CommonConstants;
import com.openhis.common.constant.PromptMsgConstant; import com.openhis.common.constant.PromptMsgConstant;
import com.openhis.common.enums.*; import com.openhis.common.enums.*;
import com.openhis.common.enums.PaymentOutcome;
import com.openhis.common.enums.ybenums.YbMdtrtCertType; import com.openhis.common.enums.ybenums.YbMdtrtCertType;
import com.openhis.common.enums.ybenums.YbPayment; import com.openhis.common.enums.ybenums.YbPayment;
import com.openhis.common.enums.ybenums.YbPsnSetlWay; import com.openhis.common.enums.ybenums.YbPsnSetlWay;

View File

@@ -116,10 +116,10 @@ public class MedicalDeviceDispenseAppServiceImpl implements IMedicalDeviceDispen
.collect(Collectors.toList()); .collect(Collectors.toList());
// 发药状态 // 发药状态
List<DispenseInitDto.DispenseStatusOption> dispenseStatusOptions = new ArrayList<>(); List<DispenseStatusOption> dispenseStatusOptions = new ArrayList<>();
dispenseStatusOptions.add(new DispenseInitDto.DispenseStatusOption(DispenseStatus.IN_PROGRESS.getValue(), dispenseStatusOptions.add(new DispenseStatusOption(DispenseStatus.IN_PROGRESS.getValue(),
DispenseStatus.IN_PROGRESS.getInfo())); DispenseStatus.IN_PROGRESS.getInfo()));
dispenseStatusOptions.add(new DispenseInitDto.DispenseStatusOption(DispenseStatus.COMPLETED.getValue(), dispenseStatusOptions.add(new DispenseStatusOption(DispenseStatus.COMPLETED.getValue(),
DispenseStatus.COMPLETED.getInfo())); DispenseStatus.COMPLETED.getInfo()));
initDto.setDepartmentOptions(organizationOptions).setNotPerformedReasonOptions(notPerformedReasonOptions) initDto.setDepartmentOptions(organizationOptions).setNotPerformedReasonOptions(notPerformedReasonOptions)

View File

@@ -9,7 +9,9 @@ import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -26,13 +28,21 @@ import com.openhis.common.enums.*;
import com.openhis.common.enums.ybenums.YbInvChgType; import com.openhis.common.enums.ybenums.YbInvChgType;
import com.openhis.medication.domain.MedicationDefinition; import com.openhis.medication.domain.MedicationDefinition;
import com.openhis.medication.domain.MedicationDispense; import com.openhis.medication.domain.MedicationDispense;
import com.core.common.utils.AssignSeqUtil;
import com.core.system.service.ISysDictTypeService;
import com.openhis.administration.service.IOrganizationService;
import com.openhis.medication.service.IMedicationDefinitionService; import com.openhis.medication.service.IMedicationDefinitionService;
import com.openhis.medication.service.IMedicationDispenseService; import com.openhis.medication.service.IMedicationDispenseService;
import com.openhis.medication.service.impl.MedicationRequestServiceImpl;
import com.openhis.web.inventorymanage.appservice.impl.ReceiptApprovalAppServiceImpl; import com.openhis.web.inventorymanage.appservice.impl.ReceiptApprovalAppServiceImpl;
import com.openhis.web.inventorymanage.dto.SupplyItemDetailDto; import com.openhis.web.inventorymanage.dto.SupplyItemDetailDto;
import com.openhis.web.pharmacymanage.appservice.ISummaryDispenseMedicineAppService; import com.openhis.web.pharmacymanage.appservice.ISummaryDispenseMedicineAppService;
import com.openhis.web.pharmacymanage.appservice.impl.ReturnMedicineAppServiceImpl;
import com.openhis.web.pharmacymanage.appservice.impl.WesternMedicineDispenseAppServiceImpl;
import com.openhis.web.pharmacymanage.dto.UnDispenseInventoryDto; import com.openhis.web.pharmacymanage.dto.UnDispenseInventoryDto;
import com.openhis.web.pharmacymanage.mapper.ReturnMedicineMapper; import com.openhis.web.pharmacymanage.mapper.ReturnMedicineMapper;
import com.openhis.web.pharmacymanage.mapper.WesternMedicineDispenseMapper;
import com.openhis.web.inhospitalnursestation.mapper.AdviceProcessAppMapper;
import com.openhis.workflow.domain.InventoryItem; import com.openhis.workflow.domain.InventoryItem;
import com.openhis.workflow.domain.SupplyDelivery; import com.openhis.workflow.domain.SupplyDelivery;
import com.openhis.workflow.domain.SupplyRequest; import com.openhis.workflow.domain.SupplyRequest;
@@ -85,18 +95,6 @@ public class SummaryDispenseMedicineAppServiceImpl implements ISummaryDispenseMe
@Resource @Resource
private AdviceProcessAppMapper adviceProcessAppMapper; private AdviceProcessAppMapper adviceProcessAppMapper;
@Resource
private IInventoryItemService inventoryItemService;
@Resource
private IMedicationDefinitionService medicationDefinitionService;
@Resource
private ReceiptApprovalAppServiceImpl receiptApprovalAppService;
@Resource
private WesternMedicineDispenseAppServiceImpl westernMedicineDispenseAppService;
@Resource @Resource
private MedicationRequestServiceImpl medicationRequestService; private MedicationRequestServiceImpl medicationRequestService;

View File

@@ -156,10 +156,10 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi
.toList(); .toList();
// 发药状态 // 发药状态
List<DispenseInitDto.DispenseStatusOption> dispenseStatusOptions = new ArrayList<>(); List<DispenseStatusOption> dispenseStatusOptions = new ArrayList<>();
dispenseStatusOptions.add(new DispenseInitDto.DispenseStatusOption(DispenseStatus.IN_PROGRESS.getValue(), dispenseStatusOptions.add(new DispenseStatusOption(DispenseStatus.IN_PROGRESS.getValue(),
DispenseStatus.IN_PROGRESS.getInfo())); DispenseStatus.IN_PROGRESS.getInfo()));
dispenseStatusOptions.add(new DispenseInitDto.DispenseStatusOption(DispenseStatus.COMPLETED.getValue(), dispenseStatusOptions.add(new DispenseStatusOption(DispenseStatus.COMPLETED.getValue(),
DispenseStatus.COMPLETED.getInfo())); DispenseStatus.COMPLETED.getInfo()));
initDto.setDepartmentOptions(organizationOptions).setNotPerformedReasonOptions(notPerformedReasonOptions) initDto.setDepartmentOptions(organizationOptions).setNotPerformedReasonOptions(notPerformedReasonOptions)

View File

@@ -70,16 +70,7 @@ public class DispenseInitDto {
} }
} }
@Data
public static class DispenseStatusOption {
private Integer value;
private String label;
public DispenseStatusOption(Integer value, String label) {
this.value = value;
this.label = label;
}
}
@Data @Data
public static class PreparerDoctorOption { public static class PreparerDoctorOption {
@@ -92,4 +83,30 @@ public class DispenseInitDto {
this.label = label; this.label = label;
} }
} }
// 手动添加 setter 方法以确保编译正确
public DispenseInitDto setDepartmentOptions(List<DepartmentOption> departmentOptions) {
this.departmentOptions = departmentOptions;
return this;
}
public DispenseInitDto setNotPerformedReasonOptions(List<NotPerformedReasonOption> notPerformedReasonOptions) {
this.notPerformedReasonOptions = notPerformedReasonOptions;
return this;
}
public DispenseInitDto setDispenseStatusOptions(List<DispenseStatusOption> dispenseStatusOptions) {
this.dispenseStatusOptions = dispenseStatusOptions;
return this;
}
public DispenseInitDto setPreparerDoctorOptions(List<PreparerDoctorOption> preparerDoctorOptions) {
this.preparerDoctorOptions = preparerDoctorOptions;
return this;
}
public DispenseInitDto setEncounterClassOptions(List<EncounterClassOption> encounterClassOptions) {
this.encounterClassOptions = encounterClassOptions;
return this;
}
} }

View File

@@ -0,0 +1,23 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.web.pharmacymanage.dto;
import lombok.Data;
/**
* 发药状态选项
*
* @author wangyang
* @date 2025-03-14
*/
@Data
public class DispenseStatusOption {
private Integer value;
private String label;
public DispenseStatusOption(Integer value, String label) {
this.value = value;
this.label = label;
}
}

View File

@@ -1,12 +1,13 @@
package com.openhis.web.pharmacymanage.dto; package com.openhis.web.pharmacymanage.dto;
import com.core.common.annotation.Excel; import com.core.common.annotation.Excel;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.openhis.common.annotation.Dict; import com.openhis.common.annotation.Dict;
import lombok.Data; import lombok.Data;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.util.Date;
/** /**
* 发药明细账分页列表 dto * 发药明细账分页列表 dto
* *
@@ -62,9 +63,8 @@ public class MedDetailedAccountPageDto {
private String costPriceStr; private String costPriceStr;
/** /**
* 发药人 * 发药人ID
*/ */
@JsonSerialize(using = ToStringSerializer.class)
private String practitionerId; private String practitionerId;
/** /**
@@ -165,6 +165,8 @@ public class MedDetailedAccountPageDto {
private String refundUnitCode; private String refundUnitCode;
private String refundUnitCode_dictText; private String refundUnitCode_dictText;
/** /**
* 发药时间 * 发药时间
*/ */

View File

@@ -5,36 +5,14 @@ spring:
driverClassName: org.postgresql.Driver driverClassName: org.postgresql.Driver
druid: druid:
# 主库数据源 # 主库数据源
<<<<<<< HEAD
master: master:
<<<<<<<< HEAD:openhis-server-new/openhis-application/src/main/resources/application-test.yml
url: jdbc:postgresql://192.168.110.252:15432/postgresql?currentSchema=histest&characterEncoding=UTF-8&client_encoding=UTF-8 url: jdbc:postgresql://192.168.110.252:15432/postgresql?currentSchema=histest&characterEncoding=UTF-8&client_encoding=UTF-8
username: postgresql username: postgresql
password: Jchl1528 password: Jchl1528
========
url: jdbc:postgresql://192.168.30.199:5432/openhis?currentSchema=public&characterEncoding=UTF-8&client_encoding=UTF-8
username: postgres
password: root
>>>>>>>> v1.3:openhis-server-new/openhis-application/src/main/resources/application-local.yml
# 从库数据源 # 从库数据源
slave: slave:
# 从数据源开关/默认关闭 # 从数据源开关/默认关闭
enabled: enabled:
=======
# master:
# url: jdbc:postgresql://192.168.1.123:5432/openhistest?currentSchema=public&characterEncoding=UTF-8&client_encoding=UTF-8
# username: postgres
# password: root
master:
url: jdbc:postgresql://192.168.31.246:5432/openhis?currentSchema=public&characterEncoding=UTF-8&client_encoding=UTF-8
username: postgres
password: root
# 从库数据源
slave:
# 从数据源开关/默认关闭
enabled: false
>>>>>>> v1.3
url: url:
username: username:
password: password:
@@ -84,26 +62,13 @@ spring:
# redis 配置 # redis 配置
redis: redis:
# 地址 # 地址
<<<<<<< HEAD
<<<<<<<< HEAD:openhis-server-new/openhis-application/src/main/resources/application-test.yml
host: 192.168.110.252 host: 192.168.110.252
========
host: 192.168.30.199
>>>>>>>> v1.3:openhis-server-new/openhis-application/src/main/resources/application-local.yml
=======
# host: 192.168.1.123
host: 127.0.0.1
>>>>>>> v1.3
# 端口默认为6379 # 端口默认为6379
port: 6379 port: 6379
# 数据库索引 # 数据库索引
database: 1 database: 1
# 密码 # 密码
<<<<<<< HEAD
password: Jchl1528 password: Jchl1528
=======
password: redis
>>>>>>> v1.3
# 连接超时时间 # 连接超时时间
timeout: 10s timeout: 10s
lettuce: lettuce:
@@ -119,14 +84,10 @@ spring:
# 文言 # 文言
messages: messages:
basename: i18n/general_message/messages basename: i18n/general_message/messages
<<<<<<< HEAD
encoding: utf-8 encoding: utf-8
server: server:
# 服务器的HTTP端口默认为18080 # 服务器的HTTP端口默认为18080
port: 18081 port: 18081
servlet: servlet:
# 应用的访问路径 # 应用的访问路径
context-path: /openhis context-path: /openhis
=======
encoding: utf-8
>>>>>>> v1.3

View File

@@ -175,11 +175,6 @@ public enum YbPayment {
MAF_PAY(14, 2, null, "医疗救助基金支出"), MAF_PAY(14, 2, null, "医疗救助基金支出"),
OTH_PAY(15, 2, null, "其他支出"),//重复,误用 OTH_PAY(15, 2, null, "其他支出"),//重复,误用
ACCT_MULAID_PAY(16, 2, null, "个人账户共济支付金额"), ACCT_MULAID_PAY(16, 2, null, "个人账户共济支付金额"),
// 医保结算返回值记录枚举
FULAMT_OWNPAY_AMT(1, 2, null, "全自费金额"),
// PSN_PART_AMT(2,2,null,"个人负担总金额"),
OVERLMT_SELFPAY(3, 2, null, "超限价自费费用"), PRESELFPAY_AMT(4, 2, null, "先行自付金额"), INSCP_SCP_AMT(5, 2, null, "符合政策范围金额"),
ACT_PAY_DEDC(6, 2, null, "实际支付起付线"), POOL_PROP_SELFPAY(7, 2, null, "基本医疗保险统筹基金支付比例"), BALC(8, 2, null, "余额"),
// 基金类型,下述仅作记录 // 基金类型,下述仅作记录
BIRTH_FUND(510100, 2, YB_FUND_PAY, "生育基金"), BIRTH_FUND(510100, 2, YB_FUND_PAY, "生育基金"),
RETIREE_MEDICAL(340100, 2, YB_FUND_PAY, "离休人员医疗保障基金"), RETIREE_MEDICAL(340100, 2, YB_FUND_PAY, "离休人员医疗保障基金"),

View File

@@ -21,8 +21,8 @@
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
<configuration> <configuration>
<source>16</source> <source>17</source>
<target>16</target> <target>17</target>
</configuration> </configuration>
</plugin> </plugin>
</plugins> </plugins>
@@ -56,6 +56,16 @@
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<!-- MyBatis-Plus 支持 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>
<!-- Kotlin 反射库支持 -->
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-reflect</artifactId>
</dependency>
</dependencies> </dependencies>
</project> </project>

View File

@@ -5,15 +5,23 @@ import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
@Getter @Getter
@AllArgsConstructor // 添加访问修饰符,确保枚举值可以被外部访问
public enum IdentifierUse { public enum IdentifierUse {
USUAL(1, "USUAL", "Usual item"), USUAL(1, "USUAL", "Usual item"),
OFFICIAL(2, "OFFICIAL", "Official item"), OFFICIAL(2, "OFFICIAL", "Official item"),
TEMP(3, "TEMP", "Temporary item"), TEMP(3, "TEMP", "Temporary item"),
SECONDARY(4, "SECONDARY", "Secondary item"), SECONDARY(4, "SECONDARY", "Secondary item"),
OLD(5, "OLD", "Old item"); OLD(5, "OLD", "Old item");
@EnumValue @EnumValue
private final Integer value; private final Integer value;
private final String code; private final String code;
private final String info; private final String info;
}
// 为枚举添加构造函数
IdentifierUse(Integer value, String code, String info) {
this.value = value;
this.code = code;
this.info = info;
}
}

View File

@@ -33,4 +33,12 @@ public class CostDetailSearchParam {
* 费用类型ID * 费用类型ID
*/ */
private String chargeItemEnum; private String chargeItemEnum;
public List<Long> getEncounterIds() {
return encounterIds;
}
public void setEncounterIds(List<Long> encounterIds) {
this.encounterIds = encounterIds;
}
} }

View File

@@ -29,4 +29,14 @@ public interface IInvoiceService extends IService<Invoice> {
* @return * @return
*/ */
Invoice getByPaymentId(Long id); Invoice getByPaymentId(Long id);
/**
* 分页查询发票列表(带用户角色权限过滤)
*
* @param page 分页参数
* @param isAdmin 是否为管理员
* @param userId 用户ID
* @return 分页结果
*/
IPage<Invoice> selectInvoicePage(Page<Invoice> page, boolean isAdmin, Long userId);
} }

View File

@@ -1,16 +1,16 @@
package com.openhis.administration.service.impl; package com.openhis.administration.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.core.common.enums.DelFlag; import com.core.common.enums.DelFlag;
import com.core.common.utils.SecurityUtils; import com.core.common.exception.ServiceException;
import com.openhis.administration.domain.Invoice; import com.openhis.administration.domain.Invoice;
import com.openhis.administration.domain.Supplier;
import com.openhis.administration.mapper.InvoiceMapper; import com.openhis.administration.mapper.InvoiceMapper;
import com.openhis.administration.service.IInvoiceService; import com.openhis.administration.service.IInvoiceService;
import com.openhis.common.enums.SupplyStatus;
import com.openhis.workflow.domain.SupplyRequest;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@@ -28,20 +28,22 @@ public class InvoiceServiceImpl extends ServiceImpl<InvoiceMapper, Invoice> impl
* 新增发票 * 新增发票
* *
* @param invoice 发票实体 * @param invoice 发票实体
* @return * @return 发票ID
* @throws ServiceException 当发票已存在或插入失败时抛出异常
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class)
public Long addInvoice(Invoice invoice) { public Long addInvoice(Invoice invoice) {
// 根据编码判断发票是否存在 // 根据编码判断发票是否存在 - 使用count查询优化性能
List<Invoice> invoices long count = baseMapper.selectCount(new LambdaQueryWrapper<Invoice>().eq(Invoice::getBusNo, invoice.getBusNo()));
= baseMapper.selectList(new LambdaQueryWrapper<Invoice>().eq(Invoice::getBusNo, invoice.getBusNo())); if (count > 0) {
if (invoices.size() > 0) { throw new ServiceException("发票编码已存在: " + invoice.getBusNo());
return null;
} }
// 新增发票 // 新增发票
int insert = baseMapper.insert(invoice); int insert = baseMapper.insert(invoice);
if (insert != 1) { if (insert != 1) {
return null; throw new ServiceException("发票新增失败,请检查输入数据");
} }
return invoice.getId(); return invoice.getId();
@@ -52,4 +54,17 @@ public class InvoiceServiceImpl extends ServiceImpl<InvoiceMapper, Invoice> impl
return baseMapper.selectOne(new LambdaQueryWrapper<Invoice>().eq(Invoice::getReconciliationId, id) return baseMapper.selectOne(new LambdaQueryWrapper<Invoice>().eq(Invoice::getReconciliationId, id)
.eq(Invoice::getDeleteFlag, DelFlag.NO.getCode())); .eq(Invoice::getDeleteFlag, DelFlag.NO.getCode()));
} }
@Override
public IPage<Invoice> selectInvoicePage(Page<Invoice> page, boolean isAdmin, Long userId) {
LambdaQueryWrapper<Invoice> queryWrapper = new LambdaQueryWrapper<Invoice>()
.eq(Invoice::getDeleteFlag, DelFlag.NO.getCode());
// 非管理员用户只能查看自己创建的发票
if (!isAdmin) {
queryWrapper.eq(Invoice::getInvoicingStaffId, userId);
}
return baseMapper.selectPage(page, queryWrapper);
}
} }

View File

@@ -16,8 +16,6 @@ import com.openhis.administration.mapper.OrganizationMapper;
import com.openhis.administration.service.IOrganizationService; import com.openhis.administration.service.IOrganizationService;
import com.openhis.common.enums.AccountStatus; import com.openhis.common.enums.AccountStatus;
import javax.annotation.Resource;
/** /**
* 机构管理Service业务层处理 * 机构管理Service业务层处理
* *
@@ -89,9 +87,4 @@ public class OrganizationServiceImpl extends ServiceImpl<OrganizationMapper, Org
public List<OrgDataDto> searchOrgDataByHealth() { public List<OrgDataDto> searchOrgDataByHealth() {
return this.organizationMapper.searchOrgDataByHealth(); return this.organizationMapper.searchOrgDataByHealth();
} }
@Override
public List<OrgDataDto> searchOrgDataByHealth() {
return this.organizationMapper.searchOrgDataByHealth();
}
} }

View File

@@ -155,4 +155,9 @@ public class PaymentReconciliation extends HisBaseEntity {
* 医保清算标志 * 医保清算标志
*/ */
private Integer ybClearFlag;// 默认值0 未清算 private Integer ybClearFlag;// 默认值0 未清算
/**
* 退费原因
*/
private String refundReason;
} }

View File

@@ -1,9 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.15</version>
<relativePath />
</parent>
<groupId>com.openhis</groupId> <groupId>com.openhis</groupId>
<artifactId>openhis-server</artifactId> <artifactId>openhis-server</artifactId>
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
@@ -17,14 +24,13 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>17</java.version> <java.version>17</java.version>
<maven-compiler-plugin.version>3.13.0</maven-compiler-plugin.version>
<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version> <maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
<spring-boot.version>2.5.15</spring-boot.version> <druid.version>1.2.27</druid.version>
<druid.version>1.2.23</druid.version>
<bitwalker.version>1.21</bitwalker.version> <bitwalker.version>1.21</bitwalker.version>
<swagger.version>3.0.0</swagger.version> <swagger.version>3.0.0</swagger.version>
<kaptcha.version>2.3.3</kaptcha.version> <kaptcha.version>2.3.3</kaptcha.version>
<pagehelper.boot.version>1.4.7</pagehelper.boot.version> <pagehelper.boot.version>1.4.7</pagehelper.boot.version>
<fastjson.version>2.0.53</fastjson.version>
<oshi.version>6.6.5</oshi.version> <oshi.version>6.6.5</oshi.version>
<commons.io.version>2.13.0</commons.io.version> <commons.io.version>2.13.0</commons.io.version>
<poi.version>4.1.2</poi.version> <poi.version>4.1.2</poi.version>
@@ -33,10 +39,22 @@
<!-- override dependency version --> <!-- override dependency version -->
<tomcat.version>9.0.96</tomcat.version> <tomcat.version>9.0.96</tomcat.version>
<logback.version>1.2.13</logback.version> <logback.version>1.2.13</logback.version>
<lombok.version>1.18.26</lombok.version> <lombok.version>1.18.42</lombok.version>
<mybatis-plus.version>3.5.3</mybatis-plus.version> <mybatis-plus.version>3.5.3</mybatis-plus.version>
<flowable.version>6.8.0</flowable.version> <flowable.version>6.8.0</flowable.version>
<postgresql.version>42.2.27</postgresql.version> <postgresql.version>42.2.27</postgresql.version>
<aviator.version>5.3.3</aviator.version>
<swagger-annotations.version>1.5.21</swagger-annotations.version>
<fastjson2.version>2.0.58</fastjson2.version>
<swagger-models.version>1.6.2</swagger-models.version>
<pinyin4j.version>2.5.1</pinyin4j.version>
<liteflow-spring-boot-starter.version>2.12.4.1</liteflow-spring-boot-starter.version>
<hutool-all.version>5.3.8</hutool-all.version>
<bcprov-jdk15on.version>1.69</bcprov-jdk15on.version>
<kernel.version>7.1.2</kernel.version>
<itextpdf.version>5.5.12</itextpdf.version>
<itext-asian.version>5.2.0</itext-asian.version>
<mysql-connector-j.version>9.4.0</mysql-connector-j.version>
</properties> </properties>
<!-- 依赖声明 --> <!-- 依赖声明 -->
@@ -47,7 +65,12 @@
<artifactId>mysql-connector-j</artifactId> <artifactId>mysql-connector-j</artifactId>
<version>${mysql-connector-j.version}</version> <version>${mysql-connector-j.version}</version>
</dependency> </dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
<scope>provided</scope>
</dependency>
<!-- pdf依赖--> <!-- pdf依赖-->
<dependency> <dependency>
<groupId>com.itextpdf</groupId> <groupId>com.itextpdf</groupId>
@@ -212,68 +235,6 @@
<version>${mybatis-plus.version}</version> <version>${mybatis-plus.version}</version>
</dependency> </dependency>
<!-- lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
<!-- 覆盖SpringFramework的依赖配置-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-framework-bom</artifactId>
<version>${spring-framework.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- 覆盖SpringSecurity的依赖配置-->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-bom</artifactId>
<version>${spring-security.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- SpringBoot的依赖配置-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- 覆盖logback的依赖配置-->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>${logback.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
</dependency>
<!-- 覆盖tomcat的依赖配置-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
<version>${tomcat.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-el</artifactId>
<version>${tomcat.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-websocket</artifactId>
<version>${tomcat.version}</version>
</dependency>
<!-- 阿里数据库连接池 --> <!-- 阿里数据库连接池 -->
<dependency> <dependency>
@@ -337,13 +298,6 @@
<version>${velocity.version}</version> <version>${velocity.version}</version>
</dependency> </dependency>
<!-- 阿里JSON解析器 -->
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>${fastjson.version}</version>
</dependency>
<!-- Token生成与解析--> <!-- Token生成与解析-->
<dependency> <dependency>
<groupId>io.jsonwebtoken</groupId> <groupId>io.jsonwebtoken</groupId>
@@ -358,14 +312,6 @@
<version>${kaptcha.version}</version> <version>${kaptcha.version}</version>
</dependency> </dependency>
<!-- Swagger API文档的注解 -->
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.5.21</version>
<scope>compile</scope>
</dependency>
<!-- 轻量级的业务流程引擎 --> <!-- 轻量级的业务流程引擎 -->
<dependency> <dependency>
<groupId>org.flowable</groupId> <groupId>org.flowable</groupId>
@@ -373,27 +319,27 @@
<version>${flowable.version}</version> <version>${flowable.version}</version>
</dependency> </dependency>
<!--el表达式计算-->
<dependency>
<groupId>com.googlecode.aviator</groupId>
<artifactId>aviator</artifactId>
<version>5.3.3</version>
</dependency>
<dependency> <dependency>
<groupId>org.postgresql</groupId> <groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId> <artifactId>postgresql</artifactId>
<version>${postgresql.version}</version> <version>${postgresql.version}</version>
</dependency> </dependency>
<!-- Kotlin 反射库,解决 KProperty 问题 -->
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-reflect</artifactId>
<version>1.9.10</version>
</dependency>
</dependencies> </dependencies>
</dependencyManagement> </dependencyManagement>
<modules> <modules>
<!-- <module>openhis-miniapp</module> -->
<module>openhis-application</module> <module>openhis-application</module>
<module>openhis-domain</module> <module>openhis-domain</module>
<module>openhis-common</module> <module>openhis-common</module>
<!-- <module>openhis-ybapp</module>-->
<module>core-admin</module> <module>core-admin</module>
<module>core-framework</module> <module>core-framework</module>
<module>core-system</module> <module>core-system</module>
@@ -401,6 +347,7 @@
<module>core-generator</module> <module>core-generator</module>
<module>core-common</module> <module>core-common</module>
<module>core-flowable</module> <module>core-flowable</module>
<module>openhis-einvoiceapp</module>
</modules> </modules>
<packaging>pom</packaging> <packaging>pom</packaging>
@@ -409,10 +356,10 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version> <version>${maven-compiler-plugin.version}</version>
<configuration> <configuration>
<source>17</source> <source>${java.version}</source>
<target>17</target> <target>${java.version}</target>
<encoding>${project.build.sourceEncoding}</encoding> <encoding>${project.build.sourceEncoding}</encoding>
<annotationProcessorPaths> <annotationProcessorPaths>
<path> <path>