Browse Source

生产线物品关系 去掉 成品库原料库必填项

master
陈薪名 2 years ago
parent
commit
5123d513f2
  1. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionlineitem/vo/ProductionlineitemBaseVO.java
  2. 34
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageovermain/PackageoverMainServiceImpl.java
  3. 12
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestDetailaServiceImpl.java

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionlineitem/vo/ProductionlineitemBaseVO.java

@ -20,11 +20,9 @@ public class ProductionlineitemBaseVO {
private Long id; private Long id;
@Schema(description = "完工收货库位", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "完工收货库位", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "完工收货库位不能为空")
private String fgLocationCode; private String fgLocationCode;
@Schema(description = "产线代码", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "产线代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "产线代码不能为空")
private String productionLineCode; private String productionLineCode;
@Schema(description = "物品代码", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "物品代码", requiredMode = Schema.RequiredMode.REQUIRED)

34
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageovermain/PackageoverMainServiceImpl.java

@ -171,7 +171,7 @@ public class PackageoverMainServiceImpl implements PackageoverMainService {
transactionCreateReqVOOut.setId(null); transactionCreateReqVOOut.setId(null);
transactionCreateReqVOList.add(transactionCreateReqVOOut); transactionCreateReqVOList.add(transactionCreateReqVOOut);
// 更新包装信息——来源包装 // 更新包装信息——来源包装
updatePackageDO(detailDO.getFromPackingNumber(),detailDO.getFromQty()); updatePackageDO(detailDO.getFromPackingNumber(),balanceDO.get(0).getQty().subtract(detailDO.getFromQty()));
// 查询一翻几的规则 在基础包装中 翻几 = 标包数量/替代标包数量 库存余额中不够分配的 向上取整 // 查询一翻几的规则 在基础包装中 翻几 = 标包数量/替代标包数量 库存余额中不够分配的 向上取整
// 例如:库存余额24 翻3包 每包10 那么第一包数量10 第二包数量10 第三包数量4 // 例如:库存余额24 翻3包 每包10 那么第一包数量10 第二包数量10 第三包数量4
// 例如:库存余额5 翻3包 每包10 那么第一包数量5 // 例如:库存余额5 翻3包 每包10 那么第一包数量5
@ -210,13 +210,43 @@ public class PackageoverMainServiceImpl implements PackageoverMainService {
packageDO = packageService.createPackageLabel(packagecreateReqVO); packageDO = packageService.createPackageLabel(packagecreateReqVO);
packageoverDetailDO.setToPackingNumber(packageDO.getNumber()); packageoverDetailDO.setToPackingNumber(packageDO.getNumber());
packageoverDetailDO.setToQty(balanceQty); 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; break;
} else { } else {
//库存余额数量 < 替代标包数量 //替代标包数量 < 库存余额数量
packagecreateReqVO.setQty(altPackQty); packagecreateReqVO.setQty(altPackQty);
packageDO = packageService.createPackageLabel(packagecreateReqVO); packageDO = packageService.createPackageLabel(packagecreateReqVO);
packageoverDetailDO.setToPackingNumber(packageDO.getNumber()); packageoverDetailDO.setToPackingNumber(packageDO.getNumber());
packageoverDetailDO.setToQty(altPackQty); 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); balanceQty = balanceQty.subtract(altPackQty);
} }
packageoverDetailDOList.add(packageoverDetailDO); packageoverDetailDOList.add(packageoverDetailDO);

12
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestDetailaServiceImpl.java

@ -101,7 +101,7 @@ public class ProductdismantleRequestDetailaServiceImpl implements Productdismant
private void validateDetailMethod(ProductdismantleRequestMainDO mainDO, ProductdismantleRequestDetailaDO detailDo, BusinesstypeDO businesstypeDO) { private void validateDetailMethod(ProductdismantleRequestMainDO mainDO, ProductdismantleRequestDetailaDO detailDo, BusinesstypeDO businesstypeDO) {
// 校验--生产线基本信息 // 校验--生产线基本信息
ProductionlineDO productionlineDO = productionlineService.productionLineCodeExist(detailDo.getProductionLineCode()); ProductionlineDO productionlineDO = productionlineService.productionLineCodeExist(detailDo.getProductionLineCode());
detailDo.setFromLocationCode(productionlineDO.getRawLocationCode()); // detailDo.setFromLocationCode(productionlineDO.getRawLocationCode());
// 校验--物品基本信息 // 校验--物品基本信息
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode()); ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode());
// 赋值物品Item相关信息 // 赋值物品Item相关信息
@ -113,11 +113,11 @@ public class ProductdismantleRequestDetailaServiceImpl implements Productdismant
// 提示:计量单位【uom】错误,应该是【item.uom】 // 提示:计量单位【uom】错误,应该是【item.uom】
throw exception(ITEMBASIC_UOM_EXCEPTION,detailDo.getUom(),itembasicDO.getUom()); throw exception(ITEMBASIC_UOM_EXCEPTION,detailDo.getUom(),itembasicDO.getUom());
} }
// 校验--工位基础信息 // 校验--工位基础信息 以库存余额中的库位为准 此处无需赋值
if(StringUtils.isNotEmpty(detailDo.getWorkStationCode())){ // if(StringUtils.isNotEmpty(detailDo.getWorkStationCode())){
WorkstationDO workstationDO = workstationService.selectWorkstationExist(detailDo.getWorkStationCode(), mainDO.getWorkshopCode(), detailDo.getProductionLineCode()); // WorkstationDO workstationDO = workstationService.selectWorkstationExist(detailDo.getWorkStationCode(), mainDO.getWorkshopCode(), detailDo.getProductionLineCode());
detailDo.setFromLocationCode(workstationDO.getRawLocationCode()); // detailDo.setFromLocationCode(workstationDO.getRawLocationCode());
} // }
// 校验--库存余额 TB——>TB1 // 校验--库存余额 TB——>TB1
validateBalance(detailDo,mainDO); validateBalance(detailDo,mainDO);
// 校验--物品类型 DBT——>DBT2——>IT // 校验--物品类型 DBT——>DBT2——>IT

Loading…
Cancel
Save