PostDischargePatientManage/postdischarge-manage/src/main/resources/mapper/manage/specialdiseaseroute/SpecialDiseaseRouteMapper.xml
2024-04-09 13:24:39 +08:00

411 lines
17 KiB
XML

<?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.xinelu.manage.mapper.specialdiseaseroute.SpecialDiseaseRouteMapper">
<resultMap type="SpecialDiseaseRoute" id="SpecialDiseaseRouteResult">
<result property="id" column="id"/>
<result property="departmentId" column="department_id"/>
<result property="departmentName" column="department_name"/>
<result property="diseaseTypeId" column="disease_type_id"/>
<result property="diseaseTypeName" column="disease_type_name"/>
<result property="routeName" column="route_name"/>
<result property="routeCode" column="route_code"/>
<result property="version" column="version"/>
<result property="routeClassify" column="route_classify"/>
<result property="releaseStatus" column="release_status"/>
<result property="suitRange" column="suit_range"/>
<result property="routeSort" column="route_sort"/>
<result property="routeRemark" column="route_remark"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
</resultMap>
<resultMap type="com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteVO" id="SpecialDiseaseRouteVOResult">
<result property="specialDiseaseRouteId" column="specialDiseaseRouteId"/>
<result property="departmentId" column="department_id"/>
<result property="departmentName" column="department_name"/>
<result property="diseaseTypeId" column="disease_type_id"/>
<result property="diseaseTypeName" column="disease_type_name"/>
<result property="routeName" column="route_name"/>
<result property="routeCode" column="route_code"/>
<result property="version" column="version"/>
<result property="routeClassify" column="route_classify"/>
<result property="releaseStatus" column="release_status"/>
<result property="suitRange" column="suit_range"/>
<result property="routeSort" column="route_sort"/>
<result property="agreeNumber" column="agreeNumber"/>
<result property="totalNumber" column="totalNumber"/>
<result property="routeRemark" column="route_remark"/>
<collection property="triggerConditionList" javaType="java.util.List"
resultMap="SpecialDiseaseTriggerConditionResult"/>
<collection property="routePackageList" javaType="java.util.List"
resultMap="SpecialDiseaseRoutePackageResult"/>
</resultMap>
<resultMap type="com.xinelu.manage.vo.specialdiseasetriggercondition.TriggerConditionVO"
id="SpecialDiseaseTriggerConditionResult">
<result property="triggerConditionId" column="triggerConditionId"/>
<result property="routeId" column="route_id"/>
<result property="routeName" column="route_name"/>
<result property="triggerConditionCode" column="trigger_condition_code"/>
<result property="triggerConditionName" column="trigger_condition_name"/>
<result property="triggerConditionOperator" column="trigger_condition_operator"/>
<result property="triggerConditionValue" column="trigger_condition_value"/>
<result property="triggerConditionSort" column="trigger_condition_sort"/>
<result property="triggerConditionRemark" column="trigger_condition_remark"/>
</resultMap>
<resultMap type="com.xinelu.manage.vo.specialdiseaseroutepackage.SpecialDiseaseRoutePackageVO" id="SpecialDiseaseRoutePackageResult">
<result property="specialDiseaseRoutePackageId" column="id"/>
<result property="routeId" column="route_id"/>
<result property="servicePackageId" column="service_package_id"/>
<result property="routeName" column="route_name"/>
<result property="packageName" column="package_name"/>
</resultMap>
<sql id="selectSpecialDiseaseRouteVo">
select id,
department_id,
department_name,
disease_type_id,
disease_type_name,
route_name,
route_code,
version,
route_classify,
release_status,
suit_range,
route_sort,
route_remark,
create_by,
create_time,
update_by,
update_time
from special_disease_route
</sql>
<select id="selectSpecialDiseaseRouteList" parameterType="SpecialDiseaseRoute"
resultMap="SpecialDiseaseRouteResult">
<include refid="selectSpecialDiseaseRouteVo"/>
<where>
<if test="departmentId != null ">
and department_id = #{departmentId}
</if>
<if test="departmentName != null and departmentName != ''">
and department_name like concat('%', #{departmentName}, '%')
</if>
<if test="diseaseTypeId != null ">
and disease_type_id = #{diseaseTypeId}
</if>
<if test="diseaseTypeName != null and diseaseTypeName != ''">
and disease_type_name like concat('%', #{diseaseTypeName}, '%')
</if>
<if test="routeName != null and routeName != ''">
and route_name like concat('%', #{routeName}, '%')
</if>
<if test="routeCode != null and routeCode != ''">
and route_code = #{routeCode}
</if>
<if test="version != null and version != ''">
and version = #{version}
</if>
<if test="routeClassify != null and routeClassify != ''">
and route_classify = #{routeClassify}
</if>
<if test="releaseStatus != null and releaseStatus != ''">
and release_status = #{releaseStatus}
</if>
<if test="suitRange != null and suitRange != ''">
and suit_range = #{suitRange}
</if>
<if test="routeSort != null ">
and route_sort = #{routeSort}
</if>
<if test="routeRemark != null and routeRemark != ''">
and route_remark = #{routeRemark}
</if>
</where>
</select>
<select id="selectDiseaseRouteList"
resultType="com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteVO">
select a.id,
department_id,
department_name,
disease_type_id,
disease_type_name,
route_name,
route_code,
version,
route_classify,
release_status,
suit_range,
route_sort,
route_remark,
create_by,
create_time,
update_by,
update_time,
(select COUNT(1)
from special_disease_node
where route_id = a.id) totalNumber,
(select COUNT(1)
from special_disease_node
where route_id = a.id
and route_check_status = 'AGREE') agreeNumber
from special_disease_route a
<where>
<if test="departmentId != null ">
and department_id = #{departmentId}
</if>
<if test="departmentName != null and departmentName != ''">
and department_name like concat('%', #{departmentName}, '%')
</if>
<if test="diseaseTypeId != null ">
and disease_type_id = #{diseaseTypeId}
</if>
<if test="diseaseTypeName != null and diseaseTypeName != ''">
and disease_type_name like concat('%', #{diseaseTypeName}, '%')
</if>
<if test="routeName != null and routeName != ''">
and route_name like concat('%', #{routeName}, '%')
</if>
<if test="routeCode != null and routeCode != ''">
and route_code = #{routeCode}
</if>
<if test="version != null and version != ''">
and version = #{version}
</if>
<if test="routeClassify != null and routeClassify != ''">
and route_classify = #{routeClassify}
</if>
<if test="releaseStatus != null and releaseStatus != ''">
and release_status = #{releaseStatus}
</if>
<if test="suitRange != null and suitRange != ''">
and suit_range = #{suitRange}
</if>
<if test="routeSort != null ">
and route_sort = #{routeSort}
</if>
<if test="routeRemark != null and routeRemark != ''">
and route_remark = #{routeRemark}
</if>
</where>
</select>
<select id="selectSpecialDiseaseRouteById" parameterType="Long"
resultMap="SpecialDiseaseRouteResult">
<include refid="selectSpecialDiseaseRouteVo"/>
where id = #{id}
</select>
<insert id="insertSpecialDiseaseRoute" parameterType="SpecialDiseaseRoute" useGeneratedKeys="true"
keyProperty="id">
insert into special_disease_route
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="departmentId != null">department_id,
</if>
<if test="departmentName != null">department_name,
</if>
<if test="diseaseTypeId != null">disease_type_id,
</if>
<if test="diseaseTypeName != null">disease_type_name,
</if>
<if test="routeName != null">route_name,
</if>
<if test="routeCode != null">route_code,
</if>
<if test="version != null">version,
</if>
<if test="routeClassify != null">route_classify,
</if>
<if test="releaseStatus != null">release_status,
</if>
<if test="suitRange != null">suit_range,
</if>
<if test="routeSort != null">route_sort,
</if>
<if test="routeRemark != null">route_remark,
</if>
<if test="createBy != null">create_by,
</if>
<if test="createTime != null">create_time,
</if>
<if test="updateBy != null">update_by,
</if>
<if test="updateTime != null">update_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="departmentId != null">#{departmentId},
</if>
<if test="departmentName != null">#{departmentName},
</if>
<if test="diseaseTypeId != null">#{diseaseTypeId},
</if>
<if test="diseaseTypeName != null">#{diseaseTypeName},
</if>
<if test="routeName != null">#{routeName},
</if>
<if test="routeCode != null">#{routeCode},
</if>
<if test="version != null">#{version},
</if>
<if test="routeClassify != null">#{routeClassify},
</if>
<if test="releaseStatus != null">#{releaseStatus},
</if>
<if test="suitRange != null">#{suitRange},
</if>
<if test="routeSort != null">#{routeSort},
</if>
<if test="routeRemark != null">#{routeRemark},
</if>
<if test="createBy != null">#{createBy},
</if>
<if test="createTime != null">#{createTime},
</if>
<if test="updateBy != null">#{updateBy},
</if>
<if test="updateTime != null">#{updateTime},
</if>
</trim>
</insert>
<update id="updateSpecialDiseaseRoute" parameterType="SpecialDiseaseRoute">
update special_disease_route
<trim prefix="SET" suffixOverrides=",">
<if test="departmentId != null">department_id =
#{departmentId},
</if>
<if test="departmentName != null">department_name =
#{departmentName},
</if>
<if test="diseaseTypeId != null">disease_type_id =
#{diseaseTypeId},
</if>
<if test="diseaseTypeName != null">disease_type_name =
#{diseaseTypeName},
</if>
<if test="routeName != null">route_name =
#{routeName},
</if>
<if test="routeCode != null">route_code =
#{routeCode},
</if>
<if test="version != null">version =
#{version},
</if>
<if test="routeClassify != null">route_classify =
#{routeClassify},
</if>
<if test="releaseStatus != null">release_status =
#{releaseStatus},
</if>
<if test="suitRange != null">suit_range =
#{suitRange},
</if>
<if test="routeSort != null">route_sort =
#{routeSort},
</if>
<if test="routeRemark != null">route_remark =
#{routeRemark},
</if>
<if test="createBy != null">create_by =
#{createBy},
</if>
<if test="createTime != null">create_time =
#{createTime},
</if>
<if test="updateBy != null">update_by =
#{updateBy},
</if>
<if test="updateTime != null">update_time =
#{updateTime},
</if>
</trim>
where id = #{id}
</update>
<delete id="deleteSpecialDiseaseRouteById" parameterType="Long">
delete
from special_disease_route
where id = #{id}
</delete>
<delete id="deleteSpecialDiseaseRouteByIds" parameterType="String">
delete from special_disease_route where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<select id="departmentRouteByDepartmentName" resultType="com.xinelu.manage.vo.department.DepartmentVO">
select dt.id,
dt.department_name,
dt.department_code,
count(sdr.id) AS countNum
from department dt left join special_disease_route sdr on dt.id = sdr.department_id
<where>
<if test="departmentName != null and departmentName != ''">
dt.department_name like concat('%',#{departmentName},'%')
</if>
</where>
GROUP BY dt.id
</select>
<select id="selectSpecialDiseaseRouteAndTriggerById"
resultType="com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteVO"
resultMap="SpecialDiseaseRouteVOResult">
select sdr.id specialDiseaseRouteId,
sdr.department_id,
sdr.department_name,
sdr.disease_type_id,
sdr.disease_type_name,
sdr.route_name,
sdr.route_code,
sdr.version,
sdr.route_classify,
sdr.release_status,
sdr.suit_range,
sdr.route_sort,
sdr.route_remark,
sdtc.id triggerConditionId,
sdtc.route_id,
sdtc.route_name,
sdtc.trigger_condition_code,
sdtc.trigger_condition_name,
sdtc.trigger_condition_operator,
sdtc.trigger_condition_value,
sdtc.trigger_condition_sort,
sdtc.trigger_condition_remark,
sdrp.id specialDiseaseRoutePackageId,
sdrp.route_id,
sdrp.service_package_id,
sdrp.route_name,
sdrp.package_name,
(select COUNT(1)
from special_disease_node
where route_id = specialDiseaseRouteId) totalNumber,
(select COUNT(1)
from special_disease_node
where route_id = specialDiseaseRouteId
and route_check_status = 'AGREE') agreeNumber
from special_disease_route sdr
LEFT JOIN special_disease_node sdn ON sdn.route_id = sdr.id
LEFT JOIN special_disease_trigger_condition sdtc ON sdr.id = sdtc.route_id
LEFT JOIN special_disease_route_package sdrp ON sdr.id = sdrp.route_id
where sdr.id = #{id}
</select>
<select id="selectRouteCheckStatus" resultType="java.lang.Integer">
select COUNT(1)
from special_disease_node
where route_id = #{routeId}
and route_check_status != #{routeCheckStatus}
</select>
</mapper>