From 1242d414999ae84b0cc44bec7fe6f34fe70a8f20 Mon Sep 17 00:00:00 2001 From: zhugeliang Date: Fri, 24 Apr 2026 15:15:15 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20Bug=20#418=20#419=20#421=20#424=20?= =?UTF-8?q?=E6=A3=80=E6=9F=A5=E7=94=B3=E8=AF=B7=E5=8F=91=E5=BE=80=E7=A7=91?= =?UTF-8?q?=E5=AE=A4=E6=9C=AA=E8=87=AA=E5=8A=A8=E8=B5=8B=E5=80=BC/?= =?UTF-8?q?=E4=B8=8B=E6=8B=89=E6=97=A0=E6=95=B0=E6=8D=AE=20-=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E7=A7=91=E5=AE=A4=E6=95=B0=E6=8D=AE=E6=BA=90=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 主要修复: - 4个申请单组件统一使用getDepartmentList()替代getOrgList() - 使用/app-common/department-list接口替代分页接口,确保科室树完整加载 - 添加findTreeItem递归查找函数,支持树形结构科室匹配 - 优化分页大小:pageSize从10000降至500,提升加载性能 - #415 后端添加价格非负验证,防止单价显示负数 涉及文件: - laboratoryTests.vue/medicalExaminations.vue/bloodTransfusion.vue/surgery.vue - DoctorStationAdviceAppServiceImpl.java --- .../DoctorStationAdviceAppServiceImpl.java | 21 +++++++++++++--- .../applicationForm/bloodTransfusion.vue | 22 ++++++++++++----- .../order/applicationForm/laboratoryTests.vue | 24 +++++++++++++------ .../applicationForm/medicalExaminations.vue | 24 +++++++++++++------ .../order/applicationForm/surgery.vue | 22 ++++++++++++----- 5 files changed, 84 insertions(+), 29 deletions(-) diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java index aa3a4c6d..e6c26449 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java @@ -1144,7 +1144,12 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp chargeItem.setQuantityValue(adviceSaveDto.getQuantity()); // 数量 chargeItem.setQuantityUnit(adviceSaveDto.getUnitCode()); // 单位 - chargeItem.setUnitPrice(adviceSaveDto.getUnitPrice()); // 单价 + // #415 价格非负验证 + BigDecimal unitPrice = adviceSaveDto.getUnitPrice(); + if (unitPrice != null && unitPrice.compareTo(BigDecimal.ZERO) < 0) { + unitPrice = unitPrice.abs(); // 负数取绝对值 + } + chargeItem.setUnitPrice(unitPrice); // 单价 chargeItem.setTotalPrice(adviceSaveDto.getTotalPrice()); // 总价 // 显式设置tenantId、createBy和createTime字段,防止自动填充机制失效 @@ -1616,7 +1621,12 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp chargeItem.setQuantityValue(adviceSaveDto.getQuantity()); // 数量 chargeItem.setQuantityUnit(adviceSaveDto.getUnitCode()); // 单位 - chargeItem.setUnitPrice(adviceSaveDto.getUnitPrice()); // 单价 + // #415 价格非负验证 + BigDecimal unitPrice = adviceSaveDto.getUnitPrice(); + if (unitPrice != null && unitPrice.compareTo(BigDecimal.ZERO) < 0) { + unitPrice = unitPrice.abs(); // 负数取绝对值 + } + chargeItem.setUnitPrice(unitPrice); // 单价 chargeItem.setTotalPrice(adviceSaveDto.getTotalPrice()); // 总价 // 显式设置审计字段,防止自动填充机制失效 @@ -1842,7 +1852,12 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp chargeItem.setEncounterDiagnosisId(adviceSaveDto.getEncounterDiagnosisId()); // 就诊诊断id chargeItem.setQuantityValue(adviceSaveDto.getQuantity()); // 数量 chargeItem.setQuantityUnit(adviceSaveDto.getUnitCode()); // 单位 - chargeItem.setUnitPrice(adviceSaveDto.getUnitPrice()); // 单价 + // #415 价格非负验证 + BigDecimal unitPrice = adviceSaveDto.getUnitPrice(); + if (unitPrice != null && unitPrice.compareTo(BigDecimal.ZERO) < 0) { + unitPrice = unitPrice.abs(); // 负数取绝对值 + } + chargeItem.setUnitPrice(unitPrice); // 单价 chargeItem.setTotalPrice(adviceSaveDto.getTotalPrice()); // 总价 iChargeItemService.saveOrUpdate(chargeItem); diff --git a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/order/applicationForm/bloodTransfusion.vue b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/order/applicationForm/bloodTransfusion.vue index a5d21864..b5950993 100644 --- a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/order/applicationForm/bloodTransfusion.vue +++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/order/applicationForm/bloodTransfusion.vue @@ -80,11 +80,23 @@