当手术计费弹窗中点击"签发"耗材时,因耗材的locationId(发放库房)为空导致后端异常。 在DoctorStationAdviceAppServiceImpl.handDevice方法中,当locationId为null时,使用登录用户的科室ID作为默认值, 与NurseBillingAppService中的处理方式保持一致。
94 lines
2.8 KiB
XML
Executable File
94 lines
2.8 KiB
XML
Executable File
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
<mapper namespace="com.openhis.web.document.mapper.DocDefinitionAppMapper">
|
|
|
|
<select id="getDefinationList" parameterType="java.util.Map"
|
|
resultType="com.openhis.web.document.dto.DocDefinitionDto">
|
|
|
|
SELECT
|
|
dd.id,
|
|
dd.name,
|
|
dd.version,
|
|
dd.primary_menu_enum,
|
|
dd.sub_menu,
|
|
dd.bus_no,
|
|
dd.vue_router,
|
|
dd.hospital_id,
|
|
dd.is_valid,
|
|
dd.display_order,
|
|
dd.use_range_enum,
|
|
dd.doctor_permission_enum,
|
|
dd.nursing_permission_enum,
|
|
dd.medical_permission_enum,
|
|
dd.pharmacist_permission_enum,
|
|
ARRAY_AGG(ddo.organization_id) FILTER (WHERE ddo.organization_id IS NOT NULL) AS organization_ids
|
|
FROM doc_definition dd
|
|
|
|
LEFT JOIN doc_definition_organization ddo
|
|
ON dd.id = ddo.definition_id
|
|
AND ddo.delete_flag = '0'
|
|
|
|
WHERE dd.delete_flag = '0'
|
|
AND dd.is_valid = 0
|
|
|
|
<!-- 关键:医院 + 科室联合可见 -->
|
|
<if test="organizationId != null and organizationId != 0">
|
|
AND (
|
|
-- 本医院的文书
|
|
dd.hospital_id = #{hospitalId}
|
|
|
|
-- 或者:已分配给当前科室的文书(允许跨医院)
|
|
OR EXISTS (
|
|
SELECT 1
|
|
FROM doc_definition_organization z
|
|
WHERE z.definition_id = dd.id
|
|
AND z.organization_id = #{organizationId}
|
|
AND z.delete_flag = '0'
|
|
)
|
|
)
|
|
</if>
|
|
|
|
<if test="useRanges != null and !useRanges.isEmpty()">
|
|
AND dd.use_range_enum IN
|
|
<foreach collection="useRanges" item="useRange" open="(" separator="," close=")">
|
|
#{useRange}
|
|
</foreach>
|
|
</if>
|
|
|
|
<!-- 使用范围过滤 -->
|
|
<if test="organizationId != null and organizationId != 0">
|
|
AND (
|
|
-- 全院可用
|
|
dd.use_range_enum = 1
|
|
OR dd.use_range_enum IS NULL
|
|
|
|
-- 科室可用(必须真的分配给该科室)
|
|
OR (
|
|
dd.use_range_enum = 2
|
|
AND EXISTS (
|
|
SELECT 1
|
|
FROM doc_definition_organization y
|
|
WHERE y.definition_id = dd.id
|
|
AND y.organization_id = #{organizationId}
|
|
AND y.delete_flag = '0'
|
|
)
|
|
)
|
|
)
|
|
</if>
|
|
|
|
<if test="name != null and !name.isEmpty()">
|
|
AND dd.name LIKE CONCAT('%', #{name}, '%')
|
|
</if>
|
|
|
|
<if test="primaryMenuEnum != null">
|
|
AND dd.primary_menu_enum = #{primaryMenuEnum}
|
|
</if>
|
|
|
|
GROUP BY dd.id, dd.primary_menu_enum, dd.sub_menu
|
|
ORDER BY dd.display_order
|
|
|
|
</select>
|
|
|
|
</mapper>
|