diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java index e91e1583..aeeb8401 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java @@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.google.common.collect.ImmutableList; import com.nflg.product.base.core.api.BaseApi; import com.nflg.product.base.core.exception.NflgBusinessException; import com.nflg.product.bomnew.constant.ReportConstant; @@ -52,11 +53,7 @@ public class BomReportApi extends BaseApi { @ApiOperation("bom-反查") public ResultVO> reverseReport(@Valid @RequestBody ReverseReportQuery query) { - //原始BOM - if (query.getBomType().equals(0)) { - VUtils.isTure(StrUtil.isBlank(query.getDrawingNo())).throwMessage("图号不能为空"); - return ResultVO.success(reverseReportService.queryOriginalBom(query)); - } + VUtils.isTure(!ImmutableList.of(1,2).contains(query.getBomType())).throwMessage("只能查询EBom和PBom"); VUtils.isTure(StrUtil.isBlank(query.getMaterialNo())).throwMessage("物料编码不能为空"); if(query.getBomType().equals(1)){ return ResultVO.success(reverseReportService.queryEBom(query)); 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 65c9edc1..801174e9 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 @@ -68,7 +68,7 @@ public interface BomNewEbomParentMapper extends BaseMapper eBomReverseReport(@Param("bomVersionRowId")Long bomVersionRowId,@Param("startDate") String startDate, @Param("endDate")String endDate, @Param("materialNos")List materialNos); + List eBomReverseReport(@Param("bomVersionRowId")Long bomVersionRowId,@Param("startDate") String startDate, @Param("endDate")String endDate, @Param("materialNo")String materialNo); Integer getCountForWaitReviewByMaterialNo(@Param("materialNo") String materialNo); void updateRootForWaitReview(); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomExportToSAP.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomExportToSAP.java index be35485a..630f4bd3 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomExportToSAP.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomExportToSAP.java @@ -45,7 +45,8 @@ public class BomNewEbomExportToSAP { public List export(Long rootBomRowId) { BomNewEbomParentEntity root = bomNewEbomParentService.getById(rootBomRowId); - VUtils.isTure(Objects.isNull(root)).throwMessage("数据不存在"); + // VUtils.isTure(Objects.isNull(root)).throwMessage("数据不存在"); + if (Objects.isNull(root)) return Collections.emptyList(); VUtils.isTure(root.getUserRootIs() != 1).throwMessage("请选择根节点"); VUtils.isTure(Objects.equals(root.getSapState(), SapStatusEnum.PUB_RUNNING.getValue())) .throwMessage("正在导入中,请等待操作完成"); 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 ff051b22..7b6ec54f 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 @@ -14,6 +14,7 @@ import com.nflg.product.bomnew.pojo.dto.AddVirtrualMaterialDTO; import com.nflg.product.bomnew.pojo.dto.MaterialUpdateBillDTO; import com.nflg.product.bomnew.pojo.entity.BomNewEbomChildEntity; import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentEntity; +import com.nflg.product.bomnew.pojo.entity.MaterialMainEntity; import com.nflg.product.bomnew.pojo.query.GenerateVirtualPackageItem; import com.nflg.product.bomnew.pojo.query.GenerateVirtualPackageQuery; import com.nflg.product.bomnew.pojo.vo.ChildListForGenerateVirtualPackageVO; @@ -48,6 +49,7 @@ public class BomNewEbomGenerateVirtualPackageServiceFor31Impl implements IBomNew private final BomNewEbomChildService ebomChildService = SpringUtil.getBean(BomNewEbomChildService.class); private final MaterialMainClient materialMainClient = SpringUtil.getBean(MaterialMainClient.class); private final MaterialService materialService = SpringUtil.getBean(MaterialService.class); + private final MaterialMainService materialMainService = SpringUtil.getBean(MaterialMainService.class); private final PlatformTransactionManager transactionManager = SpringUtil.getBean(PlatformTransactionManager.class); private final List childrenForAdd = Collections.synchronizedList(new ArrayList<>()); @@ -535,12 +537,12 @@ public class BomNewEbomGenerateVirtualPackageServiceFor31Impl implements IBomNew child.setMaterialName(child.getDrawingNo()); child.setMaterialCategoryCode(type.getMaterialCategoryCode()); child.setVirtualPartRootMaterialNo(root.getMaterialNo()); - BomNewEbomParentEntity p = ebomParentService.lambdaQuery() - .eq(BomNewEbomParentEntity::getDrawingNo, drawingNo) - .lt(BomNewEbomParentEntity::getStatus, EBomStatusEnum.PUBLISHED.getValue()) + MaterialMainEntity me = materialMainService.lambdaQuery() + .eq(MaterialMainEntity::getDrawingNo, drawingNo) + .last(" limit 1") .one(); - if (Objects.nonNull(p)) { - child.setMaterialNo(p.getMaterialNo()); + if (Objects.nonNull(me)) { + child.setMaterialNo(me.getMaterialNo()); } else { child.setMaterialNo(getMaterialNoForAdd(child)); } 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 251e5523..4c5c4324 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 @@ -2526,8 +2526,8 @@ public class BomNewEbomParentService extends ServiceImpl pMaterialNos) { - this.lambdaUpdate().in(BomNewEbomParentEntity::getMaterialNo, pMaterialNos) + public void setLastVersionIs0(Collection rowIds) { + this.lambdaUpdate().in(BomNewEbomParentEntity::getRowId, rowIds) .set(BomNewEbomParentEntity::getLastVersionIs, 0) .set(BomNewEbomParentEntity::getModifyTime, LocalDateTime.now()) .update(); @@ -2643,7 +2643,11 @@ public class BomNewEbomParentService extends ServiceImpl exceptRowIds, List parents){ + List materialNos = parents.stream().map(u -> u.getMaterialNo()).collect(Collectors.toList()); + if(CollUtil.isEmpty(materialNos)){ + return; + } List toParents = this.lambdaQuery().eq(BomNewEbomParentEntity::getStatus, EBomStatusEnum.PUBLISHED.getValue()).notIn(BomNewEbomParentEntity::getRowId, exceptRowIds) .in(BomNewEbomParentEntity::getMaterialNo, materialNos).select(BomNewEbomParentEntity::getRowId).list(); if(CollUtil.isNotEmpty(toParents)) { diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java index f1ee027f..32dda3a1 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java @@ -1237,10 +1237,9 @@ public class BomNewPbomParentService extends ServiceImpl oldPBomRowIds = toParents.stream().map(u -> u.getRowId()).collect(Collectors.toList()); List toFormalPBomRowIds = new ArrayList<>(); - toFormalPBomRowIds.addAll(exceptRowIds); - toFormalPBomRowIds.addAll(oldPBomRowIds); - this.getBaseMapper().insertPBomParentToFormal(toFormalPBomRowIds); - this.getBaseMapper().insertPBomChildToFormal(toFormalPBomRowIds); + + this.getBaseMapper().insertPBomParentToFormal(exceptRowIds); + this.getBaseMapper().insertPBomChildToFormal(exceptRowIds); //转移后删除 this.getBaseMapper().delPBom(oldPBomRowIds); 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 326134db..35e140b8 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 @@ -102,22 +102,22 @@ public class EBomImportService { private void save(List parents, List children) { Set pMaterialNos = parents.stream().map(BomNewEbomParentEntity::getMaterialNo).collect(Collectors.toSet()); List oldParents = bomNewEbomParentService.getLatestByMaterialNo(pMaterialNos); - oldParents.forEach(p -> { - 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()); - }); - p.setLastVersionIs(0); - } else { - parents.stream().filter(it -> StrUtil.equals(it.getMaterialNo(), p.getMaterialNo())).forEach(it -> { - it.setCurrentVersion(VersionUtil.getNextVersionForSmallVersion(p.getCurrentVersion())); - }); - } - }); - //bomNewEbomParentService.setLastVersionIs0(oldParents.stream().map(BomNewEbomParentEntity::getMaterialNo).collect(Collectors.toSet())); - bomNewEbomParentService.updateBatchById(oldParents.stream().filter(f -> f.getLastVersionIs() == 0).collect(Collectors.toList())); + if (CollUtil.isNotEmpty(oldParents)) { + oldParents.forEach(p -> { + 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.getNextVersionForSmallVersion(p.getCurrentVersion())); + }); + } + }); + bomNewEbomParentService.setLastVersionIs0(oldParents.stream().map(BomNewEbomParentEntity::getRowId).collect(Collectors.toList())); + } bomNewEbomParentService.saveBatch(parents); bomNewEbomChildService.saveBatch(children); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomDetailTask.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomDetailTask.java index eb7e7b0b..cc921574 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomDetailTask.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomDetailTask.java @@ -68,6 +68,7 @@ public class EBomDetailTask extends RecursiveTask> { detailVO.setBomExist(ebomParentEntity.getBomExist()); detailVO.setStatus(ebomParentEntity.getStatus()); detailVO.setBatchNo(ebomParentEntity.getBatchNo()); + detailVO.setCreatedBy(ebomParentEntity.getCreatedBy()); } } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomFormalDetailTask.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomFormalDetailTask.java index bfcb74a2..705137d2 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomFormalDetailTask.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomFormalDetailTask.java @@ -76,6 +76,7 @@ public class EBomFormalDetailTask extends RecursiveTask detailVO.setBomExist(ebomParentEntity.getBomExist()); detailVO.setStatus(ebomParentEntity.getStatus()); detailVO.setBatchNo(ebomParentEntity.getBatchNo()); + detailVO.setCreatedBy(ebomParentEntity.getCreatedBy()); } } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPBomForFormal31.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPBomForFormal31.java index 82aa6a92..6a3a89fa 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPBomForFormal31.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPBomForFormal31.java @@ -80,8 +80,8 @@ public class EBomToPBomForFormal31 extends EBomToPbomBase { check(); //bom 提层 liftingLayer(); - result.forEach(u->u.setLevelNo("")); - generateDrawingNo(result, parent.getRowId(), "1"); +// result.forEach(u->u.setLevelNo("")); +// generateDrawingNo(result, parent.getRowId(), "1"); splitData(); List hasConvert = new ArrayList<>(); 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 a2a53f8e..710c1521 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 @@ -167,8 +167,8 @@ public abstract class EBomToPbomBase { } //pbom 处于工作表 else if (Objects.nonNull(oldParent) && oldParent.getStatus() < EBomStatusEnum.PUBLISHED.getValue()) { - if (oldParent.getCreatedBy() == parentVo.getCreatedBy()) { - if (ConvertToPBomModelEnum.OVERRIDE.equals(convertMode.getValue())) { + if (oldParent.getCreatedBy().equals( parentVo.getCreatedBy())) { + if (ConvertToPBomModelEnum.OVERRIDE.equalsValue(convertMode.getValue())) { SpringUtil.getBean(BomNewPbomChildService.class).getBaseMapper().deleteByMap(ImmutableMap.of("parent_row_id", oldParent.getRowId())); oldParent.setCurrentVersion(parentVo.getCurrentVersion()); oldParent.setSourceRowId(parentVo.getRowId()); @@ -212,6 +212,7 @@ public abstract class EBomToPbomBase { if (Objects.nonNull(oldParent)) { oldParent.setExpireEndTime(LocalDateTime.now()); oldParent.setLastVersionIs(0); + this.pBomParentResult.add(oldParent); } this.pBomParentResult.add(pBomParent); return pBomParent; diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/ReverseReport/EBomQueryService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/ReverseReport/EBomQueryService.java index 2d18fed7..205cd22b 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/ReverseReport/EBomQueryService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/ReverseReport/EBomQueryService.java @@ -54,13 +54,20 @@ public class EBomQueryService { */ public List singleLevelReport(ReverseReportQuery queryParam) { Long bomVersionRowId=0L; - if(StrUtil.isNotBlank(queryParam.getBomVersion())){ + //指定版本 + if(queryParam.getVersionStrategy().equals(2) && StrUtil.isNotBlank(queryParam.getBomVersion())){ BomNewEbomParentFormalEntity one = ebomParentFormalService.lambdaQuery().eq(BomNewEbomParentFormalEntity::getMaterialNo, queryParam.getMaterialNo()) .eq(BomNewEbomParentFormalEntity::getCurrentVersion, queryParam.getBomVersion()).one(); bomVersionRowId= Objects.nonNull(one)? one.getRowId():0L; + }//最新版本 + else if(queryParam.getVersionStrategy().equals(0)){ + BomNewEbomParentFormalEntity one = ebomParentFormalService.lambdaQuery().eq(BomNewEbomParentFormalEntity::getMaterialNo, queryParam.getMaterialNo()) + .last(" order by current_version desc limit 1").one(); + if(Objects.nonNull(one)){ + bomVersionRowId=one.getRowId(); + } } - - return ebomParentService.getBaseMapper().eBomReverseReport(bomVersionRowId,queryParam.getStartDate(),queryParam.getEndDate(), ImmutableList.of(queryParam.getMaterialNo())); + return ebomParentService.getBaseMapper().eBomReverseReport(bomVersionRowId,queryParam.getStartDate(),queryParam.getEndDate(), queryParam.getMaterialNo()); } 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 244d5f18..4295008a 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 @@ -356,10 +356,7 @@ and b.convert_to_ebom_time >= #{startDate} and b.expire_end_time <=#{endDate} - and a.material_no in - - #{materialNo} - + and a.material_no =#{materialNo}