From 47aa23a108cac7e4def2c7c7f85d35dc5106b590 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Sat, 23 Dec 2023 19:01:29 +0800 Subject: [PATCH 1/7] =?UTF-8?q?1.=E8=BD=ACPBOM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nflg/product/bomnew/api/user/EbomApi.java | 30 ++++-- .../mapper/master/BomNewEbomParentMapper.java | 3 + .../pojo/vo/BomNewEbomUpgradeChangeVO.java | 96 +++++++++++++++++++ .../service/BomNewEbomParentService.java | 24 ++++- .../BomNewEbomUpgradeChangeService.java | 23 +++++ .../service/domain/EBom/EBomDetailTask.java | 2 +- .../service/domain/EBom/EBomToPBom.java | 68 +++++++------ .../domain/EBom/UpdateChangeVersion.java | 22 +++++ .../mapper/master/BomNewEbomParentMapper.xml | 21 ++++ 9 files changed, 245 insertions(+), 44 deletions(-) create mode 100644 nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewEbomUpgradeChangeVO.java create mode 100644 nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/UpdateChangeVersion.java diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomApi.java index ef7fdb3f..e30b3c33 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomApi.java @@ -14,10 +14,7 @@ import com.nflg.product.bomnew.pojo.query.BomNewEbomMaterialQuery; import com.nflg.product.bomnew.pojo.query.BomNewEbomParentQuery; import com.nflg.product.bomnew.pojo.query.OriginalBomQuery; import com.nflg.product.bomnew.pojo.vo.*; -import com.nflg.product.bomnew.service.BomNewEbomParentService; -import com.nflg.product.bomnew.service.BomNewOriginalParentService; -import com.nflg.product.bomnew.service.MaterialMainService; -import com.nflg.product.bomnew.service.UserRoleService; +import com.nflg.product.bomnew.service.*; import com.nflg.product.bomnew.service.domain.EBom.VirtualPackageBase; import com.nflg.product.bomnew.service.domain.EBom.VirtualPackageFor31; import com.nflg.product.bomnew.util.EecExcelUtil; @@ -66,6 +63,9 @@ public class EbomApi extends BaseApi { @Resource private UserRoleService userRoleService; + @Resource + private BomNewEbomUpgradeChangeService upgradeChangeService; + @PostMapping("workDetailsListByPage") @ApiOperation("Ebom-工作明细列表") @@ -81,10 +81,28 @@ public class EbomApi extends BaseApi { @PostMapping("changeImpact") @ApiOperation("Ebom-变更影响") - public ResultVO> changeImpact(@RequestBody BomNewEbomParentQuery query) { - return ResultVO.success(bomNewEbomParentService.formalWorksheet(query)); + public ResultVO> changeImpact(@RequestBody BomNewEbomParentQuery query) { + return ResultVO.success(bomNewEbomParentService.getUpgradeChangeList(query)); } + @PostMapping("delChangeImpact") + @ApiOperation("Ebom-删除变更影响") + public ResultVO delChangeImpact(@RequestBody List rowIds){ + VUtils.isTure(CollUtil.isEmpty(rowIds)).throwMessage("请选择要删除的数据"); + upgradeChangeService.delChangeImpact(rowIds); + return ResultVO.success(true); + } + + @PostMapping("updateChangeImpactVersion") + @ApiOperation("Ebom-更新版本") + public ResultVO updateChangeImpactVersion(@RequestBody List rowIds){ + VUtils.isTure(CollUtil.isEmpty(rowIds)).throwMessage("请选择要更新版本的数据"); + upgradeChangeService.updateChangeImpactVersion(rowIds); + return ResultVO.success(true); + } + + + @GetMapping("getChild") @ApiOperation("获取子级") public ResultVO> getChild(@RequestParam("bomRowId") Long bomRowId) { diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewEbomParentMapper.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewEbomParentMapper.java index d4ad3518..9c9b4b3b 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewEbomParentMapper.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewEbomParentMapper.java @@ -6,6 +6,7 @@ import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentEntity; import com.nflg.product.bomnew.pojo.query.BomNewEbomParentQuery; import com.nflg.product.bomnew.pojo.query.OriginalBomQuery; import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO; +import com.nflg.product.bomnew.pojo.vo.BomNewEbomUpgradeChangeVO; import com.nflg.product.bomnew.pojo.vo.BomOriginalListVO; import com.nflg.product.bomnew.pojo.vo.MaterialHistoryProjectTypeVO; import org.apache.ibatis.annotations.Param; @@ -38,6 +39,8 @@ public interface BomNewEbomParentMapper extends BaseMapper formalWorksheet(Page page, @Param("query") BomNewEbomParentQuery query); + + Page getUpgradeChangeList(Page page, @Param("query") BomNewEbomParentQuery query); /** * 获取子级 * @param rowId diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewEbomUpgradeChangeVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewEbomUpgradeChangeVO.java new file mode 100644 index 00000000..41457bc8 --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewEbomUpgradeChangeVO.java @@ -0,0 +1,96 @@ +package com.nflg.product.bomnew.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * t_bom_new_ebom_upgrade_change + * ebom-变更影响 + * + * @author makejava + * @since 2023-12-23 16:10:19 + */ +@Data +@Accessors(chain = true) +@ApiModel(value="com-nflg-product-bomnew-pojo-new-vo-BomNewEbomUpgradeChangeEntityVO") +public class BomNewEbomUpgradeChangeVO implements Serializable { + + /** + * 主键-行ID + */ + @ApiModelProperty(value = "主键-行ID") + private Long rowId; + + /** + * 受影响的物料编码 + */ + @ApiModelProperty(value = "受影响的物料编码") + private String materialNo; + + /** + * 修订版(旧) + */ + @ApiModelProperty(value = "修订版(旧)") + private String versionOld; + + /** + * 修订版(新) + */ + @ApiModelProperty(value = "修订版(新)") + private String versionNew; + + /** + * 名称 + */ + @ApiModelProperty(value = "名称") + private String materialName; + + /** + * 图号 + */ + @ApiModelProperty(value = "图号") + private String drawingNo; + + /** + * 设计人员 + */ + @ApiModelProperty(value = "设计人员") + private String deviseName; + + /** + * 设计人员部门 + */ + @ApiModelProperty(value = "设计人员部门") + private String deptName; + + /** + * 关联物料编码 + */ + @ApiModelProperty(value = "关联物料编码") + private String relMaterialNo; + + /** + * 关联物料描述 + */ + @ApiModelProperty(value = "关联物料描述") + private String relMaterialDesc; + + /** + * 状态:0-未升级处理 1-已升级处理 + */ + @ApiModelProperty(value = "状态:0-未升级处理 1-已升级处理") + private Integer status; + + /** + * 更新时间 + */ + @ApiModelProperty(value = "更新时间") + private LocalDateTime updatedTime; + + private static final long serialVersionUID = 1L; +} 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 534cfb60..1b823b51 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 @@ -200,6 +200,20 @@ public class BomNewEbomParentService extends ServiceImpl getUpgradeChangeList(BomNewEbomParentQuery query) { + Page result = this.getBaseMapper().getUpgradeChangeList(new Page<>(query.getPage(), query.getPageSize()), query); + + return result; + } + + + + /** * 获取子级 * @@ -247,6 +261,8 @@ public class BomNewEbomParentService extends ServiceImpl bomTree = getBomTree(bomRowId); - - EBomToPBom eBomToPBom = new EBomToPBom(parent, bomTree, paramDto.getFacCodes()); + parent.setBomRowId(parent.getRowId()); + parent.setChildBomRowId(parent.getRowId()); + parent.setParentRowId(0L); + bomTree.add(parent); + EBomToPBom eBomToPBom = new EBomToPBom(parent, bomTree, paramDto.getFacCodes(),0L); eBomToPBom.convert(); + if (CollUtil.isNotEmpty(eBomToPBom.getPBomParentResult())) { pBomParentService.saveOrUpdateBatch(eBomToPBom.getPBomParentResult()); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomUpgradeChangeService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomUpgradeChangeService.java index ecd4f4f2..3014d8a6 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomUpgradeChangeService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomUpgradeChangeService.java @@ -5,6 +5,8 @@ import com.nflg.product.bomnew.mapper.master.BomNewEbomUpgradeChangeMapper; import com.nflg.product.bomnew.pojo.entity.BomNewEbomUpgradeChangeEntity; import org.springframework.stereotype.Service; +import java.util.List; + /** * t_bom_new_ebom_upgrade_change 表服务实现类 @@ -16,4 +18,25 @@ import org.springframework.stereotype.Service; @Service public class BomNewEbomUpgradeChangeService extends ServiceImpl { + + /** + * 删除 + */ + public void delChangeImpact(List rowIds){ + this.getBaseMapper().deleteBatchIds(rowIds); + } + + /** + * 更新版本 + */ + public void updateChangeImpactVersion(List rowIds){ + List upList = this.getBaseMapper().selectBatchIds(rowIds); + // + + + } + + + + } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomDetailTask.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomDetailTask.java index 425e2968..333e0166 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomDetailTask.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomDetailTask.java @@ -60,7 +60,7 @@ public class EBomDetailTask extends RecursiveTask> { BomNewEbomParentEntity ebomParentEntity = stringBomNewOriginalParentEntityMap.get(detailVO.getMaterialNo()); detailVO.setChildBomRowId(ebomParentEntity.getRowId()); detailVO.setBomRowId(ebomParentEntity.getRowId()); - + detailVO.setCurrentVersion(ebomParentEntity.getCurrentVersion()); } } 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 6abf00ee..c5924ea6 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 @@ -24,6 +24,7 @@ import com.nflg.product.bomnew.util.ListCommonUtil; import com.nflg.product.bomnew.util.VUtils; import com.nflg.product.bomnew.util.VersionUtil; import lombok.Getter; +import org.bouncycastle.crypto.engines.EthereumIESEngine; import java.math.BigDecimal; import java.time.LocalDateTime; @@ -61,14 +62,14 @@ public class EBomToPBom { private Map generateDrawingNoMap = new HashMap<>(); - private Set upChangeMaterialSet=new HashSet<>(); + private Set upChangeMaterialSet = new HashSet<>(); - public EBomToPBom(BomNewEbomParentVO inParent, List inAllBomDetail, List inFacCodes) { + public EBomToPBom(BomNewEbomParentVO inParent, List inAllBomDetail, List inFacCodes, Long parentRowId) { this.parent = inParent; this.allBomDetail = inAllBomDetail; this.facCodes = inFacCodes; - generateDrawingNo(allBomDetail, inParent.getRowId(), ""); + generateDrawingNo(allBomDetail, parentRowId, ""); } @@ -83,6 +84,7 @@ public class EBomToPBom { List parentList = result.stream().filter(u -> u.getBomRowId() > 0).collect(Collectors.toList()); for (String facCode : facCodes) { + //buildPBomParent(parent, facCode); for (BomNewEbomParentVO vo : parentList) { BomNewPbomParentEntity parentEnt = buildPBomParent(vo, facCode); //子级 @@ -94,6 +96,7 @@ public class EBomToPBom { childEnt.setRowId(IdWorker.getId()); childEnt.setParentRowId(parentEnt.getRowId()); childEnt.setFacCode(facCode); + childEnt.setIdentityNo(StrUtil.join("-", parentEnt.getMaterialNo(), eb.getMaterialNo())); this.pBomChildResult.add(childEnt); } } @@ -128,7 +131,7 @@ public class EBomToPBom { return oldParent; } else { BomNewPbomParentEntity pBomParent = new BomNewPbomParentEntity(); - BeanUtil.copyProperties( parentVo,pBomParent); + BeanUtil.copyProperties(parentVo, pBomParent); pBomParent.setRowId(IdWorker.getId()); pBomParent.setLastVersionIs(1); pBomParent.setFacCode(facCode); @@ -155,8 +158,7 @@ public class EBomToPBom { vo.setSourceParentMaterialNo(getParentMaterialNo(vo.getBomRowId())); vo.setParentRowId(lastVirtualPackage.getBomRowId()); result.add(vo); - } - else { //当没找到直发包时,记录到变更影响 + } else { //当没找到直发包时,记录到变更影响 buildUpgradeChange(vo); } continue; @@ -169,8 +171,7 @@ public class EBomToPBom { vo.setSourceParentMaterialNo(getParentMaterialNo(vo.getBomRowId())); vo.setParentRowId(lastVirtualPackage.getBomRowId()); result.add(vo); - } - else { //当没找到直发包时,记录到变更影响 + } else { //当没找到直发包时,记录到变更影响 buildUpgradeChange(vo); } continue; @@ -180,35 +181,35 @@ public class EBomToPBom { } //变更记录 - private void buildUpgradeChange(BomNewEbomParentVO vo){ + private void buildUpgradeChange(BomNewEbomParentVO vo) { List voParent = allBomDetail.stream().filter(u -> u.getBomRowId().equals(vo.getParentRowId())).collect(Collectors.toList()); VUtils.isTure(CollUtil.isNotEmpty(voParent)).throwMessage(vo.getMaterialNo() + " 未找到父级"); List list = SpringUtil.getBean(BomNewEbomVirtualPackageCompositionService.class).lambdaQuery() .eq(BomNewEbomVirtualPackageCompositionEntity::getParentMaterialNo, voParent.get(0).getMaterialNo()).list(); - if(CollUtil.isNotEmpty(list)) { - if(upChangeMaterialSet.contains(voParent.get(0).getMaterialNo())){ + if (CollUtil.isNotEmpty(list)) { + if (upChangeMaterialSet.contains(voParent.get(0).getMaterialNo())) { return; } Map> vMaterialMap = ListCommonUtil.listGroupMap(list, BomNewEbomVirtualPackageCompositionEntity::getParentFullPathMaterialNo); - Set oldMaterialNoAndNumSet=new HashSet<>(); - for (String key: vMaterialMap.keySet()) { - oldMaterialNoAndNumSet=vMaterialMap.get(key).stream().map(u->StrUtil.join("-", u.getChildMaterialNo(),u.getNum())).collect(Collectors.toSet()); + Set oldMaterialNoAndNumSet = new HashSet<>(); + for (String key : vMaterialMap.keySet()) { + oldMaterialNoAndNumSet = vMaterialMap.get(key).stream().map(u -> StrUtil.join("-", u.getChildMaterialNo(), u.getNum())).collect(Collectors.toSet()); } Set newSet = allBomDetail.stream().filter(u -> u.getParentRowId().equals(vo.getParentRowId()) && Objects.nonNull(u.getProjectType()) && vo.getProjectType().equals(u.getProjectType())).map(u -> StrUtil.join("-", u.getMaterialNo(), u.getNum())).collect(Collectors.toSet()); //bom 发生了改变-影响了虚拟包 - if( CollUtil.isNotEmpty(Sets.difference(oldMaterialNoAndNumSet,newSet)) || CollUtil.isNotEmpty(Sets.difference(newSet,oldMaterialNoAndNumSet)) ){ + if (CollUtil.isNotEmpty(Sets.difference(oldMaterialNoAndNumSet, newSet)) || CollUtil.isNotEmpty(Sets.difference(newSet, oldMaterialNoAndNumSet))) { upChangeMaterialSet.add(parent.getMaterialNo()); - buildUpgradeChange(list, voParent.get(0)); + buildUpgradeChange(list, voParent.get(0)); } } } - private void buildUpgradeChange(List changeList,BomNewEbomParentVO parent){ - List vmaterialNoList= changeList.stream().map(u -> u.getVirtualPackageMaterialNo()).distinct().collect(Collectors.toList()); - for (String vmaterialNo: vmaterialNoList) { - BomNewEbomUpgradeChangeEntity changeEntity=new BomNewEbomUpgradeChangeEntity(); + private void buildUpgradeChange(List changeList, BomNewEbomParentVO parent) { + List vmaterialNoList = changeList.stream().map(u -> u.getVirtualPackageMaterialNo()).distinct().collect(Collectors.toList()); + for (String vmaterialNo : vmaterialNoList) { + BomNewEbomUpgradeChangeEntity changeEntity = new BomNewEbomUpgradeChangeEntity(); changeEntity.setRowId(IdWorker.getId()); changeEntity.setMaterialNo(vmaterialNo); changeEntity.setVersionOld(parent.getCurrentVersion()); @@ -224,7 +225,6 @@ public class EBomToPBom { } - /** * 提层汇总数量 * @@ -234,16 +234,16 @@ public class EBomToPBom { private void liftingLayerSummary(BomNewEbomParentVO lastVirtualPackage, BomNewEbomParentVO vo) { BigDecimal sum = vo.getNum(); String parentLevelNo = vo.getLevelNo().substring(0, vo.getLevelNo().length() - 2); - List parentFullPathMaterialNoList=new ArrayList<>(); + List parentFullPathMaterialNoList = new ArrayList<>(); while (parentLevelNo.length() >= lastVirtualPackage.getLevelNo().length()) { - String pNo=parentLevelNo; + String pNo = parentLevelNo; List parentList = allBomDetail.stream().filter(u -> u.getLevelNo().equals(pNo) && !u.getMaterialName().contains(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getConMaterialName()) && !u.getMaterialName().contains(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getConMaterialName()) && !u.getMaterialName().contains(VirtualPackageTypeEnum.MAKING_PACKAGE.getConMaterialName())) .collect(Collectors.toList()); if (CollUtil.isNotEmpty(parentList)) { sum = NumberUtil.mul(sum, parentList.get(0).getNum()); parentFullPathMaterialNoList.add(parentList.get(0).getMaterialNo()); - }else { + } else { parentFullPathMaterialNoList.add(vo.getMaterialNo()); } parentLevelNo = parentLevelNo.substring(0, parentLevelNo.length() - 2); @@ -251,32 +251,30 @@ public class EBomToPBom { } vo.setNum(sum); //构建虚拟包组成 - buildVirtualPackageComposition(lastVirtualPackage, vo,parentFullPathMaterialNoList); + buildVirtualPackageComposition(lastVirtualPackage, vo, parentFullPathMaterialNoList); } - private void buildVirtualPackageComposition(BomNewEbomParentVO lastVirtualPackage,BomNewEbomParentVO vo, List parentFullPathMaterialNoList){ + private void buildVirtualPackageComposition(BomNewEbomParentVO lastVirtualPackage, BomNewEbomParentVO vo, List parentFullPathMaterialNoList) { Collections.reverse(parentFullPathMaterialNoList); - String fullPath= StrUtil.join("-", parentFullPathMaterialNoList); + String fullPath = StrUtil.join("-", parentFullPathMaterialNoList); List list = SpringUtil.getBean(BomNewEbomVirtualPackageCompositionService.class).lambdaQuery() .eq(BomNewEbomVirtualPackageCompositionEntity::getParentFullPathMaterialNo, fullPath) .eq(BomNewEbomVirtualPackageCompositionEntity::getVirtualPackageMaterialNo, lastVirtualPackage.getMaterialNo()).list(); //删除旧的 - if(CollUtil.isNotEmpty(list)){ + if (CollUtil.isNotEmpty(list)) { List delRowIds = list.stream().map(u -> u.getRowId()).collect(Collectors.toList()); SpringUtil.getBean(BomNewEbomVirtualPackageCompositionService.class).getBaseMapper().deleteBatchIds(delRowIds); } - BomNewEbomVirtualPackageCompositionEntity packageCompositionEntity=new BomNewEbomVirtualPackageCompositionEntity(); + BomNewEbomVirtualPackageCompositionEntity packageCompositionEntity = new BomNewEbomVirtualPackageCompositionEntity(); packageCompositionEntity.setRowId(IdWorker.getId()); packageCompositionEntity.setVirtualPackageMaterialNo(lastVirtualPackage.getMaterialNo()); - List voParent = allBomDetail.stream().filter(u -> u.getBomRowId().equals(vo.getParentRowId()) ).collect(Collectors.toList()); + List voParent = allBomDetail.stream().filter(u -> u.getBomRowId().equals(vo.getParentRowId())).collect(Collectors.toList()); VUtils.isTure(CollUtil.isEmpty(voParent)).throwMessage(vo.getMaterialNo() + " 未找到父级"); - if(voParent.get(0).getMaterialName().contains(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getConMaterialName()) && - !voParent.get(0).getMaterialName().contains(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getConMaterialName()) && !voParent.get(0).getMaterialName().contains(VirtualPackageTypeEnum.MAKING_PACKAGE.getConMaterialName())) - { + if (voParent.get(0).getMaterialName().contains(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getConMaterialName()) && + !voParent.get(0).getMaterialName().contains(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getConMaterialName()) && !voParent.get(0).getMaterialName().contains(VirtualPackageTypeEnum.MAKING_PACKAGE.getConMaterialName())) { packageCompositionEntity.setParentMaterialNo(voParent.get(0).getMaterialNo()); - } - else{ + } else { packageCompositionEntity.setParentMaterialNo(vo.getMaterialNo()); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/UpdateChangeVersion.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/UpdateChangeVersion.java new file mode 100644 index 00000000..fc39accf --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/UpdateChangeVersion.java @@ -0,0 +1,22 @@ +package com.nflg.product.bomnew.service.domain.EBom; + +import io.swagger.annotations.ApiModelProperty; + +/** + * 更新-变更影响版本 + */ +public class UpdateChangeVersion { + + @ApiModelProperty("变更行ID") + private Long upChangeRowId; + + + public UpdateChangeVersion (Long inUpChangeRowId){ + this.upChangeRowId=inUpChangeRowId; + } + + + + + +} 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 38128e44..76e6b4ec 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 @@ -123,6 +123,27 @@ + + + and drawing_no=#{query.drawingNo} + + + and material_no=#{query.materialNo} + + + and devise_name=#{query.deviseName} + + + and updated_time between #{query.startDate} and #{query.endDate} + + + + + + - select * ,row_id as bomRowId from t_bom_new_ebom_parent where status=1 and created_by=#{createdBy} and user_root_is=1 and + select * ,row_id as bomRowId from t_bom_new_ebom_parent where created_by=#{createdBy} and user_root_is=1 and (status=1 or status=3) - select * ,row_id as bomRowId from t_bom_new_ebom_parent where status=2 and 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 and ( status=2 or status=4 ) From eb19755b4124a627978c32d8cd879e3d8620faa3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Sun, 24 Dec 2023 11:57:51 +0800 Subject: [PATCH 5/7] =?UTF-8?q?1.=E8=BD=ACEBOM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bomnew/api/user/OriginalBomApi.java | 44 +++++------ .../master/BomNewOriginalParentMapper.java | 5 +- .../service/BomNewOriginalParentService.java | 74 ++++++++++--------- .../master/BomNewOriginalParentMapper.xml | 16 ++-- 4 files changed, 71 insertions(+), 68 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OriginalBomApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OriginalBomApi.java index 3e929fb1..7a53fc12 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OriginalBomApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OriginalBomApi.java @@ -47,7 +47,7 @@ import java.util.concurrent.ExecutionException; @Api(tags = "原始BOM") @RestController @RequestMapping("bom/new/bomOriginal") -public class OriginalBomApi extends BaseApi { +public class OriginalBomApi extends BaseApi { @Resource BomNewOriginalParentService originalParentService; @@ -78,15 +78,16 @@ public class OriginalBomApi extends BaseApi { public ResultVO>> getChildTree(@RequestParam("rowId") Long rowId) throws ExecutionException, InterruptedException { return ResultVO.success(originalParentService.getChildTree(rowId)); } + @PostMapping("saveBom") @ApiOperation("编辑时-暂存") public ResultVO saveBom(@Valid @RequestBody OriginalSaveBomDTO bom) { - return ResultVO.success(originalParentService.saveBom(bom,false)); + return ResultVO.success(originalParentService.saveBom(bom, false)); } @PostMapping("saveSubmit") @ApiOperation("编辑时-提交") - public ResultVO saveSubmit(@Valid @RequestBody OriginalSaveBomDTO bom) { + public ResultVO saveSubmit(@Valid @RequestBody OriginalSaveBomDTO bom) { return ResultVO.success(originalParentService.saveSubmit(bom)); } @@ -120,6 +121,7 @@ public class OriginalBomApi extends BaseApi { /** * 原始BOM转EBom + * * @return */ @PostMapping("convertToEBom") @@ -128,7 +130,7 @@ public class OriginalBomApi extends BaseApi { public ResultVO convertToEBom(@RequestBody List bomRowIds) throws ExecutionException, InterruptedException { VUtils.isTure(CollUtil.isEmpty(bomRowIds)).throwMessage("请选择要转换的BOM"); - VUtils.isTure(bomRowIds.size()>20).throwMessage("你选择的BOM数据大于20"); + VUtils.isTure(bomRowIds.size() > 20).throwMessage("你选择的BOM数据大于20"); originalParentService.convertToEBom(bomRowIds); //更新物料使用 bomNewEbomChildMapper.updateEBomMaterialUse(); @@ -152,7 +154,7 @@ public class OriginalBomApi extends BaseApi { @ApiOperation("导入") @PostMapping("importBom") @Transactional(rollbackFor = Exception.class) - public ResultVO importBom(@RequestParam(value = "file")MultipartFile file) throws IOException { + public ResultVO importBom(@RequestParam(value = "file") MultipartFile file) throws IOException { if (file != null && !file.getOriginalFilename().endsWith("xls") && !file.getOriginalFilename().endsWith("xlsx")) { return ResultVO.error("请上传Excel文件"); } @@ -160,12 +162,7 @@ public class OriginalBomApi extends BaseApi { //计算层级 originalParentService.computeLevelNumAndRootState(); -// TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() { -// @Override -// public void afterCommit() { -// originalParentService.computeLevelNumAndRootState(); -// } -// }); + return ResultVO.success(true); } @@ -174,18 +171,18 @@ public class OriginalBomApi extends BaseApi { @ApiOperation("新增物料") @GetMapping("testaddMaterial") @Transactional(rollbackFor = Exception.class) - public ResultVO testaddMaterial(@RequestParam(value = "drawingNo" ,required = false)String drawingNo, - @RequestParam(value = "materialName" ,required = false)String materialName, - @RequestParam("materialCategoryCode")String materialCategoryCode) throws IOException { + public ResultVO testaddMaterial(@RequestParam(value = "drawingNo", required = false) String drawingNo, + @RequestParam(value = "materialName", required = false) String materialName, + @RequestParam("materialCategoryCode") String materialCategoryCode) throws IOException { - materialService.addMaterial(drawingNo, materialName,materialCategoryCode); + materialService.addMaterial(drawingNo, materialName, materialCategoryCode); return ResultVO.success("true"); } @ApiOperation("获取sessionKey") @GetMapping("getSessionKey") - public ResultVO getSessionKey() { + public ResultVO getSessionKey() { return ResultVO.success(SessionUtil.getSessionKey()); @@ -196,19 +193,16 @@ public class OriginalBomApi extends BaseApi { @PostMapping("testImportBom") @Transactional(rollbackFor = Exception.class) public ResultVO testImportBom() throws IOException { - InputStream inputStream=new FileInputStream("C:\\Users\\01956\\Desktop\\西卡印尼烘干线总站BOM.xlsx"); + InputStream inputStream = new FileInputStream("C:\\Users\\01956\\Desktop\\西卡印尼烘干线总站BOM.xlsx"); originalParentService.importBomTest(inputStream); - TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() { - @Override - public void afterCommit() { - originalParentService.computeLevelNumAndRootState(); - } - }); + + // originalParentService.computeLevelNumAndRootState(); + + originalParentService.computeLevelNumAndRootState(); + return ResultVO.success(true); } - - } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewOriginalParentMapper.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewOriginalParentMapper.java index 73d0b69c..8d0f215b 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewOriginalParentMapper.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewOriginalParentMapper.java @@ -33,5 +33,8 @@ public interface BomNewOriginalParentMapper extends BaseMapper saveEnts = bom.getBomList().stream().filter(u -> u.getDelIs().equals(0)).collect(Collectors.toList()); List childEntities = Convert.toList(BomNewOriginalChildEntity.class, saveEnts); // originalChildService.getBaseMapper().deleteByMap(ImmutableMap.of("parent_row_id",bom.getParentRowId())); childEntities.forEach(u -> { u.setParentRowId(bom.getParentRowId()); - if(submitIs){ + if (submitIs) { u.setEditStatus(OriginalEditStatusEnum.HANDLER_FINISHED.getValue()); } }); if (CollUtil.isNotEmpty(childEntities)) { //删除行 - List delRowIds = bom.getBomList().stream().filter(u->u.getRowId()>0).map(u-> u.getRowId()).collect(Collectors.toList()); - originalChildService.getBaseMapper().delOriginalChildNotInRowIds(delRowIds,bom.getParentRowId()); + List delRowIds = bom.getBomList().stream().filter(u -> u.getRowId() > 0).map(u -> u.getRowId()).collect(Collectors.toList()); + originalChildService.getBaseMapper().delOriginalChildNotInRowIds(delRowIds, bom.getParentRowId()); originalChildService.saveOrUpdateBatch(childEntities); } return true; @@ -128,7 +129,7 @@ public class BomNewOriginalParentService extends ServiceImpl bomDetail = this.getBaseMapper().getParentChild(bom.getRowId()); OriginalBomDetailTask detailTask = new OriginalBomDetailTask(bomDetail); detailTask.setLevelNum(1); @@ -284,16 +285,18 @@ public class BomNewOriginalParentService extends ServiceImpl { - try { - this.getBaseMapper().updateRootState(); - this.compucteLevelNum(); - } catch (Exception e) { - log.info("计算层级出错:"+e.getMessage()); - } -// }); + try { + this.getBaseMapper().updateRootState_1(); + this.getBaseMapper().updateRootState_2(); + this.getBaseMapper().updateRootState_3(); + this.compucteLevelNum(); + + + } catch (Exception e) { + + log.info("计算层级出错:" + e.getMessage()); + } } @@ -310,8 +313,8 @@ public class BomNewOriginalParentService extends ServiceImpl bomTree = getBomTree(bomRowId); //需删除的BOM List delBom = bomTree.stream().filter(u -> u.getBomRowId() > 0 && OriginalStatusEnum.UN_CONVERT.equalsValue(u.getStatus())).collect(Collectors.toList()); - List delParentRowId=new ArrayList<>(); - for ( BomOriginalListVO bom: delBom) { + List delParentRowId = new ArrayList<>(); + for (BomOriginalListVO bom : delBom) { delParentRowId.add(bom.getBomRowId()); } delParentRowId.add(bomRowId); @@ -333,7 +336,7 @@ public class BomNewOriginalParentService extends ServiceImpl bomNewOriginalParentEntities = this.getBaseMapper().selectBatchIds(bomRowIds); List convertedBom = bomNewOriginalParentEntities.stream().filter(u -> OriginalStatusEnum.OVER_CONVERT.equalsValue(u.getStatus())).collect(Collectors.toList()); - // VUtils.isTure(CollUtil.isNotEmpty(convertedBom)).throwMessage("所选BOM中存在已转换的BOM"); + // VUtils.isTure(CollUtil.isNotEmpty(convertedBom)).throwMessage("所选BOM中存在已转换的BOM"); //开始转换 for (BomNewOriginalParentEntity parent : bomNewOriginalParentEntities) { @@ -385,17 +388,16 @@ public class BomNewOriginalParentService extends ServiceImpl()); String uuid = IdUtil.simpleUUID(); EecExcelUtil.handlerExcel(file.getInputStream(), BomNewOriginalExcelDTO.class, BomNewOriginalParentService::handlerExcelRow); List excelContext = excelContextTL.get(); - List noLevelNo = excelContext.stream().filter(u -> Objects.isNull(u.getLevelNo())).map(u->u.getRowNum()).collect(Collectors.toList()); - VUtils.isTure(CollUtil.isNotEmpty(noLevelNo)).throwMessage(StrUtil.join(",",noLevelNo )+"层次为空"); - List noDrawingNo = excelContext.stream().filter(u -> StrUtil.isBlank(u.getChartNo())).map(u->u.getRowNum()).collect(Collectors.toList()); - VUtils.isTure(CollUtil.isNotEmpty(noDrawingNo)).throwMessage(StrUtil.join(",",noDrawingNo )+"图号为空"); + List noLevelNo = excelContext.stream().filter(u -> Objects.isNull(u.getLevelNo())).map(u -> u.getRowNum()).collect(Collectors.toList()); + VUtils.isTure(CollUtil.isNotEmpty(noLevelNo)).throwMessage(StrUtil.join(",", noLevelNo) + "层次为空"); + List noDrawingNo = excelContext.stream().filter(u -> StrUtil.isBlank(u.getChartNo())).map(u -> u.getRowNum()).collect(Collectors.toList()); + VUtils.isTure(CollUtil.isNotEmpty(noDrawingNo)).throwMessage(StrUtil.join(",", noDrawingNo) + "图号为空"); // List noNum = excelContext.stream().filter(u -> Objects.isNull(u.getQty())).map(u->u.getRowNum()).collect(Collectors.toList()); // VUtils.isTure(CollUtil.isNotEmpty(noNum)).throwMessage( StrUtil.join(",",noNum )+"数量为空"); @@ -410,7 +412,7 @@ public class BomNewOriginalParentService extends ServiceImpl chileds = excelContext.stream().filter(u -> u.getParentKey().equals(data.getLevelNo() + "-" + data.getRowNum())).collect(Collectors.toList()); if (CollUtil.isNotEmpty(chileds)) { - int i=1; + int i = 1; for (BomNewOriginalExcelDTO ch : chileds) { ch.setOrderNo(i); i++; @@ -430,8 +432,8 @@ public class BomNewOriginalParentService extends ServiceImpl excelContext = excelContextTL.get(); - List noLevelNo = excelContext.stream().filter(u -> Objects.isNull(u.getLevelNo())).map(u->u.getRowNum()).collect(Collectors.toList()); - VUtils.isTure(CollUtil.isNotEmpty(noLevelNo)).throwMessage(StrUtil.join(",",noLevelNo )+"层次为空"); - List noDrawingNo = excelContext.stream().filter(u -> StrUtil.isBlank(u.getChartNo())).map(u->u.getRowNum()).collect(Collectors.toList()); - VUtils.isTure(CollUtil.isNotEmpty(noDrawingNo)).throwMessage(StrUtil.join(",",noDrawingNo )+"图号为空"); - List noNum = excelContext.stream().filter(u -> Objects.isNull(u.getQty())).map(u->u.getRowNum()).collect(Collectors.toList()); - VUtils.isTure(CollUtil.isNotEmpty(noNum)).throwMessage( StrUtil.join(",",noNum )+"数量为空"); + List noLevelNo = excelContext.stream().filter(u -> Objects.isNull(u.getLevelNo())).map(u -> u.getRowNum()).collect(Collectors.toList()); + VUtils.isTure(CollUtil.isNotEmpty(noLevelNo)).throwMessage(StrUtil.join(",", noLevelNo) + "层次为空"); + List noDrawingNo = excelContext.stream().filter(u -> StrUtil.isBlank(u.getChartNo())).map(u -> u.getRowNum()).collect(Collectors.toList()); + VUtils.isTure(CollUtil.isNotEmpty(noDrawingNo)).throwMessage(StrUtil.join(",", noDrawingNo) + "图号为空"); + List noNum = excelContext.stream().filter(u -> Objects.isNull(u.getQty())).map(u -> u.getRowNum()).collect(Collectors.toList()); + VUtils.isTure(CollUtil.isNotEmpty(noNum)).throwMessage(StrUtil.join(",", noNum) + "数量为空"); for (BomNewOriginalExcelDTO data : excelContext) { List parentData = excelContext.stream().filter(u -> u.getLevelNo().equals(data.getLevelNo() - 1) && u.getRowNum() < data.getRowNum()) @@ -464,7 +466,7 @@ public class BomNewOriginalParentService extends ServiceImpl chileds = excelContext.stream().filter(u -> u.getParentKey().equals(data.getLevelNo() + "-" + data.getRowNum())).collect(Collectors.toList()); if (CollUtil.isNotEmpty(chileds)) { - int i=1; + int i = 1; for (BomNewOriginalExcelDTO ch : chileds) { ch.setOrderNo(i); i++; diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewOriginalParentMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewOriginalParentMapper.xml index 15f0d36b..30934a7f 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewOriginalParentMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewOriginalParentMapper.xml @@ -124,23 +124,27 @@ ; - + - update t_bom_new_original_parent set root_is=0,user_root_is=0 where last_version_is=1; + update t_bom_new_original_parent set root_is=0,user_root_is=0 where last_version_is=1 + + + update t_bom_new_original_parent a join ( select a.row_id from t_bom_new_original_parent a left join t_bom_new_original_child b on a.drawing_no=b.drawing_no - where a.last_version_is=1 and b.row_id is null ) t on a.row_id=t.row_id set a.root_is=1; - + where a.last_version_is=1 and b.row_id is null ) t on a.row_id=t.row_id set a.root_is=1 + + update t_bom_new_original_parent a join ( select a.row_id from t_bom_new_original_parent a left join t_bom_new_original_child b on a.drawing_no=b.drawing_no and a.created_by=b.created_by - where a.last_version_is=1 and b.row_id is null ) t on a.row_id=t.row_id set a.user_root_is=1; - + where a.last_version_is=1 and b.row_id is null ) t on a.row_id=t.row_id set a.user_root_is=1 + From 4d706bf7bbee0f4b9b7a8729b8ba1cb737222dfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Sun, 24 Dec 2023 12:06:24 +0800 Subject: [PATCH 6/7] =?UTF-8?q?1.=E5=88=9D=E5=A7=8B=E5=8C=96=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E7=B1=BB=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../product/bomnew/service/domain/EBom/EbomInitProjectType.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EbomInitProjectType.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EbomInitProjectType.java index 1413b2fc..580efded 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EbomInitProjectType.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EbomInitProjectType.java @@ -133,7 +133,7 @@ public class EbomInitProjectType { sameLevelChild = getChilds(child.getParentRowId()); sResult = sameLevelChild.stream().filter(u -> u.getMaterialCategoryCode().startsWith("2005") || u.getMaterialCategoryCode().startsWith("2006")).collect(Collectors.toList()); if (CollUtil.isNotEmpty(sResult)) { - List projectType = sResult.stream().map(u -> u.getProjectType()).distinct().collect(Collectors.toList()); + List projectType = sResult.stream().filter(u->StrUtil.isNotBlank(u.getProjectType())).map(u -> u.getProjectType()).distinct().collect(Collectors.toList()); if (projectType.size() == 1 && projectType.get(0).equals("Q")) { child.setProjectType("Q"); } From a482f51029008cb1d7d802f6816a882c245940a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Sun, 24 Dec 2023 12:20:37 +0800 Subject: [PATCH 7/7] =?UTF-8?q?1.=E5=88=9D=E5=A7=8B=E5=8C=96=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E7=B1=BB=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/master/BomNewEbomParentMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 5c25c696..68999133 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 @@ -119,7 +119,7 @@