diff --git a/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/service/serialnumber/SerialNumberServiceImpl.java b/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/service/serialnumber/SerialNumberServiceImpl.java index 86715ac8..86489e72 100644 --- a/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/service/serialnumber/SerialNumberServiceImpl.java +++ b/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/service/serialnumber/SerialNumberServiceImpl.java @@ -113,21 +113,17 @@ public class SerialNumberServiceImpl implements SerialNumberService { LocalDate currentDate = LocalDate.now(); pattern = currentDate.format(DateTimeFormatter.ofPattern(encodedRule.getPattern().replace("m", "M"))); } - long millMinutes = 0; - if(encodedRule.getPattern() != null && !encodedRule.getPattern().isEmpty()) { - if (encodedRule.getPattern().toLowerCase().indexOf("d") > 0) { //包含日 - LocalDateTime midnight = LocalDateTime.now().plusDays(1).withHour(0).withMinute(0).withSecond(0).withNano(1); - millMinutes = ChronoUnit.MINUTES.between(LocalDateTime.now(), midnight); - } else if (encodedRule.getPattern().toLowerCase().indexOf("m") > 0) { //包含月 - LocalDateTime midnight = LocalDateTime.now().plusMonths(1).plusDays(1).withHour(0).withMinute(0).withSecond(0).withNano(1); - millMinutes = ChronoUnit.MONTHS.between(LocalDateTime.now(), midnight); - } else if (encodedRule.getPattern().toLowerCase().indexOf("y") > 0) { - LocalDateTime midnight = LocalDateTime.now().plusYears(1).plusMonths(1).plusDays(1).withHour(0).withMinute(0).withSecond(0).withNano(1); - millMinutes = ChronoUnit.YEARS.between(LocalDateTime.now(), midnight); - } + LocalDateTime midnight = null; + if(encodedRule.getPattern().toLowerCase().indexOf("d") > 0) { //包含日 + midnight = LocalDateTime.now().plusDays(1).withHour(0).withMinute(0).withSecond(0).withNano(1); + } else if(encodedRule.getPattern().toLowerCase().indexOf("m") > 0) { //包含月 + midnight = LocalDateTime.now().plusMonths(1).plusDays(1).withHour(0).withMinute(0).withSecond(0).withNano(1); + } else if(encodedRule.getPattern().toLowerCase().indexOf("y") > 0) { + midnight = LocalDateTime.now().plusYears(1).plusMonths(1).plusDays(1).withHour(0).withMinute(0).withSecond(0).withNano(1); } + long millSeconds = ChronoUnit.SECONDS.between(LocalDateTime.now(), midnight); StringBuilder code = new StringBuilder(); - Long increment = redisCache.incr(encodedRule.getRuleCode() + pattern, millMinutes); + Long increment = redisCache.incr(encodedRule.getRuleCode() + pattern, millSeconds); code.append(encodedRule.getPrefix()); code.append(pattern); if(encodedRule.getSeparator() != null && !encodedRule.getSeparator().isEmpty()) { diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectJob/InspectJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectJob/InspectJobMainServiceImpl.java index 3ea499ba..09bcc13c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectJob/InspectJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectJob/InspectJobMainServiceImpl.java @@ -232,7 +232,9 @@ public class InspectJobMainServiceImpl implements InspectJobMainService { BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectJob"); transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode()); TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); + transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction()); transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode()); + transactionCreateReqVOIn.setLocationCode(inspectJobDetailUpdateReqVO.getFromLocationCode()); transactionCreateReqVOIn.setRecordNumber(number); transactionCreateReqVOIn.setBatch(inspectRecordMainDO.getBatch()); transactionCreateReqVOIn.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); @@ -246,19 +248,21 @@ public class InspectJobMainServiceImpl implements InspectJobMainService { if(inspectJobDetailUpdateReqVO.getGoodQty() != null && inspectJobDetailUpdateReqVO.getGoodQty().compareTo(BigDecimal.ZERO) > 0) { TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); BeanUtils.copyProperties(transactionCreateReqVOIn, transactionCreateReqVO); - transactionCreateReqVO.setInventoryAction("OK"); + transactionCreateReqVO.setInventoryStatus("OK"); transactionCreateReqVO.setQty(inspectJobDetailUpdateReqVO.getGoodQty()); transactionCreateReqVOList.add(transactionCreateReqVO); - } else if (inspectJobDetailUpdateReqVO.getCrackQty() != null && inspectJobDetailUpdateReqVO.getCrackQty().compareTo(BigDecimal.ZERO) > 0) { + } + if (inspectJobDetailUpdateReqVO.getCrackQty() != null && inspectJobDetailUpdateReqVO.getCrackQty().compareTo(BigDecimal.ZERO) > 0) { TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); BeanUtils.copyProperties(transactionCreateReqVOIn, transactionCreateReqVO); - transactionCreateReqVO.setInventoryAction("SCRAP"); + transactionCreateReqVO.setInventoryStatus("SCRAP"); transactionCreateReqVO.setQty(inspectJobDetailUpdateReqVO.getCrackQty()); transactionCreateReqVOList.add(transactionCreateReqVO); - } else if (inspectJobDetailUpdateReqVO.getFailedQty() != null && inspectJobDetailUpdateReqVO.getFailedQty().compareTo(BigDecimal.ZERO) > 0) { + } + if (inspectJobDetailUpdateReqVO.getFailedQty() != null && inspectJobDetailUpdateReqVO.getFailedQty().compareTo(BigDecimal.ZERO) > 0) { TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); BeanUtils.copyProperties(transactionCreateReqVOIn, transactionCreateReqVO); - transactionCreateReqVO.setInventoryAction("NOK"); + transactionCreateReqVO.setInventoryStatus("NOK"); transactionCreateReqVO.setQty(inspectJobDetailUpdateReqVO.getFailedQty()); transactionCreateReqVOList.add(transactionCreateReqVO); } @@ -270,6 +274,7 @@ public class InspectJobMainServiceImpl implements InspectJobMainService { TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType()); transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction()); transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode()); + transactionCreateReqVOOut.setLocationCode(inspectJobDetailUpdateReqVO.getFromLocationCode()); transactionCreateReqVOOut.setBatch(inspectRecordMainDO.getBatch()); transactionCreateReqVOOut.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); transactionCreateReqVOOut.setRecordNumber(number); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainServiceImpl.java index f2ad74d9..48ce0bad 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainServiceImpl.java @@ -120,9 +120,12 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService //子表校验 List subList = createReqVO.getSubList(); List subDOList = InspectRequestDetailConvert.INSTANCE.convertList03(subList); + BigDecimal sumQty = BigDecimal.ZERO; for (InspectRequestDetailDO detailDO : subDOList) { this.validatorDetail(detailDO, mainDO, businesstypeDO); + sumQty = sumQty.add(detailDO.getQty()); } + mainDO.setReceiveQty(sumQty); String number = serialNumberApi.generateCode(RuleCodeEnum.INSPECT_REQUEST.getCode()); mainDO.setNumber(number); RequestStatusState requestStatusState = new RequestStatusState(); @@ -202,8 +205,10 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService List subList = createReqVO.getSubList(); List subDOList = InspectRequestDetailConvert.INSTANCE.convertList03(subList); BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectRequest"); + BigDecimal sumQty = BigDecimal.ZERO; for (InspectRequestDetailDO detailDO : subDOList) { String messageDetail = this.validatorInspectRequestDetailImport(detailDO, mainDO, businesstypeDO); + sumQty = sumQty.add(detailDO.getQty()); InspectRequestDetailCreateReqVO inspectRequestDetailCreateReqVO = InspectRequestDetailConvert.INSTANCE.convert1(detailDO); InspectRequestImportErrorVO importVO = InspectRequestDetailConvert.INSTANCE.convert(createReqVO, inspectRequestDetailCreateReqVO); if (!messageMain.isEmpty() || !messageDetail.isEmpty()) { @@ -213,6 +218,7 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService errorList.add(importVO); } } + mainDO.setReceiveQty(sumQty); mainDO.setBusinessType(businesstypeDO.getCode()); mainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); mainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); @@ -480,10 +486,6 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService return mapRule; } - private PurchasereceiptRecordDetailDO validatorPurchasereceiptExist(String purchaseReceiptRecordNumber, String poNumber, String poLine, String itemCode) { - return purchasereceiptRecordMainService.selectPurchasereceiptExist(poNumber, null, purchaseReceiptRecordNumber, poLine, itemCode); - } - private void validatorRule(InspectRequestMainDO mainDO) { HashMap rule = selectRule(null, mainDO.getItemCode()); mainDO.setSampleQty(selectInspectType(mainDO, mainDO.getReceiveQty(), rule)); @@ -501,8 +503,6 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService //校验主表公共方法(适用于新增/修改) private InspectRequestMainDO validatorMain(InspectRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) { InspectRequestMainDO mainDo = InspectRequestMainConvert.INSTANCE.convert(baseVO); - PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = this.validatorPurchasereceiptExist(mainDo.getPurchaseReceiptRecordNumber(), mainDo.getPoNumber(), mainDo.getPoLine(), mainDo.getItemCode()); - mainDo.setReceiveQty(purchasereceiptRecordDetailDO.getQty()); this.validatorRule(mainDo); mainDo.setBusinessType(businesstypeDO.getCode()); mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); @@ -516,6 +516,8 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService //校验子表公共方法(适用于新增/修改) private void validatorDetail(InspectRequestDetailDO detailDo, InspectRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { + PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = purchasereceiptRecordMainService.selectPurchasereceiptExist(mainDo.getPoNumber(), mainDo.getSupplierCode(), mainDo.getPurchaseReceiptRecordNumber(), mainDo.getPoLine(), mainDo.getItemCode(), detailDo.getPackingNumber(), mainDo.getBatch()); + detailDo.setQty(purchasereceiptRecordDetailDO.getQty()); ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode()); detailDo.setNumber(mainDo.getNumber()); detailDo.setItemDesc1(itembasicDO.getDesc1()); @@ -538,12 +540,6 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService */ private String validatorInspectRequestMainImport(InspectRequestMainDO mainDo) { StringBuilder message = new StringBuilder(); - try { - PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = validatorPurchasereceiptExist(mainDo.getPurchaseReceiptRecordNumber(), mainDo.getPoNumber(), mainDo.getPoLine(), mainDo.getItemCode()); - mainDo.setReceiveQty(purchasereceiptRecordDetailDO.getQty()); - } catch (Exception ex) { - message.append(ex.getMessage()).append(","); - } try { validatorRule(mainDo); } catch (Exception ex) { @@ -565,6 +561,12 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService */ private String validatorInspectRequestDetailImport(InspectRequestDetailDO detailDo, InspectRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { StringBuilder message = new StringBuilder(); + try { + PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = purchasereceiptRecordMainService.selectPurchasereceiptExist(mainDo.getPoNumber(), mainDo.getSupplierCode(), mainDo.getPurchaseReceiptRecordNumber(), mainDo.getPoLine(), mainDo.getItemCode(), detailDo.getPackingNumber(), mainDo.getBatch()); + detailDo.setQty(purchasereceiptRecordDetailDO.getQty()); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } try { ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode()); detailDo.setItemDesc1(itembasicDO.getDesc1()); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRecord/PurchasereceiptRecordMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRecord/PurchasereceiptRecordMainService.java index 244182e6..c8df22e1 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRecord/PurchasereceiptRecordMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRecord/PurchasereceiptRecordMainService.java @@ -64,9 +64,11 @@ public interface PurchasereceiptRecordMainService { * @param pNumber 单据号 * @param ppoLine 订单行 * @param pitemCode 零件号 + * @param packingNumber 箱码 + * @param batch 批次 * @return */ - PurchasereceiptRecordDetailDO selectPurchasereceiptExist(String ppoNumber,String psupplierCode, String pNumber,String ppoLine, String pitemCode); + PurchasereceiptRecordDetailDO selectPurchasereceiptExist(String ppoNumber,String psupplierCode, String pNumber,String ppoLine, String pitemCode, String packingNumber, String batch); // /** // * 生成检验申请 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRecord/PurchasereceiptRecordMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRecord/PurchasereceiptRecordMainServiceImpl.java index 11a1ae32..1ce21d63 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRecord/PurchasereceiptRecordMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRecord/PurchasereceiptRecordMainServiceImpl.java @@ -71,7 +71,7 @@ public class PurchasereceiptRecordMainServiceImpl implements PurchasereceiptReco } @Override - public PurchasereceiptRecordDetailDO selectPurchasereceiptExist(String ppoNumber, String psupplierCode, String pNumber, String ppoLine, String pitemCode) { + public PurchasereceiptRecordDetailDO selectPurchasereceiptExist(String ppoNumber, String psupplierCode, String pNumber, String ppoLine, String pitemCode, String packingNumber, String batch) { QueryWrapper queryWrapperMain = new QueryWrapper<>(); queryWrapperMain.eq("number", pNumber); if (psupplierCode != null && !psupplierCode.isEmpty()) { @@ -85,6 +85,8 @@ public class PurchasereceiptRecordMainServiceImpl implements PurchasereceiptReco queryWrapperDetail.eq("po_number", ppoNumber); queryWrapperDetail.eq("po_line", ppoLine); queryWrapperDetail.eq("item_code", pitemCode); + queryWrapperDetail.eq("to_packing_number", packingNumber); + queryWrapperDetail.eq("to_batch", batch); PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = purchasereceiptRecordDetailMapper.selectOne(queryWrapperDetail); if (purchasereceiptRecordDetailDO != null) { return purchasereceiptRecordDetailDO; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainServiceImpl.java index 7e26a3a9..354e6103 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainServiceImpl.java @@ -459,7 +459,7 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque detailDo.setProjectCode(itembasicDO.getProject()); this.ifUomSuccess(itembasicDO.getUom(), detailDo.getUom()); validatorLocation(detailDo.getFromLocationCode()); - PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = purchasereceiptRecordMainService.selectPurchasereceiptExist(detailDo.getPoNumber(), mainDo.getSupplierCode(), mainDo.getPurchaseReceiptRecordNumber(), detailDo.getPoLine(), detailDo.getItemCode()); + PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = purchasereceiptRecordMainService.selectPurchasereceiptExist(detailDo.getPoNumber(), mainDo.getSupplierCode(), mainDo.getPurchaseReceiptRecordNumber(), detailDo.getPoLine(), detailDo.getItemCode(), detailDo.getPackingNumber(), detailDo.getBatch()); PurchasereceiptRecordMainDO purchasereceiptRecordMainDO = purchasereceiptRecordMainMapper.selectById(purchasereceiptRecordDetailDO.getMasterId()); mainDo.setPpNumber(purchasereceiptRecordMainDO.getPpNumber()); mainDo.setAsnNumber(purchasereceiptRecordMainDO.getAsnNumber()); @@ -541,7 +541,7 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque message.append(ex.getMessage()).append(","); } try { - PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = purchasereceiptRecordMainService.selectPurchasereceiptExist(detailDo.getPoNumber(), mainDo.getSupplierCode(), mainDo.getPurchaseReceiptRecordNumber(), detailDo.getPoLine(), detailDo.getItemCode()); + PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = purchasereceiptRecordMainService.selectPurchasereceiptExist(detailDo.getPoNumber(), mainDo.getSupplierCode(), mainDo.getPurchaseReceiptRecordNumber(), detailDo.getPoLine(), detailDo.getItemCode(), detailDo.getPackingNumber(), detailDo.getBatch()); PurchasereceiptRecordMainDO purchasereceiptRecordMainDO = purchasereceiptRecordMainMapper.selectById(purchasereceiptRecordDetailDO.getMasterId()); try { ifdetailQtyBigThanQty(purchasereceiptRecordDetailDO.getQty(), detailDo.getQty());