| <?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.WorkorderExtMapper"> | 
|   <!-- 管理页面查询 --> | 
|   <select id="selectCount" parameterType="doumeemes.dao.ext.dto.QueryWorkorderExtDTO" resultType="java.lang.Integer"> | 
|   SELECT count(1) | 
|   FROM `workorder` `a` | 
|     LEFT JOIN `procedures` `pmodel` ON a.PROCEDURE_ID=pmodel.ID | 
|     <where> | 
|     <if test="id != null"> | 
|       AND `a`.`ID` = #{id} | 
|     </if> | 
|     <if test="deleted != null"> | 
|       AND `a`.`DELETED` = #{deleted} | 
|     </if> | 
|     <choose> | 
|       <when test="departIds != null and departIds.size()>0"> | 
|         AND (  `a`.`CREATE_USER` = #{createUser}  or | 
|         exists (select d.id from workorder_user d where d.WORKORDER_ID=a.id and d.DELETED=0 and d.PRO_USER_ID=#{createUser} ) | 
|         or exists (select d.id from company_user d where  d.user_id= a.CREATE_USER  and d.department_id | 
|         in <foreach collection="departIds" item="item" separator="," open="(" close=")">#{item}</foreach>) | 
|         or exists (select d.id from workorder_user wu left join  company_user d on wu.PRO_USER_ID=d.USER_ID  and d.DELETED=0 where  wu.WORKORDER_ID= a.id  and d.department_id | 
|         in <foreach collection="departIds" item="item" separator="," open="(" close=")">#{item}</foreach>) | 
|         ) | 
|       </when> | 
|       <otherwise> | 
|         <if test="createUser != null"> | 
|           AND  ( `a`.`CREATE_USER` = #{createUser} or exists (select d.id from workorder_user d where d.WORKORDER_ID=a.id and d.DELETED=0 and d.PRO_USER_ID=#{createUser} )) | 
|         </if> | 
|       </otherwise> | 
|     </choose> | 
|   | 
|     <if test="createTime != null"> | 
|       AND `a`.`CREATE_TIME` = #{createTime} | 
|     </if> | 
|     <if test="paused != null"> | 
|       AND `a`.`PAUSED` = #{paused} | 
|     </if> | 
|     <if test="updateUser != null"> | 
|       AND `a`.`UPDATE_USER` = #{updateUser} | 
|     </if> | 
|     <if test="updateTime != null"> | 
|       AND `a`.`UPDATE_TIME` = #{updateTime} | 
|     </if> | 
|     <if test="remark != null and remark != ''"> | 
|       AND `a`.`REMARK` = #{remark} | 
|     </if> | 
|     <if test="type != null and type != ''"> | 
|       AND `a`.`TYPE` = #{type} | 
|     </if> | 
|     <if test="rootDepartId != null"> | 
|       AND `a`.`ROOT_DEPART_ID` = #{rootDepartId} | 
|     </if> | 
|     <if test="departId != null"> | 
|       AND `a`.`DEPART_ID` = #{departId} | 
|     </if> | 
|     <if test="planId != null"> | 
|       AND `a`.`PLAN_ID` = #{planId} | 
|     </if> | 
|     <if test="factoryId != null"> | 
|       AND `a`.`FACTORY_ID` = #{factoryId} | 
|     </if> | 
|     <if test="procedureId != null"> | 
|       AND `a`.`PROCEDURE_ID` = #{procedureId} | 
|     </if> | 
|     <if test="code != null and code != ''"> | 
|       AND `a`.`CODE` = #{code} | 
|     </if> | 
|     <if test="originWorkorderId != null"> | 
|       AND `a`.`ORIGIN_WORKORDER_ID` = #{originWorkorderId} | 
|     </if> | 
|     <if test="typeId != null"> | 
|       AND `a`.`TYPE_ID` = #{typeId} | 
|     </if> | 
|     <if test="originId != null"> | 
|       AND `a`.`ORIGIN_ID` = #{originId} | 
|     </if> | 
|     <if test="planDate != null"> | 
|       AND `a`.`PLAN_DATE` = #{planDate} | 
|     </if> | 
|     <if test="planNum != null"> | 
|       AND `a`.`PLAN_NUM` = #{planNum} | 
|     </if> | 
|     <if test="materialId != null"> | 
|       AND `a`.`MATERIAL_ID` = #{materialId} | 
|     </if> | 
|     <if test="unitId != null"> | 
|       AND `a`.`UNIT_ID` = #{unitId} | 
|     </if> | 
|     <if test="batch != null and batch != ''"> | 
|       AND `a`.`BATCH` = #{batch} | 
|     </if> | 
|     <if test="proUserId != null"> | 
|       and exists (select wu.id from workorder_user wu where wu.deleted=0 and wu.workorder_id=a.id and wu.`PRO_USER_ID` = #{proUserId}) | 
|     </if> | 
|     <if test="proGroupId != null"> | 
|       AND `a`.`PRO_GROUP_ID` = #{proGroupId} | 
|     </if> | 
|     <if test="qualifiedNum != null"> | 
|       AND `a`.`QUALIFIED_NUM` = #{qualifiedNum} | 
|     </if> | 
|     <if test="unqualifiedNum != null"> | 
|       AND `a`.`UNQUALIFIED_NUM` = #{unqualifiedNum} | 
|     </if> | 
|     <if test="checkUserId != null"> | 
|       AND `a`.`CHECK_USER_ID` = #{checkUserId} | 
|     </if> | 
|     <if test="status != null"> | 
|       AND `a`.`STATUS` = #{status} | 
|     </if> | 
|     <if test="statusList != null and statusList.size()>0"> | 
|       AND `a`.`STATUS` in <foreach collection="statusList" open="(" close=")" item="item" separator=",">#{item}</foreach> | 
|     </if> | 
|     <if test="lastDealDate != null"> | 
|       AND `a`.`LAST_DEAL_DATE` = #{lastDealDate} | 
|     </if> | 
|     <if test="lastDealInfo != null and lastDealInfo != ''"> | 
|       AND `a`.`LAST_DEAL_INFO` = #{lastDealInfo} | 
|     </if> | 
|     <if test="urgent != null"> | 
|       AND `a`.`URGENT` = #{urgent} | 
|     </if> | 
|       <if test="startDate != null"> | 
|         AND `a`.`PLAN_DATE` >= #{startDate} | 
|       </if> | 
|       <if test="endDate != null"> | 
|         AND   #{endDate} >= `a`.`PLAN_DATE` | 
|       </if> | 
|       <if test="mixParam != null and mixParam!=''"> | 
|         AND  (a.code like concat('%',#{mixParam},'%') or pmodel.name like concat('%',#{mixParam},'%')) | 
|       </if> | 
|       <if test="backorderId != null"> | 
|         AND `a`.`BACKORDER_ID` = #{backorderId} | 
|       </if> | 
|     </where> | 
|   </select> | 
|   <!-- 管理页面查询 --> | 
|   <select id="selectCountToday" parameterType="doumeemes.dao.ext.dto.QueryWorkorderExtDTO" resultType="java.lang.Integer"> | 
|     SELECT count(1) | 
|     FROM `workorder` `a` | 
|     <where> | 
|     <if test="id != null"> | 
|       AND `a`.`ID` = #{id} | 
|     </if> | 
|     <if test="deleted != null"> | 
|       AND `a`.`DELETED` = #{deleted} | 
|     </if> | 
|     <if test="createUser != null"> | 
|       AND `a`.`CREATE_USER` = #{createUser} | 
|     </if> | 
|     <if test="createTime != null"> | 
|       AND `a`.`CREATE_TIME` = #{createTime} | 
|     </if> | 
|     <if test="paused != null"> | 
|       AND `a`.`PAUSED` = #{paused} | 
|     </if> | 
|     <if test="updateUser != null"> | 
|       AND `a`.`UPDATE_USER` = #{updateUser} | 
|     </if> | 
|     <if test="updateTime != null"> | 
|       AND `a`.`UPDATE_TIME` = #{updateTime} | 
|     </if> | 
|     <if test="remark != null and remark != ''"> | 
|       AND `a`.`REMARK` = #{remark} | 
|     </if> | 
|     <if test="type != null and type != ''"> | 
|       AND `a`.`TYPE` = #{type} | 
|     </if> | 
|     <if test="rootDepartId != null"> | 
|       AND `a`.`ROOT_DEPART_ID` = #{rootDepartId} | 
|     </if> | 
|     <if test="departId != null"> | 
|       AND `a`.`DEPART_ID` = #{departId} | 
|     </if> | 
|     <if test="planId != null"> | 
|       AND `a`.`PLAN_ID` = #{planId} | 
|     </if> | 
|     <if test="factoryId != null"> | 
|       AND `a`.`FACTORY_ID` = #{factoryId} | 
|     </if> | 
|     <if test="procedureId != null"> | 
|       AND `a`.`PROCEDURE_ID` = #{procedureId} | 
|     </if> | 
|     <if test="code != null and code != ''"> | 
|       AND `a`.`CODE` = #{code} | 
|     </if> | 
|     <if test="originWorkorderId != null"> | 
|       AND `a`.`ORIGIN_WORKORDER_ID` = #{originWorkorderId} | 
|     </if> | 
|     <if test="typeId != null"> | 
|       AND `a`.`TYPE_ID` = #{typeId} | 
|     </if> | 
|     <if test="originId != null"> | 
|       AND `a`.`ORIGIN_ID` = #{originId} | 
|     </if> | 
|     <if test="planDate != null"> | 
|       AND `a`.`PLAN_DATE` = #{planDate} | 
|     </if> | 
|     <if test="planNum != null"> | 
|       AND `a`.`PLAN_NUM` = #{planNum} | 
|     </if> | 
|     <if test="materialId != null"> | 
|       AND `a`.`MATERIAL_ID` = #{materialId} | 
|     </if> | 
|     <if test="unitId != null"> | 
|       AND `a`.`UNIT_ID` = #{unitId} | 
|     </if> | 
|     <if test="batch != null and batch != ''"> | 
|       AND `a`.`BATCH` = #{batch} | 
|     </if> | 
|     <if test="proUserId != null"> | 
|       AND `a`.`PRO_USER_ID` = #{proUserId} | 
|     </if> | 
|     <if test="proGroupId != null"> | 
|       AND `a`.`PRO_GROUP_ID` = #{proGroupId} | 
|     </if> | 
|     <if test="qualifiedNum != null"> | 
|       AND `a`.`QUALIFIED_NUM` = #{qualifiedNum} | 
|     </if> | 
|     <if test="unqualifiedNum != null"> | 
|       AND `a`.`UNQUALIFIED_NUM` = #{unqualifiedNum} | 
|     </if> | 
|     <if test="checkUserId != null"> | 
|       AND `a`.`CHECK_USER_ID` = #{checkUserId} | 
|     </if> | 
|     <if test="status != null"> | 
|       AND `a`.`STATUS` = #{status} | 
|     </if> | 
|     <if test="lastDealDate != null"> | 
|       AND `a`.`LAST_DEAL_DATE` = #{lastDealDate} | 
|     </if> | 
|     <if test="lastDealInfo != null and lastDealInfo != ''"> | 
|       AND `a`.`LAST_DEAL_INFO` = #{lastDealInfo} | 
|     </if> | 
|     <if test="urgent != null"> | 
|       AND `a`.`URGENT` = #{urgent} | 
|     </if> | 
|       <if test="backorderId != null"> | 
|         AND `a`.`BACKORDER_ID` = #{backorderId} | 
|       </if> | 
|     </where> | 
|     and to_days(`a`.`CREATE_TIME`)=to_days(now()) | 
|   </select> | 
|   <!-- 管理页面查询 --> | 
|   <select id="sumOrderNum" parameterType="doumeemes.dao.ext.dto.QueryWorkorderExtDTO" resultType="java.lang.Integer"> | 
|     SELECT sum(`a`.id) | 
|     FROM `workorder` `a` | 
|     <where> | 
|     <if test="id != null"> | 
|       AND `a`.`ID` = #{id} | 
|     </if> | 
|     <if test="deleted != null"> | 
|       AND `a`.`DELETED` = #{deleted} | 
|     </if> | 
|     <if test="createUser != null"> | 
|       AND `a`.`CREATE_USER` = #{createUser} | 
|     </if> | 
|     <if test="createTime != null"> | 
|       AND `a`.`CREATE_TIME` = #{createTime} | 
|     </if> | 
|     <if test="paused != null"> | 
|       AND `a`.`PAUSED` = #{paused} | 
|     </if> | 
|     <if test="updateUser != null"> | 
|       AND `a`.`UPDATE_USER` = #{updateUser} | 
|     </if> | 
|     <if test="updateTime != null"> | 
|       AND `a`.`UPDATE_TIME` = #{updateTime} | 
|     </if> | 
|     <if test="remark != null and remark != ''"> | 
|       AND `a`.`REMARK` = #{remark} | 
|     </if> | 
|     <if test="type != null and type != ''"> | 
|       AND `a`.`TYPE` = #{type} | 
|     </if> | 
|     <if test="rootDepartId != null"> | 
|       AND `a`.`ROOT_DEPART_ID` = #{rootDepartId} | 
|     </if> | 
|     <if test="departId != null"> | 
|       AND `a`.`DEPART_ID` = #{departId} | 
|     </if> | 
|     <if test="planId != null"> | 
|       AND `a`.`PLAN_ID` = #{planId} | 
|     </if> | 
|     <if test="factoryId != null"> | 
|       AND `a`.`FACTORY_ID` = #{factoryId} | 
|     </if> | 
|     <if test="procedureId != null"> | 
|       AND `a`.`PROCEDURE_ID` = #{procedureId} | 
|     </if> | 
|     <if test="code != null and code != ''"> | 
|       AND `a`.`CODE` = #{code} | 
|     </if> | 
|     <if test="originWorkorderId != null"> | 
|       AND `a`.`ORIGIN_WORKORDER_ID` = #{originWorkorderId} | 
|     </if> | 
|     <if test="typeId != null"> | 
|       AND `a`.`TYPE_ID` = #{typeId} | 
|     </if> | 
|     <if test="originId != null"> | 
|       AND `a`.`ORIGIN_ID` = #{originId} | 
|     </if> | 
|     <if test="planDate != null"> | 
|       AND `a`.`PLAN_DATE` = #{planDate} | 
|     </if> | 
|     <if test="planNum != null"> | 
|       AND `a`.`PLAN_NUM` = #{planNum} | 
|     </if> | 
|     <if test="materialId != null"> | 
|       AND `a`.`MATERIAL_ID` = #{materialId} | 
|     </if> | 
|     <if test="unitId != null"> | 
|       AND `a`.`UNIT_ID` = #{unitId} | 
|     </if> | 
|     <if test="batch != null and batch != ''"> | 
|       AND `a`.`BATCH` = #{batch} | 
|     </if> | 
|     <if test="proUserId != null"> | 
|       AND `a`.`PRO_USER_ID` = #{proUserId} | 
|     </if> | 
|     <if test="proGroupId != null"> | 
|       AND `a`.`PRO_GROUP_ID` = #{proGroupId} | 
|     </if> | 
|     <if test="qualifiedNum != null"> | 
|       AND `a`.`QUALIFIED_NUM` = #{qualifiedNum} | 
|     </if> | 
|     <if test="unqualifiedNum != null"> | 
|       AND `a`.`UNQUALIFIED_NUM` = #{unqualifiedNum} | 
|     </if> | 
|     <if test="checkUserId != null"> | 
|       AND `a`.`CHECK_USER_ID` = #{checkUserId} | 
|     </if> | 
|     <if test="status != null"> | 
|       AND `a`.`STATUS` = #{status} | 
|     </if> | 
|     <if test="lastDealDate != null"> | 
|       AND `a`.`LAST_DEAL_DATE` = #{lastDealDate} | 
|     </if> | 
|     <if test="lastDealInfo != null and lastDealInfo != ''"> | 
|       AND `a`.`LAST_DEAL_INFO` = #{lastDealInfo} | 
|     </if> | 
|     <if test="urgent != null"> | 
|       AND `a`.`URGENT` = #{urgent} | 
|     </if> | 
|       <if test="backorderId != null"> | 
|         AND `a`.`BACKORDER_ID` = #{backorderId} | 
|       </if> | 
|     </where> | 
|   </select> | 
|   <!-- 管理页面查询 --> | 
|   <select id="selectList" parameterType="doumeemes.dao.ext.dto.QueryWorkorderExtDTO" resultMap="WorkorderExtListVO"> | 
|     SELECT | 
|     `a`.*, | 
|     `dmodel`.`ID` AS DMODEL_ID, | 
|     `dmodel`.`DELETED` AS DMODEL_DELETED, | 
|     `dmodel`.`CREATE_USER` AS DMODEL_CREATE_USER, | 
|     `dmodel`.`CREATE_TIME` AS DMODEL_CREATE_TIME, | 
|     `dmodel`.`UPDATE_USER` AS DMODEL_UPDATE_USER, | 
|     `dmodel`.`UPDATE_TIME` AS DMODEL_UPDATE_TIME, | 
|     `dmodel`.`NAME` AS DMODEL_NAME, | 
|     `dmodel`.`REMARK` AS DMODEL_REMARK, | 
|     `dmodel`.`ROOT_ID` AS DMODEL_ROOT_ID, | 
|     `dmodel`.`PARENT_ID` AS DMODEL_PARENT_ID, | 
|     `dmodel`.`COMPANY_ID` AS DMODEL_COMPANY_ID, | 
|     `dmodel`.`TYPE` AS DMODEL_TYPE, | 
|     `dmodel`.`ERP_ID` AS DMODEL_ERP_ID, | 
|     `dmodel`.`STATUS` AS DMODEL_STATUS, | 
|     `dmodel`.`VALID_TIME` AS DMODEL_VALID_TIME, | 
|     `dmodel`.`INVALID_TIME` AS DMODEL_INVALID_TIME, | 
|     `pmodel`.`ID` AS PMODEL_ID, | 
|     `pmodel`.`DELETED` AS PMODEL_DELETED, | 
|     `pmodel`.`CREATE_USER` AS PMODEL_CREATE_USER, | 
|     `pmodel`.`CREATE_TIME` AS PMODEL_CREATE_TIME, | 
|     `pmodel`.`UPDATE_USER` AS PMODEL_UPDATE_USER, | 
|     `pmodel`.`UPDATE_TIME` AS PMODEL_UPDATE_TIME, | 
|     `pmodel`.`REMARK` AS PMODEL_REMARK, | 
|     `pmodel`.`ROOT_DEPART_ID` AS PMODEL_ROOT_DEPART_ID, | 
|     `pmodel`.`DEPART_ID` AS PMODEL_DEPART_ID, | 
|     `pmodel`.`ORIGIN` AS PMODEL_ORIGIN, | 
|     `pmodel`.`PLAN_DATE` AS PMODEL_PLAN_DATE, | 
|     `pmodel`.`MATERIAL_ID` AS PMODEL_MATERIAL_ID, | 
|     `pmodel`.`PROCEDURE_ID` AS PMODEL_PROCEDURE_ID, | 
|     `pmodel`.`FACTORY_ID` AS PMODEL_FACTORY_ID, | 
|     `pmodel`.`UNIT_ID` AS PMODEL_UNIT_ID, | 
|     `pmodel`.`NUM` AS PMODEL_NUM, | 
|     `pmodel`.`BATCH` AS PMODEL_BATCH, | 
|     `pmodel`.`URGENT` AS PMODEL_URGENT, | 
|     `pmodel`.`IMPORT_ID` AS PMODEL_IMPORT_ID, | 
|     `pmodel`.`USER_ID` AS PMODEL_USER_ID, | 
|     `pmodel`.`STATUS` AS PMODEL_STATUS, | 
|     `pmodel`.`PUBLISH_DATE` AS PMODEL_PUBLISH_DATE, | 
|     `fmodel`.`ID` AS FMODEL_ID, | 
|     `fmodel`.`DELETED` AS FMODEL_DELETED, | 
|     `fmodel`.`CREATE_USER` AS FMODEL_CREATE_USER, | 
|     `fmodel`.`CREATE_TIME` AS FMODEL_CREATE_TIME, | 
|     `fmodel`.`UPDATE_USER` AS FMODEL_UPDATE_USER, | 
|     `fmodel`.`UPDATE_TIME` AS FMODEL_UPDATE_TIME, | 
|     `fmodel`.`NAME` AS FMODEL_NAME, | 
|     `fmodel`.`REMARK` AS FMODEL_REMARK, | 
|     `fmodel`.`ROOT_ID` AS FMODEL_ROOT_ID, | 
|     `fmodel`.`PARENT_ID` AS FMODEL_PARENT_ID, | 
|     `fmodel`.`COMPANY_ID` AS FMODEL_COMPANY_ID, | 
|     `fmodel`.`TYPE` AS FMODEL_TYPE, | 
|     `fmodel`.`ERP_ID` AS FMODEL_ERP_ID, | 
|     `fmodel`.`STATUS` AS FMODEL_STATUS, | 
|     `fmodel`.`VALID_TIME` AS FMODEL_VALID_TIME, | 
|     `fmodel`.`INVALID_TIME` AS FMODEL_INVALID_TIME, | 
|     `tmodel`.`ID` AS TMODEL_ID, | 
|     `tmodel`.`DELETED` AS TMODEL_DELETED, | 
|     `tmodel`.`CREATE_USER` AS TMODEL_CREATE_USER, | 
|     `tmodel`.`CREATE_TIME` AS TMODEL_CREATE_TIME, | 
|     `tmodel`.`UPDATE_USER` AS TMODEL_UPDATE_USER, | 
|     `tmodel`.`UPDATE_TIME` AS TMODEL_UPDATE_TIME, | 
|     `tmodel`.`DICT_ID` AS TMODEL_DICT_ID, | 
|     `tmodel`.`CODE` AS TMODEL_CODE, | 
|     `tmodel`.`LABEL` AS TMODEL_LABEL, | 
|     `tmodel`.`SORT` AS TMODEL_SORT, | 
|     `tmodel`.`DISABLED` AS TMODEL_DISABLED, | 
|     `mmodel`.`ID` AS MMODEL_ID, | 
|     `mmodel`.`DELETED` AS MMODEL_DELETED, | 
|     `mmodel`.`CREATE_USER` AS MMODEL_CREATE_USER, | 
|     `mmodel`.`CREATE_TIME` AS MMODEL_CREATE_TIME, | 
|     `mmodel`.`UPDATE_USER` AS MMODEL_UPDATE_USER, | 
|     `mmodel`.`UPDATE_TIME` AS MMODEL_UPDATE_TIME, | 
|     `mmodel`.`REMARK` AS MMODEL_REMARK, | 
|     `mmodel`.`ROOT_DEPART_ID` AS MMODEL_ROOT_DEPART_ID, | 
|     `mmodel`.`NAME` AS MMODEL_NAME, | 
|     `mmodel`.`CODE` AS MMODEL_CODE, | 
|     `mmodel`.`ATTR` AS MMODEL_ATTR, | 
|     `mmodel`.`UNION_NAME` AS MMODEL_UNION_NAME, | 
|     `mmodel`.`UNIT_ID` AS MMODEL_UNIT_ID, | 
|     `mmodel`.`CATE_UNION_ID` AS MMODEL_CATE_UNION_ID, | 
|     `mmodel`.`FORMATION` AS MMODEL_FORMATION, | 
|     `mmodel`.`QRCODE_ID` AS MMODEL_QRCODE_ID, | 
|     `mmodel`.`STATUS` AS MMODEL_STATUS, | 
|     `mmodel`.`VALID_TIME` AS MMODEL_VALID_TIME, | 
|     `mmodel`.`INVALID_TIME` AS MMODEL_INVALID_TIME, | 
|     `mmodel`.`CHECK_WAY` AS MMODEL_CHECK_WAY, | 
|     `mmodel`.`QUALITY_REQUIRE` AS MMODEL_QUALITY_REQUIRE, | 
|     `mmodel`.`CHECK_NOTE` AS MMODEL_CHECK_NOTE, | 
|     `umodel`.`ID` AS UMODEL_ID, | 
|     `umodel`.`DELETED` AS UMODEL_DELETED, | 
|     `umodel`.`CREATE_USER` AS UMODEL_CREATE_USER, | 
|     `umodel`.`CREATE_TIME` AS UMODEL_CREATE_TIME, | 
|     `umodel`.`UPDATE_USER` AS UMODEL_UPDATE_USER, | 
|     `umodel`.`UPDATE_TIME` AS UMODEL_UPDATE_TIME, | 
|     `umodel`.`REMARK` AS UMODEL_REMARK, | 
|     `umodel`.`ROOT_DEPART_ID` AS UMODEL_ROOT_DEPART_ID, | 
|     `umodel`.`NAME` AS UMODEL_NAME, | 
|     `umodel`.`TYPE` AS UMODEL_TYPE, | 
|     `umodel`.`STATUS` AS UMODEL_STATUS, | 
|     `pgmodel`.`ID` AS PGMODEL_ID, | 
|     `pgmodel`.`DELETED` AS PGMODEL_DELETED, | 
|     `pgmodel`.`CREATE_USER` AS PGMODEL_CREATE_USER, | 
|     `pgmodel`.`CREATE_TIME` AS PGMODEL_CREATE_TIME, | 
|     `pgmodel`.`UPDATE_USER` AS PGMODEL_UPDATE_USER, | 
|     `pgmodel`.`UPDATE_TIME` AS PGMODEL_UPDATE_TIME, | 
|     `pgmodel`.`REMARK` AS PGMODEL_REMARK, | 
|     `pgmodel`.`ROOT_DEPART_ID` AS PGMODEL_ROOT_DEPART_ID, | 
|     `pgmodel`.`DEPART_ID` AS PGMODEL_DEPART_ID, | 
|     `pgmodel`.`PROCEDURE_ID` AS PGMODEL_PROCEDURE_ID, | 
|     `pgmodel`.`CODE` AS PGMODEL_CODE, | 
|     `pgmodel`.`TYPE` AS PGMODEL_TYPE, | 
|     `pgmodel`.`NAME` AS PGMODEL_NAME, | 
|     `pgmodel`.`MODEL` AS PGMODEL_MODEL, | 
|     `pgmodel`.`STATUS` AS PGMODEL_STATUS, | 
|     `pgmodel`.`SUPPLIER` AS PGMODEL_SUPPLIER, | 
|     `pgmodel`.`STATION_CODE` AS PGMODEL_STATION_CODE, | 
|     `pgmodel`.`GROUP_ID` AS PGMODEL_GROUP_ID, | 
|     `pgmodel`.`SERIAL_NUM` AS PGMODEL_SERIAL_NUM, | 
|      p.name as procedureName, | 
|      u.realname as proUserName, | 
|      uc.realname as createUserName, | 
|     (select sum(ifnull(num,0)) from workorder_record r where r.deleted=0 and r.type=1 and r.workorder_id=a.id) as proNum | 
|     <if test="checkTouliao!=null and checkTouliao==1"> | 
|       ,(select r.id from workorder_record r where r.deleted=0 and r.type=0 and r.workorder_id=a.id limit 1) as touliaoId | 
|     </if> | 
|     ,`mmodel`.name as materialName , `mmodel`.code as materialCode , concat('【',    `pgmodel`.code , '】' , `pgmodel`.name ) as deviceName, | 
|     case when  `a`.ORIGIN_ID is null then '' else '计划分配' end  orderForm , `umodel`.name as unitName | 
|     FROM `workorder` `a` | 
|     LEFT JOIN `department` `dmodel` ON a.DEPART_ID=dmodel.ID | 
|     LEFT JOIN `plans` `pmodel` ON a.PLAN_ID=pmodel.ID | 
|     LEFT JOIN `department` `fmodel` ON a.FACTORY_ID=fmodel.ID | 
|     LEFT JOIN `system_dict_data` `tmodel` ON a.TYPE_ID=tmodel.ID | 
|     LEFT JOIN `material_distribute` `mdmodel` ON a.MATERIAL_ID=mdmodel.ID | 
|     LEFT JOIN `material` `mmodel` ON mdmodel.MATERIAL_ID=mmodel.ID | 
|     LEFT JOIN `unit` `umodel` ON a.UNIT_ID=umodel.ID | 
|     LEFT JOIN `device` `pgmodel` ON a.PRO_GROUP_ID=pgmodel.ID | 
|     LEFT JOIN `procedures` `p` ON a.`PROCEDURE_ID`=p.ID | 
|     LEFT JOIN `system_user` `u` ON `a`.`PRO_USER_ID`=u.ID | 
|     LEFT JOIN `system_user` `uc` ON `a`.`CREATE_USER`=uc.ID | 
|         <where> | 
|       <if test="id != null"> | 
|         AND `a`.`ID` = #{id} | 
|       </if> | 
|       <if test="deleted != null"> | 
|         AND `a`.`DELETED` = #{deleted} | 
|       </if> | 
|   | 
|       <if test="createTime != null"> | 
|         AND `a`.`CREATE_TIME` = #{createTime} | 
|       </if> | 
|       <if test="paused != null"> | 
|         AND `a`.`PAUSED` = #{paused} | 
|       </if> | 
|       <if test="updateUser != null"> | 
|         AND `a`.`UPDATE_USER` = #{updateUser} | 
|       </if> | 
|       <if test="updateTime != null"> | 
|         AND `a`.`UPDATE_TIME` = #{updateTime} | 
|       </if> | 
|       <if test="remark != null and remark != ''"> | 
|         AND `a`.`REMARK` = #{remark} | 
|       </if> | 
|       <if test="type != null and type != ''"> | 
|         AND `a`.`TYPE` = #{type} | 
|       </if> | 
|       <if test="rootDepartId != null"> | 
|         AND `a`.`ROOT_DEPART_ID` = #{rootDepartId} | 
|       </if> | 
|       <if test="departId != null"> | 
|         AND `a`.`DEPART_ID` = #{departId} | 
|       </if> | 
|       <if test="planId != null"> | 
|         AND `a`.`PLAN_ID` = #{planId} | 
|       </if> | 
|       <if test="factoryId != null"> | 
|         AND `a`.`FACTORY_ID` = #{factoryId} | 
|       </if> | 
|       <if test="procedureId != null"> | 
|         AND `a`.`PROCEDURE_ID` = #{procedureId} | 
|       </if> | 
|       <if test="code != null and code != ''"> | 
|         AND `a`.`CODE` = #{code} | 
|       </if> | 
|       <if test="originWorkorderId != null"> | 
|         AND `a`.`ORIGIN_WORKORDER_ID` = #{originWorkorderId} | 
|       </if> | 
|       <if test="typeId != null"> | 
|         AND `a`.`TYPE_ID` = #{typeId} | 
|       </if> | 
|       <if test="originId != null"> | 
|         AND `a`.`ORIGIN_ID` = #{originId} | 
|       </if> | 
|       <if test="planDate != null"> | 
|         AND `a`.`PLAN_DATE` = #{planDate} | 
|       </if> | 
|       <if test="planNum != null"> | 
|         AND `a`.`PLAN_NUM` = #{planNum} | 
|       </if> | 
|       <if test="materialId != null"> | 
|         AND `a`.`MATERIAL_ID` = #{materialId} | 
|       </if> | 
|       <if test="unitId != null"> | 
|         AND `a`.`UNIT_ID` = #{unitId} | 
|       </if> | 
|       <if test="batch != null and batch != ''"> | 
|         AND `a`.`BATCH` = #{batch} | 
|       </if> | 
|       <if test="proUserId != null"> | 
|         and exists (select wu.id from workorder_user wu where wu.deleted=0 and wu.workorder_id=a.id and wu.`PRO_USER_ID` = #{proUserId}) | 
|       </if> | 
|       <if test="proGroupId != null"> | 
|         AND `a`.`PRO_GROUP_ID` = #{proGroupId} | 
|       </if> | 
|       <if test="qualifiedNum != null"> | 
|         AND `a`.`QUALIFIED_NUM` = #{qualifiedNum} | 
|       </if> | 
|       <if test="unqualifiedNum != null"> | 
|         AND `a`.`UNQUALIFIED_NUM` = #{unqualifiedNum} | 
|       </if> | 
|       <if test="checkUserId != null"> | 
|         AND `a`.`CHECK_USER_ID` = #{checkUserId} | 
|       </if> | 
|       <if test="status != null"> | 
|         AND `a`.`STATUS` = #{status} | 
|       </if> | 
|       <if test="statusList != null and statusList.size()>0"> | 
|         AND `a`.`STATUS` in <foreach collection="statusList" open="(" close=")" item="item" separator=",">#{item}</foreach> | 
|       </if> | 
|       <if test="lastDealDate != null"> | 
|         AND `a`.`LAST_DEAL_DATE` = #{lastDealDate} | 
|       </if> | 
|       <if test="lastDealInfo != null and lastDealInfo != ''"> | 
|         AND `a`.`LAST_DEAL_INFO` = #{lastDealInfo} | 
|       </if> | 
|       <if test="urgent != null"> | 
|         AND `a`.`URGENT` = #{urgent} | 
|       </if> | 
|           <if test="backorderId != null"> | 
|             AND `a`.`BACKORDER_ID` = #{backorderId} | 
|           </if> | 
|       <if test="dmodelId != null"> | 
|         AND `dmodel`.`ID` = #{dmodelId} | 
|       </if> | 
|       <if test="dmodelDeleted != null"> | 
|         AND `dmodel`.`DELETED` = #{dmodelDeleted} | 
|       </if> | 
|       <if test="dmodelCreateUser != null"> | 
|         AND `dmodel`.`CREATE_USER` = #{dmodelCreateUser} | 
|       </if> | 
|       <if test="dmodelCreateTime != null"> | 
|         AND `dmodel`.`CREATE_TIME` = #{dmodelCreateTime} | 
|       </if> | 
|       <if test="dmodelUpdateUser != null"> | 
|         AND `dmodel`.`UPDATE_USER` = #{dmodelUpdateUser} | 
|       </if> | 
|       <if test="dmodelUpdateTime != null"> | 
|         AND `dmodel`.`UPDATE_TIME` = #{dmodelUpdateTime} | 
|       </if> | 
|       <if test="dmodelName != null and dmodelName != ''"> | 
|         AND `dmodel`.`NAME` = #{dmodelName} | 
|       </if> | 
|       <if test="dmodelRemark != null and dmodelRemark != ''"> | 
|         AND `dmodel`.`REMARK` = #{dmodelRemark} | 
|       </if> | 
|       <if test="dmodelRootId != null"> | 
|         AND `dmodel`.`ROOT_ID` = #{dmodelRootId} | 
|       </if> | 
|       <if test="dmodelParentId != null"> | 
|         AND `dmodel`.`PARENT_ID` = #{dmodelParentId} | 
|       </if> | 
|       <if test="dmodelCompanyId != null"> | 
|         AND `dmodel`.`COMPANY_ID` = #{dmodelCompanyId} | 
|       </if> | 
|       <if test="dmodelType != null"> | 
|         AND `dmodel`.`TYPE` = #{dmodelType} | 
|       </if> | 
|       <if test="dmodelErpId != null and dmodelErpId != ''"> | 
|         AND `dmodel`.`ERP_ID` = #{dmodelErpId} | 
|       </if> | 
|       <if test="dmodelStatus != null"> | 
|         AND `dmodel`.`STATUS` = #{dmodelStatus} | 
|       </if> | 
|       <if test="dmodelValidTime != null"> | 
|         AND `dmodel`.`VALID_TIME` = #{dmodelValidTime} | 
|       </if> | 
|       <if test="dmodelInvalidTime != null"> | 
|         AND `dmodel`.`INVALID_TIME` = #{dmodelInvalidTime} | 
|       </if> | 
|       <if test="pmodelId != null"> | 
|         AND `pmodel`.`ID` = #{pmodelId} | 
|       </if> | 
|       <if test="pmodelDeleted != null"> | 
|         AND `pmodel`.`DELETED` = #{pmodelDeleted} | 
|       </if> | 
|       <if test="pmodelCreateUser != null"> | 
|         AND `pmodel`.`CREATE_USER` = #{pmodelCreateUser} | 
|       </if> | 
|       <if test="pmodelCreateTime != null"> | 
|         AND `pmodel`.`CREATE_TIME` = #{pmodelCreateTime} | 
|       </if> | 
|       <if test="pmodelUpdateUser != null"> | 
|         AND `pmodel`.`UPDATE_USER` = #{pmodelUpdateUser} | 
|       </if> | 
|       <if test="pmodelUpdateTime != null"> | 
|         AND `pmodel`.`UPDATE_TIME` = #{pmodelUpdateTime} | 
|       </if> | 
|       <if test="pmodelRemark != null and pmodelRemark != ''"> | 
|         AND `pmodel`.`REMARK` = #{pmodelRemark} | 
|       </if> | 
|       <if test="pmodelRootDepartId != null"> | 
|         AND `pmodel`.`ROOT_DEPART_ID` = #{pmodelRootDepartId} | 
|       </if> | 
|       <if test="pmodelDepartId != null"> | 
|         AND `pmodel`.`DEPART_ID` = #{pmodelDepartId} | 
|       </if> | 
|       <if test="pmodelOrigin != null"> | 
|         AND `pmodel`.`ORIGIN` = #{pmodelOrigin} | 
|       </if> | 
|       <if test="pmodelPlanDate != null"> | 
|         AND `pmodel`.`PLAN_DATE` = #{pmodelPlanDate} | 
|       </if> | 
|       <if test="pmodelMaterialId != null"> | 
|         AND `pmodel`.`MATERIAL_ID` = #{pmodelMaterialId} | 
|       </if> | 
|       <if test="pmodelProcedureId != null"> | 
|         AND `pmodel`.`PROCEDURE_ID` = #{pmodelProcedureId} | 
|       </if> | 
|       <if test="pmodelFactoryId != null"> | 
|         AND `pmodel`.`FACTORY_ID` = #{pmodelFactoryId} | 
|       </if> | 
|       <if test="pmodelUnitId != null"> | 
|         AND `pmodel`.`UNIT_ID` = #{pmodelUnitId} | 
|       </if> | 
|       <if test="pmodelNum != null"> | 
|         AND `pmodel`.`NUM` = #{pmodelNum} | 
|       </if> | 
|       <if test="pmodelBatch != null and pmodelBatch != ''"> | 
|         AND `pmodel`.`BATCH` = #{pmodelBatch} | 
|       </if> | 
|       <if test="pmodelUrgent != null"> | 
|         AND `pmodel`.`URGENT` = #{pmodelUrgent} | 
|       </if> | 
|       <if test="pmodelImportId != null"> | 
|         AND `pmodel`.`IMPORT_ID` = #{pmodelImportId} | 
|       </if> | 
|       <if test="pmodelUserId != null"> | 
|         AND `pmodel`.`USER_ID` = #{pmodelUserId} | 
|       </if> | 
|       <if test="pmodelStatus != null"> | 
|         AND `pmodel`.`STATUS` = #{pmodelStatus} | 
|       </if> | 
|       <if test="pmodelPublishDate != null"> | 
|         AND `pmodel`.`PUBLISH_DATE` = #{pmodelPublishDate} | 
|       </if> | 
|       <if test="fmodelId != null"> | 
|         AND `fmodel`.`ID` = #{fmodelId} | 
|       </if> | 
|       <if test="fmodelDeleted != null"> | 
|         AND `fmodel`.`DELETED` = #{fmodelDeleted} | 
|       </if> | 
|       <if test="fmodelCreateUser != null"> | 
|         AND `fmodel`.`CREATE_USER` = #{fmodelCreateUser} | 
|       </if> | 
|       <if test="fmodelCreateTime != null"> | 
|         AND `fmodel`.`CREATE_TIME` = #{fmodelCreateTime} | 
|       </if> | 
|       <if test="fmodelUpdateUser != null"> | 
|         AND `fmodel`.`UPDATE_USER` = #{fmodelUpdateUser} | 
|       </if> | 
|       <if test="fmodelUpdateTime != null"> | 
|         AND `fmodel`.`UPDATE_TIME` = #{fmodelUpdateTime} | 
|       </if> | 
|       <if test="fmodelName != null and fmodelName != ''"> | 
|         AND `fmodel`.`NAME` = #{fmodelName} | 
|       </if> | 
|       <if test="fmodelRemark != null and fmodelRemark != ''"> | 
|         AND `fmodel`.`REMARK` = #{fmodelRemark} | 
|       </if> | 
|       <if test="fmodelRootId != null"> | 
|         AND `fmodel`.`ROOT_ID` = #{fmodelRootId} | 
|       </if> | 
|       <if test="fmodelParentId != null"> | 
|         AND `fmodel`.`PARENT_ID` = #{fmodelParentId} | 
|       </if> | 
|       <if test="fmodelCompanyId != null"> | 
|         AND `fmodel`.`COMPANY_ID` = #{fmodelCompanyId} | 
|       </if> | 
|       <if test="fmodelType != null"> | 
|         AND `fmodel`.`TYPE` = #{fmodelType} | 
|       </if> | 
|       <if test="fmodelErpId != null and fmodelErpId != ''"> | 
|         AND `fmodel`.`ERP_ID` = #{fmodelErpId} | 
|       </if> | 
|       <if test="fmodelStatus != null"> | 
|         AND `fmodel`.`STATUS` = #{fmodelStatus} | 
|       </if> | 
|       <if test="fmodelValidTime != null"> | 
|         AND `fmodel`.`VALID_TIME` = #{fmodelValidTime} | 
|       </if> | 
|       <if test="fmodelInvalidTime != null"> | 
|         AND `fmodel`.`INVALID_TIME` = #{fmodelInvalidTime} | 
|       </if> | 
|       <if test="tmodelId != null"> | 
|         AND `tmodel`.`ID` = #{tmodelId} | 
|       </if> | 
|       <if test="tmodelDeleted != null"> | 
|         AND `tmodel`.`DELETED` = #{tmodelDeleted} | 
|       </if> | 
|       <if test="tmodelCreateUser != null"> | 
|         AND `tmodel`.`CREATE_USER` = #{tmodelCreateUser} | 
|       </if> | 
|       <if test="tmodelCreateTime != null"> | 
|         AND `tmodel`.`CREATE_TIME` = #{tmodelCreateTime} | 
|       </if> | 
|       <if test="tmodelUpdateUser != null"> | 
|         AND `tmodel`.`UPDATE_USER` = #{tmodelUpdateUser} | 
|       </if> | 
|       <if test="tmodelUpdateTime != null"> | 
|         AND `tmodel`.`UPDATE_TIME` = #{tmodelUpdateTime} | 
|       </if> | 
|       <if test="tmodelDictId != null"> | 
|         AND `tmodel`.`DICT_ID` = #{tmodelDictId} | 
|       </if> | 
|       <if test="tmodelCode != null and tmodelCode != ''"> | 
|         AND `tmodel`.`CODE` = #{tmodelCode} | 
|       </if> | 
|       <if test="tmodelLabel != null and tmodelLabel != ''"> | 
|         AND `tmodel`.`LABEL` = #{tmodelLabel} | 
|       </if> | 
|       <if test="tmodelSort != null"> | 
|         AND `tmodel`.`SORT` = #{tmodelSort} | 
|       </if> | 
|       <if test="tmodelDisabled != null"> | 
|         AND `tmodel`.`DISABLED` = #{tmodelDisabled} | 
|       </if> | 
|       <if test="mmodelId != null"> | 
|         AND `mmodel`.`ID` = #{mmodelId} | 
|       </if> | 
|       <if test="mmodelDeleted != null"> | 
|         AND `mmodel`.`DELETED` = #{mmodelDeleted} | 
|       </if> | 
|       <if test="mmodelCreateUser != null"> | 
|         AND `mmodel`.`CREATE_USER` = #{mmodelCreateUser} | 
|       </if> | 
|       <if test="mmodelCreateTime != null"> | 
|         AND `mmodel`.`CREATE_TIME` = #{mmodelCreateTime} | 
|       </if> | 
|       <if test="mmodelUpdateUser != null"> | 
|         AND `mmodel`.`UPDATE_USER` = #{mmodelUpdateUser} | 
|       </if> | 
|       <if test="mmodelUpdateTime != null"> | 
|         AND `mmodel`.`UPDATE_TIME` = #{mmodelUpdateTime} | 
|       </if> | 
|       <if test="mmodelRemark != null and mmodelRemark != ''"> | 
|         AND `mmodel`.`REMARK` = #{mmodelRemark} | 
|       </if> | 
|       <if test="mmodelRootDepartId != null"> | 
|         AND `mmodel`.`ROOT_DEPART_ID` = #{mmodelRootDepartId} | 
|       </if> | 
|       <if test="mmodelName != null and mmodelName != ''"> | 
|         AND `mmodel`.`NAME` like concat('%', #{mmodelName},'%') | 
|       </if> | 
|       <if test="mmodelCode != null and mmodelCode != ''"> | 
|         AND `mmodel`.`CODE` = #{mmodelCode} | 
|       </if> | 
|       <if test="mmodelAttr != null and mmodelAttr != ''"> | 
|         AND `mmodel`.`ATTR` = #{mmodelAttr} | 
|       </if> | 
|       <if test="mmodelUnionName != null and mmodelUnionName != ''"> | 
|         AND `mmodel`.`UNION_NAME` = #{mmodelUnionName} | 
|       </if> | 
|       <if test="mmodelUnitId != null"> | 
|         AND `mmodel`.`UNIT_ID` = #{mmodelUnitId} | 
|       </if> | 
|       <if test="mmodelCateUnionId != null"> | 
|         AND `mmodel`.`CATE_UNION_ID` = #{mmodelCateUnionId} | 
|       </if> | 
|       <if test="mmodelFormation != null"> | 
|         AND `mmodel`.`FORMATION` = #{mmodelFormation} | 
|       </if> | 
|       <if test="mmodelQrcodeId != null and mmodelQrcodeId != ''"> | 
|         AND `mmodel`.`QRCODE_ID` = #{mmodelQrcodeId} | 
|       </if> | 
|       <if test="mmodelStatus != null"> | 
|         AND `mmodel`.`STATUS` = #{mmodelStatus} | 
|       </if> | 
|       <if test="mmodelValidTime != null"> | 
|         AND `mmodel`.`VALID_TIME` = #{mmodelValidTime} | 
|       </if> | 
|       <if test="mmodelInvalidTime != null"> | 
|         AND `mmodel`.`INVALID_TIME` = #{mmodelInvalidTime} | 
|       </if> | 
|       <if test="mmodelCheckWay != null"> | 
|         AND `mmodel`.`CHECK_WAY` = #{mmodelCheckWay} | 
|       </if> | 
|       <if test="mmodelQualityRequire != null and mmodelQualityRequire != ''"> | 
|         AND `mmodel`.`QUALITY_REQUIRE` = #{mmodelQualityRequire} | 
|       </if> | 
|       <if test="mmodelCheckNote != null and mmodelCheckNote != ''"> | 
|         AND `mmodel`.`CHECK_NOTE` = #{mmodelCheckNote} | 
|       </if> | 
|       <if test="umodelId != null"> | 
|         AND `umodel`.`ID` = #{umodelId} | 
|       </if> | 
|       <if test="umodelDeleted != null"> | 
|         AND `umodel`.`DELETED` = #{umodelDeleted} | 
|       </if> | 
|       <if test="umodelCreateUser != null"> | 
|         AND `umodel`.`CREATE_USER` = #{umodelCreateUser} | 
|       </if> | 
|       <if test="umodelCreateTime != null"> | 
|         AND `umodel`.`CREATE_TIME` = #{umodelCreateTime} | 
|       </if> | 
|       <if test="umodelUpdateUser != null"> | 
|         AND `umodel`.`UPDATE_USER` = #{umodelUpdateUser} | 
|       </if> | 
|       <if test="umodelUpdateTime != null"> | 
|         AND `umodel`.`UPDATE_TIME` = #{umodelUpdateTime} | 
|       </if> | 
|       <if test="umodelRemark != null and umodelRemark != ''"> | 
|         AND `umodel`.`REMARK` = #{umodelRemark} | 
|       </if> | 
|       <if test="umodelRootDepartId != null"> | 
|         AND `umodel`.`ROOT_DEPART_ID` = #{umodelRootDepartId} | 
|       </if> | 
|       <if test="umodelName != null and umodelName != ''"> | 
|         AND `umodel`.`NAME` = #{umodelName} | 
|       </if> | 
|       <if test="umodelType != null"> | 
|         AND `umodel`.`TYPE` = #{umodelType} | 
|       </if> | 
|       <if test="umodelStatus != null"> | 
|         AND `umodel`.`STATUS` = #{umodelStatus} | 
|       </if> | 
|       <if test="pgmodelId != null"> | 
|         AND `pgmodel`.`ID` = #{pgmodelId} | 
|       </if> | 
|       <if test="pgmodelDeleted != null"> | 
|         AND `pgmodel`.`DELETED` = #{pgmodelDeleted} | 
|       </if> | 
|       <if test="pgmodelCreateUser != null"> | 
|         AND `pgmodel`.`CREATE_USER` = #{pgmodelCreateUser} | 
|       </if> | 
|       <if test="pgmodelCreateTime != null"> | 
|         AND `pgmodel`.`CREATE_TIME` = #{pgmodelCreateTime} | 
|       </if> | 
|       <if test="pgmodelUpdateUser != null"> | 
|         AND `pgmodel`.`UPDATE_USER` = #{pgmodelUpdateUser} | 
|       </if> | 
|       <if test="pgmodelUpdateTime != null"> | 
|         AND `pgmodel`.`UPDATE_TIME` = #{pgmodelUpdateTime} | 
|       </if> | 
|       <if test="pgmodelRemark != null and pgmodelRemark != ''"> | 
|         AND `pgmodel`.`REMARK` = #{pgmodelRemark} | 
|       </if> | 
|       <if test="pgmodelRootDepartId != null"> | 
|         AND `pgmodel`.`ROOT_DEPART_ID` = #{pgmodelRootDepartId} | 
|       </if> | 
|       <if test="pgmodelDepartId != null"> | 
|         AND `pgmodel`.`DEPART_ID` = #{pgmodelDepartId} | 
|       </if> | 
|       <if test="pgmodelProcedureId != null"> | 
|         AND `pgmodel`.`PROCEDURE_ID` = #{pgmodelProcedureId} | 
|       </if> | 
|       <if test="pgmodelCode != null"> | 
|         AND `pgmodel`.`CODE` = #{pgmodelCode} | 
|       </if> | 
|       <if test="pgmodelType != null"> | 
|         AND `pgmodel`.`TYPE` = #{pgmodelType} | 
|       </if> | 
|       <if test="pgmodelName != null and pgmodelName != ''"> | 
|         AND `pgmodel`.`NAME` = #{pgmodelName} | 
|       </if> | 
|       <if test="pgmodelModel != null and pgmodelModel != ''"> | 
|         AND `pgmodel`.`MODEL` = #{pgmodelModel} | 
|       </if> | 
|       <if test="pgmodelStatus != null"> | 
|         AND `pgmodel`.`STATUS` = #{pgmodelStatus} | 
|       </if> | 
|       <if test="pgmodelSupplier != null and pgmodelSupplier != ''"> | 
|         AND `pgmodel`.`SUPPLIER` = #{pgmodelSupplier} | 
|       </if> | 
|       <if test="pgmodelStationCode != null and pgmodelStationCode != ''"> | 
|         AND `pgmodel`.`STATION_CODE` = #{pgmodelStationCode} | 
|       </if> | 
|       <if test="pgmodelGroupId != null"> | 
|         AND `pgmodel`.`GROUP_ID` = #{pgmodelGroupId} | 
|       </if> | 
|       <if test="pgmodelSerialNum != null and pgmodelSerialNum != ''"> | 
|         AND `pgmodel`.`SERIAL_NUM` = #{pgmodelSerialNum} | 
|       </if> | 
|           <choose> | 
|             <when test="departIds != null and departIds.size()>0"> | 
|               AND (  `a`.`CREATE_USER` = #{createUser}  or | 
|               exists ( select d.id from workorder_user d where d.WORKORDER_ID=a.id and d.DELETED=0 and d.PRO_USER_ID=#{createUser} ) | 
|               or exists ( select d.id from company_user d where  d.user_id= a.CREATE_USER  and d.department_id | 
|               in <foreach collection="departIds" item="item" separator="," open="(" close=")">#{item}</foreach>) | 
|               or exists (select d.id from workorder_user wu left join  company_user d on wu.PRO_USER_ID=d.USER_ID and d.DELETED=0 where  wu.WORKORDER_ID= a.id  and d.department_id | 
|               in <foreach collection="departIds" item="item" separator="," open="(" close=")">#{item}</foreach>) | 
|               ) | 
|             </when> | 
|             <otherwise> | 
|               <if test="createUser != null"> | 
|                 AND  ( `a`.`CREATE_USER` = #{createUser} or exists (select d.id from workorder_user d where d.WORKORDER_ID=a.id and d.DELETED=0 and d.PRO_USER_ID=#{createUser} )) | 
|               </if> | 
|             </otherwise> | 
|           </choose> | 
|       <if test="startDate != null and startDate!=''"> | 
|         AND `a`.`PLAN_DATE` >= #{startDate} | 
|       </if> | 
|       <if test="endDate != null and endDate!=''"> | 
|         AND   #{endDate} >= `a`.`PLAN_DATE` | 
|       </if> | 
|       <if test="mixParam != null and mixParam!=''"> | 
|         AND  (a.code like concat('%',#{mixParam},'%') or p.name like concat('%',#{mixParam},'%')) | 
|       </if> | 
|     </where> | 
|       order by a.PLAN_DATE desc,a.CREATE_TIME desc,p.SORTNUM asc | 
|   </select> | 
|   <resultMap id="WorkorderExtListVO" type="doumeemes.dao.ext.vo.WorkorderExtListVO" autoMapping="true"> | 
|     <id column="ID" jdbcType="INTEGER" property="id"/> | 
|     <association property="dmodel" javaType="doumeemes.dao.business.model.Department"> | 
|       <id column="DMODEL_ID" jdbcType="INTEGER" property="id"/> | 
|       <result column="DMODEL_DELETED" jdbcType="TINYINT" property="deleted"/> | 
|       <result column="DMODEL_CREATE_USER" jdbcType="INTEGER" property="createUser"/> | 
|       <result column="DMODEL_CREATE_TIME" jdbcType="TIMESTAMP" property="createTime"/> | 
|       <result column="DMODEL_UPDATE_USER" jdbcType="INTEGER" property="updateUser"/> | 
|       <result column="DMODEL_UPDATE_TIME" jdbcType="TIMESTAMP" property="updateTime"/> | 
|       <result column="DMODEL_NAME" jdbcType="VARCHAR" property="name"/> | 
|       <result column="DMODEL_REMARK" jdbcType="VARCHAR" property="remark"/> | 
|       <result column="DMODEL_ROOT_ID" jdbcType="INTEGER" property="rootId"/> | 
|       <result column="DMODEL_PARENT_ID" jdbcType="INTEGER" property="parentId"/> | 
|       <result column="DMODEL_COMPANY_ID" jdbcType="INTEGER" property="companyId"/> | 
|       <result column="DMODEL_TYPE" jdbcType="TINYINT" property="type"/> | 
|       <result column="DMODEL_ERP_ID" jdbcType="VARCHAR" property="erpId"/> | 
|       <result column="DMODEL_STATUS" jdbcType="INTEGER" property="status"/> | 
|       <result column="DMODEL_VALID_TIME" jdbcType="TIMESTAMP" property="validTime"/> | 
|       <result column="DMODEL_INVALID_TIME" jdbcType="TIMESTAMP" property="invalidTime"/> | 
|     </association> | 
|     <association property="pmodel" javaType="doumeemes.dao.business.model.Plans"> | 
|       <id column="PMODEL_ID" jdbcType="INTEGER" property="id"/> | 
|       <result column="PMODEL_DELETED" jdbcType="TINYINT" property="deleted"/> | 
|       <result column="PMODEL_CREATE_USER" jdbcType="INTEGER" property="createUser"/> | 
|       <result column="PMODEL_CREATE_TIME" jdbcType="TIMESTAMP" property="createTime"/> | 
|       <result column="PMODEL_UPDATE_USER" jdbcType="INTEGER" property="updateUser"/> | 
|       <result column="PMODEL_UPDATE_TIME" jdbcType="TIMESTAMP" property="updateTime"/> | 
|       <result column="PMODEL_REMARK" jdbcType="VARCHAR" property="remark"/> | 
|       <result column="PMODEL_ROOT_DEPART_ID" jdbcType="INTEGER" property="rootDepartId"/> | 
|       <result column="PMODEL_DEPART_ID" jdbcType="INTEGER" property="departId"/> | 
|       <result column="PMODEL_ORIGIN" jdbcType="TINYINT" property="origin"/> | 
|       <result column="PMODEL_PLAN_DATE" jdbcType="TIMESTAMP" property="planDate"/> | 
|       <result column="PMODEL_MATERIAL_ID" jdbcType="INTEGER" property="materialId"/> | 
|       <result column="PMODEL_PROCEDURE_ID" jdbcType="INTEGER" property="procedureId"/> | 
|       <result column="PMODEL_FACTORY_ID" jdbcType="INTEGER" property="factoryId"/> | 
|       <result column="PMODEL_UNIT_ID" jdbcType="INTEGER" property="unitId"/> | 
|       <result column="PMODEL_NUM" jdbcType="INTEGER" property="num"/> | 
|       <result column="PMODEL_BATCH" jdbcType="VARCHAR" property="batch"/> | 
|       <result column="PMODEL_URGENT" jdbcType="TINYINT" property="urgent"/> | 
|       <result column="PMODEL_IMPORT_ID" jdbcType="INTEGER" property="importId"/> | 
|       <result column="PMODEL_USER_ID" jdbcType="INTEGER" property="userId"/> | 
|       <result column="PMODEL_STATUS" jdbcType="TINYINT" property="status"/> | 
|       <result column="PMODEL_PUBLISH_DATE" jdbcType="TIMESTAMP" property="publishDate"/> | 
|     </association> | 
|     <association property="fmodel" javaType="doumeemes.dao.business.model.Department"> | 
|       <id column="FMODEL_ID" jdbcType="INTEGER" property="id"/> | 
|       <result column="FMODEL_DELETED" jdbcType="TINYINT" property="deleted"/> | 
|       <result column="FMODEL_CREATE_USER" jdbcType="INTEGER" property="createUser"/> | 
|       <result column="FMODEL_CREATE_TIME" jdbcType="TIMESTAMP" property="createTime"/> | 
|       <result column="FMODEL_UPDATE_USER" jdbcType="INTEGER" property="updateUser"/> | 
|       <result column="FMODEL_UPDATE_TIME" jdbcType="TIMESTAMP" property="updateTime"/> | 
|       <result column="FMODEL_NAME" jdbcType="VARCHAR" property="name"/> | 
|       <result column="FMODEL_REMARK" jdbcType="VARCHAR" property="remark"/> | 
|       <result column="FMODEL_ROOT_ID" jdbcType="INTEGER" property="rootId"/> | 
|       <result column="FMODEL_PARENT_ID" jdbcType="INTEGER" property="parentId"/> | 
|       <result column="FMODEL_COMPANY_ID" jdbcType="INTEGER" property="companyId"/> | 
|       <result column="FMODEL_TYPE" jdbcType="TINYINT" property="type"/> | 
|       <result column="FMODEL_ERP_ID" jdbcType="VARCHAR" property="erpId"/> | 
|       <result column="FMODEL_STATUS" jdbcType="INTEGER" property="status"/> | 
|       <result column="FMODEL_VALID_TIME" jdbcType="TIMESTAMP" property="validTime"/> | 
|       <result column="FMODEL_INVALID_TIME" jdbcType="TIMESTAMP" property="invalidTime"/> | 
|     </association> | 
|     <association property="tmodel" javaType="doumeemes.dao.system.model.SystemDictData"> | 
|       <id column="TMODEL_ID" jdbcType="INTEGER" property="id"/> | 
|       <result column="TMODEL_DELETED" jdbcType="TINYINT" property="deleted"/> | 
|       <result column="TMODEL_CREATE_USER" jdbcType="INTEGER" property="createUser"/> | 
|       <result column="TMODEL_CREATE_TIME" jdbcType="TIMESTAMP" property="createTime"/> | 
|       <result column="TMODEL_UPDATE_USER" jdbcType="INTEGER" property="updateUser"/> | 
|       <result column="TMODEL_UPDATE_TIME" jdbcType="TIMESTAMP" property="updateTime"/> | 
|       <result column="TMODEL_DICT_ID" jdbcType="INTEGER" property="dictId"/> | 
|       <result column="TMODEL_CODE" jdbcType="LONGVARCHAR" property="code"/> | 
|       <result column="TMODEL_LABEL" jdbcType="VARCHAR" property="label"/> | 
|       <result column="TMODEL_SORT" jdbcType="INTEGER" property="sort"/> | 
|       <result column="TMODEL_DISABLED" jdbcType="INTEGER" property="disabled"/> | 
|     </association> | 
|     <association property="mmodel" javaType="doumeemes.dao.business.model.Material"> | 
|       <id column="MMODEL_ID" jdbcType="INTEGER" property="id"/> | 
|       <result column="MMODEL_DELETED" jdbcType="TINYINT" property="deleted"/> | 
|       <result column="MMODEL_CREATE_USER" jdbcType="INTEGER" property="createUser"/> | 
|       <result column="MMODEL_CREATE_TIME" jdbcType="TIMESTAMP" property="createTime"/> | 
|       <result column="MMODEL_UPDATE_USER" jdbcType="INTEGER" property="updateUser"/> | 
|       <result column="MMODEL_UPDATE_TIME" jdbcType="TIMESTAMP" property="updateTime"/> | 
|       <result column="MMODEL_REMARK" jdbcType="VARCHAR" property="remark"/> | 
|       <result column="MMODEL_ROOT_DEPART_ID" jdbcType="INTEGER" property="rootDepartId"/> | 
|       <result column="MMODEL_NAME" jdbcType="VARCHAR" property="name"/> | 
|       <result column="MMODEL_CODE" jdbcType="VARCHAR" property="code"/> | 
|       <result column="MMODEL_ATTR" jdbcType="VARCHAR" property="attr"/> | 
|       <result column="MMODEL_UNION_NAME" jdbcType="VARCHAR" property="unionName"/> | 
|       <result column="MMODEL_UNIT_ID" jdbcType="INTEGER" property="unitId"/> | 
|       <result column="MMODEL_CATE_UNION_ID" jdbcType="INTEGER" property="cateUnionId"/> | 
|       <result column="MMODEL_FORMATION" jdbcType="TINYINT" property="formation"/> | 
|       <result column="MMODEL_QRCODE_ID" jdbcType="VARCHAR" property="qrcodeId"/> | 
|       <result column="MMODEL_STATUS" jdbcType="TINYINT" property="status"/> | 
|       <result column="MMODEL_VALID_TIME" jdbcType="TIMESTAMP" property="validTime"/> | 
|       <result column="MMODEL_INVALID_TIME" jdbcType="TIMESTAMP" property="invalidTime"/> | 
|       <result column="MMODEL_CHECK_WAY" jdbcType="TINYINT" property="checkWay"/> | 
|       <result column="MMODEL_QUALITY_REQUIRE" jdbcType="VARCHAR" property="qualityRequire"/> | 
|       <result column="MMODEL_CHECK_NOTE" jdbcType="VARCHAR" property="checkNote"/> | 
|     </association> | 
|     <association property="umodel" javaType="doumeemes.dao.business.model.Unit"> | 
|       <id column="UMODEL_ID" jdbcType="INTEGER" property="id"/> | 
|       <result column="UMODEL_DELETED" jdbcType="TINYINT" property="deleted"/> | 
|       <result column="UMODEL_CREATE_USER" jdbcType="INTEGER" property="createUser"/> | 
|       <result column="UMODEL_CREATE_TIME" jdbcType="TIMESTAMP" property="createTime"/> | 
|       <result column="UMODEL_UPDATE_USER" jdbcType="INTEGER" property="updateUser"/> | 
|       <result column="UMODEL_UPDATE_TIME" jdbcType="TIMESTAMP" property="updateTime"/> | 
|       <result column="UMODEL_ATTRIBUTE_DATA" jdbcType="INTEGER" property="attributeData"/> | 
|       <result column="UMODEL_REMARK" jdbcType="VARCHAR" property="remark"/> | 
|       <result column="UMODEL_ROOT_DEPART_ID" jdbcType="INTEGER" property="rootDepartId"/> | 
|       <result column="UMODEL_NAME" jdbcType="VARCHAR" property="name"/> | 
|       <result column="UMODEL_TYPE" jdbcType="TINYINT" property="type"/> | 
|       <result column="UMODEL_STATUS" jdbcType="TINYINT" property="status"/> | 
|     </association> | 
|     <association property="pgmodel" javaType="doumeemes.dao.business.model.Device"> | 
|       <id column="PGMODEL_ID" jdbcType="INTEGER" property="id"/> | 
|       <result column="PGMODEL_DELETED" jdbcType="TINYINT" property="deleted"/> | 
|       <result column="PGMODEL_CREATE_USER" jdbcType="INTEGER" property="createUser"/> | 
|       <result column="PGMODEL_CREATE_TIME" jdbcType="TIMESTAMP" property="createTime"/> | 
|       <result column="PGMODEL_UPDATE_USER" jdbcType="INTEGER" property="updateUser"/> | 
|       <result column="PGMODEL_UPDATE_TIME" jdbcType="TIMESTAMP" property="updateTime"/> | 
|       <result column="PGMODEL_REMARK" jdbcType="VARCHAR" property="remark"/> | 
|       <result column="PGMODEL_ROOT_DEPART_ID" jdbcType="INTEGER" property="rootDepartId"/> | 
|       <result column="PGMODEL_DEPART_ID" jdbcType="INTEGER" property="departId"/> | 
|       <result column="PGMODEL_PROCEDURE_ID" jdbcType="INTEGER" property="procedureId"/> | 
|       <result column="PGMODEL_CODE" jdbcType="INTEGER" property="code"/> | 
|       <result column="PGMODEL_TYPE" jdbcType="TINYINT" property="type"/> | 
|       <result column="PGMODEL_NAME" jdbcType="VARCHAR" property="name"/> | 
|       <result column="PGMODEL_MODEL" jdbcType="VARCHAR" property="model"/> | 
|       <result column="PGMODEL_STATUS" jdbcType="TINYINT" property="status"/> | 
|       <result column="PGMODEL_SUPPLIER" jdbcType="VARCHAR" property="supplier"/> | 
|       <result column="PGMODEL_STATION_CODE" jdbcType="VARCHAR" property="stationCode"/> | 
|       <result column="PGMODEL_GROUP_ID" jdbcType="INTEGER" property="groupId"/> | 
|       <result column="PGMODEL_SERIAL_NUM" jdbcType="VARCHAR" property="serialNum"/> | 
|     </association> | 
|   </resultMap> | 
|   <select id="selectOne" parameterType="doumeemes.dao.business.model.Workorder" resultType="doumeemes.dao.business.model.Workorder"> | 
|   SELECT | 
|   `a`.*,c.needcheck,c.`ISCALCULATE` as  iscalculate,ifnull(p.num,0) as totalPlanNum, | 
|   `pgmodel`.`PRODUCE_WAREHOUSE_LOCATION_ID` AS produceWarehouseLocationId, | 
|   `pgmodel`.`FINISH_WAREHOUSE_LOCATION_ID` AS finishWarehouseLocationId, | 
|    w. `WAREHOUSE_ID` as produceWarehouseId, | 
|    f. `WAREHOUSE_ID` as finishWarehouseId | 
|   <if test="queryFlag !=null and queryFlag ==1"> | 
|     ,(select sum(b.num) from workorder_record b where b.deleted=0 and b.type=0 and b.workorder_id=a.id) as hasMaterialNum | 
|     ,(select sum(b.num) from workorder_record b where b.deleted=0 and b.type=1 and b.workorder_id=a.id)  as hasProduceNum | 
|     ,(select sum(b.`UNQUALIFIED_NUM`) from workorder_check b where b.deleted=0 and b.workorder_id=a.id)  as hasUnqulifiedNum | 
|   </if> | 
|   FROM `workorder` `a` | 
|   LEFT JOIN `device` `pgmodel` ON a.PRO_GROUP_ID=pgmodel.ID | 
|   LEFT JOIN `procedures` c ON `a`.`PROCEDURE_ID`=c.ID | 
|   LEFT JOIN `plans` p ON `a`.`PLAN_ID`=p.ID | 
|   LEFT JOIN `warehouse_location` w ON `pgmodel`.`PRODUCE_WAREHOUSE_LOCATION_ID`=w.ID | 
|   LEFT JOIN `warehouse_location` f ON `pgmodel`.`FINISH_WAREHOUSE_LOCATION_ID`=f.ID | 
|     <where> | 
|     <if test="id != null"> | 
|       AND `a`.`ID` = #{id} | 
|     </if> | 
|     <if test="deleted != null"> | 
|       AND `a`.`DELETED` = #{deleted} | 
|     </if> | 
|     <if test="createUser != null"> | 
|       AND `a`.`CREATE_USER` = #{createUser} | 
|     </if> | 
|     <if test="createTime != null"> | 
|       AND `a`.`CREATE_TIME` = #{createTime} | 
|     </if> | 
|     <if test="paused != null"> | 
|       AND `a`.`PAUSED` = #{paused} | 
|     </if> | 
|     <if test="updateUser != null"> | 
|       AND `a`.`UPDATE_USER` = #{updateUser} | 
|     </if> | 
|     <if test="updateTime != null"> | 
|       AND `a`.`UPDATE_TIME` = #{updateTime} | 
|     </if> | 
|     <if test="remark != null and remark != ''"> | 
|       AND `a`.`REMARK` = #{remark} | 
|     </if> | 
|     <if test="type != null and type != ''"> | 
|       AND `a`.`TYPE` = #{type} | 
|     </if> | 
|     <if test="rootDepartId != null"> | 
|       AND `a`.`ROOT_DEPART_ID` = #{rootDepartId} | 
|     </if> | 
|     <if test="departId != null"> | 
|       AND `a`.`DEPART_ID` = #{departId} | 
|     </if> | 
|     <if test="planId != null"> | 
|       AND `a`.`PLAN_ID` = #{planId} | 
|     </if> | 
|     <if test="factoryId != null"> | 
|       AND `a`.`FACTORY_ID` = #{factoryId} | 
|     </if> | 
|     <if test="procedureId != null"> | 
|       AND `a`.`PROCEDURE_ID` = #{procedureId} | 
|     </if> | 
|     <if test="code != null and code != ''"> | 
|       AND `a`.`CODE` = #{code} | 
|     </if> | 
|     <if test="originWorkorderId != null"> | 
|       AND `a`.`ORIGIN_WORKORDER_ID` = #{originWorkorderId} | 
|     </if> | 
|     <if test="typeId != null"> | 
|       AND `a`.`TYPE_ID` = #{typeId} | 
|     </if> | 
|     <if test="originId != null"> | 
|       AND `a`.`ORIGIN_ID` = #{originId} | 
|     </if> | 
|     <if test="planDate != null"> | 
|       AND `a`.`PLAN_DATE` = #{planDate} | 
|     </if> | 
|     <if test="planNum != null"> | 
|       AND `a`.`PLAN_NUM` = #{planNum} | 
|     </if> | 
|     <if test="materialId != null"> | 
|       AND `a`.`MATERIAL_ID` = #{materialId} | 
|     </if> | 
|     <if test="unitId != null"> | 
|       AND `a`.`UNIT_ID` = #{unitId} | 
|     </if> | 
|     <if test="batch != null and batch != ''"> | 
|       AND `a`.`BATCH` = #{batch} | 
|     </if> | 
|     <if test="proUserId != null"> | 
|       AND `a`.`PRO_USER_ID` = #{proUserId} | 
|     </if> | 
|     <if test="proGroupId != null"> | 
|       AND `a`.`PRO_GROUP_ID` = #{proGroupId} | 
|     </if> | 
|     <if test="qualifiedNum != null"> | 
|       AND `a`.`QUALIFIED_NUM` = #{qualifiedNum} | 
|     </if> | 
|     <if test="unqualifiedNum != null"> | 
|       AND `a`.`UNQUALIFIED_NUM` = #{unqualifiedNum} | 
|     </if> | 
|     <if test="checkUserId != null"> | 
|       AND `a`.`CHECK_USER_ID` = #{checkUserId} | 
|     </if> | 
|     <if test="status != null"> | 
|       AND `a`.`STATUS` = #{status} | 
|     </if> | 
|     <if test="lastDealDate != null"> | 
|       AND `a`.`LAST_DEAL_DATE` = #{lastDealDate} | 
|     </if> | 
|     <if test="lastDealInfo != null and lastDealInfo != ''"> | 
|       AND `a`.`LAST_DEAL_INFO` = #{lastDealInfo} | 
|     </if> | 
|     <if test="urgent != null"> | 
|       AND `a`.`URGENT` = #{urgent} | 
|     </if> | 
|       <if test="backorderId != null"> | 
|         AND `a`.`BACKORDER_ID` = #{backorderId} | 
|       </if> | 
|     </where> | 
|   </select> | 
|   <select id="selectByModel" parameterType="doumeemes.dao.ext.dto.QueryWorkorderExtDTO" resultMap="WorkorderExtListVO"> | 
|     SELECT | 
|       `a`.*, | 
|       p.name as procedureName, | 
|       p.needcheck as procedureNeedcheck, | 
|       u.realname as proUserName, | 
|       cu.realname as userName, | 
|       `dmodel`.`ID` AS DMODEL_ID, | 
|       `dmodel`.`DELETED` AS DMODEL_DELETED, | 
|       `dmodel`.`CREATE_USER` AS DMODEL_CREATE_USER, | 
|       `dmodel`.`CREATE_TIME` AS DMODEL_CREATE_TIME, | 
|       `dmodel`.`UPDATE_USER` AS DMODEL_UPDATE_USER, | 
|       `dmodel`.`UPDATE_TIME` AS DMODEL_UPDATE_TIME, | 
|       `dmodel`.`NAME` AS DMODEL_NAME, | 
|       `dmodel`.`REMARK` AS DMODEL_REMARK, | 
|       `dmodel`.`ROOT_ID` AS DMODEL_ROOT_ID, | 
|       `dmodel`.`PARENT_ID` AS DMODEL_PARENT_ID, | 
|       `dmodel`.`COMPANY_ID` AS DMODEL_COMPANY_ID, | 
|       `dmodel`.`TYPE` AS DMODEL_TYPE, | 
|       `dmodel`.`ERP_ID` AS DMODEL_ERP_ID, | 
|       `dmodel`.`STATUS` AS DMODEL_STATUS, | 
|       `dmodel`.`VALID_TIME` AS DMODEL_VALID_TIME, | 
|       `dmodel`.`INVALID_TIME` AS DMODEL_INVALID_TIME, | 
|       `pmodel`.`ID` AS PMODEL_ID, | 
|       `pmodel`.`DELETED` AS PMODEL_DELETED, | 
|       `pmodel`.`CREATE_USER` AS PMODEL_CREATE_USER, | 
|       `pmodel`.`CREATE_TIME` AS PMODEL_CREATE_TIME, | 
|       `pmodel`.`UPDATE_USER` AS PMODEL_UPDATE_USER, | 
|       `pmodel`.`UPDATE_TIME` AS PMODEL_UPDATE_TIME, | 
|       `pmodel`.`REMARK` AS PMODEL_REMARK, | 
|       `pmodel`.`ROOT_DEPART_ID` AS PMODEL_ROOT_DEPART_ID, | 
|       `pmodel`.`DEPART_ID` AS PMODEL_DEPART_ID, | 
|       `pmodel`.`ORIGIN` AS PMODEL_ORIGIN, | 
|       `pmodel`.`PLAN_DATE` AS PMODEL_PLAN_DATE, | 
|       `pmodel`.`MATERIAL_ID` AS PMODEL_MATERIAL_ID, | 
|       `pmodel`.`PROCEDURE_ID` AS PMODEL_PROCEDURE_ID, | 
|       `pmodel`.`FACTORY_ID` AS PMODEL_FACTORY_ID, | 
|       `pmodel`.`UNIT_ID` AS PMODEL_UNIT_ID, | 
|       `pmodel`.`NUM` AS PMODEL_NUM, | 
|       `pmodel`.`BATCH` AS PMODEL_BATCH, | 
|       `pmodel`.`URGENT` AS PMODEL_URGENT, | 
|       `pmodel`.`IMPORT_ID` AS PMODEL_IMPORT_ID, | 
|       `pmodel`.`USER_ID` AS PMODEL_USER_ID, | 
|       `pmodel`.`STATUS` AS PMODEL_STATUS, | 
|       `pmodel`.`PUBLISH_DATE` AS PMODEL_PUBLISH_DATE, | 
|       `fmodel`.`ID` AS FMODEL_ID, | 
|       `fmodel`.`DELETED` AS FMODEL_DELETED, | 
|       `fmodel`.`CREATE_USER` AS FMODEL_CREATE_USER, | 
|       `fmodel`.`CREATE_TIME` AS FMODEL_CREATE_TIME, | 
|       `fmodel`.`UPDATE_USER` AS FMODEL_UPDATE_USER, | 
|       `fmodel`.`UPDATE_TIME` AS FMODEL_UPDATE_TIME, | 
|       `fmodel`.`NAME` AS FMODEL_NAME, | 
|       `fmodel`.`REMARK` AS FMODEL_REMARK, | 
|       `fmodel`.`ROOT_ID` AS FMODEL_ROOT_ID, | 
|       `fmodel`.`PARENT_ID` AS FMODEL_PARENT_ID, | 
|       `fmodel`.`COMPANY_ID` AS FMODEL_COMPANY_ID, | 
|       `fmodel`.`TYPE` AS FMODEL_TYPE, | 
|       `fmodel`.`ERP_ID` AS FMODEL_ERP_ID, | 
|       `fmodel`.`STATUS` AS FMODEL_STATUS, | 
|       `fmodel`.`VALID_TIME` AS FMODEL_VALID_TIME, | 
|       `fmodel`.`INVALID_TIME` AS FMODEL_INVALID_TIME, | 
|       `tmodel`.`ID` AS TMODEL_ID, | 
|       `tmodel`.`DELETED` AS TMODEL_DELETED, | 
|       `tmodel`.`CREATE_USER` AS TMODEL_CREATE_USER, | 
|       `tmodel`.`CREATE_TIME` AS TMODEL_CREATE_TIME, | 
|       `tmodel`.`UPDATE_USER` AS TMODEL_UPDATE_USER, | 
|       `tmodel`.`UPDATE_TIME` AS TMODEL_UPDATE_TIME, | 
|       `tmodel`.`DICT_ID` AS TMODEL_DICT_ID, | 
|       `tmodel`.`CODE` AS TMODEL_CODE, | 
|       `tmodel`.`LABEL` AS TMODEL_LABEL, | 
|       `tmodel`.`SORT` AS TMODEL_SORT, | 
|       `tmodel`.`DISABLED` AS TMODEL_DISABLED, | 
|       `mmodel`.`ID` AS MMODEL_ID, | 
|       `mmodel`.`DELETED` AS MMODEL_DELETED, | 
|       `mmodel`.`CREATE_USER` AS MMODEL_CREATE_USER, | 
|       `mmodel`.`CREATE_TIME` AS MMODEL_CREATE_TIME, | 
|       `mmodel`.`UPDATE_USER` AS MMODEL_UPDATE_USER, | 
|       `mmodel`.`UPDATE_TIME` AS MMODEL_UPDATE_TIME, | 
|       `mmodel`.`REMARK` AS MMODEL_REMARK, | 
|       `mmodel`.`ROOT_DEPART_ID` AS MMODEL_ROOT_DEPART_ID, | 
|       `mmodel`.`NAME` AS MMODEL_NAME, | 
|       `mmodel`.`CODE` AS MMODEL_CODE, | 
|       `mmodel`.`ATTR` AS MMODEL_ATTR, | 
|       `mmodel`.`UNION_NAME` AS MMODEL_UNION_NAME, | 
|       `mmodel`.`UNIT_ID` AS MMODEL_UNIT_ID, | 
|       `mmodel`.`CATE_UNION_ID` AS MMODEL_CATE_UNION_ID, | 
|       `mmodel`.`FORMATION` AS MMODEL_FORMATION, | 
|       `mmodel`.`QRCODE_ID` AS MMODEL_QRCODE_ID, | 
|       `mmodel`.`STATUS` AS MMODEL_STATUS, | 
|       `mmodel`.`VALID_TIME` AS MMODEL_VALID_TIME, | 
|       `mmodel`.`INVALID_TIME` AS MMODEL_INVALID_TIME, | 
|       `mmodel`.`CHECK_WAY` AS MMODEL_CHECK_WAY, | 
|       `mmodel`.`QUALITY_REQUIRE` AS MMODEL_QUALITY_REQUIRE, | 
|       `mmodel`.`CHECK_NOTE` AS MMODEL_CHECK_NOTE, | 
|       `umodel`.`ID` AS UMODEL_ID, | 
|       `umodel`.`DELETED` AS UMODEL_DELETED, | 
|       `umodel`.`CREATE_USER` AS UMODEL_CREATE_USER, | 
|       `umodel`.`CREATE_TIME` AS UMODEL_CREATE_TIME, | 
|       `umodel`.`UPDATE_USER` AS UMODEL_UPDATE_USER, | 
|       `umodel`.`UPDATE_TIME` AS UMODEL_UPDATE_TIME, | 
|       `umodel`.`ATTRIBUTE_DATA` AS UMODEL_ATTRIBUTE_DATA, | 
|       `umodel`.`REMARK` AS UMODEL_REMARK, | 
|       `umodel`.`ROOT_DEPART_ID` AS UMODEL_ROOT_DEPART_ID, | 
|       `umodel`.`NAME` AS UMODEL_NAME, | 
|       `umodel`.`TYPE` AS UMODEL_TYPE, | 
|       `umodel`.`STATUS` AS UMODEL_STATUS, | 
|       `pgmodel`.`ID` AS PGMODEL_ID, | 
|       `pgmodel`.`DELETED` AS PGMODEL_DELETED, | 
|       `pgmodel`.`CREATE_USER` AS PGMODEL_CREATE_USER, | 
|       `pgmodel`.`CREATE_TIME` AS PGMODEL_CREATE_TIME, | 
|       `pgmodel`.`UPDATE_USER` AS PGMODEL_UPDATE_USER, | 
|       `pgmodel`.`UPDATE_TIME` AS PGMODEL_UPDATE_TIME, | 
|       `pgmodel`.`REMARK` AS PGMODEL_REMARK, | 
|       `pgmodel`.`ROOT_DEPART_ID` AS PGMODEL_ROOT_DEPART_ID, | 
|       `pgmodel`.`DEPART_ID` AS PGMODEL_DEPART_ID, | 
|       `pgmodel`.`PROCEDURE_ID` AS PGMODEL_PROCEDURE_ID, | 
|       `pgmodel`.`CODE` AS PGMODEL_CODE, | 
|       `pgmodel`.`TYPE` AS PGMODEL_TYPE, | 
|       `pgmodel`.`NAME` AS PGMODEL_NAME, | 
|       `pgmodel`.`MODEL` AS PGMODEL_MODEL, | 
|       `pgmodel`.`STATUS` AS PGMODEL_STATUS, | 
|       `pgmodel`.`SUPPLIER` AS PGMODEL_SUPPLIER, | 
|       `pgmodel`.`STATION_CODE` AS PGMODEL_STATION_CODE, | 
|       `pgmodel`.`GROUP_ID` AS PGMODEL_GROUP_ID, | 
|       `pgmodel`.`SERIAL_NUM` AS PGMODEL_SERIAL_NUM, | 
|       `pgmodel`.`PRODUCE_WAREHOUSE_LOCATION_ID` AS PGMODEL_PRODUCE_WAREHOUSE_LOCATION_ID, | 
|       p.`ISCALCULATE` as  iscalculate, | 
|       (select sum(ifnull(num,0)) from workorder_record r where r.deleted=0 and r.type=1 and r.workorder_id=a.id) as proNum | 
|     FROM `workorder` `a` | 
|     LEFT JOIN `department` `dmodel` ON a.DEPART_ID=dmodel.ID | 
|     LEFT JOIN `plans` `pmodel` ON a.PLAN_ID=pmodel.ID | 
|     LEFT JOIN `department` `fmodel` ON a.FACTORY_ID=fmodel.ID | 
|     LEFT JOIN `system_dict_data` `tmodel` ON a.TYPE_ID=tmodel.ID | 
|     LEFT JOIN `material_distribute` `mdmodel` ON a.MATERIAL_ID=mdmodel.ID | 
|     LEFT JOIN `material` `mmodel` ON mdmodel.MATERIAL_ID=mmodel.ID | 
|     LEFT JOIN `unit` `umodel` ON a.UNIT_ID=umodel.ID | 
|     LEFT JOIN `device` `pgmodel` ON a.PRO_GROUP_ID=pgmodel.ID | 
|     LEFT JOIN `procedures` `p` ON a.`PROCEDURE_ID`=p.ID | 
|     LEFT JOIN `system_user` `u` ON `a`.`PRO_USER_ID`=u.ID | 
|     LEFT JOIN `system_user` `cu` ON `a`.`CREATE_USER`=cu.ID | 
|     <where> | 
|       <if test="id != null"> | 
|         AND `a`.`ID` = #{id} | 
|       </if> | 
|       <if test="deleted != null"> | 
|         AND `a`.`DELETED` = #{deleted} | 
|       </if> | 
|       <if test="createUser != null"> | 
|         AND `a`.`CREATE_USER` = #{createUser} | 
|       </if> | 
|       <if test="createTime != null"> | 
|         AND `a`.`CREATE_TIME` = #{createTime} | 
|       </if> | 
|       <if test="paused != null"> | 
|         AND `a`.`PAUSED` = #{paused} | 
|       </if> | 
|       <if test="updateUser != null"> | 
|         AND `a`.`UPDATE_USER` = #{updateUser} | 
|       </if> | 
|       <if test="updateTime != null"> | 
|         AND `a`.`UPDATE_TIME` = #{updateTime} | 
|       </if> | 
|       <if test="remark != null and remark != ''"> | 
|         AND `a`.`REMARK` = #{remark} | 
|       </if> | 
|       <if test="type != null and type != ''"> | 
|         AND `a`.`TYPE` = #{type} | 
|       </if> | 
|       <if test="rootDepartId != null"> | 
|         AND `a`.`ROOT_DEPART_ID` = #{rootDepartId} | 
|       </if> | 
|       <if test="departId != null"> | 
|         AND `a`.`DEPART_ID` = #{departId} | 
|       </if> | 
|       <if test="planId != null"> | 
|         AND `a`.`PLAN_ID` = #{planId} | 
|       </if> | 
|       <if test="factoryId != null"> | 
|         AND `a`.`FACTORY_ID` = #{factoryId} | 
|       </if> | 
|       <if test="procedureId != null"> | 
|         AND `a`.`PROCEDURE_ID` = #{procedureId} | 
|       </if> | 
|       <if test="code != null and code != ''"> | 
|         AND `a`.`CODE` = #{code} | 
|       </if> | 
|       <if test="originWorkorderId != null"> | 
|         AND `a`.`ORIGIN_WORKORDER_ID` = #{originWorkorderId} | 
|       </if> | 
|       <if test="typeId != null"> | 
|         AND `a`.`TYPE_ID` = #{typeId} | 
|       </if> | 
|       <if test="originId != null"> | 
|         AND `a`.`ORIGIN_ID` = #{originId} | 
|       </if> | 
|       <if test="planDate != null"> | 
|         AND `a`.`PLAN_DATE` = #{planDate} | 
|       </if> | 
|       <if test="planNum != null"> | 
|         AND `a`.`PLAN_NUM` = #{planNum} | 
|       </if> | 
|       <if test="materialId != null"> | 
|         AND `a`.`MATERIAL_ID` = #{materialId} | 
|       </if> | 
|       <if test="unitId != null"> | 
|         AND `a`.`UNIT_ID` = #{unitId} | 
|       </if> | 
|       <if test="batch != null and batch != ''"> | 
|         AND `a`.`BATCH` = #{batch} | 
|       </if> | 
|       <if test="proUserId != null"> | 
|         AND `a`.`PRO_USER_ID` = #{proUserId} | 
|       </if> | 
|       <if test="proGroupId != null"> | 
|         AND `a`.`PRO_GROUP_ID` = #{proGroupId} | 
|       </if> | 
|       <if test="qualifiedNum != null"> | 
|         AND `a`.`QUALIFIED_NUM` = #{qualifiedNum} | 
|       </if> | 
|       <if test="unqualifiedNum != null"> | 
|         AND `a`.`UNQUALIFIED_NUM` = #{unqualifiedNum} | 
|       </if> | 
|       <if test="checkUserId != null"> | 
|         AND `a`.`CHECK_USER_ID` = #{checkUserId} | 
|       </if> | 
|       <if test="status != null"> | 
|         AND `a`.`STATUS` = #{status} | 
|       </if> | 
|       <if test="lastDealDate != null"> | 
|         AND `a`.`LAST_DEAL_DATE` = #{lastDealDate} | 
|       </if> | 
|       <if test="lastDealInfo != null and lastDealInfo != ''"> | 
|         AND `a`.`LAST_DEAL_INFO` = #{lastDealInfo} | 
|       </if> | 
|       <if test="urgent != null"> | 
|         AND `a`.`URGENT` = #{urgent} | 
|       </if> | 
|       <if test="backorderId != null"> | 
|         AND `a`.`BACKORDER_ID` = #{backorderId} | 
|       </if> | 
|       <if test="dmodelId != null"> | 
|         AND `dmodel`.`ID` = #{dmodelId} | 
|       </if> | 
|       <if test="dmodelDeleted != null"> | 
|         AND `dmodel`.`DELETED` = #{dmodelDeleted} | 
|       </if> | 
|       <if test="dmodelCreateUser != null"> | 
|         AND `dmodel`.`CREATE_USER` = #{dmodelCreateUser} | 
|       </if> | 
|       <if test="dmodelCreateTime != null"> | 
|         AND `dmodel`.`CREATE_TIME` = #{dmodelCreateTime} | 
|       </if> | 
|       <if test="dmodelUpdateUser != null"> | 
|         AND `dmodel`.`UPDATE_USER` = #{dmodelUpdateUser} | 
|       </if> | 
|       <if test="dmodelUpdateTime != null"> | 
|         AND `dmodel`.`UPDATE_TIME` = #{dmodelUpdateTime} | 
|       </if> | 
|       <if test="dmodelName != null and dmodelName != ''"> | 
|         AND `dmodel`.`NAME` = #{dmodelName} | 
|       </if> | 
|       <if test="dmodelRemark != null and dmodelRemark != ''"> | 
|         AND `dmodel`.`REMARK` = #{dmodelRemark} | 
|       </if> | 
|       <if test="dmodelRootId != null"> | 
|         AND `dmodel`.`ROOT_ID` = #{dmodelRootId} | 
|       </if> | 
|       <if test="dmodelParentId != null"> | 
|         AND `dmodel`.`PARENT_ID` = #{dmodelParentId} | 
|       </if> | 
|       <if test="dmodelCompanyId != null"> | 
|         AND `dmodel`.`COMPANY_ID` = #{dmodelCompanyId} | 
|       </if> | 
|       <if test="dmodelType != null"> | 
|         AND `dmodel`.`TYPE` = #{dmodelType} | 
|       </if> | 
|       <if test="dmodelErpId != null and dmodelErpId != ''"> | 
|         AND `dmodel`.`ERP_ID` = #{dmodelErpId} | 
|       </if> | 
|       <if test="dmodelStatus != null"> | 
|         AND `dmodel`.`STATUS` = #{dmodelStatus} | 
|       </if> | 
|       <if test="dmodelValidTime != null"> | 
|         AND `dmodel`.`VALID_TIME` = #{dmodelValidTime} | 
|       </if> | 
|       <if test="dmodelInvalidTime != null"> | 
|         AND `dmodel`.`INVALID_TIME` = #{dmodelInvalidTime} | 
|       </if> | 
|       <if test="pmodelId != null"> | 
|         AND `pmodel`.`ID` = #{pmodelId} | 
|       </if> | 
|       <if test="pmodelDeleted != null"> | 
|         AND `pmodel`.`DELETED` = #{pmodelDeleted} | 
|       </if> | 
|       <if test="pmodelCreateUser != null"> | 
|         AND `pmodel`.`CREATE_USER` = #{pmodelCreateUser} | 
|       </if> | 
|       <if test="pmodelCreateTime != null"> | 
|         AND `pmodel`.`CREATE_TIME` = #{pmodelCreateTime} | 
|       </if> | 
|       <if test="pmodelUpdateUser != null"> | 
|         AND `pmodel`.`UPDATE_USER` = #{pmodelUpdateUser} | 
|       </if> | 
|       <if test="pmodelUpdateTime != null"> | 
|         AND `pmodel`.`UPDATE_TIME` = #{pmodelUpdateTime} | 
|       </if> | 
|       <if test="pmodelRemark != null and pmodelRemark != ''"> | 
|         AND `pmodel`.`REMARK` = #{pmodelRemark} | 
|       </if> | 
|       <if test="pmodelRootDepartId != null"> | 
|         AND `pmodel`.`ROOT_DEPART_ID` = #{pmodelRootDepartId} | 
|       </if> | 
|       <if test="pmodelDepartId != null"> | 
|         AND `pmodel`.`DEPART_ID` = #{pmodelDepartId} | 
|       </if> | 
|       <if test="pmodelOrigin != null"> | 
|         AND `pmodel`.`ORIGIN` = #{pmodelOrigin} | 
|       </if> | 
|       <if test="pmodelPlanDate != null"> | 
|         AND `pmodel`.`PLAN_DATE` = #{pmodelPlanDate} | 
|       </if> | 
|       <if test="pmodelMaterialId != null"> | 
|         AND `pmodel`.`MATERIAL_ID` = #{pmodelMaterialId} | 
|       </if> | 
|       <if test="pmodelProcedureId != null"> | 
|         AND `pmodel`.`PROCEDURE_ID` = #{pmodelProcedureId} | 
|       </if> | 
|       <if test="pmodelFactoryId != null"> | 
|         AND `pmodel`.`FACTORY_ID` = #{pmodelFactoryId} | 
|       </if> | 
|       <if test="pmodelUnitId != null"> | 
|         AND `pmodel`.`UNIT_ID` = #{pmodelUnitId} | 
|       </if> | 
|       <if test="pmodelNum != null"> | 
|         AND `pmodel`.`NUM` = #{pmodelNum} | 
|       </if> | 
|       <if test="pmodelBatch != null and pmodelBatch != ''"> | 
|         AND `pmodel`.`BATCH` = #{pmodelBatch} | 
|       </if> | 
|       <if test="pmodelUrgent != null"> | 
|         AND `pmodel`.`URGENT` = #{pmodelUrgent} | 
|       </if> | 
|       <if test="pmodelImportId != null"> | 
|         AND `pmodel`.`IMPORT_ID` = #{pmodelImportId} | 
|       </if> | 
|       <if test="pmodelUserId != null"> | 
|         AND `pmodel`.`USER_ID` = #{pmodelUserId} | 
|       </if> | 
|       <if test="pmodelStatus != null"> | 
|         AND `pmodel`.`STATUS` = #{pmodelStatus} | 
|       </if> | 
|       <if test="pmodelPublishDate != null"> | 
|         AND `pmodel`.`PUBLISH_DATE` = #{pmodelPublishDate} | 
|       </if> | 
|       <if test="fmodelId != null"> | 
|         AND `fmodel`.`ID` = #{fmodelId} | 
|       </if> | 
|       <if test="fmodelDeleted != null"> | 
|         AND `fmodel`.`DELETED` = #{fmodelDeleted} | 
|       </if> | 
|       <if test="fmodelCreateUser != null"> | 
|         AND `fmodel`.`CREATE_USER` = #{fmodelCreateUser} | 
|       </if> | 
|       <if test="fmodelCreateTime != null"> | 
|         AND `fmodel`.`CREATE_TIME` = #{fmodelCreateTime} | 
|       </if> | 
|       <if test="fmodelUpdateUser != null"> | 
|         AND `fmodel`.`UPDATE_USER` = #{fmodelUpdateUser} | 
|       </if> | 
|       <if test="fmodelUpdateTime != null"> | 
|         AND `fmodel`.`UPDATE_TIME` = #{fmodelUpdateTime} | 
|       </if> | 
|       <if test="fmodelName != null and fmodelName != ''"> | 
|         AND `fmodel`.`NAME` = #{fmodelName} | 
|       </if> | 
|       <if test="fmodelRemark != null and fmodelRemark != ''"> | 
|         AND `fmodel`.`REMARK` = #{fmodelRemark} | 
|       </if> | 
|       <if test="fmodelRootId != null"> | 
|         AND `fmodel`.`ROOT_ID` = #{fmodelRootId} | 
|       </if> | 
|       <if test="fmodelParentId != null"> | 
|         AND `fmodel`.`PARENT_ID` = #{fmodelParentId} | 
|       </if> | 
|       <if test="fmodelCompanyId != null"> | 
|         AND `fmodel`.`COMPANY_ID` = #{fmodelCompanyId} | 
|       </if> | 
|       <if test="fmodelType != null"> | 
|         AND `fmodel`.`TYPE` = #{fmodel | 
|   | 
|       </if> | 
|       <if test="fmodelErpId != null and fmodelErpId != ''"> | 
|         AND `fmodel`.`ERP_ID` = #{fmodelErpId} | 
|       </if> | 
|       <if test="fmodelStatus != null"> | 
|         AND `fmodel`.`STATUS` = #{fmodelStatus} | 
|       </if> | 
|       <if test="fmodelValidTime != null"> | 
|         AND `fmodel`.`VALID_TIME` = #{fmodelValidTime} | 
|       </if> | 
|       <if test="fmodelInvalidTime != null"> | 
|         AND `fmodel`.`INVALID_TIME` = #{fmodelInvalidTime} | 
|       </if> | 
|       <if test="tmodelId != null"> | 
|         AND `tmodel`.`ID` = #{tmodelId} | 
|       </if> | 
|       <if test="tmodelDeleted != null"> | 
|         AND `tmodel`.`DELETED` = #{tmodelDeleted} | 
|       </if> | 
|       <if test="tmodelCreateUser != null"> | 
|         AND `tmodel`.`CREATE_USER` = #{tmodelCreateUser} | 
|       </if> | 
|       <if test="tmodelCreateTime != null"> | 
|         AND `tmodel`.`CREATE_TIME` = #{tmodelCreateTime} | 
|       </if> | 
|       <if test="tmodelUpdateUser != null"> | 
|         AND `tmodel`.`UPDATE_USER` = #{tmodelUpdateUser} | 
|       </if> | 
|       <if test="tmodelUpdateTime != null"> | 
|         AND `tmodel`.`UPDATE_TIME` = #{tmodelUpdateTime} | 
|       </if> | 
|       <if test="tmodelDictId != null"> | 
|         AND `tmodel`.`DICT_ID` = #{tmodelDictId} | 
|       </if> | 
|       <if test="tmodelCode != null and tmodelCode != ''"> | 
|         AND `tmodel`.`CODE` = #{tmodelCode} | 
|       </if> | 
|       <if test="tmodelLabel != null and tmodelLabel != ''"> | 
|         AND `tmodel`.`LABEL` = #{tmodelLabel} | 
|       </if> | 
|       <if test="tmodelSort != null"> | 
|         AND `tmodel`.`SORT` = #{tmodelSort} | 
|       </if> | 
|       <if test="tmodelDisabled != null"> | 
|         AND `tmodel`.`DISABLED` = #{tmodelDisabled} | 
|       </if> | 
|       <if test="mmodelId != null"> | 
|         AND `mmodel`.`ID` = #{mmodelId} | 
|       </if> | 
|       <if test="mmodelDeleted != null"> | 
|         AND `mmodel`.`DELETED` = #{mmodelDeleted} | 
|       </if> | 
|       <if test="mmodelCreateUser != null"> | 
|         AND `mmodel`.`CREATE_USER` = #{mmodelCreateUser} | 
|       </if> | 
|       <if test="mmodelCreateTime != null"> | 
|         AND `mmodel`.`CREATE_TIME` = #{mmodelCreateTime} | 
|       </if> | 
|       <if test="mmodelUpdateUser != null"> | 
|         AND `mmodel`.`UPDATE_USER` = #{mmodelUpdateUser} | 
|       </if> | 
|       <if test="mmodelUpdateTime != null"> | 
|         AND `mmodel`.`UPDATE_TIME` = #{mmodelUpdateTime} | 
|       </if> | 
|       <if test="mmodelRemark != null and mmodelRemark != ''"> | 
|         AND `mmodel`.`REMARK` = #{mmodelRemark} | 
|       </if> | 
|       <if test="mmodelRootDepartId != null"> | 
|         AND `mmodel`.`ROOT_DEPART_ID` = #{mmodelRootDepartId} | 
|       </if> | 
|       <if test="mmodelName != null and mmodelName != ''"> | 
|         AND `mmodel`.`NAME` = #{mmodelName} | 
|       </if> | 
|       <if test="mmodelCode != null and mmodelCode != ''"> | 
|         AND `mmodel`.`CODE` = #{mmodelCode} | 
|       </if> | 
|       <if test="mmodelAttr != null and mmodelAttr != ''"> | 
|         AND `mmodel`.`ATTR` = #{mmodelAttr} | 
|       </if> | 
|       <if test="mmodelUnionName != null and mmodelUnionName != ''"> | 
|         AND `mmodel`.`UNION_NAME` = #{mmodelUnionName} | 
|       </if> | 
|       <if test="mmodelUnitId != null"> | 
|         AND `mmodel`.`UNIT_ID` = #{mmodelUnitId} | 
|       </if> | 
|       <if test="mmodelCateUnionId != null"> | 
|         AND `mmodel`.`CATE_UNION_ID` = #{mmodelCateUnionId} | 
|       </if> | 
|       <if test="mmodelFormation != null"> | 
|         AND `mmodel`.`FORMATION` = #{mmodelFormation} | 
|       </if> | 
|       <if test="mmodelQrcodeId != null and mmodelQrcodeId != ''"> | 
|         AND `mmodel`.`QRCODE_ID` = #{mmodelQrcodeId} | 
|       </if> | 
|       <if test="mmodelStatus != null"> | 
|         AND `mmodel`.`STATUS` = #{mmodelStatus} | 
|       </if> | 
|       <if test="mmodelValidTime != null"> | 
|         AND `mmodel`.`VALID_TIME` = #{mmodelValidTime} | 
|       </if> | 
|       <if test="mmodelInvalidTime != null"> | 
|         AND `mmodel`.`INVALID_TIME` = #{mmodelInvalidTime} | 
|       </if> | 
|       <if test="mmodelCheckWay != null"> | 
|         AND `mmodel`.`CHECK_WAY` = #{mmodelCheckWay} | 
|       </if> | 
|       <if test="mmodelQualityRequire != null and mmodelQualityRequire != ''"> | 
|         AND `mmodel`.`QUALITY_REQUIRE` = #{mmodelQualityRequire} | 
|       </if> | 
|       <if test="mmodelCheckNote != null and mmodelCheckNote != ''"> | 
|         AND `mmodel`.`CHECK_NOTE` = #{mmodelCheckNote} | 
|       </if> | 
|       <if test="umodelId != null"> | 
|         AND `umodel`.`ID` = #{umodelId} | 
|       </if> | 
|       <if test="umodelDeleted != null"> | 
|         AND `umodel`.`DELETED` = #{umodelDeleted} | 
|       </if> | 
|       <if test="umodelCreateUser != null"> | 
|         AND `umodel`.`CREATE_USER` = #{umodelCreateUser} | 
|       </if> | 
|       <if test="umodelCreateTime != null"> | 
|         AND `umodel`.`CREATE_TIME` = #{umodelCreateTime} | 
|       </if> | 
|       <if test="umodelUpdateUser != null"> | 
|         AND `umodel`.`UPDATE_USER` = #{umodelUpdateUser} | 
|       </if> | 
|       <if test="umodelUpdateTime != null"> | 
|         AND `umodel`.`UPDATE_TIME` = #{umodelUpdateTime} | 
|       </if> | 
|       <if test="umodelRemark != null and umodelRemark != ''"> | 
|         AND `umodel`.`REMARK` = #{umodelRemark} | 
|       </if> | 
|       <if test="umodelRootDepartId != null"> | 
|         AND `umodel`.`ROOT_DEPART_ID` = #{umodelRootDepartId} | 
|       </if> | 
|       <if test="umodelName != null and umodelName != ''"> | 
|         AND `umodel`.`NAME` = #{umodelName} | 
|       </if> | 
|       <if test="umodelType != null"> | 
|         AND `umodel`.`TYPE` = #{umodelType} | 
|       </if> | 
|       <if test="umodelStatus != null"> | 
|         AND `umodel`.`STATUS` = #{umodelStatus} | 
|       </if> | 
|       <if test="pgmodelId != null"> | 
|         AND `pgmodel`.`ID` = #{pgmodelId} | 
|       </if> | 
|       <if test="pgmodelDeleted != null"> | 
|         AND `pgmodel`.`DELETED` = #{pgmodelDeleted} | 
|       </if> | 
|       <if test="pgmodelCreateUser != null"> | 
|         AND `pgmodel`.`CREATE_USER` = #{pgmodelCreateUser} | 
|       </if> | 
|       <if test="pgmodelCreateTime != null"> | 
|         AND `pgmodel`.`CREATE_TIME` = #{pgmodelCreateTime} | 
|       </if> | 
|       <if test="pgmodelUpdateUser != null"> | 
|         AND `pgmodel`.`UPDATE_USER` = #{pgmodelUpdateUser} | 
|       </if> | 
|       <if test="pgmodelUpdateTime != null"> | 
|         AND `pgmodel`.`UPDATE_TIME` = #{pgmodelUpdateTime} | 
|       </if> | 
|       <if test="pgmodelRemark != null and pgmodelRemark != ''"> | 
|         AND `pgmodel`.`REMARK` = #{pgmodelRemark} | 
|       </if> | 
|       <if test="pgmodelRootDepartId != null"> | 
|         AND `pgmodel`.`ROOT_DEPART_ID` = #{pgmodelRootDepartId} | 
|       </if> | 
|       <if test="pgmodelDepartId != null"> | 
|         AND `pgmodel`.`DEPART_ID` = #{pgmodelDepartId} | 
|       </if> | 
|       <if test="pgmodelProcedureId != null"> | 
|         AND `pgmodel`.`PROCEDURE_ID` = #{pgmodelProcedureId} | 
|       </if> | 
|       <if test="pgmodelCode != null"> | 
|         AND `pgmodel`.`CODE` = #{pgmodelCode} | 
|       </if> | 
|       <if test="pgmodelType != null"> | 
|         AND `pgmodel`.`TYPE` = #{pgmodelType} | 
|       </if> | 
|       <if test="pgmodelName != null and pgmodelName != ''"> | 
|         AND `pgmodel`.`NAME` = #{pgmodelName} | 
|       </if> | 
|       <if test="pgmodelModel != null and pgmodelModel != ''"> | 
|         AND `pgmodel`.`MODEL` = #{pgmodelModel} | 
|       </if> | 
|       <if test="pgmodelStatus != null"> | 
|         AND `pgmodel`.`STATUS` = #{pgmodelStatus} | 
|       </if> | 
|       <if test="pgmodelSupplier != null and pgmodelSupplier != ''"> | 
|         AND `pgmodel`.`SUPPLIER` = #{pgmodelSupplier} | 
|       </if> | 
|       <if test="pgmodelStationCode != null and pgmodelStationCode != ''"> | 
|         AND `pgmodel`.`STATION_CODE` = #{pgmodelStationCode} | 
|       </if> | 
|       <if test="pgmodelGroupId != null"> | 
|         AND `pgmodel`.`GROUP_ID` = #{pgmodelGroupId} | 
|       </if> | 
|       <if test="pgmodelSerialNum != null and pgmodelSerialNum != ''"> | 
|         AND `pgmodel`.`SERIAL_NUM` = #{pgmodelSerialNum} | 
|       </if> | 
|       <choose> | 
|         <when test="departIds != null and departIds.size()>0"> | 
|           AND (  `a`.`CREATE_USER` = #{createUser}  or | 
|           exists (select d.id from workorder_user d where d.WORKORDER_ID=a.id and d.DELETED=0 and d.PRO_USER_ID=#{createUser} ) | 
|           or exists (select d.id from company_user d where  d.user_id= a.CREATE_USER  and d.department_id | 
|           in <foreach collection="departIds" item="item" separator="," open="(" close=")">#{item}</foreach>) | 
|           or exists (select d.id from workorder_user wu left join  company_user d on wu.PRO_USER_ID=d.USER_ID and d.DELETED=0 where  wu.WORKORDER_ID= a.id  and d.department_id | 
|           in <foreach collection="departIds" item="item" separator="," open="(" close=")">#{item}</foreach>) | 
|           ) | 
|         </when> | 
|         <otherwise> | 
|           <if test="createUser != null"> | 
|             AND  ( `a`.`CREATE_USER` = #{createUser} or exists (select d.id from workorder_user d where d.WORKORDER_ID=a.id and d.DELETED=0 and d.PRO_USER_ID=#{createUser} )) | 
|           </if> | 
|         </otherwise> | 
|       </choose> | 
|     </where> | 
|     limit 1 | 
|   </select> | 
|   | 
|   <update id="updateByPlan" parameterType="doumeemes.dao.business.model.Workorder"> | 
|     update `workorder` | 
|     <set> | 
|       <if test="deleted != null"> | 
|         `DELETED` = #{deleted}, | 
|       </if> | 
|       <if test="createUser != null"> | 
|         `CREATE_USER` = #{createUser}, | 
|       </if> | 
|       <if test="createTime != null"> | 
|         `CREATE_TIME` = #{createTime}, | 
|       </if> | 
|       <if test="updateUser != null"> | 
|         `UPDATE_USER` = #{updateUser}, | 
|       </if> | 
|       <if test="updateTime != null"> | 
|         `UPDATE_TIME` = #{updateTime}, | 
|       </if> | 
|       <if test="remark != null"> | 
|         `REMARK` = #{remark}, | 
|       </if> | 
|       <if test="rootDepartId != null"> | 
|         `ROOT_DEPART_ID` = #{rootDepartId}, | 
|       </if> | 
|       <if test="departId != null"> | 
|         `DEPART_ID` = #{departId}, | 
|       </if> | 
|       <if test="planId != null"> | 
|         `PLAN_ID` = #{planId}, | 
|       </if> | 
|       <if test="factoryId != null"> | 
|         `FACTORY_ID` = #{factoryId}, | 
|       </if> | 
|       <if test="procedureId != null"> | 
|         `PROCEDURE_ID` = #{procedureId}, | 
|       </if> | 
|       <if test="code != null"> | 
|         `CODE` = #{code}, | 
|       </if> | 
|       <if test="originWorkorderId != null"> | 
|         `ORIGIN_WORKORDER_ID` = #{originWorkorderId}, | 
|       </if> | 
|       <if test="typeId != null"> | 
|         `TYPE_ID` = #{typeId}, | 
|       </if> | 
|       <if test="originId != null"> | 
|         `ORIGIN_ID` = #{originId}, | 
|       </if> | 
|       <if test="planDate != null"> | 
|         `PLAN_DATE` = #{planDate}, | 
|       </if> | 
|       <if test="planNum != null"> | 
|         `PLAN_NUM` = #{planNum}, | 
|       </if> | 
|       <if test="materialId != null"> | 
|         `MATERIAL_ID` = #{materialId}, | 
|       </if> | 
|       <if test="unitId != null"> | 
|         `UNIT_ID` = #{unitId}, | 
|       </if> | 
|       <if test="batch != null"> | 
|         `BATCH` = #{batch}, | 
|       </if> | 
|       <if test="proUserId != null"> | 
|         `PRO_USER_ID` = #{proUserId}, | 
|       </if> | 
|       <if test="proGroupId != null"> | 
|         `PRO_GROUP_ID` = #{proGroupId}, | 
|       </if> | 
|       <if test="qualifiedNum != null"> | 
|         `QUALIFIED_NUM` = #{qualifiedNum}, | 
|       </if> | 
|       <if test="unqualifiedNum != null"> | 
|         `UNQUALIFIED_NUM` = #{unqualifiedNum}, | 
|       </if> | 
|       <if test="checkUserId != null"> | 
|         `CHECK_USER_ID` = #{checkUserId}, | 
|       </if> | 
|       <if test="status != null"> | 
|         `STATUS` = #{status}, | 
|       </if> | 
|       <if test="lastDealDate != null"> | 
|         `LAST_DEAL_DATE` = #{lastDealDate}, | 
|       </if> | 
|       <if test="lastDealInfo != null"> | 
|         `LAST_DEAL_INFO` = #{lastDealInfo}, | 
|       </if> | 
|       <if test="urgent != null"> | 
|         `URGENT` = #{urgent}, | 
|       </if> | 
|       <if test="paused != null"> | 
|         `PAUSED` = #{paused}, | 
|       </if> | 
|         <if test="backorderId != null"> | 
|       `BACKORDER_ID` = #{backorderId} | 
|     </if> | 
|     </set> | 
|     where id in | 
|     <foreach collection="ids" separator="," item="item" open="(" close=")"> | 
|       #{item} | 
|     </foreach> | 
|   </update> | 
|   | 
|   | 
|   | 
|   <select id="workOrderForWTransferConfirm"  resultType="doumeemes.dao.ext.bean.WTransferConfirmWorkOrderBean"> | 
|     select w.id,w.`CODE` as workOrderNo , w.PLAN_DATE as planDate , m.`NAME` as materialName , | 
|            u.`NAME` as unitName , w.BATCH as batch , w.PLAN_NUM as planNum , cu.`NAME` as worker , | 
|            d.`NAME` as groupName , | 
|            case when w.type = 0 then '合格品加工' when w.type = 1 then '返工加工' else '客户返修' end typeDetail , | 
|            p.name as procedureName | 
|     from workorder w | 
|            left join material_distribute md on w.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 company_user cu on w.PRO_USER_ID = cu.USER_ID and cu.DELETED = 0 and cu.ROOT_DEPART_ID = w.ROOT_DEPART_ID | 
|            left join department d on cu.DEPARTMENT_ID = d.id | 
|             left join procedures p on w.PROCEDURE_ID = p.id | 
|     where 1 = 1  and | 
|       FIND_IN_SET(w.id ,#{ids}) | 
|   </select> | 
|   | 
|   | 
| </mapper> |