From 03036ad4c3c8be6a26461913d2b0c2225fd0e477 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Fri, 31 May 2024 14:45:08 +0800 Subject: [PATCH] =?UTF-8?q?optimize:=20=E5=AF=BC=E5=85=A5SAP=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bomnew/pojo/dto/sap/impart2/T1DTO.java | 52 +++++++++---------- .../pojo/dto/sap/impart2/T1ResultDTO.java | 18 +++++++ .../service/BomNewMbomParentService.java | 4 +- .../service/OptionalMbomMaterialService.java | 4 +- .../bomnew/service/SapOpUtilService.java | 52 ++++++++++++++----- .../product/bomnew/service/domain/Sap.java | 5 +- 6 files changed, 88 insertions(+), 47 deletions(-) create mode 100644 nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/sap/impart2/T1ResultDTO.java diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/sap/impart2/T1DTO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/sap/impart2/T1DTO.java index 218dda06..73372437 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/sap/impart2/T1DTO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/sap/impart2/T1DTO.java @@ -7,55 +7,55 @@ import lombok.Data; @Data public class T1DTO { - @ApiModelProperty("客户端") - private String MANDT=""; + // @ApiModelProperty("客户端") + // private String MANDT=""; - @ApiModelProperty("流程标题") - private String ZLCBT=""; + // @ApiModelProperty("流程标题") + // private String ZLCBT=""; @ApiModelProperty("--序号") - private String ID=""; + protected String ID = ""; @ApiModelProperty("日期") - private String DATUM="99991231"; + protected String DATUM = "99991231"; - @ApiModelProperty("日期") - private String UZEIT=""; + // @ApiModelProperty("日期") + // private String UZEIT=""; @ApiModelProperty("父级物料") - private String MATNR=""; + protected String MATNR = ""; - @ApiModelProperty("物料描述") - private String MAKTX=""; + // @ApiModelProperty("物料描述") + // private String MAKTX=""; @ApiModelProperty("项目类别") - private String POSTP=""; + protected String POSTP = ""; @ApiModelProperty("子级物料") - private String IDNRK; + protected String IDNRK; - @ApiModelProperty("子级物料描述") - private String MAKTX1; + // @ApiModelProperty("子级物料描述") + // private String MAKTX1; @ApiModelProperty("组件数量") - private String MENGE; + protected String MENGE; @ApiModelProperty("单位") - private String MEINS; + protected String MEINS; @ApiModelProperty("bom项目文本") - private String POTX1=""; + protected String POTX1 = ""; - @ApiModelProperty("是否发货") - private String SFFH=""; + // @ApiModelProperty("是否发货") + // private String SFFH=""; - @ApiModelProperty("物料检查结果") - private String ZCHECK=""; + // @ApiModelProperty("物料检查结果") + // private String ZCHECK=""; - @ApiModelProperty("导入状态描述") - private String STATUS=""; + // @ApiModelProperty("导入状态描述") + // private String STATUS=""; - @ApiModelProperty("导入标志") - private String FLAG=""; + // @ApiModelProperty("导入标志") + // private String FLAG=""; } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/sap/impart2/T1ResultDTO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/sap/impart2/T1ResultDTO.java new file mode 100644 index 00000000..df345cb5 --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/sap/impart2/T1ResultDTO.java @@ -0,0 +1,18 @@ +package com.nflg.product.bomnew.pojo.dto.sap.impart2; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author 曹鹏飞 + * @date 2024/5/31 09:42:50 + */ +@Data +public class T1ResultDTO extends T1DTO { + + @ApiModelProperty("导入状态描述") + private String STATUS = ""; + + @ApiModelProperty("导入标志") + private String FLAG = ""; +} diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewMbomParentService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewMbomParentService.java index d235567b..713a23a8 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewMbomParentService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewMbomParentService.java @@ -294,8 +294,8 @@ public class BomNewMbomParentService extends ServiceImpl parentMap = Convert.convert(new TypeReference>() { @@ -154,9 +154,22 @@ public class SapOpUtilService { params.setInputParams(parentMap); Map>> inputTables = new HashMap<>(); - List> childMapList = Convert.convert(new TypeReference>>() { - } - , impartSapParamDTO.getT1()); + // List> childMapList = Convert.convert(new TypeReference>>() { + // } + // , impartSapParamDTO.getT1()); + List> childMapList = new ArrayList<>(); + impartSapParamDTO.getT1().forEach(t -> { + // 项目类别如果是Z,则改为L + if (StrUtil.equals(t.getPOSTP(), "Z", true)) { + t.setPOSTP("L"); + } + //如果单位是ST,则改为PC + if (StrUtil.equals("ST", t.getMEINS(), true)) { + t.setMEINS("PC"); + } + childMapList.add(Convert.convert(new TypeReference>() { + }, t)); + }); inputTables.put("T1", childMapList); params.setInputTables(inputTables); @@ -168,9 +181,9 @@ public class SapOpUtilService { Map>> outTablesMap = sapResult.getOutTablesMap(); log.info("导入到SAP--返回值:" + JSON.toJSONString(outTablesMap)); List> tOut = outTablesMap.get("T1"); - List list = null; + List list = null; if (!CollectionUtils.isEmpty(tOut)) { - list = Convert.convert(new TypeReference>() { + list = Convert.convert(new TypeReference>() { }, tOut); } if (CollUtil.isEmpty(list)) { @@ -180,10 +193,21 @@ public class SapOpUtilService { backList.addAll(list); } //"FLAG": "1" -- 0 失败;1 成功 - return list.stream() + List errorMsgVOS = new ArrayList<>(); + list.stream() .filter(f -> f.getFLAG().equals("0")) - .map(item -> OperationErrorMsgVO.create(buildErrCol1(item), item.getSTATUS())) - .collect(Collectors.toList()); + .forEach(it -> { + Matcher matcher = PATTERN.matcher(it.getSTATUS()); + if (matcher.find()) { + if (errorMsgVOS.stream().noneMatch(f -> StrUtil.equals(f.getPrimaryKey(), matcher.group()))) { + errorMsgVOS.add(OperationErrorMsgVO.create(matcher.group(), it.getSTATUS())); + } + } else { + errorMsgVOS.add(OperationErrorMsgVO.create(buildErrCol1(it), it.getSTATUS())); + } + }); + + return errorMsgVOS; } private String buildErrCol1(T1DTO item) { diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/Sap.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/Sap.java index 15c4bd2c..3a058bb1 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/Sap.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/Sap.java @@ -7,7 +7,6 @@ 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.entity.BomNewPbomParentEntity; import com.nflg.product.bomnew.pojo.vo.BomNewPbomParentVO; -import org.apache.http.util.Args; import java.util.ArrayList; import java.util.List; @@ -48,8 +47,8 @@ public class Sap { t1.setMEINS(child.getMaterialUnit()); t1.setMENGE(child.getNum().toString()); t1.setPOSTP(child.getProjectType()); - t1.setMAKTX(parentBom.getMaterialDesc()); - t1.setMAKTX1(child.getMaterialDesc()); + // t1.setMAKTX(parentBom.getMaterialDesc()); + // t1.setMAKTX1(child.getMaterialDesc()); result.getT1().add(t1); } }