From cb403402575a2493a7d98c2a88bd4f643b35d822 Mon Sep 17 00:00:00 2001 From: 10002327 Date: Thu, 26 Sep 2024 10:22:56 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E6=88=90PBOM=E6=97=B6=EF=BC=8Cbom?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E5=AD=90=E9=A1=B9=E7=9A=84=E8=AF=9D=EF=BC=8C?= =?UTF-8?q?=E4=BB=85=E7=94=9F=E6=88=90EBOM=E6=AD=A3=E5=BC=8F=E8=A1=A8?= =?UTF-8?q?=EF=BC=8C=E4=B8=8D=E7=94=9F=E6=88=90PBOM=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=EF=BC=88=E4=BC=98=E5=8C=96=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/BomNewEbomParentService.java | 38 +++++++++++++++++++ .../PBom/TechnologyPackageParamBuilder.java | 10 ++++- .../src/main/resources/logback-prod.xml | 25 ++++++++++++ .../src/main/resources/logback-sit.xml | 25 ++++++++++++ 4 files changed, 97 insertions(+), 1 deletion(-) 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 905b0c8d..e2328aec 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 @@ -40,6 +40,7 @@ import nflg.product.common.constant.STATE; import nflg.product.common.vo.ResultVO; import org.apache.commons.compress.utils.Lists; import org.apache.commons.lang3.StringUtils; +import org.checkerframework.checker.nullness.Opt; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -1026,6 +1027,24 @@ public class BomNewEbomParentService extends ServiceImpl !p.getMaterialDesc().contains("电控系统") && !eBomToPBom.getPBomChildResult().stream().map(BomNewPbomChildEntity::getParentRowId).collect(Collectors.toList()).contains(p.getRowId()) ) .collect(Collectors.toList()); if(!emptyChildParentList.isEmpty()){ + List fList = emptyChildParentList.stream().filter(p -> { + Optional opt = bomTree.stream().filter(t -> p.getMaterialNo().equals(t.getMaterialNo())).findFirst(); + if(opt.isPresent()){ + List cList = bomTree.stream().filter(t -> t.getParentRowId().equals(opt.get().getRowId())).collect(Collectors.toList()); + if(cList.size() > 0){ + Map> ptMap = cList.stream().collect(Collectors.groupingBy(BaseMaterialVO::getProjectType)); + return ptMap.getOrDefault("F",Lists.newArrayList()).size() == cList.size(); + } + } + return false; + }).collect(Collectors.toList()); + if(!fList.isEmpty()){ + String m = fList.stream().map(BomNewPbomParentEntity::getMaterialNo).distinct().collect(Collectors.joining(",")); + OperationErrorMsgVO oem = new OperationErrorMsgVO(); + oem.setPrimaryKey(m); + oem.msg = String.format("物料%s因下级全部是F项,仅保存EBOM,未生成PBOM数据",m); + rList.add(oem); + } // rList = emptyChildParentList.stream().map(BomNewPbomParentEntity::getMaterialNo).distinct() // .map(m -> { // OperationErrorMsgVO oem = new OperationErrorMsgVO(); @@ -1200,6 +1219,25 @@ public class BomNewEbomParentService extends ServiceImpl !p.getMaterialDesc().contains("电控系统") && !eBomToPBom.getPBomChildResult().stream().map(BomNewPbomChildEntity::getParentRowId).collect(Collectors.toList()).contains(p.getRowId()) ) .collect(Collectors.toList()); if(!emptyChildParentList.isEmpty()){ + List fList = emptyChildParentList.stream().filter(p -> { + Optional opt = bomTree.stream().filter(t -> p.getMaterialNo().equals(t.getMaterialNo())).findFirst(); + if(opt.isPresent()){ + List cList = bomTree.stream().filter(t -> t.getParentRowId().equals(opt.get().getRowId())).collect(Collectors.toList()); + if(cList.size() > 0){ + Map> ptMap = cList.stream().collect(Collectors.groupingBy(BaseMaterialVO::getProjectType)); + return ptMap.getOrDefault("F",Lists.newArrayList()).size() == cList.size(); + } + } + return false; + }).collect(Collectors.toList()); + if(!fList.isEmpty()){ + String m = fList.stream().map(BomNewPbomParentEntity::getMaterialNo).distinct().collect(Collectors.joining(",")); + OperationErrorMsgVO oem = new OperationErrorMsgVO(); + oem.setPrimaryKey(m); + oem.msg = String.format("物料%s因下级全部是F项,仅保存EBOM,未生成PBOM数据",m); + rList.add(oem); + } + // rList = emptyChildParentList.stream().map(BomNewPbomParentEntity::getMaterialNo).distinct() // .map(m -> { // OperationErrorMsgVO oem = new OperationErrorMsgVO(); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/TechnologyPackageParamBuilder.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/TechnologyPackageParamBuilder.java index ff306733..05b6d296 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/TechnologyPackageParamBuilder.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/TechnologyPackageParamBuilder.java @@ -2,6 +2,8 @@ package com.nflg.product.bomnew.service.domain.PBom; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.extra.spring.SpringUtil; import com.baomidou.mybatisplus.core.toolkit.IdWorker; @@ -19,12 +21,14 @@ import com.nflg.product.bomnew.service.MaterialMainService; import com.nflg.product.bomnew.util.VUtils; import com.nflg.product.bomnew.util.VersionUtil; import lombok.Getter; +import org.apache.commons.compress.utils.Lists; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import java.util.Objects; +import java.util.Optional; /** * 工艺包构建 @@ -219,7 +223,11 @@ public class TechnologyPackageParamBuilder { child.setRowId(IdWorker.getId()); child.setParentRowId(parent.getRowId()); child.setFacCode(parent.getFacCode()); - child.setOrderNumber(StrUtil.padPre (String.valueOf(parentChildren.size()+1),3,"0")); + //虚拟包作为下级时,序号按照已有的子级取出最大的序号值+1 by 10002327 0925 + int orderNumber = parentChildren.stream().max((p1,p2) -> p1.getOrderNumber().compareTo(p2.getOrderNumber())) + .map(m -> Convert.toInt(m.getOrderNumber())).orElse(0); + + child.setOrderNumber(StrUtil.padPre (String.valueOf(orderNumber+1),3,"0")); child.setDrawingNo(packageMaterial.getDrawingNo()); child.setMaterialNo(packageMaterial.getMaterialNo()); child.setMaterialName(packageMaterial.getMaterialName()); diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/logback-prod.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/logback-prod.xml index c3bf93f4..f5833c6c 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/logback-prod.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/logback-prod.xml @@ -35,6 +35,28 @@ + + + + error + + ${logDir}/error/nflg-bom-new-error.log + + + ${logDir}/error/%d{yyyy-MM-dd}.%i.error.log + + 30 + + true + + ${splitSize} + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} %X{traceId} [%thread] %-5level %logger{50} %msg%n + + + @@ -43,4 +65,7 @@ + + + \ No newline at end of file diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/logback-sit.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/logback-sit.xml index 75819510..d9453627 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/logback-sit.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/logback-sit.xml @@ -35,6 +35,28 @@ + + + + error + + ${logDir}/error/nflg-bom-new-error.log + + + ${logDir}/error/%d{yyyy-MM-dd}.%i.error.log + + 30 + + true + + ${splitSize} + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} %X{traceId} [%thread] %-5level %logger{50} %msg%n + + + @@ -46,4 +68,7 @@ + + + \ No newline at end of file