fix: Bug #177 修复新增医嘱报错 - category_code 类型转换错误

问题原因:
SQL查询中尝试将 wor_activity_definition.category_code(中文值如'检验'、'检查')
直接转换为 INTEGER 类型,导致 PostgreSQL 类型转换错误。

修复方案:
使用 CASE WHEN 语句将中文 category_code 映射为对应的整数值:
- 检验 -> 1
- 检查 -> 2
- 护理 -> 3
- 手术 -> 4
- 其他 -> 5

这与 ActivityType 枚举定义保持一致。
This commit is contained in:
2026-03-12 15:53:06 +08:00
parent 96c1927f8d
commit d083a3123a

View File

@@ -204,8 +204,16 @@
T1.yb_no AS yb_no, T1.yb_no AS yb_no,
'' AS product_name, '' AS product_name,
-- 前端"类型"列显示目录类别category_code -- 前端"类型"列显示目录类别category_code
-- 将category_code转换为整数,用于字典转换字典转换框架会自动填充activityType_dictText -- 🔧 Bug #177 修复:将category_code(中文)转换为对应的整数,用于字典转换
CAST(T1.category_code AS INTEGER) AS activity_type, -- 检验->1, 检查->2, 护理->3, 手术->4, 其他->5
CASE T1.category_code
WHEN '检验' THEN 1
WHEN '检查' THEN 2
WHEN '护理' THEN 3
WHEN '手术' THEN 4
WHEN '其他' THEN 5
ELSE 0
END AS activity_type,
NULL AS activity_type_dictText, NULL AS activity_type_dictText,
-- 前端"包装单位"列显示使用单位permitted_unit_code -- 前端"包装单位"列显示使用单位permitted_unit_code
T1.permitted_unit_code AS unit_code, T1.permitted_unit_code AS unit_code,