From 9a366156e53c6399a8cac5bdbdfd101c7b749c2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Fri, 12 Apr 2024 16:17:14 +0800 Subject: [PATCH 1/7] =?UTF-8?q?1=E3=80=81=E6=90=9C=E7=B4=A2=E6=9C=80?= =?UTF-8?q?=E5=AD=90=E7=BA=A7=EF=BC=8C=E6=97=A0=E5=85=B3=E7=9A=84=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E4=B9=9F=E5=87=BA=E6=9D=A5=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/master/BomNewEbomParentMapper.java | 3 ++ .../service/BomNewEbomParentService.java | 31 +++++++++++++++++-- .../mapper/master/BomNewEbomParentMapper.xml | 12 +++++++ 3 files changed, 44 insertions(+), 2 deletions(-) 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 c73fcf39..56469841 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 @@ -8,6 +8,7 @@ import com.nflg.product.bomnew.pojo.query.OriginalBomQuery; import com.nflg.product.bomnew.pojo.vo.*; import org.apache.ibatis.annotations.Param; +import java.util.Collection; import java.util.List; import java.util.Set; @@ -69,4 +70,6 @@ public interface BomNewEbomParentMapper extends BaseMapper getMaterialParent(@Param("materialNos") Collection materialNos ,@Param("createdBy") String createdBy); } 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 197173f1..1b881d53 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 @@ -124,8 +124,10 @@ public class BomNewEbomParentService extends ServiceImpl materialNos = new ArrayList<>(); - List parentMaterialByMaterialNo = getParentMaterialByMaterialNo(materialNo, !userRoleService.technician()).stream().collect(Collectors.toList()); - materialNos.add(materialNo); +// List parentMaterialByMaterialNo = getParentMaterialByMaterialNo(materialNo, !userRoleService.technician()).stream().collect(Collectors.toList()); + //获取父级物料 + List parentMaterialByMaterialNo=getParentMaterial(ImmutableList.of(materialNo) ,!userRoleService.technician()).stream().collect(Collectors.toList()); +// materialNos.add(materialNo); materialNos.addAll(parentMaterialByMaterialNo); if (CollUtil.isNotEmpty(materialNos)) { List parents = this.getBaseMapper().getParentForMaterialNoSeach(materialNos, query.getDataType()); @@ -221,6 +223,31 @@ public class BomNewEbomParentService extends ServiceImpl getParentMaterial(List materialNoList, Boolean bomType) { + Set result = new HashSet<>(); + result.addAll(materialNoList); + + Set useMaterialSku = this.getBaseMapper().getMaterialParent(materialNoList,bomType?SessionUtil.getUserCode():null); + + while (CollUtil.isNotEmpty(useMaterialSku)) { + //防止数据错误(循环依赖)-死循环 + Set difference = Sets.difference(useMaterialSku, result); + if (CollUtil.isNotEmpty(difference)) { + useMaterialSku = this.getBaseMapper().getMaterialParent(difference,bomType?SessionUtil.getUserCode():null); + result.addAll(difference); + } else { + break; + } + } + return new ArrayList<>(result); + } + /** * 批量获取物料所有父节点 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 710b7b6c..e59a1db5 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 @@ -282,4 +282,16 @@ + + From a0947bb48c8619215a9ea3105b7265490d8d165a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Fri, 12 Apr 2024 18:45:15 +0800 Subject: [PATCH 2/7] =?UTF-8?q?1=E3=80=81Ebom=20=E6=AD=A3=E5=BC=8F?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E8=A1=A8=E5=8F=AA=E6=9F=A5=E6=9C=80=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nflg/product/bomnew/service/BomNewEbomParentService.java | 3 +++ .../main/resources/mapper/master/BomNewEbomParentMapper.xml | 2 +- 2 files changed, 4 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 1b881d53..ca4371da 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 @@ -294,6 +294,7 @@ public class BomNewEbomParentService extends ServiceImpl formalWorksheet(BomNewEbomParentQuery query) { Page result = this.getBaseMapper().formalWorksheet(new Page<>(query.getPage(), query.getPageSize()), query); + if (CollUtil.isNotEmpty(result.getRecords())) { materialMainService.intiMaterialInfo(result.getRecords()); } @@ -771,6 +772,8 @@ public class BomNewEbomParentService extends ServiceImpl0).throwMessage("已生成过虚拟包,不能2次生成"); VUtils.isTure(!Objects.equals(root.getExceptionStatus(), EBomExceptionStatusEnum.OK.getValue())) .throwMessage("异常状态下不允许生成虚拟包"); LogRecordContext.putVariable("gvbom", root); 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 e59a1db5..3358edbd 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 @@ -136,7 +136,7 @@ From 01d8429df9d66f39eaf72d9dea761f8aeac31c6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Sat, 13 Apr 2024 09:05:04 +0800 Subject: [PATCH 3/7] =?UTF-8?q?1=E3=80=81BUG-88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/resources/mapper/master/BomNewEbomParentMapper.xml | 6 +++++- 1 file changed, 5 insertions(+), 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 3358edbd..1ec51a8d 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 @@ -136,7 +136,11 @@ From dc097a96cbf283cc7bc585842db9155849816f07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Sat, 13 Apr 2024 09:31:06 +0800 Subject: [PATCH 4/7] =?UTF-8?q?1=E3=80=81BUG-89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nflg/product/bomnew/service/domain/EBom/EBomToPBom.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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 ce1b8ee9..af7c633b 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 @@ -170,10 +170,12 @@ public class EBomToPBom { pBomParent.setFacCode(facCode); pBomParent.setTechnologyUserCode(SessionUtil.getUserCode()); pBomParent.setTechnologyUserName(SessionUtil.getRealName()); - pBomParent.setCurrentVersion(VersionUtil.getNextVersion("")); + //pBomParent.setCurrentVersion(VersionUtil.getNextVersion("")); + //版本=EBom版本 + pBomParent.setCurrentVersion(parentVo.getCurrentVersion()); pBomParent.setEditStatus(PBomEditStatusEnum.HANDLER_CREATED.getValue()); if(Objects.nonNull(oldParent)){ - pBomParent.setCurrentVersion(VersionUtil.getNextVersion(oldParent.getCurrentVersion())); + // pBomParent.setCurrentVersion(VersionUtil.getNextVersion(oldParent.getCurrentVersion())); oldParent.setExpireEndTime(LocalDateTime.now()); oldParent.setLastVersionIs(0); } From a5e5dd182786a2a5fd95b1b8277021cefebb39ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Sat, 13 Apr 2024 15:34:52 +0800 Subject: [PATCH 5/7] =?UTF-8?q?1=E3=80=81BUG=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../master/BomNewOriginalParentMapper.java | 11 +- .../service/BomNewEbomParentService.java | 245 ++++++++---------- .../service/BomNewOriginalParentService.java | 37 ++- .../domain/EBom/VirtualPackageFor21.java | 4 +- .../mapper/master/BomNewEbomParentMapper.xml | 3 +- .../master/BomNewOriginalParentMapper.xml | 68 +++-- .../product/common/dto/LoginUserInfoDTO.java | 2 + 7 files changed, 204 insertions(+), 166 deletions(-) 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 c9bd1591..29526f23 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 @@ -7,7 +7,9 @@ import com.nflg.product.bomnew.pojo.query.OriginalBomQuery; import com.nflg.product.bomnew.pojo.vo.BomOriginalListVO; import org.apache.ibatis.annotations.Param; +import java.util.Collection; import java.util.List; +import java.util.Set; /** * t_bom_new_original_parent 表数据库访问层 @@ -59,7 +61,14 @@ public interface BomNewOriginalParentMapper extends BaseMapper getParentForDrawingNoSeach(@Param("drawingNos") List drawingNos ,@Param("state") Integer state); - List getChildForDrawingNoSeach(@Param("drawingNos") List drawingNos,@Param("state") Integer state); + List getChildForDrawingNoSeach(@Param("drawingNos") List drawingNos,@Param("bomRowIds") Collection bomRowIds); + + /** + * 获取父级图号 + * @param drawingNos + * @return + */ + Set getMaterialParent(@Param("drawingNos") Collection drawingNos); 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 ca4371da..f3c0e6c8 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 @@ -126,7 +126,7 @@ public class BomNewEbomParentService extends ServiceImpl materialNos = new ArrayList<>(); // List parentMaterialByMaterialNo = getParentMaterialByMaterialNo(materialNo, !userRoleService.technician()).stream().collect(Collectors.toList()); //获取父级物料 - List parentMaterialByMaterialNo=getParentMaterial(ImmutableList.of(materialNo) ,!userRoleService.technician()).stream().collect(Collectors.toList()); + List parentMaterialByMaterialNo = getParentMaterial(ImmutableList.of(materialNo), !userRoleService.technician()).stream().collect(Collectors.toList()); // materialNos.add(materialNo); materialNos.addAll(parentMaterialByMaterialNo); if (CollUtil.isNotEmpty(materialNos)) { @@ -225,6 +225,7 @@ public class BomNewEbomParentService extends ServiceImpl result = new HashSet<>(); result.addAll(materialNoList); - Set useMaterialSku = this.getBaseMapper().getMaterialParent(materialNoList,bomType?SessionUtil.getUserCode():null); + Set useMaterialSku = this.getBaseMapper().getMaterialParent(materialNoList, bomType ? SessionUtil.getUserCode() : null); while (CollUtil.isNotEmpty(useMaterialSku)) { //防止数据错误(循环依赖)-死循环 Set difference = Sets.difference(useMaterialSku, result); if (CollUtil.isNotEmpty(difference)) { - useMaterialSku = this.getBaseMapper().getMaterialParent(difference,bomType?SessionUtil.getUserCode():null); + useMaterialSku = this.getBaseMapper().getMaterialParent(difference, bomType ? SessionUtil.getUserCode() : null); result.addAll(difference); } else { break; @@ -330,12 +331,12 @@ public class BomNewEbomParentService extends ServiceImpl materialNos = parentChild.stream().filter(u -> StrUtil.isNotBlank(u.getMaterialNo())).map(u -> u.getMaterialNo()).collect(Collectors.toList()); if (CollUtil.isNotEmpty(materialNos)) { List list = this.lambdaQuery().in(BomNewEbomParentEntity::getMaterialNo, materialNos) - .eq(!EBomStatusEnum.PUBLISHED.equalsValue(parent.getStatus()) ,BomNewEbomParentEntity::getLastVersionIs, 1) + .eq(!EBomStatusEnum.PUBLISHED.equalsValue(parent.getStatus()), BomNewEbomParentEntity::getLastVersionIs, 1) .eq(EBomStatusEnum.PUBLISHED.equalsValue(parent.getStatus()), BomNewEbomParentEntity::getStatus, EBomStatusEnum.PUBLISHED.getValue()).list(); - if(EBomStatusEnum.CHECKED.equalsValue(parent.getStatus())){ - list=list.stream().filter(u->EBomStatusEnum.CHECKED.equalsValue(u.getStatus())).collect(Collectors.toList()); + if (EBomStatusEnum.CHECKED.equalsValue(parent.getStatus())) { + list = list.stream().filter(u -> EBomStatusEnum.CHECKED.equalsValue(u.getStatus())).collect(Collectors.toList()); } - Map bomListMap= list.parallelStream() + Map bomListMap = list.parallelStream() .collect(Collectors.toMap( BomNewEbomParentEntity::getMaterialNo, // key: DrawingNo Function.identity(), @@ -402,6 +403,7 @@ public class BomNewEbomParentService extends ServiceImpl list = this.lambdaQuery().in(BomNewEbomParentEntity::getMaterialNo, materialNos) .eq(BomNewEbomParentEntity::getLastVersionIs, 1).list(); - Map bomListMap= list.parallelStream() + Map bomListMap = list.parallelStream() .collect(Collectors.toMap( BomNewEbomParentEntity::getMaterialNo, // key: DrawingNo Function.identity(), @@ -769,41 +771,43 @@ public class BomNewEbomParentService extends ServiceImpl0).throwMessage("已生成过虚拟包,不能2次生成"); - VUtils.isTure(!Objects.equals(root.getExceptionStatus(), EBomExceptionStatusEnum.OK.getValue())) - .throwMessage("异常状态下不允许生成虚拟包"); - LogRecordContext.putVariable("gvbom", root); - //初始化虚拟包-判断枚举(不是手工生成虚拟包的情况) - checkAndInitVirtualPackageEnum(paramDto, root); - Boolean flag = true; - for (Integer f : paramDto.getVirtualPackageValue()) { - flag = flag & ((root.getVirtrualPackageEnum() & f) == f); + VUtils.isTure(Objects.isNull(root)).throwMessage("Bom不存在"); + + //初始化虚拟包-判断枚举(不是手工生成虚拟包的情况) + checkAndInitVirtualPackageEnum(paramDto, root); + + VUtils.isTure(root.getVirtrualPackageEnum() > 0).throwMessage("已生成过虚拟包,不能2次生成"); + VUtils.isTure(!Objects.equals(root.getExceptionStatus(), EBomExceptionStatusEnum.OK.getValue())) + .throwMessage("异常状态下不允许生成虚拟包"); + LogRecordContext.putVariable("gvbom", root); + +// Boolean flag = true; +// for (Integer f : paramDto.getVirtualPackageValue()) { +// flag = flag & ((root.getVirtrualPackageEnum() & f) == f); +// } +// VUtils.isTure(flag).throwMessage("已生成虚拟包,无需重复生成"); + + BomNewEbomParentVO parent = Convert.convert(BomNewEbomParentVO.class, root); + materialMainService.intiMaterialInfo(ImmutableList.of(parent), BomNewEbomParentVO::getMaterialNo); + if (parent.getMaterialCategoryCode().startsWith("30") || ImmutableList.of("200601", "200401").contains(parent.getMaterialCategoryCode())) { + VirtualPackageBase generate; + if (parent.getMaterialCategoryCode().startsWith("30")) { + generate = new VirtualPackageFor31(paramDto.getBomRowId(), paramDto.getVirtualPackageValue()); + } else { + generate = new VirtualPackageFor21(paramDto.getBomRowId(), paramDto.getVirtualPackageValue()); } - VUtils.isTure(flag).throwMessage("已生成虚拟包,无需重复生成"); - - BomNewEbomParentVO parent = Convert.convert(BomNewEbomParentVO.class, root); - materialMainService.intiMaterialInfo(ImmutableList.of(parent), BomNewEbomParentVO::getMaterialNo); - if (parent.getMaterialCategoryCode().startsWith("30") || ImmutableList.of("200601","200401").contains(parent.getMaterialCategoryCode())) { - VirtualPackageBase generate; - if (parent.getMaterialCategoryCode().startsWith("30")) { - generate = new VirtualPackageFor31(paramDto.getBomRowId(), paramDto.getVirtualPackageValue()); - } else { - generate = new VirtualPackageFor21(paramDto.getBomRowId(), paramDto.getVirtualPackageValue()); - } - generate.generateVirtualPackage(); - - if (CollUtil.isNotEmpty(generate.getParentResult())) { - this.saveOrUpdateBatch(generate.getParentResult()); - } - if (CollUtil.isNotEmpty(generate.getChildResult())) { - ebomChildService.saveOrUpdateBatch(generate.getChildResult()); - } + generate.generateVirtualPackage(); + if (CollUtil.isNotEmpty(generate.getParentResult())) { + this.saveOrUpdateBatch(generate.getParentResult()); } + if (CollUtil.isNotEmpty(generate.getChildResult())) { + ebomChildService.saveOrUpdateBatch(generate.getChildResult()); + } + + } } @@ -962,11 +966,11 @@ public class BomNewEbomParentService extends ServiceImpl result=param.getList(); - if(CollUtil.isEmpty(param.getList())){ - result=getChild(param.getBomRowId()); + List result = param.getList(); + if (CollUtil.isEmpty(param.getList())) { + result = getChild(param.getBomRowId()); } - final ListSheet listSheet = new ListSheet(Convert.toList(EbomExcelEditVO.class,result) ); + final ListSheet listSheet = new ListSheet(Convert.toList(EbomExcelEditVO.class, result)); EecExcelUtil.eecExcel("bom列表", listSheet, response); } @@ -975,7 +979,7 @@ public class BomNewEbomParentService extends ServiceImpl bomRowIds, HttpServletResponse response) throws IOException { List child = getChildBatch(bomRowIds); - final ListSheet listSheet = new ListSheet<>(Convert.toList(EbomExcelVO.class, child)); + final ListSheet listSheet = new ListSheet<>(Convert.toList(EbomExcelVO.class, child)); EecExcelUtil.eecExcel("bom列表", listSheet, response); } @@ -1051,7 +1055,7 @@ public class BomNewEbomParentService extends ServiceImpl delWrapper=new QueryWrapper<>(); - delWrapper.lambda().eq(BomNewEbomChildEntity::getParentRowId,dto.getRowId()); + QueryWrapper delWrapper = new QueryWrapper<>(); + delWrapper.lambda().eq(BomNewEbomChildEntity::getParentRowId, dto.getRowId()); SpringUtil.getBean(BomNewEbomChildService.class).getBaseMapper().delete(delWrapper); } @@ -1115,20 +1119,20 @@ public class BomNewEbomParentService extends ServiceImpl sameList=null; + List sameList = null; if (CollectionUtil.isNotEmpty(eBomEdit.childEntities)) { - QueryWrapper queryWrapper=new QueryWrapper<>(); - queryWrapper.lambda().eq(BomNewEbomChildEntity::getParentRowId,dto.getRowId()); - List oldChildList= SpringUtil.getBean(BomNewEbomChildService.class).list(queryWrapper); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().eq(BomNewEbomChildEntity::getParentRowId, dto.getRowId()); + List oldChildList = SpringUtil.getBean(BomNewEbomChildService.class).list(queryWrapper); ebomChildService.saveOrUpdateBatch(eBomEdit.childEntities); - if(CollUtil.isNotEmpty(oldChildList)) { + if (CollUtil.isNotEmpty(oldChildList)) { //追加里包含相同 List appendList = eBomEdit.childEntities.stream().map(BomNewEbomChildEntity::getMaterialNo).collect(Collectors.toList()); List oldList = oldChildList.stream().map(BomNewEbomChildEntity::getMaterialNo).collect(Collectors.toList()); - sameList = appendList.stream() + sameList = appendList.stream() .filter(oldList::contains) .collect(Collectors.toList()); @@ -1138,10 +1142,10 @@ public class BomNewEbomParentService extends ServiceImpl rowIds = dto.getRowIdList(); @@ -1254,21 +1257,20 @@ public class BomNewEbomParentService extends ServiceImpl (ObjectUtil.isNotNull(u.getBomRowId()) && u.getBomRowId().longValue() > 0 ) - && !ObjectUtil.equal(UserJobEnum.ENGINEER.getValue(),u.getCreatedJob()) - && ObjectUtil.equal(EBomStatusEnum.CHECKED.getValue(),u.getStatus()) + .filter(u -> (ObjectUtil.isNotNull(u.getBomRowId()) && u.getBomRowId().longValue() > 0) + && !ObjectUtil.equal(UserJobEnum.ENGINEER.getValue(), u.getCreatedJob()) + && ObjectUtil.equal(EBomStatusEnum.CHECKED.getValue(), u.getStatus()) ) .map(BomNewEbomParentVO::getBomRowId).collect(Collectors.toList())); - if (CollectionUtil.isNotEmpty(revertList)) { //parent表状态 UpdateWrapper updateWrapper = new UpdateWrapper<>(); updateWrapper.lambda() .set(BomNewEbomParentEntity::getRevertTime, LocalDateTime.now()) .set(BomNewEbomParentEntity::getRevertUserName, SessionUtil.getUserName()) - .set(BomNewEbomParentEntity::getRevertDesc,dto.getRevertDesc()) + .set(BomNewEbomParentEntity::getRevertDesc, dto.getRevertDesc()) .set(BomNewEbomParentEntity::getStatus, EBomStatusEnum.RETURNED.getValue()) .set(BomNewEbomParentEntity::getEditStatus, EbomEditStatusEnum.HANDLER_CREATED.getValue()) .in(BomNewEbomParentEntity::getRowId, revertList); @@ -1280,24 +1282,22 @@ public class BomNewEbomParentService extends ServiceImpl rowIds = dto.getRowIdList(); @@ -1319,11 +1319,11 @@ public class BomNewEbomParentService extends ServiceImpl checkList=bomNewEbomParentEntityList.stream().filter(u->!u.getCreatedBy().equals(SessionUtil.getUserCode())).collect(Collectors.toList()); - if(CollUtil.isNotEmpty(checkList)) { - String checkListMaterialNo=StrUtil.join(",",checkList.stream().map(BomNewEbomParentEntity::getMaterialNo).collect(Collectors.toList())); - VUtils.isTure(true).throwMessage(StrUtil.format("{} 该节点不属于你,你无权复核",checkListMaterialNo)); - } + List checkList = bomNewEbomParentEntityList.stream().filter(u -> !u.getCreatedBy().equals(SessionUtil.getUserCode())).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(checkList)) { + String checkListMaterialNo = StrUtil.join(",", checkList.stream().map(BomNewEbomParentEntity::getMaterialNo).collect(Collectors.toList())); + VUtils.isTure(true).throwMessage(StrUtil.format("{} 该节点不属于你,你无权复核", checkListMaterialNo)); + } Set materialNoAndVersion = bomNewEbomParentEntityList.stream().map(u -> StrUtil.join("-", u.getMaterialNo(), u.getCurrentVersion())).collect(Collectors.toSet()); @@ -1373,8 +1373,8 @@ public class BomNewEbomParentService extends ServiceImpl rowIdList = dto.getRowIdList().stream().map(BomNewEbomProjectTypeDTO.BomNewEbomChangeProjectType::getRowId).collect(Collectors.toList()); List bomRowIdList = dto.getRowIdList().stream().filter(u -> u.getBomRowId() > 0).map(BomNewEbomProjectTypeDTO.BomNewEbomChangeProjectType::getBomRowId).collect(Collectors.toList()); - - // if (CollectionUtil.isNotEmpty(bomRowIdList)) { // UpdateWrapper parentUpdate = new UpdateWrapper<>(); // parentUpdate.lambda() @@ -1505,7 +1502,6 @@ public class BomNewEbomParentService extends ServiceImpl queryWrapper=new QueryWrapper<>(); + QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.lambda() .eq(BomNewEbomParentEntity::getRowId, bomRowId) + queryWrapper.lambda().eq(BomNewEbomParentEntity::getRowId, bomRowId) .eq(BomNewEbomParentEntity::getUserRootIs, 1); BomNewEbomParentEntity parentEntity = this.getBaseMapper().selectOne(queryWrapper); @@ -1632,19 +1624,19 @@ public class BomNewEbomParentService extends ServiceImpl parentList= eBomDel.getDelEBom().stream().filter(u -> (ObjectUtil.isNotNull(u.getBomRowId()) && u.getBomRowId() > 0)) - .map(BomNewEbomParentVO::getBomRowId).collect(Collectors.toList()); - List childList= eBomDel.getDelEBom().stream().filter(u -> (ObjectUtil.isNull(u.getBomRowId()) || u.getBomRowId().longValue()==0l)) + List parentList = eBomDel.getDelEBom().stream().filter(u -> (ObjectUtil.isNotNull(u.getBomRowId()) && u.getBomRowId() > 0)) + .map(BomNewEbomParentVO::getBomRowId).collect(Collectors.toList()); + List childList = eBomDel.getDelEBom().stream().filter(u -> (ObjectUtil.isNull(u.getBomRowId()) || u.getBomRowId().longValue() == 0l)) .map(BomNewEbomParentVO::getRowId).collect(Collectors.toList()); - if(CollUtil.isNotEmpty(parentList)) { + if (CollUtil.isNotEmpty(parentList)) { this.getBaseMapper().delBatch(parentList); } // QueryWrapper parentWrapper=new QueryWrapper<>(); // parentWrapper.lambda().in(BomNewEbomParentEntity::getRowId,parentList); // - if(CollUtil.isNotEmpty(childList)) { + if (CollUtil.isNotEmpty(childList)) { QueryWrapper childWrapper = new QueryWrapper<>(); childWrapper.lambda().in(BomNewEbomChildEntity::getRowId, childList); // @@ -1653,7 +1645,7 @@ public class BomNewEbomParentService extends ServiceImpl computeLevelNumAndRootState()); - computeLevelNumAndRootState(); + computeLevelNumAndRootState(); } return true; @@ -1705,11 +1696,11 @@ public class BomNewEbomParentService extends ServiceImpl @@ -1733,7 +1721,6 @@ public class BomNewEbomParentService extends ServiceImpl delList) { - if(CollUtil.isEmpty(delList)){ + if (CollUtil.isEmpty(delList)) { return; } - List rowIds=delList.stream().map(BomNewEbomParentVO::getRowId).collect(Collectors.toList()); - QueryWrapper queryChildWrapper=new QueryWrapper<>(); - queryChildWrapper.lambda().in(BomNewEbomChildEntity::getRowId,rowIds); + List rowIds = delList.stream().map(BomNewEbomParentVO::getRowId).collect(Collectors.toList()); + QueryWrapper queryChildWrapper = new QueryWrapper<>(); + queryChildWrapper.lambda().in(BomNewEbomChildEntity::getRowId, rowIds); - List delChildList=SpringUtil.getBean(BomNewEbomChildService.class).list(queryChildWrapper); + List delChildList = SpringUtil.getBean(BomNewEbomChildService.class).list(queryChildWrapper); List delTagList = new ArrayList<>(); @@ -1867,7 +1849,7 @@ public class BomNewEbomParentService extends ServiceImpl s1List = delChildList.stream().filter(u -> Objects.equals(EBomSourceEnum.FROM_BOM.getValue(), u.getSource()) && !Objects.equals(u.getExceptionStatus(), EBomExceptionStatusEnum.OK.getValue())).collect(Collectors.toList()); @@ -1895,16 +1876,16 @@ public class BomNewEbomParentService extends ServiceImpl getParentMaterialByDrawingNo(List drawingNos) { + Set result = new HashSet<>(); + result.addAll(drawingNos); + + Set useMaterialSku = this.getBaseMapper().getMaterialParent(drawingNos); + + while (CollUtil.isNotEmpty(useMaterialSku)) { + //防止数据错误(循环依赖)-死循环 + Set difference = Sets.difference(useMaterialSku, result); + if (CollUtil.isNotEmpty(difference)) { + useMaterialSku = this.getBaseMapper().getMaterialParent(difference); + result.addAll(difference); + } else { + break; + } + } + return new ArrayList<>(result); + } + private Page handSeachToTree(List parents, List childs) { Page resutlData = new Page<>(); Set parentSet = parents.stream().map(u -> u.getDrawingNo()).collect(Collectors.toSet()); @@ -162,12 +186,12 @@ public class BomNewOriginalParentService extends ServiceImpl parentDrawingNos = new ArrayList<>(getParentDrawingNoByMaterialNo(queryDrawingNos)); - parentDrawingNos.addAll(queryDrawingNos); + List parentDrawingNos = new ArrayList<>(getParentMaterialByDrawingNo(queryDrawingNos)); +// parentDrawingNos.addAll(queryDrawingNos); if (CollUtil.isNotEmpty(parentDrawingNos)) { List parents = this.getBaseMapper().getParentForDrawingNoSeach(parentDrawingNos, query.getStatus()); materialMainService.intiMaterialInfo(parents, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT); - List childs = this.getBaseMapper().getChildForDrawingNoSeach(parentDrawingNos,query.getStatus()); + List childs = this.getBaseMapper().getChildForDrawingNoSeach(parentDrawingNos,parents.stream().map(u->u.getRowId()).collect(Collectors.toSet())); materialMainService.intiMaterialInfo(childs, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT); childs.stream().filter(f -> StrUtil.isBlank(f.getCurrentVersion())).forEach(f -> { if (MaterialshouldBomExistUtil.checkShouldBomExist(f.getMaterialCategoryCode(), f.getMaterialGetType())) { @@ -499,6 +523,7 @@ public class BomNewOriginalParentService extends ServiceImpl convertToEBom(List bomRowIds) throws ExecutionException, InterruptedException { List bomNewOriginalParentEntities = this.getBaseMapper().selectBatchIds(bomRowIds); @@ -522,13 +547,13 @@ public class BomNewOriginalParentService extends ServiceImpl + update t_bom_new_ebom_parent set root_is_for_wait_review=0 ; update t_bom_new_ebom_parent a left join ( - select b.row_id, b.material_no,a.`status` from t_bom_new_ebom_parent a join t_bom_new_ebom_child b on a.row_id=b.parent_row_id and a.`status` =2 + select b.row_id, b.material_no,a.`status` from t_bom_new_ebom_parent a join t_bom_new_ebom_child b on a.row_id=b.parent_row_id and a.`status` in(1,3) and last_version_is=1 ) b on a.material_no=b.material_no set a.root_is_for_wait_review=1 where a.`status` in (1,3) and last_version_is=1 and b.row_id is null ; 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 35ba020a..28fa86df 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 @@ -192,40 +192,60 @@ + + + + + + + + + + + + + + + + + + + diff --git a/nflg_project_dev/nflg-boot-base/nflg-common/src/main/java/nflg/product/common/dto/LoginUserInfoDTO.java b/nflg_project_dev/nflg-boot-base/nflg-common/src/main/java/nflg/product/common/dto/LoginUserInfoDTO.java index b192ca3b..da5068ef 100644 --- a/nflg_project_dev/nflg-boot-base/nflg-common/src/main/java/nflg/product/common/dto/LoginUserInfoDTO.java +++ b/nflg_project_dev/nflg-boot-base/nflg-common/src/main/java/nflg/product/common/dto/LoginUserInfoDTO.java @@ -1,6 +1,7 @@ package nflg.product.common.dto; import lombok.Data; +import lombok.experimental.Accessors; //import org.omg.CORBA.PRIVATE_MEMBER; import java.util.List; @@ -11,6 +12,7 @@ import java.util.List; * @Date 2022/7/14 10:38 **/ @Data +@Accessors(chain = true) public class LoginUserInfoDTO { private Long rowId; From 840de12bfe33633bcc0c1103a2ad238c1ffe4e52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Sat, 13 Apr 2024 16:01:35 +0800 Subject: [PATCH 6/7] =?UTF-8?q?1=E3=80=81BUG=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/master/BomNewEbomParentMapper.java | 2 +- .../service/BomNewEbomParentService.java | 2 +- .../mapper/master/BomNewEbomParentMapper.xml | 92 +++++++++++++------ 3 files changed, 68 insertions(+), 28 deletions(-) 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 56469841..c37a2de2 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 @@ -54,7 +54,7 @@ public interface BomNewEbomParentMapper extends BaseMapper getParentForMaterialNoSeach(@Param("materialNoList") List materialNoList ,@Param("dataType") Integer dataType); - List getChildForMaterialNoSeach(@Param("materialNoList") List materialNoList,@Param("materialNo") String materialNo,@Param("dataType") Integer dataType ); + List getChildForMaterialNoSeach(@Param("materialNoList") List materialNoList,@Param("bomRowIds") Collection bomRowIds ); void updateRootState(); 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 f3c0e6c8..35c25374 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 @@ -131,7 +131,7 @@ public class BomNewEbomParentService extends ServiceImpl parents = this.getBaseMapper().getParentForMaterialNoSeach(materialNos, query.getDataType()); - List childs = this.getBaseMapper().getChildForMaterialNoSeach(materialNos, materialNo, query.getDataType()); + List childs = this.getBaseMapper().getChildForMaterialNoSeach(materialNos, parents.stream().map(u->u.getRowId()).collect(Collectors.toSet())); List data = new ArrayList<>(); data.addAll(parents); data.addAll(childs); 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 01e33ebc..04a17b65 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 @@ -98,40 +98,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + - - and a.status = 4 - + + + + + + + + + - and material_no in - - #{item} - - From 7639ec8dc19a1bf87c9ef8e1a2fdded119ab3eb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Sat, 13 Apr 2024 16:38:41 +0800 Subject: [PATCH 7/7] =?UTF-8?q?1=E3=80=81BUG=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/master/BomNewEbomParentMapper.java | 4 ++-- .../service/BomNewEbomParentService.java | 10 ++++++--- .../service/BomNewOriginalParentService.java | 21 +++++++++++-------- .../mapper/master/BomNewEbomParentMapper.xml | 13 ++++++++++-- 4 files changed, 32 insertions(+), 16 deletions(-) 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 c37a2de2..b176b22d 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 @@ -52,9 +52,9 @@ public interface BomNewEbomParentMapper extends BaseMapper getSelfParentMaterialNo(@Param("createdBy") String createdBy ,@Param("list") Set list); - List getParentForMaterialNoSeach(@Param("materialNoList") List materialNoList ,@Param("dataType") Integer dataType); + List getParentForMaterialNoSeach(@Param("materialNoList") List materialNoList ,@Param("dataType") Integer dataType , @Param("createdBy") String createdBy); - List getChildForMaterialNoSeach(@Param("materialNoList") List materialNoList,@Param("bomRowIds") Collection bomRowIds ); + List getChildForMaterialNoSeach(@Param("materialNoList") List materialNoList,@Param("bomRowIds") Collection bomRowIds , @Param("createdBy") String createdBy ); void updateRootState(); 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 35c25374..0e1a030e 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 @@ -126,12 +126,16 @@ public class BomNewEbomParentService extends ServiceImpl materialNos = new ArrayList<>(); // List parentMaterialByMaterialNo = getParentMaterialByMaterialNo(materialNo, !userRoleService.technician()).stream().collect(Collectors.toList()); //获取父级物料 - List parentMaterialByMaterialNo = getParentMaterial(ImmutableList.of(materialNo), !userRoleService.technician()).stream().collect(Collectors.toList()); + Boolean getSelfIs=!userRoleService.technician(); + List parentMaterialByMaterialNo = getParentMaterial(ImmutableList.of(materialNo),(getSelfIs && query.getDataType().equals(0) ) ).stream().collect(Collectors.toList()); // materialNos.add(materialNo); materialNos.addAll(parentMaterialByMaterialNo); if (CollUtil.isNotEmpty(materialNos)) { - List parents = this.getBaseMapper().getParentForMaterialNoSeach(materialNos, query.getDataType()); - List childs = this.getBaseMapper().getChildForMaterialNoSeach(materialNos, parents.stream().map(u->u.getRowId()).collect(Collectors.toSet())); + List childs=new ArrayList<>(); + List parents = this.getBaseMapper().getParentForMaterialNoSeach(materialNos, query.getDataType() ,(getSelfIs && query.getDataType().equals(0) )?SessionUtil.getUserCode():null ); + if(CollUtil.isNotEmpty(parents)) { + childs = this.getBaseMapper().getChildForMaterialNoSeach(materialNos, parents.stream().map(u -> u.getRowId()).collect(Collectors.toSet()), (getSelfIs && query.getDataType().equals(0)) ? SessionUtil.getUserCode() : null); + } List data = new ArrayList<>(); data.addAll(parents); data.addAll(childs); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewOriginalParentService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewOriginalParentService.java index 0baf9a41..71d08112 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewOriginalParentService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewOriginalParentService.java @@ -189,17 +189,20 @@ public class BomNewOriginalParentService extends ServiceImpl parentDrawingNos = new ArrayList<>(getParentMaterialByDrawingNo(queryDrawingNos)); // parentDrawingNos.addAll(queryDrawingNos); if (CollUtil.isNotEmpty(parentDrawingNos)) { + List childs=new ArrayList<>(); List parents = this.getBaseMapper().getParentForDrawingNoSeach(parentDrawingNos, query.getStatus()); materialMainService.intiMaterialInfo(parents, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT); - List childs = this.getBaseMapper().getChildForDrawingNoSeach(parentDrawingNos,parents.stream().map(u->u.getRowId()).collect(Collectors.toSet())); - materialMainService.intiMaterialInfo(childs, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT); - childs.stream().filter(f -> StrUtil.isBlank(f.getCurrentVersion())).forEach(f -> { - if (MaterialshouldBomExistUtil.checkShouldBomExist(f.getMaterialCategoryCode(), f.getMaterialGetType())) { - f.setCurrentVersion(OriginalConstant.NO_BOM_VERSION); - } else { - f.setCurrentVersion(OriginalConstant.DEFAULT_BOM_VERSION); - } - }); + if(CollUtil.isNotEmpty(parents)) { + childs = this.getBaseMapper().getChildForDrawingNoSeach(parentDrawingNos, parents.stream().map(u -> u.getRowId()).collect(Collectors.toSet())); + materialMainService.intiMaterialInfo(childs, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT); + childs.stream().filter(f -> StrUtil.isBlank(f.getCurrentVersion())).forEach(f -> { + if (MaterialshouldBomExistUtil.checkShouldBomExist(f.getMaterialCategoryCode(), f.getMaterialGetType())) { + f.setCurrentVersion(OriginalConstant.NO_BOM_VERSION); + } else { + f.setCurrentVersion(OriginalConstant.DEFAULT_BOM_VERSION); + } + }); + } // List data = new ArrayList<>(); // data.addAll(parents); // data.addAll(childs); 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 04a17b65..0842307e 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 @@ -102,10 +102,14 @@ FROM t_bom_new_ebom_parent a join (select material_no,max(current_version) current_version from t_bom_new_ebom_parent where - a.status = 4 + status = 4 - and a.status < 4 + status < 4 + + and created_by=#{createdBy} + + and material_no in @@ -171,9 +175,14 @@ #{item} + + and b.created_by=#{createdBy} + + +