<?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.jxgl.JxglPerformanceAppraisalMapper"> <resultMap id="BaseResultMap" type="cn.timer.api.bean.jxgl.JxglPerformanceAppraisal" > <id column="id" property="id" /> <result column="org_code" property="orgCode" /> <result column="name" property="name" /> <result column="period" property="period" /> <result column="appraisal_start_time" property="appraisalStartTime" /> <result column="appraisal_end_time" property="appraisalEndTime" /> <result column="is_visible" property="isVisible" /> <result column="sts" property="sts" /> <result column="scope" property="scope" /> <result column="appraisal_t_name" property="appraisalTName" /> <result column="appraisal_person_num" property="appraisalPersonNum" /> <result column="process_node" property="processNode" /> <result column="being_appraisal_person" property="beingAppraisalPerson" /> <result column="create_time" property="createTime" /> <result column="update_time" property="updateTime" /> </resultMap> <resultMap id="BaseResultMap_ALl" type="cn.timer.api.bean.jxgl.JxglPerformanceAppraisal" > <id column="id" property="id" /> <result column="org_code" property="orgCode" /> <result column="name" property="name" /> <result column="period" property="period" /> <result column="appraisal_start_time" property="appraisalStartTime" /> <result column="appraisal_end_time" property="appraisalEndTime" /> <result column="is_visible" property="isVisible" /> <result column="sts" property="sts" /> <result column="scope" property="scope" /> <result column="appraisal_t_name" property="appraisalTName" /> <result column="appraisal_person_num" property="appraisalPersonNum" /> <result column="process_node" property="processNode" /> <result column="being_appraisal_person" property="beingAppraisalPerson" /> <result column="create_time" property="createTime" /> <result column="update_time" property="updateTime" /> <result column="target_seting" property="targetSeting" /> <result column="performance_score" property="performanceScore" /> <result column="result_verification" property="resultVerification" /> <result column="performance_archive" property="performanceArchive" /> <result column="assessment_complete" property="assessmentComplete" /> <result column="termination_assessment" property="terminationAssessment" /> <result column="note_sts" property="noteSts" /> <association property="appraisal" column="b_id" javaType="cn.timer.api.bean.jxgl.JxglAppraisal" columnPrefix="b_" resultMap="cn.timer.api.dao.jxgl.JxglAppraisalMapper.BaseResultMap_My"> </association> <association property="appraisalAssessment" column="c_id" javaType="cn.timer.api.bean.jxgl.JxglAppraisalAssessment" columnPrefix="c_" resultMap="cn.timer.api.dao.jxgl.JxglAppraisalAssessmentMapper.BaseResultMap" /> </resultMap> <sql id="Base_Column_List"> id, org_code, name, period, appraisal_start_time, appraisal_end_time, is_visible, sts, scope, appraisal_t_name, appraisal_person_num, process_node, being_appraisal_person, create_time, update_time </sql> <sql id="Base_Column_List_a"> a.id, a.org_code, a.name, a.period, a.appraisal_start_time, a.appraisal_end_time, a.is_visible, a.sts, a.scope, a.appraisal_t_name, a.appraisal_person_num, <!-- a.process_node, a.being_appraisal_person, --> a.create_time, a.update_time </sql> <sql id="Base_Column_List_b"> b.id b_id, b.performance_appraisal_id b_performance_appraisal_id, b.emp_num b_emp_num, b.name b_name, b.appraisal_explain b_appraisal_explain, b.create_time b_create_time, b.update_time b_update_time, b.sts b_sts </sql> <sql id="Base_Column_List_c"> c.id c_id, c.appraisal_id c_appraisal_id, c.assessor_id c_assessor_id, c.assessor_name c_assessor_name, c.comprehensive_score c_comprehensive_score, c.remarks c_remarks, c.type c_type, c.create_time c_create_time, c.level c_level </sql> <sql id="Base_Column_List_Alias"> id JxglPerformanceAppraisal_id, org_code JxglPerformanceAppraisal_org_code, name JxglPerformanceAppraisal_name, period JxglPerformanceAppraisal_period, appraisal_start_time JxglPerformanceAppraisal_appraisal_start_time, appraisal_end_time JxglPerformanceAppraisal_appraisal_end_time, is_visible JxglPerformanceAppraisal_is_visible, sts JxglPerformanceAppraisal_sts, scope JxglPerformanceAppraisal_scope, appraisal_t_name JxglPerformanceAppraisal_appraisal_t_name, appraisal_person_num JxglPerformanceAppraisal_appraisal_person_num, process_node JxglPerformanceAppraisal_process_node, being_appraisal_person JxglPerformanceAppraisal_being_appraisal_person, create_time JxglPerformanceAppraisal_create_time, update_time JxglPerformanceAppraisal_update_time </sql> <select id="selectListByQuery" resultMap="BaseResultMap_ALl" > SELECT <include refid="Base_Column_List_a" />, SUM((CASE WHEN b.sts in (0,1) THEN 1 ELSE 0 END)) AS target_seting, SUM((CASE WHEN b.sts in (2,3) THEN 1 ELSE 0 END)) AS performance_score, SUM((CASE WHEN b.sts in (4,5) THEN 1 ELSE 0 END)) AS result_verification, SUM((CASE WHEN b.sts = 6 THEN 1 ELSE 0 END)) AS termination_assessment, SUM((CASE WHEN b.sts = 7 THEN 1 ELSE 0 END)) AS performance_archive FROM jxgl_performance_appraisal a LEFT JOIN jxgl_appraisal b ON a.id = b.performance_appraisal_id WHERE a.org_code = #{param.orgCode} AND a.sts != 3 <if test="param.query != null and param.query != ''"> and ( a.name like CONCAT('%',#{param.query},'%') ) </if> <if test="param.sts != null"> and a.sts = #{param.sts} </if> <if test="param.startTime != null and param.startTime != ''"> and a.create_time <![CDATA[ >= ]]> #{param.startTime} </if> <if test="param.endTime != null and param.endTime != ''"> and a.create_time <![CDATA[ <= ]]> #{param.endTime} </if> GROUP BY a.id ORDER BY a.id DESC </select> <select id="selectArchiveListByQuery" resultMap="BaseResultMap_ALl" > SELECT <include refid="Base_Column_List_a" />, SUM((CASE WHEN b.sts in (0,1) THEN 1 ELSE 0 END)) AS target_seting, SUM((CASE WHEN b.sts in (2,3) THEN 1 ELSE 0 END)) AS performance_score, SUM((CASE WHEN b.sts in (4,5) THEN 1 ELSE 0 END)) AS result_verification, SUM((CASE WHEN b.sts = 7 THEN 1 ELSE 0 END)) AS performance_archive, SUM((CASE WHEN b.sts = 5 THEN 1 ELSE 0 END)) AS assessment_complete, SUM((CASE WHEN b.sts = 6 THEN 1 ELSE 0 END)) AS termination_assessment FROM jxgl_performance_appraisal a LEFT JOIN jxgl_appraisal b ON a.id = b.performance_appraisal_id WHERE a.org_code = #{param.orgCode} AND a.sts = 3 <if test="param.query != null and param.query != ''"> and ( a.name like CONCAT('%',#{param.query},'%') ) </if> <if test="param.startTime != null and param.startTime != ''"> and a.create_time <![CDATA[ >= ]]> #{param.startTime} </if> <if test="param.endTime != null and param.endTime != ''"> and a.create_time <![CDATA[ <= ]]> #{param.endTime} </if> GROUP BY a.id ORDER BY a.id DESC </select> <select id="selectListEmpByQuery" resultMap="BaseResultMap_ALl" > SELECT a.name,a.appraisal_start_time,a.appraisal_end_time, e.name b_user_name, e.phone b_phone, (SELECT name FROM zzgl_bmgw_m WHERE id = (SELECT up_id FROM zzgl_bmgw_m WHERE id = e.bmgw_id limit 1) limit 1) as b_bm_name, b.id b_id, b.sts b_sts, (SELECT name FROM yggl_main_emp WHERE emp_num = d.executor_id AND org_code = a.org_code) as b_executor_name, d.executor_id b_executor_id, d.sts b_note_sts, c.comprehensive_score c_comprehensive_score, c.level c_level FROM jxgl_performance_appraisal a LEFT JOIN jxgl_appraisal b ON b.performance_appraisal_id = a.id LEFT JOIN jxgl_appraisal_assessment c ON b.id = c.appraisal_id AND c.type = 1 LEFT JOIN jxgl_process_node d ON b.id = d.appraisal_id AND b.sts = d.process_type LEFT JOIN yggl_main_emp e ON b.emp_num = e.emp_num AND a.org_code = e.org_code WHERE a.org_code = #{param.orgCode} AND b.emp_num = #{param.id} ORDER BY a.id DESC </select> <select id="selectMyByQuery" resultMap="BaseResultMap_ALl" > <!-- c.comprehensive_score c_comprehensive_score, --> SELECT a.name,a.appraisal_start_time,a.appraisal_end_time, b.id b_id,b.sts b_sts, b.total c_comprehensive_score, c.level c_level, d.sts note_sts, e.name b_user_name, e.phone b_phone, (SELECT name FROM zzgl_bmgw_m WHERE id = (SELECT up_id FROM zzgl_bmgw_m WHERE id = e.bmgw_id limit 1) limit 1) as b_bm_name FROM jxgl_performance_appraisal a LEFT JOIN jxgl_appraisal b ON b.performance_appraisal_id = a.id LEFT JOIN jxgl_appraisal_assessment c ON b.id = c.appraisal_id AND c.type = 1 LEFT JOIN jxgl_process_node d ON b.id = d.appraisal_id AND d.process_type = b.sts LEFT JOIN yggl_main_emp e ON b.emp_num = e.emp_num AND a.org_code = e.org_code <where> AND a.org_code = #{param.orgCode} AND d.executor_id = #{param.id} AND d.sts != 0 <if test="param.sts != null and param.sts == 0"> AND b.sts = 0 </if> <if test="param.sts != null and param.sts == 1"> AND b.sts = 1 </if> <if test="param.sts != null and param.sts == 2"> AND b.sts in (2,3) </if> <if test="param.sts != null and param.sts == 3"> AND b.sts = 4 </if> <if test="param.noteSts != null"> AND d.sts = #{param.noteSts} </if> </where> ORDER BY a.id DESC </select> <select id="selectMyProcessedByQuery" resultMap="BaseResultMap_ALl" > <!-- SELECT a.name,a.appraisal_start_time,a.appraisal_end_time, b.id b_id,b.sts b_sts, c.comprehensive_score c_comprehensive_score, c.level c_level, d.sts note_sts, e.name b_user_name, e.phone b_phone, (SELECT name FROM zzgl_bmgw_m WHERE id = (SELECT up_id FROM zzgl_bmgw_m WHERE id = e.bmgw_id limit 1) limit 1) as b_bm_name FROM jxgl_performance_appraisal a LEFT JOIN jxgl_appraisal b ON b.performance_appraisal_id = a.id LEFT JOIN jxgl_appraisal_assessment c ON b.id = c.appraisal_id AND c.type = 1 LEFT JOIN jxgl_process_node d ON b.id = d.appraisal_id AND d.process_type = b.sts LEFT JOIN yggl_main_emp e ON b.emp_num = e.emp_num AND a.org_code = e.org_code <where> AND a.org_code = #{param.orgCode} AND d.executor_id = #{param.id} AND d.sts = 2 </where> ORDER BY a.id DESC --> select em.`name` b_user_name, em.phone b_phone, (SELECT name FROM zzgl_bmgw_m WHERE id = (SELECT up_id FROM zzgl_bmgw_m WHERE id = em.bmgw_id limit 1) limit 1) as b_bm_name, pe.`name`, nod.process_type as b_sts, jx.total c_comprehensive_score, jx.`level` c_level from jxgl_process_node nod LEFT JOIN jxgl_appraisal as jx on jx.id = nod.appraisal_id LEFT JOIN jxgl_performance_appraisal as pe on pe.id = jx.performance_appraisal_id LEFT JOIN yggl_main_emp as em on em.emp_num = nod.executor_id where nod.executor_id = #{param.id} and pe.org_code = #{param.orgCode} and nod.sts = 2 and em.org_code = #{param.orgCode} ORDER BY pe.id DESC </select> <!-- <insert id="insert" useGeneratedKeys="true" keyColumn="id" parameterType="cn.timer.api.bean.jxgl.JxglPerformanceAppraisal"> INSERT INTO jxgl_performance_appraisal <trim prefix="(" suffix=")" suffixOverrides=","> <if test ='null != orgCode'> org_code, </if> <if test ='null != name'> name, </if> <if test ='null != period'> period, </if> <if test ='null != appraisalStartTime'> appraisal_start_time, </if> <if test ='null != appraisalEndTime'> appraisal_end_time, </if> <if test ='null != isVisible'> is_visible, </if> <if test ='null != sts'> sts, </if> <if test ='null != scope'> scope, </if> <if test ='null != appraisalTName'> appraisal_t_name, </if> <if test ='null != appraisalPersonNum'> appraisal_person_num, </if> <if test ='null != processNode'> process_node, </if> <if test ='null != beingAppraisalPerson'> being_appraisal_person, </if> <if test ='null != createTime'> create_time, </if> <if test ='null != updateTime'> update_time </if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test ='null != orgCode'> #{orgCode}, </if> <if test ='null != name'> #{name}, </if> <if test ='null != period'> #{period}, </if> <if test ='null != appraisalStartTime'> #{appraisalStartTime}, </if> <if test ='null != appraisalEndTime'> #{appraisalEndTime}, </if> <if test ='null != isVisible'> #{isVisible}, </if> <if test ='null != sts'> #{sts}, </if> <if test ='null != scope'> #{scope}, </if> <if test ='null != appraisalTName'> #{appraisalTName}, </if> <if test ='null != appraisalPersonNum'> #{appraisalPersonNum}, </if> <if test ='null != processNode'> #{processNode}, </if> <if test ='null != beingAppraisalPerson'> #{beingAppraisalPerson}, </if> <if test ='null != createTime'> #{createTime}, </if> <if test ='null != updateTime'> #{updateTime} </if> </trim> </insert> <delete id="delete" > DELETE FROM jxgl_performance_appraisal WHERE id = #{id} </delete> <update id="update" parameterType="cn.timer.api.bean.jxgl.JxglPerformanceAppraisal"> UPDATE jxgl_performance_appraisal <set> <if test ='null != orgCode'>org_code = #{orgCode},</if> <if test ='null != name'>name = #{name},</if> <if test ='null != period'>period = #{period},</if> <if test ='null != appraisalStartTime'>appraisal_start_time = #{appraisalStartTime},</if> <if test ='null != appraisalEndTime'>appraisal_end_time = #{appraisalEndTime},</if> <if test ='null != isVisible'>is_visible = #{isVisible},</if> <if test ='null != sts'>sts = #{sts},</if> <if test ='null != scope'>scope = #{scope},</if> <if test ='null != appraisalTName'>appraisal_t_name = #{appraisalTName},</if> <if test ='null != appraisalPersonNum'>appraisal_person_num = #{appraisalPersonNum},</if> <if test ='null != processNode'>process_node = #{processNode},</if> <if test ='null != beingAppraisalPerson'>being_appraisal_person = #{beingAppraisalPerson},</if> <if test ='null != createTime'>create_time = #{createTime},</if> <if test ='null != updateTime'>update_time = #{updateTime}</if> </set> WHERE id = #{id} </update> <select id="load" resultMap="BaseResultMap"> SELECT <include refid="Base_Column_List" /> FROM jxgl_performance_appraisal WHERE id = #{id} </select> <select id="pageList" resultMap="BaseResultMap"> SELECT <include refid="Base_Column_List" /> FROM jxgl_performance_appraisal LIMIT #{offset}, #{pageSize} </select> <select id="pageListCount" resultType="java.lang.Integer"> SELECT count(1) FROM jxgl_performance_appraisal </select> --> </mapper>