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/controller/systemcalendar/SystemcalendarController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/systemcalendar/SystemcalendarController.java index 01da58b3..e53d4780 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/systemcalendar/SystemcalendarController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/systemcalendar/SystemcalendarController.java @@ -8,6 +8,7 @@ import com.win.framework.excel.core.util.ExcelUtils; import com.win.framework.operatelog.core.annotations.OperateLog; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO;; +import com.win.module.wms.controller.bom.vo.BomImportErrorVO; import com.win.module.wms.controller.itembasic.vo.ItembasicExcelVO; import com.win.module.wms.controller.process.vo.ProcessRespVO; import com.win.module.wms.controller.systemcalendar.vo.*; @@ -144,7 +145,7 @@ public class SystemcalendarController { } @GetMapping("/get-import-template") - @Operation(summary = "获得导入班组信息模板") + @Operation(summary = "获得导入系统日历信息模板") public void importTemplate(HttpServletResponse response) throws IOException { // 手动创建导出 demo List list = Arrays.asList( @@ -156,12 +157,12 @@ public class SystemcalendarController { // 输出 // 输出 - ExcelUtils.write(response, "班组导入模板.xls", "班组列表", SystemcalendarImportExcelVo.class, list,mapDropDown); + ExcelUtils.write(response, "系统日历导入模板.xls", "系统日历列表", SystemcalendarImportExcelVo.class, list,mapDropDown); } @PostMapping("/import") - @Operation(summary = "导入班组信息") + @Operation(summary = "导入系统日历信息") @Parameters({ @Parameter(name = "file", description = "Excel 文件", required = true), @Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"), @@ -173,11 +174,11 @@ public class SystemcalendarController { @RequestParam(value = "mode") Integer mode, @RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception { List list = ExcelUtils.read(file, SystemcalendarImportExcelVo.class); - List errorList = systemcalendarService.importSystemcalendarList(list, mode, updatePart); + List errorList = systemcalendarService.importSystemcalendarList(list, mode, updatePart); Map returnMap = new HashMap<>(); returnMap.put("errorCount", errorList.size()); if(!errorList.isEmpty()) { - String url = ExcelUtils.writeLocalFile("班组导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xls", "错误列表", errorList); + String url = ExcelUtils.writeLocalFile("系统日历导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xls", "错误列表", errorList); returnMap.put("errorFile", url); } return success(returnMap); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/systemcalendar/vo/SystemcalendarImportErrorVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/systemcalendar/vo/SystemcalendarImportErrorVO.java new file mode 100644 index 00000000..319f66b2 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/systemcalendar/vo/SystemcalendarImportErrorVO.java @@ -0,0 +1,56 @@ +package com.win.module.wms.controller.systemcalendar.vo; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.win.framework.excel.core.annotations.DictFormat; +import com.win.framework.excel.core.convert.DictConvert; +import com.win.module.wms.enums.DictTypeConstants; +import lombok.Builder; +import lombok.Data; +import lombok.ToString; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +@Builder +@ToString(callSuper = true) +public class SystemcalendarImportErrorVO { + @ExcelProperty("模块") + private String module; + + @ExcelProperty("开始时间") + @ColumnWidth(value = 16) + private LocalDateTime startTime; + + @ExcelProperty("结束时间") + @ColumnWidth(value = 16) + private LocalDateTime stopTime; + + @ExcelProperty(value = "是否可用", converter = DictConvert.class) + @DictFormat("true_false") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + private String available; + + @ExcelProperty("生效时间") + @ColumnWidth(value = 16) + private LocalDateTime activeTime; + + @ExcelProperty("失效时间") + @ColumnWidth(value = 16) + private LocalDateTime expireTime; + + @ExcelProperty("备注") + private String remark; + + @ExcelProperty("创建时间") + @ColumnWidth(value = 16) + private LocalDateTime createTime; + + @ExcelProperty("创建者ID") + private String creator; + + @ExcelProperty(value = "导入状态", index = 0) + private String importStatus; + + @ExcelProperty(value = "导入说明", index = 1) + private String importRemark; +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/systemcalendar/SystemcalendarConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/systemcalendar/SystemcalendarConvert.java index 05e47dcd..00963976 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/systemcalendar/SystemcalendarConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/systemcalendar/SystemcalendarConvert.java @@ -4,11 +4,9 @@ import java.util.*; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.systemcalendar.vo.SystemcalendarCreateReqVO; -import com.win.module.wms.controller.systemcalendar.vo.SystemcalendarExcelVO; -import com.win.module.wms.controller.systemcalendar.vo.SystemcalendarRespVO; -import com.win.module.wms.controller.systemcalendar.vo.SystemcalendarUpdateReqVO; -import com.win.module.wms.controller.systemcalendar.vo.SystemcalendarImportExcelVo; +import com.win.module.wms.controller.bom.vo.BomImportErrorVO; +import com.win.module.wms.controller.bom.vo.BomImportExcelVo; +import com.win.module.wms.controller.systemcalendar.vo.*; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.systemcalendar.SystemcalendarDO; @@ -37,4 +35,6 @@ public interface SystemcalendarConvert { SystemcalendarDO convert(SystemcalendarImportExcelVo bean); + SystemcalendarImportErrorVO convert2(SystemcalendarDO bean); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/systemcalendar/SystemcalendarMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/systemcalendar/SystemcalendarMapper.java index cbc42c17..dbfb7d92 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/systemcalendar/SystemcalendarMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/systemcalendar/SystemcalendarMapper.java @@ -7,6 +7,7 @@ import com.win.framework.mybatis.core.query.LambdaQueryWrapperX; import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.systemcalendar.vo.SystemcalendarExportReqVO; import com.win.module.wms.controller.systemcalendar.vo.SystemcalendarPageReqVO; +import com.win.module.wms.dal.dataobject.bom.BomDO; import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.systemcalendar.SystemcalendarDO; import org.apache.ibatis.annotations.Mapper; @@ -53,5 +54,9 @@ public interface SystemcalendarMapper extends BaseMapperX { default List selectSeniorList(CustomConditions conditions) { return selectList(QueryWrapperUtils.structure(conditions)); } + default SystemcalendarDO selectByModule(String module){ + return selectOne(SystemcalendarDO::getModule, module); + } + } 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/inventoryinitRequest/InventoryinitRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestMainServiceImpl.java index 77860c83..63cbdf08 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestMainServiceImpl.java @@ -380,7 +380,7 @@ public class InventoryinitRequestMainServiceImpl implements InventoryinitRequest } //写入数据 if (flag) { - String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode()); + String number = serialNumberApi.generateCode(RuleCodeEnum.INVENTORY_INITIAL_REQUEST.getCode()); mainDO.setNumber(number); RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("TransferDeliverRequest"); RequestStatusState requestStatusState = new RequestStatusState(); 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()); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/systemcalendar/SystemcalendarService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/systemcalendar/SystemcalendarService.java index 70eb13e3..07c0b2cb 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/systemcalendar/SystemcalendarService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/systemcalendar/SystemcalendarService.java @@ -78,6 +78,6 @@ public interface SystemcalendarService { - List importSystemcalendarList(List importTeam, Integer mode, boolean updatePart); + List importSystemcalendarList(List importTeam, Integer mode, boolean updatePart); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/systemcalendar/SystemcalendarServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/systemcalendar/SystemcalendarServiceImpl.java index d437b4ba..ba8b7224 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/systemcalendar/SystemcalendarServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/systemcalendar/SystemcalendarServiceImpl.java @@ -7,8 +7,11 @@ import com.win.framework.common.exception.ServiceException; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; import com.win.framework.datapermission.core.util.DataPermissionUtils; +import com.win.module.wms.controller.bom.vo.BomImportErrorVO; import com.win.module.wms.controller.systemcalendar.vo.*; +import com.win.module.wms.convert.bom.BomConvert; import com.win.module.wms.convert.systemcalendar.SystemcalendarConvert; +import com.win.module.wms.dal.dataobject.bom.BomDO; import com.win.module.wms.dal.dataobject.systemcalendar.SystemcalendarDO; import com.win.module.wms.dal.mysql.systemcalendar.SystemcalendarMapper; import org.springframework.stereotype.Service; @@ -83,53 +86,57 @@ public class SystemcalendarServiceImpl implements SystemcalendarService { public List getSystemcalendarList(SystemcalendarExportReqVO exportReqVO) { return systemcalendarMapper.selectList(exportReqVO); } - public List importSystemcalendarList(List systemcalendars, Integer mode, boolean updatePart) { + + private String validateSystemcalendarImport( SystemcalendarDO systemcalendar ){ + StringBuilder message = new StringBuilder(); + try { + validateSystemcalendarExists(null); + } catch (ServiceException ex) { + message.append(ex.getMessage()).append(","); + } + + try { + validateMoubleExists(systemcalendar.getModule()); + } catch (ServiceException ex) { + message.append(ex.getMessage()).append(","); + } + try { + validateAvailableExists(systemcalendar.getAvailable()); + } catch (ServiceException ex) { + message.append(ex.getMessage()).append(","); + } + return message.toString(); + } + public List importSystemcalendarList(List systemcalendars, Integer mode, boolean updatePart) { if (CollUtil.isEmpty(systemcalendars)) { throw exception(SYSTEMCALENDAR_IMPORT_LIST_IS_EMPTY); } - List errorList = new ArrayList<>(); + List errorList = new ArrayList<>(); systemcalendars.forEach(systemcalendar -> { + SystemcalendarDO SystemcalendarDO = SystemcalendarConvert.INSTANCE.convert(systemcalendar); // 校验,判断是否有不符合的原因 - String massage = ""; - if (mode != null) { - try { - validateSystemcalendarExists(null); - } catch (ServiceException ex) { - massage += ex.getMessage() + ","; - } - - try { - validateMoubleExists(systemcalendar.getModule()); - } catch (ServiceException ex) { - massage += ex.getMessage() + ","; - } - try { - validateAvailableExists(systemcalendar.getAvailable()); - } catch (ServiceException ex) { - massage += ex.getMessage() + ","; - } - if (StrUtil.isNotEmpty(massage)) { - massage.substring(0, massage.length() - 1); - errorList.add(systemcalendar); - } - if (errorList == null) { - // 判断如果不存在,在进行插入 - SystemcalendarDO existSystemcalendar = null; - if (existSystemcalendar == null && mode != 3) { - systemcalendarMapper.insert(SystemcalendarConvert.INSTANCE.convert(systemcalendar)); - } else if (existSystemcalendar != null && mode != 2) {// 如果存在,判断是否允许更新 - SystemcalendarDO systemcalendarDO = SystemcalendarConvert.INSTANCE.convert(systemcalendar); - systemcalendarDO.setId(existSystemcalendar.getId()); - systemcalendarMapper.updateById(systemcalendarDO); - } + String message = this.validateSystemcalendarImport(SystemcalendarDO); + boolean flag = true; + if(!message.isEmpty()){ + SystemcalendarImportErrorVO importErrorVO = SystemcalendarConvert.INSTANCE.convert2(SystemcalendarDO); + importErrorVO.setImportStatus("失败"); + importErrorVO.setImportRemark(message.substring(0, message.length() - 1)); + errorList.add(importErrorVO); + flag = false; + } + if(flag){ + SystemcalendarDO existSystemcalendar = systemcalendarMapper.selectByModule(SystemcalendarDO.getModule()); + if (existSystemcalendar == null && mode != 3) { + systemcalendarMapper.insert(SystemcalendarConvert.INSTANCE.convert(systemcalendar)); + } else if (existSystemcalendar != null && mode != 2) { + // 如果存在,判断是否允许更新 + SystemcalendarDO systemcalendarDO = SystemcalendarConvert.INSTANCE.convert(systemcalendar); + systemcalendarDO.setId(existSystemcalendar.getId()); + systemcalendarMapper.updateById(systemcalendarDO); } } - }); - //错误不为空并非部分更新,手工回滚 - if(!errorList.isEmpty() && !updatePart) { - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - } + return errorList; } @@ -158,7 +165,16 @@ public class SystemcalendarServiceImpl implements SystemcalendarService { if (mouble == null) { throw exception(SYSTEMCALENDAR_MOUBLE_NOT_EXISTS); } + else { + SystemcalendarDO systemcalendarDO = systemcalendarMapper.selectByModule(mouble); + if(systemcalendarDO!=null){ + throw exception(SYSTEMCALENDAR_MOUBLE_NOT_EXISTS); + } + } } + + + @VisibleForTesting private void validateAvailableExists(String available) { if (available == null) {