| <?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.WStockExtMapper"> | 
|   | 
|   <!-- 管理页面查询 --> | 
|   <resultMap id="WStockExtListVO" type="doumeemes.dao.ext.vo.WStockExtListVO" autoMapping="true"> | 
|     <id column="ID" jdbcType="INTEGER" property="id"/> | 
|     <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_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="lmodel" javaType="doumeemes.dao.business.model.WarehouseLocation"> | 
|       <id column="LMODEL_ID" jdbcType="INTEGER" property="id"/> | 
|       <result column="LMODEL_DELETED" jdbcType="TINYINT" property="deleted"/> | 
|       <result column="LMODEL_CREATE_USER" jdbcType="INTEGER" property="createUser"/> | 
|       <result column="LMODEL_CREATE_TIME" jdbcType="TIMESTAMP" property="createTime"/> | 
|       <result column="LMODEL_UPDATE_USER" jdbcType="INTEGER" property="updateUser"/> | 
|       <result column="LMODEL_UPDATE_TIME" jdbcType="TIMESTAMP" property="updateTime"/> | 
|       <result column="LMODEL_REMARK" jdbcType="VARCHAR" property="remark"/> | 
|       <result column="LMODEL_ROOT_DEPART_ID" jdbcType="INTEGER" property="rootDepartId"/> | 
|       <result column="LMODEL_WAREHOUSE_ID" jdbcType="INTEGER" property="warehouseId"/> | 
|       <result column="LMODEL_UNION_NAME" jdbcType="VARCHAR" property="unionName"/> | 
|       <result column="LMODEL_AREA" jdbcType="VARCHAR" property="area"/> | 
|       <result column="LMODEL_SHELF" jdbcType="VARCHAR" property="shelf"/> | 
|       <result column="LMODEL_CELL" jdbcType="VARCHAR" property="cell"/> | 
|       <result column="LMODEL_QRCODE" jdbcType="INTEGER" property="qrcode"/> | 
|       <result column="LMODEL_STATUS" jdbcType="TINYINT" property="status"/> | 
|     </association> | 
|     <association property="wmodel" javaType="doumeemes.dao.business.model.Warehouse"> | 
|       <id column="WMODEL_ID" jdbcType="INTEGER" property="id"/> | 
|       <result column="WMODEL_DELETED" jdbcType="TINYINT" property="deleted"/> | 
|       <result column="WMODEL_CREATE_USER" jdbcType="INTEGER" property="createUser"/> | 
|       <result column="WMODEL_CREATE_TIME" jdbcType="TIMESTAMP" property="createTime"/> | 
|       <result column="WMODEL_UPDATE_USER" jdbcType="INTEGER" property="updateUser"/> | 
|       <result column="WMODEL_UPDATE_TIME" jdbcType="TIMESTAMP" property="updateTime"/> | 
|       <result column="WMODEL_REMARK" jdbcType="VARCHAR" property="remark"/> | 
|       <result column="WMODEL_ROOT_DEPART_ID" jdbcType="INTEGER" property="rootDepartId"/> | 
|       <result column="WMODEL_DEPART_ID" jdbcType="INTEGER" property="departId"/> | 
|       <result column="WMODEL_PROCEDURE_ID" jdbcType="INTEGER" property="procedureId"/> | 
|       <result column="WMODEL_QRCODE" jdbcType="INTEGER" property="qrcode"/> | 
|       <result column="WMODEL_NAME" jdbcType="VARCHAR" property="name"/> | 
|       <result column="WMODEL_USE_LOCATION" jdbcType="TINYINT" property="useLocation"/> | 
|       <result column="WMODEL_STATUS" jdbcType="TINYINT" property="status"/> | 
|       <result column="WMODEL_ADDR" jdbcType="VARCHAR" property="addr"/> | 
|     </association> | 
|   </resultMap> | 
|   <select id="selectAllList" parameterType="doumeemes.dao.ext.dto.QueryWStockExtDTO" resultMap="WStockExtListVO"> | 
|     SELECT a.* | 
|     FROM w_stock 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="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="rootDepartId != null"> | 
|         AND a.ROOT_DEPART_ID = #{rootDepartId} | 
|       </if> | 
|       <if test="materialId != null"> | 
|         AND a.MATERIAL_ID = #{materialId} | 
|       </if> | 
|       <if test="materialIds != null and materialIds.size()>0"> | 
|         AND a.MATERIAL_ID in <foreach collection="materialIds" separator="," open="(" close=")" item="item">#{item}</foreach> | 
|       </if> | 
|       <if test="unitId != null"> | 
|         AND a.UNIT_ID = #{unitId} | 
|       </if> | 
|       <if test="locationId != null"> | 
|         AND a.LOCATION_ID = #{locationId} | 
|       </if> | 
|       <if test="warehouseId != null"> | 
|         AND a.WAREHOUSE_ID = #{warehouseId} | 
|       </if> | 
|       <if test="batch != null and batch != ''"> | 
|         AND a.BATCH = #{batch} | 
|       </if> | 
|       <if test="num != null"> | 
|         AND a.NUM = #{num} | 
|       </if> | 
|     </where> | 
|   | 
|   </select> | 
|   <select id="selectListAll" parameterType="doumeemes.dao.ext.dto.QueryWStockExtDTO" resultMap="WStockExtListVO"> | 
|     SELECT | 
|     a.ID, | 
|     a.DELETED, | 
|     a.CREATE_USER, | 
|     a.CREATE_TIME, | 
|     a.UPDATE_USER, | 
|     a.UPDATE_TIME, | 
|     a.REMARK, | 
|     a.ROOT_DEPART_ID, | 
|     a.MATERIAL_ID, | 
|     a.UNIT_ID, | 
|     a.LOCATION_ID, | 
|     a.WAREHOUSE_ID, | 
|     a.BATCH, | 
|     a.NUM, | 
|     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, | 
|     lmodel.ID AS LMODEL_ID, | 
|     lmodel.DELETED AS LMODEL_DELETED, | 
|     lmodel.CREATE_USER AS LMODEL_CREATE_USER, | 
|     lmodel.CREATE_TIME AS LMODEL_CREATE_TIME, | 
|     lmodel.UPDATE_USER AS LMODEL_UPDATE_USER, | 
|     lmodel.UPDATE_TIME AS LMODEL_UPDATE_TIME, | 
|     lmodel.REMARK AS LMODEL_REMARK, | 
|     lmodel.ROOT_DEPART_ID AS LMODEL_ROOT_DEPART_ID, | 
|     lmodel.WAREHOUSE_ID AS LMODEL_WAREHOUSE_ID, | 
|     lmodel.UNION_NAME AS LMODEL_UNION_NAME, | 
|     lmodel.AREA AS LMODEL_AREA, | 
|     lmodel.SHELF AS LMODEL_SHELF, | 
|     lmodel.CELL AS LMODEL_CELL, | 
|     lmodel.QRCODE AS LMODEL_QRCODE, | 
|     lmodel.STATUS AS LMODEL_STATUS, | 
|     wmodel.ID AS WMODEL_ID, | 
|     wmodel.DELETED AS WMODEL_DELETED, | 
|     wmodel.CREATE_USER AS WMODEL_CREATE_USER, | 
|     wmodel.CREATE_TIME AS WMODEL_CREATE_TIME, | 
|     wmodel.UPDATE_USER AS WMODEL_UPDATE_USER, | 
|     wmodel.UPDATE_TIME AS WMODEL_UPDATE_TIME, | 
|     wmodel.REMARK AS WMODEL_REMARK, | 
|     wmodel.ROOT_DEPART_ID AS WMODEL_ROOT_DEPART_ID, | 
|     wmodel.DEPART_ID AS WMODEL_DEPART_ID, | 
|     wmodel.PROCEDURE_ID AS WMODEL_PROCEDURE_ID, | 
|     wmodel.QRCODE AS WMODEL_QRCODE, | 
|     wmodel.NAME AS WMODEL_NAME, | 
|     wmodel.USE_LOCATION AS WMODEL_USE_LOCATION, | 
|     wmodel.STATUS AS WMODEL_STATUS, | 
|     wmodel.ADDR AS WMODEL_ADDR | 
|     FROM w_stock a | 
|     LEFT JOIN material mmodel ON mmodel.ID=a.MATERIAL_ID | 
|     LEFT JOIN unit umodel ON a.UNIT_ID=umodel.ID | 
|     LEFT JOIN warehouse_location lmodel ON a.LOCATION_ID=lmodel.ID | 
|     LEFT JOIN warehouse wmodel ON a.WAREHOUSE_ID=wmodel.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="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="rootDepartId != null"> | 
|         AND a.ROOT_DEPART_ID = #{rootDepartId} | 
|       </if> | 
|       <if test="materialId != null"> | 
|         AND a.MATERIAL_ID = #{materialId} | 
|       </if> | 
|       <if test="unitId != null"> | 
|         AND a.UNIT_ID = #{unitId} | 
|       </if> | 
|       <if test="locationId != null"> | 
|         AND a.LOCATION_ID = #{locationId} | 
|       </if> | 
|       <if test="warehouseId != null"> | 
|         AND a.WAREHOUSE_ID = #{warehouseId} | 
|       </if> | 
|       <if test="batch != null and batch != ''"> | 
|         AND a.BATCH = #{batch} | 
|       </if> | 
|       <if test="num != null"> | 
|         AND a.NUM = #{num} | 
|       </if> | 
|       <if test="greaterZero != null and greaterZero = 1 "> | 
|         AND a.NUM > 0 | 
|       </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="lmodelId != null"> | 
|         AND lmodel.ID = #{lmodelId} | 
|       </if> | 
|       <if test="lmodelDeleted != null"> | 
|         AND lmodel.DELETED = #{lmodelDeleted} | 
|       </if> | 
|       <if test="lmodelCreateUser != null"> | 
|         AND lmodel.CREATE_USER = #{lmodelCreateUser} | 
|       </if> | 
|       <if test="lmodelCreateTime != null"> | 
|         AND lmodel.CREATE_TIME = #{lmodelCreateTime} | 
|       </if> | 
|       <if test="lmodelUpdateUser != null"> | 
|         AND lmodel.UPDATE_USER = #{lmodelUpdateUser} | 
|       </if> | 
|       <if test="lmodelUpdateTime != null"> | 
|         AND lmodel.UPDATE_TIME = #{lmodelUpdateTime} | 
|       </if> | 
|       <if test="lmodelRemark != null and lmodelRemark != ''"> | 
|         AND lmodel.REMARK = #{lmodelRemark} | 
|       </if> | 
|       <if test="lmodelRootDepartId != null"> | 
|         AND lmodel.ROOT_DEPART_ID = #{lmodelRootDepartId} | 
|       </if> | 
|       <if test="lmodelWarehouseId != null"> | 
|         AND lmodel.WAREHOUSE_ID = #{lmodelWarehouseId} | 
|       </if> | 
|       <if test="lmodelUnionName != null and lmodelUnionName != ''"> | 
|         AND lmodel.UNION_NAME = #{lmodelUnionName} | 
|       </if> | 
|       <if test="lmodelArea != null and lmodelArea != ''"> | 
|         AND lmodel.AREA = #{lmodelArea} | 
|       </if> | 
|       <if test="lmodelShelf != null and lmodelShelf != ''"> | 
|         AND lmodel.SHELF = #{lmodelShelf} | 
|       </if> | 
|       <if test="lmodelCell != null and lmodelCell != ''"> | 
|         AND lmodel.CELL = #{lmodelCell} | 
|       </if> | 
|       <if test="lmodelQrcode != null"> | 
|         AND lmodel.QRCODE = #{lmodelQrcode} | 
|       </if> | 
|       <if test="lmodelStatus != null"> | 
|         AND lmodel.STATUS = #{lmodelStatus} | 
|       </if> | 
|       <if test="wmodelId != null"> | 
|         AND wmodel.ID = #{wmodelId} | 
|       </if> | 
|       <if test="wmodelDeleted != null"> | 
|         AND wmodel.DELETED = #{wmodelDeleted} | 
|       </if> | 
|       <if test="wmodelCreateUser != null"> | 
|         AND wmodel.CREATE_USER = #{wmodelCreateUser} | 
|       </if> | 
|       <if test="wmodelCreateTime != null"> | 
|         AND wmodel.CREATE_TIME = #{wmodelCreateTime} | 
|       </if> | 
|       <if test="wmodelUpdateUser != null"> | 
|         AND wmodel.UPDATE_USER = #{wmodelUpdateUser} | 
|       </if> | 
|       <if test="wmodelUpdateTime != null"> | 
|         AND wmodel.UPDATE_TIME = #{wmodelUpdateTime} | 
|       </if> | 
|       <if test="wmodelRemark != null and wmodelRemark != ''"> | 
|         AND wmodel.REMARK = #{wmodelRemark} | 
|       </if> | 
|       <if test="wmodelRootDepartId != null"> | 
|         AND wmodel.ROOT_DEPART_ID = #{wmodelRootDepartId} | 
|       </if> | 
|       <if test="wmodelDepartId != null"> | 
|         AND wmodel.DEPART_ID = #{wmodelDepartId} | 
|       </if> | 
|       <if test="wmodelProcedureId != null"> | 
|         AND wmodel.PROCEDURE_ID = #{wmodelProcedureId} | 
|       </if> | 
|       <if test="wmodelQrcode != null"> | 
|         AND wmodel.QRCODE = #{wmodelQrcode} | 
|       </if> | 
|       <if test="wmodelName != null and wmodelName != ''"> | 
|         AND wmodel.NAME = #{wmodelName} | 
|       </if> | 
|       <if test="wmodelUseLocation != null"> | 
|         AND wmodel.USE_LOCATION = #{wmodelUseLocation} | 
|       </if> | 
|       <if test="wmodelStatus != null"> | 
|         AND wmodel.STATUS = #{wmodelStatus} | 
|       </if> | 
|       <if test="wmodelAddr != null and wmodelAddr != ''"> | 
|         AND wmodel.ADDR = #{wmodelAddr} | 
|       </if> | 
|     </where> | 
|   </select> | 
|   | 
|   | 
|   <select id="getListBynum" parameterType="doumeemes.dao.ext.dto.QueryWStockExtDTO" resultMap="WStockExtListVO"> | 
|     SELECT | 
|     a.ID, | 
|     a.DELETED, | 
|     a.CREATE_USER, | 
|     a.CREATE_TIME, | 
|     a.UPDATE_USER, | 
|     a.UPDATE_TIME, | 
|     a.REMARK, | 
|     a.ROOT_DEPART_ID, | 
|     a.MATERIAL_ID, | 
|     a.UNIT_ID, | 
|     a.LOCATION_ID, | 
|     a.WAREHOUSE_ID, | 
|     a.BATCH, | 
|     a.NUM | 
|     FROM w_stock 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="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="rootDepartId != null"> | 
|         AND a.ROOT_DEPART_ID = #{rootDepartId} | 
|       </if> | 
|       <if test="materialId != null"> | 
|         AND a.MATERIAL_ID = #{materialId} | 
|       </if> | 
|       <if test="unitId != null"> | 
|         AND a.UNIT_ID = #{unitId} | 
|       </if> | 
|       <if test="locationId != null"> | 
|         AND a.LOCATION_ID = #{locationId} | 
|       </if> | 
|       <if test="warehouseId != null"> | 
|         AND a.WAREHOUSE_ID = #{warehouseId} | 
|       </if> | 
|       <if test="batch != null and batch != ''"> | 
|         AND a.BATCH = #{batch} | 
|       </if> | 
|       <if test="num != null and num != ''"> | 
|         AND a.NUM > #{num} | 
|       </if> | 
|     </where> | 
|   </select> | 
|   | 
|   | 
|   | 
|   <select id="stockListByDto" parameterType="doumeemes.dao.ext.beanDto.QueryWStockDto"  resultMap="WStockExtListVO"> | 
|     SELECT | 
|     a.ID, | 
|     a.DELETED, | 
|     a.CREATE_USER, | 
|     a.CREATE_TIME, | 
|     a.UPDATE_USER, | 
|     a.UPDATE_TIME, | 
|     a.REMARK, | 
|     a.ROOT_DEPART_ID, | 
|     a.MATERIAL_ID, | 
|     a.UNIT_ID, | 
|     a.LOCATION_ID, | 
|     a.WAREHOUSE_ID, | 
|     a.BATCH, | 
|     a.NUM, | 
|     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, | 
|     lmodel.ID AS LMODEL_ID, | 
|     lmodel.DELETED AS LMODEL_DELETED, | 
|     lmodel.CREATE_USER AS LMODEL_CREATE_USER, | 
|     lmodel.CREATE_TIME AS LMODEL_CREATE_TIME, | 
|     lmodel.UPDATE_USER AS LMODEL_UPDATE_USER, | 
|     lmodel.UPDATE_TIME AS LMODEL_UPDATE_TIME, | 
|     lmodel.REMARK AS LMODEL_REMARK, | 
|     lmodel.ROOT_DEPART_ID AS LMODEL_ROOT_DEPART_ID, | 
|     lmodel.WAREHOUSE_ID AS LMODEL_WAREHOUSE_ID, | 
|     lmodel.UNION_NAME AS LMODEL_UNION_NAME, | 
|     lmodel.AREA AS LMODEL_AREA, | 
|     lmodel.SHELF AS LMODEL_SHELF, | 
|     lmodel.CELL AS LMODEL_CELL, | 
|     lmodel.QRCODE AS LMODEL_QRCODE, | 
|     lmodel.STATUS AS LMODEL_STATUS, | 
|     wmodel.ID AS WMODEL_ID, | 
|     wmodel.DELETED AS WMODEL_DELETED, | 
|     wmodel.CREATE_USER AS WMODEL_CREATE_USER, | 
|     wmodel.CREATE_TIME AS WMODEL_CREATE_TIME, | 
|     wmodel.UPDATE_USER AS WMODEL_UPDATE_USER, | 
|     wmodel.UPDATE_TIME AS WMODEL_UPDATE_TIME, | 
|     wmodel.REMARK AS WMODEL_REMARK, | 
|     wmodel.ROOT_DEPART_ID AS WMODEL_ROOT_DEPART_ID, | 
|     wmodel.DEPART_ID AS WMODEL_DEPART_ID, | 
|     wmodel.PROCEDURE_ID AS WMODEL_PROCEDURE_ID, | 
|     wmodel.QRCODE AS WMODEL_QRCODE, | 
|     wmodel.NAME AS WMODEL_NAME, | 
|     wmodel.USE_LOCATION AS WMODEL_USE_LOCATION, | 
|     wmodel.STATUS AS WMODEL_STATUS, | 
|     wmodel.ADDR AS WMODEL_ADDR | 
|     FROM w_stock a | 
|     LEFT JOIN material mmodel ON mmodel.ID=a.MATERIAL_ID | 
|     LEFT JOIN unit umodel ON a.UNIT_ID=umodel.ID | 
|     LEFT JOIN warehouse_location lmodel ON a.LOCATION_ID=lmodel.ID | 
|     LEFT JOIN warehouse wmodel ON a.WAREHOUSE_ID=wmodel.ID | 
|     <where> | 
|       AND a.DELETED = 0 | 
|       <if test="rootDepartId != null"> | 
|         AND a.ROOT_DEPART_ID = #{rootDepartId} | 
|       </if> | 
|       <if test="warehouseId != null"> | 
|         AND a.WAREHOUSE_ID = #{warehouseId} | 
|       </if> | 
|       <if test="materialId != null"> | 
|         AND a.MATERIAL_ID = #{materialId} | 
|       </if> | 
|       <if test="locationId != null"> | 
|         AND a.LOCATION_ID = #{locationId} | 
|       </if> | 
|       <if test="unitId != null"> | 
|         AND a.UNIT_ID = #{unitId} | 
|       </if> | 
|       <if test="batch != null and batch != ''"> | 
|         AND a.BATCH like CONCAT('%',#{batch},'%') | 
|       </if> | 
|       <if test="procedureId != null  "> | 
|         AND a.PROCEDURE_ID  = #{procedureId} | 
|       </if> | 
|       <if test="qualityType != null "> | 
|         AND a.QUALITY_TYPE  = #{qualityType } | 
|       </if> | 
|     </where> | 
|   </select> | 
|   | 
|   | 
|   <select id="selectAdminList" parameterType="doumeemes.dao.ext.beanDto.QueryWStockDto"  resultMap="WStockExtListVO"> | 
|     SELECT | 
|     c.name as unitName ,a.PROCEDURE_ID as procedureId , p.name as procedureName , a.QUALITY_TYPE as qualityType | 
|     , b.attr , ifnull(sum( a.NUM ),0) as num | 
|     <if test="groupType != null "> | 
|       <choose> | 
|         <when test="groupType == 1 "> | 
|           ,b.code as materialCode , b.name as materialName | 
|         </when> | 
|         <when test="groupType == 2 "> | 
|           ,b.code as materialCode, b.name as materialName , e.name as wareHouseName, d.UNION_NAME as locationName | 
|         </when> | 
|         <otherwise> | 
|           ,b.code as materialCode, b.name as materialName , e.name as wareHouseName, a.batch , a.LOCATION_ID as locationId  ,  d.UNION_NAME as locationName | 
|         </otherwise> | 
|       </choose> | 
|     </if> | 
|     FROM w_stock a | 
|     LEFT JOIN material_distribute f  on a.MATERIAL_ID = f.id | 
|     LEFT JOIN material b ON f.MATERIAL_ID=b.id | 
|     LEFT JOIN unit c ON a.UNIT_ID=c.ID | 
|     LEFT JOIN warehouse_location d ON a.LOCATION_ID=d.ID | 
|     LEFT JOIN warehouse e ON a.WAREHOUSE_ID=e.ID | 
|     LEFT JOIN procedures p ON a.PROCEDURE_ID=p.ID | 
|     <where> | 
|       AND a.deleted = 0 | 
|       <if test="rootDepartId != null"> | 
|         AND a.ROOT_DEPART_ID = #{rootDepartId} | 
|       </if> | 
|       <if test="departId != null"> | 
|         AND e.DEPART_ID = #{departId} | 
|       </if> | 
|       <if test="warehouseId != null"> | 
|         AND a.WAREHOUSE_ID = #{warehouseId} | 
|       </if> | 
|       <if test="qualityType != null"> | 
|         AND a.QUALITY_TYPE = #{qualityType} | 
|       </if> | 
|       <if test="materialName != null and materialName != '' "> | 
|         AND (b.name like concat('%',#{materialName},'%')  or b.code like concat('%',#{materialName},'%')) | 
|       </if> | 
|       <if test="batch != null and batch != '' "> | 
|         AND  a.batch like  concat('%',#{batch},'%') | 
|       </if> | 
|   | 
|       <if test="procedureName != null and procedureName != '' "> | 
|         AND  p.name like  concat('%',#{procedureName},'%') | 
|       </if> | 
|       <if test="materialOrBatch != null and materialOrBatch != '' "> | 
|         AND (e.name like concat('%',#{materialOrBatch},'%')  or b.code like concat('%',#{materialOrBatch},'%') ) | 
|       </if> | 
|       <if test="locationId != null"> | 
|         AND a.LOCATION_ID = #{locationId} | 
|       </if> | 
|       <if test="greaterZero != null"> | 
|         <if test="greaterZero = 1 "> | 
|           AND a.NUM > 0 | 
|         </if> | 
|       </if> | 
|     </where> | 
|     group by c.name , b.ATTR , a.PROCEDURE_ID  , p.name , a.QUALITY_TYPE | 
|     <if test="groupType != null "> | 
|       <choose> | 
|         <when test="groupType == 1 "> | 
|           ,b.code, b.name | 
|         </when> | 
|         <when test="groupType == 2 "> | 
|           ,b.code, b.name , e.name | 
|         </when> | 
|         <otherwise> | 
|           ,b.code, b.name , e.name , a.batch , a.LOCATION_ID ,  d.UNION_NAME | 
|         </otherwise> | 
|       </choose> | 
|     </if> | 
|   </select> | 
|   | 
|   | 
|   <select id="selectAdminListForH5" parameterType="doumeemes.dao.ext.beanDto.QueryWStockDto"  resultMap="WStockExtListVO"> | 
|     SELECT | 
|     c.name as unitName , b.attr , ifnull(sum( a.NUM ),0) as num , | 
|     a.PROCEDURE_ID as procedureId , p.name as procedureName , a.QUALITY_TYPE as qualityType | 
|     ,b.code as materialCode, b.name as materialName , e.name as wareHouseName, a.batch | 
|     FROM w_stock a | 
|     LEFT JOIN material_distribute f  on a.MATERIAL_ID = f.id | 
|     LEFT JOIN material b ON f.MATERIAL_ID=b.id | 
|     LEFT JOIN unit c ON a.UNIT_ID=c.ID | 
|     LEFT JOIN warehouse_location d ON a.LOCATION_ID=d.ID | 
|     LEFT JOIN warehouse e ON a.WAREHOUSE_ID=e.ID | 
|     LEFT JOIN procedures p ON a.PROCEDURE_ID=p.ID | 
|     <where> | 
|       <if test="rootDepartId != null"> | 
|         AND a.ROOT_DEPART_ID = #{rootDepartId} | 
|       </if> | 
|       <if test="warehouseId != null"> | 
|         AND a.WAREHOUSE_ID = #{warehouseId} | 
|       </if> | 
|       <if test="materialName != null and materialName != '' "> | 
|         AND a.MATERIAL_ID = #{materialId} | 
|       </if> | 
|       <if test="locationId != null"> | 
|         AND a.LOCATION_ID = #{locationId} | 
|       </if> | 
|       <if test="greaterZero != null"> | 
|         <if test="greaterZero = 1 "> | 
|           AND a.NUM > 0 | 
|         </if> | 
|       </if> | 
|     </where> | 
|     group by c.name , b.ATTR ,b.code, b.name , e.name , a.batch ,a.PROCEDURE_ID  , p.name , a.QUALITY_TYPE | 
|   </select> | 
|   | 
|   | 
|   <select id="choiceStockList" parameterType="doumeemes.dao.ext.beanDto.QueryWStockDto"  resultMap="WStockExtListVO"> | 
|   | 
|     SELECT | 
|     a.id , | 
|     f.id as materialId, | 
|     b.CODE AS materialCode, | 
|     b.NAME AS materialName, | 
|     c.id AS unitId, | 
|     c.NAME AS unitName, | 
|     CONCAT( IFNULL(h.`NAME`,''), IFNULL(i.`NAME`,''), IFNULL(j.`NAME`,'') ) AS categoryName , | 
|     h.`NAME` as categoryBigName , | 
|     i.`NAME` as categoryMiddleName, | 
|     j.`NAME`  as categorySmallName , | 
|     a.batch, | 
|     a.LOCATION_ID AS locationId, | 
|     d.UNION_NAME AS locationName, | 
|     a.num , | 
|     b.ATTR , | 
|     c.ATTRIBUTE_DATA as unitAttribute , | 
|     a.PROCEDURE_ID as procedureId , p.name as procedureName , a.QUALITY_TYPE as qualityType | 
|     FROM | 
|     w_stock a | 
|     INNER JOIN material_distribute f ON a.MATERIAL_ID = f.id | 
|     INNER JOIN material b ON f.MATERIAL_ID = b.id | 
|     INNER JOIN category_union g ON b.CATE_UNION_ID = g.id | 
|     LEFT JOIN category h ON g.CATE_BIG_ID = h.id | 
|     LEFT JOIN category i ON g.CATE_MIDDLE_ID = i.id | 
|     LEFT JOIN category j ON g.CATE_SMALL_ID = j.id | 
|     INNER JOIN unit c ON a.UNIT_ID = c.ID | 
|     LEFT JOIN warehouse_location d ON a.LOCATION_ID = d.ID | 
|     LEFT JOIN warehouse e ON a.WAREHOUSE_ID = e.ID | 
|     LEFT JOIN procedures p ON a.PROCEDURE_ID=p.ID | 
|     <where> | 
|       and a.DELETED = 0 | 
|       and a.NUM > 0 | 
|       <if test="warehouseId != null"> | 
|         AND a.WAREHOUSE_ID = #{warehouseId} | 
|       </if> | 
|   | 
|       <if test="batch != null and batch != '' "> | 
|         AND a.batch = #{batch} | 
|       </if> | 
|   | 
|       <if test="materialName != null and materialName != '' "> | 
|         AND ( b.NAME like  CONCAT('%',#{materialName},'%') or b.code like  CONCAT('%',#{materialName},'%') ) | 
|       </if> | 
|   | 
|       <if test="materialId != null  "> | 
|         AND a.material_id = #{materialId } | 
|       </if> | 
|   | 
|       <if test="locationId != null  "> | 
|         AND a.LOCATION_ID = #{locationId} | 
|       </if> | 
|   | 
|       <if test="cateBigId != null"> | 
|         AND h.id = #{cateBigId} | 
|       </if> | 
|   | 
|       <if test="cateMiddleId != null"> | 
|         AND  i.id = #{cateMiddleId} | 
|       </if> | 
|   | 
|       <if test="cateSmallId != null"> | 
|         AND j.id = #{cateSmallId} | 
|       </if> | 
|       <if test="qualityType != null"> | 
|         AND a.QUALITY_TYPE = #{qualityType} | 
|       </if> | 
|       <if test="warehouseQualityType != null   and warehouseQualityType != '' "> | 
|         AND a.QUALITY_TYPE = #{warehouseQualityType} | 
|       </if> | 
|       <if test="procedureId != null"> | 
|         AND a.procedure_id = #{procedureId} | 
|       </if> | 
|       <if test="ids != null and ids != '' "> | 
|         AND not exists ( select 1 from w_stock wStock where find_in_set(wStock.id , #{ids}) and a.id = wStock.id  ) | 
|       </if> | 
|   | 
|       <if test="deviceId != null  "> | 
|         AND  a.LOCATION_ID in ( select d.PRODUCE_WAREHOUSE_LOCATION_ID from device d where d.id = #{deviceId} ) | 
|       </if> | 
|   | 
|       <if test="materialDistributeId != null and materialDistributeId.size()>0"> | 
|         AND `a`.`MATERIAL_ID` in <foreach collection="materialDistributeId" open="(" close=")" item="item" separator=",">#{item}</foreach> | 
|       </if> | 
|   | 
|     </where> | 
|   | 
|   | 
|   </select> | 
|   | 
|   | 
|   <select id="choiceStockPageByTransfer" parameterType="doumeemes.dao.ext.beanDto.QueryWStockHeadNewDTO"  resultMap="WStockExtListVO"> | 
|   | 
|     SELECT | 
|     a.id , | 
|     f.id as materialId, | 
|     b.CODE AS materialCode, | 
|     b.NAME AS materialName, | 
|     c.id AS unitId, | 
|     c.NAME AS unitName, | 
|     CONCAT( IFNULL(h.`NAME`,''), IFNULL(i.`NAME`,''), IFNULL(j.`NAME`,'') ) AS categoryName , | 
|     h.`NAME` as categoryBigName , | 
|     i.`NAME` as categoryMiddleName, | 
|     j.`NAME`  as categorySmallName , | 
|     a.batch, | 
|     a.LOCATION_ID AS locationId, | 
|     d.UNION_NAME AS locationName, | 
|     a.num , | 
|     b.ATTR , | 
|     c.ATTRIBUTE_DATA as unitAttribute , | 
|     a.PROCEDURE_ID as procedureId , p.name as procedureName , a.QUALITY_TYPE as qualityType | 
|     FROM | 
|     w_stock a | 
|     INNER JOIN material_distribute f ON a.MATERIAL_ID = f.id | 
|     INNER JOIN material b ON f.MATERIAL_ID = b.id | 
|     INNER JOIN category_union g ON b.CATE_UNION_ID = g.id | 
|     LEFT JOIN category h ON g.CATE_BIG_ID = h.id | 
|     LEFT JOIN category i ON g.CATE_MIDDLE_ID = i.id | 
|     LEFT JOIN category j ON g.CATE_SMALL_ID = j.id | 
|     INNER JOIN unit c ON a.UNIT_ID = c.ID | 
|     LEFT JOIN warehouse_location d ON a.LOCATION_ID = d.ID | 
|     LEFT JOIN warehouse e ON a.WAREHOUSE_ID = e.ID | 
|     LEFT JOIN procedures p ON a.PROCEDURE_ID=p.ID | 
|     <where> | 
|       and a.DELETED = 0 | 
|       and a.NUM > 0 | 
|       <if test="warehouseId != null"> | 
|         AND a.WAREHOUSE_ID = #{warehouseId} | 
|       </if> | 
|   | 
|       <if test="stockNewDTOList != null and stockNewDTOList.size > 0"> | 
|         AND  ( | 
|         <foreach collection="stockNewDTOList" open="(" close=")" separator="or" item="stockNewDTO"> | 
|             ( | 
|               <if test="stockNewDTO.materialId != null"> | 
|                  a.MATERIAL_ID = #{stockNewDTO.materialId} | 
|               </if> | 
|               <if test="stockNewDTO.unitId != null"> | 
|                 and a.UNIT_ID = #{stockNewDTO.unitId} | 
|               </if> | 
|               <if test="stockNewDTO.procedureId != null"> | 
|                 and a.PROCEDURE_ID = #{stockNewDTO.procedureId} | 
|               </if> | 
|               <if test="stockNewDTO.qualityType != null"> | 
|                 and a.QUALITY_TYPE = #{stockNewDTO.qualityType} | 
|               </if> | 
|               <if test="stockNewDTO.batch != null and stockNewDTO.batch != '' "> | 
|                 and a.BATCH = #{stockNewDTO.batch} | 
|               </if> | 
|             ) | 
|         </foreach> | 
|         ) | 
|       </if> | 
|   | 
|     </where> | 
|   | 
|   | 
|   </select> | 
|   | 
|   <select id="choiceStockListNoLocation" parameterType="doumeemes.dao.ext.beanDto.QueryWStockDto"  resultMap="WStockExtListVO"> | 
|   | 
|     SELECT | 
|     f.id as materialId, | 
|     b.CODE AS materialCode, | 
|     b.NAME AS materialName, | 
|     c.id AS unitId, | 
|     c.NAME AS unitName, | 
|     CONCAT( h.`NAME`, i.`NAME`, j.`NAME` ) AS categoryName , | 
|     a.batch, | 
|     ifnull( sum( a.NUM ), 0 ) AS num , | 
|     c.ATTRIBUTE_DATA as unitAttribute , | 
|     p.name as procedureName, | 
|     a.procedure_id as procedureId, | 
|     a.quality_type as qualityType | 
|     FROM | 
|     w_stock a | 
|     INNER JOIN material_distribute f ON a.MATERIAL_ID = f.id | 
|     INNER JOIN material b ON f.MATERIAL_ID = b.id | 
|     INNER JOIN category_union g ON b.CATE_UNION_ID = g.id | 
|     LEFT JOIN category h ON g.CATE_BIG_ID = h.id | 
|     LEFT JOIN category i ON g.CATE_MIDDLE_ID = i.id | 
|     LEFT JOIN category j ON g.CATE_SMALL_ID = j.id | 
|     INNER JOIN unit c ON a.UNIT_ID = c.ID | 
|     INNER JOIN warehouse e ON a.WAREHOUSE_ID = e.ID | 
|     LEFT JOIN procedures p ON a.PROCEDURE_ID=p.ID | 
|     <where> | 
|       and a.DELETED = 0 | 
|       <if test="warehouseId != null"> | 
|         AND a.WAREHOUSE_ID = #{warehouseId} | 
|       </if> | 
|   | 
|       <if test="batch != null and batch != '' "> | 
|         AND a.batch  = #{batch} | 
|       </if> | 
|   | 
|       <if test="materialName != null and materialName != '' "> | 
|         AND ( b.NAME like  CONCAT('%',#{materialName},'%') or b.code like  CONCAT('%',#{materialName},'%') ) | 
|       </if> | 
|   | 
|       <if test="cateBigId != null"> | 
|         AND h.id = #{cateBigId} | 
|       </if> | 
|   | 
|       <if test="cateMiddleId != null"> | 
|         AND  i.id = #{cateMiddleId} | 
|       </if> | 
|   | 
|       <if test="cateSmallId != null"> | 
|         AND j.id = #{cateSmallId} | 
|       </if> | 
|   | 
|       <if test="qualityType != null"> | 
|         AND a.QUALITY_TYPE = #{qualityType} | 
|       </if> | 
|   | 
|       <if test="procedureId != null"> | 
|         AND p.id = #{procedureId} | 
|       </if> | 
|       <if test="procedureId == null"> | 
|         AND a.procedure_id is null | 
|       </if> | 
|   | 
|       <if test="ids != null and ids != '' "> | 
|         AND not exists ( select 1 from w_stock wStock where find_in_set(wStock.MATERIAL_ID , #{ids}) and a.MATERIAL_ID = wStock.MATERIAL_ID  ) | 
|       </if> | 
|     </where> | 
|     GROUP BY | 
|     f.id, | 
|     b.CODE, | 
|     b.NAME, | 
|     c.id, | 
|     c.NAME, | 
|     h.`NAME`, | 
|     i.`NAME`, | 
|     j.`NAME`, | 
|     a.batch, | 
|     c.ATTRIBUTE_DATA, | 
|     p.name , | 
|     a.procedure_id, | 
|     a.quality_type | 
|   | 
|   </select> | 
|   | 
|   | 
| </mapper> |