|
|
@ -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³", |
|
|
|