<?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="cn.timer.api.dao.yggl.YgglMainEmpMapper"> <resultMap id="BaseResultMap" type="cn.timer.api.bean.yggl.YgglMainEmp" > <id column="id" property="id" /> <result column="emp_num" property="empNum" /> <result column="phone" property="phone" /> <result column="password" property="password" /> <result column="head_url" property="headUrl" /> <result column="name" property="name" /> <result column="english_name" property="englishName" /> <result column="sex" property="sex" /> <result column="zj_type" property="zjType" /> <result column="zj_num" property="zjNum" /> <result column="sfzyx_time" property="sfzyxTime" /> <result column="birthday" property="birthday" /> <result column="age" property="age" /> <result column="is_married" property="isMarried" /> <result column="is_pregnant" property="isPregnant" /> <result column="area" property="area" /> <result column="mz" property="mz" /> <result column="zzmm" property="zzmm" /> <result column="jg" property="jg" /> <result column="city" property="city" /> <result column="hk_type" property="hkType" /> <result column="hk_address" property="hkAddress" /> <result column="qq" property="qq" /> <result column="wechat" property="wechat" /> <result column="email" property="email" /> <result column="blood_type" property="bloodType" /> <result column="language" property="language" /> <result column="edu" property="edu" /> <result column="zy" property="zy" /> <result column="zz_remark" property="zzRemark" /> <result column="job_type" property="jobType" /> <result column="job_status" property="jobStatus" /> <result column="rz_time" property="rzTime" /> <result column="syq" property="syq" /> <result column="zz_time" property="zzTime" /> <result column="sjzz_time" property="sjzzTime" /> <result column="is_jrkq" property="isJrkq" /> <result column="job_num" property="jobNum" /> <result column="work_address" property="workAddress" /> <result column="work_phone" property="workPhone" /> <result column="work_email" property="workEmail" /> <result column="zpqd" property="zpqd" /> <result column="bmgw_id" property="bmgwId" /> <result column="org_code" property="orgCode" /> <result column="unionid" property="unionid" /> <result column="openid" property="openid" /> <result column="mpopenid" property="mpopenid" /> <result column="appopenid" property="appopenid" /> </resultMap> <resultMap id="Bintu" type="cn.timer.api.dto.yggl.YgbintuDto" > <id column="id" property="id" /> <result column="age" property="age" /> <result column="bmgwId" property="bmgwId" /> <result column="gw" property="gw" /> <result column="bm" property="bm" /> <result column="proname" property="proname" /> <result column="eduname" property="eduname" /> <result column="jobStatus" property="jobStatus" /> <result column="workage" property="workage" /> </resultMap> <sql id="Base_Column_List"> id, emp_num, phone, password, head_url, name, english_name, sex, zj_type, zj_num, sfzyx_time, birthday, age, is_married, is_pregnant, area, mz, zzmm, jg, city, hk_type, hk_address, qq, wechat, email, blood_type, language, edu, zy, zz_remark, job_type, job_status, rz_time, syq, zz_time, sjzz_time, is_jrkq, job_num, work_address, work_phone, work_email, zpqd, bmgw_id, org_code, unionid, openid, mpopenid, appopenid </sql> <sql id="Base_Column_List_Alias"> id YgglMainEmp_id, emp_num YgglMainEmp_emp_num, phone YgglMainEmp_phone, password YgglMainEmp_password, head_url YgglMainEmp_head_url, name YgglMainEmp_name, english_name YgglMainEmp_english_name, sex YgglMainEmp_sex, zj_type YgglMainEmp_zj_type, zj_num YgglMainEmp_zj_num, sfzyx_time YgglMainEmp_sfzyx_time, birthday YgglMainEmp_birthday, age YgglMainEmp_age, is_married YgglMainEmp_is_married, is_pregnant YgglMainEmp_is_pregnant, area YgglMainEmp_area, mz YgglMainEmp_mz, zzmm YgglMainEmp_zzmm, jg YgglMainEmp_jg, city YgglMainEmp_city, hk_type YgglMainEmp_hk_type, hk_address YgglMainEmp_hk_address, qq YgglMainEmp_qq, wechat YgglMainEmp_wechat, email YgglMainEmp_email, blood_type YgglMainEmp_blood_type, language YgglMainEmp_language, edu YgglMainEmp_edu, zy YgglMainEmp_zy, zz_remark YgglMainEmp_zz_remark, job_type YgglMainEmp_job_type, job_status YgglMainEmp_job_status, rz_time YgglMainEmp_rz_time, syq YgglMainEmp_syq, zz_time YgglMainEmp_zz_time, sjzz_time YgglMainEmp_sjzz_time, is_jrkq YgglMainEmp_is_jrkq, job_num YgglMainEmp_job_num, work_address YgglMainEmp_work_address, work_phone YgglMainEmp_work_phone, work_email YgglMainEmp_work_email, zpqd YgglMainEmp_zpqd, bmgw_id YgglMainEmp_bmgw_id, org_code YgglMainEmp_org_code, unionid YgglMainEmp_unionid, openid YgglMainEmp_openid, mpopenid YgglMainEmp_mpopenid, appopenid YgglMainEmp_appopenid </sql> <!-- rsybp人事仪表盘 --> <select id="rsybp" resultMap="Bintu"> SELECT e.id AS id,IFNULL(e.age,0) AS age,IFNULL(e.bmgw_id,0) AS bmgwId,IFNULL(b.`name`,'null') AS gw, IFNULL(bb.`name`,'null') AS bm,IFNULL( p.`name`,'null') AS proname,IFNULL(d.`name` ,'null')AS eduname, IFNULL(e.job_status,0) AS jobStatus,IFNULL(datediff(CURDATE(),e.rz_time),0)AS workage FROM yggl_main_emp e LEFT JOIN zzgl_bmgw_m b ON b.id = e.bmgw_id LEFT JOIN zzgl_bmgw_m bb ON bb.id = b.up_id LEFT JOIN province_class p ON left (e.`jg`,2) = p.province LEFT JOIN education_class d ON d.number = e.edu WHERE e.org_code = #{orgCode} </select> <!-- benyueLz本月离职人数 --> <select id="benyueLz" resultType="Integer"> SELECT COUNT(datediff(CURDATE(),l.sjlz_time)) FROM yggl_main_lzb l WHERE datediff(CURDATE(),l.sjlz_time) <![CDATA[ <= ]]> 30 AND org_code = #{orgCode}; </select> <!-- benyueZz本月转正人数 --> <select id="benyueZz" resultType="Integer"> SELECT COUNT(datediff(CURDATE(),e.sjzz_time)) FROM yggl_main_emp e WHERE datediff(CURDATE(),e.sjzz_time) <![CDATA[ <= ]]> 30 AND org_code = #{orgCode}; </select> <!-- 查询员工信息 搜索 分页 --> <select id="queryEmpMessage" resultType="cn.timer.api.dto.yggl.YgQueryDto"> SELECT a.name empName, a.emp_num empNum, b.name deptName, a.rz_time rzTime, a.job_type jobType, a.phone phone, a.job_status jobStatus, a.head_url headUrl FROM yggl_main_emp a LEFT JOIN zzgl_bmgw_m b ON a.bmgw_id = b.id WHERE a.org_code = #{orgCode} AND a.job_status in (0,1,2) ORDER BY emp_num DESC </select> <!-- 查询在职员工(试用员工人数+正式员工人数) --> <select id="queryInservice" resultType="cn.timer.api.dto.yggl.YgglCartogramDto"> SELECT SUM(job_status=1) AS probation, SUM(job_status=2) AS regular FROM yggl_main_emp WHERE org_code=#{orgCode} </select> <!-- 查询当月入职人数 --> <select id="queryInduction" resultType="cn.timer.api.dto.yggl.YgglCartogramDto"> SELECT EXTRACT(MONTH FROM rz_time) AS month, COUNT(emp_num) induction FROM yggl_main_emp WHERE org_code=#{orgCode} </select> <!-- 查询本月转正人数 --> <select id="queryPositive" resultType="cn.timer.api.dto.yggl.YgglCartogramDto"> SELECT EXTRACT(MONTH FROM sjzz_time) AS month, COUNT(emp_num) positive FROM yggl_main_emp WHERE org_code=#{orgCode} </select> <!-- 查询员工平均年龄 --> <select id="queryAvgAge" resultType="cn.timer.api.dto.yggl.YgglCartogramDto"> SELECT avg(age) avgAge FROM yggl_main_emp WHERE org_code=#{orgCode} </select> <!-- 查询岗位上级部门id及名称及人数 --> <select id="queryDepartmentNum" resultType="cn.timer.api.dto.yggl.YgglCartogramDto"> SELECT IFNULL(c.name,'null') updeptname, IFNULL(b.up_id,0) updeptid, count(1) updeptnum FROM yggl_main_emp y LEFT JOIN zzgl_bmgw_m b ON y.bmgw_id = b.id LEFT JOIN zzgl_bmgw_m c ON c.id = b.up_id WHERE y.org_code = #{orgCode} GROUP BY c.name, b.up_id </select> <!-- 查询岗位名称及人数 --> <select id="queryJobsNum" resultType="cn.timer.api.dto.yggl.YgglCartogramDto"> SELECT IFNULL(b.name,'null') jobname, IFNULL(y.bmgw_id,0) jobid, count(1) jobnum FROM yggl_main_emp y LEFT JOIN zzgl_bmgw_m b ON y.bmgw_id = b.id WHERE y.org_code = #{orgCode} GROUP BY y.bmgw_id, b.name; </select> <!-- 学历及人数查询 --> <select id="queryEducation" resultType="cn.timer.api.dto.yggl.YgglCartogramDto"> SELECT IFNULL(e.name,'null') education,count(y.edu) educationNum FROM yggl_main_emp y LEFT JOIN education_class e ON y.edu = e.id WHERE org_code = #{orgCode} GROUP BY e.name ORDER BY e.id ASC </select> <!-- 员工年龄分布查询 --> <select id="queryEmpAge" resultType="cn.timer.api.dto.yggl.YgglCartogramDto"> <![CDATA[ SELECT SUM((CASE WHEN age < 0.5 THEN 1 ELSE 0 END)) AS lowerEighteen, SUM((CASE WHEN age >= 18 AND age < 25 THEN 1 ELSE 0 END)) AS eighteenToTwentyfive, SUM((CASE WHEN age >= 25 AND age < 32 THEN 1 ELSE 0 END)) AS twentyfiveToThirtytwo, SUM((CASE WHEN age >= 32 AND age < 38 THEN 1 ELSE 0 END)) AS thirtytwoToThirtyeight, SUM((CASE WHEN age >= 38 AND age < 45 THEN 1 ELSE 0 END)) AS thirtyeightToFortyfive, SUM((CASE WHEN age >=45 THEN 1 ELSE 0 END)) AS higherFortyfive FROM yggl_main_emp WHERE org_code = #{orgCode} ]]> </select> <!-- 籍贯统计(省份)查询 --> <select id="queryNativeplace" resultType="cn.timer.api.dto.yggl.YgglCartogramDto"> SELECT IFNULL(c.name,'null') province,count(y.jg) provinceNum FROM yggl_main_emp y LEFT JOIN city_class c ON y.jg = c.id WHERE org_code = #{orgCode} GROUP BY c.name </select> <!-- 员工工龄分布查询 --> <select id="queryWorkingAge" resultType="cn.timer.api.dto.yggl.YgglCartogramDto"> <![CDATA[ SELECT SUM((CASE WHEN TIMESTAMPDIFF(day, rz_time,now())/365 < 0.5 THEN 1 ELSE 0 END)) AS lowerHalfyear, SUM((CASE WHEN TIMESTAMPDIFF(day, rz_time,now())/365 >= 0.5 AND TIMESTAMPDIFF(day, rz_time,now())/365 < 1 THEN 1 ELSE 0 END)) AS halfYear, SUM((CASE WHEN TIMESTAMPDIFF(day, rz_time,now())/365 >= 1 AND TIMESTAMPDIFF(day, rz_time,now())/365 < 1.5 THEN 1 ELSE 0 END)) AS oneYear, SUM((CASE WHEN TIMESTAMPDIFF(day, rz_time,now())/365 >= 1.5 AND TIMESTAMPDIFF(day, rz_time,now())/365 < 2 THEN 1 ELSE 0 END)) AS onehalfYear, SUM((CASE WHEN TIMESTAMPDIFF(day, rz_time,now())/365 >= 2 AND TIMESTAMPDIFF(day, rz_time,now())/365 < 2.5 THEN 1 ELSE 0 END)) AS twoYear, SUM((CASE WHEN TIMESTAMPDIFF(day, rz_time,now())/365 >=2.5 THEN 1 ELSE 0 END)) AS higherTwohalfYear FROM yggl_main_emp WHERE org_code = #{orgCode} ]]> </select> <!-- <insert id="insert" useGeneratedKeys="true" keyColumn="id" parameterType="cn.timer.api.bean.yggl.YgglMainEmp"> INSERT INTO yggl_main_emp <trim prefix="(" suffix=")" suffixOverrides=","> <if test ='null != empNum'> emp_num, </if> <if test ='null != phone'> phone, </if> <if test ='null != password'> password, </if> <if test ='null != headUrl'> head_url, </if> <if test ='null != name'> name, </if> <if test ='null != englishName'> english_name, </if> <if test ='null != sex'> sex, </if> <if test ='null != zjType'> zj_type, </if> <if test ='null != zjNum'> zj_num, </if> <if test ='null != sfzyxTime'> sfzyx_time, </if> <if test ='null != birthday'> birthday, </if> <if test ='null != age'> age, </if> <if test ='null != isMarried'> is_married, </if> <if test ='null != isPregnant'> is_pregnant, </if> <if test ='null != area'> area, </if> <if test ='null != mz'> mz, </if> <if test ='null != zzmm'> zzmm, </if> <if test ='null != jg'> jg, </if> <if test ='null != city'> city, </if> <if test ='null != hkType'> hk_type, </if> <if test ='null != hkAddress'> hk_address, </if> <if test ='null != qq'> qq, </if> <if test ='null != wechat'> wechat, </if> <if test ='null != email'> email, </if> <if test ='null != bloodType'> blood_type, </if> <if test ='null != language'> language, </if> <if test ='null != edu'> edu, </if> <if test ='null != zy'> zy, </if> <if test ='null != zzRemark'> zz_remark, </if> <if test ='null != jobType'> job_type, </if> <if test ='null != jobStatus'> job_status, </if> <if test ='null != rzTime'> rz_time, </if> <if test ='null != syq'> syq, </if> <if test ='null != zzTime'> zz_time, </if> <if test ='null != sjzzTime'> sjzz_time, </if> <if test ='null != isJrkq'> is_jrkq, </if> <if test ='null != jobNum'> job_num, </if> <if test ='null != workAddress'> work_address, </if> <if test ='null != workPhone'> work_phone, </if> <if test ='null != workEmail'> work_email, </if> <if test ='null != zpqd'> zpqd, </if> <if test ='null != bmgwId'> bmgw_id, </if> <if test ='null != orgCode'> org_code, </if> <if test ='null != unionid'> unionid, </if> <if test ='null != openid'> openid, </if> <if test ='null != mpopenid'> mpopenid, </if> <if test ='null != appopenid'> appopenid </if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test ='null != empNum'> #{empNum}, </if> <if test ='null != phone'> #{phone}, </if> <if test ='null != password'> #{password}, </if> <if test ='null != headUrl'> #{headUrl}, </if> <if test ='null != name'> #{name}, </if> <if test ='null != englishName'> #{englishName}, </if> <if test ='null != sex'> #{sex}, </if> <if test ='null != zjType'> #{zjType}, </if> <if test ='null != zjNum'> #{zjNum}, </if> <if test ='null != sfzyxTime'> #{sfzyxTime}, </if> <if test ='null != birthday'> #{birthday}, </if> <if test ='null != age'> #{age}, </if> <if test ='null != isMarried'> #{isMarried}, </if> <if test ='null != isPregnant'> #{isPregnant}, </if> <if test ='null != area'> #{area}, </if> <if test ='null != mz'> #{mz}, </if> <if test ='null != zzmm'> #{zzmm}, </if> <if test ='null != jg'> #{jg}, </if> <if test ='null != city'> #{city}, </if> <if test ='null != hkType'> #{hkType}, </if> <if test ='null != hkAddress'> #{hkAddress}, </if> <if test ='null != qq'> #{qq}, </if> <if test ='null != wechat'> #{wechat}, </if> <if test ='null != email'> #{email}, </if> <if test ='null != bloodType'> #{bloodType}, </if> <if test ='null != language'> #{language}, </if> <if test ='null != edu'> #{edu}, </if> <if test ='null != zy'> #{zy}, </if> <if test ='null != zzRemark'> #{zzRemark}, </if> <if test ='null != jobType'> #{jobType}, </if> <if test ='null != jobStatus'> #{jobStatus}, </if> <if test ='null != rzTime'> #{rzTime}, </if> <if test ='null != syq'> #{syq}, </if> <if test ='null != zzTime'> #{zzTime}, </if> <if test ='null != sjzzTime'> #{sjzzTime}, </if> <if test ='null != isJrkq'> #{isJrkq}, </if> <if test ='null != jobNum'> #{jobNum}, </if> <if test ='null != workAddress'> #{workAddress}, </if> <if test ='null != workPhone'> #{workPhone}, </if> <if test ='null != workEmail'> #{workEmail}, </if> <if test ='null != zpqd'> #{zpqd}, </if> <if test ='null != bmgwId'> #{bmgwId}, </if> <if test ='null != orgCode'> #{orgCode}, </if> <if test ='null != unionid'> #{unionid}, </if> <if test ='null != openid'> #{openid}, </if> <if test ='null != mpopenid'> #{mpopenid}, </if> <if test ='null != appopenid'> #{appopenid} </if> </trim> </insert> <delete id="delete" > DELETE FROM yggl_main_emp WHERE id = #{id} </delete> <update id="update" parameterType="cn.timer.api.bean.yggl.YgglMainEmp"> UPDATE yggl_main_emp <set> <if test ='null != empNum'>emp_num = #{empNum},</if> <if test ='null != phone'>phone = #{phone},</if> <if test ='null != password'>password = #{password},</if> <if test ='null != headUrl'>head_url = #{headUrl},</if> <if test ='null != name'>name = #{name},</if> <if test ='null != englishName'>english_name = #{englishName},</if> <if test ='null != sex'>sex = #{sex},</if> <if test ='null != zjType'>zj_type = #{zjType},</if> <if test ='null != zjNum'>zj_num = #{zjNum},</if> <if test ='null != sfzyxTime'>sfzyx_time = #{sfzyxTime},</if> <if test ='null != birthday'>birthday = #{birthday},</if> <if test ='null != age'>age = #{age},</if> <if test ='null != isMarried'>is_married = #{isMarried},</if> <if test ='null != isPregnant'>is_pregnant = #{isPregnant},</if> <if test ='null != area'>area = #{area},</if> <if test ='null != mz'>mz = #{mz},</if> <if test ='null != zzmm'>zzmm = #{zzmm},</if> <if test ='null != jg'>jg = #{jg},</if> <if test ='null != city'>city = #{city},</if> <if test ='null != hkType'>hk_type = #{hkType},</if> <if test ='null != hkAddress'>hk_address = #{hkAddress},</if> <if test ='null != qq'>qq = #{qq},</if> <if test ='null != wechat'>wechat = #{wechat},</if> <if test ='null != email'>email = #{email},</if> <if test ='null != bloodType'>blood_type = #{bloodType},</if> <if test ='null != language'>language = #{language},</if> <if test ='null != edu'>edu = #{edu},</if> <if test ='null != zy'>zy = #{zy},</if> <if test ='null != zzRemark'>zz_remark = #{zzRemark},</if> <if test ='null != jobType'>job_type = #{jobType},</if> <if test ='null != jobStatus'>job_status = #{jobStatus},</if> <if test ='null != rzTime'>rz_time = #{rzTime},</if> <if test ='null != syq'>syq = #{syq},</if> <if test ='null != zzTime'>zz_time = #{zzTime},</if> <if test ='null != sjzzTime'>sjzz_time = #{sjzzTime},</if> <if test ='null != isJrkq'>is_jrkq = #{isJrkq},</if> <if test ='null != jobNum'>job_num = #{jobNum},</if> <if test ='null != workAddress'>work_address = #{workAddress},</if> <if test ='null != workPhone'>work_phone = #{workPhone},</if> <if test ='null != workEmail'>work_email = #{workEmail},</if> <if test ='null != zpqd'>zpqd = #{zpqd},</if> <if test ='null != bmgwId'>bmgw_id = #{bmgwId},</if> <if test ='null != orgCode'>org_code = #{orgCode},</if> <if test ='null != unionid'>unionid = #{unionid},</if> <if test ='null != openid'>openid = #{openid},</if> <if test ='null != mpopenid'>mpopenid = #{mpopenid},</if> <if test ='null != appopenid'>appopenid = #{appopenid}</if> </set> WHERE id = #{id} </update> <select id="load" resultMap="BaseResultMap"> SELECT <include refid="Base_Column_List" /> FROM yggl_main_emp WHERE id = #{id} </select> <select id="pageList" resultMap="BaseResultMap"> SELECT <include refid="Base_Column_List" /> FROM yggl_main_emp LIMIT #{offset}, #{pageSize} </select> <select id="pageListCount" resultType="java.lang.Integer"> SELECT count(1) FROM yggl_main_emp </select> --> </mapper>