| <?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="com.zy.crm.manager.mapper.PlanMapper"> | 
|   | 
|     <!-- 通用查询映射结果 --> | 
|     <resultMap id="BaseResultMap" type="com.zy.crm.manager.entity.Plan"> | 
|         <id column="id" property="id" /> | 
|         <result column="host_id" property="hostId" /> | 
|         <result column="dept_id" property="deptId" /> | 
|         <result column="plan_type" property="planType" /> | 
|         <result column="user_id" property="userId" /> | 
|         <result column="order_id" property="orderId" /> | 
|         <result column="cstmr_id" property="cstmrId" /> | 
|         <result column="uuid" property="uuid" /> | 
|         <result column="name" property="name" /> | 
|         <result column="apple_time" property="appleTime" /> | 
|         <result column="plan_need" property="planNeed" /> | 
|         <result column="be_item" property="beItem" /> | 
|         <result column="form" property="form" /> | 
|         <result column="planner" property="planner" /> | 
|         <result column="finish_time" property="finishTime" /> | 
|         <result column="change" property="change" /> | 
|         <result column="change_time" property="changeTime" /> | 
|         <result column="change_reason" property="changeReason" /> | 
|         <result column="plan_bonus" property="planBonus" /> | 
|         <result column="plan_leader_bonus" property="planLeaderBonus" /> | 
|         <result column="files" property="files" /> | 
|         <result column="settle" property="settle" /> | 
|         <result column="settle_msg" property="settleMsg" /> | 
|         <result column="comment" property="comment" /> | 
|         <result column="status" property="status" /> | 
|         <result column="create_by" property="createBy" /> | 
|         <result column="create_time" property="createTime" /> | 
|         <result column="update_by" property="updateBy" /> | 
|         <result column="update_time" property="updateTime" /> | 
|         <result column="memo" property="memo" /> | 
|         <result column="user_xml_sel_phone" property="userXmlSelPhone" /> | 
|         <result column="director" property="director" /> | 
|         <result column="status2" property="status2" /> | 
|         <result column="assistant_plan_id" property="assistantPlanId" /> | 
|         <result column="host_plan_id" property="hostPlanId" /> | 
|         <result column="assistant_host_sign" property="assistantHostSign" /> | 
|         <result column="settle_size" property="settleSize" /> | 
|   | 
|     </resultMap> | 
|   | 
|     <select id="selectByUuid" resultMap="BaseResultMap"> | 
|         select * from man_plan | 
|         where 1=1 | 
|         and uuid = #{uuid} | 
|         <if test="hostId != null"> | 
|             and host_id = #{hostId} | 
|         </if> | 
|     </select> | 
|   | 
|     <select id="selectPlanByNewestUuid" resultMap="BaseResultMap"> | 
|         select top 1 * from man_plan | 
|         where 1=1 | 
|         <if test="hostId != null"> | 
|             and host_id = #{hostId} | 
|         </if> | 
|         order by uuid + 0 desc | 
|     </select> | 
|   | 
|     <select id="listByPage" resultMap="BaseResultMap"> | 
|         SELECT | 
|         mp.* | 
|         FROM man_plan mp | 
|         LEFT JOIN sys_dept sd ON mp.dept_id = sd.id | 
|         WHERE 1=1 | 
|         <choose> | 
|             <when test="deptId != null and deptId != ''"> | 
|                 AND ( (CHARINDEX(','+#{deptId}+',', ','+sd.path+',') > 0 OR sd.id = #{deptId}) | 
|                 or | 
|                 ( | 
|                     mp.user_id = #{userId} | 
|                     or | 
|                     mp.id in | 
|                     ( | 
|                         select | 
|                         plan_id | 
|                         from man_plan_foll | 
|                         where 1=1 | 
|                         and user_id = #{userId} | 
|                     ) | 
|                 )) | 
|             </when> | 
|             <otherwise> | 
|                 and | 
|                 ( | 
|                     <if test="userId != null and userId != ''"> | 
|                         mp.user_id = #{userId} | 
|                         or | 
|                         mp.director = #{userId} | 
|                         or | 
|                     </if> | 
|                     mp.id in | 
|                     ( | 
|                         select | 
|                         plan_id | 
|                         from man_plan_foll | 
|                         where 1=1 | 
|                         and user_id = #{userId} | 
|                     ) | 
|                 ) | 
|             </otherwise> | 
|         </choose> | 
|         <if test="hostId != null"> | 
|             and mp.host_id = #{hostId} | 
|         </if> | 
|         <if test="condition != null and condition != ''"> | 
|             and ( | 
|             mp.uuid like concat('%',#{condition},'%') | 
|             or mp.name like concat('%',#{condition},'%') | 
|             or mp.planner like concat('%',#{condition},'%') | 
|             ) | 
|         </if> | 
|         <if test="director != null and director != ''"> | 
|             or mp.director = #{director} | 
|         </if> | 
|         ORDER BY mp.update_time DESC,mp.create_time DESC | 
|     </select> | 
|   | 
|     <select id="selectPendingTaskCount" resultType="java.lang.Integer"> | 
|         select count(1) from man_plan | 
|         where 1=1 | 
|         and director = #{director} | 
|         and settle < settle_size | 
|     </select> | 
|   | 
|     <select id="selctPlanListByDirector" resultMap="BaseResultMap"> | 
|         select DISTINCT user_id from man_plan | 
|         where 1=1 | 
|         and director = #{director} | 
|     </select> | 
|   | 
|     <select id="getApproval" resultMap="BaseResultMap"> | 
|         SELECT user_id,status2,host_id,director,dept_id,plan_type,order_id,COUNT(*) num | 
|         FROM man_plan | 
|         WHERE settle = #{settle} AND assistant_host_sign = #{assistantHostSign} | 
|         GROUP BY user_id,status2,host_id,director,dept_id,plan_type,order_id | 
|     </select> | 
|   | 
|     <select id="selectMonth" resultMap="BaseResultMap"> | 
|         SELECT count(0) as count, MONTH(create_time) as month FROM man_plan | 
|         where 1=1 | 
|         group by MONTH(create_time) | 
|     </select> | 
|   | 
|     <select id="selectUserYear" resultType="com.zy.crm.common.entity.UserYear"> | 
|         select COUNT(1) as count,YEAR(p.create_time) as year | 
|         from (select DISTINCT m.plan_id,m.user_id from man_plan_foll as m where m.user_id = #{userId}) as f | 
|         LEFT JOIN man_plan as p on (f.plan_id = p.id) | 
|         where f.user_id = #{userId} | 
|         group by YEAR(p.create_time) | 
|     </select> | 
|   | 
| </mapper> |