qa-prevention-gwj/src/main/resources/mybatis/datasource/bus/ListManagerMapper.xml

1182 lines
32 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?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.bus.ListManagerMapper">
<!--表名 -->
<sql id="tableName">
BUS_LISTMANAGER
</sql>
<!--数据字典表名 -->
<sql id="dicTableName">
SYS_DICTIONARIES
</sql>
<!-- 字段 -->
<sql id="Field">
f.NAME,
f.PERIOD,
f.TYPE,
f.CORPINFO_ID,
f.CREATOR,
f.CREATTIME,
f.OPERATOR,
f.OPERATTIME,
f.ISDELETE,
f.LISTMANAGER_ID,
f.DEPARTMENT_ID,
f.POST_ID,
f.USER_ID,
f.ACOUNT,
f.BCOUNT,
f.CCOUNT,
f.DCOUNT,
f.START_DATE,
f.END_DATE,
f.SCREENTYPE
</sql>
<!-- 字段用于新增 -->
<sql id="Field2">
NAME,
PERIOD,
TYPE,
CORPINFO_ID,
CREATOR,
CREATTIME,
OPERATOR,
OPERATTIME,
ISDELETE,
LISTMANAGER_ID,
DEPARTMENT_ID,
POST_ID,
USER_ID,
ACOUNT,
BCOUNT,
CCOUNT,
DCOUNT,
START_DATE,
END_DATE,
SCREENTYPE
</sql>
<!-- 字段值 -->
<sql id="FieldValue">
#{NAME},
#{PERIOD},
#{TYPE},
#{CORPINFO_ID},
#{CREATOR},
#{CREATTIME},
#{OPERATOR},
#{OPERATTIME},
#{ISDELETE},
#{LISTMANAGER_ID},
#{DEPARTMENT_ID},
#{POST_ID},
#{USER_ID},
#{ACOUNT},
#{BCOUNT},
#{CCOUNT},
#{DCOUNT},
#{START_DATE},
#{END_DATE},
#{SCREENTYPE}
</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'
<if test="OPERATTIME != null or OPERATTIME != ''">
,OPERATTIME =#{OPERATTIME}
</if>
<if test="OPERATOR != null or OPERATOR != ''">
,OPERATOR =#{OPERATOR}
</if>
where
LISTMANAGER_ID = #{LISTMANAGER_ID}
</delete>
<!-- 删除 -->
<delete id="remove" parameterType="pd">
update
<include refid="tableName"></include>
set
ISDELETE = '2'
<if test="OPERATTIME != null or OPERATTIME != ''">
,OPERATTIME =#{OPERATTIME}
</if>
<if test="OPERATOR != null or OPERATOR != ''">
,OPERATOR =#{OPERATOR}
</if>
where
LISTMANAGER_ID = #{LISTMANAGER_ID}
</delete>
<!-- 启用 -->
<update id="enable" parameterType="pd">
update
<include refid="tableName"></include>
set
ISDELETE = '0'
<if test="OPERATTIME != null or OPERATTIME != ''">
,OPERATTIME =#{OPERATTIME}
</if>
<if test="OPERATOR != null or OPERATOR != ''">
,OPERATOR =#{OPERATOR}
</if>
where
LISTMANAGER_ID = #{LISTMANAGER_ID}
</update>
<!-- 修改 -->
<update id="edit" parameterType="pd">
update
<include refid="tableName"></include>
set
NAME = #{NAME},
PERIOD = #{PERIOD},
TYPE = #{TYPE},
ACOUNT = #{ACOUNT},
BCOUNT = #{BCOUNT},
CCOUNT = #{CCOUNT},
DCOUNT = #{DCOUNT},
<if test="DEPARTMENT_ID != null or DEPARTMENT_ID != ''">
DEPARTMENT_ID= #{DEPARTMENT_ID},
</if>
<if test="POST_ID != null or POST_ID != ''">
POST_ID =#{POST_ID},
</if>
<if test="SCREENTYPE != null or SCREENTYPE != ''">
SCREENTYPE =#{SCREENTYPE},
</if>
<if test="START_DATE != null or START_DATE != ''">
START_DATE =#{START_DATE},
</if>
<if test="END_DATE != null or END_DATE != ''">
END_DATE =#{END_DATE},
</if>
<if test="OVERTIMENUM != null or OVERTIMENUM != ''">
OVERTIMENUM =#{OVERTIMENUM},
</if>
<if test="USER_ID != null or USER_ID!= ''">
USER_ID =#{USER_ID},
</if>
LISTMANAGER_ID = LISTMANAGER_ID
where
LISTMANAGER_ID = #{LISTMANAGER_ID}
</update>
<!-- 通过ID获取数据 -->
<select id="findById" parameterType="pd" resultType="pd">
select
<include refid="Field"></include>
,
p.NAME PERIODNAME,
t.NAME TYPENAME,
d.NAME as DEPARTMENT_NAME,
sp.NAME
AS POST_NAME,
s.NAME AS SCREENTYPENAME,
getUnameByUid(f.USER_ID) AS USER_NAME
from
<include refid="tableName"></include>
f
left join sys_dictionaries p on f.PERIOD = p.BIANMA
left join sys_dictionaries t on f.TYPE = t.BIANMA
left join sys_dictionaries s on f.SCREENTYPE = s.BIANMA
left join OA_DEPARTMENT d on d.DEPARTMENT_ID=f.DEPARTMENT_ID
left join
SYS_POST sp on sp.POST_ID=f.POST_ID
LEFT JOIN SYS_USER u on u.USER_ID =
f.USER_ID
where
f.LISTMANAGER_ID = #{LISTMANAGER_ID}
</select>
<!-- 列表 -->
<select id="datalistPage" parameterType="page" resultType="pd">
select
v.USER_ID V_USER_ID,
v.USERNAME,
<include refid="Field"></include>
,
p.NAME PERIODNAME,
t.NAME TYPENAME,
d.NAME as DEPARTMENT_NAME,
sp.NAME
AS POST_NAME,
getUnameByUid(f.USER_ID) USER_NAME,
s.NAME AS SCREENTYPENAME,
(select count(1) from BUS_LIST_CHECKITEM ch where
ch.LISTMANAGER_ID=f.LISTMANAGER_ID and ch.ISDELETE = '0') as count ,
(SELECT count(1) FROM BUS_CHECKRECORD ch WHERE ch.LISTMANAGER_ID =
f.LISTMANAGER_ID AND ch.FINISHED = '1' AND ch.ISDELETE = 0 ) as
cdcount
from
<include refid="tableName"></include> f
left join sys_dictionaries p on f.PERIOD = p.BIANMA
left join sys_dictionaries t on f.TYPE = t.BIANMA
left join sys_dictionaries s on f.SCREENTYPE = s.BIANMA
left join OA_DEPARTMENT d on d.DEPARTMENT_ID=f.DEPARTMENT_ID
left join SYS_POST sp on sp.POST_ID=f.POST_ID
left join sys_user u on u.USER_ID = f.USER_ID
LEFT JOIN sys_user v ON v.USERNAME = f.CREATOR
where f.CORPINFO_ID = #{pd.CORPINFO_ID}
and f.ISDELETE != '2'
<if test="pd.roleLevel != null and pd.roleLevel != ''"><!-- 权限显示 -->
<choose>
<when test='pd.roleLevel == "0"'>
</when>
<when test='pd.roleLevel == "1"'>
and f.DEPARTMENT_ID in (${pd.supDeparIds})
</when>
<when test='pd.roleLevel == "2"'>
<!-- f.CREATOR = #{pd.loginUserId} -->
and ( v.user_id = #{pd.loginUserId} or f.USER_ID = #{pd.loginUserId} )
<!-- rolelevel是2的情况下CREATOR存的是手机号前台传的当前登录人是id所以我用CREATOR的id去跟登录人的id对比 -->
</when>
</choose>
</if>
<if test="pd.HIDFORBIDDEN == null or pd.HIDFORBIDDEN == ''"><!-- 是否隐藏禁用清单当HIDFORBIDDEN为空时隐藏已禁用清单 -->
and f.ISDELETE = '0'
</if>
<if test="pd.KEYWORDS != null and pd.KEYWORDS != ''"><!-- 关键词检索 -->
and
(
f.NAME LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%')
)
</if>
<if test="pd.POST_ID != null and pd.POST_ID != ''"><!-- 关键词检索 -->
and
(
f.POST_ID = #{pd.POST_ID}
)
</if>
<if test="pd.DEPARTMENT_ID != null and pd.DEPARTMENT_ID != ''"><!-- 关键词检索 -->
and f.DEPARTMENT_ID = #{pd.DEPARTMENT_ID}
</if>
<if test="pd.USERNAME != null and pd.USERNAME != ''"><!-- 关键词检索 -->
and getUnameByUid(f.USER_ID) LIKE CONCAT(CONCAT('%', #{pd.USERNAME}),'%')
</if>
<if test="pd.TYPE != null and pd.TYPE != ''"><!-- 关键词检索 -->
and f.TYPE = #{pd.TYPE}
</if>
<if test="pd.LISTINGLEVEL != null and pd.LISTINGLEVEL != ''"><!-- 关键词检索 -->
<choose>
<when test='pd.LISTINGLEVEL == "1"'>
and d.LEVEL = ''
</when>
<otherwise>
and d.LEVEL = #{pd.LISTINGLEVEL}
</otherwise>
</choose>
</if>
<if
test="pd.RISKCHECKLISTTYPE != null and pd.RISKCHECKLISTTYPE != ''"><!-- 关键词检索 -->
and f.SCREENTYPE = #{pd.RISKCHECKLISTTYPE}
</if>
order by f.ISDELETE,f.OPERATTIME desc
</select>
<!-- 部门清单列表 -->
<select id="recordlistPage" parameterType="page" resultType="pd">
select * from
(
select
<include refid="Field"></include>
,
p.NAME PERIODNAME,
t.NAME TYPENAME,
d.NAME as DEPARTMENT_NAME,
sp.NAME
AS POST_NAME,
u.NAME as USER_NAME,
(
select count(1) from BUS_CHECKRECORD ch
where ch.LISTMANAGER_ID=f.LISTMANAGER_ID
and ch.FINISHED='1' and ch.ISDELETE =0
) as count ,
(
select
count(1)
from BUS_CHECKRECORD ch
left join bus_hidden h on h.CHECKRECORD_ID = ch.CHECKRECORD_ID
where ch.LISTMANAGER_ID=f.LISTMANAGER_ID
and ch.FINISHED='1'
and ch.ISDELETE =0
and h.ISDELETE =0
and h.HIDDEN_ID is not null
) as hiddenCount,
(
CASE
WHEN f.TYPE ='listType0005' THEN CONCAT(f.START_DATE," 00:00:00")
WHEN f.PERIOD ='checkPeriod0001' THEN sd.DAY_START
WHEN f.PERIOD ='checkPeriod0002' THEN sd.WEEK_START
WHEN f.PERIOD ='checkPeriod0003' THEN sd.XUN_START
WHEN f.PERIOD ='checkPeriod0004' THEN sd.MONTH_START
WHEN f.PERIOD ='checkPeriod0005' THEN sd.QUARTER_START
WHEN f.PERIOD ='checkPeriod0006' THEN sd.YEAR_START
WHEN f.PERIOD ='checkPeriod0007' THEN sd.HALFYEAR_START
end
) DATESTART,
(
CASE
WHEN f.TYPE ='listType0005' THEN CONCAT(f.END_DATE," 23:59:59")
WHEN f.PERIOD ='checkPeriod0001' THEN sd.DAY_END
WHEN f.PERIOD ='checkPeriod0002' THEN sd.WEEK_END
WHEN f.PERIOD ='checkPeriod0003' THEN sd.XUN_END
WHEN f.PERIOD ='checkPeriod0004' THEN sd.MONTH_END
WHEN f.PERIOD ='checkPeriod0005' THEN sd.QUARTER_END
WHEN f.PERIOD ='checkPeriod0006' THEN sd.YEAR_END
WHEN f.PERIOD ='checkPeriod0007' THEN sd.HALFYEAR_END
end
) DATEEND,
ve.numCount checkCount,
f.OVERTIMENUM overTimeCount
from
<include refid="tableName"></include>
f
left join sys_dictionaries p on f.PERIOD = p.BIANMA
left join sys_dictionaries t on f.TYPE = t.BIANMA
left join OA_DEPARTMENT d on d.DEPARTMENT_ID = f.DEPARTMENT_ID
left join
SYS_POST sp on sp.POST_ID=f.POST_ID
left join SYS_USER u on u.USER_ID =
f.USER_ID
left join bus_sysdate sd on TO_DAYS(sd.date) = TO_DAYS(NOW())
left join view_examine ve on ve.LISTMANAGER_ID = f.LISTMANAGER_ID
where f.CORPINFO_ID = #{pd.CORPINFO_ID}
<if test="pd.statusIds != null and pd.statusIds != ''">
and
(
f.LISTMANAGER_ID in
<foreach item="item" index="index" collection="pd.statusIds"
open="(" separator="," close=")">
'${item}'
</foreach>
)
</if>
<if test="pd.KEYWORDS != null and pd.KEYWORDS != ''"><!-- 关键词检索 -->
and
(
f.NAME LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%')
)
</if>
<!-- <if test="pd.DEPARTMENT_IDS != null and pd.DEPARTMENT_IDS != ''">&lt;!&ndash; 关键词检索 &ndash;&gt;-->
<!-- and-->
<!-- (-->
<!-- f.DEPARTMENT_ID in-->
<!-- <foreach item="item" index="index"-->
<!-- collection="pd.DEPARTMENT_IDS" open="(" separator="," close=")">-->
<!-- '${item}'-->
<!-- </foreach>-->
<!-- or f.USER_ID = #{pd.USER_ID}-->
<!-- )-->
<!-- </if>-->
<if test="pd.USERNAME != null and pd.USERNAME != ''"><!-- 关键词检索 -->
and u.NAME LIKE CONCAT(CONCAT('%', #{pd.USERNAME}),'%')
</if>
<if test="pd.DEPARTMENT_ID != null and pd.DEPARTMENT_ID != ''"><!-- 关键词检索 -->
and f.DEPARTMENT_ID = #{pd.DEPARTMENT_ID}
</if>
<if test="pd.PERIOD != null and pd.PERIOD != ''"><!-- 关键词检索 -->
and f.PERIOD = #{pd.PERIOD}
</if>
<if test="pd.STATUS != null and pd.STATUS != ''"><!-- 关键词检索 -->
<choose>
<when test='pd.STATUS=="1"'>
AND ve.numCount &gt; 0
</when>
<when test='pd.STATUS=="0"'>
AND ve.numCount = 0
</when>
<otherwise>
</otherwise>
</choose>
</if>
<if test="pd.OVERTIME != null and pd.OVERTIME != ''"><!-- 关键词检索 -->
<choose>
<when test='pd.OVERTIME=="1"'>
AND f.OVERTIMENUM &gt; 0
</when>
<when test='pd.OVERTIME=="0"'>
AND f.OVERTIMENUM = 0
</when>
<otherwise>
</otherwise>
</choose>
</if>
<if test="pd.TYPE != null and pd.TYPE != ''"><!-- 关键词检索 -->
and f.TYPE = #{pd.TYPE}
</if>
<if test="pd.LISTINGLEVEL != null and pd.LISTINGLEVEL != ''"><!-- 关键词检索 -->
<choose>
<when test='pd.LISTINGLEVEL == "1"'>
and d.LEVEL = ''
</when>
<otherwise>
and d.LEVEL = #{pd.LISTINGLEVEL}
</otherwise>
</choose>
</if>
<if
test="(pd.STARTTIME != null and pd.STARTTIME != '') or (pd.ENDTIME != null and pd.ENDTIME != '')"><!-- 关键词检索 -->
<choose>
<when
test="pd.STARTTIME != null and pd.STARTTIME != '' and pd.ENDTIME != null and pd.ENDTIME != ''">
and f.LISTMANAGER_ID in
(
SELECT LISTMANAGER_ID
FROM BUS_CHECKRECORD
WHERE FINISHED = '1'
AND ISDELETE = 0
and CHECK_TIME &gt;= #{pd.STARTTIME}
and CHECK_TIME &lt;= #{pd.ENDTIME}
)
</when>
<when test="pd.STARTTIME != null and pd.STARTTIME != ''">
and f.LISTMANAGER_ID in
(
SELECT LISTMANAGER_ID
FROM BUS_CHECKRECORD
WHERE FINISHED = '1'
AND ISDELETE = 0
and CHECK_TIME &gt;= #{pd.STARTTIME}
)
</when>
<when test="pd.ENDTIME != null and pd.ENDTIME != ''">
and f.LISTMANAGER_ID in
(
SELECT LISTMANAGER_ID
FROM BUS_CHECKRECORD
WHERE FINISHED = '1'
AND ISDELETE = 0
and CHECK_TIME &lt;= #{pd.ENDTIME}
)
</when>
</choose>
</if>
) f
where 1= 1
<if test="pd.HASHIDDEN != null and pd.HASHIDDEN != ''"><!-- 关键词检索 -->
<choose>
<when test="pd.HASHIDDEN == 0">
and f.hiddenCount = 0
</when>
<when test="pd.HASHIDDEN == 1">
and f.hiddenCount > 0
</when>
</choose>
</if>
order by f.ISDELETE,f.OPERATTIME desc
</select>
<!-- 列表(全部) -->
<select id="listAll" parameterType="pd" resultType="pd">
select
<include refid="Field"></include>
,
p.NAME PERIODNAME,
t.NAME TYPENAME,
d.NAME as DEPARTMENT_NAME,
sp.NAME
AS POST_NAME,
getUnameByUid(f.USER_ID) USER_NAME,
(select count(1) from BUS_LIST_CHECKITEM
ch where ch.LISTMANAGER_ID=f.LISTMANAGER_ID and ch.ISDELETE =0) as
count,
ve.numCount checkCount
from
<include refid="tableName"></include>
f
left join sys_dictionaries p on f.PERIOD = p.BIANMA
left join sys_dictionaries t on f.TYPE = t.BIANMA
left join OA_DEPARTMENT d on d.DEPARTMENT_ID=f.DEPARTMENT_ID
left join
sys_user u on u.USER_ID = f.USER_ID
left join SYS_POST sp on
sp.POST_ID=f.POST_ID
left join view_examine ve on ve.LISTMANAGER_ID =
f.LISTMANAGER_ID
where f.ISDELETE = '0' and (f.TYPE != 'listType0005'
or (f.START_DATE &lt;= DATE_FORMAT(NOW(),'%Y-%m-%d') and f.END_DATE
&gt;= DATE_FORMAT(NOW(),'%Y-%m-%d') ))
<!-- <if test="POST_ID != null and POST_ID != ''">关键词检索 -->
<!-- and -->
<!-- ( -->
<!-- f.POST_ID = #{POST_ID} -->
<!-- ) -->
<!-- </if> -->
<if test="CORPINFO_ID != null and CORPINFO_ID != ''">
and
f.CORPINFO_ID = #{CORPINFO_ID}
</if>
<if test="DEPARTMENT_IDS != null and DEPARTMENT_IDS != ''"><!-- 关键词检索 -->
and
(
f.DEPARTMENT_ID in
<foreach item="item" index="index"
collection="DEPARTMENT_IDS" open="(" separator="," close=")">
#{item}
</foreach>
or f.USER_ID = #{USER_ID}
)
</if>
<if test="DEPARTMENT_ID != null and DEPARTMENT_ID != ''">
and
f.DEPARTMENT_ID = #{DEPARTMENT_ID}
</if>
<if test="USER_ID != null and USER_ID != ''">
and f.USER_ID = #{USER_ID}
</if>
<if test="DTID != null and DTID != ''"><!-- 部门查询条件 -->
and f.DEPARTMENT_ID = #{DTID}
</if>
<if test="USERNAME != null and USERNAME != ''">
and u.NAME LIKE CONCAT(CONCAT('%', #{USERNAME}),'%')
</if>
<if test="KEYWORDS != null and KEYWORDS != ''">
and f.NAME LIKE CONCAT(CONCAT('%', #{KEYWORDS}),'%')
</if>
<if test="STATUS != null and STATUS != ''"><!-- 关键词检索 -->
<choose>
<when test='STATUS=="1"'>
AND ve.numCount &gt; 0
</when>
<when test='STATUS=="0"'>
AND ve.numCount = 0
</when>
<otherwise>
</otherwise>
</choose>
</if>
<if test="LISTINGLEVEL != null and LISTINGLEVEL != ''"><!-- 关键词检索 -->
<choose>
<when test='LISTINGLEVEL == "1"'>
and d.LEVEL = ''
</when>
<otherwise>
and d.LEVEL = #{LISTINGLEVEL}
</otherwise>
</choose>
</if>
order by f.USER_ID= #{orderUserId} desc ,f.DEPARTMENT_ID asc
</select>
<!-- 清单检查分页 -->
<select id="checklistPage" parameterType="page" resultType="pd">
select
<include refid="Field"></include>
,
p.NAME PERIODNAME,
t.NAME TYPENAME,
d.NAME as DEPARTMENT_NAME,
sp.NAME
AS POST_NAME,
getUnameByUid(f.USER_ID) USER_NAME,
(select count(1) from BUS_LIST_CHECKITEM ch where ch.LISTMANAGER_ID=f.LISTMANAGER_ID and ch.ISDELETE =0) as count,
ve.numCount checkCount
from
<include refid="tableName"></include>
f
left join sys_dictionaries p on f.PERIOD = p.BIANMA
left join sys_dictionaries t on f.TYPE = t.BIANMA
left join OA_DEPARTMENT d on d.DEPARTMENT_ID = f.DEPARTMENT_ID
left join sys_user u on u.USER_ID = f.USER_ID
left join SYS_POST sp on sp.POST_ID=f.POST_ID
left join view_examine ve on ve.LISTMANAGER_ID = f.LISTMANAGER_ID
where f.ISDELETE = '0'
and (f.TYPE != 'listType0005' or (f.START_DATE &lt;= DATE_FORMAT(NOW(),'%Y-%m-%d') and f.END_DATE &gt;= DATE_FORMAT(NOW(),'%Y-%m-%d') ))
<!-- <if test="POST_ID != null and POST_ID != ''">关键词检索 -->
<!-- and -->
<!-- ( -->
<!-- f.POST_ID = #{POST_ID} -->
<!-- ) -->
<!-- </if> -->
<if test="pd.roleLevel != null and pd.roleLevel != ''"><!-- 权限显示 -->
<choose>
<when test='pd.roleLevel == "0"'>
</when>
<when test='pd.roleLevel == "1"'>
and f.DEPARTMENT_ID in (${pd.supDeparIds})
</when>
<when test='pd.roleLevel == "2"'>
and f.USER_ID = #{pd.loginUserId}
</when>
</choose>
</if>
<if test="pd.CORPINFO_ID != null and pd.CORPINFO_ID != ''">
and
f.CORPINFO_ID = #{pd.CORPINFO_ID}
</if>
<!-- <if test="pd.DEPARTMENT_IDS != null and pd.DEPARTMENT_IDS != ''">&lt;!&ndash; 关键词检索 &ndash;&gt;-->
<!-- and-->
<!-- (-->
<!-- f.DEPARTMENT_ID in-->
<!-- <foreach item="item" index="index"-->
<!-- collection="pd.DEPARTMENT_IDS" open="(" separator="," close=")">-->
<!-- #{pd.DEPARTMENT_IDS[${index}]}-->
<!-- </foreach>-->
<!-- or f.USER_ID = #{pd.USER_ID}-->
<!-- )-->
<!-- </if>-->
<if test="pd.DEPARTMENT_ID != null and pd.DEPARTMENT_ID != ''">
and
f.DEPARTMENT_ID = #{pd.DEPARTMENT_ID}
and f.USER_ID = #{pd.USER_ID}
</if>
<if test="pd.DTID != null and pd.DTID != ''"><!-- 部门查询条件 -->
and f.DEPARTMENT_ID = #{pd.DTID}
</if>
<if test="pd.USERNAME != null and pd.USERNAME != ''">
and getUnameByUid(f.USER_ID) LIKE CONCAT(CONCAT('%', #{pd.USERNAME}),'%')
</if>
<if test="pd.KEYWORDS != null and pd.KEYWORDS != ''">
and f.NAME LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%')
</if>
<if test="pd.PERIODNAME != null and pd.PERIODNAME != ''">
and p.NAME LIKE CONCAT(CONCAT('%', #{pd.PERIODNAME}),'%')
</if>
<if test="pd.STATUS != null and pd.STATUS != ''"><!-- 关键词检索 -->
<choose>
<when test='pd.STATUS=="1"'>
AND ve.numCount &gt; 0
</when>
<when test='pd.STATUS=="0"'>
AND ve.numCount = 0
</when>
<otherwise>
</otherwise>
</choose>
</if>
<if test="pd.LISTINGLEVEL != null and pd.LISTINGLEVEL != ''"><!-- 关键词检索 -->
<choose>
<when test='pd.LISTINGLEVEL == "1"'>
and d.LEVEL = ''
</when>
<otherwise>
and d.LEVEL = #{pd.LISTINGLEVEL}
</otherwise>
</choose>
</if>
order by f.USER_ID= #{pd.orderUserId} desc ,f.DEPARTMENT_ID asc,f.CREATTIME desc
</select>
<!-- 列表(全部) -->
<select id="listRecordAll" parameterType="pd" resultType="pd">
select * from (
select
f.TYPE,
f.START_DATE,
f.END_DATE,
f.CREATTIME,
f.LISTMANAGER_ID,
p.NAME PERIODNAME,
f.OPERATTIME,
(
select
count(1)
from BUS_CHECKRECORD ch
left join bus_hidden h on h.CHECKRECORD_ID = ch.CHECKRECORD_ID
where ch.LISTMANAGER_ID=f.LISTMANAGER_ID
and ch.FINISHED='1'
and ch.ISDELETE =0
and h.ISDELETE =0
and h.HIDDEN_ID is not null
) as hiddenCount
from
<include refid="tableName"></include>
f
left join sys_dictionaries p on f.PERIOD = p.BIANMA
left join sys_dictionaries t on f.TYPE = t.BIANMA
left join OA_DEPARTMENT d on d.DEPARTMENT_ID = f.DEPARTMENT_ID
left join
SYS_POST sp on sp.POST_ID=f.POST_ID
left join SYS_USER u on u.USER_ID =
f.USER_ID
where f.CORPINFO_ID = #{pd.CORPINFO_ID}
<if test="pd.KEYWORDS != null and pd.KEYWORDS != ''"><!-- 关键词检索 -->
and
(
f.NAME LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%')
)
</if>
<!-- <if test="pd.DEPARTMENT_IDS != null and pd.DEPARTMENT_IDS != ''">&lt;!&ndash; 关键词检索 &ndash;&gt;-->
<!-- and-->
<!-- (-->
<!-- f.DEPARTMENT_ID in-->
<!-- <foreach item="item" index="index"-->
<!-- collection="pd.DEPARTMENT_IDS" open="(" separator="," close=")">-->
<!-- '${item}'-->
<!-- </foreach>-->
<!-- or f.USER_ID = #{pd.USER_ID}-->
<!-- )-->
<!-- </if>-->
<if test="pd.USERNAME != null and pd.USERNAME != ''"><!-- 关键词检索 -->
and u.NAME LIKE CONCAT(CONCAT('%', #{pd.USERNAME}),'%')
</if>
<if test="pd.DEPARTMENT_ID != null and pd.DEPARTMENT_ID != ''"><!-- 关键词检索 -->
and f.DEPARTMENT_ID = #{pd.DEPARTMENT_ID}
</if>
<if test="pd.PERIOD != null and pd.PERIOD != ''"><!-- 关键词检索 -->
and f.PERIOD = #{pd.PERIOD}
</if>
<if test="pd.TYPE != null and pd.TYPE != ''"><!-- 关键词检索 -->
and f.TYPE = #{pd.TYPE}
</if>
<if test="pd.LISTINGLEVEL != null and pd.LISTINGLEVEL != ''"><!-- 关键词检索 -->
<choose>
<when test='pd.LISTINGLEVEL == "1"'>
and d.LEVEL = ''
</when>
<otherwise>
and d.LEVEL = #{pd.LISTINGLEVEL}
</otherwise>
</choose>
</if>
<if
test="(pd.STARTTIME != null and pd.STARTTIME != '') or (pd.ENDTIME != null and pd.ENDTIME != '')"><!-- 关键词检索 -->
<choose>
<when
test="pd.STARTTIME != null and pd.STARTTIME != '' and pd.ENDTIME != null and pd.ENDTIME != ''">
and f.LISTMANAGER_ID in
(
SELECT LISTMANAGER_ID
FROM BUS_CHECKRECORD
WHERE FINISHED = '1'
AND ISDELETE = 0
and CHECK_TIME &gt;= #{pd.STARTTIME}
and CHECK_TIME &lt;= #{pd.ENDTIME}
)
</when>
<when test="pd.STARTTIME != null and pd.STARTTIME != ''">
and f.LISTMANAGER_ID in
(
SELECT LISTMANAGER_ID
FROM BUS_CHECKRECORD
WHERE FINISHED = '1'
AND ISDELETE = 0
and CHECK_TIME &gt;= #{pd.STARTTIME}
)
</when>
<when test="pd.ENDTIME != null and pd.ENDTIME != ''">
and f.LISTMANAGER_ID in
(
SELECT LISTMANAGER_ID
FROM BUS_CHECKRECORD
WHERE FINISHED = '1'
AND ISDELETE = 0
and CHECK_TIME &lt;= #{pd.ENDTIME}
)
</when>
</choose>
</if>
) f
where 1= 1
<if test="pd.HASHIDDEN != null and pd.HASHIDDEN != ''"><!-- 关键词检索 -->
<choose>
<when test="pd.HASHIDDEN == 0">
and f.hiddenCount = 0
</when>
<when test="pd.HASHIDDEN == 1">
and f.hiddenCount > 0
</when>
</choose>
</if>
order by f.OPERATTIME desc
</select>
<!-- 列表(不包含节假日) -->
<select id="listExaminedNum" parameterType="pd" resultType="pd">
SELECT
count(1) NOTEXAMINEDNUM,PERIOD,TYPE,CORPINFO_ID,USER_ID
FROM
BUS_LISTMANAGER
where
ISDELETE = 0
and TYPE != 'listType0005'
GROUP BY PERIOD,TYPE,CORPINFO_ID,USER_ID
</select>
<select id="listExaminedNumJjr" parameterType="pd"
resultType="pd">
SELECT
count(1)*2 NOTEXAMINEDNUM,TYPE,CORPINFO_ID,START_DATE,END_DATE,USER_ID
FROM
BUS_LISTMANAGER
where
ISDELETE = 0
and TYPE = 'listType0005'
and START_DATE is not null
and END_DATE is
not null
AND START_DATE != ''
AND END_DATE != ''
GROUP BY TYPE,CORPINFO_ID,START_DATE,END_DATE,USER_ID
</select>
<!--清单全部风险 -->
<select id="listAllRisk" parameterType="pd" resultType="pd">
select
id.PARTSNAME,
id.IDENTIFICATIONPARTS_ID,
un.RISKUNITNAME,
de.NAME DEPT_NAME,
count(r.RISKPOINT_ID) as RISK_COUNT
from
BUS_LIST_CHECKITEM f
left join BUS_RISKPOINT r on r.RISKPOINT_ID=f.RISKPOINT_ID
left join bus_identificationparts id on id.IDENTIFICATIONPARTS_ID =
r.IDENTIFICATION_ID
left join BUS_RISKUNIT un on id.RISK_UNIT_ID = un.RISKUNIT_ID
left join OA_DEPARTMENT de on de.DEPARTMENT_ID = un.DEPARTMENT_ID
where
f.LISTMANAGER_ID = #{LISTMANAGER_ID}
and
f.ISDELETE = '0'
group by id.IDENTIFICATIONPARTS_ID,id.PARTSNAME
</select>
<!-- 批量删除 -->
<delete id="deleteAll" parameterType="String">
update
<include refid="tableName"></include>
set
ISDELETE = '1'
where
LISTMANAGER_ID in
<foreach item="item" index="index" collection="ArrayDATA_IDS"
open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<!--查询部门清单 -->
<select id="listListByDep" parameterType="pd" resultType="pd">
SELECT
f.LISTMANAGER_ID
FROM
bus_listmanager f
WHERE
f.ISDELETE = '0'
and f.DEPARTMENT_ID = #{DEPARTMENT_ID}
</select>
<!--人员负责清单数 -->
<select id="countListByUser" parameterType="pd" resultType="pd">
SELECT
count(1) NUM,
f.USER_ID
FROM
bus_listmanager f
LEFT JOIN SYS_USER u ON u.USER_ID = f.USER_ID
WHERE
f.ISDELETE = '0'
and f.CORPINFO_ID = #{CORPINFO_ID}
GROUP BY
f.USER_ID
</select>
<!-- 查询所有可发送短信的企业的清单 -->
<select id="listAllByCorpMsm" parameterType="pd" resultType="pd">
select
<include refid="Field"></include>
,
u.NAME USER_NAME,
u.USERNAME PHONE,
c.SMS_COUNT,
ve.numCount checkCount
from
<include refid="tableName"></include>
f
left join sys_user u on u.USER_ID = f.USER_ID
left join bus_corp_info
c on c.CORPINFO_ID = f.CORPINFO_ID
left join view_examine ve on
ve.LISTMANAGER_ID = f.LISTMANAGER_ID
where f.ISDELETE = '0' and (f.TYPE
!= 'listType0005' or (f.START_DATE &lt;= DATE_FORMAT(NOW(),'%Y-%m-%d')
and f.END_DATE &gt;= DATE_FORMAT(NOW(),'%Y-%m-%d') ))
and u.USERNAME is
not null
and u.USERNAME != ''
and u.ISMAIN = '0' <!-- 非主账号 -->
and f.CORPINFO_ID in (select CORPINFO_ID from bus_corp_info where
ISRECEIVE='1' and ISDELETE = '0' )
<if test="USERNAME != null and USERNAME != ''">
and u.NAME LIKE CONCAT(CONCAT('%', #{USERNAME}),'%')
</if>
<if test="KEYWORDS != null and KEYWORDS != ''">
and f.NAME LIKE CONCAT(CONCAT('%', #{KEYWORDS}),'%')
</if>
order by f.CORPINFO_ID
</select>
<!--查询人员清单 -->
<select id="listListByUser" parameterType="pd" resultType="pd">
SELECT
f.LISTMANAGER_ID
FROM
bus_listmanager f
WHERE
f.ISDELETE = '0'
and f.USER_ID = #{USER_ID}
</select>
<!--查询所有清单清单 -->
<select id="getAllList" parameterType="pd" resultType="pd">
SELECT
f.*,
ve.numCount checkCount
FROM
bus_listmanager f
left join view_examine ve on ve.LISTMANAGER_ID = f.LISTMANAGER_ID
WHERE
f.ISDELETE = '0'
</select>
<select id="goIndexCount" parameterType="pd" resultType="pd">
SELECT
lis.screenType,
count(*) as count,
DATE_FORMAT(CHECK_TIME, '%Y-%m') months
FROM
BUS_CHECKRECORD f
LEFT JOIN bus_LISTMANAGER lis ON lis.LISTMANAGER_ID = f.LISTMANAGER_ID
WHERE
f.CORPINFO_ID = #{CORPINFO_ID}
and f.CHECK_TIME is not null
AND f.CHECK_TIME >= CONCAT_WS(" ", date_format(DATE_ADD(date_sub(curdate(),interval 5 month),interval -day(date_sub(curdate(),interval 5 month))+1 DAY),'%Y-%m-%d'), '00:00:00')
GROUP BY
lis.screenType,
DATE_FORMAT(CHECK_TIME, '%Y-%m')
</select>
<!-- 查询公司清单总数 -->
<select id="getListCount" parameterType="pd" resultType="int" >
SELECT
count( 1 )
FROM
bus_listmanager
WHERE
CORPINFO_ID = #{CORPINFO_ID}
and ISDELETE = '0'
</select>
<!-- 查询公司检查过清单的总数 -->
<select id="getWorkedListCount" parameterType="pd" resultType="int" >
SELECT
count( 1 )
FROM
(
SELECT
count( s.LISTMANAGER_ID )
FROM
bus_listmanager s
LEFT JOIN bus_checkrecord f ON f.LISTMANAGER_ID = s.LISTMANAGER_ID
WHERE
s.CORPINFO_ID = #{CORPINFO_ID}
AND f.FINISHED = '1'
AND f.isdelete = '0'
AND s.isdelete = '0'
AND f.CHECKRECORD_ID IS NOT NULL
GROUP BY
s.LISTMANAGER_ID
) q
</select>
<!-- 根据分类统计清单 -->
<select id="countListByType" parameterType="pd" resultType="pd" >
SELECT
COUNT( f.TYPE ) NUM,
d.NAME NAME
FROM
bus_listmanager f
LEFT JOIN sys_dictionaries d ON f.TYPE = d.BIANMA
AND d.YNDEL = 'no'
WHERE
f.ISDELETE = '0'
AND f.CORPINFO_ID = #{CORPINFO_ID}
GROUP BY
f.TYPE
</select>
<!-- 上期超期未检查的清单 -->
<select id="overTimeRecord" parameterType="pd" resultType="pd">
SELECT
f.NAME,f.LISTMANAGER_ID,f.CORPINFO_ID
FROM
bus_listmanager f
LEFT JOIN bus_offduty o ON o.USER_ID = f.USER_ID
AND concat( o.STARTTIME, ' 00:00:00' ) &lt;= #{STARTTIME} AND concat( o.ENDTIME, ' 23:59:59' ) &gt;= #{ENDTIME}
left join bus_listdisabletime ld on ld.LISTMANAGER_ID = f.LISTMANAGER_ID and ld.ENDTIME is not null
and ld.STARTTIME &lt;= #{STARTTIME} and ld.ENDTIME &gt;= #{ENDTIME}
WHERE
f.LISTMANAGER_ID NOT IN (
SELECT
l.LISTMANAGER_ID
FROM
bus_listmanager l
LEFT JOIN bus_checkrecord c ON c.LISTMANAGER_ID = l.LISTMANAGER_ID
WHERE
l.isdelete = '0'
AND l.PERIOD = #{PERIOD}
AND l.TYPE != 'listType0005'
AND (
c.CHECK_TIME BETWEEN #{STARTTIME} AND #{ENDTIME}
or
(
c.periodstart =#{STARTTIME} and c.periodend = #{ENDTIME}
)
)
)
AND f.isdelete = '0'
AND f.TYPE != 'listType0005'
AND f.PERIOD = #{PERIOD}
AND o.OFFDUTY_ID IS NULL
AND ld.LISTDISABLETIME_ID IS NULL
</select>
<!-- 节假日超期未检查的清单 -->
<select id="overTimeRecordJjr" parameterType="pd" resultType="pd">
SELECT
f.NAME,
f.LISTMANAGER_ID,
f.CORPINFO_ID,
IFNULL( h.num, 0 ) COUNT,
f.START_DATE,
f.END_DATE
FROM
bus_listmanager f
LEFT JOIN bus_offduty o ON o.USER_ID = f.USER_ID
AND concat( o.STARTTIME, ' 00:00:00' ) &lt;= concat( f.START_DATE, ' 00:00:00' ) AND concat( o.ENDTIME, ' 23:59:59' ) &gt;= concat( f.End_DATE, ' 23:59:59' )
LEFT JOIN bus_listdisabletime ld ON ld.LISTMANAGER_ID = f.LISTMANAGER_ID
AND ld.ENDTIME IS NOT NULL
AND ld.STARTTIME &lt;= concat( f.START_DATE, ' 00:00:00' ) AND ld.ENDTIME &gt;= concat( f.End_DATE, ' 23:59:59' )
LEFT JOIN (
SELECT
l.LISTMANAGER_ID,
count( 1 ) NUM
FROM
bus_listmanager l
LEFT JOIN bus_checkrecord c ON c.LISTMANAGER_ID = l.LISTMANAGER_ID
WHERE
l.isdelete = '0'
AND l.TYPE = 'listType0005'
AND (
c.CHECK_TIME BETWEEN concat( l.START_DATE, ' 00:00:00' )
AND concat( l.END_DATE, ' 23:59:59' )
OR (
c.periodstart = concat( l.START_DATE, ' 00:00:00' )
AND c.periodend = concat( l.END_DATE, ' 23:59:59' ))
)
GROUP BY
l.LISTMANAGER_ID
) h ON h.LISTMANAGER_ID = f.LISTMANAGER_ID
WHERE
f.isdelete = '0'
AND f.TYPE = 'listType0005'
AND ( h.NUM &lt; 2 OR h.NUM IS NULL )
AND o.OFFDUTY_ID IS NULL
AND f.START_DATE IS NOT NULL
AND f.END_DATE IS NOT NULL
AND ld.LISTDISABLETIME_ID IS NULL
</select>
<!-- 首页隐患排查数据 清单数(总数、已排查清单数) -->
<select id="statisticsByCorp" parameterType="pd" resultType="pd" >
SELECT IFNULL(count(*), 0) COUNT
FROM BUS_LISTMANAGER f
WHERE f.ISDELETE != '2' AND f.CORPINFO_ID = #{CORPINFO_ID}
UNION ALL
SELECT IFNULL(COUNT(DISTINCT f.LISTMANAGER_ID), 0) COUNT
FROM BUS_LISTMANAGER f
LEFT JOIN BUS_CHECKRECORD u ON u.LISTMANAGER_ID = f.LISTMANAGER_ID
WHERE f.ISDELETE != '2' AND u.CORPINFO_ID = #{CORPINFO_ID}
</select>
<!-- 清单类型占比统计 -->
<select id="statisticsGroupType" parameterType="pd" resultType="pd" >
SELECT f.NAME, COUNT(l.LISTMANAGER_ID) COUNT
FROM sys_dictionaries f
LEFT JOIN bus_listmanager l ON l.`TYPE` = f.BIANMA AND l.ISDELETE != '2'
WHERE PARENT_ID = '4a3d0d99b0ea4e268c11dd0b18866917' AND l.CORPINFO_ID = #{CORPINFO_ID}
GROUP BY f.DICTIONARIES_ID
ORDER BY f.ORDER_BY
</select>
<!-- 上期超期未检查的清单(每日使用) -->
<select id="overTimeRecordDay" parameterType="pd" resultType="pd">
SELECT
f.NAME,f.LISTMANAGER_ID,f.CORPINFO_ID
FROM
bus_listmanager f
LEFT JOIN bus_offduty o ON o.USER_ID = f.USER_ID
AND concat( o.STARTTIME, ' 00:00:00' ) &lt;= #{STARTTIME} AND concat( o.ENDTIME, ' 23:59:59' ) &gt;= #{ENDTIME}
left join bus_listdisabletime ld on ld.LISTMANAGER_ID = f.LISTMANAGER_ID and ld.ENDTIME is not null
and ld.STARTTIME &lt;= #{STARTTIME} and ld.ENDTIME &gt;= #{ENDTIME}
LEFT JOIN SYS_USER u on u.USER_ID = f.USER_ID
LEFT JOIN BUS_SHIFTWORKRULES swr ON u.SHIFTDUTYTWO = swr.SHIFTWORKRULES_ID
WHERE
f.LISTMANAGER_ID NOT IN (
SELECT
l.LISTMANAGER_ID
FROM
bus_listmanager l
LEFT JOIN bus_checkrecord c ON c.LISTMANAGER_ID = l.LISTMANAGER_ID
WHERE
l.isdelete = '0'
AND l.PERIOD = #{PERIOD}
AND l.TYPE != 'listType0005'
AND (
c.CHECK_TIME BETWEEN #{STARTTIME} AND #{ENDTIME}
or
(
c.periodstart =#{STARTTIME} and c.periodend = #{ENDTIME}
)
)
)
AND f.isdelete = '0'
AND f.TYPE != 'listType0005'
AND f.PERIOD = #{PERIOD}
AND o.OFFDUTY_ID IS NULL
AND ld.LISTDISABLETIME_ID IS NULL
AND (
(
swr.ISDELETE = '0'
AND (
swr.ISCUSTOM = '0'
OR ( u.WORKSTATUS = '1' AND u.DURATION > 1 )
OR ( u.WORKSTATUS = '2' AND u.DURATION = '1' )
)
)
OR u.SHIFTDUTYONE IS NULL
OR u.SHIFTDUTYONE = ''
)
</select>
</mapper>