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 6396fcef..0669fb33 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 @@ -1,5 +1,6 @@ package com.nflg.product.bomnew.service.domain; +import cn.hutool.core.convert.Convert; import com.nflg.product.bomnew.constant.BomConstant; import com.nflg.product.bomnew.pojo.dto.sap.impart2.ImportSapParamDTO; import com.nflg.product.bomnew.pojo.dto.sap.impart2.T1DTO; @@ -9,6 +10,7 @@ import org.apache.http.util.Args; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; public class Sap { @@ -30,24 +32,27 @@ public class Sap { result.setI_STLAN(BomConstant.SAP_PBOM); result.setT1(new ArrayList<>()); + BomNewPbomParentVO rootParent = Convert.convert(BomNewPbomParentVO.class, parent); + rootParent.setBomRowId(rootParent.getRowId()); + children.add(rootParent); + List parents = children.stream().filter(u -> u.getBomRowId() > 0).collect(Collectors.toList()); - for (BomNewPbomParentVO child : children){ - T1DTO t1=new T1DTO(); - t1.setID(child.getOrderNumber()); - t1.setMATNR(parent.getMaterialNo()); - t1.setIDNRK(child.getMaterialNo()); - t1.setMEINS(child.getMaterialUnit()); - t1.setMENGE(child.getNum().toString()); - t1.setPOSTP(child.getProjectType()); - t1.setMAKTX(parent.getMaterialDesc()); - t1.setMAKTX1(child.getMaterialDesc()); - result.getT1().add(t1); + for (BomNewPbomParentVO parentBom :parents) { + List parentChilds = children.stream().filter(u -> u.getParentRowId().equals(parentBom.getBomRowId())).collect(Collectors.toList()); + for (BomNewPbomParentVO child : parentChilds){ + T1DTO t1=new T1DTO(); + t1.setID(child.getOrderNumber()); + t1.setMATNR(parentBom.getMaterialNo()); + t1.setIDNRK(child.getMaterialNo()); + t1.setMEINS(child.getMaterialUnit()); + t1.setMENGE(child.getNum().toString()); + t1.setPOSTP(child.getProjectType()); + t1.setMAKTX(parentBom.getMaterialDesc()); + t1.setMAKTX1(child.getMaterialDesc()); + result.getT1().add(t1); + } } + return result; - - - - - } }