拣货单净重毛重体积面积修改

This commit is contained in:
秦鸿展
2026-03-17 17:08:26 +08:00
parent 9ab680216d
commit 9dbd591bb6
2 changed files with 17 additions and 13 deletions
@@ -307,6 +307,9 @@ public class StockShelfOrderDomainService {
throw new ServiceException("上架单【" + stockShelfOrderPO.getShelfOrderNumber() + "】数据已被更新,请刷新后重新进行上架"); throw new ServiceException("上架单【" + stockShelfOrderPO.getShelfOrderNumber() + "】数据已被更新,请刷新后重新进行上架");
} }
//上架保存容器使用记录 //上架保存容器使用记录
if (CollectionUtils.isEmpty(stockShelfOrderDO.getMaterialDetailList())) {
throw new ServiceException("上架数量不能为空,请填写上架数量后再提交");
}
genContainerUsageRecord(stockShelfOrderDO); genContainerUsageRecord(stockShelfOrderDO);
//修改物料明细信息 //修改物料明细信息
shelfMaterialDetailService.batchShelfUpdate(stockShelfOrderDO); shelfMaterialDetailService.batchShelfUpdate(stockShelfOrderDO);
@@ -1233,7 +1236,8 @@ public class StockShelfOrderDomainService {
public void genContainerUsageRecord(StockShelfOrderDO stockShelfOrderDO) { public void genContainerUsageRecord(StockShelfOrderDO stockShelfOrderDO) {
List<ShelfMaterialDetailDO> shelfMaterialDetailDOList = stockShelfOrderDO.getMaterialDetailList(); List<ShelfMaterialDetailDO> shelfMaterialDetailDOList = stockShelfOrderDO.getMaterialDetailList();
if (CollectionUtils.isEmpty(shelfMaterialDetailDOList)) { if (CollectionUtils.isEmpty(shelfMaterialDetailDOList)) {
throw new ServiceException("物料明细不能为空"); // 无需处理的明细(上架数量全为0时跳过),直接返回
return;
} }
//所有明细 //所有明细
List<ShelfMaterialDetail> listShelfMaterialDetail = shelfMaterialDetailService.list(new QueryWrapper<ShelfMaterialDetail>().lambda().eq(ShelfMaterialDetail::getShelfOrderNumber, stockShelfOrderDO.getShelfOrderNumber())); List<ShelfMaterialDetail> listShelfMaterialDetail = shelfMaterialDetailService.list(new QueryWrapper<ShelfMaterialDetail>().lambda().eq(ShelfMaterialDetail::getShelfOrderNumber, stockShelfOrderDO.getShelfOrderNumber()));
@@ -191,11 +191,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="queryTotalsByOutNumberAndBaseId" resultType="com.mhd.wms.domain.pickingMaterialDetail.repository.po.PickingMaterialDetailPO"> <select id="queryTotalsByOutNumberAndBaseId" resultType="com.mhd.wms.domain.pickingMaterialDetail.repository.po.PickingMaterialDetailPO">
SELECT SELECT
IFNULL(SUM(b.PICKING_QUANTITY), 0) AS picking_quantity, COALESCE(SUM(b.PICKING_QUANTITY), 0) AS picking_quantity,
IFNULL(SUM(b.TOTAL_AREA), 0) AS total_area, COALESCE(SUM(b.TOTAL_AREA), 0) AS total_area,
IFNULL(SUM(b.TOTAL_VOLUME), 0) AS total_volume, COALESCE(SUM(b.TOTAL_VOLUME), 0) AS total_volume,
IFNULL(SUM(b.TOTAL_NET_WEIGHT), 0) AS total_net_weight, COALESCE(SUM(b.TOTAL_NET_WEIGHT), 0) AS total_net_weight,
IFNULL(SUM(b.TOTAL_GROSS_WEIGHT), 0) AS total_gross_weight COALESCE(SUM(b.TOTAL_GROSS_WEIGHT), 0) AS total_gross_weight
FROM FROM
PICKING_MATERIAL_DETAIL b PICKING_MATERIAL_DETAIL b
WHERE WHERE
@@ -204,7 +204,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select> </select>
<select id="sumPickingQuantityByOutOrderNumber" resultType="java.math.BigDecimal"> <select id="sumPickingQuantityByOutOrderNumber" resultType="java.math.BigDecimal">
SELECT IFNULL(SUM(pmd.PICKING_QUANTITY), 0) SELECT COALESCE(SUM(pmd.PICKING_QUANTITY), 0)
FROM picking_material_detail pmd FROM picking_material_detail pmd
INNER JOIN out_material_detail omd ON pmd.OUT_UNIQUE_ID = omd.UNIQUE_ID AND omd.DEL_FLAG = 1 INNER JOIN out_material_detail omd ON pmd.OUT_UNIQUE_ID = omd.UNIQUE_ID AND omd.DEL_FLAG = 1
WHERE omd.OUT_ORDER_NUMBER = #{outOrderNumber} WHERE omd.OUT_ORDER_NUMBER = #{outOrderNumber}
@@ -217,7 +217,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
INNER JOIN out_material_detail omd ON pmd.OUT_UNIQUE_ID = omd.UNIQUE_ID AND omd.DEL_FLAG = 1 INNER JOIN out_material_detail omd ON pmd.OUT_UNIQUE_ID = omd.UNIQUE_ID AND omd.DEL_FLAG = 1
WHERE omd.OUT_ORDER_NUMBER = #{outOrderNumber} WHERE omd.OUT_ORDER_NUMBER = #{outOrderNumber}
AND pmd.DEL_FLAG = 1 AND pmd.DEL_FLAG = 1
AND IFNULL(pmd.PICKING_QUANTITY, 0) > 0 AND COALESCE(pmd.PICKING_QUANTITY, 0) > 0
</select> </select>
<select id="selectOutUniqueIdsWithPickingByOutOrderNumber" resultType="java.lang.Long"> <select id="selectOutUniqueIdsWithPickingByOutOrderNumber" resultType="java.lang.Long">
@@ -226,7 +226,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
INNER JOIN out_material_detail omd ON pmd.OUT_UNIQUE_ID = omd.UNIQUE_ID AND omd.DEL_FLAG = 1 INNER JOIN out_material_detail omd ON pmd.OUT_UNIQUE_ID = omd.UNIQUE_ID AND omd.DEL_FLAG = 1
WHERE omd.OUT_ORDER_NUMBER = #{outOrderNumber} WHERE omd.OUT_ORDER_NUMBER = #{outOrderNumber}
AND pmd.DEL_FLAG = 1 AND pmd.DEL_FLAG = 1
AND IFNULL(pmd.PICKING_QUANTITY, 0) > 0 AND COALESCE(pmd.PICKING_QUANTITY, 0) > 0
</select> </select>
<update id="addQuantity" parameterType="com.mhd.wms.domain.pickingMaterialDetail.repository.todo.PickingMaterialDetailDOByUpdate"> <update id="addQuantity" parameterType="com.mhd.wms.domain.pickingMaterialDetail.repository.todo.PickingMaterialDetailDOByUpdate">
@@ -240,22 +240,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<!-- 净重、毛重、体积、面积:拣货填写值直接覆盖,不累加 --> <!-- 净重、毛重、体积、面积:拣货填写值直接覆盖,不累加 -->
<trim prefix="total_net_weight = CASE unique_id" suffix="END,"> <trim prefix="total_net_weight = CASE unique_id" suffix="END,">
<foreach collection="pickingMaterialDetailList" item="item" index="index"> <foreach collection="pickingMaterialDetailList" item="item" index="index">
WHEN #{item.uniqueId} THEN IFNULL(#{item.totalNetWeight}, total_net_weight) WHEN #{item.uniqueId} THEN COALESCE(#{item.totalNetWeight}, total_net_weight)
</foreach> </foreach>
</trim> </trim>
<trim prefix="total_gross_weight = CASE unique_id" suffix="END,"> <trim prefix="total_gross_weight = CASE unique_id" suffix="END,">
<foreach collection="pickingMaterialDetailList" item="item" index="index"> <foreach collection="pickingMaterialDetailList" item="item" index="index">
WHEN #{item.uniqueId} THEN IFNULL(#{item.totalGrossWeight}, total_gross_weight) WHEN #{item.uniqueId} THEN COALESCE(#{item.totalGrossWeight}, total_gross_weight)
</foreach> </foreach>
</trim> </trim>
<trim prefix="total_volume = CASE unique_id" suffix="END,"> <trim prefix="total_volume = CASE unique_id" suffix="END,">
<foreach collection="pickingMaterialDetailList" item="item" index="index"> <foreach collection="pickingMaterialDetailList" item="item" index="index">
WHEN #{item.uniqueId} THEN IFNULL(#{item.totalVolume}, total_volume) WHEN #{item.uniqueId} THEN COALESCE(#{item.totalVolume}, total_volume)
</foreach> </foreach>
</trim> </trim>
<trim prefix="total_area = CASE unique_id" suffix="END,"> <trim prefix="total_area = CASE unique_id" suffix="END,">
<foreach collection="pickingMaterialDetailList" item="item" index="index"> <foreach collection="pickingMaterialDetailList" item="item" index="index">
WHEN #{item.uniqueId} THEN IFNULL(#{item.totalArea}, total_area) WHEN #{item.uniqueId} THEN COALESCE(#{item.totalArea}, total_area)
</foreach> </foreach>
</trim> </trim>
update_by = #{updateBy}, update_by = #{updateBy},