jl-jjsp-service/securityControl-modules/securityControl-proteam/target/classes/mapper/SupervisorMapper.xml

354 lines
19 KiB
XML
Raw Permalink Normal View History

2025-09-24 11:10:04 +08:00
<?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.sercurityControl.proteam.mapper.SupervisorMapper">
<!--查询全部 单项工程数量 编码-->
<select id="getAllProNum" resultType="java.lang.String">
select distinct jsi.single_project_code
from jj_single_info jsi
where jsi.delete_flag=0 and jsi.single_project_code is not null
<if test="type!=null and type!='' ">
AND jsi.is_stop='1'
</if>
</select>
<!--查询全部 单项工程数量 编码-->
<select id="getAllProNum2" resultType="java.lang.String">
select parent_pro_no
from tb_new_pro
where is_pro='2' and is_flag=0
<if test="type!=null and type!='' ">
and pro_status in(2,3)
</if>
</select>
<select id="getSgProNum" resultType="java.lang.String">
select distinct jsi.single_project_code
from jj_single_info jsi
left join jj_class_meetting jcm on jcm.single_project_code=jsi.single_project_code AND jcm.current_constr_date=CURRENT_DATE() and jcm.delete_flag=0
where jsi.delete_flag=0 AND jcm.id is not null
and jsi.safety_project_status in('05')
</select>
<select id="getSgProNum2" resultType="java.lang.String">
select distinct pro.id
from tb_new_pro pro
LEFT JOIN jj_class_meetting cm on cm.prj_code=pro.parent_pro_no AND cm.current_constr_date=CURRENT_DATE() and cm.delete_flag=0
WHERE pro.is_pro='2' and cm.id is not null
AND pro.is_flag = '0' and pro_status not in(2,3)
</select>
<select id="getWsgProNum" resultType="java.lang.String">
select distinct jsi.single_project_code
from jj_single_info jsi
left join jj_class_meetting jcm on jcm.single_project_code=jsi.single_project_code AND jcm.current_constr_date=CURRENT_DATE()
where jsi.delete_flag=0 AND jcm.id is null
and jsi.safety_project_status in('05')
</select>
<!--周计划-->
<select id="getWeekRiskNumByWeekTime" resultType="java.util.Map" parameterType="com.sercurityControl.proteam.domain.dto.LoginDto" >
SELECT
COUNT(IF(jsp.re_assessment_risk_level = '2',1,NULL)) AS twoRisk,
COUNT(IF(jsp.re_assessment_risk_level = '3' ,1,NULL)) AS threeRisk,
COUNT(IF((jsp.re_assessment_risk_level = '4'),1,NULL)) AS foureRisk,
COUNT(IF((jsp.re_assessment_risk_level = '5' ),1,NULL)) AS fiveRisk
FROM jj_weeks_plan wplan
LEFT JOIN jj_risk_precaution jsp on jsp.id=wplan.risk_precaution_id AND jsp.delete_flag = 0
where wplan.delete_flag=0 and wplan.plan_status in('04','4')
and (DATE_FORMAT(wplan.planned_start_date, '%Y-%m-%d') BETWEEN #{startTime} and #{endTime}
or DATE_FORMAT(wplan.planned_end_date, '%Y-%m-%d') BETWEEN #{startTime} and #{endTime}) and jsp.re_assessment_risk_level IN ('2','3','4','5')
<if test='isSup=="3"'>
and wplan.build_unit_code=#{orgId}
</if>
</select>
<!--查询全部周计划-->
<select id="AllWeekPlan" resultType="com.sercurityControl.proteam.domain.vo.WeekPlanVo" parameterType="com.sercurityControl.proteam.domain.dto.LoginDto" >
select so.city_name cityName ,jsp.re_assessment_risk_level riskLevel,
COUNT(IF(jsp.re_assessment_risk_level IS not null ,1,NULL)) AS num
from sys_org so
left join jj_weeks_plan jwp on so.org_id=jwp.build_unit_code and
jwp.delete_flag=0 and jwp.plan_status in('04','4') and
(jwp.planned_start_date BETWEEN #{startTime} and #{endTime}
or jwp.planned_end_date BETWEEN #{startTime} and #{endTime})
LEFT JOIN jj_risk_precaution jsp on jsp.id=jwp.risk_precaution_id AND jsp.delete_flag = 0
WHERE jsp.re_assessment_risk_level IN ('2','3','4','5')
GROUP BY city_name,jsp.re_assessment_risk_level
</select>
<!--查询全部周计划-->
<select id="planList" resultType="com.sercurityControl.proteam.domain.vo.WeekPlanVo" parameterType="com.sercurityControl.proteam.domain.dto.LoginDto" >
select jsp.re_assessment_risk_level riskLevel,COUNT(IF(jsp.re_assessment_risk_level IS not null ,1,NULL)) AS num
from jj_weeks_plan jwp
LEFT JOIN jj_risk_precaution jsp on jsp.id=jwp.risk_precaution_id AND jsp.delete_flag = 0
WHERE (jwp.planned_start_date BETWEEN #{startTime} and #{endTime}
or jwp.planned_end_date BETWEEN #{startTime} and #{endTime})
and jwp.delete_flag=0 and jwp.plan_status in ('04','4') and jsp.re_assessment_risk_level IN ('2','3','4','5')
GROUP BY jsp.re_assessment_risk_level
</select>
<!--查询日计划-->
<select id="getDutyTaskMaps" resultType="com.sercurityControl.proteam.dutyTask.domain.ClassMettingCheckVo" parameterType="com.sercurityControl.proteam.domain.dto.LoginDto" >
select IFNULL(cmc.is_check ,0)state, count(1) num
from jj_class_meetting cm
left join t_class_metting_check cmc on cm.id=cmc.class_id and (cmc.quality_user='AU' or cmc.quality_user is null)
where cm.current_constr_date=CURRENT_DATE
GROUP BY cmc.is_check
</select>
<!--查询督查数量-->
<select id="getAllTaskNum" resultType="java.lang.Integer" parameterType="com.sercurityControl.proteam.domain.dto.LoginDto" >
select count(1) num
from jj_class_meetting cm
left join t_class_metting_check cmc on cm.id=cmc.class_id and (cmc.quality_user='AU' or cmc.quality_user is null)
where cm.current_constr_date=#{times} and cm.delete_flag=0
<if test="type!=null and type!=''">
and cmc.is_check=#{type}
</if>
</select>
<select id="getWzList" resultType="com.sercurityControl.proteam.domain.vo.MapsVo">
select level_id status
FROM t_notice_voi tnv
where tnv.status NOT in(6,8,9) and create_day=CURRENT_DATE()
</select>
<select id="getAllWzNum" resultType="java.lang.Integer" parameterType="com.sercurityControl.proteam.domain.dto.LoginDto">
select count(1) num
FROM t_notice_voi tnv
where tnv.status NOT in(6,8,9) and create_day=CURRENT_DATE()
and (tnv.sup_type is null or sup_type='1' or sup_type='3' )
<if test="type!=null and type!=''">
and level_id=#{type}
</if>
</select>
<select id="getZgNum" resultType="java.lang.Integer">
select count(1) num
FROM t_notice_voi tnv
where tnv.status in(2,5)
and create_day=CURRENT_DATE and (tnv.sup_type is null or sup_type='1')
</select>
<!--查询值班员任务分配情况-->
<select id="getUserList" resultType="com.sercurityControl.proteam.domain.vo.MapsVo">
select su.user_name status,ANY_VALUE(ub.scheduling_name) name,ANY_VALUE(su.id) userId
from sys_user su
left JOIN sys_role sr on su.role_id =sr.id
left join tb_user_banding ub on ub.login_user_id=su.id and ub.banding_date=CURRENT_DATE
WHERE su.`status`='0' and sr.`status`='0' AND sr.role_code='dcry-001' and su.on_duty=1
GROUP by su.user_name
</select>
<select id="getTaskNum" resultType="java.lang.Integer">
select count(1)
FROM t_class_metting_check
WHERE check_user=#{userId} and create_time=#{times}
</select>
<!--查询违章数量-->
<select id="getWzNumByUser" resultType="java.lang.Integer" >
select COUNT(1)
FROM t_notice_voi tnv
where tnv.status NOT in(6,8,9) and create_day=#{times}
AND iss_user=#{userId}
</select>
<select id="getXsNum" resultType="java.lang.Integer">
select count(1) num
from t_class_metting_check cmc
where cmc.check_user=#{userId} and cmc.create_time=#{times} and cmc.is_check='1'
</select>
<!--待审核数据-->
<select id="getViolationAudit" resultType="com.sercurityControl.proteam.dutyTask.domain.NoticeVoiVo">
select DISTINCT tnv.id,tnv.ticket_no ticketNo,tnv.class_id classId,tnv.pro_name proName,tnv.create_time createDay,
voi_type ,voi_yj ,IFNULL(level_id,'手动下发') noticeLevel,
IFNULL(type,'手动下发') noticeType ,content,so.city_name orgName,iss_user userId ,'待审核' `status`,tnv.`status` state,
su.user_name userName,ub.scheduling_name bindName,cm.re_assessment_risk_level riskLevel,
IFNULL(ub.scheduling_name,su.user_name) name
from t_notice_voi tnv
left join jj_class_meetting cm on cm.id=tnv.class_id
left join sys_org so on tnv.org=so.org_id
left join sys_user su on su.id=tnv.iss_user
left join tb_user_banding ub on ub.login_user_id=tnv.iss_user and ub.banding_date=CURRENT_DATE()
where tnv.`status`='7' and ( tnv.sup_type is null or sup_type='1' or sup_type='3') AND tnv.is_flag=0
union all
select DISTINCT tnv.id,tnv.ticket_no ticketNo,tnv.class_id classId,tnv.pro_name proName,tnv.create_time createDay,
voi_type ,voi_yj ,IFNULL(level_id,'手动下发') noticeLevel, IFNULL(type,'手动下发') noticeType
,content,so.city_name orgName,iss_user userId ,
(case
when tnv.`status`=8 then '未通过'
when tnv.`status`=1 then '未处理'
when tnv.`status`=2 then '已整改'
when tnv.`status`=4 then '申诉中'
when tnv.`status`=7 then '待审核'
when tnv.`status`=5 then '整改已归档'
when tnv.`status`=9 then '待下发'
ELSE '已审核' end) `status`,tnv.`status` state,
su.user_name userName,ub.scheduling_name bindName,cm.re_assessment_risk_level riskLevel,
IFNULL(ub.scheduling_name,su.user_name) name
from t_notice_voi tnv
left join jj_class_meetting cm on cm.id=tnv.class_id
left join sys_org so on tnv.org=so.org_id
left join sys_user su on su.id=tnv.iss_user
left join tb_user_banding ub on ub.login_user_id=tnv.iss_user and ub.banding_date=CURRENT_DATE()
where tnv.create_time=CURRENT_DATE() AND tnv.`status` not in('7','9') and ( tnv.sup_type is null or sup_type='1' or sup_type='3') AND tnv.is_flag=0
</select>
<!--人员查询统计-->
<select id="people" resultType="com.sercurityControl.proteam.domain.vo.MapsVo">
select count(DISTINCT cmp.id_number) num,cm.work_day AS status
from t_class_metting cm
left join t_class_metting_people cmp on cm.class_id=cmp.class_id
where cm.del_flag=0
and cm.work_day in(
<foreach collection="dateTimes" item="item" separator=",">
#{item}
</foreach>
)
<if test='isSup=="3"'>
and cm.org=#{orgId}
</if>
GROUP BY cm.work_day
</select>
<!--值长-日计划统计-->
<select id="getTicketNum" resultType="java.lang.Integer">
select COUNT(1) num
from jj_ticket tti
where tti.ticket_status='05' AND tti.delete_flag=0
and curdate() BETWEEN DATE_FORMAT(planned_start_date, '%Y-%m-%d') and DATE_FORMAT(planned_end_date, '%Y-%m-%d')
union all
select COUNT(1) num
from jj_ticket tti
left join jj_class_meetting cm on tti.id=cm.ticket_id and cm.current_constr_date=curdate() AND cm.delete_flag='0'
where tti.ticket_status='05' AND tti.delete_flag=0
and curdate() BETWEEN DATE_FORMAT(planned_start_date, '%Y-%m-%d') and DATE_FORMAT(planned_end_date, '%Y-%m-%d')
and cm.id is not null
union all
select COUNT(1) num
from jj_ticket tti
left join jj_class_meetting cm on tti.id=cm.ticket_id and cm.current_constr_date=curdate() AND cm.delete_flag='0'
where tti.ticket_status='05' AND tti.delete_flag=0
and curdate() BETWEEN DATE_FORMAT(planned_start_date, '%Y-%m-%d') and DATE_FORMAT(planned_end_date, '%Y-%m-%d')
and cm.id is null
union ALL
select COUNT(1) num
from jj_ticket tti
left join jj_class_meetting cm on tti.id=cm.ticket_id and cm.current_constr_date=curdate() AND cm.delete_flag='0'
left join t_user_handle tuh on tuh.fzr_num=tti.ticket_no and tuh.type=9
where tti.ticket_status='05' AND tti.delete_flag=0
and curdate() BETWEEN DATE_FORMAT(planned_start_date, '%Y-%m-%d') and DATE_FORMAT(planned_end_date, '%Y-%m-%d')
and cm.id is null
and tuh.id is NOT null
union ALL
select COUNT(1) num
from jj_ticket tti
left join jj_class_meetting cm on tti.id=cm.ticket_id and cm.current_constr_date=curdate() AND cm.delete_flag='0'
left join t_user_handle tuh on tuh.fzr_num=tti.ticket_no and tuh.type=9
where tti.ticket_status='05' AND tti.delete_flag=0
and curdate() BETWEEN DATE_FORMAT(planned_start_date, '%Y-%m-%d') and DATE_FORMAT(planned_end_date, '%Y-%m-%d')
and cm.id is null
and tuh.id is null
</select>
<select id="getDayPlanList" resultType="com.sercurityControl.proteam.domain.vo.MapsVo">
select c.org_id orgId,c.city_name name,d.num totalNum,c.num executedNum
from (
select so.org_id,so.city_name,IFNULL( a.num,0) num
FROM sys_org so
LEFT JOIN
(
select count(1) num,0,cm.build_unit_code org
from jj_class_meetting cm
where cm.current_constr_date=curdate() and cm.delete_flag='0'
GROUP BY cm.build_unit_code
)a on a.org=so.org_id
)c
left join (
select so.org_id, so.city_name,IFNULL(a.num,0) num
FROM sys_org so
LEFT JOIN
(
select count(1) num,tti.build_unit_code org
FROM jj_ticket tti
where tti.ticket_status='05' AND tti.delete_flag=0
and curdate() BETWEEN DATE_FORMAT(planned_start_date, '%Y-%m-%d') and DATE_FORMAT(planned_end_date, '%Y-%m-%d')
GROUP BY tti.build_unit_code
)a on a. org=so.org_id
)d on c.org_id=d.org_id
ORDER BY totalNum DESC,executedNum DESC
</select>
<!--值长-人员统计-->
<select id="getClassPeopleNum"
resultType="com.sercurityControl.proteam.domain.vo.DutyPersonCountVo$PersonnelCountVo">
SELECT jdc.`value` AS personTypeName,
ANY_VALUE(jdc.code_value) AS personType,
COUNT(1) AS num
FROM jj_class_meeting_people jcmp
LEFT JOIN jj_class_meetting jcm ON jcm.id = jcmp.tool_box_talk_id
LEFT JOIN jj_data_code jdc ON IFNULL(jcmp.position_code,'0900107') = jdc.code_value AND jdc.`code` = 'POSITION_CODE'
WHERE DATE_FORMAT(jcm.current_constr_date, '%Y-%m-%d') = CURRENT_DATE() AND jcmp.delete_flag = 0 AND jcm.delete_flag = 0 AND jcmp.position_flag = 1
<if test='isSup=="3"'>
AND jcm.build_unit_code=#{orgId}
</if>
GROUP BY jdc.`value`
</select>
<!--查询已入库和未入库的人员-->
<select id="getIsBePutInStorage" resultType="java.lang.Integer">
SELECT COUNT(1) AS num
FROM jj_class_meeting_people jcmp
LEFT JOIN jj_class_meetting jcm ON jcm.id = jcmp.tool_box_talk_id
LEFT JOIN jj_user jju ON jcmp.personnel_id = jju.id AND jju.delete_flag = 0
WHERE DATE_FORMAT(jcm.current_constr_date, '%Y-%m-%d') = CURRENT_DATE() AND jcmp.delete_flag = 0 AND jcm.delete_flag = 0 AND jcmp.position_flag = 1 AND jju.id IS NOT NULL
UNION ALL
SELECT COUNT(1) AS num
FROM jj_class_meeting_people jcmp
LEFT JOIN jj_class_meetting jcm ON jcm.id = jcmp.tool_box_talk_id
LEFT JOIN jj_user jju ON jcmp.personnel_id = jju.id AND jju.delete_flag = 0
WHERE DATE_FORMAT(jcm.current_constr_date, '%Y-%m-%d') = CURRENT_DATE() AND jcmp.delete_flag = 0 AND jcm.delete_flag = 0 AND jcmp.position_flag = 1 AND jju.id IS NULL
</select>
<select id="getProNums" resultType="java.lang.Integer">
SELECT count(distinct jsi.single_project_code)
from jj_single_info jsi
where jsi.delete_flag=0 and jsi.single_project_code is not null
UNION ALL
select count(distinct jsi.single_project_code)
from jj_single_info jsi
left join jj_class_meetting jcm on jcm.single_project_code=jsi.single_project_code AND jcm.current_constr_date=CURRENT_DATE() and jcm.delete_flag=0
where jsi.delete_flag=0 AND jcm.id is not null
and jsi.safety_project_status in('05')
UNION ALL
SELECT count(distinct jsi.single_project_code)
from jj_single_info jsi
where jsi.delete_flag=0 and jsi.single_project_code is not null
AND jsi.is_stop='1'
UNION ALL
select count(distinct jsi.single_project_code)
from jj_single_info jsi
left join jj_class_meetting jcm on jcm.single_project_code=jsi.single_project_code AND jcm.current_constr_date=CURRENT_DATE() and jcm.delete_flag=0
where jsi.delete_flag=0 AND jcm.id is null
and jsi.safety_project_status in('05')
</select>
<select id="getWarnByUser" resultType="java.lang.String">
select count(1)
from jj_warn_info
where warn_day=#{times}
union ALL
select count(1)
from jj_warn_info
where handle=1 and warn_day=#{times}
</select>
<select id="getWarnByUserId" resultType="java.lang.Integer">
select count(1)
from jj_warn_info jwi
left join jj_data_code jdc on jdc.code_value=jwi.vlotage_level and jdc.`code`='voltage_level'
where jwi.warn_day=#{times} and jwi.user_id=#{userId} and jdc.remarks='jsb'
<if test="type!=null and type!=''">
and jwi.handle=1
</if>
</select>
<!--查询日计划数据-新的数据源 日计划总数/已执行总数/未执行总数-->
<select id="getPsJjrjh" resultType="java.lang.Integer">
SELECT COUNT(*) FROM ps_jjrjh WHERE DATE_FORMAT(jh_kgsj,'%Y-%m-%d') = #{startTime} AND jh_bs = 'D'
UNION ALL
SELECT COUNT(*) FROM ps_jjrjh WHERE DATE_FORMAT(jh_kgsj,'%Y-%m-%d') = #{startTime} AND jh_bs = 'D' AND status IN ('2','4','5','7','10')
UNION ALL
SELECT COUNT(*) FROM ps_jjrjh WHERE DATE_FORMAT(jh_kgsj,'%Y-%m-%d') = #{startTime} AND jh_bs = 'D' AND `status` NOT IN ('2','4','5','7','10')
</select>
</mapper>