From 41c0b4346ed589daca5d7eee8b094ac0d8e0cce7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Mon, 8 Jan 2024 11:37:06 +0800 Subject: [PATCH] =?UTF-8?q?EBOM=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nflg/product/bomnew/api/user/PBomApi.java | 10 ++++++++- .../bomnew/pojo/vo/BomOriginalListVO.java | 2 +- .../service/BomNewEbomParentService.java | 5 ++++- .../service/BomNewPbomParentService.java | 21 ++++++++++++++++++- .../product/bomnew/service/CrmService.java | 2 -- .../service/domain/EBom/EBomToPBom.java | 9 +++++--- .../OriginalBom/OriginalBomToEBomConvert.java | 16 +++++++------- .../mapper/master/BomNewEbomParentMapper.xml | 4 ++-- 8 files changed, 51 insertions(+), 18 deletions(-) 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 fcea67c2..2ec6cbab 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 @@ -58,12 +58,20 @@ public class PBomApi extends BaseApi { return ResultVO.success(bomNewPbomParentService.workDetailsListByPage(query)); } + + @PostMapping("releaseListByPage") @ApiOperation("PBom已发布工作列表") public ResultVO> releaseListByPage(@RequestBody BomNewPbomParentQuery query) { return ResultVO.success(bomNewPbomParentService.releaseListByPage(query)); } + @PostMapping("exportWorkDetailsListByPage") + @ApiOperation("导出工作列表") + public void exportWorkDetailsListByPage(@RequestBody BomNewPbomParentQuery query ,HttpServletResponse response) { + bomNewPbomParentService.exportWorkDetailsListByPage(query,response); + } + @GetMapping("getChild") @ApiOperation("获取子级") public ResultVO> getChild(@RequestParam("bomRowId") Long bomRowId){ @@ -175,7 +183,7 @@ public class PBomApi extends BaseApi { public ResultVO convertToMBom(@RequestParam("bomRowId") Long bomRowId) throws ExecutionException, InterruptedException { 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.getStatus()> PBomStatusEnum.PUBLISH.getValue()).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/pojo/vo/BomOriginalListVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomOriginalListVO.java index f8527417..0bdf14ed 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomOriginalListVO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomOriginalListVO.java @@ -47,7 +47,7 @@ public class BomOriginalListVO extends BaseMaterialVO { * 数量 */ @ApiModelProperty(value = "数量") - private Integer num; + private BigDecimal num; /** * 是否根节点 0-否 1-是 diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java index 8b62390f..9fb8e933 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java @@ -269,13 +269,16 @@ public class BomNewEbomParentService extends ServiceImpl getChild(Long rowId) { BomNewEbomParentEntity parent = this.getBaseMapper().selectById(rowId); + List parentChild = this.getBaseMapper().getParentChild(rowId); //排除项目类别的赋值 materialMainService.intiMaterialInfoInPattern(parentChild,"^21 | ^31", EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT); if (CollUtil.isNotEmpty(parentChild)) { List materialNos = parentChild.stream().map(u -> u.getMaterialNo()).collect(Collectors.toList()); if (CollUtil.isNotEmpty(materialNos)) { - List list = this.lambdaQuery().in(BomNewEbomParentEntity::getMaterialNo, materialNos).eq(BomNewEbomParentEntity::getLastVersionIs, 1).list(); + List list = this.lambdaQuery().in(BomNewEbomParentEntity::getMaterialNo, materialNos) + .eq(BomNewEbomParentEntity::getLastVersionIs, 1) + .eq(EBomStatusEnum.PUBLISHED.equalsValue(parent.getStatus()),BomNewEbomParentEntity::getStatus,EBomStatusEnum.PUBLISHED.getValue() ).list(); Map bomListMap = ListCommonUtil.listToMap(list, BomNewEbomParentEntity::getMaterialNo); for (BomNewEbomParentVO child : parentChild) { if (bomListMap.containsKey(child.getMaterialNo())) { 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 aa6d1b21..713d5fa0 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 @@ -160,6 +160,10 @@ public class BomNewPbomParentService extends ServiceImpl getChild(Long rowId) { List parentChild = this.getBaseMapper().getParentChild(rowId); @@ -505,11 +509,19 @@ public class BomNewPbomParentService extends ServiceImpl allChild = getAllBom(bomRowId, 0); + if(StrUtil.isBlank(rootParent.getOrderNo())){ + String orderNo = crmService.getOrderNo(rootParent.getMaterialNo()); + rootParent.setOrderNo(orderNo); + } + VUtils.isTure(StrUtil.isBlank(rootParent.getOrderNo())).throwMessage("没有获取到订单号"); + + List noProductionFactoryCodeList = allChild.stream().filter(u -> StrUtil.isBlank(u.getProductionFactoryCode())).map(u -> u.getMaterialNo()).collect(Collectors.toList()); + VUtils.isTure(CollUtil.isNotEmpty(noProductionFactoryCodeList)).throwMessage(StrUtil.join(",", noProductionFactoryCodeList)+"物料暂未分工厂,请分完工厂再进行发布"); ConvertToMBom convertToMBom=new ConvertToMBom(rootParent ,allChild); convertToMBom.convertToMBom(); if(CollUtil.isNotEmpty(convertToMBom.getMBomParentResult())){ @@ -539,12 +551,19 @@ public class BomNewPbomParentService extends ServiceImpl allBom = getAllBom(bomRowId, 0); List bomRowIds = allBom.stream().filter(u -> PBomStatusEnum.WAIT_PUBLISH.equalsValue(u.getStatus()) && u.getBomRowId() > 0).map(u -> u.getBomRowId()).collect(Collectors.toList()); Integer state= parent.getMaterialNo().startsWith("31")?PBomStatusEnum.WAIT_FACTORY.getValue():PBomStatusEnum.PUBLISH.getValue(); bomRowIds.add(bomRowId); this.getBaseMapper().bomRelease(state,SessionUtil.getUserName(),bomRowIds); + //保存订单号 + this.updateById(parent); } catch (Exception ex){ throw new NflgBusinessException(STATE.BusinessError, "发布Pbom失败:"+ex.getMessage()); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/CrmService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/CrmService.java index 95cc93d6..dcb7f717 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/CrmService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/CrmService.java @@ -69,8 +69,6 @@ public class CrmService { */ public String getOrderNo(String materialNo) { try { - - HttpUtils httpUtils = new HttpUtils(); Map paramMp = new HashMap<>(); List> reBody = new ArrayList<>(); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPBom.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPBom.java index c426279b..a8c63995 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPBom.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPBom.java @@ -166,7 +166,7 @@ public class EBomToPBom { vo.setParentRowId(lastVirtualPackage.getBomRowId()); result.add(vo); } else { //当没找到直发包时,记录到变更影响 - buildUpgradeChange(vo); + // buildUpgradeChange(vo); } continue; } @@ -179,7 +179,7 @@ public class EBomToPBom { vo.setParentRowId(lastVirtualPackage.getBomRowId()); result.add(vo); } else { //当没找到直发包时,记录到变更影响 - buildUpgradeChange(vo); + // buildUpgradeChange(vo); } continue; } @@ -306,7 +306,10 @@ public class EBomToPBom { private BomNewEbomParentVO getLastVirtualPackage(BomNewEbomParentVO vo, VirtualPackageTypeEnum virtualPackageTypeEnum) { List zhiFaList = allBomDetail.stream().filter(u -> vo.getLevelNumber().compareTo(u.getLevelNumber()) > 0 && u.getMaterialName().contains(virtualPackageTypeEnum.getConMaterialName())).collect(Collectors.toList()); - return Collections.max(zhiFaList, Comparator.comparing(BomNewEbomParentVO::getLevelNumber)); + if(CollUtil.isNotEmpty(zhiFaList)) { + return Collections.max(zhiFaList, Comparator.comparing(BomNewEbomParentVO::getLevelNumber)); + } + return null; } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomToEBomConvert.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomToEBomConvert.java index 3708fe3c..39460f9b 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomToEBomConvert.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomToEBomConvert.java @@ -249,6 +249,8 @@ public class OriginalBomToEBomConvert extends BaseConvert { parentEntity.setMaterialName(baseMaterialVO.getMaterialName()); parentEntity.setMaterialDesc(baseMaterialVO.getMaterialDesc()); parentEntity.setMaterialTexture(baseMaterialVO.getMaterialTexture()); + parentEntity.setMaterialUnit("KG"); + parentEntity.setNum(parentEntity.getTotalWeight()); } @@ -362,11 +364,11 @@ public class OriginalBomToEBomConvert extends BaseConvert { childEntity.setIdentityNo(StrUtil.join("_", parentRowId.toString(), childEntity.getRowId())); childEntity.setModifyTime(LocalDateTime.now()); //当为原材料时,数量=总重 单位改为KG 图号=编码 - if(StrUtil.isNotBlank(childEntity.getMaterialCategoryCode())&& childEntity.getMaterialCategoryCode().startsWith("10")){ - childEntity.setNum(childEntity.getTotalWeight()); - childEntity.setMaterialUnit("KG"); - childEntity.setDrawingNo(childEntity.getMaterialNo()); - } +// if((StrUtil.isNotBlank(childEntity.getMaterialCategoryCode())&& childEntity.getMaterialCategoryCode().startsWith("10") ) || (StrUtil.isNotBlank(childEntity.getMaterialNo()) && childEntity.getMaterialNo().startsWith("11"))){ +// childEntity.setNum(childEntity.getTotalWeight()); +// childEntity.setMaterialUnit("KG"); +// childEntity.setDrawingNo(childEntity.getMaterialNo()); +// } this.eBomChildResult.add(childEntity); @@ -395,10 +397,10 @@ public class OriginalBomToEBomConvert extends BaseConvert { for (Map.Entry> entry : mateiralNoMp.entrySet()) { List list1 = entry.getValue(); BomOriginalListVO one = list1.get(0); - Integer numResult = 0; + BigDecimal numResult = BigDecimal.ZERO; BigDecimal totalWeightResult = BigDecimal.ZERO; for (BomOriginalListVO item : list1) { - numResult = Objects.nonNull(item.getNum()) ? item.getNum() : 0; + numResult = Objects.nonNull(item.getNum()) ? item.getNum() : BigDecimal.ZERO; totalWeightResult = NumberUtil.add(totalWeightResult, item.getTotalWeight()); } one.setNum(numResult); diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml index 34177bdd..6ec2cfde 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml @@ -86,7 +86,7 @@ order by created_time desc - select * ,row_id as bomRowId from t_bom_new_ebom_parent where user_root_is=1 and ( status=2 or status=4 ) + select * ,row_id as bomRowId from t_bom_new_ebom_parent where ( user_root_is= 1 or root_is=1) and status=2 order by created_time desc @@ -117,7 +117,7 @@