Merge branch 'zhaoyun' of http://192.168.110.253:3000/wangyizhe/his into zhaoyun
# Conflicts: # openhis-ui-vue3/src/views/clinicmanagement/dayEnd/index.vue
This commit is contained in:
@@ -632,26 +632,24 @@ public class RequestFormManageAppServiceImpl implements IRequestFormManageAppSer
|
|||||||
return R.fail("未找到关联的诊疗医嘱");
|
return R.fail("未找到关联的诊疗医嘱");
|
||||||
}
|
}
|
||||||
|
|
||||||
List<Long> serviceRequestIds = serviceRequests.stream()
|
// 筛选出ACTIVE状态的ServiceRequest,与SQL的EXISTS逻辑一致
|
||||||
|
List<Long> activeServiceRequestIds = serviceRequests.stream()
|
||||||
|
.filter(sr -> RequestStatus.ACTIVE.getValue().equals(sr.getStatusEnum()))
|
||||||
.map(ServiceRequest::getId).collect(Collectors.toList());
|
.map(ServiceRequest::getId).collect(Collectors.toList());
|
||||||
|
if (activeServiceRequestIds.isEmpty()) {
|
||||||
// 校验:标本已采集则不可撤回
|
return R.fail("只有已签发且未采证的申请单可撤回");
|
||||||
if (hasCollectedSpecimen(serviceRequestIds)) {
|
|
||||||
return R.fail("标本已采集,无法撤回");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 校验:任一ServiceRequest为ACTIVE(status=2)即可撤回,与SQL的EXISTS逻辑一致
|
// 校验:仅检查ACTIVE状态医嘱的标本采集情况,与SQL的computed_status逻辑一致
|
||||||
boolean hasActive = serviceRequests.stream()
|
if (hasCollectedSpecimen(activeServiceRequestIds)) {
|
||||||
.anyMatch(sr -> RequestStatus.ACTIVE.getValue().equals(sr.getStatusEnum()));
|
return R.fail("标本已采集,无法撤回");
|
||||||
if (!hasActive) {
|
|
||||||
return R.fail("只有已签发且未采证的申请单可撤回");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 将所有已签发的 ServiceRequest 状态改回待签发,与申请单展示状态同步
|
// 将所有已签发的 ServiceRequest 状态改回待签发,与申请单展示状态同步
|
||||||
boolean updated = iServiceRequestService.update(
|
boolean updated = iServiceRequestService.update(
|
||||||
new ServiceRequest().setStatusEnum(RequestStatus.DRAFT.getValue()),
|
new ServiceRequest().setStatusEnum(RequestStatus.DRAFT.getValue()),
|
||||||
new LambdaUpdateWrapper<ServiceRequest>()
|
new LambdaUpdateWrapper<ServiceRequest>()
|
||||||
.in(ServiceRequest::getId, serviceRequestIds)
|
.in(ServiceRequest::getId, activeServiceRequestIds)
|
||||||
.eq(ServiceRequest::getStatusEnum, RequestStatus.ACTIVE.getValue()));
|
.eq(ServiceRequest::getStatusEnum, RequestStatus.ACTIVE.getValue()));
|
||||||
if (!updated) {
|
if (!updated) {
|
||||||
return R.fail("撤回失败,医嘱状态已变更,请刷新后重试");
|
return R.fail("撤回失败,医嘱状态已变更,请刷新后重试");
|
||||||
|
|||||||
Reference in New Issue
Block a user