fix: EncounterDiagnosisMapper selectOne() LIMIT 1 防重复数据报错

根因:getEncounterDiagnosisByEncounterConDefId 使用 selectOne() 查询,
但 SQL 可能返回多条(同就诊同诊断定义多条记录),导致 MyBatis 抛出
'Expected one result but found 2' 异常。

修复:SQL 增加 LIMIT 1,确保最多返回一条。
This commit is contained in:
2026-05-29 15:04:03 +08:00
parent 73df3699ec
commit a3378b7fbf
3 changed files with 393 additions and 3 deletions

View File

@@ -1,13 +1,17 @@
-- Bug #613: 医嘱退回流程 — med_medication_request 表缺少退回原因字段
-- 执行前检查:如果列已存在则跳过
-- 退回原因必填NOT NULL前端弹窗 + 后端都做校验
DO $$
BEGIN
IF NOT EXISTS (
SELECT 1 FROM information_schema.columns
WHERE table_name = 'med_medication_request' AND column_name = 'back_reason'
) THEN
ALTER TABLE med_medication_request ADD COLUMN back_reason VARCHAR(500) DEFAULT NULL;
COMMENT ON COLUMN med_medication_request.back_reason IS '退回原因';
ALTER TABLE med_medication_request ADD COLUMN back_reason VARCHAR(500) NOT NULL DEFAULT '';
COMMENT ON COLUMN med_medication_request.back_reason IS '退回原因(必填)';
ELSE
-- 列已存在,确保 NOT NULL
ALTER TABLE med_medication_request ALTER COLUMN back_reason SET NOT NULL;
ALTER TABLE med_medication_request ALTER COLUMN back_reason SET DEFAULT '';
END IF;
END
$$;