<?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.TEmployeeContractInfoMapper"> <resultMap id="tEmployeeContrctInfoMap" type="com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeContractInfo"> <id property="id" column="ID"/> <result property="empNo" column="EMP_NO"/> <result property="empId" column="EMP_ID"/> <result property="empName" column="EMP_NAME"/> <result property="empIdcard" column="EMP_IDCARD"/> <result property="contractName" column="CONTRACT_NAME"/> <result property="contractType" column="CONTRACT_TYPE"/> <result property="contractEnd" column="CONTRACT_END"/> <result property="subjectDepart" column="SUBJECT_DEPART"/> <result property="subjectUnit" column="SUBJECT_UNIT"/> <result property="situation" column="SITUATION"/> <result property="contractTerm" column="CONTRACT_TERM"/> <result property="contractNo" column="CONTRACT_NO"/> <result property="remark" column="REMARK"/> <result property="isObsolete" column="IS_OBSOLETE"/> <result property="isFile" column="IS_FILE"/> <result property="oldId" column="OLD_ID"/> <result property="enjoinDate" column="ENJOIN_DATE"/> <result property="post" column="POST"/> <result property="workingHours" column="WORKING_HOURS"/> <result property="fileCabinetNo" column="FILE_CABINET_NO"/> <result property="settleDomain" column="SETTLE_DOMAIN"/> <result property="inUse" column="IN_USE"/> <result property="obsoleteReason" column="OBSOLETE_REASON"/> <result property="customerId" column="CUSTOMER_ID"/> <result property="fileProvince" column="FILE_PROVINCE"/> <result property="fileCity" column="FILE_CITY"/> <result property="fileTown" column="FILE_TOWN"/> <result property="workingStatusSub" column="WORKING_STATUS_SUB"/> <result property="workFlag" column="WORK_FLAG"/> <result property="periodStart" column="PERIOD_START"/> <result property="periodEnd" column="PERIOD_END"/> <result property="periodSalaryPerMonth" column="PERIOD_SALARY_PER_MONTH"/> <result property="salaryType" column="SALARY_TYPE"/> <result property="salaryStandardPerHour" column="SALARY_STANDARD_PER_HOUR"/> <result property="salaryStandardPerPiece" column="SALARY_STANDARD_PER_PIECE"/> <result property="dispatchFlag" column="DISPATCH_FLAG"/> <result property="warnEmailUserId" column="WARN_EMAIL_USER_ID"/> <result property="fddFlag" column="FDD_FLAG"/> <result property="isSign" column="IS_SIGN"/> <result property="createName" column="CREATE_NAME"/> <result property="createBy" column="CREATE_BY"/> <result property="createTime" column="CREATE_TIME"/> <result property="updateBy" column="UPDATE_BY"/> <result property="updateTime" column="UPDATE_TIME"/> <result property="unitNo" column="UNIT_NO"/> <result property="deptNo" column="DEPT_NO"/> <result property="applyNo" column="APPLY_NO"/> <result property="auditStatus" column="AUDIT_STATUS"/> <result property="deleteFlag" column="DELETE_FLAG"/> <result property="empNatrue" column="EMP_NATRUE"/> <result property="contractParty" column="CONTRACT_PARTY"/> <result property="contractSubName" column="CONTRACT_SUB_NAME"/> <result property="reason" column="REASON"/> <result property="auditTimeLast" column="AUDIT_TIME_LAST"/> </resultMap> <!-- 合同导出 --> <resultMap id="tEmployeeContrctInfoExportMap" type="com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeContractExportVO"> <result property="applyNo" column="APPLY_NO"/> <result property="empNo" column="EMP_NO"/> <result property="empName" column="EMP_NAME"/> <result property="empIdcard" column="EMP_IDCARD"/> <result property="contractStart" column="CONTRACT_START"/> <result property="contractEnd" column="CONTRACT_END"/> <result property="fileProvince" column="FILE_PROVINCE"/> <result property="fileCity" column="FILE_CITY"/> <result property="fileTown" column="FILE_TOWN"/> <result property="subjectDepart" column="SUBJECT_DEPART"/> <result property="deptNo" column="DEPT_NO"/> <result property="empNatrue" column="EMP_NATRUE"/> <result property="contractName" column="CONTRACT_NAME"/> <result property="contractSubName" column="CONTRACT_SUB_NAME"/> <result property="situation" column="SITUATION"/> <result property="contractType" column="CONTRACT_TYPE"/> <result property="contractParty" column="CONTRACT_PARTY"/> <result property="subjectUnit" column="SUBJECT_UNIT"/> <result property="auditStatus" column="AUDIT_STATUS"/> <result property="inUse" column="IN_USE"/> <result property="files" column="FILES"/> <result property="isFile" column="IS_FILE"/> <result property="createName" column="CREATE_NAME"/> <result property="createTime" column="CREATE_TIME"/> <result property="createNum" column="CREATE_NUM"/> <result property="startDate" column="START_DATE"/> <result property="endDate" column="END_DATE"/> <result property="history" column="HISTORY"/> </resultMap> <sql id="Base_Column_List"> a.ID, a.EMP_NO, a.EMP_ID, a.EMP_NAME, a.EMP_IDCARD, a.CONTRACT_NAME, a.CONTRACT_TYPE, a.CONTRACT_START, a.CONTRACT_END, a.SUBJECT_DEPART, a.SUBJECT_UNIT, a.SITUATION, a.CONTRACT_TERM, a.CONTRACT_NO, a.REMARK, a.IS_OBSOLETE, a.IS_FILE, a.OLD_ID, a.ENJOIN_DATE, a.POST, a.WORKING_HOURS, a.FILE_CABINET_NO, a.SETTLE_DOMAIN, a.IN_USE, a.OBSOLETE_REASON, a.CUSTOMER_ID, a.FILE_PROVINCE, a.FILE_CITY, a.FILE_TOWN, a.WORKING_STATUS_SUB, a.WORK_FLAG, a.PERIOD_START, a.PERIOD_END, a.PERIOD_SALARY_PER_MONTH, a.SALARY_TYPE, a.SALARY_STANDARD_PER_HOUR, a.SALARY_STANDARD_PER_PIECE, a.DISPATCH_FLAG, a.WARN_EMAIL_USER_ID, a.FDD_FLAG, a.IS_SIGN, a.CREATE_BY, a.CREATE_NAME, a.CREATE_TIME, a.UPDATE_BY, a.UPDATE_TIME, a.UNIT_NO, a.DEPT_NO, a.AUDIT_STATUS, a.APPLY_NO, a.DELETE_FLAG, a.EMP_NATRUE, a.CONTRACT_PARTY, a.CONTRACT_SUB_NAME, a.REASON, a.AUDIT_TIME_LAST </sql> <!-- 导出 --> <sql id="Base_Export_Column_List"> a.APPLY_NO, a.EMP_NO, a.EMP_NAME, a.EMP_IDCARD, a.CONTRACT_START, a.CONTRACT_END, a.FILE_PROVINCE, a.FILE_CITY, a.FILE_TOWN, a.SUBJECT_DEPART, a.DEPT_NO, a.EMP_NATRUE, a.CONTRACT_NAME, a.CONTRACT_SUB_NAME, a.SITUATION, a.CONTRACT_TYPE, a.CONTRACT_PARTY, a.SUBJECT_UNIT, a.AUDIT_STATUS, a.IN_USE, if(a.IS_FILE = 0,'有附件','无附件') FILES, a.IS_FILE, a.CREATE_NAME, a.CREATE_TIME </sql> <sql id="tEmployeeContractInfo_where"> <if test="tEmployeeContractInfo != null"> <if test="tEmployeeContractInfo.idList != null"> AND a.id in <foreach item="idStr" index="index" collection="tEmployeeContractInfo.idList" open="(" separator="," close=")"> #{idStr} </foreach> </if> <if test="tEmployeeContractInfo.id != null and tEmployeeContractInfo.id.trim() != ''"> AND a.ID = #{tEmployeeContractInfo.id} </if> <if test="tEmployeeContractInfo.empNo != null and tEmployeeContractInfo.empNo.trim() != ''"> AND a.EMP_NO = #{tEmployeeContractInfo.empNo} </if> <if test="tEmployeeContractInfo.empId != null and tEmployeeContractInfo.empId.trim() != ''"> AND a.EMP_ID = #{tEmployeeContractInfo.empId} </if> <if test="tEmployeeContractInfo.empName != null and tEmployeeContractInfo.empName.trim() != ''"> AND a.EMP_NAME = #{tEmployeeContractInfo.empName} </if> <if test="tEmployeeContractInfo.empIdcard != null and tEmployeeContractInfo.empIdcard.trim() != ''"> AND a.EMP_IDCARD = #{tEmployeeContractInfo.empIdcard} </if> <if test="tEmployeeContractInfo.contractName != null and tEmployeeContractInfo.contractName.trim() != ''"> AND a.CONTRACT_NAME = #{tEmployeeContractInfo.contractName} </if> <if test="tEmployeeContractInfo.contractType != null and tEmployeeContractInfo.contractType.trim() != ''"> AND a.CONTRACT_TYPE = #{tEmployeeContractInfo.contractType} </if> <if test="tEmployeeContractInfo.contractStart != null"> AND a.CONTRACT_START = #{tEmployeeContractInfo.contractStart} </if> <if test="tEmployeeContractInfo.contractEnd != null"> AND a.CONTRACT_END = #{tEmployeeContractInfo.contractEnd} </if> <if test="tEmployeeContractInfo.subjectDepart != null and tEmployeeContractInfo.subjectDepart.trim() != ''"> AND a.SUBJECT_DEPART = #{tEmployeeContractInfo.subjectDepart} </if> <if test="tEmployeeContractInfo.subjectUnit != null and tEmployeeContractInfo.subjectUnit.trim() != ''"> AND a.SUBJECT_UNIT = #{tEmployeeContractInfo.subjectUnit} </if> <if test="tEmployeeContractInfo.situation != null and tEmployeeContractInfo.situation.trim() != ''"> AND a.SITUATION = #{tEmployeeContractInfo.situation} </if> <if test="tEmployeeContractInfo.isFilePage != null"> AND a.SITUATION != '作废' AND a.SITUATION != '终止' </if> <if test="tEmployeeContractInfo.contractTerm != null"> AND a.CONTRACT_TERM = #{tEmployeeContractInfo.contractTerm} </if> <if test="tEmployeeContractInfo.contractNo != null and tEmployeeContractInfo.contractNo.trim() != ''"> AND a.CONTRACT_NO = #{tEmployeeContractInfo.contractNo} </if> <if test="tEmployeeContractInfo.remark != null and tEmployeeContractInfo.remark.trim() != ''"> AND a.REMARK = #{tEmployeeContractInfo.remark} </if> <if test="tEmployeeContractInfo.isObsolete != null and tEmployeeContractInfo.isObsolete.trim() != ''"> AND a.IS_OBSOLETE = #{tEmployeeContractInfo.isObsolete} </if> <if test="tEmployeeContractInfo.isFile != null and tEmployeeContractInfo.isFile.trim() != ''"> AND a.IS_FILE = #{tEmployeeContractInfo.isFile} </if> <if test="tEmployeeContractInfo.isAtta != null and tEmployeeContractInfo.isAtta.trim() != ''"> AND a.IS_FILE = #{tEmployeeContractInfo.isAtta} </if> <if test="tEmployeeContractInfo.oldId != null"> AND a.OLD_ID = #{tEmployeeContractInfo.oldId} </if> <if test="tEmployeeContractInfo.enjoinDate != null"> AND a.ENJOIN_DATE = #{tEmployeeContractInfo.enjoinDate} </if> <if test="tEmployeeContractInfo.post != null and tEmployeeContractInfo.post.trim() != ''"> AND a.POST = #{tEmployeeContractInfo.post} </if> <if test="tEmployeeContractInfo.workingHours != null and tEmployeeContractInfo.workingHours.trim() != ''"> AND a.WORKING_HOURS = #{tEmployeeContractInfo.workingHours} </if> <if test="tEmployeeContractInfo.fileCabinetNo != null and tEmployeeContractInfo.fileCabinetNo.trim() != ''"> AND a.FILE_CABINET_NO = #{tEmployeeContractInfo.fileCabinetNo} </if> <if test="tEmployeeContractInfo.settleDomain != null and tEmployeeContractInfo.settleDomain.trim() != ''"> AND a.SETTLE_DOMAIN = #{tEmployeeContractInfo.settleDomain} </if> <if test="tEmployeeContractInfo.inUse != null and tEmployeeContractInfo.inUse.trim() != ''"> AND a.IN_USE = #{tEmployeeContractInfo.inUse} </if> <if test="tEmployeeContractInfo.obsoleteReason != null and tEmployeeContractInfo.obsoleteReason.trim() != ''"> AND a.OBSOLETE_REASON = #{tEmployeeContractInfo.obsoleteReason} </if> <if test="tEmployeeContractInfo.customerId != null and tEmployeeContractInfo.customerId.trim() != ''"> AND a.CUSTOMER_ID = #{tEmployeeContractInfo.customerId} </if> <if test="tEmployeeContractInfo.fileProvince != null"> AND a.FILE_PROVINCE = #{tEmployeeContractInfo.fileProvince} </if> <if test="tEmployeeContractInfo.fileCity != null"> AND a.FILE_CITY = #{tEmployeeContractInfo.fileCity} </if> <if test="tEmployeeContractInfo.fileTown != null"> AND a.FILE_TOWN = #{tEmployeeContractInfo.fileTown} </if> <if test="tEmployeeContractInfo.workingStatusSub != null and tEmployeeContractInfo.workingStatusSub.trim() != ''"> AND a.WORKING_STATUS_SUB = #{tEmployeeContractInfo.workingStatusSub} </if> <if test="tEmployeeContractInfo.workFlag != null and tEmployeeContractInfo.workFlag.trim() != ''"> AND a.WORK_FLAG = #{tEmployeeContractInfo.workFlag} </if> <if test="tEmployeeContractInfo.periodStart != null"> AND a.PERIOD_START = #{tEmployeeContractInfo.periodStart} </if> <if test="tEmployeeContractInfo.periodEnd != null"> AND a.PERIOD_END = #{tEmployeeContractInfo.periodEnd} </if> <if test="tEmployeeContractInfo.periodSalaryPerMonth != null"> AND a.PERIOD_SALARY_PER_MONTH = #{tEmployeeContractInfo.periodSalaryPerMonth} </if> <if test="tEmployeeContractInfo.salaryType != null and tEmployeeContractInfo.salaryType.trim() != ''"> AND a.SALARY_TYPE = #{tEmployeeContractInfo.salaryType} </if> <if test="tEmployeeContractInfo.salaryStandardPerHour != null"> AND a.SALARY_STANDARD_PER_HOUR = #{tEmployeeContractInfo.salaryStandardPerHour} </if> <if test="tEmployeeContractInfo.salaryStandardPerPiece != null"> AND a.SALARY_STANDARD_PER_PIECE = #{tEmployeeContractInfo.salaryStandardPerPiece} </if> <if test="tEmployeeContractInfo.dispatchFlag != null and tEmployeeContractInfo.dispatchFlag.trim() != ''"> AND a.DISPATCH_FLAG = #{tEmployeeContractInfo.dispatchFlag} </if> <if test="tEmployeeContractInfo.warnEmailUserId != null and tEmployeeContractInfo.warnEmailUserId.trim() != ''"> AND a.WARN_EMAIL_USER_ID = #{tEmployeeContractInfo.warnEmailUserId} </if> <if test="tEmployeeContractInfo.fddFlag != null and tEmployeeContractInfo.fddFlag.trim() != ''"> AND a.FDD_FLAG = #{tEmployeeContractInfo.fddFlag} </if> <if test="tEmployeeContractInfo.isSign != null"> AND a.IS_SIGN = #{tEmployeeContractInfo.isSign} </if> <if test="tEmployeeContractInfo.createBy != null and tEmployeeContractInfo.createBy.trim() != ''"> AND a.CREATE_BY = #{tEmployeeContractInfo.createBy} </if> <if test="tEmployeeContractInfo.createName != null and tEmployeeContractInfo.createName.trim() != ''"> AND a.CREATE_NAME = #{tEmployeeContractInfo.createName} </if> <if test="tEmployeeContractInfo.createTime != null"> AND a.CREATE_TIME = #{tEmployeeContractInfo.createTime} </if> <if test="tEmployeeContractInfo.updateBy != null and tEmployeeContractInfo.updateBy.trim() != ''"> AND a.UPDATE_BY = #{tEmployeeContractInfo.updateBy} </if> <if test="tEmployeeContractInfo.updateTime != null"> AND a.UPDATE_TIME = #{tEmployeeContractInfo.updateTime} </if> <if test="tEmployeeContractInfo.unitNo != null and tEmployeeContractInfo.unitNo.trim() != ''"> AND a.UNIT_NO = #{tEmployeeContractInfo.unitNo} </if> <if test="tEmployeeContractInfo.deptNo != null and tEmployeeContractInfo.deptNo.trim() != ''"> AND a.DEPT_NO = #{tEmployeeContractInfo.deptNo} </if> <if test="tEmployeeContractInfo.applyNo != null and tEmployeeContractInfo.applyNo.trim() != ''"> AND a.APPLY_NO = #{tEmployeeContractInfo.applyNo} </if> <if test="tEmployeeContractInfo.auditStatus != null"> AND a.AUDIT_STATUS = #{tEmployeeContractInfo.auditStatus} </if> <if test="tEmployeeContractInfo.empNatrue != null and tEmployeeContractInfo.empNatrue.trim() != ''"> AND a.EMP_NATRUE = #{tEmployeeContractInfo.empNatrue} </if> <if test="tEmployeeContractInfo.contractParty != null and tEmployeeContractInfo.contractParty.trim() != ''"> AND a.CONTRACT_PARTY = #{tEmployeeContractInfo.contractParty} </if> <if test="tEmployeeContractInfo.contractSubName != null and tEmployeeContractInfo.contractSubName.trim() != ''"> AND a.CONTRACT_SUB_NAME = #{tEmployeeContractInfo.contractSubName} </if> <if test="tEmployeeContractInfo.createTimeStart != null and tEmployeeContractInfo.createTimeStart.trim() != ''"> AND a.CREATE_TIME >= #{tEmployeeContractInfo.createTimeStart} </if> <if test="tEmployeeContractInfo.createTimeEnd != null and tEmployeeContractInfo.createTimeEnd.trim() != ''"> AND a.CREATE_TIME <![CDATA[ <= ]]> #{tEmployeeContractInfo.createTimeEnd} </if> </if> </sql> <!--tEmployeeContractInfo简单分页查询--> <select id="getTEmployeeContractInfoPage" resultMap="tEmployeeContrctInfoMap"> SELECT <include refid="Base_Column_List"/> FROM t_employee_contract_info a <where> a.DELETE_FLAG = 0 <include refid="tEmployeeContractInfo_where"/> <if test="tEmployeeContractInfo.authSql != null and tEmployeeContractInfo.authSql.trim() != ''"> ${tEmployeeContractInfo.authSql} </if> </where> GROUP BY a.id order by a.CREATE_TIME desc </select> <!--list--> <select id="getTEmployeeContractList" resultMap="tEmployeeContrctInfoMap"> SELECT <include refid="Base_Column_List"/> FROM t_employee_contract_info a <where> a.DELETE_FLAG = 0 <include refid="tEmployeeContractInfo_where"/> </where> order by a.CREATE_TIME desc </select> <!--导出--> <select id="getTEmployeeContractExport" resultMap="tEmployeeContrctInfoExportMap"> SELECT <include refid="Base_Export_Column_List"/> FROM t_employee_contract_info a <where> a.DELETE_FLAG = 0 <include refid="tEmployeeContractInfo_where"/> <if test="tEmployeeContractInfo.authSql != null and tEmployeeContractInfo.authSql.trim() != ''"> ${tEmployeeContractInfo.authSql} </if> </where> GROUP BY a.id order by a.CREATE_TIME desc </select> <!--导出历史合并--> <select id="getTEmployeeContractExportHistory" resultMap="tEmployeeContrctInfoExportMap"> SELECT <include refid="Base_Export_Column_List"/> ,count(1) CREATE_NUM, min(a.CONTRACT_START) START_DATE, max(a.CONTRACT_END) END_DATE, GROUP_CONCAT(concat(a.CONTRACT_START,'~',ifnull(a.CONTRACT_END,'')) ORDER BY a.CONTRACT_START asc) HISTORY FROM t_employee_contract_info a <where> a.DELETE_FLAG = 0 and a.AUDIT_TIME_LAST is not null and a.SITUATION != '作废' and a.SITUATION != '终止' <include refid="tEmployeeContractInfo_where"/> <if test="tEmployeeContractInfo.authSql != null and tEmployeeContractInfo.authSql.trim() != ''"> ${tEmployeeContractInfo.authSql} </if> </where> GROUP BY a.EMP_IDCARD,a.SETTLE_DOMAIN order by a.CREATE_TIME desc </select> <!--tEmployeeContractInfo简单分页查询--> <select id="getOneContractByApplyNo" resultMap="tEmployeeContrctInfoMap"> SELECT <include refid="Base_Column_List"/> FROM t_employee_contract_info a where a.DELETE_FLAG = 0 and a.APPLY_NO = #{applyNo} limit 1 </select> <!-- 根据员工ID更新合同在用状态 --> <update id="updateInUseStatusById"> update t_employee_contract_info set IN_USE = #{status} where EMP_ID = #{empId} and DEPT_NO = #{deptNo} and ID != #{id} </update> <!-- 获取当日最大的编码 --> <select id="getMaxContractCode" resultType="java.lang.String"> SELECT ifnull(max(right(e.APPLY_NO,4)),0) APPLY_NO FROM t_employee_contract_info e where e.DELETE_FLAG = 0 and e.CREATE_TIME>DATE_FORMAT(now(),'%Y-%m-%d') </select> <!-- 根据编码获取数据 --> <select id="getContractByApplyNo" resultType="java.lang.String"> SELECT e.id FROM t_employee_contract_info e where e.APPLY_NO = #{applyNo} </select> </mapper>