Merge branch 'zhaoyun' of http://192.168.110.253:3000/wangyizhe/his into zhaoyun
# Conflicts: # openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/impl/RequestFormManageAppServiceImpl.java # openhis-ui-vue3/src/views/inpatientDoctor/home/components/order/index.vue
This commit is contained in:
@@ -73,9 +73,6 @@ public class RequestFormManageAppServiceImpl implements IRequestFormManageAppSer
|
||||
@Resource
|
||||
ISpecimenService iSpecimenService;
|
||||
|
||||
@Resource
|
||||
com.openhis.lab.mapper.SpecimenMapper specimenMapper;
|
||||
|
||||
/**
|
||||
* 校验当前用户是否有权操作该申请单(申请者本人或管理员)
|
||||
*/
|
||||
@@ -94,13 +91,15 @@ public class RequestFormManageAppServiceImpl implements IRequestFormManageAppSer
|
||||
|
||||
/**
|
||||
* 校验关联医嘱是否已采证(存在已采集/已接收标本则不可撤回)
|
||||
* 注意:lab_specimen 表无 delete_flag 列,不能使用 MyBatis-Plus LambdaQueryWrapper(会自动加 delete_flag 条件导致 SQL 报错)
|
||||
*/
|
||||
private boolean hasCollectedSpecimen(List<Long> serviceRequestIds) {
|
||||
if (serviceRequestIds == null || serviceRequestIds.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
long count = specimenMapper.countCollectedByServiceIds(serviceRequestIds, SpecCollectStatus.COLLECTED.getValue());
|
||||
long count = iSpecimenService.count(
|
||||
new LambdaQueryWrapper<Specimen>()
|
||||
.in(Specimen::getServiceId, serviceRequestIds)
|
||||
.ge(Specimen::getCollectionStatusEnum, SpecCollectStatus.COLLECTED.getValue()));
|
||||
return count > 0;
|
||||
}
|
||||
|
||||
@@ -641,22 +640,18 @@ public class RequestFormManageAppServiceImpl implements IRequestFormManageAppSer
|
||||
return R.fail("标本已采集,无法撤回");
|
||||
}
|
||||
|
||||
// 校验:至少有一条已签发(status=2)的申请单才可撤回
|
||||
boolean anyActive = serviceRequests.stream()
|
||||
.anyMatch(sr -> RequestStatus.ACTIVE.getValue().equals(sr.getStatusEnum()));
|
||||
if (!anyActive) {
|
||||
return R.fail("没有已签发的诊疗医嘱,无法撤回");
|
||||
// 校验:只有已签发(status=2)的申请单可撤回
|
||||
boolean allActive = serviceRequests.stream()
|
||||
.allMatch(sr -> RequestStatus.ACTIVE.getValue().equals(sr.getStatusEnum()));
|
||||
if (!allActive) {
|
||||
return R.fail("只有已签发且未采证的申请单可撤回");
|
||||
}
|
||||
|
||||
// 将已签发的 ServiceRequest 状态改回待签发,与申请单展示状态同步
|
||||
List<Long> activeServiceRequestIds = serviceRequests.stream()
|
||||
.filter(sr -> RequestStatus.ACTIVE.getValue().equals(sr.getStatusEnum()))
|
||||
.map(ServiceRequest::getId)
|
||||
.collect(Collectors.toList());
|
||||
// 将所有 ServiceRequest 状态改回待签发,与申请单展示状态同步
|
||||
iServiceRequestService.update(
|
||||
new ServiceRequest().setStatusEnum(RequestStatus.DRAFT.getValue()),
|
||||
new LambdaUpdateWrapper<ServiceRequest>()
|
||||
.in(ServiceRequest::getId, activeServiceRequestIds));
|
||||
.in(ServiceRequest::getId, serviceRequestIds));
|
||||
|
||||
log.info("检验申请单撤回成功,requestFormId={}, prescriptionNo={}", requestFormId, prescriptionNo);
|
||||
return R.ok("撤回成功");
|
||||
|
||||
Reference in New Issue
Block a user