fix(ebom): 优化从excel导入
This commit is contained in:
parent
c78f0fc151
commit
2a982f0c45
|
|
@ -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)) {
|
||||
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<BomNewEbomChildEntity> children, List<BaseMaterialVO> materialBaseInfos, BomNewEbomParentEntity parent, EbomExcelDTO data, BomNewEbomParentEntity p) {
|
||||
BomNewEbomChildEntity child = Convert.convert(BomNewEbomChildEntity.class, parent);
|
||||
private void buildChild(List<BomNewEbomChildEntity> children, List<BaseMaterialVO> materialBaseInfos, EbomExcelDTO data, BomNewEbomParentEntity p) {
|
||||
BomNewEbomChildEntity child = new BomNewEbomChildEntity();
|
||||
child.setRowId(IdWorker.getId());
|
||||
child.setParentRowId(p.getRowId());
|
||||
parent.setOrderNumber("");
|
||||
child.setMaterialNo(data.getMaterialNo());
|
||||
List<BomNewEbomChildEntity> 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("");
|
||||
|
|
|
|||
Loading…
Reference in New Issue