qa-prevention-gwj/src/main/resources/mybatis/datasource/highriskwork/HighWorkMapper.xml

1396 lines
50 KiB
XML
Raw Normal View History

2023-11-07 09:32:12 +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.zcloud.mapper.datasource.highriskwork.HighWorkMapper">
<!--表名 -->
<sql id="tableName">
BUS_HIGHWORK
</sql>
<!--数据字典表名 -->
<sql id="dicTableName">
SYS_DICTIONARIES
</sql>
<!-- 字段 -->
<sql id="Field">
f.CHECK_NO,
f.BELONGING_CORP,
f.WORK_PLACE,
f.WORK_LONGITUDE,
f.WORK_LATITUDE,
f.WORK_CONTENT,
f.WORK_START_DATE,
f.WORK_END_DATE,
f.WORK_HEIGHT,
f.GUARDIAN_DEPARTMENT_ID,
f.GUARDIAN_USER_ID,
f.APPLY_STATUS,
f.CONSTRUCTION_DEPARTMENT_ID,
f.CONSTRUCTION_USER_ID,
f.CONSTRUCTION_USER_SIGNER_PATH,
f.CONSTRUCTION_USER_SIGNER_TIME,
f.AUDIT_DEPARTMENT_ID,
f.AUDIT_USER_ID,
f.AUDIT_USER_SIGNER_PATH,
f.AUDIT_USER_SIGNER_TIME,
f.APPROVE_DEPARTMENT_ID,
f.APPROVE_USER_ID,
f.APPROVE_USER_SIGNER_PATH,
f.APPROVE_USER_SIGNER_TIME,
f.ACCEPT_DEPARTMENT_ID,
f.ACCEPT_USER_ID,
f.ACCEPT_USER_SIGNER_PATH,
f.ACCEPT_USER_SIGNER_TIME,
f.CONSTRUCTION_CONTENT,
f.AUDIT_CONTENT,
f.APPROVE_CONTENT,
f.ACCEPT_CONTENT,
f.OTHER_PROTECTIVE_MEASURES,
f.HAZARD_IDENTIFICATION,
f.WORK_CORP,
f.APPLY_DEPARTMENT_ID,
f.APPLY_USER,
f.ISDELETE,
f.CREATOR,
f.CREATTIME,
f.OPERATOR,
f.OPERATTIME,
f.CORPINFO_ID,
f.HIGHWORK_ID
</sql>
<!-- 字段用于新增 -->
<sql id="Field2">
CHECK_NO,
BELONGING_CORP,
WORK_PLACE,
WORK_LONGITUDE,
WORK_LATITUDE,
WORK_CONTENT,
WORK_START_DATE,
WORK_END_DATE,
WORK_HEIGHT,
GUARDIAN_DEPARTMENT_ID,
GUARDIAN_USER_ID,
APPLY_STATUS,
CONSTRUCTION_DEPARTMENT_ID,
CONSTRUCTION_USER_ID,
CONSTRUCTION_USER_SIGNER_PATH,
CONSTRUCTION_USER_SIGNER_TIME,
AUDIT_DEPARTMENT_ID,
AUDIT_USER_ID,
AUDIT_USER_SIGNER_PATH,
AUDIT_USER_SIGNER_TIME,
APPROVE_DEPARTMENT_ID,
APPROVE_USER_ID,
APPROVE_USER_SIGNER_PATH,
APPROVE_USER_SIGNER_TIME,
ACCEPT_DEPARTMENT_ID,
ACCEPT_USER_ID,
ACCEPT_USER_SIGNER_PATH,
ACCEPT_USER_SIGNER_TIME,
CONSTRUCTION_CONTENT,
AUDIT_CONTENT,
APPROVE_CONTENT,
ACCEPT_CONTENT,
OTHER_PROTECTIVE_MEASURES,
HAZARD_IDENTIFICATION,
WORK_CORP,
APPLY_DEPARTMENT_ID,
APPLY_USER,
ISDELETE,
CREATOR,
CREATTIME,
OPERATOR,
OPERATTIME,
CORPINFO_ID,
HIGHWORK_ID
</sql>
<!-- 字段值 -->
<sql id="FieldValue">
#{CHECK_NO},
#{BELONGING_CORP},
#{WORK_PLACE},
#{WORK_LONGITUDE},
#{WORK_LATITUDE},
#{WORK_CONTENT},
#{WORK_START_DATE},
#{WORK_END_DATE},
#{WORK_HEIGHT},
#{GUARDIAN_DEPARTMENT_ID},
#{GUARDIAN_USER_ID},
#{APPLY_STATUS},
#{CONSTRUCTION_DEPARTMENT_ID},
#{CONSTRUCTION_USER_ID},
#{CONSTRUCTION_USER_SIGNER_PATH},
#{CONSTRUCTION_USER_SIGNER_TIME},
#{AUDIT_DEPARTMENT_ID},
#{AUDIT_USER_ID},
#{AUDIT_USER_SIGNER_PATH},
#{AUDIT_USER_SIGNER_TIME},
#{APPROVE_DEPARTMENT_ID},
#{APPROVE_USER_ID},
#{APPROVE_USER_SIGNER_PATH},
#{APPROVE_USER_SIGNER_TIME},
#{ACCEPT_DEPARTMENT_ID},
#{ACCEPT_USER_ID},
#{ACCEPT_USER_SIGNER_PATH},
#{ACCEPT_USER_SIGNER_TIME},
#{CONSTRUCTION_CONTENT},
#{AUDIT_CONTENT},
#{APPROVE_CONTENT},
#{ACCEPT_CONTENT},
#{OTHER_PROTECTIVE_MEASURES},
#{HAZARD_IDENTIFICATION},
#{WORK_CORP},
#{APPLY_DEPARTMENT_ID},
#{APPLY_USER},
#{ISDELETE},
#{CREATOR},
#{CREATTIME},
#{OPERATOR},
#{OPERATTIME},
#{CORPINFO_ID},
#{HIGHWORK_ID}
</sql>
<!-- 新增-->
<insert id="save" parameterType="pd">
insert into
<include refid="tableName"></include>
(
<include refid="Field2"></include>
) values (
<include refid="FieldValue"></include>
)
</insert>
<!-- 删除-->
<delete id="delete" parameterType="pd">
update
<include refid="tableName"></include>
set
ISDELETE = '1'
where
HIGHWORK_ID = #{HIGHWORK_ID}
</delete>
<!-- 修改 -->
<update id="edit" parameterType="pd">
update
<include refid="tableName"></include>
set
CHECK_NO = #{CHECK_NO},
BELONGING_CORP = #{BELONGING_CORP},
WORK_PLACE = #{WORK_PLACE},
WORK_LONGITUDE = #{WORK_LONGITUDE},
WORK_LATITUDE = #{WORK_LATITUDE},
WORK_CONTENT = #{WORK_CONTENT},
WORK_START_DATE = #{WORK_START_DATE},
WORK_END_DATE = #{WORK_END_DATE},
WORK_HEIGHT = #{WORK_HEIGHT},
GUARDIAN_DEPARTMENT_ID = #{GUARDIAN_DEPARTMENT_ID},
GUARDIAN_USER_ID = #{GUARDIAN_USER_ID},
APPLY_STATUS = #{APPLY_STATUS},
CONSTRUCTION_DEPARTMENT_ID = #{CONSTRUCTION_DEPARTMENT_ID},
CONSTRUCTION_USER_ID = #{CONSTRUCTION_USER_ID},
CONSTRUCTION_USER_SIGNER_PATH = #{CONSTRUCTION_USER_SIGNER_PATH},
CONSTRUCTION_USER_SIGNER_TIME = #{CONSTRUCTION_USER_SIGNER_TIME},
AUDIT_DEPARTMENT_ID = #{AUDIT_DEPARTMENT_ID},
AUDIT_USER_ID = #{AUDIT_USER_ID},
AUDIT_USER_SIGNER_PATH = #{AUDIT_USER_SIGNER_PATH},
AUDIT_USER_SIGNER_TIME = #{AUDIT_USER_SIGNER_TIME},
APPROVE_DEPARTMENT_ID = #{APPROVE_DEPARTMENT_ID},
APPROVE_USER_ID = #{APPROVE_USER_ID},
APPROVE_USER_SIGNER_PATH = #{APPROVE_USER_SIGNER_PATH},
APPROVE_USER_SIGNER_TIME = #{APPROVE_USER_SIGNER_TIME},
ACCEPT_DEPARTMENT_ID = #{ACCEPT_DEPARTMENT_ID},
ACCEPT_USER_ID = #{ACCEPT_USER_ID},
ACCEPT_USER_SIGNER_PATH = #{ACCEPT_USER_SIGNER_PATH},
ACCEPT_USER_SIGNER_TIME = #{ACCEPT_USER_SIGNER_TIME},
CONSTRUCTION_CONTENT = #{CONSTRUCTION_CONTENT},
AUDIT_CONTENT = #{AUDIT_CONTENT},
APPROVE_CONTENT = #{APPROVE_CONTENT},
ACCEPT_CONTENT = #{ACCEPT_CONTENT},
OTHER_PROTECTIVE_MEASURES = #{OTHER_PROTECTIVE_MEASURES},
HAZARD_IDENTIFICATION = #{HAZARD_IDENTIFICATION},
WORK_CORP = #{WORK_CORP},
APPLY_DEPARTMENT_ID = #{APPLY_DEPARTMENT_ID},
APPLY_USER = #{APPLY_USER},
ISDELETE = #{ISDELETE},
CREATTIME = #{CREATTIME},
CREATOR = #{CREATOR},
OPERATTIME = #{OPERATTIME},
OPERATOR = #{OPERATOR},
CORPINFO_ID = #{CORPINFO_ID},
HIGHWORK_ID = HIGHWORK_ID
where
HIGHWORK_ID = #{HIGHWORK_ID}
</update>
<!-- 验收申请、修改验收部门和人 -->
<update id="editacceptancapplication" parameterType="pd">
update
<include refid="tableName"></include>
set
ACCEPT_DEPARTMENT_ID = #{ACCEPT_DEPARTMENT_ID},
ACCEPT_USER_ID = #{ACCEPT_USER_ID},
APPLY_STATUS = #{APPLY_STATUS},
OPERATTIME = #{OPERATTIME}
where
HIGHWORK_ID = #{HIGHWORK_ID}
</update>
<!-- 通过ID获取数据 -->
<select id="findById" parameterType="pd" resultType="pd">
select
<include refid="Field"></include>,
c.NAME as BELONGING_CORP_NAME,
gd.NAME as GUARDIAN_DEPARTMENT_NAME,
gu.NAME as GUARDIAN_USER_NAME,
IFNULL(GROUP_CONCAT(REPLACE(su.SPECIALUSER_ID,'/',',')),'') as WORK_OPERATOR_ID,
IFNULL(GROUP_CONCAT(REPLACE(su.USERNAME,'/',',')),'') as WORK_OPERATOR_NAME,
IFNULL(GROUP_CONCAT(REPLACE(su.SPECIAL_NUMBER,'/',',')),'') as WORK_OPERATOR_NUMBER,
cd.NAME as CONSTRUCTION_DEPARTMENT_NAME,
cu.NAME as CONSTRUCTION_USER_NAME,
aud.NAME as AUDIT_DEPARTMENT_NAME,
auu.NAME as AUDIT_USER_NAME,
apd.NAME as APPROVE_DEPARTMENT_NAME,
apu.NAME as APPROVE_USER_NAME,
acd.NAME as ACCEPT_DEPARTMENT_NAME,
acu.NAME as ACCEPT_USER_NAME
from
<include refid="tableName"></include> f
left join OA_DEPARTMENT c on c.DEPARTMENT_ID = f.BELONGING_CORP
left join OA_DEPARTMENT gd on gd.DEPARTMENT_ID = f.GUARDIAN_DEPARTMENT_ID
left join SYS_USER gu on gu.USER_ID = f.GUARDIAN_USER_ID
left join BUS_HIGHWORK_OPERATOR ho on ho.HIGHWORK_ID = f.HIGHWORK_ID and ho.ISDELETE = '0'
left join BUS_SPECIALUSER su on su.SPECIALUSER_ID = ho.SPECIALUSER
left join OA_DEPARTMENT cd on cd.DEPARTMENT_ID = f.CONSTRUCTION_DEPARTMENT_ID
left join SYS_USER cu on cu.USER_ID = f.CONSTRUCTION_USER_ID
left join OA_DEPARTMENT aud on aud.DEPARTMENT_ID = f.AUDIT_DEPARTMENT_ID
left join SYS_USER auu on auu.USER_ID = f.AUDIT_USER_ID
left join OA_DEPARTMENT apd on apd.DEPARTMENT_ID = f.APPROVE_DEPARTMENT_ID
left join SYS_USER apu on apu.USER_ID = f.APPROVE_USER_ID
left join OA_DEPARTMENT acd on acd.DEPARTMENT_ID = f.ACCEPT_DEPARTMENT_ID
left join SYS_USER acu on acu.USER_ID = f.ACCEPT_USER_ID
where
f.HIGHWORK_ID = #{HIGHWORK_ID}
</select>
<!-- 列表 -->
<select id="datalistPage" parameterType="page" resultType="pd">
select
<include refid="Field"></include>,
c.NAME as BELONGING_CORP_NAME,
gd.NAME as GUARDIAN_DEPARTMENT_NAME,
gu.NAME as GUARDIAN_USER_NAME,
IFNULL(GROUP_CONCAT(REPLACE(su.SPECIALUSER_ID,'/',',')),'') as WORK_OPERATOR_ID,
IFNULL(GROUP_CONCAT(REPLACE(su.USERNAME,'/',',')),'') as WORK_OPERATOR_NAME,
cd.NAME as CONSTRUCTION_DEPARTMENT_NAME,
cu.NAME as CONSTRUCTION_USER_NAME,
aud.NAME as AUDIT_DEPARTMENT_NAME,
auu.NAME as AUDIT_USER_NAME,
apd.NAME as APPROVE_DEPARTMENT_NAME,
apu.NAME as APPROVE_USER_NAME,
acd.NAME as ACCEPT_DEPARTMENT_NAME,
acu.NAME as ACCEPT_USER_NAME
from
<include refid="tableName"></include> f
left join OA_DEPARTMENT c on c.DEPARTMENT_ID = f.BELONGING_CORP
left join OA_DEPARTMENT gd on gd.DEPARTMENT_ID = f.GUARDIAN_DEPARTMENT_ID
left join SYS_USER gu on gu.USER_ID = f.GUARDIAN_USER_ID
left join BUS_HIGHWORK_OPERATOR ho on ho.HIGHWORK_ID = f.HIGHWORK_ID and ho.ISDELETE = '0'
left join BUS_SPECIALUSER su on su.SPECIALUSER_ID = ho.SPECIALUSER
left join OA_DEPARTMENT cd on cd.DEPARTMENT_ID = f.CONSTRUCTION_DEPARTMENT_ID
left join SYS_USER cu on cu.USER_ID = f.CONSTRUCTION_USER_ID
left join OA_DEPARTMENT aud on aud.DEPARTMENT_ID = f.AUDIT_DEPARTMENT_ID
left join SYS_USER auu on auu.USER_ID = f.AUDIT_USER_ID
left join OA_DEPARTMENT apd on apd.DEPARTMENT_ID = f.APPROVE_DEPARTMENT_ID
left join SYS_USER apu on apu.USER_ID = f.APPROVE_USER_ID
left join OA_DEPARTMENT acd on acd.DEPARTMENT_ID = f.ACCEPT_DEPARTMENT_ID
left join SYS_USER acu on acu.USER_ID = f.ACCEPT_USER_ID
where f.ISDELETE = '0'
<if test="pd.roleLevel != null and pd.roleLevel != ''"><!-- 权限显示 -->
<choose>
<when test='pd.roleLevel == "0"'>
</when>
<when test='pd.roleLevel == "1"'>
and f.BELONGING_CORP in (${pd.supDeparIds}) or f.GUARDIAN_DEPARTMENT_ID in (${pd.supDeparIds}) or f.CONSTRUCTION_DEPARTMENT_ID in (${pd.supDeparIds}) or f.AUDIT_DEPARTMENT_ID in (${pd.supDeparIds}) or f.APPROVE_DEPARTMENT_ID in (${pd.supDeparIds})
</when>
<when test='pd.roleLevel == "2"'>
and f.CREATOR = #{pd.loginUserId} or f. GUARDIAN_USER_ID = #{pd.loginUserId} or f.CONSTRUCTION_USER_ID = #{pd.loginUserId} or f.AUDIT_USER_ID = #{pd.loginUserId} or f.APPROVE_USER_ID = #{pd.loginUserId}
</when>
</choose>
</if>
<if test="pd.APPLY_STATUS != null and pd.APPLY_STATUS != ''">
<choose>
<when test="pd.APPLY_STATUS == '4-5'">
and f.APPLY_STATUS in ('4','-5','55')
</when>
<when test="pd.APPLY_STATUS == '55-5'">
and f.APPLY_STATUS in ('55','-5','5')
</when>
<when test="pd.APPLY_STATUS == 4">
and f.APPLY_STATUS in ('4','55','5','-5')
</when>
<when test="pd.APPLY_STATUS == 345">
and f.APPLY_STATUS >3
</when>
<when test="pd.APPLY_STATUS == 44">
and f.APPLY_STATUS = '4'
</when>
<when test="pd.APPLY_STATUS == 10">
and f.APPLY_STATUS not in ('4','55','5','-5') and date_format(now(),'%Y-%m-%d %H:%i') > f.WORK_END_DATE
</when>
<when test="pd.APPLY_STATUS == 55 or pd.APPLY_STATUS == 5 or pd.APPLY_STATUS == -5">
and f.APPLY_STATUS = #{pd.APPLY_STATUS}
</when>
<otherwise>
and f.APPLY_STATUS = #{pd.APPLY_STATUS}
and date_format(now(),'%Y-%m-%d %H:%i') >= f.WORK_START_DATE
and f.WORK_END_DATE >= date_format(now(),'%Y-%m-%d %H:%i')
</otherwise>
</choose>
</if>
<if test="pd.KEYWORDS != null and pd.KEYWORDS != ''"><!-- 关键词检索 -->
and
(
f.CHECK_NO LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%')
)
</if>
<if test="pd.CORPINFO_ID != null and pd.CORPINFO_ID != ''">
and f.CORPINFO_ID = #{pd.CORPINFO_ID}
</if>
<if test="pd.CREATOR != null and pd.CREATOR != ''">
and f.CREATOR = #{pd.CREATOR}
</if>
<if test="pd.CONSTRUCTION_USER_ID != null and pd.CONSTRUCTION_USER_ID != ''">
and f.CONSTRUCTION_USER_ID = #{pd.CONSTRUCTION_USER_ID}
</if>
<if test="pd.AUDIT_USER_ID != null and pd.AUDIT_USER_ID != ''">
and f.AUDIT_USER_ID = #{pd.AUDIT_USER_ID}
</if>
<if test="pd.APPROVE_USER_ID != null and pd.APPROVE_USER_ID != ''">
and f.APPROVE_USER_ID = #{pd.APPROVE_USER_ID}
</if>
<if test="pd.ACCEPT_USER_ID != null and pd.ACCEPT_USER_ID != ''">
and f.ACCEPT_USER_ID = #{pd.ACCEPT_USER_ID}
</if>
<if test="pd.WORK_USER != null and pd.WORK_USER != ''">
and (
f.CREATOR = #{pd.WORK_USER}
OR f.CONSTRUCTION_USER_ID = #{pd.WORK_USER}
OR f.AUDIT_USER_ID = #{pd.WORK_USER}
OR f.APPROVE_USER_ID = #{pd.WORK_USER}
OR f.ACCEPT_USER_ID = #{pd.WORK_USER}
)
</if>
<if test="pd.STARTTIME != null and pd.STARTTIME != ''"><!-- 作业申请开始时间开始 -->
and f.WORK_START_DATE &gt;= CONCAT_WS(' ',#{pd.STARTTIME}, '00:00')
</if>
<if test="pd.ENDTIME != null and pd.ENDTIME != ''"><!-- 作业申请开始时间结束 -->
and f.WORK_START_DATE &lt;= CONCAT_WS(' ',#{pd.ENDTIME}, '23:59')
</if>
<!--<choose>
<when test='pd.ISMAIN != null and pd.ISMAIN != "" and pd.ISMAIN == "1"'>
<if test="pd.DEPT_IDS != null and pd.DEPT_IDS != ''">
and
f.APPLY_DEPARTMENT_ID in
<foreach item="item" index="index"
collection="pd.DEPT_IDS" open="(" separator="," close=")">
'${item}'
</foreach>
</if>
</when>
<otherwise>
<choose>
<when test='pd.ISSUPERVISE != null and pd.ISSUPERVISE != "" and pd.ISSUPERVISE == "1"'>
<choose>
<when test="pd.DEPT_IDS != null and pd.DEPT_IDS != ''">
and
f.APPLY_DEPARTMENT_ID in
<foreach item="item" index="index"
collection="pd.DEPT_IDS" open="(" separator="," close=")">
'${item}'
</foreach>
</when>
<otherwise>
and
f.APPLY_DEPARTMENT_ID in (
select
SUB_DEPARTMENT_ID
from
oa_supervision_department osd
where
osd.SUP_DEPARTMENT_ID = #{pd.DEPARTMENT_ID}
and osd.ISDELETE = '0'
and osd.CORPINFO_ID = #{pd.CORPINFO_ID}
)
</otherwise>
</choose>
</when>
<when test="pd.DEPARTMENT_ID != null and pd.DEPARTMENT_ID != ''">
and f.APPLY_DEPARTMENT_ID=#{pd.DEPARTMENT_ID}
</when>
<otherwise>
</otherwise>
</choose>
</otherwise>
</choose>-->
GROUP BY f.HIGHWORK_ID
ORDER BY f.CREATTIME DESC
</select>
<!-- 列表(全部) -->
<select id="listAllMeasures" parameterType="pd" resultType="pd">
select
f.*
<if test="APPLY_STATUS != '1' and APPLY_STATUS != 1">
,eo.STATUS
</if>
from
BUS_HIGHWORK_MEASURES f
<if test="APPLY_STATUS != '1' and APPLY_STATUS != 1">
left join BUS_HIGHWORKTOMEASURES eo on eo.HIGHWORK_MEASURES_ID = f.HIGHWORK_MEASURES_ID
</if>
where f.ISDELETE = '0'
<if test="APPLY_STATUS != '1' and APPLY_STATUS != 1">
and eo.HIGHWORK_ID = #{HIGHWORK_ID}
</if>
ORDER BY f.SORT ASC
</select>
<!-- 列表(全部) -->
<select id="listAll" parameterType="pd" resultType="pd">
select
<include refid="Field"></include>
from
<include refid="tableName"></include> f
</select>
<!-- 批量删除 -->
<delete id="deleteAll" parameterType="String">
update
<include refid="tableName"></include>
set
ISDELETE = '1'
where
HIGHWORK_ID in
<foreach item="item" index="index" collection="ArrayDATA_IDS" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<!-- 待办作业数 -->
<!-- 验收功能和作业流程分开审批后直接归档验收为单独功能增加APPLY_STATUS状态55待验收 -->
<select id="countCheck" parameterType="pd" resultType="pd">
SELECT
COUNT(CASE WHEN (f.APPLY_STATUS+0) &lt; 1 AND f.APPLY_STATUS != '-5' AND f.CREATOR = #{USER_ID} and date_format(now(),'%Y-%m-%d %H:%i') >= f.WORK_START_DATE
and f.WORK_END_DATE >= date_format(now(),'%Y-%m-%d %H:%i') THEN f.HIGHWORK_ID END) COUNTBACK,
COUNT(CASE WHEN f.APPLY_STATUS = '1' AND f.CONSTRUCTION_USER_ID = #{USER_ID} and date_format(now(),'%Y-%m-%d %H:%i') >= f.WORK_START_DATE
and f.WORK_END_DATE >= date_format(now(),'%Y-%m-%d %H:%i') THEN f.HIGHWORK_ID END) COUNTCONSTRUCTION,
COUNT(CASE WHEN f.APPLY_STATUS = '2' AND f.AUDIT_USER_ID = #{USER_ID} and date_format(now(),'%Y-%m-%d %H:%i') >= f.WORK_START_DATE
and f.WORK_END_DATE >= date_format(now(),'%Y-%m-%d %H:%i') THEN f.HIGHWORK_ID END) COUNTAUDIT,
COUNT(CASE WHEN f.APPLY_STATUS = '3' AND f.APPROVE_USER_ID = #{USER_ID} and date_format(now(),'%Y-%m-%d %H:%i') >= f.WORK_START_DATE
and f.WORK_END_DATE >= date_format(now(),'%Y-%m-%d %H:%i') THEN f.HIGHWORK_ID END) COUNTAPPROVE,
COUNT(CASE WHEN f.APPLY_STATUS in ('4','-5') AND f.CONSTRUCTION_USER_ID = #{USER_ID} THEN f.HIGHWORK_ID END) COUNTACCEPTAPPLY,
COUNT(CASE WHEN f.APPLY_STATUS = '55' AND f.ACCEPT_USER_ID = #{USER_ID} THEN f.HIGHWORK_ID END) COUNTACCEPT
FROM <include refid="tableName"></include> f
WHERE f.ISDELETE = '0' AND f.CORPINFO_ID = #{CORPINFO_ID}
</select>
<!-- 列表(统计高危作业里各作业数;依次为 动火,临时用电,盲板,高空,有限空间,吊装) -->
<select id="statisticsAllHighRiskWork" parameterType="pd" resultType="pd">
SELECT count(*) COUNT FROM bus_hotwork f WHERE f.ISDELETE = '0' AND f.CORPINFO_ID = #{CORPINFO_ID}
UNION ALL
SELECT count(*) COUNT FROM bus_electricity f WHERE f.ISDELETE = '0' AND f.CORPINFO_ID = #{CORPINFO_ID}
UNION ALL
SELECT count(*) COUNT FROM bus_blindboard f WHERE f.ISDELETE = '0' AND f.CORPINFO_ID = #{CORPINFO_ID}
UNION ALL
SELECT count(*) COUNT FROM bus_highwork f WHERE f.ISDELETE = '0' AND f.CORPINFO_ID = #{CORPINFO_ID}
UNION ALL
SELECT count(*) COUNT FROM bus_confinedspace f WHERE f.ISDELETE = '0' AND f.CORPINFO_ID = #{CORPINFO_ID}
UNION ALL
SELECT count(*) COUNT FROM bus_hoisting f WHERE f.ISDELETE = '0' AND f.CORPINFO_ID = #{CORPINFO_ID}
</select>
<!-- 获取高危作业统计数据 -->
<!-- 申请数[COUNTAPPLY],审批中[COUNTAPPROVE],归档[COUNTARCHIVE] -->
<select id="statisticsHighRiskWorkByState" parameterType="pd" resultType="pd">
SELECT
SUM(f.COUNTAPPLY) COUNTAPPLY,SUM(f.COUNTAPPROVE) COUNTAPPROVE,SUM(f.COUNTARCHIVE) COUNTARCHIVE
FROM (
SELECT
COUNT(case when f.STATE >= 2 then f.HOTWORKAPPLICATION_ID end) COUNTAPPLY,
COUNT(case when f.STATE &gt; 2 AND f.STATE &lt; 9 then f.HOTWORKAPPLICATION_ID end) COUNTAPPROVE,
COUNT(case when f.STATE =9 then f.HOTWORKAPPLICATION_ID end) COUNTARCHIVE
FROM bus_hotworkapplication f WHERE f.ISDELETE = '0' AND f.CORPINFO_ID = #{CORPINFO_ID}
UNION ALL
SELECT
COUNT(case when f.APPLY_STATUS != '0' then f.ELECTRICITY_ID end) COUNTAPPLY,
COUNT(case when f.APPLY_STATUS = '2' AND date_format(now(),'%Y-%m-%d %H:%i') >= f.WORK_START_DATE AND f.WORK_END_DATE >= date_format(now(),'%Y-%m-%d %H:%i') then f.ELECTRICITY_ID end) COUNTAPPROVE,
COUNT(case when f.APPLY_STATUS IN ('3','4') then f.ELECTRICITY_ID end) COUNTARCHIVE
FROM bus_electricity f WHERE f.ISDELETE = '0' AND f.CORPINFO_ID = #{CORPINFO_ID}
UNION ALL
SELECT
COUNT(case when f.APPLY_STATUS != '0' then f.BLINDBOARD_ID end) COUNTAPPLY,
COUNT(case when f.APPLY_STATUS = '2' AND date_format(now(),'%Y-%m-%d %H:%i') >= bb.BOARD_INSTALL_TIME AND bb.BOARD_DISASSEMBLE_TIME >= date_format(now(),'%Y-%m-%d %H:%i') then f.BLINDBOARD_ID end) COUNTAPPROVE,
COUNT(case when f.APPLY_STATUS = '3' then f.BLINDBOARD_ID end) COUNTARCHIVE
FROM bus_blindboard f
LEFT JOIN bus_blindboardinfo bb ON bb.BLINDBOARDINFO_ID = f.BLINDBOARD_ID
WHERE f.ISDELETE = '0' AND f.CORPINFO_ID = #{CORPINFO_ID}
UNION ALL
SELECT
COUNT(case when f.APPLY_STATUS != '0' then f.HIGHWORK_ID end) COUNTAPPLY,
COUNT(case when f.APPLY_STATUS = '3' AND date_format(now(),'%Y-%m-%d %H:%i') >= f.WORK_START_DATE AND f.WORK_END_DATE >= date_format(now(),'%Y-%m-%d %H:%i') then f.HIGHWORK_ID end) COUNTAPPROVE,
COUNT(case when f.APPLY_STATUS in ('4','55','5','-5') then f.HIGHWORK_ID end) COUNTARCHIVE
FROM bus_highwork f WHERE f.ISDELETE = '0' AND f.CORPINFO_ID = #{CORPINFO_ID}
UNION ALL
SELECT
COUNT(case when f.APPLY_STATUS != '0' then f.CONFINEDSPACE_ID end) COUNTAPPLY,
COUNT(case when f.APPLY_STATUS = '4' AND date_format(now(),'%Y-%m-%d %H:%i') >= f.WORK_START_DATE AND f.WORK_END_DATE >= date_format(now(),'%Y-%m-%d %H:%i') then f.CONFINEDSPACE_ID end) COUNTAPPROVE,
COUNT(case when f.APPLY_STATUS = '7' then f.CONFINEDSPACE_ID end) COUNTARCHIVE
FROM bus_confinedspace f WHERE f.ISDELETE = '0' AND f.CORPINFO_ID = #{CORPINFO_ID}
UNION ALL
SELECT
COUNT(case when f.APPLY_STATUS != '0' then f.HOISTING_ID end) COUNTAPPLY,
COUNT(case when f.APPLY_STATUS = '2' AND date_format(now(),'%Y-%m-%d %H:%i') >= f.JOB_START_TIME AND f.JOB_END_TIME >= date_format(now(),'%Y-%m-%d %H:%i') then f.HOISTING_ID end) COUNTAPPROVE,
COUNT(case when f.APPLY_STATUS IN ('4','55','5','-5') then f.HOISTING_ID end) COUNTARCHIVE
FROM bus_hoisting f WHERE f.ISDELETE = '0' AND f.CORPINFO_ID = #{CORPINFO_ID}
) f
</select>
<!-- 作业实时情况展示 -->
<select id="realTimeHighRiskWorklistPage" parameterType="page" resultType="pd">
SELECT * FROM
(SELECT
f.HOTWORKAPPLICATION_ID ID,
f.JOB_NUMBER WORK_NUMBER,
'动火作业' WORK_TYPE,
case f.STATE
when 1 then '动火单位负责人确认'
when 2 then '项目发包单位签发'
when 3 then '现场管辖单位负责人'
when 4 then '动火许可签发单位'
when 5 then '安全总监审批'
when 6 then '现场负责人'
when 7 then '动火前'
when 8 then '现场负责人确认'
when 9 then '动火后'
when 10 then '延时监火'
when 11 then '归档'
when 21 then '动火操作人'
when 22 then '监护人'
when 24 then '气体检测人'
when -1 then '审核不通过'
when -2 then '特级动火不通过'
when -3 then '未完成 关闭归档'
when -4 then '延期'
when -5 then '已打回'
when -6 then '超期'
when 30 then '动火负责人确认'
when 31 then '项目主管初审'
when 32 then '项目监管部门负责人'
when 33 then '分公司安全总监审批'
when 34 then '分公司主要负责人'
when 35 then '安全监督部初审'
when 36 then '安委会办公室'
when 37 then '安全总监审批'
END STATUS_NAME,
IFNULL(GROUP_CONCAT(REPLACE(u.NAME,'/',',')),'') USER_NAME,
DATE_FORMAT(f.OPERATTIME,'%Y-%m-%d %H:%i:%s') OPERATTIME
FROM bus_hotworkapplication f
LEFT JOIN bus_hotworkapplicationuser hu ON hu.FOREIGN_KEY = f.HOTWORKAPPLICATION_ID AND hu.STATE = f.STATE
LEFT JOIN sys_user u ON u.USER_ID = hu.USER_ID
WHERE f.ISDELETE = '0' AND f.STATE >= 0 and f.STATE != 11 AND f.CORPINFO_ID = #{pd.CORPINFO_ID}
GROUP BY f.HOTWORKAPPLICATION_ID
UNION ALL
SELECT f.ID, f.WORK_NUMBER, f.WORK_TYPE, f.STATUS_NAME, u.NAME USER_NAME, f.OPERATTIME
FROM
(SELECT
f.electricity_ID ID,
f.CHECK_NO WORK_NUMBER,
'临时用电作业' WORK_TYPE,
case f.APPLY_STATUS
when '0' then '待提交'
when '1' then '待确认'
when '2' then '待审批'
when '3' then '已归档'
when '4' then '已验收'
when '-1' then '已打回'
END STATUS_NAME,
case f.APPLY_STATUS
when '0' then f.APPLY_USER_ID
when '1' then f.ASSURE_USER_ID
when '2' then f.APPROVE_USER_ID
when '3' then f.ACCEPT_USER_ID
when '-1' then f.APPLY_USER_ID
END NEXT_USER_ID,
f.OPERATTIME
FROM bus_electricity f WHERE f.ISDELETE = '0' AND f.APPLY_STATUS NOT IN ('3','4') AND f.CORPINFO_ID = #{pd.CORPINFO_ID}
AND date_format(now(),'%Y-%m-%d %H:%i') >= f.WORK_START_DATE AND f.WORK_END_DATE >= date_format(now(),'%Y-%m-%d %H:%i')
) f
LEFT JOIN sys_user u ON u.USER_ID = f.NEXT_USER_ID
UNION ALL
SELECT f.ID, f.WORK_NUMBER, f.WORK_TYPE, f.STATUS_NAME, u.NAME USER_NAME, f.OPERATTIME
FROM
(SELECT
f.blindboard_ID ID,
f.CHECK_NO WORK_NUMBER,
'盲板作业' WORK_TYPE,
case f.APPLY_STATUS
when '1' then '待确认'
when '2' then '待审批'
when '3' then '已归档'
when '4' then '已打回'
END STATUS_NAME,
case f.APPLY_STATUS
when '1' then bb.OPERATION_UNIT_PERSONCHARGE
when '2' then bb.CORPINFO_APPROVER
when '3' then f.APPLY_USER_ID
when '4' then f.APPLY_USER_ID
END NEXT_USER_ID,
f.OPERATTIME
FROM bus_blindboard f
LEFT JOIN bus_blindboardinfo bb ON bb.BLINDBOARDINFO_ID = f.BLINDBOARD_ID
WHERE f.ISDELETE = '0' AND f.APPLY_STATUS NOT IN ('3','4') AND f.CORPINFO_ID = #{pd.CORPINFO_ID}
AND date_format(now(),'%Y-%m-%d %H:%i') >= bb.BOARD_INSTALL_TIME AND bb.BOARD_DISASSEMBLE_TIME >= date_format(now(),'%Y-%m-%d %H:%i')
) f
LEFT JOIN sys_user u ON u.USER_ID = f.NEXT_USER_ID
UNION ALL
SELECT f.ID, f.WORK_NUMBER, f.WORK_TYPE, f.STATUS_NAME, u.NAME USER_NAME, f.OPERATTIME
FROM
(SELECT
f.HIGHWORK_ID ID,
f.CHECK_NO WORK_NUMBER,
'高处作业' WORK_TYPE,
case f.APPLY_STATUS
when '0' then '待提交'
when '1' then '待确认'
when '2' then '待审核'
when '3' then '待审批'
when '4' then '已归档'
when '5' then '已验收'
when '-2' then '确认打回'
when '-3' then '审核打回'
when '-4' then '审批打回'
when '55' then '待验收'
END STATUS_NAME,
case f.APPLY_STATUS
when '1' then f.CONSTRUCTION_USER_ID
when '2' then f.AUDIT_USER_ID
when '3' then f.APPROVE_USER_ID
when '-2' then f.CREATOR
when '-3' then f.CREATOR
when '-4' then f.CREATOR
when '55' then f.ACCEPT_USER_ID
END NEXT_USER_ID,
f.OPERATTIME
FROM bus_highwork f WHERE f.ISDELETE = '0' AND f.APPLY_STATUS NOT IN ('4','5','55','-5') AND f.CORPINFO_ID = #{pd.CORPINFO_ID}
AND date_format(now(),'%Y-%m-%d %H:%i') >= f.WORK_START_DATE AND f.WORK_END_DATE >= date_format(now(),'%Y-%m-%d %H:%i')
) f
LEFT JOIN sys_user u ON u.USER_ID = f.NEXT_USER_ID
UNION ALL
SELECT f.ID, f.WORK_NUMBER, f.WORK_TYPE, f.STATUS_NAME, u.NAME USER_NAME, f.OPERATTIME
FROM
(SELECT
f.confinedspace_ID ID,
f.WORK_PERMIT_NUMBER WORK_NUMBER,
'有限空间作业' WORK_TYPE,
case f.APPLY_STATUS
when '1' then '待采样'
when '2' then '作业单位责任人确认'
when '3' then '作业现场责任人审核'
when '4' then '管理单位责任人审批'
when '5' then '作业单位责任人验收'
when '6' then '管理单位责任人验收'
when '-2' then '作业单位责任人确认打回'
when '-3' then '作业现场责任人审核打回'
when '-4' then '管理单位责任人审批打回'
when '-5' then '作业单位责任人验收打回'
when '-6' then '管理单位责任人验收打回'
END STATUS_NAME,
case f.APPLY_STATUS
when '1' then f.SAMPLING_ANALYST_ID
when '2' then f.WORK_UNIT_MANAGER_ID
when '3' then f.JOB_SITE_MANAGER_ID
when '4' then f.MANAGEMENT_UNIT_ID
when '5' then f.WORK_UNIT_MANAGER_ID
when '6' then f.MANAGEMENT_UNIT_ID
when '-2' then f.CREATOR
when '-3' then f.CREATOR
when '-4' then f.CREATOR
when '-5' then f.CREATOR
when '-6' then f.CREATOR
END NEXT_USER_ID,
f.OPERATTIME
FROM bus_confinedspace f WHERE f.ISDELETE = '0' AND f.APPLY_STATUS != '7' AND f.CORPINFO_ID = #{pd.CORPINFO_ID}
AND date_format(now(),'%Y-%m-%d %H:%i') >= f.WORK_START_DATE AND f.WORK_END_DATE >= date_format(now(),'%Y-%m-%d %H:%i')
) f
LEFT JOIN sys_user u ON u.USER_ID = f.NEXT_USER_ID
UNION ALL
SELECT f.ID, f.WORK_NUMBER, f.WORK_TYPE, f.STATUS_NAME, u.NAME USER_NAME, f.OPERATTIME
FROM
(SELECT
f.hoisting_ID ID,
f.NUMBERING WORK_NUMBER,
'吊装作业' WORK_TYPE,
case f.APPLY_STATUS
when '0' then '待提交'
when '1' then '待确认'
when '2' then '待审核'
when '3' then '待审批'
when '4' then '已归档'
when '5' then '已验收'
when '-2' then '确认打回'
when '-3' then '审核打回'
when '-4' then '审批打回'
when '55' then '待验收'
END STATUS_NAME,
case f.APPLY_STATUS
when '1' then f.CONSTRUCTION_JOB_MANAGER_ID
when '2' then f.WORK_UNIT_MANAGER_ID
when '3' then f.BRANCH_APPROVER_ID
when '-2' then f.CREATOR
when '-3' then f.CREATOR
when '-4' then f.CREATOR
when '55' then f.ACCEPTOR_ID
END NEXT_USER_ID,
f.OPERATTIME
FROM bus_hoisting f
WHERE f.ISDELETE = '0' AND f.CORPINFO_ID = #{pd.CORPINFO_ID} AND f.APPLY_STATUS NOT IN ('4','5','55','-5')
AND date_format(now(),'%Y-%m-%d %H:%i') >= f.JOB_START_TIME AND f.JOB_END_TIME >= date_format(now(),'%Y-%m-%d %H:%i')
) f
LEFT JOIN sys_user u ON u.USER_ID = f.NEXT_USER_ID
) f
ORDER BY f.OPERATTIME DESC
</select>
<!-- 获取所有高危作业的位置坐标(有坐标数据)-->
<select id="listAllHighRiskWorkLocation" parameterType="pd" resultType="pd">
SELECT * FROM
(SELECT
'HOTWORK' TYPE,
f.HOTWORKAPPLICATION_ID id,
CONCAT_WS("", '动火作业 编号:', f.JOB_NUMBER) NAME,
f.WORK_LONGITUDE LONGITUDE,
f.WORK_LATITUDE LATITUDE,
'./bi/images/map/hotwork.png' IMAGE_FILE
FROM bus_hotworkapplication f
WHERE f.ISDELETE = '0' AND f.WORK_LONGITUDE IS NOT NULL AND f.WORK_LATITUDE IS NOT NULL
AND f.STATE >= 0 and f.STATE != 11 AND f.CORPINFO_ID = #{CORPINFO_ID}
UNION ALL
SELECT
'ELECTRICITY' TYPE,
f.ELECTRICITY_ID id,
CONCAT_WS("", '临时用电作业 编号:', f.CHECK_NO) NAME,
f.WORK_LONGITUDE LONGITUDE,
f.WORK_LATITUDE LATITUDE,
'./bi/images/map/electricity.png' IMAGE_FILE
FROM bus_electricity f WHERE f.ISDELETE = '0' AND f.WORK_LONGITUDE IS NOT NULL AND f.WORK_LATITUDE IS NOT NULL
AND f.APPLY_STATUS NOT IN ('3','4') AND f.CORPINFO_ID = #{CORPINFO_ID}
AND date_format(now(),'%Y-%m-%d %H:%i') >= f.WORK_START_DATE AND f.WORK_END_DATE >= date_format(now(),'%Y-%m-%d %H:%i')
UNION ALL
SELECT
'BLINDBOARD' TYPE,
f.BLINDBOARD_ID id,
CONCAT_WS("", '盲板作业 编号:', f.CHECK_NO) NAME,
bb.LONGITUDE LONGITUDE,
bb.LATITUDE LATITUDE,
'./bi/images/map/blindboard.png' IMAGE_FILE
FROM bus_blindboard f
left join bus_blindboardinfo bb on bb.BLINDBOARD_ID = f.BLINDBOARD_ID
WHERE f.ISDELETE = '0' AND bb.LONGITUDE IS NOT NULL AND bb.LATITUDE IS NOT NULL
AND f.APPLY_STATUS NOT IN ('3','4') AND f.CORPINFO_ID = #{CORPINFO_ID}
AND date_format(now(),'%Y-%m-%d %H:%i') >= bb.BOARD_INSTALL_TIME AND bb.BOARD_DISASSEMBLE_TIME >= date_format(now(),'%Y-%m-%d %H:%i')
UNION ALL
SELECT
'HIGHWORK' TYPE,
f.HIGHWORK_ID id,
CONCAT_WS("", '高处作业 编号:', f.CHECK_NO) NAME,
f.WORK_LONGITUDE LONGITUDE,
f.WORK_LATITUDE LATITUDE,
'./bi/images/map/highwork.png' IMAGE_FILE
FROM bus_highwork f WHERE f.ISDELETE = '0' AND f.WORK_LONGITUDE IS NOT NULL AND f.WORK_LATITUDE IS NOT NULL
AND f.APPLY_STATUS NOT IN ('4','5','55','-5') AND f.CORPINFO_ID = #{CORPINFO_ID}
AND date_format(now(),'%Y-%m-%d %H:%i') >= f.WORK_START_DATE AND f.WORK_END_DATE >= date_format(now(),'%Y-%m-%d %H:%i')
UNION ALL
SELECT
'CONFINEDSPACE' TYPE,
f.CONFINEDSPACE_ID id,
CONCAT_WS("", '有限空间作业 编号:', f.WORK_PERMIT_NUMBER) NAME,
f.WORK_LONGITUDE LONGITUDE,
f.WORK_LATITUDE LATITUDE,
'./bi/images/map/confinedspace.png' IMAGE_FILE
FROM bus_confinedspace f WHERE f.ISDELETE = '0' AND f.WORK_LONGITUDE IS NOT NULL AND f.WORK_LATITUDE IS NOT NULL
AND f.APPLY_STATUS != '7' AND f.CORPINFO_ID = #{CORPINFO_ID}
AND date_format(now(),'%Y-%m-%d %H:%i') >= f.WORK_START_DATE AND f.WORK_END_DATE >= date_format(now(),'%Y-%m-%d %H:%i')
UNION ALL
SELECT
'HOISTING' TYPE,
f.HOISTING_ID id,
CONCAT_WS("", '吊装作业 编号:', f.NUMBERING) NAME,
f.WORK_LONGITUDE LONGITUDE,
f.WORK_LATITUDE LATITUDE,
'./bi/images/map/hoisting.png' IMAGE_FILE
FROM bus_hoisting f WHERE f.ISDELETE = '0' AND f.WORK_LONGITUDE IS NOT NULL AND f.WORK_LATITUDE IS NOT NULL
AND f.APPLY_STATUS NOT IN ('4','5','55','-5') AND f.CORPINFO_ID = #{CORPINFO_ID}
AND date_format(now(),'%Y-%m-%d %H:%i') >= f.JOB_START_TIME AND f.JOB_END_TIME >= date_format(now(),'%Y-%m-%d %H:%i')
) f
</select>
<select id="listHighRiskWorkFirst" resultType="com.zcloud.entity.PageData">
SELECT * FROM
(SELECT
f.HOTWORK_ID ID,
f.CHECK_NO WORK_NUMBER,
'动火作业' WORK_TYPE,
CASE
f.APPLY_STATUS
WHEN 0 THEN '动火作业待提交'
WHEN 1 THEN '作业负责人待审核'
WHEN 2 THEN '所在单位待审核'
WHEN 4 THEN '安全管理部门待审核'
WHEN 5 THEN '动火审批人待审核'
WHEN 6 THEN '班长待验票'
WHEN 7 THEN '待验收'
END STATUS_NAME,
CASE WHEN f.APPLY_STATUS = 0 THEN
IFNULL(
GROUP_CONCAT(
REPLACE ( u1.NAME, '/', ',' )),
IFNULL( qu1.`NAME`, '' ))
WHEN f.APPLY_STATUS = 1 THEN
IFNULL(
GROUP_CONCAT(
REPLACE ( u1.NAME, '/', ',' )),
IFNULL( qu1.`NAME`, '' ))
WHEN f.APPLY_STATUS = 2 THEN
IFNULL(
GROUP_CONCAT(
REPLACE ( u2.NAME, '/', ',' )),
IFNULL( qu2.`NAME`, '' ))
WHEN f.APPLY_STATUS = 4 THEN
IFNULL(
GROUP_CONCAT(
REPLACE ( u3.NAME, '/', ',' )),
IFNULL( qu3.`NAME`, '' ))
WHEN f.APPLY_STATUS = 5 THEN
IFNULL(
GROUP_CONCAT(
REPLACE ( u4.NAME, '/', ',' )),
IFNULL( qu4.`NAME`, '' ))
WHEN f.APPLY_STATUS = 6 THEN
IFNULL(
GROUP_CONCAT(
REPLACE ( u5.NAME, '/', ',' )),
IFNULL( qu5.`NAME`, '' ))
WHEN f.APPLY_STATUS = 7 THEN
IFNULL(
GROUP_CONCAT(
REPLACE ( u6.NAME, '/', ',' )),
IFNULL( qu6.`NAME`, '' ))
ELSE
IFNULL(
GROUP_CONCAT(
REPLACE ( u6.NAME, '/', ',' )),
IFNULL( qu6.`NAME`, '' ))
END USER_NAME,
DATE_FORMAT( ifnull( f.OPERATTIME, f.CREATTIME ), '%Y-%m-%d %H:%i:%s' ) OPERATTIME
FROM
bus_hotwork_cfd f
LEFT JOIN sys_user u1 ON u1.USER_ID = f.CONFIRM_USER_ID
LEFT JOIN `qa-gwj-regulatory`.sys_user qu1 ON qu1.USER_ID = f.CONFIRM_USER_ID
LEFT JOIN sys_user u2 ON u2.USER_ID = f.LEADER_USER_ID
LEFT JOIN `qa-gwj-regulatory`.sys_user qu2 ON qu2.USER_ID = f.LEADER_USER_ID
LEFT JOIN sys_user u3 ON u3.USER_ID = f.AUDIT_USER_ID
LEFT JOIN `qa-gwj-regulatory`.sys_user qu3 ON qu3.USER_ID = f.AUDIT_USER_ID
LEFT JOIN sys_user u4 ON u4.USER_ID = f.APPROVE_USER_ID
LEFT JOIN `qa-gwj-regulatory`.sys_user qu4 ON qu4.USER_ID = f.APPROVE_USER_ID
LEFT JOIN sys_user u5 ON u5.USER_ID = f.MONITOR_USER_ID
LEFT JOIN `qa-gwj-regulatory`.sys_user qu5 ON qu5.USER_ID = f.MONITOR_USER_ID
LEFT JOIN sys_user u6 ON u6.USER_ID = f.ACCEPT_USER_ID
LEFT JOIN `qa-gwj-regulatory`.sys_user qu6 ON qu6.USER_ID = f.ACCEPT_USER_ID
WHERE
f.ISDELETE = '0'
AND f.APPLY_STATUS >= 0
AND f.APPLY_STATUS != 8
<if test="pd.CORPINFO_ID!= null and pd.CORPINFO_ID!=''">
and f.CORPINFO_ID = #{pd.CORPINFO_ID}
</if>
<if test="pd.ids!= null and pd.ids.size()>0">
AND f.CORPINFO_ID IN
<foreach item="item" index="index" collection="pd.ids" open="(" separator="," close=")">
#{pd.ids[${index}]}
</foreach>
</if>
GROUP BY f.HOTWORK_ID
UNION ALL
SELECT f.ID, f.WORK_NUMBER, f.WORK_TYPE, f.STATUS_NAME, u.NAME USER_NAME, f.OPERATTIME
FROM
(SELECT
f.electricity_ID ID,
f.CHECK_NO WORK_NUMBER,
'临时用电作业' WORK_TYPE,
case f.APPLY_STATUS
when '0' then '待提交'
when '1' then '待确认'
when '2' then '待审批'
when '3' then '已归档'
when '4' then '已验收'
when '-1' then '已打回'
END STATUS_NAME,
case f.APPLY_STATUS
when '0' then f.APPLY_USER_ID
when '1' then f.ASSURE_USER_ID
when '2' then f.APPROVE_USER_ID
when '3' then f.ACCEPT_USER_ID
when '-1' then f.APPLY_USER_ID
END NEXT_USER_ID,
ifnull(f.OPERATTIME,f.CREATTIME) OPERATTIME
FROM bus_electricity f WHERE f.ISDELETE = '0' AND f.APPLY_STATUS NOT IN ('3','4')
AND date_format(now(),'%Y-%m-%d %H:%i') >= f.WORK_START_DATE AND f.WORK_END_DATE >= date_format(now(),'%Y-%m-%d %H:%i')
<if test="pd.CORPINFO_ID!= null and pd.CORPINFO_ID!=''">
and f.CORPINFO_ID = #{pd.CORPINFO_ID}
</if>
<if test="pd.ids!= null and pd.ids.size()>0">
AND f.CORPINFO_ID IN
<foreach item="item" index="index" collection="pd.ids" open="(" separator="," close=")">
#{pd.ids[${index}]}
</foreach>
</if>
) f
LEFT JOIN sys_user u ON u.USER_ID = f.NEXT_USER_ID
UNION ALL
SELECT f.ID, f.WORK_NUMBER, f.WORK_TYPE, f.STATUS_NAME, u.NAME USER_NAME, f.OPERATTIME
FROM
(SELECT
f.blindboard_ID ID,
f.CHECK_NO WORK_NUMBER,
'盲板作业' WORK_TYPE,
case f.APPLY_STATUS
when '1' then '待确认'
when '2' then '待审批'
when '3' then '已归档'
when '4' then '已打回'
END STATUS_NAME,
case f.APPLY_STATUS
when '1' then bb.OPERATION_UNIT_PERSONCHARGE
when '2' then bb.CORPINFO_APPROVER
when '3' then f.APPLY_USER_ID
when '4' then f.APPLY_USER_ID
END NEXT_USER_ID,
ifnull(f.OPERATTIME,f.CREATTIME) OPERATTIME
FROM bus_blindboard f
LEFT JOIN bus_blindboardinfo bb ON bb.BLINDBOARD_ID = f.BLINDBOARD_ID
WHERE f.ISDELETE = '0' AND f.APPLY_STATUS NOT IN ('3','4')
AND date_format(now(),'%Y-%m-%d %H:%i') >= bb.BOARD_INSTALL_TIME AND bb.BOARD_DISASSEMBLE_TIME >= date_format(now(),'%Y-%m-%d %H:%i')
<if test="pd.CORPINFO_ID!= null and pd.CORPINFO_ID!=''">
and f.CORPINFO_ID = #{pd.CORPINFO_ID}
</if>
<if test="pd.ids!= null and pd.ids.size()>0">
AND f.CORPINFO_ID IN
<foreach item="item" index="index" collection="pd.ids" open="(" separator="," close=")">
#{pd.ids[${index}]}
</foreach>
</if>
) f
LEFT JOIN sys_user u ON u.USER_ID = f.NEXT_USER_ID
UNION ALL
SELECT f.ID, f.WORK_NUMBER, f.WORK_TYPE, f.STATUS_NAME, u.NAME USER_NAME, f.OPERATTIME
FROM
(SELECT
f.HIGHWORK_ID ID,
f.CHECK_NO WORK_NUMBER,
'高处作业' WORK_TYPE,
case f.APPLY_STATUS
when '0' then '待提交'
when '1' then '待确认'
when '2' then '待审核'
when '3' then '待审批'
when '4' then '已归档'
when '5' then '已验收'
when '-2' then '确认打回'
when '-3' then '审核打回'
when '-4' then '审批打回'
when '55' then '待验收'
END STATUS_NAME,
case f.APPLY_STATUS
when '1' then f.CONSTRUCTION_USER_ID
when '2' then f.AUDIT_USER_ID
when '3' then f.APPROVE_USER_ID
when '-2' then f.CREATOR
when '-3' then f.CREATOR
when '-4' then f.CREATOR
when '55' then f.ACCEPT_USER_ID
END NEXT_USER_ID,
ifnull(f.OPERATTIME,f.CREATTIME) OPERATTIME
FROM bus_highwork f WHERE f.ISDELETE = '0' AND f.APPLY_STATUS NOT IN ('4','5','55','-5')
AND date_format(now(),'%Y-%m-%d %H:%i') >= f.WORK_START_DATE AND f.WORK_END_DATE >= date_format(now(),'%Y-%m-%d %H:%i')
<if test="pd.CORPINFO_ID!= null and pd.CORPINFO_ID!=''">
and f.CORPINFO_ID = #{pd.CORPINFO_ID}
</if>
<if test="pd.ids!= null and pd.ids.size()>0">
AND f.CORPINFO_ID IN
<foreach item="item" index="index" collection="pd.ids" open="(" separator="," close=")">
#{pd.ids[${index}]}
</foreach>
</if>
) f
LEFT JOIN sys_user u ON u.USER_ID = f.NEXT_USER_ID
UNION ALL
SELECT f.ID, f.WORK_NUMBER, f.WORK_TYPE, f.STATUS_NAME, u.NAME USER_NAME, f.OPERATTIME
FROM
(SELECT
f.confinedspace_ID ID,
f.WORK_PERMIT_NUMBER WORK_NUMBER,
'有限空间作业' WORK_TYPE,
case f.APPLY_STATUS
when '1' then '待采样'
when '2' then '作业单位责任人确认'
when '3' then '作业现场责任人审核'
when '4' then '管理单位责任人审批'
when '5' then '作业单位责任人验收'
when '6' then '管理单位责任人验收'
when '-2' then '作业单位责任人确认打回'
when '-3' then '作业现场责任人审核打回'
when '-4' then '管理单位责任人审批打回'
when '-5' then '作业单位责任人验收打回'
when '-6' then '管理单位责任人验收打回'
END STATUS_NAME,
case f.APPLY_STATUS
when '1' then f.SAMPLING_ANALYST_ID
when '2' then f.WORK_UNIT_MANAGER_ID
when '3' then f.JOB_SITE_MANAGER_ID
when '4' then f.MANAGEMENT_UNIT_ID
when '5' then f.WORK_UNIT_MANAGER_ID
when '6' then f.MANAGEMENT_UNIT_ID
when '-2' then f.CREATOR
when '-3' then f.CREATOR
when '-4' then f.CREATOR
when '-5' then f.CREATOR
when '-6' then f.CREATOR
END NEXT_USER_ID,
ifnull(f.OPERATTIME,f.CREATTIME) OPERATTIME
FROM bus_confinedspace f WHERE f.ISDELETE = '0' AND f.APPLY_STATUS != '7'
AND date_format(now(),'%Y-%m-%d %H:%i') >= f.WORK_START_DATE AND f.WORK_END_DATE >= date_format(now(),'%Y-%m-%d %H:%i')
<if test="pd.CORPINFO_ID!= null and pd.CORPINFO_ID!=''">
and f.CORPINFO_ID = #{pd.CORPINFO_ID}
</if>
<if test="pd.ids!= null and pd.ids.size()>0">
AND f.CORPINFO_ID IN
<foreach item="item" index="index" collection="pd.ids" open="(" separator="," close=")">
#{pd.ids[${index}]}
</foreach>
</if>
) f
LEFT JOIN sys_user u ON u.USER_ID = f.NEXT_USER_ID
UNION ALL
SELECT f.ID, f.WORK_NUMBER, f.WORK_TYPE, f.STATUS_NAME, u.NAME USER_NAME, f.OPERATTIME
FROM
(SELECT
f.hoisting_ID ID,
f.NUMBERING WORK_NUMBER,
'吊装作业' WORK_TYPE,
case f.APPLY_STATUS
when '0' then '待提交'
when '1' then '待确认'
when '2' then '待审核'
when '3' then '待审批'
when '4' then '已归档'
when '5' then '已验收'
when '-2' then '确认打回'
when '-3' then '审核打回'
when '-4' then '审批打回'
when '55' then '待验收'
END STATUS_NAME,
case f.APPLY_STATUS
when '1' then f.CONSTRUCTION_JOB_MANAGER_ID
when '2' then f.WORK_UNIT_MANAGER_ID
when '3' then f.BRANCH_APPROVER_ID
when '-2' then f.CREATOR
when '-3' then f.CREATOR
when '-4' then f.CREATOR
when '55' then f.ACCEPTOR_ID
END NEXT_USER_ID,
ifnull(f.OPERATTIME,f.CREATTIME) OPERATTIME
FROM bus_hoisting f
WHERE f.ISDELETE = '0' AND f.APPLY_STATUS NOT IN ('4','5','55','-5')
AND date_format(now(),'%Y-%m-%d %H:%i') >= f.JOB_START_TIME AND f.JOB_END_TIME >= date_format(now(),'%Y-%m-%d %H:%i')
<if test="pd.CORPINFO_ID!= null and pd.CORPINFO_ID!=''">
and f.CORPINFO_ID = #{pd.CORPINFO_ID}
</if>
<if test="pd.ids!= null and pd.ids.size()>0">
AND f.CORPINFO_ID IN
<foreach item="item" index="index" collection="pd.ids" open="(" separator="," close=")">
#{pd.ids[${index}]}
</foreach>
</if>
) f
LEFT JOIN sys_user u ON u.USER_ID = f.NEXT_USER_ID
) f
ORDER BY f.OPERATTIME DESC
</select>
<select id="statisticsHighRiskWorkByStateFirst" resultType="com.zcloud.entity.PageData">
SELECT
SUM(f.COUNTAPPLY) COUNTAPPLY,SUM(f.COUNTAPPROVE) COUNTAPPROVE,SUM(f.COUNTARCHIVE) COUNTARCHIVE
FROM (
SELECT
COUNT( CASE WHEN f.APPLY_STATUS > 0 THEN f.HOTWORK_ID END ) COUNTAPPLY,
COUNT( CASE WHEN f.APPLY_STATUS > 0 AND f.APPLY_STATUS != 8 THEN f.HOTWORK_ID END ) COUNTAPPROVE,
COUNT( CASE WHEN f.APPLY_STATUS = 8 THEN f.HOTWORK_ID END ) COUNTARCHIVE
FROM bus_hotwork_cfd f WHERE f.ISDELETE = '0'
<if test="CORPINFO_ID!= null and CORPINFO_ID!=''">
and f.CORPINFO_ID = #{CORPINFO_ID}
</if>
<if test="ids!= null and ids.size()>0">
AND f.CORPINFO_ID IN
<foreach item="item" index="index" collection="ids" open="(" separator="," close=")">
#{item}
</foreach>
</if>
UNION ALL
SELECT
(
SELECT
count( 1 )
FROM
bus_electricity f
WHERE
<if test="CORPINFO_ID!= null and CORPINFO_ID!=''">
f.CORPINFO_ID = #{CORPINFO_ID}
</if>
<if test="ids!= null and ids.size()>0">
f.CORPINFO_ID IN
<foreach item="item" index="index" collection="ids" open="(" separator="," close=")">
#{item}
</foreach>
</if>
AND (
f.APPLY_STATUS != '0' AND f.APPLY_STATUS NOT IN ('3','4')
AND date_format( now(), '%Y-%m-%d %H:%i' ) >= f.WORK_START_DATE
AND f.WORK_END_DATE >= date_format( now(), '%Y-%m-%d %H:%i' )
OR f.APPLY_STATUS IN ( '3', '4' )
)
) COUNTAPPLY,
COUNT(case when f.APPLY_STATUS != '0' AND f.APPLY_STATUS NOT IN ('3','4') AND date_format(now(),'%Y-%m-%d %H:%i') >= f.WORK_START_DATE AND f.WORK_END_DATE >= date_format(now(),'%Y-%m-%d %H:%i') then f.ELECTRICITY_ID end) COUNTAPPROVE,
COUNT(case when f.APPLY_STATUS IN ('3','4') then f.ELECTRICITY_ID end) COUNTARCHIVE
FROM bus_electricity f WHERE f.ISDELETE = '0'
<if test="CORPINFO_ID!= null and CORPINFO_ID!=''">
and f.CORPINFO_ID = #{CORPINFO_ID}
</if>
<if test="ids!= null and ids.size()>0">
AND f.CORPINFO_ID IN
<foreach item="item" index="index" collection="ids" open="(" separator="," close=")">
#{item}
</foreach>
</if>
UNION ALL
SELECT
(
SELECT
count( 1 )
FROM
bus_blindboard f
LEFT JOIN
bus_blindboardinfo bb ON bb.BLINDBOARD_ID = f.BLINDBOARD_ID
WHERE
<if test="CORPINFO_ID!= null and CORPINFO_ID!=''">
f.CORPINFO_ID = #{CORPINFO_ID}
</if>
<if test="ids!= null and ids.size()>0">
f.CORPINFO_ID IN
<foreach item="item" index="index" collection="ids" open="(" separator="," close=")">
#{item}
</foreach>
</if>
AND (
f.APPLY_STATUS != '0' AND f.APPLY_STATUS != '3'
AND date_format( now(), '%Y-%m-%d %H:%i' ) >= bb.BOARD_INSTALL_TIME
AND bb.BOARD_DISASSEMBLE_TIME >= date_format( now(), '%Y-%m-%d %H:%i' )
OR f.APPLY_STATUS = '3'
)
) COUNTAPPLY,
COUNT(case when f.APPLY_STATUS != '0' AND f.APPLY_STATUS != '3' AND date_format(now(),'%Y-%m-%d %H:%i') >= bb.BOARD_INSTALL_TIME AND bb.BOARD_DISASSEMBLE_TIME >= date_format(now(),'%Y-%m-%d %H:%i') then f.BLINDBOARD_ID end) COUNTAPPROVE,
COUNT(case when f.APPLY_STATUS = '3' then f.BLINDBOARD_ID end) COUNTARCHIVE
FROM bus_blindboard f
LEFT JOIN bus_blindboardinfo bb ON bb.BLINDBOARD_ID = f.BLINDBOARD_ID
WHERE f.ISDELETE = '0'
<if test="CORPINFO_ID!= null and CORPINFO_ID!=''">
and f.CORPINFO_ID = #{CORPINFO_ID}
</if>
<if test="ids!= null and ids.size()>0">
AND f.CORPINFO_ID IN
<foreach item="item" index="index" collection="ids" open="(" separator="," close=")">
#{item}
</foreach>
</if>
UNION ALL
SELECT
(
SELECT
count( 1 )
FROM
bus_highwork f
WHERE
<if test="CORPINFO_ID!= null and CORPINFO_ID!=''">
f.CORPINFO_ID = #{CORPINFO_ID}
</if>
<if test="ids!= null and ids.size()>0">
f.CORPINFO_ID IN
<foreach item="item" index="index" collection="ids" open="(" separator="," close=")">
#{item}
</foreach>
</if>
AND (
f.APPLY_STATUS != '0' AND f.APPLY_STATUS NOT IN ('4','55','5','-5')
AND date_format( now(), '%Y-%m-%d %H:%i' ) >= f.WORK_START_DATE
AND f.WORK_END_DATE >= date_format( now(), '%Y-%m-%d %H:%i' )
OR f.APPLY_STATUS IN ( '4', '55', '5', '-5' )
)
) COUNTAPPLY,
COUNT(case when f.APPLY_STATUS != '0' AND f.APPLY_STATUS NOT IN ('4','55','5','-5') AND date_format(now(),'%Y-%m-%d %H:%i') >= f.WORK_START_DATE AND f.WORK_END_DATE >= date_format(now(),'%Y-%m-%d %H:%i') then f.HIGHWORK_ID end) COUNTAPPROVE,
COUNT(case when f.APPLY_STATUS in ('4','55','5','-5') then f.HIGHWORK_ID end) COUNTARCHIVE
FROM bus_highwork f WHERE f.ISDELETE = '0'
<if test="CORPINFO_ID!= null and CORPINFO_ID!=''">
and f.CORPINFO_ID = #{CORPINFO_ID}
</if>
<if test="ids!= null and ids.size()>0">
AND f.CORPINFO_ID IN
<foreach item="item" index="index" collection="ids" open="(" separator="," close=")">
#{item}
</foreach>
</if>
UNION ALL
SELECT
(
SELECT
count(1)
FROM
bus_confinedspace f
WHERE
<if test="CORPINFO_ID!= null and CORPINFO_ID!=''">
f.CORPINFO_ID = #{CORPINFO_ID}
</if>
<if test="ids!= null and ids.size()>0">
f.CORPINFO_ID IN
<foreach item="item" index="index" collection="ids" open="(" separator="," close=")">
#{item}
</foreach>
</if>
AND (
f.APPLY_STATUS != '0' and f.APPLY_STATUS != '7'
AND date_format( now(), '%Y-%m-%d %H:%i' ) >= f.WORK_START_DATE
AND f.WORK_END_DATE >= date_format( now(), '%Y-%m-%d %H:%i' )
OR f.APPLY_STATUS = '7'
)
) COUNTAPPLY,
COUNT(case when f.APPLY_STATUS != '0' and f.APPLY_STATUS != '7' AND date_format(now(),'%Y-%m-%d %H:%i') >= f.WORK_START_DATE AND f.WORK_END_DATE >= date_format(now(),'%Y-%m-%d %H:%i') then f.CONFINEDSPACE_ID end) COUNTAPPROVE,
COUNT(case when f.APPLY_STATUS = '7' then f.CONFINEDSPACE_ID end) COUNTARCHIVE
FROM bus_confinedspace f WHERE f.ISDELETE = '0'
<if test="CORPINFO_ID!= null and CORPINFO_ID!=''">
and f.CORPINFO_ID = #{CORPINFO_ID}
</if>
<if test="ids!= null and ids.size()>0">
AND f.CORPINFO_ID IN
<foreach item="item" index="index" collection="ids" open="(" separator="," close=")">
#{item}
</foreach>
</if>
UNION ALL
SELECT
(
SELECT
count( 1 )
FROM
bus_hoisting f
WHERE
<if test="CORPINFO_ID!= null and CORPINFO_ID!=''">
f.CORPINFO_ID = #{CORPINFO_ID}
</if>
<if test="ids!= null and ids.size()>0">
f.CORPINFO_ID IN
<foreach item="item" index="index" collection="ids" open="(" separator="," close=")">
#{item}
</foreach>
</if>
AND (
f.APPLY_STATUS != '0' and f.APPLY_STATUS not in ('4','55','5','-5')
AND date_format( now(), '%Y-%m-%d %H:%i' ) >= f.JOB_START_TIME
AND f.JOB_END_TIME >= date_format( now(), '%Y-%m-%d %H:%i' )
OR f.APPLY_STATUS IN ( '4', '55', '5', '-5' )
)
) COUNTAPPLY,
COUNT(case when f.APPLY_STATUS != '0' and f.APPLY_STATUS not in ('4','55','5','-5') AND date_format(now(),'%Y-%m-%d %H:%i') >= f.JOB_START_TIME AND f.JOB_END_TIME >= date_format(now(),'%Y-%m-%d %H:%i') then f.HOISTING_ID end) COUNTAPPROVE,
COUNT(case when f.APPLY_STATUS IN ('4','55','5','-5') then f.HOISTING_ID end) COUNTARCHIVE
FROM bus_hoisting f WHERE f.ISDELETE = '0'
<if test="CORPINFO_ID!= null and CORPINFO_ID!=''">
and f.CORPINFO_ID = #{CORPINFO_ID}
</if>
<if test="ids!= null and ids.size()>0">
AND f.CORPINFO_ID IN
<foreach item="item" index="index" collection="ids" open="(" separator="," close=")">
#{item}
</foreach>
</if>
) f
</select>
<select id="statisticsAllHighRiskWorkFirst" resultType="com.zcloud.entity.PageData">
SELECT count(*) COUNT FROM bus_hotwork_cfd f WHERE f.ISDELETE = '0' AND f.CORPINFO_ID = #{CORPINFO_ID}
UNION ALL
SELECT count(*) COUNT FROM bus_electricity f WHERE f.ISDELETE = '0' AND f.CORPINFO_ID = #{CORPINFO_ID}
UNION ALL
SELECT count(*) COUNT FROM bus_blindboard f WHERE f.ISDELETE = '0' AND f.CORPINFO_ID = #{CORPINFO_ID}
UNION ALL
SELECT count(*) COUNT FROM bus_highwork f WHERE f.ISDELETE = '0' AND f.CORPINFO_ID = #{CORPINFO_ID}
UNION ALL
SELECT count(*) COUNT FROM bus_confinedspace f WHERE f.ISDELETE = '0' AND f.CORPINFO_ID = #{CORPINFO_ID}
UNION ALL
SELECT count(*) COUNT FROM bus_hoisting f WHERE f.ISDELETE = '0' AND f.CORPINFO_ID = #{CORPINFO_ID}
</select>
2023-11-07 09:32:12 +08:00
</mapper>