diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/regdoctorstation/appservice/impl/AdviceManageAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/regdoctorstation/appservice/impl/AdviceManageAppServiceImpl.java index 35d8fada0..2ec6982c2 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/regdoctorstation/appservice/impl/AdviceManageAppServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/regdoctorstation/appservice/impl/AdviceManageAppServiceImpl.java @@ -1071,14 +1071,23 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService { .filter(e -> ItemType.MEDICINE.getValue().equals(e.getAdviceType())).collect(Collectors.toList()); List medicineRequestIds = medicineList.stream().map(AdviceBatchOpParam::getRequestId).collect(Collectors.toList()); - // 诊疗(包含护理adviceType=26、文字医嘱adviceType=8) + + // 耗材 (DEVICE = 2) + List deviceList = paramList.stream() + .filter(e -> ItemType.DEVICE.getValue().equals(e.getAdviceType())).collect(Collectors.toList()); + List deviceRequestIds + = deviceList.stream().map(AdviceBatchOpParam::getRequestId).collect(Collectors.toList()); + + // 诊疗(包含 医疗活动=3、手术=6、文字医嘱=8、护理=26 等,都属于 service_request) List activityList = paramList.stream() .filter(e -> ItemType.ACTIVITY.getValue().equals(e.getAdviceType()) || ItemType.TEXT.getValue().equals(e.getAdviceType()) + || ItemType.SURGERY.getValue().equals(e.getAdviceType()) || (e.getAdviceType() != null && e.getAdviceType() == 26)) .collect(Collectors.toList()); List activityRequestIds = activityList.stream().map(AdviceBatchOpParam::getRequestId).collect(Collectors.toList()); + // 查询已完成的药品请求 List medicineCompleteList = new ArrayList<>(); if (!medicineRequestIds.isEmpty()) { @@ -1093,7 +1102,15 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService { .eq(ServiceRequest::getStatusEnum, RequestStatus.COMPLETED.getValue()) .in(ServiceRequest::getId, activityRequestIds)); } - if (!medicineCompleteList.isEmpty() || !activityCompleteList.isEmpty()) { + // 查询已完成的器材/耗材请求 + List deviceCompleteList = new ArrayList<>(); + if (!deviceRequestIds.isEmpty()) { + deviceCompleteList = iDeviceRequestService.list(new LambdaQueryWrapper() + .eq(DeviceRequest::getStatusEnum, RequestStatus.COMPLETED.getValue()) + .in(DeviceRequest::getId, deviceRequestIds)); + } + + if (!medicineCompleteList.isEmpty() || !activityCompleteList.isEmpty() || !deviceCompleteList.isEmpty()) { throw new ServiceException("存在已完成的医嘱,请重新选择"); } if (!medicineRequestIds.isEmpty()) { @@ -1104,9 +1121,15 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService { // 根据请求id更新请求状态 iServiceRequestService.updateDraftStatusBatch(activityRequestIds); } + if (!deviceRequestIds.isEmpty()) { + // 根据请求id更新请求状态 + iDeviceRequestService.updateDraftStatusBatch(deviceRequestIds); + } List requestIdList = new ArrayList<>(); requestIdList.addAll(medicineRequestIds); requestIdList.addAll(activityRequestIds); + requestIdList.addAll(deviceRequestIds); + // 根据请求编号列表查询收费项目信息 List chargeItemList = iChargeItemService.getChargeItemInfoByReqId(requestIdList); List chargeItemIdList = chargeItemList.stream().map(ChargeItem::getId).collect(Collectors.toList()); diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/administration/service/impl/ChargeItemServiceImpl.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/administration/service/impl/ChargeItemServiceImpl.java index 00de18983..4c5ea10ee 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/administration/service/impl/ChargeItemServiceImpl.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/administration/service/impl/ChargeItemServiceImpl.java @@ -262,6 +262,9 @@ public class ChargeItemServiceImpl extends ServiceImpl getChargeItemInfoByReqId(List requestIdList) { + if (requestIdList == null || requestIdList.isEmpty()) { + return new ArrayList<>(); + } return baseMapper.selectList(new LambdaQueryWrapper().in(ChargeItem::getServiceId, requestIdList) .eq(ChargeItem::getDeleteFlag, DelFlag.NO.getCode())); } @@ -274,6 +277,9 @@ public class ChargeItemServiceImpl extends ServiceImpl getChargeItemBaseInfoByIds(List collect) { + if (collect == null || collect.isEmpty()) { + return new ArrayList<>(); + } return baseMapper.getChargeItemBaseInfoByIds(collect); } @@ -285,6 +291,9 @@ public class ChargeItemServiceImpl extends ServiceImpl getChargeItemDefInfoByIds(List chargeItemIds) { + if (chargeItemIds == null || chargeItemIds.isEmpty()) { + return new ArrayList<>(); + } return baseMapper.getChargeItemDefInfoByIds(chargeItemIds); }