<?xml version="1.0" encoding="UTF-8"?> <!-- ~ ~ Copyright (c) 2018-2025, lengleng All rights reserved. ~ ~ Redistribution and use in source and binary forms, with or without ~ modification, are permitted provided that the following conditions are met: ~ ~ Redistributions of source code must retain the above copyright notice, ~ this list of conditions and the following disclaimer. ~ Redistributions in binary form must reproduce the above copyright ~ notice, this list of conditions and the following disclaimer in the ~ documentation and/or other materials provided with the distribution. ~ Neither the name of the yifu4cloud.com developer nor the names of its ~ contributors may be used to endorse or promote products derived from ~ this software without specific prior written permission. ~ Author: lengleng (wangiegie@gmail.com) ~ --> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.yifu.cloud.plus.v1.yifu.archives.mapper.TPersonnelRosterMapper"> <resultMap id="tPersonnelRosterMap" type="com.yifu.cloud.plus.v1.yifu.archives.entity.TPersonnelRoster"> <id property="id" column="ID"/> <result property="customerName" column="CUSTOMER_NAME"/> <result property="departName" column="DEPART_NAME"/> <result property="departNo" column="DEPART_NO"/> <result property="businessPrimary" column="BUSINESS_PRIMARY"/> <result property="businessSecond" column="BUSINESS_SECOND"/> <result property="businessThird" column="BUSINESS_THIRD"/> <result property="label" column="LABEL"/> <result property="businessType" column="BUSINESS_TYPE"/> <result property="buBelong" column="BU_BELONG"/> <result property="empType" column="EMP_TYPE"/> <result property="empName" column="EMP_NAME"/> <result property="empSex" column="EMP_SEX"/> <result property="empBirthDate" column="EMP_BIRTH_DATE"/> <result property="empAge" column="EMP_AGE"/> <result property="empIdcard" column="EMP_IDCARD"/> <result property="bankNo" column="BANK_NO"/> <result property="bankName" column="BANK_NAME"/> <result property="bankProvince" column="BANK_PROVINCE"/> <result property="bankCity" column="BANK_CITY"/> <result property="bankNameSub" column="BANK_NAME_SUB"/> <result property="empPhone" column="EMP_PHONE"/> <result property="empProvince" column="EMP_PROVINCE"/> <result property="empCity" column="EMP_CITY"/> <result property="empTown" column="EMP_TOWN"/> <result property="socialProvince" column="SOCIAL_PROVINCE"/> <result property="socialCity" column="SOCIAL_CITY"/> <result property="socialTown" column="SOCIAL_TOWN"/> <result property="contractApplyNo" column="CONTRACT_APPLY_NO"/> <result property="contractStart" column="CONTRACT_START"/> <result property="contractEnd" column="CONTRACT_END"/> <result property="contractType" column="CONTRACT_TYPE"/> <result property="businessDetail" column="BUSINESS_DETAIL"/> <result property="signType" column="SIGN_TYPE"/> <result property="signTerm" column="SIGN_TERM"/> <result property="contractPartyA" column="CONTRACT_PARTY_A"/> <result property="contractPost" column="CONTRACT_POST"/> <result property="contractTaskTime" column="CONTRACT_TASK_TIME"/> <result property="contractCode" column="CONTRACT_CODE"/> <result property="contractCreater" column="CONTRACT_CREATER"/> <result property="contractCreateTime" column="CONTRACT_CREATE_TIME"/> <result property="dataCreateMonth" column="DATA_CREATE_MONTH"/> <result property="settleDomain" column="SETTLE_DOMAIN"/> </resultMap> <resultMap id="tPersonnelRosterExportMap" type="com.yifu.cloud.plus.v1.yifu.archives.vo.TPersonnelRosterExportVo"> <id property="id" column="ID"/> <result property="customerName" column="CUSTOMER_NAME"/> <result property="departName" column="DEPART_NAME"/> <result property="departNo" column="DEPART_NO"/> <result property="businessPrimary" column="BUSINESS_PRIMARY"/> <result property="businessSecond" column="BUSINESS_SECOND"/> <result property="businessThird" column="BUSINESS_THIRD"/> <result property="label" column="LABEL"/> <result property="businessType" column="BUSINESS_TYPE"/> <result property="buBelong" column="BU_BELONG"/> <result property="empType" column="EMP_TYPE"/> <result property="empName" column="EMP_NAME"/> <result property="empSex" column="EMP_SEX"/> <result property="empBirthDate" column="EMP_BIRTH_DATE"/> <result property="empAge" column="EMP_AGE"/> <result property="empIdcard" column="EMP_IDCARD"/> <result property="bankNo" column="BANK_NO"/> <result property="bankName" column="BANK_NAME"/> <result property="bankProvince" column="BANK_PROVINCE"/> <result property="bankCity" column="BANK_CITY"/> <result property="bankNameSub" column="BANK_NAME_SUB"/> <result property="empPhone" column="EMP_PHONE"/> <result property="empProvince" column="EMP_PROVINCE"/> <result property="empCity" column="EMP_CITY"/> <result property="empTown" column="EMP_TOWN"/> <result property="socialProvince" column="SOCIAL_PROVINCE"/> <result property="socialCity" column="SOCIAL_CITY"/> <result property="socialTown" column="SOCIAL_TOWN"/> <result property="contractApplyNo" column="CONTRACT_APPLY_NO"/> <result property="contractStart" column="CONTRACT_START"/> <result property="contractEnd" column="CONTRACT_END"/> <result property="contractType" column="CONTRACT_TYPE"/> <result property="businessDetail" column="BUSINESS_DETAIL"/> <result property="signType" column="SIGN_TYPE"/> <result property="signTerm" column="SIGN_TERM"/> <result property="contractPartyA" column="CONTRACT_PARTY_A"/> <result property="contractPost" column="CONTRACT_POST"/> <result property="contractTaskTime" column="CONTRACT_TASK_TIME"/> <result property="contractCode" column="CONTRACT_CODE"/> <result property="contractCreater" column="CONTRACT_CREATER"/> <result property="contractCreateTime" column="CONTRACT_CREATE_TIME"/> <result property="dataCreateMonth" column="DATA_CREATE_MONTH"/> </resultMap> <sql id="Base_Column_List"> a.ID, a.CUSTOMER_NAME, a.DEPART_NAME, a.DEPART_NO, a.BUSINESS_PRIMARY, a.BUSINESS_SECOND, a.BUSINESS_THIRD, a.LABEL, a.BUSINESS_TYPE, a.BU_BELONG, a.EMP_TYPE, a.EMP_NAME, a.EMP_SEX, a.EMP_BIRTH_DATE, a.EMP_AGE, a.EMP_IDCARD, a.BANK_NO, a.BANK_NAME, a.BANK_PROVINCE, a.BANK_CITY, a.BANK_NAME_SUB, a.EMP_PHONE, a.EMP_PROVINCE, a.EMP_CITY, a.EMP_TOWN, a.SOCIAL_PROVINCE, a.SOCIAL_CITY, a.SOCIAL_TOWN, a.CONTRACT_APPLY_NO, a.CONTRACT_START, a.CONTRACT_END, a.CONTRACT_TYPE, a.BUSINESS_DETAIL, a.SIGN_TYPE, a.SIGN_TERM, a.CONTRACT_PARTY_A, a.CONTRACT_POST, a.CONTRACT_TASK_TIME, a.CONTRACT_CODE, a.CONTRACT_CREATER, a.CONTRACT_CREATE_TIME, a.DATA_CREATE_MONTH, a.SETTLE_DOMAIN </sql> <sql id="tPersonnelRoster_where"> <if test="tPersonnelRoster != null"> <if test="tPersonnelRoster.id != null and tPersonnelRoster.id.trim() != ''"> AND a.ID = #{tPersonnelRoster.id} </if> <if test="tPersonnelRoster.customerName != null and tPersonnelRoster.customerName.trim() != ''"> AND a.CUSTOMER_NAME like CONCAT(#{tPersonnelRoster.customerName},'%') </if> <if test="tPersonnelRoster.departName != null and tPersonnelRoster.departName.trim() != ''"> AND a.DEPART_NAME = #{tPersonnelRoster.departName} </if> <if test="tPersonnelRoster.departNo != null and tPersonnelRoster.departNo.trim() != ''"> AND a.DEPART_NO like CONCAT(#{tPersonnelRoster.departNo},'%') </if> <if test="tPersonnelRoster.businessPrimary != null and tPersonnelRoster.businessPrimary.trim() != ''"> AND a.BUSINESS_PRIMARY = #{tPersonnelRoster.businessPrimary} </if> <if test="tPersonnelRoster.businessSecond != null and tPersonnelRoster.businessSecond.trim() != ''"> AND a.BUSINESS_SECOND = #{tPersonnelRoster.businessSecond} </if> <if test="tPersonnelRoster.businessThird != null and tPersonnelRoster.businessThird.trim() != ''"> AND a.BUSINESS_THIRD = #{tPersonnelRoster.businessThird} </if> <if test="tPersonnelRoster.label != null and tPersonnelRoster.label.trim() != ''"> AND a.LABEL like CONCAT(#{tPersonnelRoster.label},'%') </if> <if test="tPersonnelRoster.businessType != null and tPersonnelRoster.businessType.trim() != ''"> AND a.BUSINESS_TYPE = #{tPersonnelRoster.businessType} </if> <if test="tPersonnelRoster.buBelong != null and tPersonnelRoster.buBelong.trim() != ''"> AND a.BU_BELONG = #{tPersonnelRoster.buBelong} </if> <if test="tPersonnelRoster.empType != null and tPersonnelRoster.empType.trim() != ''"> AND a.EMP_TYPE = #{tPersonnelRoster.empType} </if> <if test="tPersonnelRoster.empName != null and tPersonnelRoster.empName.trim() != ''"> AND a.EMP_NAME like CONCAT(#{tPersonnelRoster.empName},'%') </if> <if test="tPersonnelRoster.empSex != null and tPersonnelRoster.empSex.trim() != ''"> AND a.EMP_SEX = #{tPersonnelRoster.empSex} </if> <if test="tPersonnelRoster.empBirthDate != null"> AND a.EMP_BIRTH_DATE = #{tPersonnelRoster.empBirthDate} </if> <if test="tPersonnelRoster.empAge != null and tPersonnelRoster.empAge.trim() != ''"> AND a.EMP_AGE = #{tPersonnelRoster.empAge} </if> <if test="tPersonnelRoster.empIdcard != null and tPersonnelRoster.empIdcard.trim() != ''"> AND a.EMP_IDCARD like CONCAT(#{tPersonnelRoster.empIdcard},'%') </if> <if test="tPersonnelRoster.bankNo != null and tPersonnelRoster.bankNo.trim() != ''"> AND a.BANK_NO = #{tPersonnelRoster.bankNo} </if> <if test="tPersonnelRoster.bankName != null and tPersonnelRoster.bankName.trim() != ''"> AND a.BANK_NAME = #{tPersonnelRoster.bankName} </if> <if test="tPersonnelRoster.bankProvince != null and tPersonnelRoster.bankProvince.trim() != ''"> AND a.BANK_PROVINCE = #{tPersonnelRoster.bankProvince} </if> <if test="tPersonnelRoster.bankCity != null and tPersonnelRoster.bankCity.trim() != ''"> AND a.BANK_CITY = #{tPersonnelRoster.bankCity} </if> <if test="tPersonnelRoster.bankNameSub != null and tPersonnelRoster.bankNameSub.trim() != ''"> AND a.BANK_NAME_SUB = #{tPersonnelRoster.bankNameSub} </if> <if test="tPersonnelRoster.empPhone != null and tPersonnelRoster.empPhone.trim() != ''"> AND a.EMP_PHONE = #{tPersonnelRoster.empPhone} </if> <if test="tPersonnelRoster.empProvince != null and tPersonnelRoster.empProvince.trim() != ''"> AND a.EMP_PROVINCE = #{tPersonnelRoster.empProvince} </if> <if test="tPersonnelRoster.empCity != null and tPersonnelRoster.empCity.trim() != ''"> AND a.EMP_CITY = #{tPersonnelRoster.empCity} </if> <if test="tPersonnelRoster.empTown != null and tPersonnelRoster.empTown.trim() != ''"> AND a.EMP_TOWN = #{tPersonnelRoster.empTown} </if> <if test="tPersonnelRoster.socialProvince != null and tPersonnelRoster.socialProvince.trim() != ''"> AND a.SOCIAL_PROVINCE = #{tPersonnelRoster.socialProvince} </if> <if test="tPersonnelRoster.socialCity != null and tPersonnelRoster.socialCity.trim() != ''"> AND a.SOCIAL_CITY = #{tPersonnelRoster.socialCity} </if> <if test="tPersonnelRoster.socialTown != null and tPersonnelRoster.socialTown.trim() != ''"> AND a.SOCIAL_TOWN = #{tPersonnelRoster.socialTown} </if> <if test="tPersonnelRoster.contractApplyNo != null and tPersonnelRoster.contractApplyNo.trim() != ''"> AND a.CONTRACT_APPLY_NO = #{tPersonnelRoster.contractApplyNo} </if> <if test="tPersonnelRoster.contractStart != null and tPersonnelRoster.contractStart.trim() != ''"> AND a.CONTRACT_START = #{tPersonnelRoster.contractStart} </if> <if test="tPersonnelRoster.contractEnd != null and tPersonnelRoster.contractEnd.trim() != ''"> AND a.CONTRACT_END = #{tPersonnelRoster.contractEnd} </if> <if test="tPersonnelRoster.contractType != null and tPersonnelRoster.contractType.trim() != ''"> AND a.CONTRACT_TYPE = #{tPersonnelRoster.contractType} </if> <if test="tPersonnelRoster.businessDetail != null and tPersonnelRoster.businessDetail.trim() != ''"> AND a.BUSINESS_DETAIL = #{tPersonnelRoster.businessDetail} </if> <if test="tPersonnelRoster.signType != null and tPersonnelRoster.signType.trim() != ''"> AND a.SIGN_TYPE = #{tPersonnelRoster.signType} </if> <if test="tPersonnelRoster.signTerm != null and tPersonnelRoster.signTerm.trim() != ''"> AND a.SIGN_TERM = #{tPersonnelRoster.signTerm} </if> <if test="tPersonnelRoster.contractPartyA != null and tPersonnelRoster.contractPartyA.trim() != ''"> AND a.CONTRACT_PARTY_A = #{tPersonnelRoster.contractPartyA} </if> <if test="tPersonnelRoster.contractPost != null and tPersonnelRoster.contractPost.trim() != ''"> AND a.CONTRACT_POST = #{tPersonnelRoster.contractPost} </if> <if test="tPersonnelRoster.contractTaskTime != null and tPersonnelRoster.contractTaskTime.trim() != ''"> AND a.CONTRACT_TASK_TIME = #{tPersonnelRoster.contractTaskTime} </if> <if test="tPersonnelRoster.contractCode != null and tPersonnelRoster.contractCode.trim() != ''"> AND a.CONTRACT_CODE = #{tPersonnelRoster.contractCode} </if> <if test="tPersonnelRoster.contractCreater != null and tPersonnelRoster.contractCreater.trim() != ''"> AND a.CONTRACT_CREATER = #{tPersonnelRoster.contractCreater} </if> <if test="tPersonnelRoster.contractCreateTime != null and tPersonnelRoster.contractCreateTime.trim() != ''"> AND a.CONTRACT_CREATE_TIME = #{tPersonnelRoster.contractCreateTime} </if> <if test="tPersonnelRoster.dataCreateMonth != null and tPersonnelRoster.dataCreateMonth.trim() != ''"> AND a.DATA_CREATE_MONTH = #{tPersonnelRoster.dataCreateMonth} </if> <if test="tPersonnelRoster.authSql != null and tPersonnelRoster.authSql.trim() != ''"> ${tPersonnelRoster.authSql} </if> <if test="tPersonnelRoster.businessTypes != null and tPersonnelRoster.businessTypes.size() > 0"> AND a.BUSINESS_TYPE in <foreach item="item" index="index" collection="tPersonnelRoster.businessTypes" open="(" separator="," close=")"> #{item} </foreach> </if> <if test="tPersonnelRoster.buBelongs != null and tPersonnelRoster.buBelongs.size() > 0"> AND a.BU_BELONG in <foreach item="item" index="index" collection="tPersonnelRoster.buBelongs" open="(" separator="," close=")"> #{item} </foreach> </if> <if test="tPersonnelRoster.empTypes != null and tPersonnelRoster.empTypes.size() > 0"> AND a.EMP_TYPE in <foreach item="item" index="index" collection="tPersonnelRoster.empTypes" open="(" separator="," close=")"> #{item} </foreach> </if> </if> </sql> <!--tPersonnelRoster简单分页查询--> <select id="getTPersonnelRosterPage" resultMap="tPersonnelRosterMap"> SELECT <include refid="Base_Column_List"/> FROM t_personnel_roster a <where> 1=1 <include refid="tPersonnelRoster_where"/> </where> order by a.CONTRACT_CREATE_TIME ASC </select> <select id="getTPersonnelRoster" resultMap="tPersonnelRosterMap"> select c1.SUBJECT_UNIT as 'CUSTOMER_NAME',c1.SUBJECT_DEPART as 'DEPART_NAME',c1.DEPT_NO as 'DEPART_NO', d.BUSINESS_PRIMARY_TYPE as 'BUSINESS_PRIMARY',d.BUSINESS_SECOND_TYPE as 'BUSINESS_SECOND',d.BUSINESS_THIRD_TYPE as 'BUSINESS_THIRD', p.EMP_LABEL as 'LABEL',d.LINE_TYPE as 'BUSINESS_TYPE',d.BU_BELONG as 'BU_BELONG',c1.EMP_NATRUE as 'EMP_TYPE', c1.EMP_NAME as 'EMP_NAME',e.EMP_SEX as 'EMP_SEX',DATE_FORMAT(e.EMP_BIRTHDAY ,"%Y-%m-%d") as 'EMP_BIRTH_DATE',e.EMP_AGE as 'EMP_AGE',c1.EMP_IDCARD as 'EMP_IDCARD', e.EMP_PHONE as 'EMP_PHONE',c1.FILE_PROVINCE as 'EMP_PROVINCE',c1.FILE_CITY as 'EMP_CITY',c1.FILE_TOWN as 'EMP_TOWN', p.SOCIAL_PROVINCE as 'SOCIAL_PROVINCE',p.SOCIAL_CITY as 'SOCIAL_CITY',p.SOCIAL_TOWN as 'SOCIAL_TOWN',c1.APPLY_NO as 'CONTRACT_APPLY_NO', c1.CONTRACT_START as 'CONTRACT_START',c1.CONTRACT_END as 'CONTRACT_END',c1.CONTRACT_NAME as 'CONTRACT_TYPE',c1.CONTRACT_SUB_NAME as 'BUSINESS_DETAIL', c1.SITUATION as 'SIGN_TYPE',c1.CONTRACT_TYPE as 'SIGN_TERM', c1.CONTRACT_PARTY as 'CONTRACT_PARTY_A',c1.POST as 'CONTRACT_POST',c1.WORKING_HOURS as 'CONTRACT_TASK_TIME', c1.CONTRACT_NO as 'CONTRACT_CODE',c1.CREATE_NAME as 'CONTRACT_CREATER',c1.CREATE_TIME as 'CONTRACT_CREATE_TIME', d.id as "SETTLE_DOMAIN" from (select MAX(c.CREATE_TIME) as "CREATE_TIME",c.id,c.EMP_IDCARD,c.DEPT_NO from t_employee_contract_info c WHERE c.IN_USE = 0 and c.DELETE_FLAG='0' GROUP BY c.DEPT_NO,c.EMP_IDCARD) t LEFT JOIN t_employee_info e on e.EMP_IDCARD=t.EMP_IDCARD LEFT JOIN t_employee_project p on p.EMP_IDCARD=t.EMP_IDCARD and p.DEPT_NO=t.DEPT_NO LEFT JOIN t_settle_domain d on d.DEPART_NO=t.DEPT_NO INNER JOIN t_employee_contract_info c1 on c1.EMP_IDCARD=t.EMP_IDCARD and c1.DEPT_NO=t.DEPT_NO and c1.CREATE_TIME=t.CREATE_TIME GROUP BY t.DEPT_NO,t.EMP_IDCARD <if test="tPersonnelRoster != null"> <if test="tPersonnelRoster.limitStart != null"> limit #{tPersonnelRoster.limitStart},#{tPersonnelRoster.limitEnd} </if> </if> </select> <select id="getTPersonnelRosterCount" resultType="java.lang.Integer"> select count(1) from ( select count(1) from (select MAX(c.CREATE_TIME) as "CREATE_TIME", c.id, c.EMP_IDCARD, c.DEPT_NO from t_employee_contract_info c WHERE c.IN_USE = 0 and c.DELETE_FLAG = '0' GROUP BY c.DEPT_NO, c.EMP_IDCARD) t LEFT JOIN t_employee_info e on e.EMP_IDCARD = t.EMP_IDCARD LEFT JOIN t_employee_project p on p.EMP_IDCARD = t.EMP_IDCARD and p.DEPT_NO = t.DEPT_NO LEFT JOIN t_settle_domain d on d.DEPART_NO = t.DEPT_NO INNER JOIN t_employee_contract_info c1 on c1.EMP_IDCARD=t.EMP_IDCARD and c1.DEPT_NO=t.DEPT_NO and c1.CREATE_TIME=t.CREATE_TIME GROUP BY t.DEPT_NO, t.EMP_IDCARD ) a </select> <select id="noPageCountDiy" resultType="java.lang.Integer"> select count(1) from t_personnel_roster a <where> 1=1 <include refid="tPersonnelRoster_where"/> </where> </select> <!--tEmployeeInfo人员档案导出查询改造 fxj 2022-11-02--> <select id="noPageDiy" resultMap="tPersonnelRosterExportMap"> SELECT a.ID, a.CUSTOMER_NAME, a.DEPART_NAME, a.DEPART_NO, a.BUSINESS_PRIMARY, a.BUSINESS_SECOND, a.BUSINESS_THIRD, a.LABEL, a.BUSINESS_TYPE, a.BU_BELONG, a.EMP_TYPE, a.EMP_NAME, CASE WHEN a.EMP_SEX=1 THEN "男" WHEN a.EMP_SEX=2 THEN "女" ELSE "" END as "EMP_SEX", a.EMP_BIRTH_DATE, a.EMP_AGE, a.EMP_IDCARD, a.BANK_NO, a.BANK_NAME, a1.AREA_NAME as "BANK_PROVINCE", a1.AREA_NAME as "BANK_CITY", a.BANK_NAME_SUB, a.EMP_PHONE, a6.AREA_NAME as "EMP_PROVINCE", a7.AREA_NAME as "EMP_CITY", a8.AREA_NAME as "EMP_TOWN", a3.AREA_NAME as "SOCIAL_PROVINCE", a4.AREA_NAME as "SOCIAL_CITY", a5.AREA_NAME as "SOCIAL_TOWN", a.CONTRACT_APPLY_NO, a.CONTRACT_START, a.CONTRACT_END, a.CONTRACT_TYPE, a.BUSINESS_DETAIL, a.SIGN_TYPE, a.SIGN_TERM, a.CONTRACT_PARTY_A, a.CONTRACT_POST, a.CONTRACT_TASK_TIME, a.CONTRACT_CODE, a.CONTRACT_CREATER, a.CONTRACT_CREATE_TIME, a.DATA_CREATE_MONTH, a.SETTLE_DOMAIN FROM t_personnel_roster a LEFT JOIN sys_area a1 on a1.id=a.BANK_PROVINCE LEFT JOIN sys_area a2 on a2.id=a.BANK_CITY LEFT JOIN sys_area a3 on a3.id=a.SOCIAL_PROVINCE LEFT JOIN sys_area a4 on a4.id=a.SOCIAL_CITY LEFT JOIN sys_area a5 on a5.id=a.SOCIAL_TOWN LEFT JOIN sys_area a6 on a6.id=a.EMP_PROVINCE LEFT JOIN sys_area a7 on a7.id=a.EMP_CITY LEFT JOIN sys_area a8 on a8.id=a.EMP_TOWN <where> 1=1 <include refid="tPersonnelRoster_where"/> </where> order by a.CONTRACT_CREATE_TIME ASC <if test="tPersonnelRoster != null"> <if test="tPersonnelRoster.limitStart != null"> limit #{tPersonnelRoster.limitStart},#{tPersonnelRoster.limitEnd} </if> </if> </select> </mapper>