From 31ca386f056e62219701e2ac57c90f2c3f67c3cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Sun, 26 May 2024 14:42:53 +0800 Subject: [PATCH] =?UTF-8?q?fix(ebom):=20=E4=B8=80=E4=BA=9B=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../product/bomnew/api/user/EbomV2Api.java | 3 +-- .../mapper/master/BomNewEbomParentMapper.java | 2 ++ .../service/BomNewEbomParentService.java | 15 +++++------ .../bomnew/service/EBomImportService.java | 25 +++++++++++++------ .../mapper/master/BomNewEbomParentMapper.xml | 11 ++++++++ 5 files changed, 38 insertions(+), 18 deletions(-) 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 bcd6c511..35f295d6 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 @@ -102,10 +102,9 @@ public class EbomV2Api extends BaseApi { LogRecordContext.putVariable("fileNme", file.getOriginalFilename()); List result = eBomImportService.importBom(file); - ebomChildService.getBaseMapper().updateEBomMaterialUse(); + ebomChildService.updateEBomMaterialUse(); //这个方法有问题 // ebomParentService.compucteLevelNum(); - ebomParentService.resetAllBomExist(); return ResultVO.success(result); } 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 8992d0a3..5f3ec803 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 @@ -102,4 +102,6 @@ public interface BomNewEbomParentMapper extends BaseMapper parentRowIds); void delEBomHistory(@Param("parentRowIds") List parentRowIds); + + List getLatestByMaterialNo(Collection materialNos); } 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 f1568cf2..c420a4bb 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 @@ -27,11 +27,7 @@ import com.nflg.product.bomnew.pojo.dto.*; import com.nflg.product.bomnew.pojo.dto.sap.impart2.ImportSapParamDTO; import com.nflg.product.bomnew.pojo.dto.sap.impart2.T1DTO; import com.nflg.product.bomnew.pojo.entity.*; -import com.nflg.product.bomnew.pojo.query.BomExceptionQuery; -import com.nflg.product.bomnew.pojo.query.BomNewEbomMaterialQuery; -import com.nflg.product.bomnew.pojo.query.BomNewEbomParentQuery; -import com.nflg.product.bomnew.pojo.query.QueryMaterialsQuery; -import com.nflg.product.bomnew.pojo.query.GenerateVirtualPackageQuery; +import com.nflg.product.bomnew.pojo.query.*; import com.nflg.product.bomnew.pojo.vo.*; import com.nflg.product.bomnew.service.domain.EBom.*; import com.nflg.product.bomnew.util.*; @@ -2394,10 +2390,11 @@ public class BomNewEbomParentService extends ServiceImpl getLatestByMaterialNo(Collection materialNos) { - return this.lambdaQuery() - .in(BomNewEbomParentEntity::getMaterialNo, materialNos) - .eq(BomNewEbomParentEntity::getLastVersionIs, 1) - .list(); + // return this.lambdaQuery() + // .in(BomNewEbomParentEntity::getMaterialNo, materialNos) + // .eq(BomNewEbomParentEntity::getLastVersionIs, 1) + // .list(); + return this.getBaseMapper().getLatestByMaterialNo(materialNos); } public void setLastVersionIs0(Set pMaterialNos) { diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/EBomImportService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/EBomImportService.java index e134dddf..d1a924b8 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/EBomImportService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/EBomImportService.java @@ -1,7 +1,6 @@ package com.nflg.product.bomnew.service; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; @@ -79,8 +78,7 @@ public class EBomImportService { bomNewEbomParentService.resetAllBomExist(); - bomNewEbomParentService.batchCheckAndSaveEBomException(pcs.getLeft().stream() - .filter(p -> p.getRootIs() == 1) + bomNewEbomParentService.batchCheckAndSaveEBomException(importRoots.stream() .map(BomNewEbomParentEntity::getRowId) .collect(Collectors.toList()) ); @@ -99,6 +97,13 @@ public class EBomImportService { if (!Objects.equals(p.getStatus(), EBomStatusEnum.PUBLISHED.getValue())) { bomNewEbomParentService.getBaseMapper().deleteById(p.getRowId()); bomNewEbomChildService.deleteAllChildren(p.getRowId()); + parents.stream().filter(it -> StrUtil.equals(it.getMaterialNo(), p.getMaterialNo())).forEach(it -> { + it.setCurrentVersion(p.getCurrentVersion()); + }); + } else { + parents.stream().filter(it -> StrUtil.equals(it.getMaterialNo(), p.getMaterialNo())).forEach(it -> { + it.setCurrentVersion(VersionUtil.getNextVersion(p.getCurrentVersion())); + }); } }); bomNewEbomParentService.setLastVersionIs0(pMaterialNos); @@ -123,7 +128,7 @@ public class EBomImportService { return isSame; } isSame = Objects.equals(parent.getMaterialUnit(), oldParent.getMaterialUnit()) - && NumberUtil.equals(parent.getNum(), oldParent.getNum()) + && isEquals(parent.getNum(), oldParent.getNum()) && Objects.equals(parent.getMaterialTexture(), oldParent.getMaterialTexture()); if (isSame) { @@ -173,7 +178,7 @@ public class EBomImportService { } } isSame = Objects.equals(child.getMaterialUnit(), oldChild.getMaterialUnit()) - && NumberUtil.equals(child.getNum(), oldChild.getNum()) + && isEquals(child.getNum(), oldChild.getNum()) && Objects.equals(child.getMaterialTexture(), oldChild.getMaterialTexture()); if (isSame) { @@ -373,7 +378,7 @@ public class EBomImportService { BomNewEbomParentEntity parent = new BomNewEbomParentEntity(); parent.setRowId(IdWorker.getId()); - parent.setCurrentVersion(OriginalConstant.DEFAULT_BOM_VERSION); + //parent.setCurrentVersion(OriginalConstant.DEFAULT_BOM_VERSION); parent.setMaterialNo(data.getParentMaterialNo()); parent.setMaterialDesc(data.getParentMaterialDesc()); BaseMaterialVO vo = materialBaseInfos.stream() @@ -453,7 +458,7 @@ public class EBomImportService { //parent.setUnitWeight(BigDecimal.ZERO); parent.setNum(BigDecimal.ONE); //parent.setTotalWeight(BomUtil.calculateTotalWeight(data.getNum(), data.getUnitWeight())); - parent.setCurrentVersion(OriginalConstant.DEFAULT_BOM_VERSION); + //parent.setCurrentVersion(OriginalConstant.DEFAULT_BOM_VERSION); // List cps = bomNewEbomChildService.lambdaQuery().eq(BomNewEbomChildEntity::getMaterialNo, materialNo) // .list() // .stream() @@ -512,4 +517,10 @@ public class EBomImportService { child.setVirtualPartType(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue()); } } + + private boolean isEquals(BigDecimal a, BigDecimal b) { + if (a == null && b == null) return true; + if (a == null || b == null) return false; + return a.compareTo(b) == 0; + } } 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 e1b8df8c..d0a29353 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 @@ -484,6 +484,17 @@ WHERE a.row_id = #{parentRowId} + + INSERT INTO `t_bom_new_ebom_parent_formal` (`row_id`, `batch_no`, `drawing_no`, `material_no`, `order_number`, `material_name`, `material_desc`, `material_texture`, `material_unit`, `material_original_unit`, `unit_weight`, `total_weight`, `current_version`, `num`, `source`, `root_is`, `should_bom_exist`, `super_material_status`, `bom_exist`, `last_version_is`, `edit_status`, `status`, `user_root_is`, `virtrual_package_enum`, `exception_status`, `virtual_package_is`, `source_row_id`, `devise_user_code`, `devise_name`, `created_by`, `created_time`, `created_job`, `audit_time`, `audit_user_name`, `release_time`, `release_user_name`, `revert_time`, `revert_user_name`, `expire_end_time`, `convert_to_ebom_time`, `remark`, `dept_name`, `level_num`, `change_desc`, `notice_nums`, `modify_time`, `sap_state`, `sap_time`) select `row_id`, `batch_no`, `drawing_no`, `material_no`, `order_number`, `material_name`, `material_desc`, `material_texture`, `material_unit`, `material_original_unit`, `unit_weight`, `total_weight`, `current_version`, `num`, `source`, `root_is`, `should_bom_exist`, `super_material_status`, `bom_exist`, `last_version_is`, `edit_status`, `status`, `user_root_is`, `virtrual_package_enum`, `exception_status`, `virtual_package_is`, `source_row_id`, `devise_user_code`, `devise_name`, `created_by`, `created_time`, `created_job`, `audit_time`, `audit_user_name`, `release_time`, `release_user_name`, `revert_time`, `revert_user_name`, `expire_end_time`, `convert_to_ebom_time`, `remark`, `dept_name`, `level_num`, `change_desc`, `notice_nums`, `modify_time`, `sap_state`, `sap_time` t_bom_new_ebom_parent