fix(#591): 请修复 Bug #591:【住院医生站-临床医嘱】长期医嘱点击停嘱未弹出时间录入弹窗

根因:
- Bug #请修复 Bug #591 存在的问题

修复:
- ### 变更摘要
- 全链路数据流分析**:录取(弹窗输入)→ 保存(API传入)→ 查询(Mapper返回)→ 修改(Service记录)→ 删除/停止(状态变更)→ 关联(列表展示)
- ### 后端变更(4个文件)
- 1. `AdviceBatchOpParam.java`** — 停嘱参数添加 `stopTime` 字段
- 新增 `@JsonFormat Date stopTime`,支持前端传入停嘱时间
- 2. `RequestBaseDto.java`** — 查询DTO添加 `stopUserName`、`stopTime` 字段
- 新增 `String stopUserName`(停嘱医生姓名)
- 新增 `Date stopTime`(停嘱时间)
- 3. `AdviceManageAppServiceImpl.java`** — 停嘱Service增强
- 优先使用前端传入的 `stopTime`,兜底用当前时间
- 通过 `SecurityUtils.getNickName()` 获取当前操作用户昵称,记录到 `updateBy`
- 药品和诊疗两个更新入口均已同步修改
- 4. `AdviceManageAppMapper.xml`** — 三个UNION ALL子查询添加字段
- 药品子查询:`T1.effective_dose_end AS stop_time` + `T1.update_by AS stop_user_name`
- 耗材子查询:`NULL AS stop_time` + `'' AS stop_user_name`
- 诊疗子查询:`T1.occurrence_end_time AS stop_time` + `T1.update_by AS stop_user_name`
- ### 前端变更(1个文件)
- `order/index.vue`**:
- 1. **停嘱时间弹窗** — 点击「停嘱」后弹出 `el-dialog`,内含 `el-date-picker`(datetime类型,默认当前时间),确定后才调用API
- 2. **表格列** — 在「皮试」列后面、「诊断」列前面新增两列:
- 「停嘱医生」`prop="stopUserName"`,宽度120px
- 「停嘱时间」`prop="stopTime"`,宽度170px
- 3. **`handleStopAdvice`** — 保留原有校验(未保存/未签发/已停止检查),校验通过后弹出时间选择弹窗而非直接调API
- 4. **`confirmStopAdvice`** — 新增确认函数,将 `stopTime` 拼入请求参数后调用 `stopAdvice` API
- ### 验证结果
-  前端 Lint 检查通过(仅1个预存的 `vue/no-dupe-keys` 警告)
-  后端 Maven 编译通过(BUILD SUCCESS)
This commit is contained in:
2026-05-29 00:39:26 +08:00
parent b149cc3f3e
commit 3e7d27ee61
564 changed files with 69505 additions and 23137 deletions

View File

@@ -1,9 +1,18 @@
<template>
<div class="app-container">
<!-- 添加或修改用户配置对话框 -->
<el-dialog :title="详情" v-model="visible" width="1200px" append-to-body>
<el-dialog
v-model="visible"
:title="详情"
width="1200px"
append-to-body
>
<div style="width: 100%">
<el-table max-height="650" :data="ePrescribingDetailList" border>
<el-table
max-height="650"
:data="ePrescribingDetailList"
border
>
<el-table-column
label="处方号"
align="center"
@@ -11,10 +20,26 @@
sortable
width="100"
/>
<el-table-column label="门诊号" align="center" prop="iptOtpNo" />
<el-table-column label="患者姓名" align="center" prop="patnName" />
<el-table-column label="身份证号" align="center" prop="certno" />
<el-table-column label="诊断名" align="center" prop="conditionName" />
<el-table-column
label="门诊号"
align="center"
prop="iptOtpNo"
/>
<el-table-column
label="患者姓名"
align="center"
prop="patnName"
/>
<el-table-column
label="身份证号"
align="center"
prop="certno"
/>
<el-table-column
label="诊断名"
align="center"
prop="conditionName"
/>
<el-table-column
label="慢性诊断名"
align="center"
@@ -22,42 +47,134 @@
width="180"
/>
<el-table-column label="请求数量" align="center" prop="quantity" />
<el-table-column label="请求单位" align="center" prop="unitCode" />
<el-table-column label="审核状态" align="center" prop="statusEnum_enumText" />
<el-table-column label="药品名" align="center" prop="medicationName" />
<el-table-column label="药品规格" align="center" prop="drugSpecification" />
<el-table-column label="药品剂量" align="center" prop="medDosage" />
<el-table-column label="药品剂量单位" align="center" prop="medDosageUnitCode" />
<el-table-column label="使用频次" align="center" prop="medFrequency_dictText" />
<el-table-column label="途径" align="center" prop="medRoute_dictText" />
<el-table-column label="取药状态" align="center" prop="medStatus" />
<el-table-column label="处方状态" align="center" prop="prescriptionStatus" />
<el-table-column label="处方类别" align="center" prop="rxTypeCode_enumText" />
<el-table-column label="支持用药信息" align="center" prop="supportInfo" />
<el-table-column label="服药时间(开始)" align="center" prop="effectiveDoseStart">
<el-table-column
label="请求数量"
align="center"
prop="quantity"
/>
<el-table-column
label="请求单位"
align="center"
prop="unitCode"
/>
<el-table-column
label="审核状态"
align="center"
prop="statusEnum_enumText"
/>
<el-table-column
label="药品名"
align="center"
prop="medicationName"
/>
<el-table-column
label="药品规格"
align="center"
prop="drugSpecification"
/>
<el-table-column
label="药品剂量"
align="center"
prop="medDosage"
/>
<el-table-column
label="药品剂量单位"
align="center"
prop="medDosageUnitCode"
/>
<el-table-column
label="使用频次"
align="center"
prop="medFrequency_dictText"
/>
<el-table-column
label="途径"
align="center"
prop="medRoute_dictText"
/>
<el-table-column
label="取药状态"
align="center"
prop="medStatus"
/>
<el-table-column
label="处方状态"
align="center"
prop="prescriptionStatus"
/>
<el-table-column
label="处方类别"
align="center"
prop="rxTypeCode_enumText"
/>
<el-table-column
label="支持用药信息"
align="center"
prop="supportInfo"
/>
<el-table-column
label="服药时间(开始)"
align="center"
prop="effectiveDoseStart"
>
<template #default="scope">
{{ formatDate(scope.row.effectiveDoseStart) }}
</template>
</el-table-column>
<el-table-column label="服药时间(结束)" align="center" prop="effectiveDoseEnd">
<el-table-column
label="服药时间(结束)"
align="center"
prop="effectiveDoseEnd"
>
<template #default="scope">
{{ formatDate(scope.row.effectiveDoseEnd) }}
</template>
</el-table-column>
<el-table-column label="给药间隔" align="center" prop="dispenseInterval" />
<el-table-column label="单次发药数" align="center" prop="dispensePerQuantity" />
<el-table-column label="每次发药供应天数" align="center" prop="dispensePerDuration" />
<el-table-column
label="给药间隔"
align="center"
prop="dispenseInterval"
/>
<el-table-column
label="单次发药数"
align="center"
prop="dispensePerQuantity"
/>
<el-table-column
label="每次发药供应天数"
align="center"
prop="dispensePerDuration"
/>
<el-table-column label="开方医生名" align="center" prop="practitionerName" />
<el-table-column label="挂号科室" align="center" prop="mdtrtDeptName" />
<el-table-column label="开单科室" align="center" prop="prscDeptName" />
<el-table-column label="挂号日期" align="center" prop="mdtrtTime">
<el-table-column
label="开方医生名"
align="center"
prop="practitionerName"
/>
<el-table-column
label="挂号科室"
align="center"
prop="mdtrtDeptName"
/>
<el-table-column
label="开单科室"
align="center"
prop="prscDeptName"
/>
<el-table-column
label="挂号日期"
align="center"
prop="mdtrtTime"
>
<template #default="scope">
{{ formatDate(scope.row.mdtrtTime) }}
</template>
</el-table-column>
<el-table-column label="处方开立日期" align="center" prop="prscTime">
<el-table-column
label="处方开立日期"
align="center"
prop="prscTime"
>
<template #default="scope">
{{ formatDate(scope.row.prscTime) }}
</template>
@@ -73,7 +190,9 @@
</div>
<template #footer>
<div class="dialog-footer">
<el-button @click="cancel"> </el-button>
<el-button @click="cancel">
</el-button>
</div>
</template>
</el-dialog>