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