YSpeaManager/src/main/resources/mappers/statistics/resStatistcsMapper.xml

117 lines
4.7 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.bonus.boot.manager.statistics.dao.ResStatisticsDao">
<select id="getList" resultType="com.bonus.boot.manager.basic.entity.MapBean" parameterType="com.bonus.boot.manager.basic.entity.MapBean">
SELECT a.phy_appont_time as `key`,COUNT(a.id) as `value`
FROM pm_base_phy_appont a
LEFT JOIN pm_base_physical b on b.id = a.user_id
WHERE a.if_cancel ='2' and b.is_active = '1'
<if test="hospitalId !=null and hospitalId !='null'">
<if test="type == 1">
<if test="userId != 1">
<if test="hospitalId == 35">
and a.hospital_id = '35' AND (check_content_id != "" OR check_content_id IS NOT NULL)
</if>
<if test="hospitalId != 35">
and a.hospital_id = #{hospitalId}
</if>
</if>
</if>
<if test="type == 2">
and a.hospital_id = '35' AND a.is_special != '0'
</if>
</if>
<if test="personName !=null and personName !='null'">
and b.phy_name like concat ('%',#{personName},'%')
</if>
<if test="reservationTime !=null and reservationTime !='null'">
and a.phy_appont_time = #{reservationTime}
</if>
<if test="phyTimeStart !=null and phyTimeStart !='null'">
and a.phy_appont_time between #{phyTimeStart} and #{phyTimeEnd}
</if>
GROUP BY a.phy_appont_time
</select>
<select id="getChildList" resultType="com.bonus.boot.manager.basic.entity.PersonnelLibraryBean" parameterType="com.bonus.boot.manager.basic.entity.PersonnelLibraryBean">
SELECT
a.id AS personId,
b.id AS reservationId,
a.phy_name AS personName,
a.idcard AS idNumber,
a.age,
case when check_content_id != "" THEN '常规体检'
else '职业体检' END AS checkContentId,
-- CASE
-- WHEN check_content_id = 1 THEN
-- '心血管'
-- WHEN check_content_id = 2 THEN
-- '肿瘤'
-- WHEN check_content_id = 3 THEN
-- '综合'
-- ELSE
-- '' end AS checkContentId,
IF (a.sex = '0', '男', '女') AS sex,
# IF (b.if_edu = '0', '否', '是') AS ifEdu,
IF(a.if_higher = '0', '否', '是') AS higherJob,
comb_name as combName,
a.telep_number AS phone,
pmo.`NAME` AS department,
b.phy_appont_time AS reservationTime,
pbh.hospital AS NAME,
b.appont_time AS operateTime,
sysu.username AS operatePerson,
pbh.id AS id,
if_cancel AS ifCancel
FROM
pm_base_physical a
LEFT JOIN (
SELECT
*
FROM
pm_base_phy_appont
WHERE
if_cancel = '2' AND (check_content_id != "" OR check_content_id IS NOT NULL)
) b ON a.id = b.user_id and a.is_active ='1'
LEFT JOIN pm_organization pmo ON pmo.ID = a.depart_id and pmo.IS_ACTIVE ='1'
LEFT JOIN pm_base_hospital pbh ON pbh.id = b.hospital_id and pbh.is_active = '1'
LEFT JOIN sys_user sysu ON sysu.id = b.appoint_name_id and sysu.is_active ='1'
WHERE
b.id IS NOT NULL
<if test="id !=null and id !='null'">
and pbh.id = #{id}
</if>
<if test="personName !=null and personName !='null'">
and a.phy_name like concat ('%',#{personName},'%')
</if>
<if test="reservationTime !=null and reservationTime !=''">
and b.phy_appont_time = #{reservationTime}
</if>
<if test="name !=null and name !=''">
and b.hospital_id = #{name}
</if>
<if test="phyTimeEnd !=null and phyTimeEnd !=''">
and b.phy_appont_time between #{phyTimeStart} and #{phyTimeEnd}
</if>
<if test="userId != 1">
<if test="hospId !=null and hospId !=''">
and b.hospital_id = #{hospId}
</if>
</if>
</select>
<select id="getHospitalId" resultType="java.lang.String">
select hospital_id AS hospitalId from sys_user where phone = #{phone}
</select>
<select id="getHospitalIds" resultType="java.lang.String">
select hospital_id AS hospitalId from sys_user where phone = #{phone}
</select>
</mapper>