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 89fb0c33..2e777592 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.convert.Convert; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; @@ -305,33 +304,26 @@ public class EBomImportService { parent = parents.stream().filter(p -> p.getMaterialNo().equals(data.getParentMaterialNo())) .findFirst() .orElse(null); - if (Objects.isNull(parent) && datas.stream().noneMatch(d -> d.getMaterialNo().equals(data.getParentMaterialNo()))) { - parents.add(buildRoot(materialBaseInfos, data.getParentMaterialNo(), data.getParentMaterialDesc())); - } - } - for (EbomExcelDTO data : datas) { - parent = parents.stream().filter(p -> p.getMaterialNo().equals(data.getMaterialNo())) - .findFirst() - .orElse(null); if (Objects.isNull(parent)) { - parents.add(buildParent(materialBaseInfos, data)); + if (datas.stream().noneMatch(d -> d.getMaterialNo().equals(data.getParentMaterialNo()))) { + parents.add(buildRoot(materialBaseInfos, data.getParentMaterialNo(), data.getParentMaterialDesc())); + } else { + parents.add(buildParent(materialBaseInfos, data)); + } } } for (EbomExcelDTO data : datas) { - parent = parents.stream().filter(p -> p.getMaterialNo().equals(data.getMaterialNo())) - .findFirst() - .get(); - buildChild(children, materialBaseInfos, parent, data + buildChild(children, materialBaseInfos, data , parents.stream().filter(p -> p.getMaterialNo().equals(data.getParentMaterialNo())).findFirst().get()); } return Pair.of(parents, children); } - private void buildChild(List children, List materialBaseInfos, BomNewEbomParentEntity parent, EbomExcelDTO data, BomNewEbomParentEntity p) { - BomNewEbomChildEntity child = Convert.convert(BomNewEbomChildEntity.class, parent); + private void buildChild(List children, List materialBaseInfos, EbomExcelDTO data, BomNewEbomParentEntity p) { + BomNewEbomChildEntity child = new BomNewEbomChildEntity(); child.setRowId(IdWorker.getId()); child.setParentRowId(p.getRowId()); - parent.setOrderNumber(""); + child.setMaterialNo(data.getMaterialNo()); List pcs = children.stream() .filter(c -> Objects.equals(c.getParentRowId(), p.getRowId())) .collect(Collectors.toList()); @@ -341,11 +333,19 @@ public class EBomImportService { String maxOrderNum = pcs.get(pcs.size() - 1).getOrderNumber(); child.setOrderNumber(OrderNoUtil.next(maxOrderNum)); } - child.setDrawingNo(parent.getDrawingNo()); - child.setMaterialDesc(parent.getMaterialDesc()); - child.setUnitWeight(parent.getUnitWeight()); - child.setMaterialUnit(data.getUnit()); - child.setMaterialOriginalUnit(parent.getMaterialOriginalUnit()); + BaseMaterialVO vo = materialBaseInfos.stream() + .filter(m -> m.getMaterialNo().equals(child.getMaterialNo())) + .findFirst() + .orElse(null); + if (!Objects.isNull(vo)) { + child.setMaterialCategoryCode(vo.getMaterialCategoryCode()); + child.setDrawingNo(vo.getDrawingNo()); + child.setUnitWeight(vo.getMaterialWeight()); + child.setMaterialUnit(vo.getMaterialUnit()); + child.setMaterialTexture(vo.getMaterialTexture()); + } + child.setMaterialDesc(data.getMaterialDesc()); + child.setMaterialOriginalUnit(data.getUnit()); child.setNum(data.getNum()); child.setRemark(data.getRemark()); child.setTotalWeight(BomUtil.calculateTotalWeight(child.getNum(), child.getUnitWeight())); @@ -355,13 +355,11 @@ public class EBomImportService { if (p.getMaterialNo().startsWith("31")) { child.setVirtualPartRootMaterialNo(p.getMaterialNo()); } - BaseMaterialVO vo = materialBaseInfos.stream() - .filter(m -> m.getMaterialNo().equals(child.getMaterialNo())) - .findFirst() - .orElse(null); - if (!Objects.isNull(vo)) { - child.setMaterialCategoryCode(vo.getMaterialCategoryCode()); - } + child.setEditStatus(EbomEditStatusEnum.HANDLER_CREATED.getValue()); + child.setExceptionStatus(EBomExceptionStatusEnum.INIT.getValue()); + child.setCreatedBy(SessionUtil.getUserCode()); + child.setRemark(data.getRemark()); + child.setSource(EBomSourceEnum.FROM_EXCE.getValue()); setVirtualPackageType(child); children.add(child); } @@ -371,10 +369,10 @@ public class EBomImportService { parent.setRowId(IdWorker.getId()); parent.setCurrentVersion(OriginalConstant.DEFAULT_BOM_VERSION); - parent.setMaterialNo(data.getMaterialNo()); - parent.setMaterialDesc(data.getMaterialDesc()); + parent.setMaterialNo(data.getParentMaterialNo()); + parent.setMaterialDesc(data.getParentMaterialDesc()); BaseMaterialVO vo = materialBaseInfos.stream() - .filter(m -> m.getMaterialNo().equals(data.getMaterialNo())) + .filter(m -> m.getMaterialNo().equals(data.getParentMaterialNo())) .findFirst() .orElse(null); if (!Objects.isNull(vo)) { @@ -382,12 +380,12 @@ public class EBomImportService { parent.setUnitWeight(vo.getMaterialWeight()); parent.setMaterialName(vo.getMaterialName()); parent.setMaterialTexture(vo.getMaterialTexture()); - parent.setMaterialUnit(vo.getMaterialUnit()); - if (StrUtil.isBlank(data.getMaterialDesc())) { + if (StrUtil.isBlank(data.getParentMaterialDesc())) { parent.setMaterialDesc(vo.getMaterialDesc()); } + parent.setMaterialUnit(vo.getMaterialUnit()); + parent.setMaterialOriginalUnit(vo.getMaterialUnit()); } - parent.setMaterialOriginalUnit(data.getUnit()); parent.setNum(BigDecimal.ONE); parent.setTotalWeight(null); parent.setUserRootIs(0); @@ -411,7 +409,7 @@ public class EBomImportService { parent.setExceptionStatus(EBomExceptionStatusEnum.INIT.getValue()); parent.setCreatedBy(SessionUtil.getUserCode()); parent.setRemark(""); - parent.setOrderNumber(data.getOrderNum()); + //parent.setOrderNumber(data.getOrderNum()); parent.setDeptName(SessionUtil.getDepartName()); parent.setSource(EBomSourceEnum.FROM_EXCE.getValue()); parent.setSourceRowId("");