fix(#782): guanyu (文件合入)
This commit is contained in:
@@ -1193,6 +1193,30 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService {
|
||||
.set(DeviceRequest::getStatusEnum, RequestStatus.PENDING_STOP.getValue())
|
||||
.set(DeviceRequest::getUpdateBy, stopUserName));
|
||||
}
|
||||
|
||||
// 🔧 Bug #782 修复:兜底处理未被以上任何类型过滤器捕获的医嘱
|
||||
// 当批量停嘱包含非标准 adviceType(如 type=31、type=7 等)时,这些医嘱
|
||||
// 不会被药品/诊疗/耗材任一组捕获,导致状态未更新为 PENDING_STOP,造成状态不一致
|
||||
// 将所有未匹配类型的医嘱统一按诊疗请求(ServiceRequest)处理
|
||||
Set<Long> handledIds = new HashSet<>();
|
||||
handledIds.addAll(medicineRequestIds);
|
||||
handledIds.addAll(activityRequestIds);
|
||||
handledIds.addAll(deviceRequestIds);
|
||||
List<Long> fallbackRequestIds = paramList.stream()
|
||||
.map(AdviceBatchOpParam::getRequestId)
|
||||
.filter(Objects::nonNull)
|
||||
.filter(id -> !handledIds.contains(id))
|
||||
.collect(Collectors.toList());
|
||||
if (!fallbackRequestIds.isEmpty()) {
|
||||
log.info("Bug #782 兜底停嘱:处理未匹配类型的医嘱,requestIds: {}, 共{}条",
|
||||
fallbackRequestIds, fallbackRequestIds.size());
|
||||
iServiceRequestService.update(new LambdaUpdateWrapper<ServiceRequest>()
|
||||
.in(ServiceRequest::getId, fallbackRequestIds)
|
||||
.set(ServiceRequest::getOccurrenceEndTime, stopTime)
|
||||
.set(ServiceRequest::getStatusEnum, RequestStatus.PENDING_STOP.getValue())
|
||||
.set(ServiceRequest::getUpdateBy, stopUserName));
|
||||
}
|
||||
|
||||
return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00004, new Object[]{"医嘱停止"}));
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user