From d3c4b612e460e7169deefc113d75856decef3a02 Mon Sep 17 00:00:00 2001 From: Ranyunqiao <2499115710@qq.com> Date: Wed, 6 May 2026 10:42:57 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=A4=9A=E6=A8=A1?= =?UTF-8?q?=E5=9D=97Bug=E5=8F=8A=E5=8A=9F=E8=83=BD=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复药品汇总、医嘱套餐、转科管理、用药汇总、处方列表、用户管理等多个模块的问题 --- .../impl/MedicineSummaryAppServiceImpl.java | 3 +++ .../impl/OrdersGroupPackageAppServiceImpl.java | 1 + .../dto/OrdersGroupPackageDetailQueryDto.java | 5 +++++ .../dto/OrdersGroupPackageDetailSaveDto.java | 5 +++++ .../OrdersGroupPackageAppMapper.xml | 1 + .../domain/OrdersGroupPackageDetail.java | 5 +++++ .../basicmanage/medicalOrderSet/index.vue | 9 ++++++++- .../components/MedicationSummary.vue | 16 ++++++++++++++-- .../components/prescriptionList.vue | 10 +++++++++- .../transferManagent/batchTransfer/index.vue | 11 +++++++---- .../transferManagent/index.vue | 16 ++++++++++------ .../src/views/system/user/index.vue | 18 ++++++++++++++++-- 12 files changed, 84 insertions(+), 16 deletions(-) diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/inhospitalnursestation/appservice/impl/MedicineSummaryAppServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/inhospitalnursestation/appservice/impl/MedicineSummaryAppServiceImpl.java index f020036c..5240add0 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/inhospitalnursestation/appservice/impl/MedicineSummaryAppServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/inhospitalnursestation/appservice/impl/MedicineSummaryAppServiceImpl.java @@ -187,6 +187,9 @@ public class MedicineSummaryAppServiceImpl implements IMedicineSummaryAppService */ @Override public R medicineSummary(List medicineSummaryParamList) { + if (medicineSummaryParamList == null || medicineSummaryParamList.isEmpty()) { + throw new ServiceException("请至少选择一条待汇总的药品"); + } // 领药人 Long receiverId = medicineSummaryParamList.get(0).getReceiverId(); // 申请时间 diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/appservice/impl/OrdersGroupPackageAppServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/appservice/impl/OrdersGroupPackageAppServiceImpl.java index 8dbee4eb..fbba3c18 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/appservice/impl/OrdersGroupPackageAppServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/appservice/impl/OrdersGroupPackageAppServiceImpl.java @@ -102,6 +102,7 @@ public class OrdersGroupPackageAppServiceImpl implements IOrdersGroupPackageAppS ordersGroupPackageDetail.setMethodCode(ordersGroupPackageDetailSaveDto.getMethodCode()); // 给药途径 ordersGroupPackageDetail.setDoseQuantity(ordersGroupPackageDetailSaveDto.getDoseQuantity()); // 小单位单次剂量 ordersGroupPackageDetail.setGroupId(ordersGroupPackageDetailSaveDto.getGroupId()); // 组号 + ordersGroupPackageDetail.setGroupOrder(ordersGroupPackageDetailSaveDto.getGroupOrder()); // 组内排序号 ordersGroupPackageDetail.setTherapyEnum(ordersGroupPackageDetailSaveDto.getTherapyEnum()); // 治疗类型 ordersGroupPackageDetailService.save(ordersGroupPackageDetail); } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/dto/OrdersGroupPackageDetailQueryDto.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/dto/OrdersGroupPackageDetailQueryDto.java index 8a0fdec9..8ac0f7d8 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/dto/OrdersGroupPackageDetailQueryDto.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/dto/OrdersGroupPackageDetailQueryDto.java @@ -88,6 +88,11 @@ public class OrdersGroupPackageDetailQueryDto { */ private Long groupId; + /** + * 组内排序号 + */ + private Integer groupOrder; + /** * 治疗类型:1-长期 2-临时 */ diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/dto/OrdersGroupPackageDetailSaveDto.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/dto/OrdersGroupPackageDetailSaveDto.java index 1ef0d09d..8ad2f063 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/dto/OrdersGroupPackageDetailSaveDto.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/dto/OrdersGroupPackageDetailSaveDto.java @@ -63,6 +63,11 @@ public class OrdersGroupPackageDetailSaveDto { */ private Long groupId; + /** + * 组内排序号 + */ + private Integer groupOrder; + /** * 治疗类型:1-长期 2-临时 */ diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/personalization/OrdersGroupPackageAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/personalization/OrdersGroupPackageAppMapper.xml index 3b0ee6b9..e32d4157 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/personalization/OrdersGroupPackageAppMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/personalization/OrdersGroupPackageAppMapper.xml @@ -47,6 +47,7 @@ togpd.method_code AS method_code, togpd.dose_quantity AS dose_quantity, togpd.group_id, + togpd.group_order AS group_order, togpd.dispense_per_duration AS dispense_per_duration, togpd.therapy_enum AS therapy_enum, CASE diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/template/domain/OrdersGroupPackageDetail.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/template/domain/OrdersGroupPackageDetail.java index b6db6759..54e55e0d 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/template/domain/OrdersGroupPackageDetail.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/template/domain/OrdersGroupPackageDetail.java @@ -67,6 +67,11 @@ public class OrdersGroupPackageDetail extends HisBaseEntity { */ private Long groupId; + /** + * 组内排序号 + */ + private Integer groupOrder; + /** * 治疗类型:1-长期 2-临时 */ diff --git a/openhis-ui-vue3/src/views/basicmanage/medicalOrderSet/index.vue b/openhis-ui-vue3/src/views/basicmanage/medicalOrderSet/index.vue index 99251607..c8a8acd2 100644 --- a/openhis-ui-vue3/src/views/basicmanage/medicalOrderSet/index.vue +++ b/openhis-ui-vue3/src/views/basicmanage/medicalOrderSet/index.vue @@ -267,7 +267,7 @@ /> - {{ scope.row.methodCode }} + {{ scope.row.methodCode_dictText || scope.row.methodCode }} {{ '-' }} @@ -597,6 +597,13 @@ function handleEdit(tab, row) { groupId: item.groupId, groupOrder: item.groupOrder, therapyEnum: item.therapyEnum != null ? String(item.therapyEnum) : '1', + // 医嘱类型(药品=1):没有则按表名推断 + adviceType: + item.adviceType !== undefined + ? item.adviceType + : item.orderDefinitionTable === 'med_medication_definition' + ? 1 + : undefined, }; }); prescriptionList.value.unshift({ diff --git a/openhis-ui-vue3/src/views/drug/inpatientMedicationDispensing/components/MedicationSummary.vue b/openhis-ui-vue3/src/views/drug/inpatientMedicationDispensing/components/MedicationSummary.vue index f46abc64..9c6fec5a 100644 --- a/openhis-ui-vue3/src/views/drug/inpatientMedicationDispensing/components/MedicationSummary.vue +++ b/openhis-ui-vue3/src/views/drug/inpatientMedicationDispensing/components/MedicationSummary.vue @@ -34,11 +34,12 @@ type="daterange" start-placeholder="开始日期" end-placeholder="结束日期" - style="width: 510px" + style="width: 400px" value-format="YYYY-MM-DD" :clearable="false" - @change="getSummaryList" /> + 搜索 + 重置
批量发药 @@ -178,6 +179,17 @@ function getSummaryList() { }); } +// 重置查询条件 +function resetQuery() { + queryParams.value.applyTime = [ + proxy.formatDateStr(new Date().setMonth(new Date().getMonth() - 1), 'YYYY-MM-DD'), + proxy.formatDateStr(new Date(), 'YYYY-MM-DD'), + ]; + queryParams.value.searchKey = ''; + queryParams.value.statusEnum = ''; + getSummaryList(); +} + function getDetails(row) { loading.value = true; getFromSummaryDetails({ summaryNo: row.busNo }).then((res) => { diff --git a/openhis-ui-vue3/src/views/inpatientNurse/drugDistribution/components/prescriptionList.vue b/openhis-ui-vue3/src/views/inpatientNurse/drugDistribution/components/prescriptionList.vue index 02b356c2..963c73d2 100644 --- a/openhis-ui-vue3/src/views/inpatientNurse/drugDistribution/components/prescriptionList.vue +++ b/openhis-ui-vue3/src/views/inpatientNurse/drugDistribution/components/prescriptionList.vue @@ -272,10 +272,18 @@ function handleGetPrescription() { function handleMedicineSummary() { let paramList = getSelectRows(); + if (!paramList || paramList.length === 0) { + proxy.$message.warning('请至少选择一条待汇总的药品'); + return; + } let ids = []; - paramList = paramList.forEach((item) => { + paramList.forEach((item) => { ids.push(...item.dispenseIds); }); + if (ids.length === 0) { + proxy.$message.warning('所选药品未关联发放信息'); + return; + } medicineSummary(ids).then((res) => { if (res.code == 200) { proxy.$message.success('操作成功'); diff --git a/openhis-ui-vue3/src/views/medicationmanagement/transferManagent/batchTransfer/index.vue b/openhis-ui-vue3/src/views/medicationmanagement/transferManagent/batchTransfer/index.vue index 48ef7db3..22943b93 100644 --- a/openhis-ui-vue3/src/views/medicationmanagement/transferManagent/batchTransfer/index.vue +++ b/openhis-ui-vue3/src/views/medicationmanagement/transferManagent/batchTransfer/index.vue @@ -918,10 +918,13 @@ function remakeBlur(row, index) { editBatchTransfer(index); } function handleSave() { - // if (form.purchaseinventoryList.length == 0) { - // proxy.$message.warning('请先生成批量调拨单在进行批量保存!'); - // return; - // } + const invalidRow = totalIncentoryInfoList.value.find( + (row) => !row.price || row.price <= 0 + ); + if (invalidRow) { + proxy.$message.warning('调拨单价不能为空或为0,请检查!'); + return; + } addTransferProductBatch(totalIncentoryInfoList.value).then((res) => { if (res.code == 200) { proxy.$modal.msgSuccess('保存成功'); diff --git a/openhis-ui-vue3/src/views/medicationmanagement/transferManagent/transferManagent/index.vue b/openhis-ui-vue3/src/views/medicationmanagement/transferManagent/transferManagent/index.vue index aa90fae9..010c0e11 100644 --- a/openhis-ui-vue3/src/views/medicationmanagement/transferManagent/transferManagent/index.vue +++ b/openhis-ui-vue3/src/views/medicationmanagement/transferManagent/transferManagent/index.vue @@ -1306,10 +1306,12 @@ function handleSave(row, index) { } else if (row.unitCode == row.unitList.minUnitCode) { row.unitCode_dictText = row.unitList.minUnitCode_dictText; } - if (forms.purchaseinventoryList[index].price == 0) { - forms.purchaseinventoryList[index].price = 0; - forms.purchaseinventoryList[index].totalPrice = 0; + if (!forms.purchaseinventoryList[index].price || forms.purchaseinventoryList[index].price <= 0) { + proxy.$message.warning('调拨单价不能为空或为0,请检查!'); + return; } + forms.purchaseinventoryList[index].totalPrice = + forms.purchaseinventoryList[index].price * forms.purchaseinventoryList[index].itemQuantity; rowList.value.push(JSON.parse(JSON.stringify(row))); if ( rowList._rawValue && @@ -1355,10 +1357,12 @@ function handleSave(row, index) { } else if (rows.unitCode == rows.unitList.minUnitCode) { rows.unitCode_dictText = rows.unitList.minUnitCode_dictText; } - if (form.purchaseinventoryList[index].price == 0) { - form.purchaseinventoryList[index].price = 0; - form.purchaseinventoryList[index].totalPrice = 0; + if (!form.purchaseinventoryList[index].price || form.purchaseinventoryList[index].price <= 0) { + proxy.$message.warning('调拨单价不能为空或为0,请检查!'); + return; } + form.purchaseinventoryList[index].totalPrice = + form.purchaseinventoryList[index].price * form.purchaseinventoryList[index].itemQuantity; rowList.value.push(JSON.parse(JSON.stringify(rows))); if ( rowList._rawValue && diff --git a/openhis-ui-vue3/src/views/system/user/index.vue b/openhis-ui-vue3/src/views/system/user/index.vue index 92ef892b..dffeafa0 100644 --- a/openhis-ui-vue3/src/views/system/user/index.vue +++ b/openhis-ui-vue3/src/views/system/user/index.vue @@ -23,7 +23,11 @@ highlight-current default-expand-all @node-click="handleNodeClick" - /> + > + +
@@ -690,7 +694,13 @@ const { queryParams, form, rules } = toRefs(data); /** 通过条件过滤节点 */ const filterNode = (value, data) => { if (!value) return true; - return data.label.indexOf(value) !== -1; + return data.name.indexOf(value) !== -1; +}; +/** 高亮匹配关键字 */ +const highlightText = (text) => { + if (!deptName.value || !text) return text; + const regex = new RegExp(`(${deptName.value})`, 'gi'); + return text.replace(regex, '$1'); }; /** 根据名称筛选部门树 */ watch(deptName, (val) => { @@ -1344,4 +1354,8 @@ getWardList(); top: -10px; right: -10px; } +:deep(.tree-highlight) { + color: #409eff; + font-weight: bold; +}