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