Fix Bug #442: 手术计费:点击"删除"待签发耗材时异常报错,导致操作失败

根因:DoctorStationAdviceAppMapper.xml 中 getRequestBaseInfo SQL 的第二个 UNION 查询(手术计费耗材从 adm_charge_item 关联 wor_device_request)中,biz_request_flag 和 requester_id 使用了 CI.enterer_id(计费录入人),而非 DR.requester_id(设备申请创建人)。当录入人与当前操作人不一致时,biz_request_flag 为 '0',导致删除操作被后端拒绝。

修复:将 CI.enterer_id 改为 COALESCE(DR.requester_id, CI.enterer_id),优先使用 DeviceRequest 的 requester_id,确保 biz_request_flag 基于正确的创建人计算。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
华佗
2026-05-12 23:07:32 +08:00
parent 5a637e40fe
commit e8bd940897

View File

@@ -541,9 +541,9 @@
CI.service_id AS request_id, CI.service_id AS request_id,
CI.service_id || '-ci-dev' AS unique_key, CI.service_id || '-ci-dev' AS unique_key,
'' AS prescription_no, '' AS prescription_no,
CI.enterer_id AS requester_id, COALESCE(DR.requester_id, CI.enterer_id) AS requester_id,
CI.entered_date AS request_time, CI.entered_date AS request_time,
CASE WHEN CI.enterer_id = #{practitionerId} THEN '1' ELSE '0' END AS biz_request_flag, CASE WHEN COALESCE(DR.requester_id, CI.enterer_id) = #{practitionerId} THEN '1' ELSE '0' END AS biz_request_flag,
DR.content_json AS content_json, DR.content_json AS content_json,
NULL AS skin_test_flag, NULL AS skin_test_flag,
NULL AS inject_flag, NULL AS inject_flag,