diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/inhospitalnursestation/appservice/impl/NurseBillingAppService.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/inhospitalnursestation/appservice/impl/NurseBillingAppService.java index 8fff41b4c..628f16b7d 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/inhospitalnursestation/appservice/impl/NurseBillingAppService.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/inhospitalnursestation/appservice/impl/NurseBillingAppService.java @@ -233,8 +233,9 @@ public class NurseBillingAppService implements INurseBillingAppService { // 初始化查询参数 String encounterIds = inpatientAdviceParam.getEncounterIds(); inpatientAdviceParam.setEncounterIds(null); - Integer exeStatus = inpatientAdviceParam.getExeStatus(); - inpatientAdviceParam.setExeStatus(null); + + + // 提取deadline手动处理,防止自动拼接列名不存在的错误 String deadline = inpatientAdviceParam.getDeadline(); inpatientAdviceParam.setDeadline(null); diff --git a/healthlink-his-server/healthlink-his-application/src/main/resources/mapper/inhospitalnursestation/NurseBillingAppMapper.xml b/healthlink-his-server/healthlink-his-application/src/main/resources/mapper/inhospitalnursestation/NurseBillingAppMapper.xml index 4fae4b976..56384e773 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/resources/mapper/inhospitalnursestation/NurseBillingAppMapper.xml +++ b/healthlink-his-server/healthlink-his-application/src/main/resources/mapper/inhospitalnursestation/NurseBillingAppMapper.xml @@ -107,14 +107,14 @@ LEFT JOIN adm_organization AS ao1 ON ao1.id = T1.org_id AND ao1.delete_flag = '0' LEFT JOIN adm_encounter ae ON ae.id = T1.encounter_id - AND ae.class_enum = 1 + AND ae.class_enum = #{ imp } AND ae.delete_flag = '0' LEFT JOIN adm_patient ap ON ae.patient_id = ap.id AND ap.delete_flag = '0' LEFT JOIN adm_encounter_location ael ON ae.id = ael.encounter_id AND ael.delete_flag = '0' - AND ael.status_enum = 2 - AND ael.form_enum = 8 + AND ael.status_enum = #{ active } + AND ael.form_enum = #{ bed } LEFT JOIN adm_location al ON ael.location_id = al.id AND al.delete_flag = '0' LEFT JOIN adm_account aa ON ae.ID = aa.encounter_id diff --git a/healthlink-his-server/healthlink-his-common/src/main/java/com/healthlink/his/common/aspectj/DictAspect.java b/healthlink-his-server/healthlink-his-common/src/main/java/com/healthlink/his/common/aspectj/DictAspect.java index 93a6a9012..17ab2ee5e 100755 --- a/healthlink-his-server/healthlink-his-common/src/main/java/com/healthlink/his/common/aspectj/DictAspect.java +++ b/healthlink-his-server/healthlink-his-common/src/main/java/com/healthlink/his/common/aspectj/DictAspect.java @@ -171,7 +171,12 @@ public class DictAspect { } sqlBuilder.append(" LIMIT 1"); try { - return jdbcTemplate.queryForObject(sqlBuilder.toString(), String.class, dictValue); + List results = jdbcTemplate.query( + sqlBuilder.toString(), + (rs, rowNum) -> rs.getString(1), + dictValue + ); + return results.isEmpty() ? "" : results.get(0); } catch (DataAccessException e) { return ""; } diff --git a/healthlink-his-ui/src/views/inpatientNurse/InpatientBilling/components/billingList.vue b/healthlink-his-ui/src/views/inpatientNurse/InpatientBilling/components/billingList.vue index 49cbe56a7..0df0a0030 100755 --- a/healthlink-his-ui/src/views/inpatientNurse/InpatientBilling/components/billingList.vue +++ b/healthlink-his-ui/src/views/inpatientNurse/InpatientBilling/components/billingList.vue @@ -130,6 +130,7 @@ accordion border style="--el-collapse-border-color: #e4e7ed" + @change="handleCollapseChange" > { * @param {Array} val - 选中行 */ const handleTableSelectionChange = (index, val) => { - selectedRows.value[index] = safeArray(val); + // vxe-table checkbox-change 事件格式: { checked, records, row, reserves } + const rows = val && val.records ? safeArray(val.records) : safeArray(val); + selectedRows.value[index] = rows; console.log('selectedRows:', selectedRows.value); // 合并所有选中行 const allSelected = []; @@ -503,6 +506,28 @@ const handleTableSelectionChange = (index, val) => { console.log('selectedFeeItems:', selectedFeeItems.value); }; +/** + * 折叠面板切换时,恢复已展开面板的表格勾选状态 + * accordion 模式下 vxe-table DOM 被销毁重建,需手动恢复 checkbox 选中态 + * @param {Array} activeNames - 当前激活的面板 name 列表 + */ +const handleCollapseChange = (activeNames) => { + if (!activeNames || activeNames.length === 0) return; + const activeName = Array.isArray(activeNames) ? activeNames[0] : activeNames; + const match = String(activeName).match(/^patient-(\d+)$/); + if (!match) return; + const index = parseInt(match[1], 10); + const savedRows = safeArray(selectedRows.value[index]); + if (savedRows.length === 0) return; + // 等待 DOM 重建后恢复勾选状态 + nextTick(() => { + const table = safeArray(tableRef.value)[index]; + if (table && typeof table.setCheckboxRow === 'function') { + table.setCheckboxRow(savedRows, true); + } + }); +}; + /** * 按 Tab 同步日期范围(避免 date-picker @change 与 Tab v-model 互相覆盖) * @param {string} rangeType - today | yesterday | custom