Files
his/openhis-server-new/openhis-application
华佗 e23ac2fd09 fix(#640): 请修复 Bug #640: web_ui 手动入列
根因:
- 文件**:`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` 编译通过
-  修改范围仅限一个方法,不影响其他模块
-  拆组和组合两个方向都走全链路验证
2026-06-01 16:26:31 +08:00
..