From 56b39702b559bfc001b0c96820228c0b4bf79bd2 Mon Sep 17 00:00:00 2001 From: rcx <3084692334@qq.com> Date: Wed, 5 Aug 2026 18:18:08 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9AWMS=20=E6=A8=A1=E5=9D=97=20?= =?UTF-8?q?=E3=80=8C=E5=BA=93=E5=AD=98=E6=9F=A5=E8=AF=A2=E3=80=8D-?= =?UTF-8?q?=E3=80=8C=E5=8D=B3=E6=97=B6=E5=BA=93=E5=AD=98=E3=80=8D=20=20=20?= =?UTF-8?q?=20=20=201.=20=E5=AE=8C=E6=88=90=E5=8D=B3=E6=97=B6=E5=BA=93?= =?UTF-8?q?=E5=AD=98=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3=E6=94=B9=E9=80=A0?= =?UTF-8?q?=EF=BC=9AJSON=20=E8=BF=94=E5=9B=9E=E6=AF=8F=E4=B8=AA=E5=AF=B9?= =?UTF-8?q?=E8=B1=A1=E4=B8=AD=E8=A1=A5=E5=85=85=E8=A7=84=E6=A0=BC=E5=9E=8B?= =?UTF-8?q?=E5=8F=B7=E4=B8=8E=E5=BA=93=E5=AD=98=E6=95=B0=E9=87=8F=E5=90=88?= =?UTF-8?q?=E8=AE=A1=E5=AD=97=E6=AE=B5=E3=80=82=20=20=20=20=20=202.=20?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=89=8D=E7=AB=AF=E5=9F=BA=E4=BA=8E=E8=A7=84?= =?UTF-8?q?=E6=A0=BC=E5=9E=8B=E5=8F=B7=E8=BF=9B=E8=A1=8C=E5=8D=B3=E6=97=B6?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E7=9A=84=E7=BB=84=E5=90=88=E6=9D=A1=E4=BB=B6?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../facade/IMaterialInventoryService.java | 6 + .../mapper/MaterialInventoryMapper.java | 6 + .../persistence/MaterialInventoryImpl.java | 18 + .../MaterialInventoryDomainService.java | 14 + .../po/ImmediateInventoryPO.java | 8 + .../todo/ImmediateInventoryDO.java | 4 + .../ImmediateInventoryDTO.java | 4 + .../MaterialInventoryMapper.xml | 548 +++++++++--------- 8 files changed, 341 insertions(+), 267 deletions(-) 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" + +