diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainServiceImpl.java index 1dd08f90..00562c98 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainServiceImpl.java @@ -217,7 +217,6 @@ public class PurchaseMainServiceImpl implements PurchaseMainService { } List errorList = new ArrayList<>(); for (PurchaseMainCreateReqVO createReqVO : datas) { - PurchaseMainDO mainDo = PurchaseMainConvert.INSTANCE.convert(createReqVO); String messageMain = validatorPurchaseMainImport(mainDo); List subList = createReqVO.getSubList(); @@ -263,8 +262,9 @@ public class PurchaseMainServiceImpl implements PurchaseMainService { } //主表校验 校验供应商基础信息 - private void validatorShiftExist(String supplierCode) { - shiftService.selectShiftExist(supplierCode); + private ShiftDO validatorShiftExist(String supplierCode) { + ShiftDO shiftDO = shiftService.selectShiftExist(supplierCode); + return shiftDO; } //子表校验 校验供应商基础信息 @@ -273,35 +273,64 @@ public class PurchaseMainServiceImpl implements PurchaseMainService { } //子表校验 校验物品标包信息 - private void validatorItemPackagingExist(String itemCode) { - itempackagingService.selectItemPackagingExist(itemCode); + private ItempackagingDO validatorItemPackagingExist(String itemCode) { + ItempackagingDO itempackagingDO = itempackagingService.selectItemPackagingExist(itemCode); + return itempackagingDO; } //子表校验 校验供应商物品 - private void validatorSupplierItemExist(String supplierCode, String itemCode) { - supplieritemService.selectSupplierItemExist(supplierCode, itemCode); + private SupplieritemDO validatorSupplierItemExist(String supplierCode, String itemCode) { + SupplieritemDO supplieritemDO = supplieritemService.selectSupplierItemExist(supplierCode, itemCode); + return supplieritemDO; } //子表校验 校验标准成本价格 - private void validatorStdcostpriceExist(String supplierCode, String itemCode) { + private StdcostpriceDO validatorStdcostpriceExist(String supplierCode, String itemCode) { StdcostpriceDO stdcostpriceDO = stdcostpriceService.selectStdcostpriceExist(supplierCode, itemCode); +return stdcostpriceDO; } //校验主表公共方法(适用于新增/修改) private PurchaseMainDO validatorMainMethod(PurchaseMainBaseVO baseVO) { PurchaseMainDO mainDo = PurchaseMainConvert.INSTANCE.convert(baseVO); - this.validatorShiftExist(mainDo.getSupplierCode()); + ShiftDO shiftDO = this.validatorShiftExist(mainDo.getSupplierCode()); + if (shiftDO == null) { + throw exception(STDCOSTPRICE_SUPPLIER_CODE_NOT_EXISTS); + } mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); return mainDo; } //校验子表公共方法(适用于新增/修改) private void validatorDetailMethod(PurchaseDetailDO detailDo, PurchaseMainDO mainDo) { - validatorItembasic(detailDo.getItemCode()); - validatorItemPackagingExist(detailDo.getItemCode()); - validatorSupplierItemExist(mainDo.getSupplierCode(), detailDo.getItemCode()); - validatorStdcostpriceExist(mainDo.getSupplierCode(), detailDo.getItemCode()); + this.validatorItembasic(detailDo.getItemCode()); + this.validatorItemPackagingExist(detailDo.getItemCode()); + ItempackagingDO itempackagingDO = itempackagingService.selectItemPackagingExist(detailDo.getItemCode()); + if(itempackagingDO != null){ + detailDo.setStdPackUnit(itempackagingDO.getStdPackUnit()); + detailDo.setStdPackQty(itempackagingDO.getStdPackQty()); + } + SupplieritemDO supplieritemDO = this.validatorSupplierItemExist(mainDo.getSupplierCode(), detailDo.getItemCode()); + if(supplieritemDO != null){ + detailDo.setSupplierUom(supplieritemDO.getSupplierUom()); + detailDo.setSupplierQty(supplieritemDO.getPackQty()); + detailDo.setConvertRate(supplieritemDO.getConvertRate()); + }else { + throw exception(SUPPLIERITEM_NOT_EXISTS); + } + StdcostpriceDO stdcostpriceDO = this.validatorStdcostpriceExist(mainDo.getSupplierCode(), detailDo.getItemCode()); + if(stdcostpriceDO!=null){ + detailDo.setSinglePrice(stdcostpriceDO.getPrice()); + if ("CNY".equals(stdcostpriceDO.getCurrency())) { + detailDo.setAmount(detailDo.getSinglePrice().multiply(detailDo.getOrderQty())); + } else { + CurrencyexchangeDO currencyexchangeDO = currencyexchangeService.selectCurrencyexchangeExist(stdcostpriceDO.getCurrency(), "CNY"); + detailDo.setAmount(detailDo.getSinglePrice().multiply(detailDo.getOrderQty()).multiply(currencyexchangeDO.getRate())); + } + }else { + throw exception(STDCOSTPRICE_NOT_EXISTS); + } } //新增校验 @@ -312,6 +341,16 @@ public class PurchaseMainServiceImpl implements PurchaseMainService { List subDOList = PurchaseDetailConvert.INSTANCE.convertList03(subList); for (PurchaseDetailDO purchaseDetailDO : subDOList) { validatorDetailMethod(purchaseDetailDO, purchaseMainDO); + purchaseDetailDO.setMasterId(purchaseMainDO.getId()); + purchaseDetailDO.setNumber(purchaseMainDO.getNumber()); + purchaseDetailDO.setPlannedQty(BigDecimal.ZERO); + purchaseDetailDO.setShippedQty(BigDecimal.ZERO); + purchaseDetailDO.setReceivedQty(BigDecimal.ZERO); + purchaseDetailDO.setReturnedQty(BigDecimal.ZERO); + purchaseDetailDO.setPutawayQty(BigDecimal.ZERO); + purchaseDetailDO.setErpLocationCode(null); + purchaseDetailDO.setAvailable("TRUE"); + purchaseDetailDO.setStatus(OrderStatusEnum.READY.getCode()); } purchaseMainMapper.insert(purchaseMainDO); purchaseDetailMapper.insertBatch(subDOList);