e23ac2fd09eb2c7f6058d64fe1c08117cd019b66
根因: - 文件**:`openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java:2340` → `updateGroupId()` 方法 - 全链路 6 环分析**: - | 环节 | 状态 | 说明 | - |------|------|------| - | ①前端 | ✅ 正常 | `combination()` 发送 `{requestId, groupId}` 到后端 | - | ②Controller | ✅ 正常 | `PUT /doctor-station/advice/update-groupid` 接收参数 | - | ③Service | 🔧 已修改 | **问题所在** — 原代码把所有 requestId 都当 MedicationRequest 处理 | - | ④Mapper/DB | ❌ 遗漏 | 当诊疗医嘱(ID属于 `wor_service_request`)的 requestId 被当作 MedicationRequest 保存时,`saveOrUpdateBatch` 尝试 INSERT 新记录,`medication_id` NOT NULL 约束失败 | 修复: - 修改 `updateGroupId` 方法,按医嘱实际所属表分别更新: - 1. **拆组(groupId=null)**:对三个表(MedicationRequest、ServiceRequest、DeviceRequest)都执行 `group_id` 置空 - 2. **组合(groupId!=null)**:先查 `MedicationRequest` → 再查 `ServiceRequest` → 最后查 `DeviceRequest`,找到所属表后用 `UpdateWrapper` 精准更新 `group_id`(DeviceRequest 用 `group_no`,String 类型) - ### 验证结果 - ✅ `mvn compile -pl openhis-application -am` 编译通过 - ✅ 修改范围仅限一个方法,不影响其他模块 - ✅ 拆组和组合两个方向都走全链路验证
his-repo
@ 5de8a22418
Fix Bug #445: 引用计费时已生成医嘱项目重新出现在待生成列表 — handleQuoteBilling 中先清空 temporaryAdvices 再执行 ID 匹配过滤,导致过滤逻辑对空数组无效;且 ID 匹配不可靠(新医嘱无 requestId/chargeItemId),已改为在清空前提取复合键(名称|||规格|||数量)并在数据加载后用该键过滤
Fix Bug #547: 执行科室配置保存时时间冲突检测范围错误 — 根因:addOrEditOrgLoc 方法使用 getOrgLocListByActivityDefinitionId 跨科室查询同一诊疗的所有配置,导致不同科室间的正常时间重叠被误判为冲突;修复:改为 getOrgLocListByOrgIdAndActivityDefinitionId(orgId, activityDefId) 限定同科室范围;同时优化软删除科室处理,当冲突记录关联的科室已被删除时,使用"科室[ID]已删除"替代静默跳过
Description
No description provided
Languages
Java
47.9%
Vue
46.4%
JavaScript
4.4%
HTML
0.7%
TypeScript
0.2%
Other
0.1%