fix(doctorstation): 解决删除诊疗医嘱时费用项不存在导致的异常
- 添加费用项存在性检查逻辑 - 在删除前先查询费用项是否存在于数据库中 - 添加详细的操作日志记录便于问题追踪 - 避免因费用项不存在导致的删除操作失败
This commit is contained in:
@@ -1058,9 +1058,20 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
iServiceRequestService.remove(
|
iServiceRequestService.remove(
|
||||||
new LambdaQueryWrapper<ServiceRequest>().eq(ServiceRequest::getParentId,
|
new LambdaQueryWrapper<ServiceRequest>().eq(ServiceRequest::getParentId,
|
||||||
adviceSaveDto.getRequestId()));// 删除诊疗套餐对应的子项
|
adviceSaveDto.getRequestId()));// 删除诊疗套餐对应的子项
|
||||||
// 删除费用项
|
// 🔧 Bug Fix #219: 删除费用项前查询确认
|
||||||
iChargeItemService.deleteByServiceTableAndId(CommonConstants.TableName.WOR_SERVICE_REQUEST,
|
Long requestId = adviceSaveDto.getRequestId();
|
||||||
adviceSaveDto.getRequestId());
|
String serviceTable = CommonConstants.TableName.WOR_SERVICE_REQUEST;
|
||||||
|
// 先查询费用项是否存在
|
||||||
|
List<ChargeItem> existingChargeItems = iChargeItemService.getChargeItemInfoByReqId(Arrays.asList(requestId));
|
||||||
|
if (existingChargeItems == null || existingChargeItems.isEmpty()) {
|
||||||
|
log.warn("BugFix#219: 删除诊疗医嘱时未找到费用项, requestId={}, serviceTable={}", requestId, serviceTable);
|
||||||
|
} else {
|
||||||
|
log.info("BugFix#219: 找到 {} 个费用项, 准备删除, requestId={}, serviceTable={}",
|
||||||
|
existingChargeItems.size(), requestId, serviceTable);
|
||||||
|
// 删除费用项
|
||||||
|
iChargeItemService.deleteByServiceTableAndId(serviceTable, requestId);
|
||||||
|
log.info("BugFix#219: 费用项删除完成, requestId={}", requestId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (AdviceSaveDto adviceSaveDto : insertOrUpdateList) {
|
for (AdviceSaveDto adviceSaveDto : insertOrUpdateList) {
|
||||||
|
|||||||
Reference in New Issue
Block a user