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

162 lines
9.5 KiB
XML
Raw 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.dutyTask.mapper.HistoryMapper">
<!--历史记录 1.周计划 2.日计划 3.作业票-->
<select id="getHistoryByDateType" resultType="java.util.Map">
<if test="type == 1">
SELECT COUNT(IF(jsp.re_assessment_risk_level = '2',1,NULL)) AS num
FROM jj_weeks_plan jwp
LEFT JOIN (
select distinct prj_type,single_project_code,delete_flag
from jj_single_info
where delete_flag=0
) jsi on jwp.single_project_code=jsi.single_project_code
LEFT JOIN jj_risk_precaution jsp on jsp.id=jwp.risk_precaution_id AND jsp.delete_flag = 0
<where>
jsp.re_assessment_risk_level = '2' AND jwp.delete_flag = '0'
<if test="dateType == 1">
AND #{startTime} BETWEEN DATE_FORMAT(jwp.planned_start_date, '%Y-%m-%d') AND DATE_FORMAT(jwp.planned_end_date, '%Y-%m-%d') AND jwp.plan_status = '04'
</if>
<if test="dateType != 1">
AND (DATE_FORMAT(jwp.planned_start_date, '%Y-%m-%d') BETWEEN #{startTime} and #{endTime} OR jwp.planned_end_date BETWEEN #{startTime} AND #{endTime}) AND jwp.plan_status = '04'
</if>
<if test="proType!='' and proType!=null">
and jsi.prj_type=#{proType}
</if>
</where>
UNION ALL
SELECT COUNT(IF(jsp.re_assessment_risk_level = '3',1,NULL)) AS num
FROM jj_weeks_plan jwp
LEFT JOIN (
select distinct prj_type,single_project_code,delete_flag
from jj_single_info
where delete_flag=0
) jsi on jwp.single_project_code=jsi.single_project_code
LEFT JOIN jj_risk_precaution jsp on jsp.id=jwp.risk_precaution_id AND jsp.delete_flag = 0
<where>
jsp.re_assessment_risk_level = '3' AND jwp.delete_flag = '0'
<if test="dateType == 1">
AND #{startTime} BETWEEN DATE_FORMAT(jwp.planned_start_date, '%Y-%m-%d') AND DATE_FORMAT(jwp.planned_end_date, '%Y-%m-%d') AND jwp.plan_status = '04'
</if>
<if test="dateType != 1">
AND (DATE_FORMAT(jwp.planned_start_date, '%Y-%m-%d') BETWEEN #{startTime} and #{endTime} OR jwp.planned_end_date BETWEEN #{startTime} AND #{endTime}) AND jwp.plan_status = '04'
</if>
<if test="proType!='' and proType!=null">
and jsi.prj_type=#{proType}
</if>
</where>
</if>
<if test="type == 2">
SELECT COUNT(*) AS num
FROM jj_day_plan jjdp
WHERE DATE_FORMAT(jjdp.planned_start_date, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime} AND jjdp.exec_status NOT IN (2) AND jjdp.plan_status = '04' AND jjdp.delete_flag = 0
UNION ALL
SELECT COUNT(*) AS num
FROM jj_day_plan jjdp
WHERE DATE_FORMAT(jjdp.planned_start_date, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime} AND jjdp.exec_status = 1 AND jjdp.plan_status = '04' AND jjdp.delete_flag = 0
</if>
<if test="type == 3">
SELECT COUNT(*) AS num
FROM jj_ticket tti
WHERE tti.delete_flag= 0 AND tti.ticket_type = 'A'
<if test="dateType == 1">
AND ( ( #{startTime} BETWEEN DATE_FORMAT(tti.planned_start_date, '%Y-%m-%d') AND DATE_FORMAT(tti.planned_end_date, '%Y-%m-%d') AND tti.ticket_status IN ('05')) or
( #{startTime} BETWEEN DATE_FORMAT(tti.planned_start_date, '%Y-%m-%d') AND DATE_FORMAT(tti.planned_end_date, '%Y-%m-%d') AND tti.ticket_status IN ('06')
and DATE_FORMAT(tti.update_time, '%Y-%m-%d') >=#{startTime} )
)
</if>
<if test="dateType != 1">
AND (((DATE_FORMAT(tti.planned_start_date, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime} OR
DATE_FORMAT(tti.planned_end_date, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime}) AND tti.ticket_status
IN ('05') ) OR
((DATE_FORMAT(tti.planned_start_date, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime} OR
DATE_FORMAT(tti.planned_end_date, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime}) AND tti.ticket_status
IN ('06') and DATE_FORMAT(tti.update_time, '%Y-%m-%d') >=#{endTime} )
)
</if>
UNION ALL
SELECT COUNT(*) AS num
FROM jj_ticket tti
WHERE tti.delete_flag= 0 AND tti.ticket_type = 'B'
<if test="dateType == 1">
AND ( ( #{startTime} BETWEEN DATE_FORMAT(tti.planned_start_date, '%Y-%m-%d') AND DATE_FORMAT(tti.planned_end_date, '%Y-%m-%d') AND tti.ticket_status IN ('05')) or
( #{startTime} BETWEEN DATE_FORMAT(tti.planned_start_date, '%Y-%m-%d') AND DATE_FORMAT(tti.planned_end_date, '%Y-%m-%d') AND tti.ticket_status IN ('06')
and DATE_FORMAT(tti.update_time, '%Y-%m-%d') >=#{startTime} )
)
</if>
<if test="dateType != 1">
AND (((DATE_FORMAT(tti.planned_start_date, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime} OR
DATE_FORMAT(tti.planned_end_date, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime}) AND tti.ticket_status
IN ('05') ) OR
((DATE_FORMAT(tti.planned_start_date, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime} OR
DATE_FORMAT(tti.planned_end_date, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime}) AND tti.ticket_status
IN ('06') and DATE_FORMAT(tti.update_time, '%Y-%m-%d') >=#{endTime} )
)
</if>
<!-- <if test="dateType != 1">-->
<!-- AND (DATE_FORMAT(tti.planned_start_date, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime} OR DATE_FORMAT(tti.planned_end_date, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime}) AND tti.ticket_status IN ('05','06')-->
<!-- </if>-->
</if>
</select>
<select id="getTicketPageList" resultType="com.sercurityControl.proteam.domain.vo.TicketPageVo">
SELECT tti.id ticketId,tti.working_team_name teamName,tti.construction_headcount userNum,tti.planned_start_date planStartTime,tti.planned_end_date planEndTime,
tti.start_time startTime,tti.end_time endTime,tti.single_project_name proName,tti.ticket_no ticketNo,
tti.build_unit_code,tti.update_time,tti.create_time ,tti.re_assessment_risk_level riskLevel ,so.city_name orgName,
tti.ticket_status ticketStatus, jtp.real_name AS teamLeader
FROM jj_ticket tti
LEFT JOIN jj_team jt on tti.team_id=jt.id
left join jj_team_people jtp on jtp.team_id=jt.id AND jtp.position_code = '0900101' and jtp.delete_flag=0
left join sys_org so on so.org_id=tti.build_unit_code
WHERE tti.delete_flag= 0 AND tti.ticket_type =#{ticketType}
<if test="types == 1">
AND ( ( #{times} BETWEEN DATE_FORMAT(tti.planned_start_date, '%Y-%m-%d') AND DATE_FORMAT(tti.planned_end_date, '%Y-%m-%d') AND tti.ticket_status IN ('05')) or
( #{times} BETWEEN DATE_FORMAT(tti.planned_start_date, '%Y-%m-%d') AND DATE_FORMAT(tti.planned_end_date, '%Y-%m-%d') AND tti.ticket_status IN ('06')
and DATE_FORMAT(tti.update_time, '%Y-%m-%d') >=#{times} )
)
</if>
<if test="types == 2">
AND (((DATE_FORMAT(tti.planned_start_date, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime} OR
DATE_FORMAT(tti.planned_end_date, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime}) AND tti.ticket_status
IN ('05') ) OR
((DATE_FORMAT(tti.planned_start_date, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime} OR
DATE_FORMAT(tti.planned_end_date, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime}) AND tti.ticket_status
IN ('06') and DATE_FORMAT(tti.update_time, '%Y-%m-%d') >=#{endTime} )
)
</if>
<if test="orgId!=null and orgId!=''">
AND tti.build_unit_code IN (
<foreach collection="buildCodeList" item="item" separator=",">
#{item}
</foreach>
)
</if>
<if test="ticketNo != null and ticketNo != ''">
AND INSTR(tti.ticket_no,#{ticketNo}) > 0
</if>
<if test="proName != null and proName != ''">
AND INSTR(tti.single_project_name,#{proName}) > 0
</if>
<if test="riskLevel!=null and riskLevel!=''">
AND tti.re_assessment_risk_level IN (
<foreach collection="riskTypeList" item="item" separator=",">
#{item}
</foreach>
)
</if>
</select>
<select id="getTicketInfo" resultType="com.sercurityControl.proteam.domain.vo.TicketInfoData" >
SELECT
GROUP_CONCAT(IFNULL(jrp.work_content, '')) AS workContent,
GROUP_CONCAT(IFNULL(jrp.work_site_name, '')) AS siteName,
GROUP_CONCAT(IFNULL(jrp.work_procedure, '')) AS workGx
FROM jj_weeks_ticket jwt
LEFT JOIN jj_weeks_plan jwp ON jwp.id = jwt.week_id
LEFT JOIN jj_risk_precaution jrp ON jrp.id = jwp.risk_precaution_id
WHERE jwt.ticket_id = #{ticketId} and jwt.week_id is not null
LIMIT 1
</select>
</mapper>