diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/facade/IMaterialInventoryService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/facade/IMaterialInventoryService.java index a3000dca6..d21794b81 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/facade/IMaterialInventoryService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/facade/IMaterialInventoryService.java @@ -71,6 +71,12 @@ public interface IMaterialInventoryService extends IService */ public List queryImmediateInventoryList(ImmediateInventoryDO immediateInventoryDO); + /** + * 查询即时库存合计数量 + */ + public BigDecimal sumImmediateInventoryQuantity(ImmediateInventoryDO immediateInventoryDO); + + /** * @description 增加指定库存 * @author ZhouGY diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/mapper/MaterialInventoryMapper.java b/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/mapper/MaterialInventoryMapper.java index a609f19c0..2cb15e4f0 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/mapper/MaterialInventoryMapper.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/mapper/MaterialInventoryMapper.java @@ -91,6 +91,12 @@ public interface MaterialInventoryMapper extends BaseMapper */ public List queryImmediateInventoryList(ImmediateInventoryDO immediateInventoryDO); + /** + * 查询即时库存合计数量(与列表相同筛选条件,返回库存数量总和) + */ + public BigDecimal sumImmediateInventoryQuantity(ImmediateInventoryDO immediateInventoryDO); + + @Select("SELECT SUM(inventory_quantity) FROM material_inventory a LEFT JOIN material_base_info b ON a.material_base_info_id = b.material_base_info_id WHERE a.del_flag = 1 AND b.shipper_id = #{shipperId} AND b.material_base_info_id = #{materialBaseInfoId}") public BigDecimal sumInventoryQuantityByShipperAndMaterialCode(@Param("shipperId") Long shipperId, @Param("materialBaseInfoId") Long materialBaseInfoId); diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/persistence/MaterialInventoryImpl.java b/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/persistence/MaterialInventoryImpl.java index 8b25a0600..4b1e1b14e 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/persistence/MaterialInventoryImpl.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/persistence/MaterialInventoryImpl.java @@ -464,11 +464,29 @@ public class MaterialInventoryImpl extends ServiceImpl queryImmediateInventoryList(ImmediateInventoryDO immediateInventoryDO) { return materialInventoryMapper.queryImmediateInventoryList(immediateInventoryDO); } + /** + * 查询即时库存合计数量 + *

与列表查询使用相同筛选条件但不分页,统计筛选条件下所有库存数量之和

+ * + * @param immediateInventoryDO 即时库存查询条件(与列表查询保持一致,保证合计口径一致) + * @return 库存数量合计值,无数据时为 0 + */ + @Override + public BigDecimal sumImmediateInventoryQuantity(ImmediateInventoryDO immediateInventoryDO) { + return materialInventoryMapper.sumImmediateInventoryQuantity(immediateInventoryDO); + } + /** * @description 增加指定库存 * @author ZhouGY diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/service/MaterialInventoryDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/service/MaterialInventoryDomainService.java index 46d5d1d11..30eba9147 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/service/MaterialInventoryDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/service/MaterialInventoryDomainService.java @@ -103,6 +103,20 @@ public class MaterialInventoryDomainService { return materialInventoryService.queryImmediateInventoryList(immediateInventoryDO); } + /** + * 查询即时库存合计数量 + */ + public BigDecimal sumImmediateInventoryQuantity(ImmediateInventoryDO immediateInventoryDO) { + return materialInventoryService.sumImmediateInventoryQuantity(immediateInventoryDO); + } + + /** + * 根据查询条件获取物料库存信息 + *

按货主、组织、物料、仓库、库位等条件查询,返回汇总后的库存信息(含库存数量合计)

+ * + * @param materialInventoryDO 物料库存查询条件(含货主、顶级组织、物料基础信息、仓库、库位等) + * @return 匹配条件的物料库存信息,无匹配数据时返回 null + */ public MaterialInventoryPO selectOneByWhere(MaterialInventoryDO materialInventoryDO) { return materialInventoryService.selectOneByWhere(materialInventoryDO); } diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/statementStatistics/po/ImmediateInventoryPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/statementStatistics/po/ImmediateInventoryPO.java index db0d45dd8..8d9f51786 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/statementStatistics/po/ImmediateInventoryPO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/statementStatistics/po/ImmediateInventoryPO.java @@ -42,10 +42,18 @@ public class ImmediateInventoryPO { @Excel(name = "物料条形码") private String barCode; + @ApiModelProperty("规格型号") + @Excel(name = "规格型号") + private String specificationModel; + @ApiModelProperty("库存数量") @Excel(name = "库存数量") private BigDecimal inventoryQuantity; + @ApiModelProperty("库存数量合计(当前查询条件下所有库存数量之和)") + @Excel(name = "库存数量合计") + private BigDecimal totalInventoryQuantity; + @ApiModelProperty("可用数量 ") @Excel(name = "可用数量 ") private BigDecimal allocationQuantity; diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/statementStatistics/todo/ImmediateInventoryDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/statementStatistics/todo/ImmediateInventoryDO.java index 326891292..17049ffc4 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/statementStatistics/todo/ImmediateInventoryDO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/statementStatistics/todo/ImmediateInventoryDO.java @@ -44,6 +44,10 @@ public class ImmediateInventoryDO extends BaseVOEntity { @Excel(name = "物料条形码") private String barCode; + @ApiModelProperty("规格型号") + @Excel(name = "规格型号") + private String specificationModel; + @ApiModelProperty("仓库id") @Excel(name = "仓库id") private Long warehouseId; diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/statementStatistics/ImmediateInventoryDTO.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/statementStatistics/ImmediateInventoryDTO.java index 8310831b6..34fa01360 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/statementStatistics/ImmediateInventoryDTO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/statementStatistics/ImmediateInventoryDTO.java @@ -45,6 +45,10 @@ public class ImmediateInventoryDTO { @Excel(name = "物料条形码") private String barCode; + @ApiModelProperty("规格型号") + @Excel(name = "规格型号") + private String specificationModel; + @ApiModelProperty("仓库id") @Excel(name = "仓库id") private Long warehouseId; diff --git a/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml b/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml index 484fcf602..5a5708903 100644 --- a/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml +++ b/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml @@ -162,7 +162,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and a.material_base_info_id = #{materialBaseInfoId} - and a.material_detail_id, = #{materialDetailId} + and a.material_detail_id = #{materialDetailId} @@ -313,7 +313,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and mi.material_base_info_id = #{materialBaseInfoId} - and mi.material_detail_id, = #{materialDetailId} + and mi.material_detail_id = #{materialDetailId} @@ -781,12 +781,280 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and container_id = #{containerId} + + + and a.organization_id = #{organizationId} + + + + and a.top_organization_id = #{topOrganizationId} + + + + and (a.shipper_name = #{shipperName} OR b.shipper_name = #{shipperName}) + + + + and a.shipper_id = #{shipperId} + + + + and a.warehouse_id = #{warehouseId} + + + + and a.warehouse_code = #{warehouseCode} + + + + and a.warehouse_name like concat('%', #{warehouseName}, '%') + + + + and b.material_name = #{materialName} + + + + and b.material_code = #{materialCode} + + + + and b.bar_code = #{barCode} + + + + and b.specification_model = #{specificationModel} + + + + and a.batch_number = #{batchNumber} + + + + and ifnull( + ( + SELECT + sum( c.receipt_quantity ) + FROM + receipt_material_detail c + LEFT JOIN stock_receipt_order d ON c.receipt_order_number = d.receipt_order_number + AND d.del_flag = 1 + LEFT JOIN stock_in_order e ON d.in_order_number = e.in_order_number and e.DEL_FLAG = 1 and d.DEL_FLAG = 1 + WHERE + c.del_flag = 1 and d.STATUS = 3 + AND e.warehouse_id = a.warehouse_id + AND (a.shipper_id IS NULL OR e.shipper_id = a.shipper_id) + AND c.material_base_info_id = a.material_base_info_id + and (c.BATCH_REF_NO = a.batch_ref_no or (c.BATCH_REF_NO is null and a.BATCH_REF_NO is null)) + and (c.SHEET_REF_NO = a.sheet_ref_no or (c.SHEET_REF_NO is null and a.SHEET_REF_NO is null)) + and (c.BOX_PALLET_NO = a.BOX_PALLET_NO or (c.BOX_PALLET_NO is null and a.BOX_PALLET_NO is null)) + and (c.EXT_ATTR_1 = a.EXT_ATTR_1 or (c.EXT_ATTR_1 is null and a.EXT_ATTR_1 is null)) + and (c.EXT_ATTR_2 = a.EXT_ATTR_2 or (c.EXT_ATTR_2 is null and a.EXT_ATTR_2 is null)) + and (c.EXT_ATTR_3 = a.EXT_ATTR_3 or (c.EXT_ATTR_3 is null and a.EXT_ATTR_3 is null)) + and (c.EXT_ATTR_4 = a.EXT_ATTR_4 or (c.EXT_ATTR_4 is null and a.EXT_ATTR_4 is null)) + and (c.PRODUCTION_DATE = a.PRODUCTION_DATE or (c.PRODUCTION_DATE is null and a.PRODUCTION_DATE is null)) + and (c.EXPIRY_DATE = a.EXPIRY_DATE or (c.EXPIRY_DATE is null and a.EXPIRY_DATE is null)) + and (c.INVENTORY_DATE = a.INVENTORY_DATE or (c.INVENTORY_DATE is null and a.INVENTORY_DATE is null)) + ), + 0 + )> #{receivedQuantityStart} + + + + and ifnull( + ( + SELECT + sum( c.receipt_quantity ) + FROM + receipt_material_detail c + LEFT JOIN stock_receipt_order d ON c.receipt_order_number = d.receipt_order_number + AND d.del_flag = 1 + LEFT JOIN stock_in_order e ON d.in_order_number = e.in_order_number and e.DEL_FLAG = 1 and d.DEL_FLAG = 1 + WHERE + c.del_flag = 1 and d.STATUS = 3 + AND e.warehouse_id = a.warehouse_id + AND (a.shipper_id IS NULL OR e.shipper_id = a.shipper_id) + AND c.material_base_info_id = a.material_base_info_id + and (c.BATCH_REF_NO = a.batch_ref_no or (c.BATCH_REF_NO is null and a.BATCH_REF_NO is null)) + and (c.SHEET_REF_NO = a.sheet_ref_no or (c.SHEET_REF_NO is null and a.SHEET_REF_NO is null)) + and (c.BOX_PALLET_NO = a.BOX_PALLET_NO or (c.BOX_PALLET_NO is null and a.BOX_PALLET_NO is null)) + and (c.EXT_ATTR_1 = a.EXT_ATTR_1 or (c.EXT_ATTR_1 is null and a.EXT_ATTR_1 is null)) + and (c.EXT_ATTR_2 = a.EXT_ATTR_2 or (c.EXT_ATTR_2 is null and a.EXT_ATTR_2 is null)) + and (c.EXT_ATTR_3 = a.EXT_ATTR_3 or (c.EXT_ATTR_3 is null and a.EXT_ATTR_3 is null)) + and (c.EXT_ATTR_4 = a.EXT_ATTR_4 or (c.EXT_ATTR_4 is null and a.EXT_ATTR_4 is null)) + and (c.PRODUCTION_DATE = a.PRODUCTION_DATE or (c.PRODUCTION_DATE is null and a.PRODUCTION_DATE is null)) + and (c.EXPIRY_DATE = a.EXPIRY_DATE or (c.EXPIRY_DATE is null and a.EXPIRY_DATE is null)) + and (c.INVENTORY_DATE = a.INVENTORY_DATE or (c.INVENTORY_DATE is null and a.INVENTORY_DATE is null)) + ), + 0 + ) < #{receivedQuantityEnd} + + + + and ifnull( + ( + SELECT + sum( c.shelves_quantity ) + FROM + shelf_material_detail c + LEFT JOIN stock_shelf_order d ON c.shelf_order_number = d.shelf_order_number + AND d.del_flag = 1 + LEFT JOIN stock_in_order e ON d.in_order_number = e.in_order_number and e.DEL_FLAG = 1 and d.DEL_FLAG = 1 + WHERE + c.del_flag = 1 + AND e.warehouse_id = a.warehouse_id + AND (a.shipper_id IS NULL OR e.shipper_id = a.shipper_id) + AND c.material_base_info_id = a.material_base_info_id + ), + 0 + ) > #{shelvesQuantityStart} + + + + and ifnull( + ( + SELECT + sum( c.shelves_quantity ) + FROM + shelf_material_detail c + LEFT JOIN stock_shelf_order d ON c.shelf_order_number = d.shelf_order_number + AND d.del_flag = 1 + LEFT JOIN stock_in_order e ON d.in_order_number = e.in_order_number and e.DEL_FLAG = 1 and d.DEL_FLAG = 1 + WHERE + c.del_flag = 1 + AND e.warehouse_id = a.warehouse_id + AND (a.shipper_id IS NULL OR e.shipper_id = a.shipper_id) + AND c.material_base_info_id = a.material_base_info_id + ), + 0 + ) < #{shelvesQuantityEnd} + + + + and ifnull( + ( + SELECT + sum( c.picking_quantity ) + FROM + picking_material_detail c + LEFT JOIN picking_order d ON c.picking_order_number = d.PICKING_ORDER_NUMBER and c.del_flag = 1 and d.del_flag=1 + left join STOCK_OUT_ORDER e ON d.ORDER_NUMBER = e.OUT_ORDER_NUMBER and e.del_flag = 1 + WHERE + c.del_flag = 1 and d.STATUS = 3 and e.STATUS = 7 + AND d.warehouse_id = a.warehouse_id + AND (a.shipper_id IS NULL OR d.shipper_id = a.shipper_id) + AND c.material_base_info_id = a.material_base_info_id + AND c.MATERIAL_INVENTORY_ID = a.MATERIAL_INVENTORY_ID + ), + 0 + ) > #{pickQuantityStart} + + + + and ifnull( + ( + SELECT + sum( c.picking_quantity ) + FROM + picking_material_detail c + LEFT JOIN picking_order d ON c.picking_order_number = d.PICKING_ORDER_NUMBER and c.del_flag = 1 and d.del_flag=1 + left join STOCK_OUT_ORDER e ON d.ORDER_NUMBER = e.OUT_ORDER_NUMBER and e.del_flag = 1 + WHERE + c.del_flag = 1 and d.STATUS = 3 and e.STATUS = 7 + AND d.warehouse_id = a.warehouse_id + AND (a.shipper_id IS NULL OR d.shipper_id = a.shipper_id) + AND c.material_base_info_id = a.material_base_info_id + AND c.MATERIAL_INVENTORY_ID = a.MATERIAL_INVENTORY_ID + ), + 0 + ) < #{pickQuantityEnd} + + + + and + ifnull( + ( + SELECT + SUM(c.CHECK_QUANTITY) AS CHECK_QUANTITY + FROM + OUT_MATERIAL_DETAIL c + LEFT JOIN STOCK_OUT_ORDER d ON c.OUT_ORDER_NUMBER = d.OUT_ORDER_NUMBER and c.del_flag = 1 and d.del_flag = 1 + LEFT JOIN HANDOVER_TASK_ORDER e ON d.OUT_ORDER_NUMBER = e.ORDER_NUMBER + WHERE + d.CHECK_STATUS in (2,3) and e.STATUS = 1 and d.STATUS in (8,12) + AND d.DEL_FLAG = 1 + AND c.DEL_FLAG = 1 + and e.del_flag = 1 + AND d.warehouse_id = a.warehouse_id + AND (a.shipper_id IS NULL OR d.shipper_id = a.shipper_id) + AND c.material_base_info_id = a.material_base_info_id + AND c.MATERIAL_INVENTORY_ID = a.MATERIAL_INVENTORY_ID + ), + 0 + ) > #{checkQuantityBegin} + + + + and + ifnull( + ( + SELECT + SUM(c.CHECK_QUANTITY) AS CHECK_QUANTITY + FROM + OUT_MATERIAL_DETAIL c + LEFT JOIN STOCK_OUT_ORDER d ON c.OUT_ORDER_NUMBER = d.OUT_ORDER_NUMBER and c.del_flag = 1 and d.del_flag = 1 + LEFT JOIN HANDOVER_TASK_ORDER e ON d.OUT_ORDER_NUMBER = e.ORDER_NUMBER + WHERE + d.CHECK_STATUS in (2,3) and e.STATUS = 1 and d.STATUS in (8,12) + AND d.DEL_FLAG = 1 + AND c.DEL_FLAG = 1 + and e.del_flag = 1 + AND d.warehouse_id = a.warehouse_id + AND (a.shipper_id IS NULL OR d.shipper_id = a.shipper_id) + AND c.material_base_info_id = a.material_base_info_id + AND c.MATERIAL_INVENTORY_ID = a.MATERIAL_INVENTORY_ID + ), + 0 + ) < #{checkQuantityEnd} + + + + and a.inventory_quantity = #{inventoryQuantity} + + + + and a.inventory_quantity > #{inventoryQuantityStart} + + + + and a.inventory_quantity < #{inventoryQuantityEnd} + + + + and a.allocation_quantity > #{allocationQuantityStart} + + + + and a.allocation_quantity < #{allocationQuantityEnd} + + + + and a.freeze_quantity > #{freezeQuantityStart} + + + + and a.freeze_quantity < #{freezeQuantityEnd} + + + + + @@ -826,6 +1094,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" b.material_name, b.material_code, b.bar_code, + b.specification_model, @@ -995,271 +1264,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" WHERE a.del_flag = 1 - - and a.organization_id = #{organizationId} - - - - and a.top_organization_id = #{topOrganizationId} - - - - and (a.shipper_name = #{shipperName} OR b.shipper_name = #{shipperName}) - - - - and a.shipper_id = #{shipperId} - - - - and a.warehouse_id = #{warehouseId} - - - - and a.warehouse_code = #{warehouseCode} - - - - and a.warehouse_name like concat('%', #{warehouseName}, '%') - - - - and b.material_name = #{materialName} - - - - and b.material_code = #{materialCode} - - - - and b.bar_code = #{barCode} - - - - and a.batch_number = #{batchNumber} - - - - and ifnull( - ( - SELECT - sum( c.receipt_quantity ) - FROM - receipt_material_detail c - LEFT JOIN stock_receipt_order d ON c.receipt_order_number = d.receipt_order_number - AND d.del_flag = 1 - LEFT JOIN stock_in_order e ON d.in_order_number = e.in_order_number and e.DEL_FLAG = 1 and d.DEL_FLAG = 1 - WHERE - c.del_flag = 1 and d.STATUS = 3 - AND e.warehouse_id = a.warehouse_id - AND (a.shipper_id IS NULL OR e.shipper_id = a.shipper_id) - AND c.material_base_info_id = a.material_base_info_id - and (c.BATCH_REF_NO = a.batch_ref_no or (c.BATCH_REF_NO is null and a.BATCH_REF_NO is null)) - and (c.SHEET_REF_NO = a.sheet_ref_no or (c.SHEET_REF_NO is null and a.SHEET_REF_NO is null)) - and (c.BOX_PALLET_NO = a.BOX_PALLET_NO or (c.BOX_PALLET_NO is null and a.BOX_PALLET_NO is null)) - and (c.EXT_ATTR_1 = a.EXT_ATTR_1 or (c.EXT_ATTR_1 is null and a.EXT_ATTR_1 is null)) - and (c.EXT_ATTR_2 = a.EXT_ATTR_2 or (c.EXT_ATTR_2 is null and a.EXT_ATTR_2 is null)) - and (c.EXT_ATTR_3 = a.EXT_ATTR_3 or (c.EXT_ATTR_3 is null and a.EXT_ATTR_3 is null)) - and (c.EXT_ATTR_4 = a.EXT_ATTR_4 or (c.EXT_ATTR_4 is null and a.EXT_ATTR_4 is null)) - and (c.PRODUCTION_DATE = a.PRODUCTION_DATE or (c.PRODUCTION_DATE is null and a.PRODUCTION_DATE is null)) - and (c.EXPIRY_DATE = a.EXPIRY_DATE or (c.EXPIRY_DATE is null and a.EXPIRY_DATE is null)) - and (c.INVENTORY_DATE = a.INVENTORY_DATE or (c.INVENTORY_DATE is null and a.INVENTORY_DATE is null)) - ), - 0 - )> #{receivedQuantityStart} - - - - and ifnull( - ( - SELECT - sum( c.receipt_quantity ) - FROM - receipt_material_detail c - LEFT JOIN stock_receipt_order d ON c.receipt_order_number = d.receipt_order_number - AND d.del_flag = 1 - LEFT JOIN stock_in_order e ON d.in_order_number = e.in_order_number and e.DEL_FLAG = 1 and d.DEL_FLAG = 1 - WHERE - c.del_flag = 1 and d.STATUS = 3 - AND e.warehouse_id = a.warehouse_id - AND (a.shipper_id IS NULL OR e.shipper_id = a.shipper_id) - AND c.material_base_info_id = a.material_base_info_id - and (c.BATCH_REF_NO = a.batch_ref_no or (c.BATCH_REF_NO is null and a.BATCH_REF_NO is null)) - and (c.SHEET_REF_NO = a.sheet_ref_no or (c.SHEET_REF_NO is null and a.SHEET_REF_NO is null)) - and (c.BOX_PALLET_NO = a.BOX_PALLET_NO or (c.BOX_PALLET_NO is null and a.BOX_PALLET_NO is null)) - and (c.EXT_ATTR_1 = a.EXT_ATTR_1 or (c.EXT_ATTR_1 is null and a.EXT_ATTR_1 is null)) - and (c.EXT_ATTR_2 = a.EXT_ATTR_2 or (c.EXT_ATTR_2 is null and a.EXT_ATTR_2 is null)) - and (c.EXT_ATTR_3 = a.EXT_ATTR_3 or (c.EXT_ATTR_3 is null and a.EXT_ATTR_3 is null)) - and (c.EXT_ATTR_4 = a.EXT_ATTR_4 or (c.EXT_ATTR_4 is null and a.EXT_ATTR_4 is null)) - and (c.PRODUCTION_DATE = a.PRODUCTION_DATE or (c.PRODUCTION_DATE is null and a.PRODUCTION_DATE is null)) - and (c.EXPIRY_DATE = a.EXPIRY_DATE or (c.EXPIRY_DATE is null and a.EXPIRY_DATE is null)) - and (c.INVENTORY_DATE = a.INVENTORY_DATE or (c.INVENTORY_DATE is null and a.INVENTORY_DATE is null)) - ), - 0 - ) < #{receivedQuantityEnd} - - - - and ifnull( - ( - SELECT - sum( c.shelves_quantity ) - FROM - shelf_material_detail c - LEFT JOIN stock_shelf_order d ON c.shelf_order_number = d.shelf_order_number - AND d.del_flag = 1 - LEFT JOIN stock_in_order e ON d.in_order_number = e.in_order_number and e.DEL_FLAG = 1 and d.DEL_FLAG = 1 - WHERE - c.del_flag = 1 - AND e.warehouse_id = a.warehouse_id - AND (a.shipper_id IS NULL OR e.shipper_id = a.shipper_id) - AND c.material_base_info_id = a.material_base_info_id - ), - 0 - ) > #{shelvesQuantityStart} - - - - and ifnull( - ( - SELECT - sum( c.shelves_quantity ) - FROM - shelf_material_detail c - LEFT JOIN stock_shelf_order d ON c.shelf_order_number = d.shelf_order_number - AND d.del_flag = 1 - LEFT JOIN stock_in_order e ON d.in_order_number = e.in_order_number and e.DEL_FLAG = 1 and d.DEL_FLAG = 1 - WHERE - c.del_flag = 1 - AND e.warehouse_id = a.warehouse_id - AND (a.shipper_id IS NULL OR e.shipper_id = a.shipper_id) - AND c.material_base_info_id = a.material_base_info_id - ), - 0 - ) < #{shelvesQuantityEnd} - - - - and ifnull( - ( - SELECT - sum( c.picking_quantity ) - FROM - picking_material_detail c - LEFT JOIN picking_order d ON c.picking_order_number = d.PICKING_ORDER_NUMBER and c.del_flag = 1 and d.del_flag=1 - left join STOCK_OUT_ORDER e ON d.ORDER_NUMBER = e.OUT_ORDER_NUMBER and e.del_flag = 1 - WHERE - c.del_flag = 1 and d.STATUS = 3 and e.STATUS = 7 - AND d.warehouse_id = a.warehouse_id - AND (a.shipper_id IS NULL OR d.shipper_id = a.shipper_id) - AND c.material_base_info_id = a.material_base_info_id - AND c.MATERIAL_INVENTORY_ID = a.MATERIAL_INVENTORY_ID - ), - 0 - ) > #{pickQuantityStart} - - - - and ifnull( - ( - SELECT - sum( c.picking_quantity ) - FROM - picking_material_detail c - LEFT JOIN picking_order d ON c.picking_order_number = d.PICKING_ORDER_NUMBER and c.del_flag = 1 and d.del_flag=1 - left join STOCK_OUT_ORDER e ON d.ORDER_NUMBER = e.OUT_ORDER_NUMBER and e.del_flag = 1 - WHERE - c.del_flag = 1 and d.STATUS = 3 and e.STATUS = 7 - AND d.warehouse_id = a.warehouse_id - AND (a.shipper_id IS NULL OR d.shipper_id = a.shipper_id) - AND c.material_base_info_id = a.material_base_info_id - AND c.MATERIAL_INVENTORY_ID = a.MATERIAL_INVENTORY_ID - ), - 0 - ) < #{pickQuantityEnd} - - - - - and - ifnull( - ( - SELECT - SUM(c.CHECK_QUANTITY) AS CHECK_QUANTITY - FROM - OUT_MATERIAL_DETAIL c - LEFT JOIN STOCK_OUT_ORDER d ON c.OUT_ORDER_NUMBER = d.OUT_ORDER_NUMBER and c.del_flag = 1 and d.del_flag = 1 - LEFT JOIN HANDOVER_TASK_ORDER e ON d.OUT_ORDER_NUMBER = e.ORDER_NUMBER - WHERE - d.CHECK_STATUS in (2,3) and e.STATUS = 1 and d.STATUS in (8,12) - AND d.DEL_FLAG = 1 - AND c.DEL_FLAG = 1 - and e.del_flag = 1 - AND d.warehouse_id = a.warehouse_id - AND (a.shipper_id IS NULL OR d.shipper_id = a.shipper_id) - AND c.material_base_info_id = a.material_base_info_id - AND c.MATERIAL_INVENTORY_ID = a.MATERIAL_INVENTORY_ID - ), - 0 - ) > #{checkQuantityBegin} - - - - and - ifnull( - ( - SELECT - SUM(c.CHECK_QUANTITY) AS CHECK_QUANTITY - FROM - OUT_MATERIAL_DETAIL c - LEFT JOIN STOCK_OUT_ORDER d ON c.OUT_ORDER_NUMBER = d.OUT_ORDER_NUMBER and c.del_flag = 1 and d.del_flag = 1 - LEFT JOIN HANDOVER_TASK_ORDER e ON d.OUT_ORDER_NUMBER = e.ORDER_NUMBER - WHERE - d.CHECK_STATUS in (2,3) and e.STATUS = 1 and d.STATUS in (8,12) - AND d.DEL_FLAG = 1 - AND c.DEL_FLAG = 1 - and e.del_flag = 1 - AND d.warehouse_id = a.warehouse_id - AND (a.shipper_id IS NULL OR d.shipper_id = a.shipper_id) - AND c.material_base_info_id = a.material_base_info_id - AND c.MATERIAL_INVENTORY_ID = a.MATERIAL_INVENTORY_ID - ), - 0 - ) < #{checkQuantityEnd} - - - - and a.inventory_quantity = #{inventoryQuantity} - - - - and a.inventory_quantity > #{inventoryQuantityStart} - - - - and a.inventory_quantity < #{inventoryQuantityEnd} - - - - and a.allocation_quantity > #{allocationQuantityStart} - - - - and a.allocation_quantity < #{allocationQuantityEnd} - - - - and a.freeze_quantity > #{freezeQuantityStart} - - - - and a.freeze_quantity < #{freezeQuantityEnd} - + ORDER BY GREATEST( IFNULL(a.update_time, '1970-01-01 00:00:00'), IFNULL(( @@ -1330,6 +1335,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + +