From 991c4d287de6b381999fdd25cb09eb3ed06f401f Mon Sep 17 00:00:00 2001 From: jing's Date: Thu, 20 Jun 2024 13:45:59 +0800 Subject: [PATCH 1/2] =?UTF-8?q?ebom=20pbom=20=E7=89=88=E6=9C=AC=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../master/BomNewEbomParentFormalMapper.java | 2 +- .../bomnew/pojo/vo/ForwardReportVO.java | 2 +- .../BomNewEbomParentFormalService.java | 17 +++ .../BomNewPbomParentFormalService.java | 21 +++ .../bomnew/service/ForwardReportService.java | 101 ++++++++++---- .../domain/EBom/EBomFormalTreeTask.java | 31 ++++- .../domain/EBom/EBomForwardReport.java | 127 +++++++++++------- .../domain/PBom/PBomFormalTreeTask.java | 48 +++++-- .../domain/PBom/PBomForwardReport.java | 72 +++++++--- .../master/BomNewEbomParentFormalMapper.xml | 12 +- .../master/BomNewPbomParentFormalMapper.xml | 12 +- 11 files changed, 319 insertions(+), 126 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewEbomParentFormalMapper.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewEbomParentFormalMapper.java index 05a50fcf..33900ee8 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewEbomParentFormalMapper.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewEbomParentFormalMapper.java @@ -21,7 +21,7 @@ import java.util.Set; */ public interface BomNewEbomParentFormalMapper extends BaseMapper { - List getParentChild(@Param("rowId") Long rowId); +// List getParentChild(@Param("rowId") Long rowId); List getParentChildBatch(@Param("rowIds") List rowIds); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/ForwardReportVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/ForwardReportVO.java index 51b2ac83..ff61407a 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/ForwardReportVO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/ForwardReportVO.java @@ -68,7 +68,7 @@ public class ForwardReportVO extends BaseMaterialVO { @ApiModelProperty(value = "创建人编码") private String createdBy; - @ApiModelProperty(value = "创建人") + @ApiModelProperty(value = "设计人") private String deviseName; diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentFormalService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentFormalService.java index 20b229bf..454a5e21 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentFormalService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentFormalService.java @@ -11,7 +11,9 @@ import com.nflg.product.bomnew.pojo.entity.BomNewEbomChildEntity; import com.nflg.product.bomnew.pojo.entity.BomNewEbomChildFormalEntity; import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentEntity; import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentFormalEntity; +import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentFormalVO; import lombok.extern.slf4j.Slf4j; +import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -24,6 +26,21 @@ import java.util.stream.Collectors; public class BomNewEbomParentFormalService extends ServiceImpl { + + + public List getParentChild( Long rowId) { + List ids=new ArrayList<>(); + ids.add(rowId); + return getParentChildBatch(ids); + } + + public List getParentChildBatch( List rowIds){ + return this.baseMapper.getParentChildBatch(rowIds); + } + + + + public void copyEbomFormal(Long eBomRowId) { diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentFormalService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentFormalService.java index 84526da5..f926eb31 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentFormalService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentFormalService.java @@ -13,6 +13,8 @@ import com.nflg.product.bomnew.pojo.entity.BomNewPbomChildEntity; import com.nflg.product.bomnew.pojo.entity.BomNewPbomChildFormalEntity; import com.nflg.product.bomnew.pojo.entity.BomNewPbomParentEntity; import com.nflg.product.bomnew.pojo.entity.BomNewPbomParentFormalEntity; +import com.nflg.product.bomnew.pojo.vo.BomNewPbomParentFormalVO; +import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -24,6 +26,25 @@ import java.util.stream.Collectors; public class BomNewPbomParentFormalService extends ServiceImpl { + + + public List getParentChild( Long rowId) { + + List rowIds=new ArrayList<>(); + rowIds.add(rowId); + return getParentChildBatch(rowIds); + } + + public List getParentChildBatch( List rowIds) { + + return this.getBaseMapper().getParentChildBatch(rowIds); + } + + + + + + /** * 拷贝pbom已发布数 */ diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/ForwardReportService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/ForwardReportService.java index 41da240f..695989a3 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/ForwardReportService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/ForwardReportService.java @@ -5,6 +5,8 @@ import cn.hutool.core.convert.Convert; import cn.hutool.core.lang.TypeReference; import cn.hutool.extra.spring.SpringUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.nflg.product.bomnew.constant.EBomConstant; +import com.nflg.product.bomnew.constant.OriginalConstant; import com.nflg.product.bomnew.constant.ReportConstant; import com.nflg.product.bomnew.pojo.entity.*; import com.nflg.product.bomnew.pojo.query.ChildBomReportQuery; @@ -15,6 +17,8 @@ import com.nflg.product.bomnew.service.domain.MBom.MBomForwardReport; import com.nflg.product.bomnew.service.domain.OriginalBom.OriginalBomForwardReport; import com.nflg.product.bomnew.service.domain.PBom.PBomForwardReport; import com.nflg.product.bomnew.util.EecExcelUtil; +import com.nflg.product.bomnew.util.ListCommonUtil; +import com.nflg.product.bomnew.util.MaterialshouldBomExistUtil; import com.nflg.product.bomnew.util.VUtils; import org.springframework.stereotype.Service; import org.ttzero.excel.entity.ListSheet; @@ -23,9 +27,8 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.OutputStream; import java.lang.reflect.Type; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; @Service public class ForwardReportService { @@ -155,26 +158,41 @@ public class ForwardReportService { List chilidEBomList(ChildBomReportQuery query) { -// QueryWrapper queryWrapper = new QueryWrapper<>(); -// queryWrapper.lambda().eq(BomNewEbomChildFormalEntity::getParentRowId, query.getBomRowId()); -// List list = SpringUtil.getBean(BomNewEbomChildFormalService.class).list(queryWrapper); - BomNewEbomParentFormalEntity parentEntity=SpringUtil.getBean(BomNewEbomParentFormalService .class).getById(query.getBomRowId()); - List list = SpringUtil.getBean(BomNewEbomParentFormalService .class).getBaseMapper().getParentChild(query.getBomRowId()); + BomNewEbomParentFormalEntity parentEntity=SpringUtil.getBean(BomNewEbomParentFormalService .class).getById(query.getBomRowId()); + List parentChildList = SpringUtil.getBean(BomNewEbomParentFormalService.class). getParentChild(query.getBomRowId()); + SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(parentChildList, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT); - List childBomLit = Convert.convert( - new TypeReference>() { + List bomRowIds=parentChildList.stream().filter(u -> Objects.nonNull(u.getBomRowId()) && u.getBomRowId()>0 ).map(BomNewEbomParentFormalVO::getBomRowId).collect(Collectors.toList()); + Map parentEntityMap=null; + if(CollUtil.isNotEmpty(bomRowIds)) { + List bomlist = SpringUtil.getBean(BomNewEbomParentFormalService.class).lambdaQuery().in(BomNewEbomParentFormalEntity::getRowId, bomRowIds).list(); - }, list); + parentEntityMap = ListCommonUtil.listToMap(bomlist, BomNewEbomParentFormalEntity::getRowId); - - - for (ForwardReportVO vo: - childBomLit) { - vo.setDeviseName(parentEntity.getDeviseName()); - vo.setCurrentVersion(parentEntity.getCurrentVersion()); - vo.setExpireEndTime(parentEntity.getConvertToEbomTime()); } + for (BomNewEbomParentFormalVO vo : + parentChildList) { + + if (Objects.nonNull(parentEntityMap) && parentEntityMap.containsKey(vo.getBomRowId())) { + BomNewEbomParentFormalEntity ebomParentEntity = parentEntityMap.get(vo.getBomRowId()); + vo.setDeviseName(ebomParentEntity.getDeviseName()); + vo.setDeviseUserCode(ebomParentEntity.getDeviseUserCode()); + vo.setCurrentVersion(ebomParentEntity.getCurrentVersion()); + vo.setExpireEndTime(ebomParentEntity.getConvertToEbomTime()); + }else{ + vo.setDeviseName(parentEntity.getDeviseName()); + vo.setDeviseUserCode(parentEntity.getDeviseUserCode()); + if (MaterialshouldBomExistUtil.checkShouldBomExist(vo)) { + vo.setCurrentVersion(OriginalConstant.NO_BOM_VERSION); + } + else { + vo.setCurrentVersion(OriginalConstant.DEFAULT_BOM_VERSION); + } + } + } + + List childBomLit = Convert.convert(new TypeReference>() {}, parentChildList); return childBomLit; @@ -185,18 +203,47 @@ public class ForwardReportService { BomNewPbomParentFormalEntity parentEntity= SpringUtil.getBean(BomNewPbomParentFormalService .class).getById(query.getBomRowId()); - List list = SpringUtil.getBean(BomNewPbomParentFormalService .class).getBaseMapper().getParentChild(query.getBomRowId()); + List parentChildList = SpringUtil.getBean(BomNewPbomParentFormalService .class).getParentChild(query.getBomRowId()); + SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(parentChildList, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT); + List bomRowIds=parentChildList.stream().filter(u -> Objects.nonNull(u.getBomRowId()) && u.getBomRowId()>0 ).map(BomNewPbomParentFormalVO::getBomRowId).collect(Collectors.toList()); + + + Map parentEntityMap=null; + if(CollUtil.isNotEmpty(bomRowIds)) { + List bomlist = SpringUtil.getBean(BomNewPbomParentFormalService.class ).lambdaQuery().in(BomNewPbomParentFormalEntity::getRowId, bomRowIds).list(); + + parentEntityMap = ListCommonUtil.listToMap(bomlist, BomNewPbomParentFormalEntity::getRowId); + + } + + + for (BomNewPbomParentFormalVO vo: + parentChildList) { + + if (Objects.nonNull(parentEntityMap) && parentEntityMap.containsKey(vo.getBomRowId())) { + BomNewPbomParentFormalEntity pbomParentEntity = parentEntityMap.get(vo.getBomRowId()); + + vo.setDeviseName(pbomParentEntity.getDeviseName()); + vo.setCurrentVersion(pbomParentEntity.getCurrentVersion()); + vo.setExpireEndTime(pbomParentEntity.getReleaseTime()); + }else{ + vo.setExpireEndTime(parentEntity.getReleaseTime()); + vo.setDeviseName(parentEntity.getDeviseName()); + vo.setDeviseUserCode(parentEntity.getDeviseUserCode()); + if (MaterialshouldBomExistUtil.checkShouldBomExist(vo)) { + vo.setCurrentVersion(OriginalConstant.NO_BOM_VERSION); + } + else { + vo.setCurrentVersion(OriginalConstant.DEFAULT_BOM_VERSION); + } + } + } + + List childBomLit = Convert.convert( new TypeReference>() { - }, list); - - for (ForwardReportVO vo: - childBomLit) { - vo.setDeviseName(parentEntity.getDeviseName()); - vo.setCurrentVersion(parentEntity.getCurrentVersion()); - vo.setExpireEndTime(parentEntity.getReleaseTime()); - } + }, parentChildList); return childBomLit; } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomFormalTreeTask.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomFormalTreeTask.java index 65bc6d87..6e9c3bb1 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomFormalTreeTask.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomFormalTreeTask.java @@ -3,6 +3,7 @@ package com.nflg.product.bomnew.service.domain.EBom; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.extra.spring.SpringUtil; +import com.nflg.product.bomnew.constant.OriginalConstant; import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentEntity; import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentFormalEntity; import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentFormalVO; @@ -10,12 +11,14 @@ import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO; import com.nflg.product.bomnew.service.BomNewEbomParentFormalService; import com.nflg.product.bomnew.service.BomNewEbomParentService; import com.nflg.product.bomnew.util.ListCommonUtil; +import com.nflg.product.bomnew.util.MaterialshouldBomExistUtil; import lombok.Getter; import lombok.Setter; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.concurrent.RecursiveTask; import java.util.stream.Collectors; @@ -47,31 +50,53 @@ public class EBomFormalTreeTask extends RecursiveTask bomRowIds=bomDetail.stream().filter(u -> u.getBomRowId()>0 ).map(BomNewEbomParentFormalVO::getBomRowId).collect(Collectors.toList()); + List bomRowIds=bomDetail.stream().filter(u -> Objects.nonNull(u.getBomRowId()) && u.getBomRowId()>0 ).map(BomNewEbomParentFormalVO::getBomRowId).collect(Collectors.toList()); if (CollUtil.isNotEmpty(bomRowIds)) { - List bomlist = SpringUtil.getBean(BomNewEbomParentFormalService.class ).lambdaQuery().in(BomNewEbomParentFormalEntity::getRowId, bomRowIds).list(); Map parentEntityMap = ListCommonUtil.listToMap(bomlist, BomNewEbomParentFormalEntity::getRowId); for (BomNewEbomParentFormalVO detailVO : bomDetail) { if (parentEntityMap.containsKey(detailVO.getBomRowId())) { BomNewEbomParentFormalEntity ebomParentEntity = parentEntityMap.get(detailVO.getBomRowId()); detailVO.setChildBomRowId(ebomParentEntity.getRowId()); - detailVO.setCreatedTime(ebomParentEntity.getCreatedTime()); + // detailVO.setCreatedTime(ebomParentEntity.getCreatedTime()); detailVO.setSourceRowId(ebomParentEntity.getSourceRowId()); detailVO.setCurrentVersion(ebomParentEntity.getCurrentVersion()); + detailVO.setDeviseName(ebomParentEntity.getDeviseName()); detailVO.setDeviseUserCode(ebomParentEntity.getDeviseUserCode()); detailVO.setDeptName(ebomParentEntity.getDeptName()); detailVO.setDeviseName(ebomParentEntity.getDeviseName()); detailVO.setBomExist(ebomParentEntity.getBomExist()); + + } } } + //无Bom + BomNewEbomParentFormalEntity ebomParentEntity = SpringUtil.getBean(BomNewEbomParentFormalService.class).lambdaQuery().eq(BomNewEbomParentFormalEntity::getRowId, bomDetail.get(0).getParentRowId()).one(); + List noBomList = bomDetail.stream().filter(u -> Objects.isNull(u.getBomRowId() )||u.getBomRowId() == 0).collect(Collectors.toList()); + if(CollUtil.isNotEmpty(noBomList)) { + for (BomNewEbomParentFormalVO detailVO : noBomList) { + + // detailVO.setCreatedTime(ebomParentEntity.getCreatedTime()); + detailVO.setDeviseUserCode(ebomParentEntity.getDeviseUserCode()); + detailVO.setDeptName(ebomParentEntity.getDeptName()); + detailVO.setDeviseName(ebomParentEntity.getDeviseName()); + detailVO.setDeviseUserCode(ebomParentEntity.getDeviseUserCode()); + if (MaterialshouldBomExistUtil.checkShouldBomExist(detailVO)) { + detailVO.setCurrentVersion(OriginalConstant.NO_BOM_VERSION); + } else { + detailVO.setCurrentVersion(OriginalConstant.DEFAULT_BOM_VERSION); + } + } + + } + } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomForwardReport.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomForwardReport.java index a0821a6c..f6d5a8cb 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomForwardReport.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomForwardReport.java @@ -1,6 +1,7 @@ package com.nflg.product.bomnew.service.domain.EBom; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.ListUtil; import cn.hutool.core.convert.Convert; @@ -11,6 +12,7 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.nflg.product.base.core.exception.NflgBusinessException; import com.nflg.product.bomnew.constant.EBomConstant; +import com.nflg.product.bomnew.constant.OriginalConstant; import com.nflg.product.bomnew.constant.ReportConstant; import com.nflg.product.bomnew.pojo.entity.BomNewEbomChildFormalEntity; import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentFormalEntity; @@ -21,6 +23,7 @@ import com.nflg.product.bomnew.service.BomNewEbomParentFormalService; import com.nflg.product.bomnew.service.MaterialMainService; import com.nflg.product.bomnew.service.domain.BaseForwardReport; import com.nflg.product.bomnew.util.ListCommonUtil; +import com.nflg.product.bomnew.util.MaterialshouldBomExistUtil; import com.nflg.product.bomnew.util.VersionUtil; import nflg.product.common.constant.STATE; @@ -39,7 +42,7 @@ public class EBomForwardReport extends BaseForwardReport { public EBomForwardReport(ReverseReportQuery query) { - super(query); + super(query); } @@ -51,7 +54,7 @@ public class EBomForwardReport extends BaseForwardReport { } if (query.getVersionStrategy().compareTo(ReportConstant.VersionStrategyEnum.NEW.getValue()) == 0) { queryWrapper.lambda().eq(BomNewEbomParentFormalEntity::getCurrentVersion, getMaxVersion()); - } else if(query.getVersionStrategy().compareTo(ReportConstant.VersionStrategyEnum.DEFINE.getValue()) == 0) { + } else if (query.getVersionStrategy().compareTo(ReportConstant.VersionStrategyEnum.DEFINE.getValue()) == 0) { queryWrapper.lambda().eq(BomNewEbomParentFormalEntity::getCurrentVersion, query.getBomVersion()); } @@ -73,7 +76,6 @@ public class EBomForwardReport extends BaseForwardReport { } - return list; } @@ -105,42 +107,73 @@ public class EBomForwardReport extends BaseForwardReport { */ ReportBomVO singleReport() { - List listParent=getParent(); + List listParent = getParent(); BomNewEbomParentFormalEntity parentFormal0 = listParent.get(0); ForwardReportVO forwardReportVO = Convert.convert(ForwardReportVO.class, parentFormal0); List nodesList = new ArrayList<>(); - for(BomNewEbomParentFormalEntity parentFormal:listParent) { + for (BomNewEbomParentFormalEntity parentFormal : listParent) { - List list = SpringUtil.getBean(BomNewEbomParentFormalService.class).getBaseMapper().getParentChild(parentFormal.getRowId()); - initMaterialInfo(list); + List parentChildList = SpringUtil.getBean(BomNewEbomParentFormalService.class).getParentChild(parentFormal.getRowId()); + initMaterialInfo(parentChildList); - if (CollectionUtil.isNotEmpty(list)) { + if (CollectionUtil.isNotEmpty(parentChildList)) { - List nodeList = Convert.convert(new TypeReference>() { - }, list); + List bomRowIds = parentChildList.stream().filter(u -> Objects.nonNull(u.getBomRowId()) && u.getBomRowId() > 0).map(BomNewEbomParentFormalVO::getBomRowId).collect(Collectors.toList()); + Map parentEntityMap=null; + if(CollUtil.isNotEmpty(bomRowIds)) { + List bomlist = SpringUtil.getBean(BomNewEbomParentFormalService.class).lambdaQuery().in(BomNewEbomParentFormalEntity::getRowId, bomRowIds).list(); + + parentEntityMap = ListCommonUtil.listToMap(bomlist, BomNewEbomParentFormalEntity::getRowId); + } AtomicInteger orderNum = new AtomicInteger(); - for (ForwardReportVO vo : - nodeList) { - // vo.setCreatedTime(forwardReportVO.getCreatedTime()); - vo.setExpireEndTime(parentFormal.getConvertToEbomTime()); - vo.setLevelNum(1); - vo.setOrderNumber(orderNum.incrementAndGet() + ""); - vo.setDeviseName(forwardReportVO.getDeviseName()); - vo.setCurrentVersion(forwardReportVO.getCurrentVersion()); + for (BomNewEbomParentFormalVO vo : + parentChildList) { + + if (Objects.nonNull(parentEntityMap) && parentEntityMap.containsKey(vo.getBomRowId())) { + // vo.setCreatedTime(forwardReportVO.getCreatedTime()); + // vo.setExpireEndTime(parentFormal.getConvertToEbomTime()); + + BomNewEbomParentFormalEntity ebomParentEntity = parentEntityMap.get(vo.getBomRowId()); + vo.setLevelNum(1); + vo.setOrderNumber(orderNum.incrementAndGet() + ""); + vo.setDeviseName(ebomParentEntity.getDeviseName()); + vo.setDeviseUserCode(ebomParentEntity.getDeviseUserCode()); + vo.setCurrentVersion(ebomParentEntity.getCurrentVersion()); + + + } else { + vo.setLevelNum(1); + vo.setOrderNumber(orderNum.incrementAndGet() + ""); + vo.setDeviseName(parentFormal.getDeviseName()); + vo.setDeviseName(parentFormal.getDeviseUserCode()); + if (MaterialshouldBomExistUtil.checkShouldBomExist(vo)) { + vo.setCurrentVersion(OriginalConstant.NO_BOM_VERSION); + } else { + vo.setCurrentVersion(OriginalConstant.DEFAULT_BOM_VERSION); + } + + + } } - nodesList.addAll(nodeList); + + // Collections.sort(nodeList, (option0, option1) -> option0.getOrderNumber().compareTo(option1.getOrderNumber())); } + + List nodeList = Convert.convert(new TypeReference>() { + }, parentChildList); + nodesList.addAll(nodeList); + } - return buildReportBomVo(forwardReportVO,nodesList); + return buildReportBomVo(forwardReportVO, nodesList); } @@ -185,18 +218,19 @@ public class EBomForwardReport extends BaseForwardReport { * * @return */ - synchronized List bomDetailList(Long bomRowId) { - List childList = SpringUtil.getBean(BomNewEbomParentFormalService.class).getBaseMapper().getParentChild(bomRowId); + synchronized List bomDetailList(Long bomRowId) { + List childList = SpringUtil.getBean(BomNewEbomParentFormalService.class).getParentChild(bomRowId); EBomFormalTreeTask task = new EBomFormalTreeTask(childList); ForkJoinPool pool = new ForkJoinPool(); ForkJoinTask> submit = pool.submit(task); List bomList = submit.join(); - initMaterialInfo(bomList); + initMaterialInfo(bomList); return bomList; } - void initMaterialInfo( List list){ - SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(list,BomNewEbomParentFormalVO::getMaterialNo, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT2); + + void initMaterialInfo(List list) { + SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(list, BomNewEbomParentFormalVO::getMaterialNo, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT2); } @@ -208,35 +242,33 @@ public class EBomForwardReport extends BaseForwardReport { ReportBomVO multiReport() { - - List listParent=getParent(); + List listParent = getParent(); BomNewEbomParentFormalEntity parentFormal0 = listParent.get(0); ForwardReportVO forwardReportVO = Convert.convert(ForwardReportVO.class, parentFormal0); - - List nodesList=new ArrayList<>(); - for(BomNewEbomParentFormalEntity parentFormal :listParent){ + List nodesList = new ArrayList<>(); + for (BomNewEbomParentFormalEntity parentFormal : listParent) { - List bomList = bomDetailList(parentFormal.getRowId()); - List convertBomList = Convert.convert(new TypeReference>() { - }, bomList); + List bomList = bomDetailList(parentFormal.getRowId()); + List convertBomList = Convert.convert(new TypeReference>() { + }, bomList); - sumLevel(convertBomList); + sumLevel(convertBomList); - //转化为树结构 - List nodeList = showDataStyle(convertBomList, parentFormal.getRowId()); + //转化为树结构 + List nodeList = showDataStyle(convertBomList, parentFormal.getRowId()); nodesList.addAll(nodeList); - for (ForwardReportVO vo : - nodeList) { + for (ForwardReportVO vo : + nodeList) { - vo.setDeviseName(parentFormal.getDeviseName()); - vo.setExpireEndTime(parentFormal.getConvertToEbomTime()); - } + // vo.setDeviseName(parentFormal.getDeviseName()); + vo.setExpireEndTime(parentFormal.getConvertToEbomTime()); + } } - return buildReportBomVo(forwardReportVO,nodesList,query.getDataType()); + return buildReportBomVo(forwardReportVO, nodesList, query.getDataType()); } @@ -249,12 +281,12 @@ public class EBomForwardReport extends BaseForwardReport { * @return */ ReportBomVO sumReport() { - List listParent=getParent(); + List listParent = getParent(); BomNewEbomParentFormalEntity parentFormal0 = listParent.get(0); ForwardReportVO forwardReportVO = Convert.convert(ForwardReportVO.class, parentFormal0); - List nodesList=new ArrayList<>(); - for(BomNewEbomParentFormalEntity parentFormal :listParent) { + List nodesList = new ArrayList<>(); + for (BomNewEbomParentFormalEntity parentFormal : listParent) { List bomList = bomDetailList(parentFormal.getRowId()); List convertBomList = Convert.convert(new TypeReference>() { @@ -277,13 +309,10 @@ public class EBomForwardReport extends BaseForwardReport { } } - return buildReportBomVo(forwardReportVO,nodesList); + return buildReportBomVo(forwardReportVO, nodesList); } - - - public ReportBomVO genReport() { //单层 if (query.getQueryType().compareTo(ReportConstant.QueryTypeEnum.SINGLE.getValue()) == 0) { diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomFormalTreeTask.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomFormalTreeTask.java index 2da54b72..a098c8d4 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomFormalTreeTask.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomFormalTreeTask.java @@ -2,19 +2,23 @@ package com.nflg.product.bomnew.service.domain.PBom; import cn.hutool.core.collection.CollUtil; import cn.hutool.extra.spring.SpringUtil; +import com.nflg.product.bomnew.constant.OriginalConstant; import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentFormalEntity; +import com.nflg.product.bomnew.pojo.entity.BomNewPbomParentFormalEntity; import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentFormalVO; import com.nflg.product.bomnew.pojo.vo.BomNewPbomChildVO; import com.nflg.product.bomnew.pojo.vo.BomNewPbomParentFormalVO; import com.nflg.product.bomnew.service.BomNewEbomParentFormalService; import com.nflg.product.bomnew.service.BomNewPbomParentFormalService; import com.nflg.product.bomnew.util.ListCommonUtil; +import com.nflg.product.bomnew.util.MaterialshouldBomExistUtil; import lombok.Getter; import lombok.Setter; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.concurrent.RecursiveTask; import java.util.stream.Collectors; @@ -47,20 +51,22 @@ public class PBomFormalTreeTask extends RecursiveTask bomRowIds=bomDetail.stream().filter(u -> u.getBomRowId()>0 ).map(BomNewPbomParentFormalVO::getBomRowId).collect(Collectors.toList()); if (CollUtil.isNotEmpty(bomRowIds)) { + List bomlist = SpringUtil.getBean(BomNewPbomParentFormalService.class ).lambdaQuery().in(BomNewPbomParentFormalEntity::getRowId, bomRowIds).list(); + Map parentEntityMap = ListCommonUtil.listToMap(bomlist, BomNewPbomParentFormalEntity::getRowId); - List bomlist = SpringUtil.getBean(BomNewEbomParentFormalService.class ).lambdaQuery().in(BomNewEbomParentFormalEntity::getRowId, bomRowIds).list(); - Map parentEntityMap = ListCommonUtil.listToMap(bomlist, BomNewEbomParentFormalEntity::getRowId); for (BomNewPbomParentFormalVO detailVO : bomDetail) { if (parentEntityMap.containsKey(detailVO.getBomRowId())) { - BomNewEbomParentFormalEntity ebomParentEntity = parentEntityMap.get(detailVO.getBomRowId()); - detailVO.setCreatedTime(ebomParentEntity.getCreatedTime()); + BomNewPbomParentFormalEntity pbomParentEntity = parentEntityMap.get(detailVO.getBomRowId()); + // detailVO.setCreatedTime(ebomParentEntity.getCreatedTime()); // detailVO.setBomRowId(ebomParentEntity.getRowId()); - detailVO.setSourceRowId(ebomParentEntity.getSourceRowId()); - detailVO.setCurrentVersion(ebomParentEntity.getCurrentVersion()); - detailVO.setDeviseUserCode(ebomParentEntity.getDeviseUserCode()); - detailVO.setDeptName(ebomParentEntity.getDeptName()); - detailVO.setDeviseName(ebomParentEntity.getDeviseName()); - detailVO.setBomExist(ebomParentEntity.getBomExist()); + + detailVO.setCurrentVersion(pbomParentEntity.getCurrentVersion()); + detailVO.setDeviseUserCode(pbomParentEntity.getDeviseUserCode()); + detailVO.setDeviseName(pbomParentEntity.getDeviseName()); + detailVO.setDeptName(pbomParentEntity.getDeptName()); + + detailVO.setBomExist(pbomParentEntity.getBomExist()); + detailVO.setExpireEndTime(pbomParentEntity.getReleaseTime()); } } @@ -69,6 +75,26 @@ public class PBomFormalTreeTask extends RecursiveTask noBomList = bomDetail.stream().filter(u -> Objects.isNull(u.getBomRowId() )||u.getBomRowId() == 0).collect(Collectors.toList()); + if(CollUtil.isNotEmpty(noBomList)) { + for (BomNewPbomParentFormalVO detailVO : noBomList) { + + // detailVO.setCreatedTime(ebomParentEntity.getCreatedTime()); + detailVO.setDeviseUserCode(pbomParentEntity.getDeviseUserCode()); + detailVO.setDeptName(pbomParentEntity.getDeptName()); + detailVO.setDeviseName(pbomParentEntity.getDeviseName()); + detailVO.setDeviseUserCode(pbomParentEntity.getDeviseUserCode()); + detailVO.setExpireEndTime(pbomParentEntity.getReleaseTime()); + if (MaterialshouldBomExistUtil.checkShouldBomExist(detailVO)) { + detailVO.setCurrentVersion(OriginalConstant.NO_BOM_VERSION); + } else { + detailVO.setCurrentVersion(OriginalConstant.DEFAULT_BOM_VERSION); + } + } + } + } /** @@ -87,7 +113,7 @@ public class PBomFormalTreeTask extends RecursiveTask childBowIds = bomDetail.stream().filter(u-> u.getBomRowId()!=null && u.getBomRowId() > 0).map(u->u.getBomRowId()).collect(Collectors.toList()); if(CollUtil.isNotEmpty(childBowIds)) { - List bom = SpringUtil.getBean(BomNewPbomParentFormalService.class).getBaseMapper().getParentChildBatch(childBowIds); + List bom = SpringUtil.getBean(BomNewPbomParentFormalService.class).getParentChildBatch(childBowIds); PBomFormalTreeTask task = new PBomFormalTreeTask(bom); task.setLevelNum(levelNum); task.fork(); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomForwardReport.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomForwardReport.java index 98967b78..ce8998f5 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomForwardReport.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomForwardReport.java @@ -1,5 +1,6 @@ package com.nflg.product.bomnew.service.domain.PBom; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.lang.TypeReference; @@ -8,6 +9,7 @@ import cn.hutool.extra.spring.SpringUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.nflg.product.base.core.exception.NflgBusinessException; import com.nflg.product.bomnew.constant.EBomConstant; +import com.nflg.product.bomnew.constant.OriginalConstant; import com.nflg.product.bomnew.constant.ReportConstant; import com.nflg.product.bomnew.pojo.entity.BomNewEbomChildFormalEntity; import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentFormalEntity; @@ -18,6 +20,8 @@ import com.nflg.product.bomnew.pojo.vo.*; import com.nflg.product.bomnew.service.*; import com.nflg.product.bomnew.service.domain.BaseForwardReport; import com.nflg.product.bomnew.service.domain.EBom.EBomFormalTreeTask; +import com.nflg.product.bomnew.util.ListCommonUtil; +import com.nflg.product.bomnew.util.MaterialshouldBomExistUtil; import com.nflg.product.bomnew.util.VersionUtil; import nflg.product.common.constant.STATE; @@ -117,30 +121,56 @@ public class PBomForwardReport extends BaseForwardReport { listParent ) { - List list = SpringUtil.getBean(BomNewPbomParentFormalService.class).getBaseMapper().getParentChild(parentFormal.getRowId()); - initMaterialInfo(list); + List parentChildList = SpringUtil.getBean(BomNewPbomParentFormalService.class).getParentChild(parentFormal.getRowId()); + initMaterialInfo(parentChildList); - if (CollectionUtil.isNotEmpty(list)) { + if (CollectionUtil.isNotEmpty(parentChildList)) { + Map parentEntityMap=null; - List nodeList = Convert.convert(new TypeReference>() { - }, list); - nodesList.addAll(nodeList); - int noNum=1; - for (ForwardReportVO vo : - nodeList) { + List bomRowIds = parentChildList.stream().filter(u -> Objects.nonNull(u.getBomRowId()) && u.getBomRowId() > 0).map(BomNewPbomParentFormalVO::getBomRowId).collect(Collectors.toList()); + if(CollUtil.isNotEmpty(bomRowIds)) { + List bomlist = SpringUtil.getBean(BomNewPbomParentFormalService.class).lambdaQuery().in(BomNewPbomParentFormalEntity::getRowId, bomRowIds).list(); - vo.setExpireEndTime(parentFormal.getReleaseTime()); - vo.setDeviseName(forwardReportVO.getDeviseName()); - vo.setCurrentVersion(forwardReportVO.getCurrentVersion()); - vo.setLevelNum(1); - vo.setOrderNumber(noNum+""); - noNum++; + parentEntityMap = ListCommonUtil.listToMap(bomlist, BomNewPbomParentFormalEntity::getRowId); + } + + int noNum = 1; + for (BomNewPbomParentFormalVO vo : + parentChildList) { + if (Objects.nonNull(parentEntityMap) && parentEntityMap.containsKey(vo.getBomRowId())) { + + BomNewPbomParentFormalEntity ebomParentEntity = parentEntityMap.get(vo.getBomRowId()); + + vo.setExpireEndTime(ebomParentEntity.getReleaseTime()); + vo.setDeviseName(ebomParentEntity.getDeviseName()); + vo.setDeviseUserCode(ebomParentEntity.getDeviseUserCode()); + + vo.setCurrentVersion(ebomParentEntity.getCurrentVersion()); + vo.setLevelNum(1); + vo.setOrderNumber(noNum + ""); + noNum++; + + + } else { + vo.setLevelNum(1); + vo.setOrderNumber(noNum + ""); + vo.setDeviseName(parentFormal.getDeviseName()); + vo.setDeviseName(parentFormal.getDeviseUserCode()); + vo.setExpireEndTime(parentFormal.getReleaseTime()); + if (MaterialshouldBomExistUtil.checkShouldBomExist(vo)) { + vo.setCurrentVersion(OriginalConstant.NO_BOM_VERSION); + } else { + vo.setCurrentVersion(OriginalConstant.DEFAULT_BOM_VERSION); + } + noNum++; + } } } - - + List nodeList = Convert.convert(new TypeReference>() { + }, parentChildList); + nodesList.addAll(nodeList); } return buildReportBomVo(forwardReportVO,nodesList); } @@ -167,8 +197,6 @@ public class PBomForwardReport extends BaseForwardReport { queryWrapper.lambda().orderByAsc(BomNewPbomParentFormalEntity::getCurrentVersion); - - List list = SpringUtil.getBean(BomNewPbomParentFormalService.class).list(queryWrapper); if (CollectionUtil.isEmpty(list)) { throw new NflgBusinessException(STATE.BusinessError, StrUtil.format("未查到物料编码{}版本信息", query.getMaterialNo())); @@ -195,7 +223,7 @@ public class PBomForwardReport extends BaseForwardReport { * @return */ List bomDetailList(Long bomRowId) { - List childList = SpringUtil.getBean(BomNewPbomParentFormalService.class).getBaseMapper().getParentChild(bomRowId); + List childList = SpringUtil.getBean(BomNewPbomParentFormalService.class).getParentChild(bomRowId); PBomFormalTreeTask task = new PBomFormalTreeTask(childList); ForkJoinPool pool = new ForkJoinPool(); ForkJoinTask> submit = pool.submit(task); @@ -239,8 +267,8 @@ public class PBomForwardReport extends BaseForwardReport { nodeList) { - vo.setDeviseName(parentFormal.getDeviseName()); - vo.setCreatedTime(parentFormal.getCreatedTime()); + // vo.setDeviseName(parentFormal.getDeviseName()); + // vo.setCreatedTime(parentFormal.getCreatedTime()); vo.setExpireEndTime(parentFormal.getReleaseTime()); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentFormalMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentFormalMapper.xml index 5825e82f..a2d39c92 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentFormalMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentFormalMapper.xml @@ -71,10 +71,10 @@ #{rowId} - + + + + + + diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentFormalMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentFormalMapper.xml index a8e007f8..b01fff0c 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentFormalMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentFormalMapper.xml @@ -68,12 +68,12 @@ #{rowId} - + + + + + + From 0fb12afba031c0e731d9f9e24b0d7de94efb815a Mon Sep 17 00:00:00 2001 From: jing's Date: Thu, 20 Jun 2024 14:14:34 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E4=B8=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../product/bomnew/service/domain/EBom/EBomFormalTreeTask.java | 3 +++ .../product/bomnew/service/domain/PBom/PBomFormalTreeTask.java | 3 +++ 2 files changed, 6 insertions(+) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomFormalTreeTask.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomFormalTreeTask.java index 6e9c3bb1..104875d4 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomFormalTreeTask.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomFormalTreeTask.java @@ -3,6 +3,7 @@ package com.nflg.product.bomnew.service.domain.EBom; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.extra.spring.SpringUtil; +import com.nflg.product.bomnew.constant.EBomConstant; import com.nflg.product.bomnew.constant.OriginalConstant; import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentEntity; import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentFormalEntity; @@ -10,6 +11,7 @@ import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentFormalVO; import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO; import com.nflg.product.bomnew.service.BomNewEbomParentFormalService; import com.nflg.product.bomnew.service.BomNewEbomParentService; +import com.nflg.product.bomnew.service.MaterialMainService; import com.nflg.product.bomnew.util.ListCommonUtil; import com.nflg.product.bomnew.util.MaterialshouldBomExistUtil; import lombok.Getter; @@ -50,6 +52,7 @@ public class EBomFormalTreeTask extends RecursiveTask bomRowIds=bomDetail.stream().filter(u -> Objects.nonNull(u.getBomRowId()) && u.getBomRowId()>0 ).map(BomNewEbomParentFormalVO::getBomRowId).collect(Collectors.toList()); if (CollUtil.isNotEmpty(bomRowIds)) { diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomFormalTreeTask.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomFormalTreeTask.java index a098c8d4..7fbbef66 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomFormalTreeTask.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomFormalTreeTask.java @@ -2,6 +2,7 @@ package com.nflg.product.bomnew.service.domain.PBom; import cn.hutool.core.collection.CollUtil; import cn.hutool.extra.spring.SpringUtil; +import com.nflg.product.bomnew.constant.EBomConstant; import com.nflg.product.bomnew.constant.OriginalConstant; import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentFormalEntity; import com.nflg.product.bomnew.pojo.entity.BomNewPbomParentFormalEntity; @@ -10,6 +11,7 @@ import com.nflg.product.bomnew.pojo.vo.BomNewPbomChildVO; import com.nflg.product.bomnew.pojo.vo.BomNewPbomParentFormalVO; import com.nflg.product.bomnew.service.BomNewEbomParentFormalService; import com.nflg.product.bomnew.service.BomNewPbomParentFormalService; +import com.nflg.product.bomnew.service.MaterialMainService; import com.nflg.product.bomnew.util.ListCommonUtil; import com.nflg.product.bomnew.util.MaterialshouldBomExistUtil; import lombok.Getter; @@ -47,6 +49,7 @@ public class PBomFormalTreeTask extends RecursiveTask bomRowIds=bomDetail.stream().filter(u -> u.getBomRowId()>0 ).map(BomNewPbomParentFormalVO::getBomRowId).collect(Collectors.toList());