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 9b72bd04..87f1d3d5 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 @@ -7,6 +7,7 @@ import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.extra.spring.SpringUtil; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.nflg.product.base.core.conmon.util.SessionUtil; import com.nflg.product.base.core.exception.NflgBusinessException; @@ -21,6 +22,7 @@ import com.nflg.product.bomnew.pojo.vo.OperationErrorMsgVO; import com.nflg.product.bomnew.util.BomUtil; import com.nflg.product.bomnew.util.SapErrorMsgUtil; import com.nflg.product.bomnew.util.VUtils; +import com.nflg.product.bomnew.util.VersionUtil; import nflg.product.common.constant.STATE; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -145,7 +147,11 @@ public class BomNewPbomExportToSAPImpl implements IBomNewPbomExportToSAP { .orElse(null); if (Objects.nonNull(czfb)) { BomNewPbomParentEntity cpttp = getParent(czfb); - VUtils.isTure(Objects.isNull(cpttp)).throwMessage(StrUtil.format("顶层直发包({})对应的parent丢失", czfb.getMaterialNo())); + // VUtils.isTure(Objects.isNull(cpttp)).throwMessage(StrUtil.format("顶层直发包({})对应的parent丢失", czfb.getMaterialNo())); + if (Objects.isNull(cpttp)) { + //添加直发包的parent + cpttp = addZFBParent(czfb); + } ddpRowId = cpttp.getRowId(); cmap.put(ddpRowId, new ArrayList<>()); LOGGER.debug("{} 直发包 rowId:{},编号:{},描述:{}", TAG, ddpRowId, cpttp.getMaterialNo(), cpttp.getMaterialDesc()); @@ -153,6 +159,46 @@ public class BomNewPbomExportToSAPImpl implements IBomNewPbomExportToSAP { return ddpRowId; } + private BomNewPbomParentEntity addZFBParent(BomNewPbomChildEntity child) { + BomNewPbomParentEntity parent = new BomNewPbomParentEntity(); + parent.setRowId(IdWorker.getId()); + parent.setCreatedTime(LocalDateTime.now()); + parent.setNum(BigDecimal.ONE); + parent.setStatus(PBomStatusEnum.PUBLISH.getValue()); + parent.setBomExist(1); + parent.setDrawingNo(child.getDrawingNo()); + parent.setBatchNo(""); + parent.setCreatedBy(SessionUtil.getUserCode()); + parent.setCreatedJob(UserJobEnum.ENGINEER.getValue()); + parent.setCurrentVersion(VersionUtil.getNextVersion("")); + parent.setDeptRowId(SessionUtil.getDepartRowId()); + parent.setDeptName(SessionUtil.getDepartName()); + parent.setDeviseName(SessionUtil.getRealName()); + parent.setDeviseUserCode(SessionUtil.getUserCode()); + parent.setEditStatus(PBomEditStatusEnum.HANDLER_FINISHED.getValue()); + parent.setFacCode(child.getFacCode()); + parent.setMaterialNo(child.getMaterialNo()); + parent.setLastVersionIs(1); + parent.setLevelNum(3); + parent.setMaterialDesc(child.getMaterialDesc()); + parent.setMaterialName(child.getMaterialName()); + parent.setMaterialUnit(child.getMaterialUnit()); + parent.setMaterialTexture(child.getMaterialTexture()); + parent.setSuperMaterialStatus(0); + parent.setProjectType("L"); + parent.setRootIs(0); + parent.setUserRootIs(0); + parent.setReleaseTime(LocalDateTime.now()); + parent.setReleaseUserName(SessionUtil.getRealName()); + parent.setShouldBomExist(0); + parent.setSource(child.getSource()); + parent.setTechnologyUserCode(SessionUtil.getUserCode()); + parent.setTechnologyUserName(SessionUtil.getRealName()); + parent.setVirtualPackageIs(1); + bomNewPbomParentService.save(parent); + return parent; + } + private void saveSapErrorMsg(Long rootBomRowId, List liErrMsg) { bomNewSapErrorMsgService.getBaseMapper().delete(Wrappers.lambdaQuery(BomNewSapErrorMsgEntity.class) .eq(BomNewSapErrorMsgEntity::getTargetRowId, rootBomRowId));