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

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() + "】数据已被更新,请刷新后重新进行上架");
}
//上架保存容器使用记录
if (CollectionUtils.isEmpty(stockShelfOrderDO.getMaterialDetailList())) {
throw new ServiceException("上架数量不能为空,请填写上架数量后再提交");
}
genContainerUsageRecord(stockShelfOrderDO);
//修改物料明细信息
shelfMaterialDetailService.batchShelfUpdate(stockShelfOrderDO);
@@ -1233,7 +1236,8 @@ public class StockShelfOrderDomainService {
public void genContainerUsageRecord(StockShelfOrderDO stockShelfOrderDO) {
List<ShelfMaterialDetailDO> shelfMaterialDetailDOList = stockShelfOrderDO.getMaterialDetailList();
if (CollectionUtils.isEmpty(shelfMaterialDetailDOList)) {
throw new ServiceException("物料明细不能为空");
// 无需处理的明细(上架数量全为0时跳过),直接返回
return;
}
//所有明细
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
IFNULL(SUM(b.PICKING_QUANTITY), 0) AS picking_quantity,
IFNULL(SUM(b.TOTAL_AREA), 0) AS total_area,
IFNULL(SUM(b.TOTAL_VOLUME), 0) AS total_volume,
IFNULL(SUM(b.TOTAL_NET_WEIGHT), 0) AS total_net_weight,
IFNULL(SUM(b.TOTAL_GROSS_WEIGHT), 0) AS total_gross_weight
COALESCE(SUM(b.PICKING_QUANTITY), 0) AS picking_quantity,
COALESCE(SUM(b.TOTAL_AREA), 0) AS total_area,
COALESCE(SUM(b.TOTAL_VOLUME), 0) AS total_volume,
COALESCE(SUM(b.TOTAL_NET_WEIGHT), 0) AS total_net_weight,
COALESCE(SUM(b.TOTAL_GROSS_WEIGHT), 0) AS total_gross_weight
FROM
PICKING_MATERIAL_DETAIL b
WHERE
@@ -204,7 +204,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select>
<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
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}
@@ -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
WHERE omd.OUT_ORDER_NUMBER = #{outOrderNumber}
AND pmd.DEL_FLAG = 1
AND IFNULL(pmd.PICKING_QUANTITY, 0) > 0
AND COALESCE(pmd.PICKING_QUANTITY, 0) > 0
</select>
<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
WHERE omd.OUT_ORDER_NUMBER = #{outOrderNumber}
AND pmd.DEL_FLAG = 1
AND IFNULL(pmd.PICKING_QUANTITY, 0) > 0
AND COALESCE(pmd.PICKING_QUANTITY, 0) > 0
</select>
<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,">
<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>
</trim>
<trim prefix="total_gross_weight = CASE unique_id" suffix="END,">
<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>
</trim>
<trim prefix="total_volume = CASE unique_id" suffix="END,">
<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>
</trim>
<trim prefix="total_area = CASE unique_id" suffix="END,">
<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>
</trim>
update_by = #{updateBy},