| <?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="doumeemes.dao.ext.EndcheckExtMapper"> | 
|   | 
|   <!-- 管理页面查询 --> | 
|   <resultMap id="EndcheckExtListVO" type="doumeemes.dao.ext.vo.EndcheckExtListVO" autoMapping="true"> | 
|     <id column="ID" jdbcType="INTEGER" property="id"/> | 
|   </resultMap> | 
|   <select id="selectList" parameterType="doumeemes.dao.ext.dto.QueryEndcheckExtDTO" resultMap="EndcheckExtListVO"> | 
|     SELECT | 
|     `endcheck`.`ID`, | 
|     `endcheck`.`DELETED`, | 
|     `endcheck`.`CREATE_USER`, | 
|     `endcheck`.`CREATE_TIME`, | 
|     `endcheck`.`UPDATE_USER`, | 
|     `endcheck`.`UPDATE_TIME`, | 
|     `endcheck`.`REMARK`, | 
|     `endcheck`.`ROOT_DEPART_ID`, | 
|     `endcheck`.`DEPART_ID`, | 
|     `endcheck`.`PLAN_ID`, | 
|     `endcheck`.`OBJ_ID`, | 
|     `endcheck`.`OBJ_TYPE`, | 
|     `endcheck`.`FACTORY_ID`, | 
|     `endcheck`.`PRO_ROUTE_ID`, | 
|     `endcheck`.`PRO_DEVICE_ID`, | 
|     `endcheck`.`MATERIAL_ID`, | 
|     `endcheck`.`UNIT_ID`, | 
|     `endcheck`.`PRO_DATE`, | 
|     `endcheck`.`TYPE`, | 
|     `endcheck`.`NUM`, | 
|     `endcheck`.`DONE_TYPE`, | 
|     `endcheck`.`CHECK_INFO`, | 
|     `endcheck`.`CHECK_TYPE`, | 
|     `endcheck`.`CODE`, | 
|     w.code as workOrderCode , | 
|     m.NAME as materialName  , | 
|     m.CODE as materialCode , | 
|     s.REALNAME as userName , | 
|     d.`NAME` as departmentName , | 
|     u.name as unitName | 
|     FROM `endcheck` `endcheck` | 
|     left join material_distribute md on `endcheck`.MATERIAL_ID = md.id | 
|     left join material  m on md.MATERIAL_ID = m.ID | 
|     left join unit u on m.unit_id = u.id | 
|     left join workorder w on `endcheck`.OBJ_ID = w.id | 
|     left join system_user s on endcheck.CREATE_USER = s.id | 
|     left join company_user c on  endcheck.CREATE_USER = c.USER_ID and endcheck.ROOT_DEPART_ID = c.ROOT_DEPART_ID  AND C.DELETED = 0 | 
|     left join department d on c.DEPARTMENT_ID = d.id | 
|     <where> | 
|       <if test="mixParam != null and mixParam != ''"> | 
|         AND ( w.CODE  like concat('%',#{mixParam},'%') or m.code like concat('%',#{mixParam},'%') ) | 
|       </if> | 
|       <if test="code != null and code != ''"> | 
|         AND `endcheck`.`CODE`  like concat('%',#{code},'%') | 
|       </if> | 
|       <if test="workOrderCode != null and workOrderCode != ''"> | 
|         AND w.`CODE` like concat('%',#{workOrderCode},'%') | 
|       </if> | 
|       <if test="materialCode != null and materialCode != ''"> | 
|         and m.CODE   like concat('%',#{materialCode},'%') | 
|       </if> | 
|       <if test="materialName != null and materialName != ''"> | 
|         and m.NAME   like concat('%',#{materialName},'%') | 
|       </if> | 
|       <if test="downType != null"> | 
|         AND `endcheck`.`DONE_TYPE` = #{downType} | 
|       </if> | 
|       <if test="checkType != null"> | 
|         AND `endcheck`.`CHECK_TYPE` = #{checkType} | 
|       </if> | 
|       <if test="checkTimeStart != null and checkTimeStart != ''"> | 
|         AND `endcheck`.`CREATE_TIME` >= concat(#{checkTimeStart},' 00:00:00') | 
|       </if> | 
|       <if test="checkTimeEnd != null and checkTimeEnd != ''"> | 
|         AND   concat(#{checkTimeEnd},' 23:59:59') >= `endcheck`.`CREATE_TIME` | 
|       </if> | 
|       <if test="rootDepartId != null"> | 
|         AND `endcheck`.`ROOT_DEPART_ID` = #{rootDepartId} | 
|       </if> | 
|       <if test="departId != null"> | 
|         AND `endcheck`.`DEPART_ID` = #{departId} | 
|       </if> | 
|     <choose> | 
|       <when test="departIds != null and departIds.size()>0"> | 
|         and ( | 
|         endcheck.CREATE_USER=#{createUser} | 
|         or exists (select d.id from company_user d where d.user_id= `endcheck`.CREATE_USER and d.department_id | 
|         in <foreach collection="departIds" item="item" separator="," open="(" close=")">#{item}</foreach>) | 
|         <if test="procedureIds != null and procedureIds.size()>0"> | 
|           or endcheck.`PRO_ROUTE_ID` in | 
|           <foreach collection="procedureIds" item="item" separator="," open="(" close=")">#{item}</foreach> | 
|   | 
|         </if> | 
|   | 
|         ) | 
|       </when> | 
|        <when test="(departIds==null or departIds.size()==0) and procedureIds != null and procedureIds.size()>0"> | 
|         and( endcheck.`PRO_ROUTE_ID` in | 
|          <foreach collection="procedureIds" item="item" separator="," open="(" close=")">#{item}</foreach> | 
|          <if test="createUser!=null"> | 
|            or endcheck.CREATE_USER=#{createUser} | 
|          </if> | 
|          ) | 
|        </when> | 
|        <otherwise> | 
|          <if test="createUser!=null"> | 
|            and endcheck.CREATE_USER=#{createUser} | 
|          </if> | 
|        </otherwise> | 
|     </choose> | 
|     </where> | 
|      order by `endcheck`.`CREATE_TIME` desc | 
|   </select> | 
|   | 
|   | 
|   <select id="selectOneById"  resultMap="EndcheckExtListVO"> | 
|     SELECT | 
|     `endcheck`.`ID`, | 
|     `endcheck`.`DELETED`, | 
|     `endcheck`.`CREATE_USER`, | 
|     `endcheck`.`CREATE_TIME`, | 
|     `endcheck`.`UPDATE_USER`, | 
|     `endcheck`.`UPDATE_TIME`, | 
|     `endcheck`.`REMARK`, | 
|     `endcheck`.`ROOT_DEPART_ID`, | 
|     `endcheck`.`DEPART_ID`, | 
|     `endcheck`.`PLAN_ID`, | 
|     `endcheck`.`OBJ_ID`, | 
|     `endcheck`.`OBJ_TYPE`, | 
|     `endcheck`.`FACTORY_ID`, | 
|     `endcheck`.`PRO_ROUTE_ID`, | 
|     `endcheck`.`PRO_DEVICE_ID`, | 
|     `endcheck`.`MATERIAL_ID`, | 
|     `endcheck`.`UNIT_ID`, | 
|     `endcheck`.`PRO_DATE`, | 
|     `endcheck`.`TYPE`, | 
|     `endcheck`.`NUM`, | 
|     `endcheck`.`DONE_TYPE`, | 
|     `endcheck`.`CHECK_INFO`, | 
|     `endcheck`.`CHECK_TYPE`, | 
|     `endcheck`.`CODE`, | 
|     w.code as workOrderCode , | 
|     m.NAME as materialName  , | 
|     m.CODE as materialCode , | 
|     s.REALNAME as userName , | 
|     d.`NAME` as departmentName , | 
|     u.name as unitName | 
|     FROM `endcheck` `endcheck` | 
|     left join material_distribute md on `endcheck`.MATERIAL_ID = md.id | 
|     left join material  m on md.MATERIAL_ID = m.ID | 
|     left join unit u on m.unit_id = u.id | 
|     left join workorder w on `endcheck`.OBJ_ID = w.id | 
|     left join system_user s on endcheck.CREATE_USER = s.id | 
|     left join company_user c on  endcheck.CREATE_USER = c.USER_ID and endcheck.ROOT_DEPART_ID = c.ROOT_DEPART_ID  AND C.DELETED = 0 | 
|     left join department d on c.DEPARTMENT_ID = d.id | 
|     <where> | 
|       <if test="id != null "> | 
|         AND `endcheck`.`id` = #{id} | 
|       </if> | 
|     </where> | 
|   </select> | 
|   | 
|   | 
|   | 
|   | 
|   | 
| </mapper> |