|
|
@ -171,7 +171,7 @@ public class PackageoverMainServiceImpl implements PackageoverMainService { |
|
|
|
transactionCreateReqVOOut.setId(null); |
|
|
|
transactionCreateReqVOList.add(transactionCreateReqVOOut); |
|
|
|
// 更新包装信息——来源包装
|
|
|
|
updatePackageDO(detailDO.getFromPackingNumber(),detailDO.getFromQty()); |
|
|
|
updatePackageDO(detailDO.getFromPackingNumber(),balanceDO.get(0).getQty().subtract(detailDO.getFromQty())); |
|
|
|
// 查询一翻几的规则 在基础包装中 翻几 = 标包数量/替代标包数量 库存余额中不够分配的 向上取整
|
|
|
|
// 例如:库存余额24 翻3包 每包10 那么第一包数量10 第二包数量10 第三包数量4
|
|
|
|
// 例如:库存余额5 翻3包 每包10 那么第一包数量5
|
|
|
@ -210,13 +210,43 @@ public class PackageoverMainServiceImpl implements PackageoverMainService { |
|
|
|
packageDO = packageService.createPackageLabel(packagecreateReqVO); |
|
|
|
packageoverDetailDO.setToPackingNumber(packageDO.getNumber()); |
|
|
|
packageoverDetailDO.setToQty(balanceQty); |
|
|
|
// 库存事务——入
|
|
|
|
TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO(); |
|
|
|
BeanUtils.copyProperties(packageoverDetailDO, transactionCreateReqVOIn); |
|
|
|
transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode()); |
|
|
|
TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); |
|
|
|
transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction()); |
|
|
|
transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode()); |
|
|
|
transactionCreateReqVOIn.setWorker(String.valueOf(userRespDTO.getId())); |
|
|
|
transactionCreateReqVOIn.setBatch(packageoverDetailDO.getToBatch()); |
|
|
|
transactionCreateReqVOIn.setPackingNumber(packageoverDetailDO.getToPackingNumber()); |
|
|
|
transactionCreateReqVOIn.setInventoryStatus(packageoverDetailDO.getToInventoryStatus()); |
|
|
|
transactionCreateReqVOIn.setLocationCode(packageoverDetailDO.getLocationCode()); |
|
|
|
transactionCreateReqVOIn.setSinglePrice(BigDecimal.ZERO); |
|
|
|
transactionCreateReqVOIn.setAmount(BigDecimal.ZERO); |
|
|
|
transactionCreateReqVOIn.setArriveDate(LocalDateTime.now()); |
|
|
|
transactionCreateReqVOIn.setProduceDate(LocalDateTime.now()); |
|
|
|
transactionCreateReqVOIn.setExpireDate(LocalDateTime.now()); |
|
|
|
transactionCreateReqVOIn.setWarehouseCode(mainDO.getWarehouseCode()); |
|
|
|
transactionCreateReqVOIn.setRecordNumber(number); |
|
|
|
transactionCreateReqVOIn.setQty(packageoverDetailDO.getToQty()); |
|
|
|
transactionCreateReqVOIn.setId(null); |
|
|
|
transactionCreateReqVOList.add(transactionCreateReqVOIn); |
|
|
|
packageoverDetailDOList.add(packageoverDetailDO); |
|
|
|
break; |
|
|
|
} else { |
|
|
|
//库存余额数量 < 替代标包数量
|
|
|
|
//替代标包数量 < 库存余额数量
|
|
|
|
packagecreateReqVO.setQty(altPackQty); |
|
|
|
packageDO = packageService.createPackageLabel(packagecreateReqVO); |
|
|
|
packageoverDetailDO.setToPackingNumber(packageDO.getNumber()); |
|
|
|
packageoverDetailDO.setToQty(altPackQty); |
|
|
|
// 当 循环最后一次 库存余额数 仍然 大于 替代标包数量 最后一包放入所有库存数量
|
|
|
|
if (overCount.intValue()-1 == i) { |
|
|
|
packagecreateReqVO.setQty(balanceQty); |
|
|
|
packageDO = packageService.createPackageLabel(packagecreateReqVO); |
|
|
|
packageoverDetailDO.setToPackingNumber(packageDO.getNumber()); |
|
|
|
packageoverDetailDO.setToQty(balanceQty); |
|
|
|
} |
|
|
|
balanceQty = balanceQty.subtract(altPackQty); |
|
|
|
} |
|
|
|
packageoverDetailDOList.add(packageoverDetailDO); |
|
|
|