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 73372437..61325790 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 @@ -46,6 +46,9 @@ public class T1DTO { @ApiModelProperty("bom项目文本") protected String POTX1 = ""; + @ApiModelProperty("排序字符串") + protected String SORT = ""; + // @ApiModelProperty("是否发货") // private String SFFH=""; diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/sap/impart2/T1ExtDTO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/sap/impart2/T1ExtDTO.java index e3189574..d42152ff 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/sap/impart2/T1ExtDTO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/sap/impart2/T1ExtDTO.java @@ -34,6 +34,9 @@ public class T1ExtDTO { @ApiModelProperty("bom项目文本") protected String POTX1 = ""; + @ApiModelProperty("排序字符串") + protected String SORT = ""; + private boolean ignore = false; /* diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomExportToSAPImpl.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomExportToSAPImpl.java index 08dc4312..6e588182 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomExportToSAPImpl.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomExportToSAPImpl.java @@ -18,6 +18,7 @@ import com.nflg.product.bomnew.pojo.entity.BomNewPbomChildEntity; import com.nflg.product.bomnew.pojo.entity.BomNewPbomParentEntity; import com.nflg.product.bomnew.pojo.entity.BomNewSapErrorMsgEntity; import com.nflg.product.bomnew.pojo.vo.OperationErrorMsgVO; +import com.nflg.product.bomnew.util.BomUtil; import com.nflg.product.bomnew.util.VUtils; import nflg.product.common.constant.STATE; import org.slf4j.Logger; @@ -74,9 +75,9 @@ public class BomNewPbomExportToSAPImpl implements IBomNewPbomExportToSAP { SapStatusEnum state = SapStatusEnum.PUB_ERROR_ALL; List liErrMsg = null; try { - children.addAll(convert(rcs, root.getMaterialNo(), false)); rcs.forEach(it -> { BomNewPbomParentEntity cp = getParent(it); + children.add(convert(cp, it, root.getMaterialNo(), false)); if (Objects.nonNull(cp)) { Long ddpRowId = null; //选出直发包 @@ -151,7 +152,15 @@ public class BomNewPbomExportToSAPImpl implements IBomNewPbomExportToSAP { .update(); } - private T1ExtDTO convert(BomNewPbomChildEntity child, String parentMaterialNo, boolean ignore) { + /** + * 转换为sap的t1 + * @param parent 该节点对应的parent + * @param child 该节点对应的child + * @param parentMaterialNo 父级物料编号 + * @param ignore 导入时是否忽略 + * @return + */ + private T1ExtDTO convert(BomNewPbomParentEntity parent, BomNewPbomChildEntity child, String parentMaterialNo, Boolean ignore) { T1ExtDTO t = new T1ExtDTO(); t.setID(RandomUtil.randomNumbers(5)); t.setMATNR(parentMaterialNo); @@ -160,6 +169,8 @@ public class BomNewPbomExportToSAPImpl implements IBomNewPbomExportToSAP { t.setDATUM(dateYMD); t.setMEINS(child.getMaterialUnit()); t.setIDNRK(child.getMaterialNo()); + t.setSORT(BomUtil.generateSapOrderNum(child.getProjectType(), child.getMaterialCategoryCode() + , child.getFacCode(), child.getMaterialNo(), Objects.isNull(parent) ? 0 : parent.getBomExist())); t.setIgnore(ignore); if (BomConstant.PROJECT_TYPE_TEMPORARY.equals(child.getProjectType())) { t.setIDNRK(""); @@ -168,10 +179,6 @@ public class BomNewPbomExportToSAPImpl implements IBomNewPbomExportToSAP { return t; } - private List convert(List children, String parentMaterialNo, boolean ignore) { - return children.stream().map(c -> convert(c, parentMaterialNo, ignore)).collect(Collectors.toList()); - } - /** * 构建child数据 * @param cRowId 顶层的直发包rowId @@ -194,6 +201,7 @@ public class BomNewPbomExportToSAPImpl implements IBomNewPbomExportToSAP { } private void handlerItem(Long cRowId, BomNewPbomChildEntity it, BomNewPbomParentEntity p, BomNewPbomChildEntity c, boolean ignore) { + BomNewPbomParentEntity cp = getParent(it); if (Objects.equals(c.getVirtualPartType(), VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getValue())) { if (Objects.nonNull(cRowId)) { T1ExtDTO cct = cmap.get(cRowId).stream() @@ -203,7 +211,7 @@ public class BomNewPbomExportToSAPImpl implements IBomNewPbomExportToSAP { .orElse(null); if (Objects.isNull(cct)) { LOGGER.debug("{} 物料提层到顶级发货包 编号:{},父级编号:{},数量:{},描述:{}", TAG, it.getMaterialNo(), p.getMaterialNo(), it.getNum().toString(), it.getMaterialDesc()); - cct = convert(it, p.getMaterialNo(), false); + cct = convert(cp, it, p.getMaterialNo(), false); cmap.get(cRowId).add(cct); children.add(cct); } else { @@ -214,9 +222,8 @@ public class BomNewPbomExportToSAPImpl implements IBomNewPbomExportToSAP { } } else if (!Objects.equals(it.getVirtualPartType(), VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getValue())) { LOGGER.debug("{} 添加物料 编号:{},父级编号:{},数量:{},描述:{}", TAG, it.getMaterialNo(), p.getMaterialNo(), it.getNum().toString(), it.getMaterialDesc()); - children.add(convert(it, p.getMaterialNo(), ignore)); + children.add(convert(cp, it, p.getMaterialNo(), ignore)); } - BomNewPbomParentEntity cp = getParent(it); if (Objects.nonNull(cp)) { if (!ignore && cp.getUserRootIs() == 1) { ignore = true; @@ -229,7 +236,8 @@ public class BomNewPbomExportToSAPImpl implements IBomNewPbomExportToSAP { return bomNewPbomChildService.lambdaQuery() .select(BomNewPbomChildEntity::getMaterialNo, BomNewPbomChildEntity::getNum , BomNewPbomChildEntity::getMaterialUnit, BomNewPbomChildEntity::getMaterialDesc - , BomNewPbomChildEntity::getVirtualPartType, BomNewPbomChildEntity::getProjectType) + , BomNewPbomChildEntity::getVirtualPartType, BomNewPbomChildEntity::getProjectType + , BomNewPbomChildEntity::getFacCode, BomNewPbomChildEntity::getMaterialCategoryCode) .eq(BomNewPbomChildEntity::getParentRowId, parent.getRowId()) .orderByAsc(BomNewPbomChildEntity::getOrderNumber) .list();