qa-prevention-gwj/src/main/resources/mybatis/datasource/xgf/TrainingBatchMapper.xml

428 lines
15 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zcloud.mapper.datasource.xgf.TrainingBatchMapper">
<!--表名 -->
<sql id="tableName">
xgf_training_batch
</sql>
<!--数据字典表名 -->
<sql id="dicTableName">
SYS_DICTIONARIES
</sql>
<!-- 字段 -->
<sql id="Field">
f.CREATOR,
f.CREATTIME,
f.OPERATOR,
f.OPERATTIME,
f.ISDELETE,
f.BATCH_NAME,
f.CORPINFO_ID,
f.USER_COUNT,
f.TRAIN_CORP_DEPT,
f.TRAIN_CORP_LEADER,
f.DESCR,
f.TRAIN_AREA,
f.MANAGER,
f.MANAGER_USER_ID,
f.AUDIT_STATUS,
f.TRAININGBATCH_ID,
f.SUPERVISION,
f.SUPERVISION_USER_ID,
f.TERRITORIALITY,
f.TERRITORIALITY_USER_ID
</sql>
<!-- 字段用于新增 -->
<sql id="Field2">
CREATOR,
CREATTIME,
OPERATOR,
OPERATTIME,
ISDELETE,
BATCH_NAME,
CORPINFO_ID,
USER_COUNT,
TRAIN_CORP_DEPT,
TRAIN_CORP_LEADER,
DESCR,
TRAIN_AREA,
MANAGER,
MANAGER_USER_ID,
AUDIT_STATUS,
TYPE,
TRAININGBATCH_ID,
SUPERVISION,
SUPERVISION_USER_ID,
TERRITORIALITY,
TERRITORIALITY_USER_ID
</sql>
<!-- 字段值 -->
<sql id="FieldValue">
#{CREATOR},
#{CREATTIME},
#{OPERATOR},
#{OPERATTIME},
#{ISDELETE},
#{BATCH_NAME},
#{CORPINFO_ID},
#{USER_COUNT},
#{TRAIN_CORP_DEPT},
#{TRAIN_CORP_LEADER},
#{DESCR},
#{TRAIN_AREA},
#{MANAGER},
#{MANAGER_USER_ID},
#{AUDIT_STATUS},
#{TYPE},
#{TRAININGBATCH_ID},
#{SUPERVISION},
#{SUPERVISION_USER_ID},
#{TERRITORIALITY},
#{TERRITORIALITY_USER_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
TRAININGBATCH_ID = #{TRAININGBATCH_ID}
</delete>
<!-- 修改 -->
<update id="edit" parameterType="pd">
update
<include refid="tableName"></include>
set
OPERATOR = #{OPERATOR},
OPERATTIME = #{OPERATTIME},
AUDIT_STATUS = #{AUDIT_STATUS},
TRAIN_CORP_DEPT = #{TRAIN_CORP_DEPT},
TRAIN_CORP_LEADER = #{TRAIN_CORP_LEADER},
ENTRUST_TIME = #{ENTRUST_TIME},
VERIFY_TIME = #{VERIFY_TIME}
where
TRAININGBATCH_ID = #{TRAININGBATCH_ID}
</update>
<!-- 修改 -->
<update id="audit" parameterType="pd">
update
<include refid="tableName"></include>
set
AUDIT_STATUS = #{AUDIT_STATUS},
<if test="TRAIN_CORP_DEPT != null and TRAIN_CORP_DEPT != ''">
TRAIN_CORP_DEPT = #{TRAIN_CORP_DEPT},
</if>
<if test="TRAIN_CORP_LEADER != null and TRAIN_CORP_LEADER != ''">
TRAIN_CORP_LEADER = #{TRAIN_CORP_LEADER},
</if>
<if test="ENTRUST_TIME != null and ENTRUST_TIME != ''">
ENTRUST_TIME = #{ENTRUST_TIME},
</if>
<if test="AUDIT_TIME != null and AUDIT_TIME != ''">
AUDIT_TIME = #{AUDIT_TIME},
</if>
<if test="VERIFY_TIME != null and VERIFY_TIME != ''">
VERIFY_TIME = #{VERIFY_TIME},
</if>
<if test="AUDIT_DESCR != null and AUDIT_DESCR != ''">
AUDIT_DESCR = #{AUDIT_DESCR},
</if>
<if test="CORP_AUDIT_DESCR != null and CORP_AUDIT_DESCR != ''">
CORP_AUDIT_DESCR = #{CORP_AUDIT_DESCR},
</if>
TRAININGBATCH_ID = #{TRAININGBATCH_ID}
where
TRAININGBATCH_ID = #{TRAININGBATCH_ID}
</update>
<update id="graduation" parameterType="pd">
update bus_trainusers a set a.STATUS = '2' where a.USER_ID in
<foreach item="item" index="index" collection="users" open="(" separator="," close=")">
#{item}
</foreach>;
</update>
<!-- 通过ID获取数据 -->
<select id="findById" parameterType="pd" resultType="pd">
select
f.*
from
<include refid="tableName"></include> f
where
f.TRAININGBATCH_ID = #{TRAININGBATCH_ID}
</select>
<!-- 列表 -->
<select id="datalistPage" parameterType="page" resultType="pd">
select
f.*,
ma.NAME MANAGER_DEPT_NAME,
ma_u.NAME MANAGER_USER_NAME,
md.NAME MAIN_DEPARTMENT_NAME,
(select MANAGER_TIME from bus_trainusers t1 where t1.TRAININGBATCH_ID = f.TRAININGBATCH_ID order by t1.MANAGER_TIME DESC LIMIT 0,1) AS MANAGER_TIME,
su.NAME SUPERVISION_DEPT_NAME,
su_u.NAME SUPERVISION_USER_NAME,
(select SUPERVISION_TIME from bus_trainusers t2 where t2.TRAININGBATCH_ID = f.TRAININGBATCH_ID order by t2.SUPERVISION_TIME DESC LIMIT 0,1) AS SUPERVISION_TIME,
te.NAME TERRITORIALITY_DEPT_NAME,
te_u.NAME TERRITORIALITY_USER_NAME,
(select TERRITORIALITY_TIME from bus_trainusers t3 where t3.TRAININGBATCH_ID = f.TRAININGBATCH_ID order by t3.TERRITORIALITY_TIME DESC LIMIT 0,1) AS TERRITORIALITY_TIME,
cu.NAME TRAIN_CORP_LEADER_NAME,
d.NAME TRAIN_AREA_NAME,
c.RELEVANT_UNIT_NAME,
syu.NAME AS CREATOR_NAME,
vcd.NAME SUPERVISE_DEPARTMENT_NAME,
vci.CORP_NAME SUPERVISE_CORPINFO_NAME,
corpTypeDic.NAME corpTypeName,
vcu.NAME AS VCU_NAME,
(select count(*) from bus_trainusers t5 where t5.TRAININGBATCH_ID = f.TRAININGBATCH_ID and f.SUPERVISION_USER_ID = #{pd.USER_ID} and (t5.SUPERVISION_STATE in('1','0') or t5.MANAGER_STATE = '0' or t5.TERRITORIALITY_STATE = '0') ) as supervisionCount,
(select count(*) from bus_trainusers t6 where t6.TRAININGBATCH_ID = f.TRAININGBATCH_ID and f.MANAGER_USER_ID = #{pd.USER_ID} and (t6.MANAGER_STATE in('1','0') or t6.SUPERVISION_STATE = '0') ) as managerCount,
(select count(*) from bus_trainusers t7 where t7.TRAININGBATCH_ID = f.TRAININGBATCH_ID and f.TERRITORIALITY_USER_ID = #{pd.USER_ID} and (t7.TERRITORIALITY_STATE in('1','0') or t7.SUPERVISION_STATE = '0') ) as territorialityCount,
(select count(*) from bus_trainusers t4 where t4.TRAININGBATCH_ID = f.TRAININGBATCH_ID AND t4.SUPERVISION_STATE = '1' and t4.MANAGER_STATE = '1'
and t4.TERRITORIALITY_STATE = '1' ) as PASS_COUNT<!-- 根据小齐要求,已更新为申请状态中的审核通过人员数-->
from
<include refid="tableName"></include> f
left join vi_department_all ma on ma.DEPARTMENT_ID = f.MANAGER
left join vi_user_all ma_u on ma_u.USER_ID = f.MANAGER_USER_ID
left join vi_department_all su on su.DEPARTMENT_ID = f.SUPERVISION
left join vi_regulatory_user su_u on su_u.USER_ID = f.SUPERVISION_USER_ID
left join vi_department_all te on te.DEPARTMENT_ID = f.TERRITORIALITY
left join vi_user_all te_u on te_u.USER_ID = f.TERRITORIALITY_USER_ID
left join vi_user_all cu on cu.USER_ID = f.TRAIN_CORP_LEADER
left join sys_dictionaries d on d.DICTIONARIES_ID = f.TRAIN_AREA
left join bus_corpinfo c on c.CORPINFO_ID = f.CORPINFO_ID
left join BUS_CORPINFODETAILS bcd on bcd.CORPINFO_ID = c.CORPINFO_ID
left join sys_dictionaries corpTypeDic on corpTypeDic.BIANMA = bcd.CORP_TYPE
left join vi_regulatory_department md on md.DEPARTMENT_ID = c.MAIN_DEPARTMENT
left join sys_user syu on syu.USERNAME = f.CREATOR
left join vi_user_all vcu on vcu.USERNAME = f.CREATOR
left join vi_department_all vcd on vcd.DEPARTMENT_ID = c.SUPERVISE_DEPARTMENT_ID
left join vi_corp_info vci on vci.CORPINFO_ID = c.SUPERVISE_CORPINFO_ID
where 1=1
<if test="pd.TYPE != null and pd.TYPE != ''">
and f.TYPE = #{pd.TYPE}
</if>
<if test="pd.KEYWORDS != null and pd.KEYWORDS != ''">
and f.CREATOR LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%')
</if>
<!--9173 搜索框不好使-->
<if test="pd.XGF_NAME_REG != null and pd.XGF_NAME_REG != ''">
and c.RELEVANT_UNIT_NAME LIKE CONCAT(CONCAT('%', #{pd.XGF_NAME_REG,jdbcType=VARCHAR}),'%')
</if>
<if test="pd.XGF_NAME != null and pd.XGF_NAME != ''">
and c.RELEVANT_UNIT_NAME LIKE CONCAT(CONCAT('%', #{pd.XGF_NAME}),'%')
</if>
<if test="pd.CORPINFO_ID != null and pd.CORPINFO_ID != ''">
and f.CORPINFO_ID = #{pd.CORPINFO_ID}
</if>
<if test="pd.MANAGER != null and pd.MANAGER != ''">
and f.MANAGER = #{pd.MANAGER}
</if>
<if test="pd.MANAGER_USER_ID != null and pd.MANAGER_USER_ID != ''">
and f.MANAGER_USER_ID = #{pd.MANAGER_USER_ID}
</if>
<if test="pd.TERRITORIALITY != null and pd.TERRITORIALITY != ''">
and f.TERRITORIALITY = #{pd.TERRITORIALITY}
</if>
<if test="pd.TRAIN_CORP_DEPT != null and pd.TRAIN_CORP_DEPT != ''">
and f.TRAIN_CORP_DEPT = #{pd.TRAIN_CORP_DEPT}
</if>
<if test="pd.TRAIN_CORP_DEPTS != null and pd.TRAIN_CORP_DEPTS != ''">
and FIND_IN_SET(f.TRAIN_CORP_DEPT, #{pd.TRAIN_CORP_DEPTS})
</if>
<if test="pd.TRAIN_CORP_LEADER != null and pd.TRAIN_CORP_LEADER != ''">
and f.TRAIN_CORP_LEADER = #{pd.TRAIN_CORP_LEADER}
</if>
<if test="pd.AUDIT_STATUS != null and pd.AUDIT_STATUS != ''">
and f.AUDIT_STATUS = #{pd.AUDIT_STATUS}
</if>
<if test="pd.SELECT_STATUS != null and pd.SELECT_STATUS != '' and pd.SELECT_STATUS == 2 and (pd.AUDIT_STATUS == null or pd.AUDIT_STATUS == '')">
and f.AUDIT_STATUS &gt; 1
</if>
<if test="pd.STARTTIME != null and pd.STARTTIME != ''">
and DATE_FORMAT( f.CREATTIME, '%Y-%m-%d' ) BETWEEN DATE_FORMAT( #{pd.STARTTIME}, '%Y-%m-%d' ) and DATE_FORMAT( #{pd.ENDTIME}, '%Y-%m-%d' )
</if>
<if test="pd.VERIFY_START_TIME != null and pd.VERIFY_START_TIME != ''">
and DATE_FORMAT( f.VERIFY_TIME, '%Y-%m-%d' ) BETWEEN DATE_FORMAT( #{pd.VERIFY_START_TIME}, '%Y-%m-%d' ) and DATE_FORMAT( #{pd.VERIFY_END_TIME}, '%Y-%m-%d' )
</if>
<if test="pd.ENTRUST_STARTTIME != null and pd.ENTRUST_STARTTIME != ''">
and DATE_FORMAT( f.ENTRUST_TIME, '%Y-%m-%d' ) BETWEEN DATE_FORMAT( #{pd.ENTRUST_STARTTIME}, '%Y-%m-%d' ) and DATE_FORMAT( #{pd.ENTRUST_ENDTIME}, '%Y-%m-%d' )
</if>
<if test="pd.SUPERVISION_USER_ID != null and pd.SUPERVISION_USER_ID != ''"> <!-- 安检-->
and f.SUPERVISION_USER_ID = #{pd.SUPERVISION_USER_ID}
</if>
<if test="pd.TERRITORIALITY_USER_ID != null and pd.TERRITORIALITY_USER_ID != ''"> <!-- 属地管理部门审核人员-->
and f.TERRITORIALITY_USER_ID = #{pd.TERRITORIALITY_USER_ID}
</if>
<if test="pd.MANAGER_USER_ID != null and pd.MANAGER_USER_ID != ''"> <!-- 主管部门-->
and f.MANAGER_USER_ID = #{pd.MANAGER_USER_ID}
</if>
<if test="pd.MAndTUserId != null and pd.MAndTUserId != ''"> <!-- 主管部门-->
and (f.MANAGER_USER_ID = #{pd.MAndTUserId} or f.TERRITORIALITY_USER_ID = #{pd.MAndTUserId})
</if>
<if test="pd.user_index != null and pd.user_index != ''"> <!-- 主管部门-->
and (f.MANAGER_USER_ID = #{pd.user_index} or f.TERRITORIALITY_USER_ID = #{pd.user_index} or f.SUPERVISION_USER_ID = #{pd.user_index})
</if>
order by f.CREATTIME desc
</select>
<!-- 列表(全部) -->
<select id="listAll" parameterType="pd" resultType="pd">
select
f.*
from
<include refid="tableName"></include> f
</select>
<!-- 批量删除 -->
<delete id="deleteAll" parameterType="String">
update
<include refid="tableName"></include>
set
ISDELETE = '1'
where
TRAININGBATCH_ID in
<foreach item="item" index="index" collection="ArrayDATA_IDS" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<!-- 获取编码 -->
<select id="getCode" parameterType="pd" resultType="pd">
SELECT
COUNT(1) as code
FROM <include refid="tableName"></include> f
WHERE f.CREATTIME LIKE CONCAT(#{CREATDATE},'%')
</select>
<select id="batchUserlistPage" parameterType="page" resultType="pd">
SELECT u.USER_ID,
u.USERNAME,
u.CORPINFO_ID,
u.NAME,
u.ISFLOW,
u.DEPART_STATE,
t.STATUS,
t.SUPERVISION_STATE,
t.SUPERVISION_OPINION,
t.SUPERVISION_TIME,
tr.SUPERVISION,
sup.NAME SUPERVISION_DEPT_NAME,
t.MANAGER_STATE,
t.MANAGER_OPINION,
t.MANAGER_TIME,
tr.MANAGER,
man.NAME MANAGER_DEPT_NAME,
t.TERRITORIALITY_STATE,
t.TERRITORIALITY_OPINION,
t.TERRITORIALITY_TIME,
tr.TERRITORIALITY,
tra.NAME TERRITORIALITY_DEPT_NAME,
t.TRAINUSERS_ID,
t.STEP_STATUS,
d.NAME DEPARTMENT_NAME ,
tr.TERRITORIALITY_USER_ID,
tr.SUPERVISION_USER_ID,
tr.MANAGER_USER_ID,
te.NAME as TERRITORIALITY_USER_NAME,
s.NAME as SUPERVISION_USER_NAME,
m.NAME as MANAGER_USER_NAME,
n.STATUS as TRAIN_STATUS,
tr.AUDIT_STATUS
from SYS_USER u
left join oa_department d on d.DEPARTMENT_ID = u.DEPARTMENT_ID
left join BUS_TRAINUSERS t on t.USER_ID = u.USER_ID
left join bus_trainingbatch tr on tr.TRAININGBATCH_ID = t.TRAININGBATCH_ID
LEFT JOIN `qa-gwj-regulatory`.bus_class_info n ON n.TRAINUSERS_ID = t.TRAINUSERS_ID
left join vi_corp_user te on te.USER_ID = tr.TERRITORIALITY_USER_ID
left join vi_user_all s on s.USER_ID = tr.SUPERVISION_USER_ID
left join vi_corp_user m on m.USER_ID = tr.MANAGER_USER_ID
left join vi_department_all sup on sup.DEPARTMENT_ID = tr.SUPERVISION
left join vi_department_all man on man.DEPARTMENT_ID = tr.MANAGER
left join vi_department_all tra on man.DEPARTMENT_ID = tr.TERRITORIALITY
where t.TRAININGBATCH_ID = #{pd.TRAININGBATCH_ID}
</select>
<select id="passUserlistPage" resultType="com.zcloud.entity.PageData">
select distinct su.USERNAME,
su.NAME,
sud.SEX,
su.CARD_ID,
ci.RELEVANT_UNIT_NAME,
od.NAME as DEPARTMENT_NAME,
sud.PHOTO,
sud.PHONE,
ci.CORPINFO_ID,
su.USER_ID,
a.TRAINUSERS_ID,
ssu.JOBS_TYPE as PERSON_WORK_TYPE,
ssu.CERTIFICATE
from bus_trainusers a
left join bus_trainingbatch tb on a.TRAININGBATCH_ID = tb.TRAININGBATCH_ID
left join sys_user su on su.USER_ID = a.USER_ID
left join SYS_USER_DETAILS sud on su.USER_ID = sud.USER_ID
left join bus_corpinfo ci on ci.CORPINFO_ID = su.CORPINFO_ID
left join oa_department od on od.DEPARTMENT_ID = su.DEPARTMENT_ID
left join (select ssup.USER_ID, ssup. JOBS_TYPE, ssup.CERTIFICATE
from sys_special_user ssup
group by ssup.USER_ID) as ssu on ssu.USER_ID = a.USER_ID
where su.AUDIT_STATE = '2'
and tb.ISDELETE = '0'
AND su.STATUS = '9'
AND (a.STATUS = '1'
or a.STATUS = '2')
and a.SUPERVISION_STATE = 1
and a.MANAGER_STATE = 1
and a.TERRITORIALITY_STATE = 1
order by tb.CREATTIME
</select>
<!-- 通过ID获取数据 -->
<select id="findAndTimeById" parameterType="pd" resultType="pd">
select
f.*,
supUser.USERNAME as SUPERVISION_USER_USERNAME,
supUser.NAME as SUPERVISION_USER_NAME,
supDept.NAME as SUPERVISION_DEPT_NAME,
mangUser.NAME as MANAGER_USER_USERNAME,
mangUser.NAME as MANAGER_USER_NAME,
mangDept.NAME as MANAGER_DEPT_NAME,
rerUser.NAME as ERRITORIALITY_USER_USERNAME,
rerUser.NAME as ERRITORIALITY_USER_NAME,
rerDept.NAME as ERRITORIALITY_DEPT_NAME,
(SELECT MAX( t1.SUPERVISION_TIME ) AS SUPERVISION_TIME FROM bus_trainusers t1 where
t1.TRAININGBATCH_ID = f.TRAININGBATCH_ID ) AS SUPERVISION_TIME,
(SELECT MAX( t2.MANAGER_TIME ) AS MANAGER_TIME FROM bus_trainusers t2 where
t2.TRAININGBATCH_ID = f.TRAININGBATCH_ID ) AS MANAGER_TIME,
(SELECT MAX( t3.TERRITORIALITY_TIME ) AS TERRITORIALITY_TIME FROM bus_trainusers t3 where
t3.TRAININGBATCH_ID = f.TRAININGBATCH_ID ) AS TERRITORIALITY_TIME
from
<include refid="tableName"></include> f
left join vi_regulatory_user supUser on supUser.USER_ID = f.SUPERVISION_USER_ID
left join vi_regulatory_department supDept on supDept.DEPARTMENT_ID = f.SUPERVISION
left join vi_corp_user mangUser on mangUser.USER_ID = f.MANAGER_USER_ID
left join vi_corp_department mangDept on mangDept.DEPARTMENT_ID = f.MANAGER
left join vi_corp_user rerUser on rerUser.USER_ID = f.TERRITORIALITY_USER_ID
left join vi_corp_department rerDept on rerDept.DEPARTMENT_ID = f.TERRITORIALITY
where
f.TRAININGBATCH_ID = #{TRAININGBATCH_ID}
</select>
</mapper>