Browse Source

乘以箱数

ecss-tx
han\hanst 1 month ago
parent
commit
eaad85168b
  1. 23
      src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelExcelServiceImpl.java

23
src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelExcelServiceImpl.java

@ -3457,7 +3457,7 @@ public class CoDelExcelServiceImpl implements CoDelExcelService {
* <li>1. 查询所有装箱明细不按pn分组避免箱数统计错误</li> * <li>1. 查询所有装箱明细不按pn分组避免箱数统计错误</li>
* <li>2. 按箱子seq_no分组每个箱子只计算一次体积</li> * <li>2. 按箱子seq_no分组每个箱子只计算一次体积</li>
* <li>3. 根据箱子里的主要物料获取包装信息长宽高</li> * <li>3. 根据箱子里的主要物料获取包装信息长宽高</li>
* <li>4. 单箱体积 = * * 总体积 = Σ(单箱体积)</li>
* <li>4. 单箱体积 = * * 该箱号体积 = 单箱体积 * box_qty总体积 = Σ(该箱号体积)</li>
* </ul> * </ul>
* *
* <p><b>修复说明</b></p> * <p><b>修复说明</b></p>
@ -3580,17 +3580,30 @@ public class CoDelExcelServiceImpl implements CoDelExcelService {
continue; continue;
} }
// 计算单箱体积 * *
// 获取该箱号对应的箱子数量
Object boxQtyObj = box.get("box_qty");
BigDecimal boxQty = (boxQtyObj != null)
? new BigDecimal(boxQtyObj.toString())
: BigDecimal.ONE;
if (boxQty.compareTo(BigDecimal.ZERO) <= 0) {
boxQty = BigDecimal.ONE;
}
// 计算单箱体积 * * 再乘以箱数
BigDecimal singleBoxVolume = packageData.getLength() BigDecimal singleBoxVolume = packageData.getLength()
.multiply(packageData.getWidth()) .multiply(packageData.getWidth())
.multiply(packageData.getHeight()); .multiply(packageData.getHeight());
BigDecimal boxTotalVolume = singleBoxVolume.multiply(boxQty);
// 累加到总体积 // 累加到总体积
totalVolume = totalVolume.add(singleBoxVolume);
totalVolume = totalVolume.add(boxTotalVolume);
processedBoxCount++; processedBoxCount++;
log.debug("箱号 {} 物料 {} 包装 {} 单箱体积 {} m³",
seqNoObj, mainPn, packageNo, singleBoxVolume.setScale(4, RoundingMode.HALF_UP));
log.debug("箱号 {} 物料 {} 包装 {} 单箱体积 {} m³ 箱数 {} 小计 {} m³",
seqNoObj, mainPn, packageNo,
singleBoxVolume.setScale(4, RoundingMode.HALF_UP),
boxQty,
boxTotalVolume.setScale(4, RoundingMode.HALF_UP));
} }
log.info("体积计算完成,发货单号: {}, 处理箱数: {}/{}, 总体积: {} m³", log.info("体积计算完成,发货单号: {}, 处理箱数: {}/{}, 总体积: {} m³",

Loading…
Cancel
Save