From e3c6dbc9232accbc7b82ba378790ccf4e38fae75 Mon Sep 17 00:00:00 2001 From: chenfang Date: Wed, 8 Nov 2023 13:33:35 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=AF=BC=E5=85=A5=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/wms/enums/ErrorCodeConstants.java | 1 + .../IssueRequestMainController.java | 52 +++- .../vo/IssueRequestImportErrorVO.java | 25 ++ .../issueRequest/vo/IssueRequestImportVO.java | 50 ++++ .../vo/IssueRequestMainBaseVO.java | 2 + .../vo/IssueRequestMainCreateReqVO.java | 8 + .../issueRequest/IssueRequestMainConvert.java | 1 + .../issueRequest/IssueRequestMainMapper.java | 3 + .../service/balance/BalanceServiceImpl.java | 2 +- .../issueRequest/IssueRequestMainService.java | 9 +- .../IssueRequestMainServiceImpl.java | 228 +++++++++++++++++- .../service/jobsetting/JobsettingService.java | 2 +- .../ProductionlineServiceImpl.java | 12 + .../ProductionlineitemServiceImpl.java | 1 + .../recordsetting/RecordsettingService.java | 2 +- .../requestsetting/RequestsettingService.java | 2 +- .../RequestsettingServiceImpl.java | 2 +- 17 files changed, 387 insertions(+), 15 deletions(-) create mode 100644 win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRequest/vo/IssueRequestImportErrorVO.java create mode 100644 win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRequest/vo/IssueRequestImportVO.java diff --git a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java index 4fd1d97e..2b9af940 100644 --- a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java +++ b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java @@ -465,6 +465,7 @@ public interface ErrorCodeConstants { ErrorCode PREPARETOISSUE_MAIN_NOT_EXISTS = new ErrorCode(1_000_085_000, "备料计划主不存在"); //备料计划子ErrorCode ErrorCode PREPARETOISSUE_DETAIL_NOT_EXISTS = new ErrorCode(1_000_085_001, "备料计划子不存在"); + ErrorCode PREPARETOISSUE_REQUEST_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_085_002, "导入备料计划不能为空"); //补料申请主ErrorCode ErrorCode REPLEINSH_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_086_000, "补料申请主不存在"); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRequest/IssueRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRequest/IssueRequestMainController.java index cb39848c..eccaefb5 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRequest/IssueRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRequest/IssueRequestMainController.java @@ -1,8 +1,15 @@ package com.win.module.wms.controller.issueRequest; import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.dict.core.util.DictFrameworkUtils; +import com.win.framework.excel.core.util.ConvertUtil; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; +import com.win.module.wms.controller.inspectRequest.vo.IssueRequestImportErrorVO; +import com.win.module.wms.controller.inspectRequest.vo.IssueRequestImportVO; +import com.win.module.wms.controller.inspectRequest.vo.IssueRequestMainCreateReqVO; +import com.win.module.wms.enums.DictTypeConstants; +import io.swagger.v3.oas.annotations.Parameters; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -13,6 +20,8 @@ import io.swagger.v3.oas.annotations.Operation; import javax.validation.*; import javax.servlet.http.*; +import java.time.LocalDateTime; +import java.time.ZoneOffset; import java.util.*; import java.io.IOException; @@ -29,6 +38,7 @@ import com.win.module.wms.controller.issueRequest.vo.*; import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO; import com.win.module.wms.convert.issueRequest.IssueRequestMainConvert; import com.win.module.wms.service.issueRequest.IssueRequestMainService; +import org.springframework.web.multipart.MultipartFile; @Tag(name = "管理后台 - 发料申请主") @RestController @@ -120,7 +130,47 @@ public class IssueRequestMainController { //后端创建个字段作为前端展示的虚拟字段 vo.setCreator(user.getNickname()); } - ExcelUtils.write(response, "发料申请主.xls", "数据", IssueRequestMainExcelVO.class, datas); + Map mapDropDown = new HashMap<>(); + String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); + mapDropDown.put(7, uom); + ExcelUtils.write(response, "发料申请主.xls", "数据", IssueRequestMainExcelVO.class, datas,mapDropDown); } + @GetMapping("/get-import-template") + @Operation(summary = "获得导入发料申请主信息模板") + public void importTemplate(HttpServletResponse response) throws IOException { + // 手动创建导出 demo + List list = new ArrayList<>(); + Map mapDropDown = new HashMap<>(); + String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); + mapDropDown.put(7, uom); + // 输出 + ExcelUtils.write(response, "检验发料申请导入模板.xlsx", "发料申请信息列表", IssueRequestImportVO.class, list, mapDropDown); + } + + + @PostMapping("/import") + @Operation(summary = "导入发料申请基本信息") + @Parameters({ + @Parameter(name = "file", description = "Excel 文件", required = true), + @Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"), + @Parameter(name = "updatePart", description = "部分更新,默认为 true", example = "true") + }) + @PreAuthorize("@ss.hasPermission('wms:inspect-request-main:import')") + public CommonResult> importExcel(HttpServletResponse response, + @RequestParam("file") MultipartFile file, + @RequestParam(value = "mode") Integer mode, + @RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception { + List list = ExcelUtils.read(file, IssueRequestImportVO.class); + ConvertUtil convertUtil = new ConvertUtil<>(IssueRequestMainCreateReqVO.class); + List createReqVOList = convertUtil.invoke(list).getDataList(); + List errorList = issueRequestMainService.importIssueRequestList(createReqVOList, mode, updatePart); + Map returnMap = new HashMap<>(); + returnMap.put("errorCount", errorList.size()); + if(!errorList.isEmpty()) { + String url = ExcelUtils.writeLocalFile("发料申请基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", 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/issueRequest/vo/IssueRequestImportErrorVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRequest/vo/IssueRequestImportErrorVO.java new file mode 100644 index 00000000..84122758 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRequest/vo/IssueRequestImportErrorVO.java @@ -0,0 +1,25 @@ +package com.win.module.wms.controller.issueRequest.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + + +/** + * 发料申请 Excel VO + * + * @author 超级管理员 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class IssueRequestImportErrorVO extends IssueRequestImportVO { + + @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/controller/issueRequest/vo/IssueRequestImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRequest/vo/IssueRequestImportVO.java new file mode 100644 index 00000000..cfd7ce2b --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRequest/vo/IssueRequestImportVO.java @@ -0,0 +1,50 @@ +package com.win.module.wms.controller.issueRequest.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +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.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.math.BigDecimal; + + +/** + * 发料申请 Excel VO + * + * @author 超级管理员 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题 +public class IssueRequestImportVO { + + @ExcelProperty("单据号") + private String number; + + @ExcelProperty("车间代码") + private String workshopCode; + + @ExcelProperty("使用在途库") + private String useOnTheWayLocation; + + @ExcelProperty("生产线代码") + private String productionLineCode; + + @ExcelProperty("工位代码") + private String workStationCode; + + @ExcelProperty("物品代码") + private String itemCode; + + @ExcelProperty("数量") + private BigDecimal qty; + + @ExcelProperty(value = "计量单位", converter = DictConvert.class) + @DictFormat(DictTypeConstants.UOM) + private String uom; +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRequest/vo/IssueRequestMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRequest/vo/IssueRequestMainBaseVO.java index f60befb5..4928f5bf 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRequest/vo/IssueRequestMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRequest/vo/IssueRequestMainBaseVO.java @@ -1,5 +1,6 @@ package com.win.module.wms.controller.issueRequest.vo; +import com.win.framework.excel.core.annotations.OnlyOne; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -43,6 +44,7 @@ public class IssueRequestMainBaseVO { @Schema(description = "到库区代码范围") private String toAreaCodes; + @OnlyOne @Schema(description = "单据号") private String number; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRequest/vo/IssueRequestMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRequest/vo/IssueRequestMainCreateReqVO.java index 7e9b3444..84704be5 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRequest/vo/IssueRequestMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRequest/vo/IssueRequestMainCreateReqVO.java @@ -1,12 +1,20 @@ package com.win.module.wms.controller.issueRequest.vo; +import com.win.framework.excel.core.annotations.SubObject; +import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestDetailCreateReqVO; import lombok.*; import io.swagger.v3.oas.annotations.media.Schema; +import java.util.List; + @Schema(description = "管理后台 - 发料申请主创建 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class IssueRequestMainCreateReqVO extends IssueRequestMainBaseVO { + @SubObject + @Schema(description = "子表数据") + private List subList; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestMainConvert.java index 02bd2ea2..e0266e42 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestMainConvert.java @@ -34,4 +34,5 @@ public interface IssueRequestMainConvert { List convertList02(List list); + IssueRequestMainCreateReqVO convert1(IssueRequestMainCreateReqVO createReqVO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/issueRequest/IssueRequestMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/issueRequest/IssueRequestMainMapper.java index f56eafe4..da6b06f2 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/issueRequest/IssueRequestMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/issueRequest/IssueRequestMainMapper.java @@ -78,4 +78,7 @@ public interface IssueRequestMainMapper extends BaseMapperX .orderByDesc(IssueRequestMainDO::getId)); } + default IssueRequestMainDO selectWorkShopCodeAndUseOnTheWayLocation(String workshopCode, String useOnTheWayLocation){ + return selectOne(IssueRequestMainDO::getWorkshopCode,workshopCode, IssueRequestMainDO::getUseOnTheWayLocation,useOnTheWayLocation); + }; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/balance/BalanceServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/balance/BalanceServiceImpl.java index 4d471bd1..198644ab 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/balance/BalanceServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/balance/BalanceServiceImpl.java @@ -107,7 +107,7 @@ public class BalanceServiceImpl implements BalanceService { queryWrapper.eq("item_code", itemCode); queryWrapper.eq("packing_number", packingNumber); queryWrapper.eq("batch", batch); - queryWrapper.eq("inventory_status", inventoryStatus); + queryWrapper.in("inventory_status", inventoryStatus); queryWrapper.eq("location_code", locationCode); List balanceDO = balanceMapper.selectList(queryWrapper); if (!balanceDO.isEmpty()) { diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainService.java index fe7a7350..0d1cfdb1 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainService.java @@ -4,10 +4,9 @@ import java.util.*; import javax.validation.*; import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.issueRequest.vo.IssueRequestMainCreateReqVO; -import com.win.module.wms.controller.issueRequest.vo.IssueRequestMainExportReqVO; -import com.win.module.wms.controller.issueRequest.vo.IssueRequestMainPageReqVO; -import com.win.module.wms.controller.issueRequest.vo.IssueRequestMainUpdateReqVO; +import com.win.module.wms.controller.issueRequest.vo.*; +import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestImportErrorVO; +import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainCreateReqVO; import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO; import com.win.framework.common.pojo.PageResult; @@ -80,4 +79,6 @@ public interface IssueRequestMainService { */ List getIssueRequestMainList(IssueRequestMainExportReqVO exportReqVO); + public List importIssueRequestList(List datas, Integer mode, boolean updatePart); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainServiceImpl.java index ef6a6e10..838bf654 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainServiceImpl.java @@ -1,14 +1,42 @@ package com.win.module.wms.service.issueRequest; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.exceptions.UtilException; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.issueRequest.vo.IssueRequestMainCreateReqVO; -import com.win.module.wms.controller.issueRequest.vo.IssueRequestMainExportReqVO; -import com.win.module.wms.controller.issueRequest.vo.IssueRequestMainPageReqVO; -import com.win.module.wms.controller.issueRequest.vo.IssueRequestMainUpdateReqVO; +import com.win.framework.common.util.validation.ValidationUtils; +import com.win.framework.dict.core.util.DictFrameworkUtils; +import com.win.module.system.api.serialnumber.SerialNumberApi; +import com.win.module.system.enums.serialNumber.RuleCodeEnum; +import com.win.module.wms.controller.issueRequest.vo.*; +import com.win.module.wms.controller.rule.vo.RuleRespVO; +import com.win.module.wms.convert.issueRequest.IssueRequestDetailConvert; +import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; +import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO; +import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; +import com.win.module.wms.dal.dataobject.productionline.ProductionlineDO; +import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; +import com.win.module.wms.dal.dataobject.workstation.WorkstationDO; +import com.win.module.wms.dal.mysql.issueRequest.IssueRequestDetailMapper; +import com.win.module.wms.enums.DictTypeConstants; +import com.win.module.wms.service.itembasic.ItembasicService; +import com.win.module.wms.service.productionline.ProductionlineService; +import com.win.module.wms.service.productionlineitem.ProductionlineitemService; +import com.win.module.wms.service.requestsetting.RequestsettingService; +import com.win.module.wms.service.rule.RuleService; +import com.win.module.wms.service.workshop.WorkshopService; +import com.win.module.wms.service.workstation.WorkstationService; +import com.win.module.wms.util.JobUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import javax.validation.Validator; + +import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.validation.annotation.Validated; +import java.time.LocalDateTime; import java.util.*; import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO; @@ -31,7 +59,28 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService { @Resource private IssueRequestMainMapper issueRequestMainMapper; - + @Resource + private IssueRequestDetailMapper issueRequestDetailMapper; + @Resource + private Validator validator; + @Resource + private SerialNumberApi serialNumberApi; + @Resource + private ItembasicService itembasicService; + @Resource + private WorkshopService workshopService; + @Resource + private ProductionlineitemService productionlineitemService; + @Resource + private ProductionlineService productionlineService; + @Resource + private WorkstationService workstationService; + @Resource + private JobUtils jobUtils; + @Resource + private RuleService ruleService; + @Resource + private RequestsettingService requestsettingService; @Override public Long createIssueRequestMain(IssueRequestMainCreateReqVO createReqVO) { // 插入 @@ -60,6 +109,8 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService { private void validateIssueRequestMainExists(Long id) { if (issueRequestMainMapper.selectById(id) == null) { + return; + }else { throw exception(ISSUE_REQUEST_MAIN_NOT_EXISTS); } } @@ -88,4 +139,171 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService { return issueRequestMainMapper.selectList(exportReqVO); } + private void ifUomSuccess(String itemUom,String uom) { + if(!itemUom.equals(uom)){ + throw new UtilException("提示单位"+ uom + "错误,应该是" + itemUom); + } + } + + private Boolean ifLocationCodeInRule(String itemCode,String locationCode,String ruleLocationCode) { + String[] ruleLocationCodes = ruleLocationCode.split(","); + Boolean request = false; + for (String code : ruleLocationCodes) { + if(code.equals(locationCode)){ + request = true; + }else { + throw new UtilException("未查找到零件"+ itemCode + "与库位" + locationCode + "对应的上架策略"); + } + } + return request; + } + + @Override + @Transactional + public List importIssueRequestList(List datas, Integer mode, boolean updatePart) { + if (CollUtil.isEmpty(datas)) { + throw exception(PREPARETOISSUE_REQUEST_IMPORT_LIST_IS_EMPTY); + } + List errorList = new ArrayList<>(); + datas.forEach(createReqVO -> { + String messageMain = ""; + String messageAll = ""; + String itemType = ""; + //主表校验方法 + if(mode != null){ + try { + validateIssueRequestMainExists(null); + } catch (Exception ex) { + messageMain += ex.getMessage() + ","; + } + try { + workshopService.selectWorkshopExist(createReqVO.getWorkshopCode()); + }catch (Exception ex) { + messageMain += ex.getMessage() + ","; + } + createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + createReqVO.setRequestTime(LocalDateTime.now()); + try { + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("IssueRequest"); + if(requestsettingDO != null){ + createReqVO.setAutoAgree(requestsettingDO.getAutoAgree()); + createReqVO.setAutoCommit(requestsettingDO.getAutoCommit()); + createReqVO.setAutoExecute(requestsettingDO.getAutoExecute()); + createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + } + }catch (Exception ex){ + messageMain += ex.getMessage() + ","; + } + String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RETURN_REQUEST.getCode()); + createReqVO.setNumber(number); + List subList = createReqVO.getSubList(); + List subDOList = IssueRequestDetailConvert.INSTANCE.convertList03(subList); + if(!"".equals(messageMain)){ + for (IssueRequestDetailDO detailDO : subDOList) { + String messageDetail = ""; + // 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList + //子表校验方法 + try { + ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode()); + detailDO.setItemDesc1(itembasicDO.getDesc1()); + detailDO.setItemDesc2(itembasicDO.getDesc2()); + detailDO.setItemName(itembasicDO.getName()); + detailDO.setProjectCode(itembasicDO.getProject()); + itemType = itembasicDO.getType(); + try { + ifUomSuccess(itembasicDO.getUom(), detailDO.getUom()); + } catch (Exception ex) { + messageDetail += ex.getMessage() + ","; + } + } catch (Exception ex) { + messageDetail += ex.getMessage() + ","; + } + try { + ProductionlineDO productionlineDO = productionlineService.productionLineCodeExist(detailDO.getProductionLineCode()); + detailDO.setToLocationCode(productionlineDO.getRawLocationCode()); + } catch (Exception ex) { + messageMain += ex.getMessage() + ","; + } + try { + if (detailDO.getWorkStationCode() != "") { + WorkstationDO workstationDO = workstationService.selectWorkstationExist(detailDO.getWorkStationCode(), createReqVO.getWorkshopCode(), detailDO.getProductionLineCode()); + detailDO.setToLocationCode(workstationDO.getRawLocationCode()); + } + } catch (Exception ex) { + messageMain += ex.getMessage() + ","; + } + try { + productionlineitemService.productionLineCodeAndpItemCodeExist(detailDO.getProductionLineCode(), detailDO.getItemCode()); + } catch (Exception ex) { + messageMain += ex.getMessage() + ","; + } + try { + RuleRespVO grounding = ruleService.grounding(null, null, null, null, null, null, detailDO.getItemCode(), null, null, null, null, null, null); + JSONObject json = JSONUtil.parseObj(grounding); + String locationCode = json.get("LocationCode").toString(); + try { + ifLocationCodeInRule(detailDO.getItemCode(), detailDO.getToLocationCode(), locationCode); + } catch (Exception ex) { + messageDetail += ex.getMessage() + ","; + } + } catch (Exception ex) { + messageDetail += ex.getMessage() + ","; + } + IssueRequestDetailCreateReqVO purchaseturnRequestDetailCreateReqVO = IssueRequestDetailConvert.INSTANCE.convert1(detailDO); + IssueRequestImportErrorVO importVO = IssueRequestDetailConvert.INSTANCE.convert(createReqVO, purchaseturnRequestDetailCreateReqVO); + if (!messageDetail.equals("")) { + importVO.setImportStatus("失败"); + importVO.setImportRemark(messageDetail.substring(0, messageDetail.length() - 1)); + errorList.add(importVO); + } else { + detailDO.setNumber(createReqVO.getNumber()); + detailDO.setMasterId(createReqVO.getId()); + } + } + } + try { + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("IssueRequest"); + try { + jobUtils.ifInType(itemType, businesstypeDO); + } catch (Exception ex) { + messageMain += ex.getMessage() + ","; + } + createReqVO.setBusinessType(businesstypeDO.getCode()); + createReqVO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); + createReqVO.setToLocationTypes(businesstypeDO.getInLocationTypes()); + createReqVO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); + createReqVO.setToAreaCodes(businesstypeDO.getInAreaCodes()); + } catch (Exception ex) { + messageMain += ex.getMessage() + ","; + } + try{ + ValidationUtils.validate(validator,createReqVO); + }catch (Exception ex) { + messageMain += ex.getMessage() + ","; + } + IssueRequestImportErrorVO importVO = new IssueRequestImportErrorVO(); + if (!messageMain.equals("")) { + importVO.setImportStatus("失败"); + importVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); + errorList.add(importVO); + } + IssueRequestMainDO createobj = IssueRequestMainConvert.INSTANCE.convert(createReqVO); + if(errorList.isEmpty()){ + IssueRequestMainDO existIssueRequestMainDO = issueRequestMainMapper.selectWorkShopCodeAndUseOnTheWayLocation(createReqVO.getWorkshopCode(), createobj.getUseOnTheWayLocation()); + if(existIssueRequestMainDO == null && mode != 3){ + issueRequestMainMapper.insert(createobj); + issueRequestDetailMapper.insertBatch(subDOList); + }else if(existIssueRequestMainDO != null && mode != 2){ + issueRequestMainMapper.updateById(createobj); + issueRequestDetailMapper.updateBatch(subDOList); + } + } + } + }); + //错误不为空并非部分更新,手工回滚 + if(!errorList.isEmpty() && !updatePart) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + } + return errorList; + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/jobsetting/JobsettingService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/jobsetting/JobsettingService.java index 43dba645..d2171975 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/jobsetting/JobsettingService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/jobsetting/JobsettingService.java @@ -80,7 +80,7 @@ public interface JobsettingService { List importJobsettingList(List jobsettings, Integer mode, Boolean updatePart); /** - * Setting------QJS + * Setting------QJobs * 查询任务单设置是否存在 * @author chenfang * @param pcode code diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionline/ProductionlineServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionline/ProductionlineServiceImpl.java index 7d24fcb1..380a2a8a 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionline/ProductionlineServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionline/ProductionlineServiceImpl.java @@ -13,6 +13,7 @@ import com.win.module.wms.convert.productionline.ProductionlineConvert; import com.win.module.wms.dal.dataobject.accountcalendar.AccountcalendarDO; import com.win.module.wms.dal.dataobject.owner.OwnerDO; import com.win.module.wms.dal.dataobject.productionline.ProductionlineDO; +import com.win.module.wms.dal.dataobject.productionlineitem.ProductionlineitemDO; import com.win.module.wms.dal.mysql.productionline.ProductionlineMapper; import org.springframework.stereotype.Service; import org.springframework.transaction.interceptor.TransactionAspectSupport; @@ -196,4 +197,15 @@ public class ProductionlineServiceImpl implements ProductionlineService { return productionlineMapper.selectSenior(conditions); } + @Override + public ProductionlineDO productionLineCodeExist(String pproductionLineCode){ + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("code",pproductionLineCode); + ProductionlineDO productionlineDO = productionlineMapper.selectOne(queryWrapper); + if(productionlineDO != null && "TRUE".equals(productionlineDO.getAvailable())){ + return productionlineDO; + }else { + throw exception(PRODUCTIONLINE_NOT_EXISTS); + } + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionlineitem/ProductionlineitemServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionlineitem/ProductionlineitemServiceImpl.java index 05b7f925..8002809b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionlineitem/ProductionlineitemServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionlineitem/ProductionlineitemServiceImpl.java @@ -168,6 +168,7 @@ public class ProductionlineitemServiceImpl implements ProductionlineitemService } } //零件生产线关系有效 + @Override public List productionLineCodeAndpItemCodeExist(String pproductionLineCode,String pitemCode) { QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.eq("production_line_code",pproductionLineCode); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/recordsetting/RecordsettingService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/recordsetting/RecordsettingService.java index a28f515e..cde9a025 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/recordsetting/RecordsettingService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/recordsetting/RecordsettingService.java @@ -81,7 +81,7 @@ public interface RecordsettingService { List importRecordsettingList(List recordsettings, Integer mode, Boolean updatePart); /** - * Setting-----QRS + * Setting-----QRecs * 查询记录单设置是否存在 * @author chenfang * @param pcode diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/requestsetting/RequestsettingService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/requestsetting/RequestsettingService.java index e2233256..478c4a6f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/requestsetting/RequestsettingService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/requestsetting/RequestsettingService.java @@ -78,7 +78,7 @@ public interface RequestsettingService { List importRequestsettingList(List requestsettings, Integer mode, Boolean updatePart); /** - * Setting-----QRS + * Setting-----QReqs * 查询申请单设置是否存在 * @author chenfang * @param pcode diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/requestsetting/RequestsettingServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/requestsetting/RequestsettingServiceImpl.java index eb409fbb..96a889df 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/requestsetting/RequestsettingServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/requestsetting/RequestsettingServiceImpl.java @@ -247,7 +247,7 @@ public class RequestsettingServiceImpl implements RequestsettingService { QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.eq("code",pcode); RequestsettingDO requestsettingDO = requestsettingMapper.selectOne(queryWrapper); - if(requestsettingDO != null && "TRUE".equals(requestsettingDO.getAutoAgree())){ + if(requestsettingDO != null && "TRUE".equals(requestsettingDO.getAvailable())){ return requestsettingDO; }else { throw exception(REQUESTSETTING_NOT_EXISTS); From f2e852a610704431158bcf238bb9728aee7c5672 Mon Sep 17 00:00:00 2001 From: chenfang Date: Wed, 8 Nov 2023 14:31:03 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=AF=BC=E5=85=A5=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IssueRequestDetailConvert.java | 28 ++- .../IssueRequestMainServiceImpl.java | 228 +++++++++--------- .../productionline/ProductionlineService.java | 9 + .../PurchaseclaimRequestMainServiceImpl.java | 2 +- 4 files changed, 144 insertions(+), 123 deletions(-) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestDetailConvert.java index d28ea52c..586d2d0a 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestDetailConvert.java @@ -4,11 +4,11 @@ import java.util.*; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.issueRequest.vo.IssueRequestDetailCreateReqVO; -import com.win.module.wms.controller.issueRequest.vo.IssueRequestDetailExcelVO; -import com.win.module.wms.controller.issueRequest.vo.IssueRequestDetailRespVO; -import com.win.module.wms.controller.issueRequest.vo.IssueRequestDetailUpdateReqVO; +import com.win.module.wms.controller.issueRequest.vo.*; +import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO; @@ -34,4 +34,24 @@ public interface IssueRequestDetailConvert { List convertList02(List list); + List convertList03(List list); + + List convertList04(List list); + + @Mappings({ + @Mapping(source = "mainDO.number", target = "number"), + @Mapping(source = "mainDO.remark", target = "remark"), + @Mapping(source = "mainDO.createTime", target = "createTime"), + @Mapping(source = "mainDO.creator", target = "creator"), + @Mapping(source = "mainDO.updateTime", target = "updateTime"), + @Mapping(source = "mainDO.updater", target = "updater"), + }) + IssueRequestDetailExcelVO convert(IssueRequestMainDO mainDO, IssueRequestDetailDO detailDO); + + @Mappings({ + @Mapping(source = "mainVo.number", target = "number"), + }) + IssueRequestImportErrorVO convert(IssueRequestMainCreateReqVO mainVo, IssueRequestDetailCreateReqVO detailVo); + + IssueRequestDetailCreateReqVO convert1(IssueRequestDetailDO detailDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainServiceImpl.java index 838bf654..9d30d7f0 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainServiceImpl.java @@ -29,6 +29,7 @@ import com.win.module.wms.service.workshop.WorkshopService; import com.win.module.wms.service.workstation.WorkstationService; import com.win.module.wms.util.JobUtils; import org.springframework.stereotype.Service; + import javax.annotation.Resource; import javax.validation.Validator; @@ -81,6 +82,7 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService { private RuleService ruleService; @Resource private RequestsettingService requestsettingService; + @Override public Long createIssueRequestMain(IssueRequestMainCreateReqVO createReqVO) { // 插入 @@ -109,8 +111,8 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService { private void validateIssueRequestMainExists(Long id) { if (issueRequestMainMapper.selectById(id) == null) { - return; - }else { + return; + } else { throw exception(ISSUE_REQUEST_MAIN_NOT_EXISTS); } } @@ -129,6 +131,7 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService { public PageResult getIssueRequestMainPage(IssueRequestMainPageReqVO pageReqVO) { return issueRequestMainMapper.selectPage(pageReqVO); } + @Override public PageResult getIssueRequestMainSenior(CustomConditions conditions) { return issueRequestMainMapper.selectSenior(conditions); @@ -139,20 +142,20 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService { return issueRequestMainMapper.selectList(exportReqVO); } - private void ifUomSuccess(String itemUom,String uom) { - if(!itemUom.equals(uom)){ - throw new UtilException("提示单位"+ uom + "错误,应该是" + itemUom); + private void ifUomSuccess(String itemUom, String uom) { + if (!itemUom.equals(uom)) { + throw new UtilException("提示单位" + uom + "错误,应该是" + itemUom); } } - private Boolean ifLocationCodeInRule(String itemCode,String locationCode,String ruleLocationCode) { + private Boolean ifLocationCodeInRule(String itemCode, String locationCode, String ruleLocationCode) { String[] ruleLocationCodes = ruleLocationCode.split(","); Boolean request = false; for (String code : ruleLocationCodes) { - if(code.equals(locationCode)){ + if (code.equals(locationCode)) { request = true; - }else { - throw new UtilException("未查找到零件"+ itemCode + "与库位" + locationCode + "对应的上架策略"); + } else { + throw new UtilException("未查找到零件" + itemCode + "与库位" + locationCode + "对应的上架策略"); } } return request; @@ -167,141 +170,130 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService { List errorList = new ArrayList<>(); datas.forEach(createReqVO -> { String messageMain = ""; - String messageAll = ""; - String itemType = ""; + BusinesstypeDO businesstypeDO = null; //主表校验方法 - if(mode != null){ + try { + validateIssueRequestMainExists(null); + } catch (Exception ex) { + messageMain += ex.getMessage() + ","; + } + try { + workshopService.selectWorkshopExist(createReqVO.getWorkshopCode()); + } catch (Exception ex) { + messageMain += ex.getMessage() + ","; + } + createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + createReqVO.setRequestTime(LocalDateTime.now()); + try { + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("IssueRequest"); + if (requestsettingDO != null) { + createReqVO.setAutoAgree(requestsettingDO.getAutoAgree()); + createReqVO.setAutoCommit(requestsettingDO.getAutoCommit()); + createReqVO.setAutoExecute(requestsettingDO.getAutoExecute()); + createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + } + } catch (Exception ex) { + messageMain += ex.getMessage() + ","; + } + try { + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("IssueRequest"); + createReqVO.setBusinessType(businesstypeDO.getCode()); + createReqVO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); + createReqVO.setToLocationTypes(businesstypeDO.getInLocationTypes()); + createReqVO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); + createReqVO.setToAreaCodes(businesstypeDO.getInAreaCodes()); + } catch (Exception ex) { + messageMain += ex.getMessage() + ","; + } + try { + ValidationUtils.validate(validator, createReqVO); + } catch (Exception ex) { + messageMain += ex.getMessage() + ","; + } + String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RETURN_REQUEST.getCode()); + createReqVO.setNumber(number); + List subList = createReqVO.getSubList(); + List subDOList = IssueRequestDetailConvert.INSTANCE.convertList03(subList); + for (IssueRequestDetailDO detailDO : subDOList) { + String messageDetail = ""; + // 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList + //子表校验方法 try { - validateIssueRequestMainExists(null); + ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode()); + detailDO.setItemDesc1(itembasicDO.getDesc1()); + detailDO.setItemDesc2(itembasicDO.getDesc2()); + detailDO.setItemName(itembasicDO.getName()); + detailDO.setProjectCode(itembasicDO.getProject()); + try { + jobUtils.ifInType(itembasicDO.getType(), businesstypeDO); + } catch (Exception ex) { + messageMain += ex.getMessage() + ","; + } + try { + ifUomSuccess(itembasicDO.getUom(), detailDO.getUom()); + } catch (Exception ex) { + messageDetail += ex.getMessage() + ","; + } } catch (Exception ex) { - messageMain += ex.getMessage() + ","; + messageDetail += ex.getMessage() + ","; } try { - workshopService.selectWorkshopExist(createReqVO.getWorkshopCode()); - }catch (Exception ex) { + ProductionlineDO productionlineDO = productionlineService.productionLineCodeExist(detailDO.getProductionLineCode()); + detailDO.setToLocationCode(productionlineDO.getRawLocationCode()); + } catch (Exception ex) { messageMain += ex.getMessage() + ","; } - createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); - createReqVO.setRequestTime(LocalDateTime.now()); try { - RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("IssueRequest"); - if(requestsettingDO != null){ - createReqVO.setAutoAgree(requestsettingDO.getAutoAgree()); - createReqVO.setAutoCommit(requestsettingDO.getAutoCommit()); - createReqVO.setAutoExecute(requestsettingDO.getAutoExecute()); - createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + if (detailDO.getWorkStationCode() != "") { + WorkstationDO workstationDO = workstationService.selectWorkstationExist(detailDO.getWorkStationCode(), createReqVO.getWorkshopCode(), detailDO.getProductionLineCode()); + detailDO.setToLocationCode(workstationDO.getRawLocationCode()); } - }catch (Exception ex){ + } catch (Exception ex) { messageMain += ex.getMessage() + ","; } - String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RETURN_REQUEST.getCode()); - createReqVO.setNumber(number); - List subList = createReqVO.getSubList(); - List subDOList = IssueRequestDetailConvert.INSTANCE.convertList03(subList); - if(!"".equals(messageMain)){ - for (IssueRequestDetailDO detailDO : subDOList) { - String messageDetail = ""; - // 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList - //子表校验方法 - try { - ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode()); - detailDO.setItemDesc1(itembasicDO.getDesc1()); - detailDO.setItemDesc2(itembasicDO.getDesc2()); - detailDO.setItemName(itembasicDO.getName()); - detailDO.setProjectCode(itembasicDO.getProject()); - itemType = itembasicDO.getType(); - try { - ifUomSuccess(itembasicDO.getUom(), detailDO.getUom()); - } catch (Exception ex) { - messageDetail += ex.getMessage() + ","; - } - } catch (Exception ex) { - messageDetail += ex.getMessage() + ","; - } - try { - ProductionlineDO productionlineDO = productionlineService.productionLineCodeExist(detailDO.getProductionLineCode()); - detailDO.setToLocationCode(productionlineDO.getRawLocationCode()); - } catch (Exception ex) { - messageMain += ex.getMessage() + ","; - } - try { - if (detailDO.getWorkStationCode() != "") { - WorkstationDO workstationDO = workstationService.selectWorkstationExist(detailDO.getWorkStationCode(), createReqVO.getWorkshopCode(), detailDO.getProductionLineCode()); - detailDO.setToLocationCode(workstationDO.getRawLocationCode()); - } - } catch (Exception ex) { - messageMain += ex.getMessage() + ","; - } - try { - productionlineitemService.productionLineCodeAndpItemCodeExist(detailDO.getProductionLineCode(), detailDO.getItemCode()); - } catch (Exception ex) { - messageMain += ex.getMessage() + ","; - } - try { - RuleRespVO grounding = ruleService.grounding(null, null, null, null, null, null, detailDO.getItemCode(), null, null, null, null, null, null); - JSONObject json = JSONUtil.parseObj(grounding); - String locationCode = json.get("LocationCode").toString(); - try { - ifLocationCodeInRule(detailDO.getItemCode(), detailDO.getToLocationCode(), locationCode); - } catch (Exception ex) { - messageDetail += ex.getMessage() + ","; - } - } catch (Exception ex) { - messageDetail += ex.getMessage() + ","; - } - IssueRequestDetailCreateReqVO purchaseturnRequestDetailCreateReqVO = IssueRequestDetailConvert.INSTANCE.convert1(detailDO); - IssueRequestImportErrorVO importVO = IssueRequestDetailConvert.INSTANCE.convert(createReqVO, purchaseturnRequestDetailCreateReqVO); - if (!messageDetail.equals("")) { - importVO.setImportStatus("失败"); - importVO.setImportRemark(messageDetail.substring(0, messageDetail.length() - 1)); - errorList.add(importVO); - } else { - detailDO.setNumber(createReqVO.getNumber()); - detailDO.setMasterId(createReqVO.getId()); - } - } + try { + productionlineitemService.productionLineCodeAndpItemCodeExist(detailDO.getProductionLineCode(), detailDO.getItemCode()); + } catch (Exception ex) { + messageMain += ex.getMessage() + ","; } try { - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("IssueRequest"); + RuleRespVO grounding = ruleService.grounding(null, null, null, null, null, null, detailDO.getItemCode(), null, null, null, null, null, null); + JSONObject json = JSONUtil.parseObj(grounding); + String locationCode = json.get("LocationCode").toString(); try { - jobUtils.ifInType(itemType, businesstypeDO); + ifLocationCodeInRule(detailDO.getItemCode(), detailDO.getToLocationCode(), locationCode); } catch (Exception ex) { - messageMain += ex.getMessage() + ","; + messageDetail += ex.getMessage() + ","; } - createReqVO.setBusinessType(businesstypeDO.getCode()); - createReqVO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); - createReqVO.setToLocationTypes(businesstypeDO.getInLocationTypes()); - createReqVO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); - createReqVO.setToAreaCodes(businesstypeDO.getInAreaCodes()); } catch (Exception ex) { - messageMain += ex.getMessage() + ","; + messageDetail += ex.getMessage() + ","; } - try{ - ValidationUtils.validate(validator,createReqVO); - }catch (Exception ex) { - messageMain += ex.getMessage() + ","; - } - IssueRequestImportErrorVO importVO = new IssueRequestImportErrorVO(); - if (!messageMain.equals("")) { + IssueRequestDetailCreateReqVO purchaseturnRequestDetailCreateReqVO = IssueRequestDetailConvert.INSTANCE.convert1(detailDO); + IssueRequestImportErrorVO importVO = IssueRequestDetailConvert.INSTANCE.convert(createReqVO, purchaseturnRequestDetailCreateReqVO); + if (!messageMain.equals("") || !messageDetail.equals("")) { importVO.setImportStatus("失败"); + messageMain = messageMain + messageDetail; importVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); errorList.add(importVO); + } else { + detailDO.setNumber(createReqVO.getNumber()); + detailDO.setMasterId(createReqVO.getId()); } - IssueRequestMainDO createobj = IssueRequestMainConvert.INSTANCE.convert(createReqVO); - if(errorList.isEmpty()){ - IssueRequestMainDO existIssueRequestMainDO = issueRequestMainMapper.selectWorkShopCodeAndUseOnTheWayLocation(createReqVO.getWorkshopCode(), createobj.getUseOnTheWayLocation()); - if(existIssueRequestMainDO == null && mode != 3){ - issueRequestMainMapper.insert(createobj); - issueRequestDetailMapper.insertBatch(subDOList); - }else if(existIssueRequestMainDO != null && mode != 2){ - issueRequestMainMapper.updateById(createobj); - issueRequestDetailMapper.updateBatch(subDOList); - } + } + IssueRequestMainDO createobj = IssueRequestMainConvert.INSTANCE.convert(createReqVO); + if (errorList.isEmpty()) { + IssueRequestMainDO existIssueRequestMainDO = issueRequestMainMapper.selectWorkShopCodeAndUseOnTheWayLocation(createReqVO.getWorkshopCode(), createobj.getUseOnTheWayLocation()); + if (existIssueRequestMainDO == null && mode != 3) { + issueRequestMainMapper.insert(createobj); + issueRequestDetailMapper.insertBatch(subDOList); + } else if (existIssueRequestMainDO != null && mode != 2) { + issueRequestMainMapper.updateById(createobj); + issueRequestDetailMapper.updateBatch(subDOList); } } }); //错误不为空并非部分更新,手工回滚 - if(!errorList.isEmpty() && !updatePart) { + if (!errorList.isEmpty() && !updatePart) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); } return errorList; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionline/ProductionlineService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionline/ProductionlineService.java index b57566b6..097b9c2c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionline/ProductionlineService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionline/ProductionlineService.java @@ -97,4 +97,13 @@ public interface ProductionlineService { * @return 分页列表 */ PageResult getProductionlineSenior(CustomConditions conditions); + + /** + * BQ---QPL + * 校验生产线基础信息 + * @author chenfang + * @param pproductionLineCode + * @return + */ + public ProductionlineDO productionLineCodeExist(String pproductionLineCode); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java index eb24da21..c14aa3a5 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java @@ -155,7 +155,7 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest } private void selectUomExist(String itemUom,String uom) { - if(itemUom == uom){ + if(itemUom.equals(uom)){ return; }else { throw new UtilException("提示单位"+ uom + "错误,应该是" + itemUom);