From 150649ed65e5dbc61c0d21640de13408e9afec76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Fri, 26 Apr 2024 10:30:03 +0800 Subject: [PATCH 1/6] =?UTF-8?q?fix:=20=E8=B0=83=E6=95=B4=E5=AF=BC=E5=85=A5?= =?UTF-8?q?sap=E7=9A=84=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nflg/product/bomnew/api/user/TestApi.java | 53 +++++++++++++++++++ .../dto/sap/impart2/ImportSapParamDTO.java | 4 +- .../service/BomNewEbomParentService.java | 12 +---- .../product/bomnew/service/DQBomService.java | 3 +- 4 files changed, 58 insertions(+), 14 deletions(-) create mode 100644 nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/TestApi.java diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/TestApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/TestApi.java new file mode 100644 index 00000000..3d90fa6a --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/TestApi.java @@ -0,0 +1,53 @@ +package com.nflg.product.bomnew.api.user; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.RandomUtil; +import com.nflg.product.bomnew.pojo.dto.sap.impart2.ImportSapParamDTO; +import com.nflg.product.bomnew.pojo.dto.sap.impart2.T1DTO; +import com.nflg.product.bomnew.service.SapOpUtilService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import nflg.product.common.vo.ResultVO; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * @author 曹鹏飞 + * @date 2024/4/26 09:54:06 + */ +@Api(tags = "测试功能用的接口") +@RestController +@RequestMapping("test") +public class TestApi { + + @Resource + SapOpUtilService sapOpUtilService; + + @GetMapping("sap") + @ApiOperation("sap接口测试") + public ResultVO workDetailsListByPage() { + String dateYMD = DateUtil.format(new Date(), "yyyyMMdd"); + ImportSapParamDTO sapDto = new ImportSapParamDTO(); + sapDto.setZID(RandomUtil.randomNumbers(5)); + sapDto.setI_WERKS("1"); + sapDto.setI_STLAN("1"); + List t1s = new ArrayList<>(); + T1DTO t1 = new T1DTO(); + t1.setID(RandomUtil.randomNumbers(5)); + t1.setMATNR("2200022146"); + t1.setIDNRK("2100724596"); + t1.setMEINS("PC"); + t1.setMENGE("1.00"); + t1.setPOSTP("L"); + t1.setDATUM(dateYMD); + t1s.add(t1); + sapDto.setT1(t1s); + return sapOpUtilService.importToSapV2(sapDto, null); + } +} diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/sap/impart2/ImportSapParamDTO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/sap/impart2/ImportSapParamDTO.java index 1e9a95a2..ddfb7144 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/sap/impart2/ImportSapParamDTO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/sap/impart2/ImportSapParamDTO.java @@ -13,10 +13,10 @@ import java.util.List; public class ImportSapParamDTO { @ApiModelProperty("流程标题,默认“主数据平台") - private String I_LCBT="主数据平台"; + private String I_LCBT = "主数据"; @ApiModelProperty("默认X") - private String I_ACT="X"; + private String I_ACT = "x"; private String ZID=""; diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java index 8d57df1c..9d089bf7 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java @@ -934,19 +934,9 @@ public class BomNewEbomParentService extends ServiceImpl t1s = new ArrayList<>(); - T1DTO troot = new T1DTO(); - troot.setID(RandomUtil.randomNumbers(5)); - troot.setMATNR(""); - troot.setIDNRK(root.getMaterialNo()); - troot.setMEINS(root.getMaterialUnit()); - troot.setMENGE("1"); - troot.setPOSTP(""); - troot.setDATUM(dateYMD); - t1s.add(troot); buildChildrenForSap(root, t1s); sapDto.setT1(t1s); ResultVO resultVO = SpringUtil.getBean(SapOpUtilService.class).importToSapV2(sapDto, null); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomService.java index 71fcd35d..4859629c 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomService.java @@ -365,9 +365,10 @@ public class DQBomService { VUtils.isTure(root.getSapState() == 3).throwMessage("已导入过了,请勿重复操作"); List datas = getAll(rootBomRowId); + datas.remove(0); ImportSapParamDTO sapDto = new ImportSapParamDTO(); sapDto.setZID(RandomUtil.randomNumbers(5)); - sapDto.setI_WERKS(FactoryCodeEnum.FACTORY_1010.getValue()); + sapDto.setI_WERKS("1"); sapDto.setI_STLAN("2"); List t1s = new ArrayList<>(); String dateYMD = DateUtil.format(new Date(), "yyyyMMdd"); From 6e2fe973e0bb1aa70d000eb2c9bc90a4f519674e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Fri, 26 Apr 2024 10:57:11 +0800 Subject: [PATCH 2/6] =?UTF-8?q?fix:=20=E7=94=B5=E6=B0=94bom=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../product/bomnew/pojo/vo/BomNewDQbomVO.java | 5 +++ .../BomNewDQbomExceptionCheckService.java | 4 +- .../bomnew/service/DQBomImportService.java | 43 +++++++++++++------ .../mapper/master/BomNewDQbomParentMapper.xml | 1 + 4 files changed, 37 insertions(+), 16 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewDQbomVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewDQbomVO.java index 202f7210..d590cc73 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewDQbomVO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewDQbomVO.java @@ -90,6 +90,11 @@ public class BomNewDQbomVO extends BomNewDQbomChildEntity implements Serializabl */ private String parentMaterialNo; + public String getParentMaterialNo() { + if (StrUtil.isBlank(parentMaterialNo)) return ""; + return parentMaterialNo; + } + /** * 是否有子节点: 0-否 1-是 */ diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewDQbomExceptionCheckService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewDQbomExceptionCheckService.java index b33834aa..f88c3514 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewDQbomExceptionCheckService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewDQbomExceptionCheckService.java @@ -123,7 +123,7 @@ public class BomNewDQbomExceptionCheckService { private void checkParent(BomNewDQbomParentEntity parent) { EBomExceptionStatusEnum status = EBomExceptionStatusEnum.OK; if (parent.getRootIs() == 1 || parent.getUserRootIs() == 1) { - if ("T".equals(parent.getProjectType())) { + if ("T".equals(parent.getProjectType()) || "Q".equals(parent.getProjectType())) { if (StrUtil.isBlank(parent.getMaterialName())) { status = EBomExceptionStatusEnum.EXCEPT_NO_4; } @@ -162,7 +162,7 @@ public class BomNewDQbomExceptionCheckService { private void checkChild(BomNewDQbomChildEntity child) { EBomExceptionStatusEnum status = EBomExceptionStatusEnum.OK; - if ("T".equals(child.getProjectType())) { + if ("T".equals(child.getProjectType()) || "Q".equals(child.getProjectType())) { if (StrUtil.isBlank(child.getMaterialName())) { status = EBomExceptionStatusEnum.EXCEPT_NO_4; } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomImportService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomImportService.java index 39bce886..bfefc610 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomImportService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomImportService.java @@ -17,6 +17,7 @@ import com.nflg.product.bomnew.constant.UserJobEnum; import com.nflg.product.bomnew.pojo.dto.BaseImportExcelDTO; import com.nflg.product.bomnew.pojo.entity.BomNewDQbomChildEntity; import com.nflg.product.bomnew.pojo.entity.BomNewDQbomParentEntity; +import com.nflg.product.bomnew.pojo.vo.BaseMaterialVO; import com.nflg.product.bomnew.pojo.vo.BomNewDQbomVO; import com.nflg.product.bomnew.pojo.vo.DQbomExcelVO; import com.nflg.product.bomnew.pojo.vo.OperationErrorMsgVO; @@ -46,7 +47,7 @@ public class DQBomImportService { public static final ThreadLocal> excelContextTL = new ThreadLocal<>(); - private static final List TYPES = Arrays.asList("T", "L"); + // private static final List TYPES = Arrays.asList("T", "L"); private static final Map, List>> BOMMAP = new HashMap<>(); @@ -59,8 +60,8 @@ public class DQBomImportService { @Resource UserRoleService userRoleService; - // @Resource - // MaterialMainService materialMainService; + @Resource + MaterialMainService materialMainService; @Resource DQBomService dQBomService; @@ -108,17 +109,31 @@ public class DQBomImportService { @Transactional(rollbackFor = Exception.class) public void save(List parents, List children) { - Set materialNos = parents.stream().map(BomNewDQbomParentEntity::getMaterialNo).collect(Collectors.toSet()); - List oldParents = dQBomParentService.getLatestByMaterialNo(materialNos); + //将导入图号重设为主物料图号 + Set pMaterialNos = parents.stream().map(BomNewDQbomParentEntity::getMaterialNo).collect(Collectors.toSet()); + List oldParents = dQBomParentService.getLatestByMaterialNo(pMaterialNos); + Set cMaterialNos = children.stream().map(BomNewDQbomChildEntity::getMaterialNo).collect(Collectors.toSet()); + cMaterialNos.addAll(pMaterialNos); + List materialBaseInfos = materialMainService.getMaterialBaseInfo(new ArrayList<>(cMaterialNos)); parents.forEach(p -> { BomNewDQbomParentEntity oldParent = oldParents.stream().filter(op -> op.getMaterialNo().equals(p.getMaterialNo())).findFirst().orElse(null); if (!Objects.isNull(oldParent) && Objects.equals(oldParent.getStatus(), DQBomStatusEnum.WAIT_CONVERT.getValue())) { dQBomParentService.getBaseMapper().deleteById(oldParent.getRowId()); dQBomChildService.deleteAllChildren(oldParent.getRowId()); } + BaseMaterialVO vo = materialBaseInfos.stream().filter(m -> m.getMaterialNo().equals(p.getMaterialNo())).findFirst().orElse(null); + if (!Objects.isNull(vo)) { + p.setDrawingNo(vo.getDrawingNo()); + } }); - dQBomParentService.setLastVersionIs0(materialNos); + dQBomParentService.setLastVersionIs0(pMaterialNos); dQBomParentService.saveBatch(parents); + children.forEach(c -> { + BaseMaterialVO vo = materialBaseInfos.stream().filter(m -> m.getMaterialNo().equals(c.getMaterialNo())).findFirst().orElse(null); + if (!Objects.isNull(vo)) { + c.setDrawingNo(vo.getDrawingNo()); + } + }); dQBomChildService.saveBatch(children); BomNewDQbomParentEntity root = parents.stream().filter(p -> p.getRootIs() == 1).findFirst().orElseThrow(() -> new NflgBusinessException(STATE.BusinessError, "根节点不存在")); dQBomService.checkException(root.getRowId()); @@ -234,14 +249,14 @@ public class DQBomImportService { ); } - List noProjectType = datas.stream().filter(u -> !TYPES.contains(u.getProjectType())) - .map(BaseImportExcelDTO::getRowNum) - .collect(Collectors.toList()); - if (!noProjectType.isEmpty()) { - errorMsg.addAll(noProjectType.stream().map(n -> OperationErrorMsgVO.create("第" + n + "行", "项目类别不正确")) - .collect(Collectors.toList()) - ); - } + // List noProjectType = datas.stream().filter(u -> !TYPES.contains(u.getProjectType())) + // .map(BaseImportExcelDTO::getRowNum) + // .collect(Collectors.toList()); + // if (!noProjectType.isEmpty()) { + // errorMsg.addAll(noProjectType.stream().map(n -> OperationErrorMsgVO.create("第" + n + "行", "项目类别不正确")) + // .collect(Collectors.toList()) + // ); + // } List remarkTooLong = datas.stream().filter(u -> StringUtil.CountForMysql(u.getRemark()) > 200) .map(BaseImportExcelDTO::getRowNum) diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewDQbomParentMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewDQbomParentMapper.xml index 1f20a57c..01ac6e9c 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewDQbomParentMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewDQbomParentMapper.xml @@ -66,6 +66,7 @@ ifnull(p.exception_tag, c.exception_tag) exception_tag, ifnull(p.bom_exist, 0) bom_exist, ifnull(p.sap_state, 1) sap_state, + ifnull(p.current_version, if(c.status = 1, 'A00', p2.current_version)) current_version, c.* FROM t_bom_new_dqbom_child c INNER JOIN t_bom_new_dqbom_parent p2 ON p2.row_id = c.parent_row_id From 850c44a18b7a7558af8b30bcedc32321ec9415a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Fri, 26 Apr 2024 13:39:15 +0800 Subject: [PATCH 3/6] =?UTF-8?q?fix:=20=E7=94=B5=E6=B0=94bom=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../product/bomnew/constant/BomConstant.java | 4 ++- .../product/bomnew/pojo/vo/BomNewDQbomVO.java | 5 +-- .../product/bomnew/pojo/vo/DQbomExcelVO.java | 6 ++-- .../BomNewDQbomExceptionCheckService.java | 11 +++--- .../bomnew/service/DQBomImportService.java | 12 +++---- .../product/bomnew/service/DQBomService.java | 36 ++++++++++++++++--- 6 files changed, 53 insertions(+), 21 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/BomConstant.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/BomConstant.java index 2c53a29f..04639454 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/BomConstant.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/BomConstant.java @@ -9,5 +9,7 @@ public class BomConstant { public static final String SAP_YDBOM="1"; - public static final String NO_TEMPORARY_PREFIX = "T"; + public static final String PROJECT_TYPE_TEMPORARY = "T"; + + public static final String PROJECT_TYPE_TEMPORARY_MATERIAL_NO = "9000000000"; } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewDQbomVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewDQbomVO.java index d590cc73..99cfdf69 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewDQbomVO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewDQbomVO.java @@ -1,6 +1,7 @@ package com.nflg.product.bomnew.pojo.vo; import cn.hutool.core.util.StrUtil; +import com.nflg.product.bomnew.constant.BomConstant; import com.nflg.product.bomnew.pojo.entity.BomNewDQbomChildEntity; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -120,7 +121,7 @@ public class BomNewDQbomVO extends BomNewDQbomChildEntity implements Serializabl private String drawingNoDesc; public String getDrawingNoDesc() { - if (StrUtil.equals(getProjectType(), "T")) { + if (StrUtil.equals(getProjectType(), BomConstant.PROJECT_TYPE_TEMPORARY)) { return ""; } return getDrawingNo(); @@ -133,7 +134,7 @@ public class BomNewDQbomVO extends BomNewDQbomChildEntity implements Serializabl private String materialNoDesc; public String getMaterialNoDesc() { - if (StrUtil.equals(getProjectType(), "T")) { + if (StrUtil.equals(getProjectType(), BomConstant.PROJECT_TYPE_TEMPORARY)) { return ""; } return getMaterialNo(); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/DQbomExcelVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/DQbomExcelVO.java index c9ff2b2c..e3103c0e 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/DQbomExcelVO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/DQbomExcelVO.java @@ -42,15 +42,15 @@ public class DQbomExcelVO extends BaseImportExcelDTO { @ExcelColumn("单位") private String materialUnit; + @ExcelColumn("重量") + private BigDecimal unitWeight; + @ExcelColumn("项目类别") private String projectType; @ExcelColumn("版本") private String currentVersion; - @ExcelColumn("单重") - private BigDecimal unitWeight; - @ExcelColumn("备注") private String remark; } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewDQbomExceptionCheckService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewDQbomExceptionCheckService.java index f88c3514..16d7d209 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewDQbomExceptionCheckService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewDQbomExceptionCheckService.java @@ -3,6 +3,7 @@ package com.nflg.product.bomnew.service; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.nflg.product.bomnew.constant.BomConstant; import com.nflg.product.bomnew.constant.EBomExceptionStatusEnum; import com.nflg.product.bomnew.constant.MaterialGetEnum; import com.nflg.product.bomnew.pojo.entity.BomNewDQbomChildEntity; @@ -123,7 +124,9 @@ public class BomNewDQbomExceptionCheckService { private void checkParent(BomNewDQbomParentEntity parent) { EBomExceptionStatusEnum status = EBomExceptionStatusEnum.OK; if (parent.getRootIs() == 1 || parent.getUserRootIs() == 1) { - if ("T".equals(parent.getProjectType()) || "Q".equals(parent.getProjectType())) { + if (StrUtil.isBlank(parent.getProjectType())) { + status = EBomExceptionStatusEnum.EXCEPT_NO_8; + } else if (BomConstant.PROJECT_TYPE_TEMPORARY.equals(parent.getProjectType()) || "Q".equals(parent.getProjectType())) { if (StrUtil.isBlank(parent.getMaterialName())) { status = EBomExceptionStatusEnum.EXCEPT_NO_4; } @@ -162,12 +165,12 @@ public class BomNewDQbomExceptionCheckService { private void checkChild(BomNewDQbomChildEntity child) { EBomExceptionStatusEnum status = EBomExceptionStatusEnum.OK; - if ("T".equals(child.getProjectType()) || "Q".equals(child.getProjectType())) { + if (StrUtil.isBlank(child.getProjectType())) { + status = EBomExceptionStatusEnum.EXCEPT_NO_8; + } else if (BomConstant.PROJECT_TYPE_TEMPORARY.equals(child.getProjectType()) || "Q".equals(child.getProjectType())) { if (StrUtil.isBlank(child.getMaterialName())) { status = EBomExceptionStatusEnum.EXCEPT_NO_4; } - // } else if (child.getMaterialNo().startsWith(BomConstant.NO_TEMPORARY_PREFIX)) { - // status = EBomExceptionStatusEnum.EXCEPT_NO_4; } else { BaseMaterialVO materialVO = materialVOS.stream().filter(v -> v.getMaterialNo().equals(child.getMaterialNo())) .findFirst() diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomImportService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomImportService.java index bfefc610..a1cb81e1 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomImportService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomImportService.java @@ -169,7 +169,7 @@ public class DQBomImportService { .list(); isSame = cc.size() == oc.size() - && cc.stream().filter(c -> c.getProjectType().equals("T")).count() == oc.stream().filter(c -> c.getProjectType().equals("T")).count() + && cc.stream().filter(c -> c.getProjectType().equals(BomConstant.PROJECT_TYPE_TEMPORARY)).count() == oc.stream().filter(c -> c.getProjectType().equals(BomConstant.PROJECT_TYPE_TEMPORARY)).count() && Sets.difference(cc.stream().map(BomNewDQbomChildEntity::getMaterialNo).collect(Collectors.toSet()), oc.stream().map(BomNewDQbomChildEntity::getMaterialNo).collect(Collectors.toSet())).isEmpty(); //VUtils.isTure(isSame).throwMessage("导入的数据已存在,请勿重复导入"); @@ -218,7 +218,7 @@ public class DQBomImportService { Set ccm = cc.stream().map(BomNewDQbomChildEntity::getMaterialNo).collect(Collectors.toSet()); isSame = cc.size() == oc.size() - && cc.stream().filter(c -> c.getProjectType().equals("T")).count() == oc.stream().filter(c -> c.getProjectType().equals("T")).count() + && cc.stream().filter(c -> c.getProjectType().equals(BomConstant.PROJECT_TYPE_TEMPORARY)).count() == oc.stream().filter(c -> c.getProjectType().equals(BomConstant.PROJECT_TYPE_TEMPORARY)).count() && Sets.difference(ccm, oc.stream().map(BomNewDQbomChildEntity::getMaterialNo).collect(Collectors.toSet())).isEmpty(); //VUtils.isTure(isSame).throwMessage("导入的数据已存在,请勿重复导入"); @@ -379,10 +379,10 @@ public class DQBomImportService { log.debug("电气bom导入excel,第{}行,处理前:{}", rowNum.get(), JSON.toJSONString(dQbomExcelVO)); dQbomExcelVO.setRowNum(rowNum.get()); - if (dQbomExcelVO.getProjectType().equals("T")) { + if (dQbomExcelVO.getProjectType().equals(BomConstant.PROJECT_TYPE_TEMPORARY)) { String id = RandomUtil.randomNumbers(9); - dQbomExcelVO.setMaterialNo(BomConstant.NO_TEMPORARY_PREFIX + id); - dQbomExcelVO.setDrawingNo(BomConstant.NO_TEMPORARY_PREFIX + id); + dQbomExcelVO.setMaterialNo(BomConstant.PROJECT_TYPE_TEMPORARY + id); + dQbomExcelVO.setDrawingNo(BomConstant.PROJECT_TYPE_TEMPORARY + id); if (StrUtil.isBlank(dQbomExcelVO.getMaterialUnit())) { dQbomExcelVO.setMaterialUnit("PC"); } @@ -391,7 +391,7 @@ public class DQBomImportService { } } if (StrUtil.equals(dQbomExcelVO.getMaterialNo(), "9000000000")) { - dQbomExcelVO.setProjectType("T"); + dQbomExcelVO.setProjectType(BomConstant.PROJECT_TYPE_TEMPORARY); } dQbomExcelVO.setCurrentVersion(""); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomService.java index 4859629c..8e571bab 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomService.java @@ -257,16 +257,17 @@ public class DQBomService { } //处理child List children = Convert.toList(BomNewDQbomChildEntity.class, query.getChildren()); + List cps = new ArrayList<>(); for (int index = 0, count = children.size(); index < count; index++) { BomNewDQbomChildEntity c = children.get(index); if (Objects.isNull(c.getRowId()) || c.getRowId() == 0) { c.setRowId(IdWorker.getId()); c.setCreatedBy(SessionUtil.getUserCode()); c.setCreatedName(SessionUtil.getRealName()); - if (StrUtil.equals(c.getProjectType(), "T")) { + if (StrUtil.equals(c.getProjectType(), BomConstant.PROJECT_TYPE_TEMPORARY)) { String id = RandomUtil.randomNumbers(9); - c.setMaterialNo(BomConstant.NO_TEMPORARY_PREFIX + id); - c.setDrawingNo(BomConstant.NO_TEMPORARY_PREFIX + id); + c.setMaterialNo(BomConstant.PROJECT_TYPE_TEMPORARY + id); + c.setDrawingNo(BomConstant.PROJECT_TYPE_TEMPORARY + id); if (Objects.isNull(c.getNum()) || NumberUtil.equals(c.getNum(), BigDecimal.ZERO)) { c.setNum(BigDecimal.ONE); } @@ -282,8 +283,21 @@ public class DQBomService { c.setIdentityNo(c.getParentRowId() + "_" + c.getRowId()); c.setOrderNumber(StrUtil.padPre(String.valueOf(index + 1), 3, '0')); c.setTotalWeight(BomUtil.calculateTotalWeight(c.getNum(), query.getChildren().get(index).getUnitWeight())); + //处理parent + BomNewDQbomParentEntity cp = dQBomParentService.lambdaQuery() + .eq(BomNewDQbomParentEntity::getMaterialNo, c.getMaterialNo()) + .eq(BomNewDQbomParentEntity::getStatus, DQBomStatusEnum.WAIT_CONVERT.getValue()) + .one(); + if (!Objects.isNull(cp)) { + cp.setMaterialName(c.getMaterialName()); + cp.setUnitWeight(c.getUnitWeight()); + cp.setTotalWeight(BomUtil.calculateTotalWeight(cp.getNum(), cp.getUnitWeight())); + cp.setModifyTime(LocalDateTime.now()); + cps.add(cp); + } } dQBomChildService.saveBatch(children); + dQBomParentService.updateBatchById(cps); query.setChildren(Convert.toList(BomNewDQbomVO.class, children)); return query; } @@ -333,7 +347,14 @@ public class DQBomService { } public List exportBom(Long rootBomRowId) { - return Convert.toList(DQbomExcelVO.class, getAll(rootBomRowId)); + List datas = getAll(rootBomRowId); + datas.forEach(d -> { + if (BomConstant.PROJECT_TYPE_TEMPORARY.equals(d.getProjectType())) { + d.setMaterialNo(BomConstant.PROJECT_TYPE_TEMPORARY_MATERIAL_NO); + d.setDrawingNo(BomConstant.PROJECT_TYPE_TEMPORARY_MATERIAL_NO); + } + }); + return Convert.toList(DQbomExcelVO.class, datas); } private List getAll(Long rootBomRowId) { @@ -376,10 +397,15 @@ public class DQBomService { T1DTO t1 = new T1DTO(); t1.setID(RandomUtil.randomNumbers(5)); t1.setMATNR(d.getParentMaterialNo()); - t1.setIDNRK(d.getMaterialNo()); t1.setMEINS(d.getMaterialUnit()); t1.setMENGE(d.getNum().toString()); t1.setPOSTP(d.getProjectType()); + if (BomConstant.PROJECT_TYPE_TEMPORARY.equals(d.getProjectType())) { + t1.setIDNRK(""); + t1.setPOTX1(d.getMaterialName()); + } else { + t1.setIDNRK(d.getMaterialNo()); + } t1.setDATUM(dateYMD); t1s.add(t1); }); From b6273ac9ae7ddaa6fa112ab2fcd597e9f9a2d6f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Fri, 26 Apr 2024 16:01:28 +0800 Subject: [PATCH 4/6] =?UTF-8?q?optimize:=20=E4=BC=98=E5=8C=96=E5=AF=BC?= =?UTF-8?q?=E5=85=A5SAP=E8=BF=94=E5=9B=9E=E7=9A=84=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/sap/impart2/ImportSapParamDTO.java | 4 +- .../pojo/vo/OperationErrorMsgBaseVO.java | 26 +++++++ .../bomnew/pojo/vo/OperationErrorMsgVO.java | 20 +++--- .../bomnew/service/SapOpUtilService.java | 68 ++++++++----------- .../product/bomnew/service/SapService.java | 2 +- .../exception/BaseGlobalExceptionHandle.java | 10 ++- .../core/exception/ErrorMsgException.java | 24 +++++++ .../java/nflg/product/common/vo/ResultVO.java | 10 ++- 8 files changed, 110 insertions(+), 54 deletions(-) create mode 100644 nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/OperationErrorMsgBaseVO.java create mode 100644 nflg_project_dev/nflg-boot-base/nflg-boot-core/src/main/java/com/nflg/product/base/core/exception/ErrorMsgException.java diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/sap/impart2/ImportSapParamDTO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/sap/impart2/ImportSapParamDTO.java index ddfb7144..8af87d06 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/sap/impart2/ImportSapParamDTO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/sap/impart2/ImportSapParamDTO.java @@ -13,10 +13,10 @@ import java.util.List; public class ImportSapParamDTO { @ApiModelProperty("流程标题,默认“主数据平台") - private String I_LCBT = "主数据"; + private String I_LCBT = "主数据平台"; @ApiModelProperty("默认X") - private String I_ACT = "x"; + private String I_ACT = "X"; private String ZID=""; diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/OperationErrorMsgBaseVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/OperationErrorMsgBaseVO.java new file mode 100644 index 00000000..0cc71b1b --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/OperationErrorMsgBaseVO.java @@ -0,0 +1,26 @@ +package com.nflg.product.bomnew.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; + +/** + * @author 曹鹏飞 + * @date 2024/4/26 13:44:01 + */ +public class OperationErrorMsgBaseVO implements Serializable { + + @ApiModelProperty("错误描述") + public String msg; + + public OperationErrorMsgBaseVO() { + } + + public OperationErrorMsgBaseVO(String msg) { + this.msg = msg; + } + + public static OperationErrorMsgBaseVO create(String msg) { + return new OperationErrorMsgBaseVO(msg); + } +} diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/OperationErrorMsgVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/OperationErrorMsgVO.java index 64870d44..23e02cb5 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/OperationErrorMsgVO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/OperationErrorMsgVO.java @@ -1,22 +1,26 @@ package com.nflg.product.bomnew.pojo.vo; import io.swagger.annotations.ApiModelProperty; -import lombok.AllArgsConstructor; -import lombok.Data; + +import java.io.Serializable; /** * @author 曹鹏飞 * @date 2024-03-21 14:49:05 */ -@Data -@AllArgsConstructor -public class OperationErrorMsgVO { +public class OperationErrorMsgVO extends OperationErrorMsgBaseVO implements Serializable { @ApiModelProperty("主键数据") - private String primaryKey; + public String primaryKey; - @ApiModelProperty("错误描述") - private String msg; + public OperationErrorMsgVO() { + } + + public OperationErrorMsgVO(String primaryKey, String msg) { + super(msg); + this.primaryKey = primaryKey; + this.msg = msg; + } public static OperationErrorMsgVO create(String primaryKey, String msg) { return new OperationErrorMsgVO(primaryKey, msg); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/SapOpUtilService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/SapOpUtilService.java index 006e4aa1..2f64f08b 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/SapOpUtilService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/SapOpUtilService.java @@ -2,17 +2,18 @@ package com.nflg.product.bomnew.service; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.lang.TypeReference; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; +import com.nflg.product.base.core.exception.ErrorMsgException; import com.nflg.product.bomnew.pojo.dto.sap.ImportToSapDTO; import com.nflg.product.bomnew.pojo.dto.sap.SapReqParams; import com.nflg.product.bomnew.pojo.dto.sap.SapResult; import com.nflg.product.bomnew.pojo.dto.sap.impart2.ImportSapParam2DTO; import com.nflg.product.bomnew.pojo.dto.sap.impart2.ImportSapParamDTO; import com.nflg.product.bomnew.pojo.dto.sap.impart2.T1DTO; +import com.nflg.product.bomnew.pojo.vo.OperationErrorMsgBaseVO; import lombok.extern.slf4j.Slf4j; import nflg.product.common.constant.STATE; import nflg.product.common.vo.ResultVO; @@ -20,10 +21,7 @@ import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.concurrent.atomic.AtomicInteger; @Service @@ -143,18 +141,16 @@ public class SapOpUtilService { if (CollUtil.isEmpty(impartSapParamDTO.getT1())) { return ResultVO.error("同步SAP 参数错误"); } - - SapReqParams params = new SapReqParams(); // 接口名 params.setFunName("ZRFC_PP_003"); - Map> inputStructure = new HashMap<>(); + //Map> inputStructure = new HashMap<>(); ImportSapParam2DTO pp=Convert.convert(ImportSapParam2DTO.class ,impartSapParamDTO); Map parentMap = Convert.convert(new TypeReference>() { }, pp); - inputStructure.put("I_STKO", parentMap); + //inputStructure.put("I_STKO", parentMap); params.setInputParams(parentMap); Map>> inputTables = new HashMap<>(); @@ -177,49 +173,41 @@ public class SapOpUtilService { List< T1DTO > list=null; if (!CollectionUtils.isEmpty(tOut)) { - list = Convert.convert(new TypeReference >() { + list = Convert.convert(new TypeReference>() { }, tOut); } log.info("导入到SAP--返回值:" + JSON.toJSONString(outTablesMap)); - if(CollectionUtil.isNotEmpty(list)){ - - StringBuffer errBuf=new StringBuffer(); + if (CollUtil.isNotEmpty(list)) { + //StringBuffer errBuf=new StringBuffer(); + List liError = new ArrayList<>(); AtomicInteger errCount= new AtomicInteger(); AtomicInteger succCount= new AtomicInteger(); - for (T1DTO item: - list) { - - - if( backList !=null){ - backList.add(item); - } - //"FLAG": "1" -- 0 失败;1 成功 - if(item.getFLAG().equals("0")){ - errCount.getAndIncrement(); - errBuf.append(item.getSTATUS()+","); - }else if (item.getFLAG().equals("1")){ - succCount.getAndIncrement(); - } - - } - - - - if(errCount.get()>0){ - throw new Exception(errBuf.toString()); + for (T1DTO item : list) { + if (backList != null) { + backList.add(item); + } + //"FLAG": "1" -- 0 失败;1 成功 + if (item.getFLAG().equals("0")) { + errCount.getAndIncrement(); + //errBuf.append(item.getSTATUS() + ","); + liError.add(OperationErrorMsgBaseVO.create(item.getSTATUS())); + } else if (item.getFLAG().equals("1")) { + succCount.getAndIncrement(); + } + } + if (errCount.get() > 0) { + //throw new Exception(errBuf.toString()); + throw new ErrorMsgException(STATE.Success, "导入到SAP出错", liError); } - }else{ - throw new Exception("获取sap返回数据转换异常"); + throw new Exception("获取sap返回数据转换异常"); } - - + } catch (ErrorMsgException e) { + throw e; } catch (Exception e) { return ResultVO.error(STATE.Error, e.getMessage()); } - - return ResultVO.success(); } } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/SapService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/SapService.java index beca05f5..4fa84af4 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/SapService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/SapService.java @@ -255,7 +255,7 @@ public class SapService implements ApplicationContextAware { res.setOutTablesMap(outTablesMap); } catch (Exception e) { - e.printStackTrace(); + log.error("导入SAP出错", e); res.setCode(500); res.setSuccess(false); res.setMsg(e.getMessage()); diff --git a/nflg_project_dev/nflg-boot-base/nflg-boot-core/src/main/java/com/nflg/product/base/core/exception/BaseGlobalExceptionHandle.java b/nflg_project_dev/nflg-boot-base/nflg-boot-core/src/main/java/com/nflg/product/base/core/exception/BaseGlobalExceptionHandle.java index 3319d282..c9fcfa81 100644 --- a/nflg_project_dev/nflg-boot-base/nflg-boot-core/src/main/java/com/nflg/product/base/core/exception/BaseGlobalExceptionHandle.java +++ b/nflg_project_dev/nflg-boot-base/nflg-boot-core/src/main/java/com/nflg/product/base/core/exception/BaseGlobalExceptionHandle.java @@ -35,7 +35,7 @@ public class BaseGlobalExceptionHandle { public ResultVO handleJeecgBootException(NflgBusinessException e) { log.error(e.getMessage(), e); //return ResultVO.error(e.getState(), e.getMessage()); - return ResultVO.error(e.getState(),e.getMessage()); + return ResultVO.error(e.getState(), e.getMessage()); } @ExceptionHandler(value = NoHandlerFoundException.class) @@ -152,4 +152,12 @@ public class BaseGlobalExceptionHandle { log.error(ex.getMessage(),ex); return ResultVO.error(STATE.ParamErr, ex.getParameterName()+"参数不能为空"); } + + @ExceptionHandler(value = ErrorMsgException.class) + @ResponseBody + public ResultVO handleErrorMsgException(ErrorMsgException e) { + log.error(e.getMessage(), e); + //return ResultVO.error(e.getState(), e.getMessage()); + return ResultVO.error(e.getState(), e.getMessage(), e.getData()); + } } diff --git a/nflg_project_dev/nflg-boot-base/nflg-boot-core/src/main/java/com/nflg/product/base/core/exception/ErrorMsgException.java b/nflg_project_dev/nflg-boot-base/nflg-boot-core/src/main/java/com/nflg/product/base/core/exception/ErrorMsgException.java new file mode 100644 index 00000000..ca1c9a80 --- /dev/null +++ b/nflg_project_dev/nflg-boot-base/nflg-boot-core/src/main/java/com/nflg/product/base/core/exception/ErrorMsgException.java @@ -0,0 +1,24 @@ +package com.nflg.product.base.core.exception; + +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; +import nflg.product.common.constant.STATE; + +/** + * @author 曹鹏飞 + * @date 2024/4/26 14:18:09 + */ +@Getter +@Slf4j +public class ErrorMsgException extends RuntimeException { + private final STATE state; + private final String msg; + private final Object data; + + public ErrorMsgException(STATE state, String msg, Object data) { + super(msg); + this.state = state; + this.msg = msg; + this.data = data; + } +} diff --git a/nflg_project_dev/nflg-boot-base/nflg-common/src/main/java/nflg/product/common/vo/ResultVO.java b/nflg_project_dev/nflg-boot-base/nflg-common/src/main/java/nflg/product/common/vo/ResultVO.java index 5b9da869..3fdb48e1 100644 --- a/nflg_project_dev/nflg-boot-base/nflg-common/src/main/java/nflg/product/common/vo/ResultVO.java +++ b/nflg_project_dev/nflg-boot-base/nflg-common/src/main/java/nflg/product/common/vo/ResultVO.java @@ -1,6 +1,5 @@ package nflg.product.common.vo; -import cn.hutool.core.text.StrBuilder; import cn.hutool.core.util.StrUtil; import lombok.Data; import nflg.product.common.constant.STATE; @@ -44,6 +43,7 @@ public class ResultVO implements Serializable { vo.msg = msg; return vo; } + public static ResultVO error(STATE code, String msg) { return error(msg, code.getState(), null); } @@ -70,6 +70,12 @@ public class ResultVO implements Serializable { return error(msg ,STATE.PassportErr.getState()); } - + public static ResultVO error(STATE state, String msg, Object value) { + ResultVO vo = new ResultVO<>(); + vo.data = value; + vo.state = state.getState(); + vo.msg = msg; + return vo; + } } \ No newline at end of file From 2f138ae0c0261ba5041142aed6bc105dc4dd7aca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Fri, 26 Apr 2024 16:02:27 +0800 Subject: [PATCH 5/6] =?UTF-8?q?optimize:=20=E7=94=B5=E6=B0=94bom=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/nflg/product/bomnew/pojo/vo/DQbomExcelVO.java | 7 +++++++ .../bomnew/service/BomNewDQbomExceptionCheckService.java | 6 ++---- .../nflg/product/bomnew/service/DQBomImportService.java | 2 +- .../java/com/nflg/product/bomnew/service/DQBomService.java | 6 +++--- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/DQbomExcelVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/DQbomExcelVO.java index e3103c0e..a2fc6298 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/DQbomExcelVO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/DQbomExcelVO.java @@ -48,6 +48,13 @@ public class DQbomExcelVO extends BaseImportExcelDTO { @ExcelColumn("项目类别") private String projectType; + public String getProjectType() { + if (StrUtil.isBlank(projectType)) { + return ""; + } + return projectType; + } + @ExcelColumn("版本") private String currentVersion; diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewDQbomExceptionCheckService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewDQbomExceptionCheckService.java index 16d7d209..80f688dd 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewDQbomExceptionCheckService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewDQbomExceptionCheckService.java @@ -124,9 +124,7 @@ public class BomNewDQbomExceptionCheckService { private void checkParent(BomNewDQbomParentEntity parent) { EBomExceptionStatusEnum status = EBomExceptionStatusEnum.OK; if (parent.getRootIs() == 1 || parent.getUserRootIs() == 1) { - if (StrUtil.isBlank(parent.getProjectType())) { - status = EBomExceptionStatusEnum.EXCEPT_NO_8; - } else if (BomConstant.PROJECT_TYPE_TEMPORARY.equals(parent.getProjectType()) || "Q".equals(parent.getProjectType())) { + if (StrUtil.equals(BomConstant.PROJECT_TYPE_TEMPORARY, parent.getProjectType())) { if (StrUtil.isBlank(parent.getMaterialName())) { status = EBomExceptionStatusEnum.EXCEPT_NO_4; } @@ -167,7 +165,7 @@ public class BomNewDQbomExceptionCheckService { EBomExceptionStatusEnum status = EBomExceptionStatusEnum.OK; if (StrUtil.isBlank(child.getProjectType())) { status = EBomExceptionStatusEnum.EXCEPT_NO_8; - } else if (BomConstant.PROJECT_TYPE_TEMPORARY.equals(child.getProjectType()) || "Q".equals(child.getProjectType())) { + } else if (StrUtil.equals(BomConstant.PROJECT_TYPE_TEMPORARY, child.getProjectType())) { if (StrUtil.isBlank(child.getMaterialName())) { status = EBomExceptionStatusEnum.EXCEPT_NO_4; } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomImportService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomImportService.java index a1cb81e1..fc0ddf28 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomImportService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomImportService.java @@ -390,7 +390,7 @@ public class DQBomImportService { dQbomExcelVO.setNum(BigDecimal.ONE); } } - if (StrUtil.equals(dQbomExcelVO.getMaterialNo(), "9000000000")) { + if (StrUtil.equals(dQbomExcelVO.getMaterialNo(), BomConstant.PROJECT_TYPE_TEMPORARY_MATERIAL_NO)) { dQbomExcelVO.setProjectType(BomConstant.PROJECT_TYPE_TEMPORARY); } dQbomExcelVO.setCurrentVersion(""); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomService.java index 8e571bab..568adeda 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomService.java @@ -308,8 +308,8 @@ public class DQBomService { VUtils.isTure(!SessionUtil.getUserCode().equals(root.getCreatedBy())).throwMessage("不能删除他人创建的bom"); VUtils.isTure(root.getStatus().equals(DQBomStatusEnum.PUBLISHED.getValue())).throwMessage("不能删除已发布的bom"); - List liChildren = new ArrayList<>(); - List liParents = new ArrayList<>(); + Set liChildren = new HashSet<>(); + Set liParents = new HashSet<>(); liParents.add(root.getRowId()); List children = dQBomChildService.getBomsByParentRowId(rowId); children.forEach(c -> { @@ -319,7 +319,7 @@ public class DQBomService { dQBomChildService.getBaseMapper().deleteBatchIds(liChildren); } - private void delete(List parents, List children, BomNewDQbomVO bom) { + private void delete(Set parents, Set children, BomNewDQbomVO bom) { children.add(bom.getRowId()); if (!Objects.isNull(bom.getBomRowId()) && bom.getBomCreateBy().equals(SessionUtil.getUserCode())) { parents.add(bom.getBomRowId()); From 48b97879a35f7901cb387d94ce25180074752bbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Sat, 27 Apr 2024 17:54:19 +0800 Subject: [PATCH 6/6] =?UTF-8?q?optimize:=20=E7=94=B5=E6=B0=94bom=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nflg/product/bomnew/api/user/TestApi.java | 6 +- .../bomnew/service/DQBomImportService.java | 55 +++++++------------ .../product/bomnew/service/DQBomService.java | 2 +- 3 files changed, 24 insertions(+), 39 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/TestApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/TestApi.java index 3d90fa6a..238fe4cc 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/TestApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/TestApi.java @@ -40,10 +40,10 @@ public class TestApi { List t1s = new ArrayList<>(); T1DTO t1 = new T1DTO(); t1.setID(RandomUtil.randomNumbers(5)); - t1.setMATNR("2200022146"); - t1.setIDNRK("2100724596"); + t1.setMATNR("2100677191"); + t1.setIDNRK("1100002498"); t1.setMEINS("PC"); - t1.setMENGE("1.00"); + t1.setMENGE("3.00"); t1.setPOSTP("L"); t1.setDATUM(dateYMD); t1s.add(t1); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomImportService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomImportService.java index fc0ddf28..a6098bfb 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomImportService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomImportService.java @@ -112,30 +112,23 @@ public class DQBomImportService { //将导入图号重设为主物料图号 Set pMaterialNos = parents.stream().map(BomNewDQbomParentEntity::getMaterialNo).collect(Collectors.toSet()); List oldParents = dQBomParentService.getLatestByMaterialNo(pMaterialNos); - Set cMaterialNos = children.stream().map(BomNewDQbomChildEntity::getMaterialNo).collect(Collectors.toSet()); - cMaterialNos.addAll(pMaterialNos); - List materialBaseInfos = materialMainService.getMaterialBaseInfo(new ArrayList<>(cMaterialNos)); parents.forEach(p -> { - BomNewDQbomParentEntity oldParent = oldParents.stream().filter(op -> op.getMaterialNo().equals(p.getMaterialNo())).findFirst().orElse(null); + BomNewDQbomParentEntity oldParent = oldParents.stream() + .filter(op -> op.getMaterialNo().equals(p.getMaterialNo())) + .findFirst() + .orElse(null); if (!Objects.isNull(oldParent) && Objects.equals(oldParent.getStatus(), DQBomStatusEnum.WAIT_CONVERT.getValue())) { dQBomParentService.getBaseMapper().deleteById(oldParent.getRowId()); dQBomChildService.deleteAllChildren(oldParent.getRowId()); } - BaseMaterialVO vo = materialBaseInfos.stream().filter(m -> m.getMaterialNo().equals(p.getMaterialNo())).findFirst().orElse(null); - if (!Objects.isNull(vo)) { - p.setDrawingNo(vo.getDrawingNo()); - } }); dQBomParentService.setLastVersionIs0(pMaterialNos); dQBomParentService.saveBatch(parents); - children.forEach(c -> { - BaseMaterialVO vo = materialBaseInfos.stream().filter(m -> m.getMaterialNo().equals(c.getMaterialNo())).findFirst().orElse(null); - if (!Objects.isNull(vo)) { - c.setDrawingNo(vo.getDrawingNo()); - } - }); dQBomChildService.saveBatch(children); - BomNewDQbomParentEntity root = parents.stream().filter(p -> p.getRootIs() == 1).findFirst().orElseThrow(() -> new NflgBusinessException(STATE.BusinessError, "根节点不存在")); + BomNewDQbomParentEntity root = parents.stream() + .filter(p -> p.getRootIs() == 1) + .findFirst() + .orElseThrow(() -> new NflgBusinessException(STATE.BusinessError, "根节点不存在")); dQBomService.checkException(root.getRowId()); } @@ -143,15 +136,6 @@ public class DQBomImportService { List children) throws JsonProcessingException { log.debug("checkInconsistentData,entity:" + JsonUtil.toJson(parent)); BomNewDQbomParentEntity oldParent = dQBomParentService.getLatestByMaterialNo(parent.getMaterialNo()); - // if (parent.getRowId() > 0) { - // old = dQBomParentService.getLatestByMaterialNo(parent.getMaterialNo()); - // } else { - // old = dQBomChildService.lambdaQuery() - // .eq(BomNewDQbomChildEntity::getParentRowId, parent.getRowId()) - // .eq(BomNewDQbomChildEntity::getMaterialNo, parent.getMaterialNo()) - // .one(); - // } - //BomNewDQbomParentEntity oldParent = dQBomParentService.getLatestByMaterialNo(parent.getMaterialNo()); boolean isSame = true; if (Objects.isNull(oldParent)) { return false; @@ -171,8 +155,6 @@ public class DQBomImportService { isSame = cc.size() == oc.size() && cc.stream().filter(c -> c.getProjectType().equals(BomConstant.PROJECT_TYPE_TEMPORARY)).count() == oc.stream().filter(c -> c.getProjectType().equals(BomConstant.PROJECT_TYPE_TEMPORARY)).count() && Sets.difference(cc.stream().map(BomNewDQbomChildEntity::getMaterialNo).collect(Collectors.toSet()), oc.stream().map(BomNewDQbomChildEntity::getMaterialNo).collect(Collectors.toSet())).isEmpty(); - //VUtils.isTure(isSame).throwMessage("导入的数据已存在,请勿重复导入"); - for (BomNewDQbomChildEntity ccc : cc) { if (!checkInconsistentData(parent.getRowId(), ccc, parents, children)) { isSame = false; @@ -249,15 +231,6 @@ public class DQBomImportService { ); } - // List noProjectType = datas.stream().filter(u -> !TYPES.contains(u.getProjectType())) - // .map(BaseImportExcelDTO::getRowNum) - // .collect(Collectors.toList()); - // if (!noProjectType.isEmpty()) { - // errorMsg.addAll(noProjectType.stream().map(n -> OperationErrorMsgVO.create("第" + n + "行", "项目类别不正确")) - // .collect(Collectors.toList()) - // ); - // } - List remarkTooLong = datas.stream().filter(u -> StringUtil.CountForMysql(u.getRemark()) > 200) .map(BaseImportExcelDTO::getRowNum) .collect(Collectors.toList()); @@ -267,6 +240,18 @@ public class DQBomImportService { ); } + List materialNos = datas.stream().map(DQbomExcelVO::getMaterialNo).distinct().collect(Collectors.toList()); + List materialBaseInfos = materialMainService.getMaterialBaseInfo(materialNos); + datas.forEach(d -> { + BaseMaterialVO vo = materialBaseInfos.stream() + .filter(m -> m.getMaterialNo().equals(d.getMaterialNo())) + .findFirst() + .orElse(null); + if (!Objects.isNull(vo)) { + d.setDrawingNo(vo.getDrawingNo()); + } + }); + return errorMsg; } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomService.java index 568adeda..cf05d9ca 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomService.java @@ -390,7 +390,7 @@ public class DQBomService { ImportSapParamDTO sapDto = new ImportSapParamDTO(); sapDto.setZID(RandomUtil.randomNumbers(5)); sapDto.setI_WERKS("1"); - sapDto.setI_STLAN("2"); + sapDto.setI_STLAN("1"); List t1s = new ArrayList<>(); String dateYMD = DateUtil.format(new Date(), "yyyyMMdd"); datas.forEach(d -> {