<?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.JxglAppraisalMapper"> <resultMap id="BaseResultMap" type="cn.timer.api.bean.jxgl.JxglAppraisal" > <id column="id" property="id" /> <result column="performance_appraisal_id" property="performanceAppraisalId" /> <result column="emp_num" property="empNum" /> <result column="name" property="name" /> <result column="appraisal_explain" property="appraisalExplain" /> <result column="create_time" property="createTime" /> <result column="update_time" property="updateTime" /> <result column="sts" property="sts" /> <result column="is_edit" property="isEdit" /> </resultMap> <resultMap id="BaseResultMap_My" type="cn.timer.api.bean.jxgl.JxglAppraisal" > <id column="id" property="id" /> <result column="performance_appraisal_id" property="performanceAppraisalId" /> <result column="emp_num" property="empNum" /> <result column="name" property="name" /> <result column="appraisal_explain" property="appraisalExplain" /> <result column="create_time" property="createTime" /> <result column="update_time" property="updateTime" /> <result column="sts" property="sts" /> <result column="is_edit" property="isEdit" /> <result column="user_name" property="userName" /> <result column="phone" property="phone" /> <result column="bm_name" property="bmName" /> <result column="executor_name" property="executorName" /> <result column="executor_id" property="executorId" /> <result column="note_sts" property="noteSts" /> </resultMap> <resultMap id="BaseResultMap_All" type="cn.timer.api.bean.jxgl.JxglAppraisal" > <id column="id" property="id" /> <result column="performance_appraisal_id" property="performanceAppraisalId" /> <result column="emp_num" property="empNum" /> <result column="name" property="name" /> <result column="appraisal_explain" property="appraisalExplain" /> <result column="create_time" property="createTime" /> <result column="update_time" property="updateTime" /> <result column="sts" property="sts" /> <result column="user_name" property="userName" /> <result column="phone" property="phone" /> <result column="bm_name" property="bmName" /> <result column="executor_name" property="executorName" /> <result column="total" property="total" /> <result column="level" property="level" /> <result column="confirmor" property="confirmor" /> </resultMap> <resultMap id="BaseResultMap_Emp" type="cn.timer.api.bean.jxgl.JxglAppraisal" > <id column="id" property="id" /> <result column="performance_appraisal_id" property="performanceAppraisalId" /> <result column="emp_num" property="empNum" /> <result column="name" property="name" /> <result column="appraisal_explain" property="appraisalExplain" /> <result column="create_time" property="createTime" /> <result column="update_time" property="updateTime" /> <result column="is_edit" property="isEdit" /> <result column="sts" property="sts" /> <result column="user_name" property="userName" /> <result column="phone" property="phone" /> <result column="bm_name" property="bmName" /> <result column="rz_time" property="rzTime" /> <result column="archivedPNum" property="archivedPNum" /> <result column="underwayPNum" property="underwayPNum" /> <result column="recentlyProject" property="recentlyProject" /> <result column="recentlyScore" property="recentlyScore" /> <result column="recentlyLevel" property="recentlyLevel" /> </resultMap> <resultMap id="BaseResultMap_e" type="cn.timer.api.bean.jxgl.JxglAppraisalIndicators" > <id column="id" property="id" /> <result column="appraisal_id" property="appraisalId" /> <result column="title" property="title" /> <result column="content" property="content" /> <result column="weight" property="weight" /> <result column="create_time" property="createTime" /> <result column="update_time" property="updateTime" /> <result column="type" property="type" /> <result column="is_edit_weight" property="isEditWeight" /> <collection column="JxglAppraisalIndicatorsAssessment_id" property="appraisalIndicatorsAssessments" ofType="cn.timer.api.bean.jxgl.JxglAppraisalIndicatorsAssessment" resultMap="cn.timer.api.dao.jxgl.JxglAppraisalIndicatorsAssessmentMapper.BaseResultMap" columnPrefix="JxglAppraisalIndicatorsAssessment_"> </collection> <collection column="JxglAppraisalItem_id" property="appraisalItems" ofType="cn.timer.api.bean.jxgl.JxglAppraisalItem" resultMap="cn.timer.api.dao.jxgl.JxglAppraisalItemMapper.BaseResultMap" columnPrefix="JxglAppraisalItem_"> </collection> </resultMap> <resultMap id="BaseResultMap_Detail" type="cn.timer.api.dto.jxgl.AppraisalDetail" > <id column="id" property="id" /> <result column="performance_appraisal_id" property="performanceAppraisalId" /> <result column="emp_num" property="empNum" /> <result column="name" property="name" /> <result column="appraisal_explain" property="appraisalExplain" /> <result column="total" property="total" /> <result column="level" property="level" /> <result column="create_time" property="createTime" /> <result column="update_time" property="updateTime" /> <result column="sts" property="sts" /> <result column="is_edit" property="isEdit" /> <result column="appraisal_name" property="appraisalName" /> <result column="head_url" property="headUrl" /> <collection column="JxglProcessNode_id" property="processNodes" ofType="cn.timer.api.bean.jxgl.JxglProcessNode" resultMap="cn.timer.api.dao.jxgl.JxglProcessNodeMapper.BaseResultMap" columnPrefix="JxglProcessNode_"> </collection> <collection column="JxglAppraisalAssessment_id" property="appraisalAssessments" ofType="cn.timer.api.bean.jxgl.JxglAppraisalAssessment" resultMap="cn.timer.api.dao.jxgl.JxglAppraisalAssessmentMapper.BaseResultMap" columnPrefix="JxglAppraisalAssessment_"> </collection> <collection column="JxglAppraisalLog_id" property="appraisalLogs" ofType="cn.timer.api.bean.jxgl.JxglAppraisalLog" resultMap="cn.timer.api.dao.jxgl.JxglAppraisalLogMapper.BaseResultMap" columnPrefix="JxglAppraisalLog_"> </collection> <collection column="e_id" property="appraisalIndicators" ofType="cn.timer.api.bean.jxgl.JxglAppraisalIndicators" resultMap="cn.timer.api.dao.jxgl.JxglAppraisalMapper.BaseResultMap_e" columnPrefix="e_"> </collection> </resultMap> <sql id="Base_Column_List"> id, performance_appraisal_id, emp_num, name, appraisal_explain, create_time, update_time, sts, is_edit </sql> <sql id="Base_Column_List_a"> a.id, a.performance_appraisal_id, a.emp_num, a.name, a.appraisal_explain, a.total, a.level, a.create_time, a.update_time, a.sts, a.is_edit </sql> <sql id="Base_Column_List_Alias_b"> b.id JxglProcessNode_id, b.appraisal_id JxglProcessNode_appraisal_id, b.executor_id JxglProcessNode_executor_id, <!-- b.executor_name JxglProcessNode_executor_name, --> b.execute_type JxglProcessNode_execute_type, b.process_type JxglProcessNode_process_type, b.name JxglProcessNode_name, b.leader_tier JxglProcessNode_leader_tier, b.weight JxglProcessNode_weight, b.sts JxglProcessNode_sts, b.update_time JxglProcessNode_update_time </sql> <sql id="Base_Column_List_Alias_c"> c.id JxglAppraisalAssessment_id, c.appraisal_id JxglAppraisalAssessment_appraisal_id, c.assessor_id JxglAppraisalAssessment_assessor_id, c.assessor_name JxglAppraisalAssessment_assessor_name, c.comprehensive_score JxglAppraisalAssessment_comprehensive_score, c.remarks JxglAppraisalAssessment_remarks, c.type JxglAppraisalAssessment_type, c.create_time JxglAppraisalAssessment_create_time, c.level JxglAppraisalAssessment_level </sql> <sql id="Base_Column_List_Alias_d"> d.id JxglAppraisalLog_id, d.appraisal_id JxglAppraisalLog_appraisal_id, d.executor_id JxglAppraisalLog_executor_id, d.executor_name JxglAppraisalLog_executor_name, d.title JxglAppraisalLog_title, d.remarks JxglAppraisalLog_remarks, d.create_time JxglAppraisalLog_create_time, d.type JxglAppraisalLog_type </sql> <sql id="Base_Column_List_Alias_e"> e.id e_id, e.appraisal_id e_id, e.title e_title, e.content e_content, e.weight e_weight, e.create_time e_create_time, e.update_time e_update_time, e.type e_type, e.is_edit_weight e_is_edit_weight </sql> <sql id="Base_Column_List_Alias_f"> f.id e_JxglAppraisalIndicatorsAssessment_id, f.appraisal_indicators_id e_JxglAppraisalIndicatorsAssessment_appraisal_indicators_id, f.assessor_id e_JxglAppraisalIndicatorsAssessment_assessor_id, f.assessor_name e_JxglAppraisalIndicatorsAssessment_assessor_name, f.score e_JxglAppraisalIndicatorsAssessment_score, f.remarks e_JxglAppraisalIndicatorsAssessment_remarks, f.type e_JxglAppraisalIndicatorsAssessment_type, f.create_time e_JxglAppraisalIndicatorsAssessment_create_time </sql> <sql id="Base_Column_List_Alias_g"> g.id e_JxglAppraisalItem_id, g.appraisal_indicators_id e_JxglAppraisalItem_appraisal_indicators_id, g.title e_JxglAppraisalItem_title, g.content e_JxglAppraisalItem_content, g.ranks e_JxglAppraisalItem_ranks </sql> <sql id="Base_Column_List_Alias"> id JxglAppraisal_id, performance_appraisal_id JxglAppraisal_performance_appraisal_id, emp_num JxglAppraisal_emp_num, name JxglAppraisal_name, appraisal_explain JxglAppraisal_appraisal_explain, total JxglAppraisal_total, level JxglAppraisal_level, create_time JxglAppraisal_create_time, update_time JxglAppraisal_update_time, sts JxglAppraisal_sts, is_edit JxglAppraisal_is_edit </sql> <select id="selectListByappraisalid" resultMap="BaseResultMap" > SELECT id,performance_appraisal_id,emp_num,name,appraisal_explain,create_time,update_time,is_edit,sts,total,level FROM jxgl_appraisal WHERE performance_appraisal_id = #{appraisalid} AND (sts = 2 or sts = 3) </select> <select id="selectListByQuery" resultMap="BaseResultMap_All" > SELECT <include refid="Base_Column_List_a" />, b.name user_name, b.phone, (SELECT name FROM zzgl_bmgw_m WHERE id = (SELECT up_id FROM zzgl_bmgw_m WHERE id = b.bmgw_id limit 1) limit 1) as bm_name, (SELECT name FROM yggl_main_emp WHERE emp_num = c.executor_id AND org_code = #{param.orgCode}) as executor_name FROM jxgl_appraisal a LEFT JOIN yggl_main_emp b ON a.emp_num = b.emp_num AND b.org_code = #{param.orgCode} LEFT JOIN jxgl_process_node c ON a.id = c.appraisal_id AND c.process_type = a.sts WHERE a.performance_appraisal_id = #{param.id} <if test="param.empNums != null and param.empNums.size() > 0"> <choose> <when test="param.empNums.size() > 1"> AND b.emp_num IN ( <foreach item="it" index="index" collection="param.empNums" separator="," close="" > #{it} </foreach> ) </when> <otherwise> AND b.emp_num = #{param.empNums[0]} </otherwise> </choose> </if> <if test="param.query != null and param.query != ''"> AND ( b.name like CONCAT('%',#{param.query},'%') or b.phone like CONCAT('%',#{param.query},'%') ) </if> <if test="param.sts != null"> AND a.sts = #{param.sts} </if> ORDER BY a.id DESC </select> <select id="CurrentdepartmentID" resultType="java.lang.String"> select (SELECT id FROM zzgl_bmgw_m WHERE id = ( SELECT up_id FROM zzgl_bmgw_m WHERE id = b.bmgw_id LIMIT 1 ) LIMIT 1 ) AS bm_id from yggl_main_emp b where b.org_code = #{orgcode} and b.emp_num = #{empnum} </select> <select id="selectMyEmpByQuery" resultMap="BaseResultMap_All" > SELECT <include refid="Base_Column_List_a" />, b.name user_name, b.phone, (SELECT name FROM zzgl_bmgw_m WHERE id = (SELECT up_id FROM zzgl_bmgw_m WHERE id = b.bmgw_id limit 1) limit 1) as bm_name, (SELECT name FROM yggl_main_emp WHERE emp_num = c.executor_id AND org_code = #{param.orgCode}) as executor_name FROM jxgl_appraisal a LEFT JOIN yggl_main_emp b ON a.emp_num = b.emp_num LEFT JOIN jxgl_process_node c ON a.id = c.appraisal_id AND c.sts = 1 <where> AND b.org_code = #{param.orgCode} <if test="param.empNums != null and param.empNums.size() > 0"> <choose> <when test="param.empNums.size() > 1"> AND b.emp_num IN ( <foreach item="it" index="index" collection="param.empNums" separator="," close="" > #{it} </foreach> ) </when> <otherwise> AND b.emp_num = #{param.empNums[0]} </otherwise> </choose> </if> <if test="param.query != null and param.query != ''"> AND ( b.name like CONCAT('%',#{param.query},'%') or b.phone like CONCAT('%',#{param.query},'%') ) </if> and ( SELECT id FROM zzgl_bmgw_m WHERE id = ( SELECT up_id FROM zzgl_bmgw_m WHERE id = b.bmgw_id LIMIT 1 ) LIMIT 1 ) = #{param.deptid} </where> ORDER BY a.id DESC </select> <select id="selectListEmpByQuery" resultMap="BaseResultMap_Emp" > SELECT a.emp_num, b.name user_name, b.phone,b.rz_time, (SELECT name FROM zzgl_bmgw_m WHERE id = (SELECT up_id FROM zzgl_bmgw_m WHERE id = b.bmgw_id limit 1) limit 1) as bm_name, SUM((CASE WHEN c.sts = 3 THEN 1 ELSE 0 END)) AS archivedPNum, SUM((CASE WHEN c.sts in (0,1,2) THEN 1 ELSE 0 END)) AS underwayPNum, (SELECT name FROM jxgl_performance_appraisal WHERE id = a.performance_appraisal_id ORDER BY create_time DESC LIMIT 1 ) recentlyProject, (SELECT comprehensive_score FROM jxgl_appraisal_assessment WHERE type = 1 AND appraisal_id in (SELECT id FROM jxgl_appraisal WHERE emp_num = a.emp_num) ORDER BY create_time DESC LIMIT 1 ) recentlyScore, (SELECT level FROM jxgl_appraisal_assessment WHERE type = 1 AND appraisal_id in (SELECT id FROM jxgl_appraisal WHERE emp_num = a.emp_num) ORDER BY create_time DESC LIMIT 1 ) recentlyLevel FROM jxgl_appraisal a LEFT JOIN yggl_main_emp b ON a.emp_num = b.emp_num AND b.org_code = #{param.orgCode} LEFT JOIN jxgl_performance_appraisal c ON a.performance_appraisal_id = c.id <where> c.org_code = #{param.orgCode} <if test="param.query != null and param.query != ''"> and ( b.name like CONCAT('%',#{param.query},'%') or b.phone like CONCAT('%',#{param.query},'%') ) </if> <if test="param.empNums != null and param.empNums.size() > 0"> <choose> <when test="param.empNums.size() > 1"> AND b.emp_num IN ( <foreach item="it" index="index" collection="param.empNums" separator="," close="" > #{it} </foreach> ) </when> <otherwise> AND asso_id = #{param.empNums[0]} </otherwise> </choose> </if> </where> GROUP BY a.emp_num ORDER BY a.id DESC </select> <select id="selectDetailById" resultMap="BaseResultMap_Detail"> SELECT <include refid="Base_Column_List_a" />, j.head_url head_url, <include refid="Base_Column_List_Alias_b" />, i.name JxglProcessNode_executor_name, <include refid="Base_Column_List_Alias_c" />, <include refid="Base_Column_List_Alias_d" />, <include refid="Base_Column_List_Alias_e" />, <include refid="Base_Column_List_Alias_f" />, <include refid="Base_Column_List_Alias_g" />, h.name appraisal_name FROM jxgl_appraisal a LEFT JOIN jxgl_process_node b ON a.id = b.appraisal_id LEFT JOIN jxgl_appraisal_assessment c ON a.id = c.appraisal_id LEFT JOIN jxgl_appraisal_log d ON a.id = d.appraisal_id LEFT JOIN jxgl_appraisal_indicators e ON a.id = e.appraisal_id LEFT JOIN jxgl_appraisal_indicators_assessment f ON e.id = f.appraisal_indicators_id LEFT JOIN jxgl_appraisal_item g ON e.id = g.appraisal_indicators_id LEFT JOIN jxgl_performance_appraisal h ON a.performance_appraisal_id = h.id LEFT JOIN yggl_main_emp i ON b.executor_id = i.emp_num AND i.org_code = #{orgCode} LEFT JOIN yggl_main_emp j ON a.emp_num = j.emp_num AND j.org_code = #{orgCode} WHERE a.id = #{id} ORDER BY c.id , d.id , b.process_type </select> <!-- <insert id="insert" useGeneratedKeys="true" keyColumn="id" parameterType="cn.timer.api.bean.jxgl.JxglAppraisal"> INSERT INTO jxgl_appraisal <trim prefix="(" suffix=")" suffixOverrides=","> <if test ='null != performanceAppraisalId'> performance_appraisal_id, </if> <if test ='null != empNum'> emp_num, </if> <if test ='null != name'> name, </if> <if test ='null != appraisalExplain'> appraisal_explain, </if> <if test ='null != total'> total, </if> <if test ='null != level'> level, </if> <if test ='null != createTime'> create_time, </if> <if test ='null != updateTime'> update_time, </if> <if test ='null != sts'> sts </if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test ='null != performanceAppraisalId'> #{performanceAppraisalId}, </if> <if test ='null != empNum'> #{empNum}, </if> <if test ='null != name'> #{name}, </if> <if test ='null != appraisalExplain'> #{appraisalExplain}, </if> <if test ='null != total'> #{total}, </if> <if test ='null != level'> #{level}, </if> <if test ='null != createTime'> #{createTime}, </if> <if test ='null != updateTime'> #{updateTime}, </if> <if test ='null != sts'> #{sts} </if> </trim> </insert> <delete id="delete" > DELETE FROM jxgl_appraisal WHERE id = #{id} </delete> <update id="update" parameterType="cn.timer.api.bean.jxgl.JxglAppraisal"> UPDATE jxgl_appraisal <set> <if test ='null != performanceAppraisalId'>performance_appraisal_id = #{performanceAppraisalId},</if> <if test ='null != empNum'>emp_num = #{empNum},</if> <if test ='null != name'>name = #{name},</if> <if test ='null != appraisalExplain'>appraisal_explain = #{appraisalExplain},</if> <if test ='null != total'>total = #{total},</if> <if test ='null != level'>level = #{level},</if> <if test ='null != createTime'>create_time = #{createTime},</if> <if test ='null != updateTime'>update_time = #{updateTime},</if> <if test ='null != sts'>sts = #{sts}</if> </set> WHERE id = #{id} </update> <select id="load" resultMap="BaseResultMap"> SELECT <include refid="Base_Column_List" /> FROM jxgl_appraisal WHERE id = #{id} </select> <select id="pageList" resultMap="BaseResultMap"> SELECT <include refid="Base_Column_List" /> FROM jxgl_appraisal LIMIT #{offset}, #{pageSize} </select> <select id="pageListCount" resultType="java.lang.Integer"> SELECT count(1) FROM jxgl_appraisal </select> --> </mapper>