From d8406ee9c434aa0c63b261890d1e20bf2f4c6791 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Thu, 4 Jan 2024 19:00:11 +0800 Subject: [PATCH] 1.Pbom --- .../nflg/product/bomnew/api/user/PBomApi.java | 22 +++++++++++++++ .../product/bomnew/constant/EBomConstant.java | 6 ++++ .../service/BomNewPbomParentService.java | 28 ++++++++++++------- .../service/domain/PBom/ConvertToMBom.java | 17 +++++++++++ 4 files changed, 63 insertions(+), 10 deletions(-) create mode 100644 nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/ConvertToMBom.java diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java index 57db3477..0a5cc70a 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java @@ -3,8 +3,11 @@ package com.nflg.product.bomnew.api.user; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.nflg.product.base.core.api.BaseApi; +import com.nflg.product.bomnew.constant.EBomConstant; import com.nflg.product.bomnew.constant.PBomEditStatusEnum; +import com.nflg.product.bomnew.constant.PBomStatusEnum; import com.nflg.product.bomnew.pojo.dto.*; +import com.nflg.product.bomnew.pojo.entity.BomNewPbomParentEntity; import com.nflg.product.bomnew.pojo.entity.BomNewTechnologyPackageTypeEntity; import com.nflg.product.bomnew.pojo.query.BomNewPbomParentQuery; import com.nflg.product.bomnew.pojo.vo.BaseMaterialVO; @@ -167,6 +170,25 @@ public class PBomApi extends BaseApi { return ResultVO.success(bomNewPbomParentService.allocationFactoryForRel(params)); } + @GetMapping("convertToMBom") + @ApiOperation("发布MBom") + public ResultVO convertToMBom(@RequestParam("bomRowId") Long bomRowId) { + BomNewPbomParentEntity parent = bomNewPbomParentService.getById(bomRowId); + VUtils.isTure(!parent.getMaterialNo().startsWith("31")).throwMessage("只有31开头的物料才可以发布"); + VUtils.isTure(!PBomStatusEnum.PUBLISH.equalsValue(parent.getStatus())).throwMessage("只有已发布的BOM才能生成MBom"); + // + VUtils.isTure(!parent.getFacCode().equals(EBomConstant.MAIN_FACTORY_CODE_1010)).throwMessage("只有1010工厂BOM才能进行分工厂"); + + + + return ResultVO.success(bomNewPbomParentService.convertToMBom(bomRowId)); + } + + + + + + diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/EBomConstant.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/EBomConstant.java index b1003ba4..b971ffc2 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/EBomConstant.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/EBomConstant.java @@ -13,4 +13,10 @@ public class EBomConstant { //EBOM 获取时,初始化物料主数据信息是,忽略的字段 public static final String[] EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT = {"material", "materialTexture", "projectType", "materialUnit"}; + + //集团总部代码 + public static final String MAIN_FACTORY_CODE_1010="1010"; + + //仙桃分厂代码 + public static final String XIAN_TAO_FACTORY_CODE_1020="1020"; } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java index 6135d17c..141a3f53 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java @@ -28,10 +28,7 @@ import org.ttzero.excel.entity.Workbook; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.concurrent.ExecutionException; import java.util.concurrent.ForkJoinPool; import java.util.concurrent.ForkJoinTask; @@ -372,11 +369,9 @@ public class BomNewPbomParentService extends ServiceImpl childrenVO = getAllBom(params.getBomRowId() ,0); materialMainService.intiMaterialInfo(childrenVO, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT); - - List relList = bomFactorySplitRuleService.lambdaQuery().eq(BomFactorySplitRuleEntity::getRuleGroupCode, params.getRuleGroupCode()).list(); StringBuilder relPattern=new StringBuilder(); - Map result=new HashMap<>(); + List result=new ArrayList<>(); Boolean match=true; for (BomNewPbomParentVO child : childrenVO) { if(StrUtil.isNotBlank(child.getProductionFactoryCode()) && ProductionFactoryCodeInputTypeEnum.MANUAL.equalsValue(child.getProductionFactoryCodeInputType()) ){ @@ -409,17 +404,30 @@ public class BomNewPbomParentService extends ServiceImpl0); } if(match){ - result.put(child.getRowId(), role.getFactoryCode()); + BomNewPbomChildEntity ent = new BomNewPbomChildEntity(); + ent.setRowId(child.getRowId()); + ent.setFacCode(role.getFactoryCode()); + + result.add(ent); + break; } - } } if(CollUtil.isNotEmpty(result)){ - + pbomChildService.saveOrUpdateBatch(result); } return true; } + /** + * 发布MBOM + */ + public Boolean convertToMBom(Long bomRowId){ + + + return true; + } + } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/ConvertToMBom.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/ConvertToMBom.java new file mode 100644 index 00000000..510e6346 --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/ConvertToMBom.java @@ -0,0 +1,17 @@ +package com.nflg.product.bomnew.service.domain.PBom; + +import io.swagger.annotations.ApiModelProperty; + +/** + * PBOM转MBOM + */ +public class ConvertToMBom { + + @ApiModelProperty("BOM版本行id") + private Long bomRowId; + + + public ConvertToMBom(Long inBomRowId){ + this.bomRowId=inBomRowId; + } +}