fix(doctorstation): 修复处方列表和医嘱处理中的多个问题
- 修复耗材和诊疗类型在setValue后总金额未正确计算的问题 - 修复耗材类型没有价格列表时的默认值处理逻辑 - 修复组套中positionId被医嘱库信息覆盖的问题 - 修复删除耗材医嘱时费用项不存在导致的异常 - 修复处方位置ID查询中组织ID为空时的回退逻辑
This commit is contained in:
@@ -604,9 +604,20 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
||||
iMedicationRequestService.removeById(adviceSaveDto.getRequestId());
|
||||
// 删除已经产生的药品发放信息
|
||||
iMedicationDispenseService.deleteMedicationDispense(adviceSaveDto.getRequestId());
|
||||
// 删除费用项
|
||||
iChargeItemService.deleteByServiceTableAndId(CommonConstants.TableName.MED_MEDICATION_REQUEST,
|
||||
adviceSaveDto.getRequestId());
|
||||
// 🔧 Bug Fix #219: 删除费用项前查询确认
|
||||
Long requestId = adviceSaveDto.getRequestId();
|
||||
String serviceTable = CommonConstants.TableName.MED_MEDICATION_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);
|
||||
}
|
||||
// 删除基于这个药品生成的需要执行的诊疗请求
|
||||
iServiceRequestService.remove(
|
||||
new LambdaQueryWrapper<ServiceRequest>()
|
||||
@@ -883,9 +894,20 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
||||
iDeviceRequestService.removeById(adviceSaveDto.getRequestId());
|
||||
// 删除已经产生的耗材发放信息
|
||||
iDeviceDispenseService.deleteDeviceDispense(adviceSaveDto.getRequestId());
|
||||
// 删除费用项
|
||||
iChargeItemService.deleteByServiceTableAndId(CommonConstants.TableName.WOR_DEVICE_REQUEST,
|
||||
adviceSaveDto.getRequestId());
|
||||
// 🔧 Bug Fix #219: 删除费用项前查询确认
|
||||
Long requestId = adviceSaveDto.getRequestId();
|
||||
String serviceTable = CommonConstants.TableName.WOR_DEVICE_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) {
|
||||
|
||||
@@ -226,7 +226,7 @@
|
||||
'' AS manufacturer,
|
||||
T2.ID AS charge_item_definition_id,
|
||||
T2.instance_table AS advice_table_name,
|
||||
T3.organization_id AS position_id,
|
||||
COALESCE(T3.organization_id, T1.org_id) AS position_id,
|
||||
0 AS restricted_flag,
|
||||
'' AS restricted_scope,
|
||||
'' AS dosage_instruction,
|
||||
|
||||
Reference in New Issue
Block a user