From 87c55673767a816e534aae549d0d0783e63fd80d Mon Sep 17 00:00:00 2001 From: luoliming Date: Sun, 30 Jun 2024 22:17:39 +0800 Subject: [PATCH 01/13] =?UTF-8?q?=E5=8F=98=E6=9B=B4=E5=BD=B1=E5=93=8D?= =?UTF-8?q?=E5=8D=87=E7=BA=A7-=E6=9B=B4=E6=96=B0=E8=99=9A=E6=8B=9F?= =?UTF-8?q?=E5=8C=85=E7=BB=84=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/BomNewEbomUpgradeChangeService.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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 4efc6f1f..667a64f9 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 @@ -4,10 +4,12 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; import com.nflg.product.bomnew.constant.EBomStatusEnum; import com.nflg.product.bomnew.mapper.master.BomNewEbomUpgradeChangeMapper; import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentEntity; import com.nflg.product.bomnew.pojo.entity.BomNewEbomUpgradeChangeEntity; +import com.nflg.product.bomnew.pojo.entity.BomNewEbomVirtualPackageCompositionEntity; import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO; import com.nflg.product.bomnew.service.domain.EBom.ChangeImpactUpgrade; import org.springframework.stereotype.Service; @@ -17,6 +19,7 @@ import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.List; import java.util.Objects; +import java.util.Set; import java.util.concurrent.ExecutionException; import java.util.stream.Collectors; @@ -41,6 +44,9 @@ public class BomNewEbomUpgradeChangeService extends ServiceImpl comVList = updateImpact.getVirtualPackageCompositionResult().stream().filter(u -> u.getVirtualPackageMaterialNo().equals(ent.getMaterialNo())).collect(Collectors.toList()); + if(CollUtil.isNotEmpty(comVList)) { + virtualPackageCompositionService.saveBatch(comVList); + } + } + //新加的移到历史表 if(CollUtil.isNotEmpty(updateImpact.getNewAddPBomParentResult())){ pbomParentService.getBaseMapper().insertPBomParentToFormal(updateImpact.getNewAddPBomParentResult()); From 1adb6dc3c6f4d3986311cd9199315836c81415fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Mon, 1 Jul 2024 09:47:24 +0800 Subject: [PATCH 02/13] =?UTF-8?q?optimize(ebom):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E8=AF=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nflg/product/bomnew/service/BomNewEbomParentService.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/BomNewEbomParentService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java index bb7caa08..3cb46af1 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 @@ -2173,7 +2173,7 @@ public class BomNewEbomParentService extends ServiceImpl !Objects.equals(d.getVirtualPartType(), VirtualPackageTypeEnum.UN_VIRTUAL_PACKAGE.getValue()))) - .throwMessage("不能删除31码下的虚拟包"); + .throwMessage("请重新生成发货包"); //检查有bom数据关系是否可以删? // List check2List = delList.stream().filter(u -> Objects.equals(EBomSourceEnum.FROM_BOM.getValue(), u.getSource()) From 1fbe82d335ceaac73e190aaf5d4475de7606fbf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Mon, 1 Jul 2024 17:34:26 +0800 Subject: [PATCH 03/13] =?UTF-8?q?optimize:=20=E4=B8=80=E4=BA=9B=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nflg/product/bomnew/api/user/EbomApi.java | 10 ++-- .../product/bomnew/api/user/EbomV2Api.java | 6 +- .../constant/EBomExceptionStatusEnum.java | 3 +- ...BomQVO.java => CheckBomProjectTypeVO.java} | 12 +++- ...enerateVirtualPackageServiceFor31Impl.java | 14 +---- .../service/BomNewEbomParentService.java | 44 ++++++++++++-- .../BomNewOriginalParentV2Service.java | 60 +++++++++++++++---- .../domain/EBom/CheckEBomException.java | 6 ++ .../bomnew/service/domain/EBom/EBomEdit.java | 6 +- .../PlmBomToOriginalConvertV2.java | 29 ++++++--- 10 files changed, 139 insertions(+), 51 deletions(-) rename nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/{CheckBomQVO.java => CheckBomProjectTypeVO.java} (70%) 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 2b8a76d8..484bcb99 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 @@ -517,13 +517,13 @@ public class EbomApi extends BaseApi { } /** - * 检查下级是否存在Q项 + * 检查下级的项目类型 * @param bomRowIds bomRowIds * @return 检查结果 */ - @PostMapping("checkQ") - @ApiOperation("检查下级是否存在Q项") - public ResultVO> checkQ(@Valid @RequestBody @NotEmpty List bomRowIds) { - return ResultVO.success(bomNewEbomParentService.checkQ(bomRowIds)); + @PostMapping("checkProjectType") + @ApiOperation("检查下级的项目类型") + public ResultVO> checkProjectType(@Valid @RequestBody @NotEmpty List bomRowIds) { + return ResultVO.success(bomNewEbomParentService.checkProjectType(bomRowIds)); } } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomV2Api.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomV2Api.java index 45a87768..682e4275 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomV2Api.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomV2Api.java @@ -69,10 +69,10 @@ public class EbomV2Api extends BaseApi { result = originalParentV2Service.pullFromCadAndToEBom(parents); //跟新EBom 根节点 - ebomParentService.getBaseMapper().updateRootState(); - ebomParentService.getBaseMapper().updateRootForWaitReview(); + // ebomParentService.getBaseMapper().updateRootState(); + // ebomParentService.getBaseMapper().updateRootForWaitReview(); - ebomParentService.resetAllBomExist(parents.stream().map(BomOriginalCadParentEntity::getMaterialNo).collect(Collectors.toSet())); + // ebomParentService.resetAllBomExist(parents.stream().map(BomOriginalCadParentEntity::getMaterialNo).collect(Collectors.toSet())); } catch (Exception e) { VUtils.isTure(true).throwMessage("转换失败:" + e.getMessage()); } finally { diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/EBomExceptionStatusEnum.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/EBomExceptionStatusEnum.java index afe29dc7..7581a861 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/EBomExceptionStatusEnum.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/EBomExceptionStatusEnum.java @@ -45,7 +45,8 @@ public enum EBomExceptionStatusEnum implements ValueEnum { EXCEPT_NO_13(13, "项目类型需要用户确认") , EXCEPT_NO_14(14, "黄色警告(下级节点存在异常)"), EXCEPT_NO_15(15, "物料名称不一致"), - EXCEPT_NO_16(16, "物料单位不一致"); + EXCEPT_NO_16(16, "物料单位不一致"), + EXCEPT_NO_17(17, "项目赋值异常(当父级物料的项目类型为Q时,子级中的物料的项目类型不能全部为F"); private final Integer value; private final String description; diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/CheckBomQVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/CheckBomProjectTypeVO.java similarity index 70% rename from nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/CheckBomQVO.java rename to nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/CheckBomProjectTypeVO.java index f77c3c16..c65c74a1 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/CheckBomQVO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/CheckBomProjectTypeVO.java @@ -13,8 +13,8 @@ import java.io.Serializable; */ @Data @Accessors(chain = true) -@ApiModel(value = "com-nflg-product-bomnew-pojo-original-vo-CheckBomQVO") -public class CheckBomQVO implements Serializable { +@ApiModel(value = "com-nflg-product-bomnew-pojo-original-vo-CheckBomProjectTypeVO") +public class CheckBomProjectTypeVO implements Serializable { /** * bom行id @@ -26,5 +26,11 @@ public class CheckBomQVO implements Serializable { * 下级是否存在Q项 */ @ApiModelProperty(value = "下级是否存在Q项") - private Boolean exists; + private Boolean existsQ; + + /** + * 下级是否全是F项 + */ + @ApiModelProperty(value = "下级是否全是F项") + private Boolean allIsF; } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomGenerateVirtualPackageServiceFor31Impl.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomGenerateVirtualPackageServiceFor31Impl.java index 4505a6bf..b00d2933 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomGenerateVirtualPackageServiceFor31Impl.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomGenerateVirtualPackageServiceFor31Impl.java @@ -25,6 +25,7 @@ import com.nflg.product.bomnew.util.VersionUtil; import nflg.product.common.constant.STATE; import nflg.product.common.dto.LoginUserInfoDTO; import nflg.product.common.vo.ResultVO; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.transaction.PlatformTransactionManager; @@ -562,18 +563,7 @@ public class BomNewEbomGenerateVirtualPackageServiceFor31Impl implements IBomNew } public static String buildDrawingNo(String drawingNo, String materialName, VirtualPackageTypeEnum type, boolean is1020Factory) { - return StrUtil.format("({})({}{})({})", drawingNo, materialName, is1020Factory ? "仙桃" : "", type.getConMaterialName()); - } - - private String getMaterialNoForAdd(BomNewEbomChildEntity c) { - AddVirtrualMaterialDTO ent = new AddVirtrualMaterialDTO(); - ent.setKey(c.getRowId().toString()); - ent.setDrawingNo(c.getDrawingNo()); - ent.setMaterialName(c.getMaterialName()); - ent.setMaterialDesc(c.getMaterialDesc()); - ent.setMaterialCategoryCode(c.getMaterialCategoryCode()); - Map vMNosResult = materialService.batchAddMaterial(Collections.singletonList(ent), userInfo); - return vMNosResult.get(c.getRowId().toString()).getMaterialNo(); + return StrUtil.format("({})({}{})({})", drawingNo, StringUtils.deleteWhitespace(materialName), is1020Factory ? "仙桃" : "", type.getConMaterialName()); } /* 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 3cb46af1..bf90da16 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 @@ -2156,6 +2156,11 @@ public class BomNewEbomParentService extends ServiceImpl rowIds = delList.stream().map(BomNewEbomParentVO::getRowId).collect(Collectors.toList()); QueryWrapper queryChildWrapper = new QueryWrapper<>(); queryChildWrapper.lambda().in(BomNewEbomChildEntity::getRowId, rowIds); @@ -2172,6 +2177,7 @@ public class BomNewEbomParentService extends ServiceImpl Objects.equals(c.getSource(), EBomSourceEnum.FROM_MDM.getValue())) && delChildList.stream().anyMatch(d -> !Objects.equals(d.getVirtualPartType(), VirtualPackageTypeEnum.UN_VIRTUAL_PACKAGE.getValue()))) .throwMessage("请重新生成发货包"); @@ -2213,9 +2219,11 @@ public class BomNewEbomParentService extends ServiceImpl rowIdList = delTagList.stream().filter(u -> u.getRowId() != null || u.getRowId().longValue() > 0).map(BomNewEbomChildEntity::getRowId).collect(Collectors.toList()); + List rowIdList = delTagList.stream().map(BomNewEbomChildEntity::getRowId).collect(Collectors.toList()); if (CollectionUtil.isNotEmpty(rowIdList)) { ebomChildService.removeByIds(rowIdList); + //将对应的parent设置为根节点 + setRootIs1(delTagList.stream().map(BomNewEbomChildEntity::getMaterialNo).collect(Collectors.toList()), SessionUtil.getUserCode()); } } } @@ -2851,16 +2859,42 @@ public class BomNewEbomParentService extends ServiceImpl checkQ(List bomRowIds) { + public List checkProjectType(List bomRowIds) { List children = ebomChildService.lambdaQuery() .in(BomNewEbomChildEntity::getParentRowId, bomRowIds) .list(); return bomRowIds.stream().map(bomRowId -> { - CheckBomQVO vo = new CheckBomQVO(); + CheckBomProjectTypeVO vo = new CheckBomProjectTypeVO(); vo.setBomRowId(bomRowId); - vo.setExists(children.stream().anyMatch(c -> c.getParentRowId().equals(bomRowId) - && StrUtil.equals(c.getProjectType(), ProjectTypeInputTypeEnum.ProjectTypeEnum.TYPE_Q.getValue()))); + if (CollUtil.isEmpty(children)) { + vo.setExistsQ(false); + vo.setAllIsF(false); + } else { + vo.setExistsQ(children.stream().anyMatch(c -> c.getParentRowId().equals(bomRowId) + && StrUtil.equals(c.getProjectType(), ProjectTypeInputTypeEnum.ProjectTypeEnum.TYPE_Q.getValue()))); + vo.setAllIsF(children.stream().allMatch(c -> c.getParentRowId().equals(bomRowId) + && StrUtil.equals(c.getProjectType(), ProjectTypeInputTypeEnum.ProjectTypeEnum.TYPE_F.getValue()))); + } return vo; }).collect(Collectors.toList()); } + + /** + * 设置根节点 + * @param materialNos 物料编号 + * @param userCode 用户编号 + */ + public void setRootIs1(Collection materialNos, String userCode) { + if (CollUtil.isNotEmpty(materialNos)) { + log.debug("setRootIs1 将{}设置为根节点", String.join(",", materialNos)); + this.lambdaUpdate() + .set(BomNewEbomParentEntity::getRootIs, 1) + .set(BomNewEbomParentEntity::getUserRootIs, 1) + .set(BomNewEbomParentEntity::getModifyTime, LocalDateTime.now()) + .in(BomNewEbomParentEntity::getMaterialNo, materialNos) + .lt(BomNewEbomParentEntity::getStatus, EBomStatusEnum.PUBLISHED.getValue()) + .eq(BomNewEbomParentEntity::getCreatedBy, userCode) + .update(); + } + } } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewOriginalParentV2Service.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewOriginalParentV2Service.java index 2bc26989..7d40ce26 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewOriginalParentV2Service.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewOriginalParentV2Service.java @@ -9,16 +9,14 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Sets; +import com.nflg.product.base.core.conmon.util.SessionUtil; import com.nflg.product.bomnew.constant.EBomStatusEnum; import com.nflg.product.bomnew.constant.OriginalEditStatusEnum; import com.nflg.product.bomnew.constant.OriginalStatusEnum; import com.nflg.product.bomnew.mapper.master.BomNewOriginalParentMapper; import com.nflg.product.bomnew.pojo.dto.BaseImportExcelDTO; import com.nflg.product.bomnew.pojo.dto.BomNewOriginalExcelDTO; -import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentEntity; -import com.nflg.product.bomnew.pojo.entity.BomNewOriginalParentEntity; -import com.nflg.product.bomnew.pojo.entity.BomOriginalCadChildEntity; -import com.nflg.product.bomnew.pojo.entity.BomOriginalCadParentEntity; +import com.nflg.product.bomnew.pojo.entity.*; import com.nflg.product.bomnew.pojo.vo.BaseMaterialVO; import com.nflg.product.bomnew.pojo.vo.BomOriginalListVO; import com.nflg.product.bomnew.pojo.vo.BomOriginalPlmBomVO; @@ -115,7 +113,7 @@ public class BomNewOriginalParentV2Service extends ServiceImpl { + parents.forEach(u -> { u.setMaterialNo(StrUtil.trim(u.getMaterialNo())); if (StrUtil.equals(u.getMaterialNo(), "无")) { u.setMaterialNo(""); @@ -124,14 +122,14 @@ public class BomNewOriginalParentV2Service extends ServiceImpl childs = originalCadChildService.lambdaQuery().in(BomOriginalCadChildEntity::getParentRowId, parents.stream().map(u -> u.getRowId()).collect(Collectors.toList())).list(); //物料编号去除前后空格 - childs.parallelStream().forEach(u -> { + childs.forEach(u -> { u.setMaterialNo(StrUtil.trim(u.getMaterialNo())); if (StrUtil.equals(u.getMaterialNo(), "无")) { u.setMaterialNo(""); } }); - checkMaterialHasExist(parents.stream().filter(u -> StrUtil.isNotBlank(u.getMaterialNo())).map(BomOriginalCadParentEntity::getMaterialNo).collect(Collectors.toList())); - checkMaterialHasExist(childs.stream().filter(u -> StrUtil.isNotBlank(u.getMaterialNo())).map(BomOriginalCadChildEntity::getMaterialNo).collect(Collectors.toList())); + // checkMaterialHasExist(parents.stream().filter(u -> StrUtil.isNotBlank(u.getMaterialNo())).map(BomOriginalCadParentEntity::getMaterialNo).collect(Collectors.toList())); + // checkMaterialHasExist(childs.stream().filter(u -> StrUtil.isNotBlank(u.getMaterialNo())).map(BomOriginalCadChildEntity::getMaterialNo).collect(Collectors.toList())); //父级物料编码不能为空 materialMainService.initMaterialForDrawdingNo(parents, BomOriginalCadParentEntity::getChartNo, BomOriginalCadParentEntity::setMaterialNo, BomOriginalCadParentEntity::setMaterialName); @@ -147,6 +145,16 @@ public class BomNewOriginalParentV2Service extends ServiceImpl nonChildParents = parents.stream() + .map(BomOriginalCadParentEntity::getRowId) + .filter(rowId -> childs.stream().noneMatch(c -> Objects.equals(c.getParentRowId(), rowId))) + .collect(Collectors.toList()); + if (CollUtil.isNotEmpty(nonChildParents)) { + parents.removeIf(u -> nonChildParents.contains(u.getRowId())); + originalCadParentService.getBaseMapper().deleteBatchIds(nonChildParents); + } + PlmBomToOriginalConvertV2 convert = new PlmBomToOriginalConvertV2(); //存原始BOM toOriginalBom(parents,convert); @@ -212,11 +220,13 @@ public class BomNewOriginalParentV2Service extends ServiceImpl importOriginalBomVOList = new ArrayList<>(); //开始转换 + List allParents = new ArrayList<>(); + List allChildren = new ArrayList<>(); for (BomNewOriginalParentEntity parent : bomNewOriginalParentEntities) { Long ebomRowId = IdWorker.getId(); try { - convertToEBomDoV2(parent, ebomRowId); + convertToEBomDoV2(parent, ebomRowId, allParents, allChildren); } catch (Exception e) { importOriginalBomVOList.add(new ImportOriginalBomVO(parent.getDrawingNo(), "操作失败:" + e.getMessage())); throw e; @@ -225,6 +235,11 @@ public class BomNewOriginalParentV2Service extends ServiceImpl materialNos = allParents.stream().map(BomNewEbomParentEntity::getMaterialNo).collect(Collectors.toSet()); + materialNos.removeAll(allChildren.stream().map(BomNewEbomChildEntity::getMaterialNo).collect(Collectors.toSet())); + ebomParentService.setRootIs1(materialNos, SessionUtil.getUserCode()); + return importOriginalBomVOList; } @@ -234,7 +249,8 @@ public class BomNewOriginalParentV2Service extends ServiceImpl allParents, List allChildren) { List bomAllChildList = this.getBaseMapper().getParentChild(parent.getRowId()); BomOriginalListVO parentVO = Convert.convert(BomOriginalListVO.class, parent); @@ -242,14 +258,34 @@ public class BomNewOriginalParentV2Service extends ServiceImpl convert.getEBomChildResult().stream().noneMatch(c -> StrUtil.equals(p.getMaterialNo(), c.getMaterialNo()))) + .forEach(p -> { + //设置是否有下级 + p.setBomExist(convert.getEBomChildResult().stream().anyMatch(c -> Objects.equals(p.getRowId(), c.getParentRowId())) ? 1 : 0); + }); + //取消本人以前导入的,草稿状态的bom的根节点状态 + Set materialNos = convert.getEBomChildResult().stream().map(BomNewEbomChildEntity::getMaterialNo).collect(Collectors.toSet()); + materialNos.removeAll(convert.getEBomParentResult().stream().map(BomNewEbomParentEntity::getMaterialNo).collect(Collectors.toSet())); + if (CollUtil.isNotEmpty(materialNos)) { + ebomParentService.lambdaUpdate() + .set(BomNewEbomParentEntity::getRootIs, 0) + .set(BomNewEbomParentEntity::getUserRootIs, 0) + .set(BomNewEbomParentEntity::getRootIsForWaitReview, 0) + .in(BomNewEbomParentEntity::getMaterialNo, materialNos) + .lt(BomNewEbomParentEntity::getStatus, EBomStatusEnum.PUBLISHED.getValue()) + .eq(BomNewEbomParentEntity::getCreatedBy, SessionUtil.getUserCode()) + .update(); + } if (CollUtil.isNotEmpty(convert.getEBomParentResult())) { ebomParentService.saveOrUpdateBatch(convert.getEBomParentResult()); - - + allParents.addAll(convert.getEBomParentResult()); } if (CollUtil.isNotEmpty(convert.getEBomChildResult())) { ebomChildService.saveOrUpdateBatch(convert.getEBomChildResult()); + allChildren.addAll(convert.getEBomChildResult()); } //将原始BOM及子级转为已处理 if (CollUtil.isNotEmpty(convert.getHasHandlerParentIds())) { diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/CheckEBomException.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/CheckEBomException.java index ba661860..3ca44176 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/CheckEBomException.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/CheckEBomException.java @@ -195,6 +195,12 @@ public class CheckEBomException { // qList.forEach(u -> u.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_10.getValue())); // } // } + if (ProjectTypeInputTypeEnum.ProjectTypeEnum.TYPE_Q.getValue().equals(parent.getProjectType())) { + if (CollUtil.isNotEmpty(child) && child.stream() + .allMatch(c -> StrUtil.equals(c.getProjectType(), ProjectTypeInputTypeEnum.ProjectTypeEnum.TYPE_F.getValue()))) { + parent.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_17.getValue()); + } + } } // checkCircularDependency(checkEBomExceptionDTOS); //bom异常-黄色警号 diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomEdit.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomEdit.java index 90b2fac2..6178860f 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomEdit.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomEdit.java @@ -268,9 +268,9 @@ public class EBomEdit { if (StrUtil.equals(ProjectTypeInputTypeEnum.ProjectTypeEnum.TYPE_Q.getValue(), child.getProjectType())) { child.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_9.getValue()); } - if (StrUtil.equals(ProjectTypeInputTypeEnum.ProjectTypeEnum.TYPE_F.getValue(), child.getProjectType())) { - child.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_10.getValue()); - } + // if (StrUtil.equals(ProjectTypeInputTypeEnum.ProjectTypeEnum.TYPE_F.getValue(), child.getProjectType())) { + // child.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_10.getValue()); + // } } } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/PlmBomToOriginalConvertV2.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/PlmBomToOriginalConvertV2.java index eee00d22..5d537a8e 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/PlmBomToOriginalConvertV2.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/PlmBomToOriginalConvertV2.java @@ -2,15 +2,26 @@ package com.nflg.product.bomnew.service.domain.OriginalBom; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.StrUtil; import cn.hutool.extra.spring.SpringUtil; -import com.github.xiaoymin.knife4j.core.util.StrUtil; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; -import com.nflg.product.bomnew.constant.*; +import com.nflg.product.bomnew.constant.OriginalConstant; +import com.nflg.product.bomnew.constant.OriginalEditStatusEnum; +import com.nflg.product.bomnew.constant.OriginalSourceEnum; +import com.nflg.product.bomnew.constant.OriginalStatusEnum; import com.nflg.product.bomnew.mapper.master.MaterialMainMapper; -import com.nflg.product.bomnew.pojo.entity.*; -import com.nflg.product.bomnew.pojo.vo.*; -import com.nflg.product.bomnew.service.*; +import com.nflg.product.bomnew.pojo.entity.BomNewOriginalParentEntity; +import com.nflg.product.bomnew.pojo.entity.BomOriginalCadChildEntity; +import com.nflg.product.bomnew.pojo.entity.BomOriginalCadParentEntity; +import com.nflg.product.bomnew.pojo.vo.BaseMaterialVO; +import com.nflg.product.bomnew.pojo.vo.BomOriginalPlmBomVO; +import com.nflg.product.bomnew.pojo.vo.ImportOriginalBomVO; +import com.nflg.product.bomnew.pojo.vo.MaterialMateVO; +import com.nflg.product.bomnew.service.BomNewOriginalChildService; +import com.nflg.product.bomnew.service.BomNewOriginalParentService; +import com.nflg.product.bomnew.service.BomOriginalCadChildService; +import com.nflg.product.bomnew.service.MaterialMainService; import com.nflg.product.bomnew.util.VUtils; import lombok.Getter; @@ -49,11 +60,15 @@ public class PlmBomToOriginalConvertV2 extends BaseConvert { if (parent.getMaterialNo().trim().equalsIgnoreCase("无")) { parent.setMaterialNo(""); } + parent.setMaterialNo(StrUtil.trim(parent.getMaterialNo())); if (StrUtil.isBlank(parent.getMaterialNo())) { SpringUtil.getBean(MaterialMainService.class).initMaterialForDrawdingNo(ImmutableList.of(parent), BomOriginalPlmBomVO::getDrawingNo, BomOriginalPlmBomVO::setMaterialNo, BomOriginalPlmBomVO::setMaterialName); } - childs.stream().filter(f -> f.getMaterialNo().trim().equalsIgnoreCase("无")).forEach(it -> { - it.setMaterialNo(""); + childs.parallelStream().forEach(f -> { + f.setMaterialNo(StrUtil.trim(f.getMaterialNo())); + if (StrUtil.equals("无", f.getMaterialNo())) { + f.setMaterialNo(""); + } }); List noMaterialNoList = childs.stream().filter(u -> StrUtil.isBlank(u.getMaterialNo())).collect(Collectors.toList()); if (CollUtil.isNotEmpty(noMaterialNoList)) { From 1e775815bd6bf8dfe95a0d3f995b177a7b916045 Mon Sep 17 00:00:00 2001 From: luoliming Date: Mon, 1 Jul 2024 23:00:23 +0800 Subject: [PATCH 04/13] =?UTF-8?q?ebom-=E6=9D=A5=E6=BA=90=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OriginalBom/OriginalBomToEBomV2Convert.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomToEBomV2Convert.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomToEBomV2Convert.java index 121c8ad6..8015d069 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomToEBomV2Convert.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomToEBomV2Convert.java @@ -335,25 +335,25 @@ public class OriginalBomToEBomV2Convert extends BaseConvert { } - protected BomNewEbomChildEntity buildCommonEbomChildEntity(BaseMaterialVO material, BomOriginalListVO parent) { + protected BomNewEbomChildEntity buildCommonEbomChildEntity(BaseMaterialVO material, BomOriginalListVO parentV) { BomNewEbomChildEntity childEntity = new BomNewEbomChildEntity(); - childEntity.setParentRowId(parent.getEBomRowId() > 0 ? parent.getEBomRowId() : parent.getRowId()); + childEntity.setParentRowId(parentV.getEBomRowId() > 0 ? parentV.getEBomRowId() : parentV.getRowId()); childEntity.setOrderNumber("001"); - childEntity.setIdentityNo(StrUtil.join("-", parent.getMaterialNo(), material.getMaterialNo())); + childEntity.setIdentityNo(StrUtil.join("-", parentV.getMaterialNo(), material.getMaterialNo())); //图号=物料编码 childEntity.setDrawingNo(material.getMaterialNo()); childEntity.setMaterialNo(material.getMaterialNo()); childEntity.setMaterialName(material.getMaterialName()); childEntity.setMaterialDesc(material.getMaterialDesc()); childEntity.setMaterialTexture(material.getMaterial()); - childEntity.setUnitWeight(parent.getUnitWeight()); - childEntity.setNum(parent.getUnitWeight()); + childEntity.setUnitWeight(parentV.getUnitWeight()); + childEntity.setNum(parentV.getUnitWeight()); childEntity.setCreatedBy(SessionUtil.getUserCode()); childEntity.setMaterialUnit("KG"); childEntity.setProjectType("L"); childEntity.setMaterialOriginalUnit(material.getMaterialUnit()); - childEntity.setSourceRowId(parent.getRowId().toString()); - parent.setBomExist(1); + childEntity.setSourceRowId(parentV.getRowId().toString()); + parentV.setBomExist(1); // this.eBomChildResult.add(childEntity); return childEntity; From bfdeca90f8c49dfff07a4cce93e1cb84a65e6422 Mon Sep 17 00:00:00 2001 From: luoliming Date: Mon, 1 Jul 2024 23:06:05 +0800 Subject: [PATCH 05/13] =?UTF-8?q?ebom-=E6=9D=A5=E6=BA=90=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nflg/product/bomnew/service/domain/EBom/EBomToPbomBase.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/EBomToPbomBase.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPbomBase.java index 1308297d..9d95a350 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPbomBase.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPbomBase.java @@ -135,7 +135,7 @@ public abstract class EBomToPbomBase { List result = child.stream().filter(u -> StrUtil.isBlank(u.getMaterialNo())).collect(Collectors.toList()); - Map> listMp = child.stream().collect(Collectors.groupingBy(BomNewEbomParentVO::getMaterialNo)); + Map> listMp = child.stream().filter(u->StrUtil.isNotBlank(u.getMaterialNo())).collect(Collectors.groupingBy(BomNewEbomParentVO::getMaterialNo)); for (String key : listMp.keySet()) { List voList = listMp.get(key); From 453d5042192bbe84d668363b80e1463087825d6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Tue, 2 Jul 2024 08:05:52 +0800 Subject: [PATCH 06/13] =?UTF-8?q?fix:=20=E6=B7=BB=E5=8A=A0=E7=9B=B4?= =?UTF-8?q?=E5=8F=91=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nflg/product/bomnew/service/BomNewPbomExportToSAPImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomExportToSAPImpl.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomExportToSAPImpl.java index 9367f655..f969ecc8 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomExportToSAPImpl.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomExportToSAPImpl.java @@ -233,7 +233,8 @@ public class BomNewPbomExportToSAPImpl implements IBomNewPbomExportToSAP { LOGGER.debug("{} 物料提层到顶级发货包且合并 编号:{},父级编号:{},数量:{},合并后总数:{},描述:{}", TAG, it.getMaterialNo(), p.getMaterialNo(), it.getNum().toString(), cct.getMENGE(), it.getMaterialDesc()); } } - } else if (!Objects.equals(it.getVirtualPartType(), VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getValue())) { + // } else if (!Objects.equals(it.getVirtualPartType(), VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getValue())) { + } else { LOGGER.debug("{} 添加物料 编号:{},父级编号:{},数量:{},描述:{}", TAG, it.getMaterialNo(), p.getMaterialNo(), it.getNum().toString(), it.getMaterialDesc()); children.add(convert(cp, it, p.getMaterialNo(), ignore)); } From ab5a23afbdeaa53a4736d5a7b88e0b19bf6364cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Tue, 2 Jul 2024 10:47:55 +0800 Subject: [PATCH 07/13] =?UTF-8?q?optimize(ebom):=20=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E6=A3=80=E6=9F=A5=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../product/bomnew/service/domain/EBom/CheckEBomException.java | 1 + 1 file changed, 1 insertion(+) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/CheckEBomException.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/CheckEBomException.java index 3ca44176..783bc9ca 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/CheckEBomException.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/CheckEBomException.java @@ -199,6 +199,7 @@ public class CheckEBomException { if (CollUtil.isNotEmpty(child) && child.stream() .allMatch(c -> StrUtil.equals(c.getProjectType(), ProjectTypeInputTypeEnum.ProjectTypeEnum.TYPE_F.getValue()))) { parent.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_17.getValue()); + child.forEach(c -> c.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_17.getValue())); } } } From f2ca749534189c908f43846dc678a66f4a9f5f92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Tue, 2 Jul 2024 11:19:35 +0800 Subject: [PATCH 08/13] =?UTF-8?q?optimize(ebom):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../product/bomnew/service/BomNewEbomParentService.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) 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 bf90da16..0293e6c9 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 @@ -2866,14 +2866,13 @@ public class BomNewEbomParentService extends ServiceImpl { CheckBomProjectTypeVO vo = new CheckBomProjectTypeVO(); vo.setBomRowId(bomRowId); - if (CollUtil.isEmpty(children)) { + List cc = children.stream().filter(c -> c.getParentRowId().equals(bomRowId)).collect(Collectors.toList()); + if (CollUtil.isEmpty(cc)) { vo.setExistsQ(false); vo.setAllIsF(false); } else { - vo.setExistsQ(children.stream().anyMatch(c -> c.getParentRowId().equals(bomRowId) - && StrUtil.equals(c.getProjectType(), ProjectTypeInputTypeEnum.ProjectTypeEnum.TYPE_Q.getValue()))); - vo.setAllIsF(children.stream().allMatch(c -> c.getParentRowId().equals(bomRowId) - && StrUtil.equals(c.getProjectType(), ProjectTypeInputTypeEnum.ProjectTypeEnum.TYPE_F.getValue()))); + vo.setExistsQ(cc.stream().anyMatch(c -> StrUtil.equals(c.getProjectType(), ProjectTypeInputTypeEnum.ProjectTypeEnum.TYPE_Q.getValue()))); + vo.setAllIsF(cc.stream().allMatch(c -> StrUtil.equals(c.getProjectType(), ProjectTypeInputTypeEnum.ProjectTypeEnum.TYPE_F.getValue()))); } return vo; }).collect(Collectors.toList()); From 71c4568661aa6c03877b41e9ad9483317f3a5dc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Tue, 2 Jul 2024 14:45:26 +0800 Subject: [PATCH 09/13] =?UTF-8?q?1=E3=80=81=E4=B8=80=E8=88=AC=E9=9B=B6?= =?UTF-8?q?=E9=83=A8=E4=BB=B6-=E4=B8=8B=E6=8C=82=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OriginalBom/OriginalBomToEBomV2Convert.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomToEBomV2Convert.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomToEBomV2Convert.java index 8015d069..70794949 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomToEBomV2Convert.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomToEBomV2Convert.java @@ -246,11 +246,19 @@ public class OriginalBomToEBomV2Convert extends BaseConvert { List oldParenChild = SpringUtil.getBean(BomNewEbomChildMapper.class).getChildByMaterialNo(parentEntity.getMaterialNo()); //不存在EBom 时 if (Objects.isNull(oldEBom)) { - buildCommonMaterialChildBom(childVo, materialBaseInfo, VersionUtil.getNextVersion("")); + buildCommonMaterialChildBom(childVo, materialBaseInfo, VersionUtil.getNextVersion("")); } else { if (!EBomStatusEnum.PUBLISHED.equalsValue(oldEBom.getStatus())) { - BomNewEbomChildEntity newChild = buildCommonEbomChildEntity(materialBaseInfo, parentEntity); + List oldChild = ebomChildService.lambdaQuery().eq(BomNewEbomChildEntity::getParentRowId, oldEBom.getRowId()).list(); + if(CollUtil.isNotEmpty(oldChild)){ + List oldChildEntityList = oldChild.stream().filter(u->u.getMaterialNo().equals(materialBaseInfo.getMaterialNo())).collect(Collectors.toList()); + BomNewEbomChildEntity oldChildEntity=CollUtil.isNotEmpty(oldChildEntityList)?oldChildEntityList.get(0):null; + if( Objects.nonNull(oldChildEntity) && Objects.nonNull(oldChildEntity.getNum()) && oldChildEntity.getNum().compareTo(childVo.getUnitWeight())>0){ + continue; + } + } + BomNewEbomChildEntity newChild = buildCommonEbomChildEntity(materialBaseInfo, childVo); //结构是否相同 且为同一个人 if ( oldEBom.getCreatedBy().equals(parentEntity.getCreatedBy())) { ebomParentService.getBaseMapper().deleteById(oldEBom.getRowId()); From bb9c98c209a588b6c54c94d23450cf86e1794c3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Tue, 2 Jul 2024 15:01:37 +0800 Subject: [PATCH 10/13] =?UTF-8?q?fix:=20=E8=B0=83=E6=95=B4=E5=8F=91?= =?UTF-8?q?=E8=B5=B7=E5=8F=98=E6=9B=B4=E5=90=8E=E7=9A=84=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bomnew/constant/EBomSourceEnum.java | 3 ++- .../service/BomNewEbomParentService.java | 26 +++++++++++++++++++ .../service/domain/PBom/PBomUpgrade.java | 26 +++++++++++++++---- 3 files changed, 49 insertions(+), 6 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/EBomSourceEnum.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/EBomSourceEnum.java index f85040c7..a74f62fd 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/EBomSourceEnum.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/EBomSourceEnum.java @@ -12,7 +12,8 @@ public enum EBomSourceEnum implements ValueEnum { FROM_BOM(1, "原始BOM转换"), FROM_EXCE(2, "EXCE导入"), FROM_MDM(3, "MDM创建"), - FROM_SAP(4, "从SAP导入"); + FROM_SAP(4, "从SAP导入"), + FROM_CHANGE(5, "变更"); private final Integer value; private final String description; 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 0293e6c9..74b42033 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 @@ -1215,10 +1215,29 @@ public class BomNewEbomParentService extends ServiceImpl Date: Tue, 2 Jul 2024 15:51:55 +0800 Subject: [PATCH 11/13] =?UTF-8?q?1=E3=80=81=E4=B8=80=E8=88=AC=E9=9B=B6?= =?UTF-8?q?=E9=83=A8=E4=BB=B6-=E4=B8=8B=E6=8C=82=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/domain/OriginalBom/OriginalBomToEBomV2Convert.java | 1 + 1 file changed, 1 insertion(+) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomToEBomV2Convert.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomToEBomV2Convert.java index 70794949..1e4dd589 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomToEBomV2Convert.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomToEBomV2Convert.java @@ -255,6 +255,7 @@ public class OriginalBomToEBomV2Convert extends BaseConvert { List oldChildEntityList = oldChild.stream().filter(u->u.getMaterialNo().equals(materialBaseInfo.getMaterialNo())).collect(Collectors.toList()); BomNewEbomChildEntity oldChildEntity=CollUtil.isNotEmpty(oldChildEntityList)?oldChildEntityList.get(0):null; if( Objects.nonNull(oldChildEntity) && Objects.nonNull(oldChildEntity.getNum()) && oldChildEntity.getNum().compareTo(childVo.getUnitWeight())>0){ + buildEBomChild(childVo, parentEntity); continue; } } From 317c64019b4440f684fa63acacf2e614add58a2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Tue, 2 Jul 2024 17:31:31 +0800 Subject: [PATCH 12/13] =?UTF-8?q?optimize:=20=E8=B0=83=E6=95=B4=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E8=BE=93=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/logback-sit.xml | 5 +++- .../core/config/fillter/HttpInterceptor.java | 24 +++++++------------ 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/logback-sit.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/logback-sit.xml index 1dad47bf..d7a2ea41 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/logback-sit.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/logback-sit.xml @@ -35,8 +35,11 @@ - + + + + diff --git a/nflg_project_dev/nflg-boot-base/nflg-boot-core/src/main/java/com/nflg/product/base/core/config/fillter/HttpInterceptor.java b/nflg_project_dev/nflg-boot-base/nflg-boot-core/src/main/java/com/nflg/product/base/core/config/fillter/HttpInterceptor.java index 3eb0497d..ae6b8c28 100644 --- a/nflg_project_dev/nflg-boot-base/nflg-boot-core/src/main/java/com/nflg/product/base/core/config/fillter/HttpInterceptor.java +++ b/nflg_project_dev/nflg-boot-base/nflg-boot-core/src/main/java/com/nflg/product/base/core/config/fillter/HttpInterceptor.java @@ -20,39 +20,33 @@ import java.nio.charset.StandardCharsets; public class HttpInterceptor implements HandlerInterceptor { private static final String CHARSET = StandardCharsets.UTF_8.name(); - private static final ThreadLocal currentAuthorization = new ThreadLocal<>(); + private static final String TRACEID = "traceId"; + private static final ThreadLocal AUTHORIZATION = new ThreadLocal<>(); @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { response.setCharacterEncoding(CHARSET); String traceId = IdWorker.getIdStr(); - MDC.put("traceId", traceId); - // String body="内容无法显示(" + request.getContentType() + ")"; - // if (request.getMethod().equalsIgnoreCase("post") && request.getContentType().contains("json") && request.getContentLength()>0){ - // InputStream inputStream = request.getInputStream(); - // BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8)); - // char[] chars = new char[request.getContentLength()]; - // reader.read(chars, 0, chars.length); - // body = String.valueOf(chars); - // } - log.info("HttpRecord Request,url:" + request.getRequestURL() + ",method:" + request.getMethod()); - currentAuthorization.set(request.getHeader("Authorization")); + MDC.put(TRACEID, traceId); + log.info("HttpRecord Request,url: " + request.getRequestURL() + " ,method: " + request.getMethod()); + AUTHORIZATION.set(request.getHeader("Authorization")); return true; } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { HandlerInterceptor.super.afterCompletion(request, response, handler, ex); - log.info("HttpRecord Response,url:" + request.getRequestURL() + ",status:" + response.getStatus()); + log.info("HttpRecord Response,url: " + request.getRequestURL() + " ,status: " + response.getStatus()); + MDC.remove(TRACEID); removeAuthorization(); } private void removeAuthorization() { log.trace("已清除当前线程的Authorization"); - currentAuthorization.remove(); + AUTHORIZATION.remove(); } public static String getAuthorization() { - return currentAuthorization.get(); + return AUTHORIZATION.get(); } } From e54ea2c275a93a577bf130da1f026cda49065ddf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Tue, 2 Jul 2024 18:02:24 +0800 Subject: [PATCH 13/13] =?UTF-8?q?optimize:=20=E8=B0=83=E6=95=B4=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E8=BE=93=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../advice/LoggingRequestBodyAdvice.java | 12 ---------- .../core/config/fillter/HttpInterceptor.java | 23 +++++++++++++++++++ 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/advice/LoggingRequestBodyAdvice.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/advice/LoggingRequestBodyAdvice.java index 62254e4a..ec59b929 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/advice/LoggingRequestBodyAdvice.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/advice/LoggingRequestBodyAdvice.java @@ -1,11 +1,7 @@ package com.nflg.product.bomnew.advice; import cn.hutool.core.util.StrUtil; -import com.nflg.product.bomnew.util.JsonUtil; import lombok.extern.slf4j.Slf4j; -import nflg.product.common.constant.STATE; -import nflg.product.common.util.JwtUtil; -import nflg.product.common.vo.ResultVO; import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.core.MethodParameter; @@ -49,14 +45,6 @@ public class LoggingRequestBodyAdvice implements RequestBodyAdvice { bodyContent = reader.lines().collect(Collectors.joining()); log.info("请求参数: {}", bodyContent); } - log.info("请求头: {}", JsonUtil.toJson(httpInputMessage.getHeaders())); - String token = httpInputMessage.getHeaders().getFirst("Authorization"); - if (StrUtil.isNotBlank(token)) { - ResultVO result = JwtUtil.parse(token); - if (result.getState().equals(STATE.Success.getState())) { - log.info("请求用户: {}", JsonUtil.toJson(result.getData())); - } - } if (StrUtil.isBlank(bodyContent)) { return httpInputMessage; } else { diff --git a/nflg_project_dev/nflg-boot-base/nflg-boot-core/src/main/java/com/nflg/product/base/core/config/fillter/HttpInterceptor.java b/nflg_project_dev/nflg-boot-base/nflg-boot-core/src/main/java/com/nflg/product/base/core/config/fillter/HttpInterceptor.java index ae6b8c28..c0859663 100644 --- a/nflg_project_dev/nflg-boot-base/nflg-boot-core/src/main/java/com/nflg/product/base/core/config/fillter/HttpInterceptor.java +++ b/nflg_project_dev/nflg-boot-base/nflg-boot-core/src/main/java/com/nflg/product/base/core/config/fillter/HttpInterceptor.java @@ -1,7 +1,12 @@ package com.nflg.product.base.core.config.fillter; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import lombok.extern.slf4j.Slf4j; +import nflg.product.common.constant.STATE; +import nflg.product.common.util.JwtUtil; +import nflg.product.common.vo.ResultVO; import org.slf4j.MDC; import org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerInterceptor; @@ -9,6 +14,7 @@ import org.springframework.web.servlet.HandlerInterceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.nio.charset.StandardCharsets; +import java.util.Enumeration; /** * 请求拦截器 @@ -29,6 +35,23 @@ public class HttpInterceptor implements HandlerInterceptor { String traceId = IdWorker.getIdStr(); MDC.put(TRACEID, traceId); log.info("HttpRecord Request,url: " + request.getRequestURL() + " ,method: " + request.getMethod()); + + StringBuilder sb = new StringBuilder("请求头: "); + Enumeration headerNames = request.getHeaderNames(); + while (headerNames.hasMoreElements()) { + String headerName = headerNames.nextElement(); + sb.append(StrUtil.format("{}={},", headerName, request.getHeader(headerName))); + } + log.info(sb.substring(0, sb.length() - 1)); + + String token = request.getHeader("Authorization"); + if (StrUtil.isNotBlank(token)) { + ResultVO result = JwtUtil.parse(token); + if (result.getState().equals(STATE.Success.getState())) { + log.info("请求用户: {}", JSON.toJSONString(result.getData())); + } + } + AUTHORIZATION.set(request.getHeader("Authorization")); return true; }