Merge branch 'refs/heads/dev' into feature/excel-132
This commit is contained in:
commit
2121978af1
|
|
@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollectionUtil;
|
|||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.extra.spring.SpringUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
|
|
@ -14,13 +15,11 @@ import com.mzt.logapi.context.LogRecordContext;
|
|||
import com.nflg.product.base.core.conmon.util.SessionUtil;
|
||||
import com.nflg.product.bomnew.constant.*;
|
||||
import com.nflg.product.bomnew.mapper.master.BomNewOriginalParentMapper;
|
||||
import com.nflg.product.bomnew.pojo.dto.AddVirtrualMaterialDTO;
|
||||
import com.nflg.product.bomnew.pojo.dto.BaseImportExcelDTO;
|
||||
import com.nflg.product.bomnew.pojo.dto.BomNewOriginalExcelDTO;
|
||||
import com.nflg.product.bomnew.pojo.dto.OriginalSaveBomDTO;
|
||||
import com.nflg.product.bomnew.pojo.entity.BomNewOriginalChildEntity;
|
||||
import com.nflg.product.bomnew.pojo.entity.BomNewOriginalMaterialUseEntity;
|
||||
import com.nflg.product.bomnew.pojo.entity.BomNewOriginalParentEntity;
|
||||
import com.nflg.product.bomnew.pojo.entity.BomOriginalCadParentEntity;
|
||||
import com.nflg.product.bomnew.pojo.entity.*;
|
||||
import com.nflg.product.bomnew.pojo.query.OriginalBomQuery;
|
||||
import com.nflg.product.bomnew.pojo.vo.BaseMaterialVO;
|
||||
import com.nflg.product.bomnew.pojo.vo.BomOriginalListVO;
|
||||
|
|
@ -568,11 +567,10 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
|
|||
OriginalBomToEBomConvert convert = new OriginalBomToEBomConvert(parentVO, bomAllChildList);
|
||||
convert.convert();
|
||||
|
||||
handleVirtualPackage(eBomRowId, convert.getEBomParentResult());
|
||||
|
||||
if (CollUtil.isNotEmpty(convert.getEBomParentResult())) {
|
||||
ebomParentService.saveOrUpdateBatch(convert.getEBomParentResult());
|
||||
|
||||
|
||||
}
|
||||
if (CollUtil.isNotEmpty(convert.getEBomChildResult())) {
|
||||
ebomChildService.saveOrUpdateBatch(convert.getEBomChildResult());
|
||||
|
|
@ -602,6 +600,53 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理虚拟包
|
||||
*/
|
||||
private void handleVirtualPackage(Long ebomRowId, List<BomNewEbomParentEntity> datas) {
|
||||
BomNewEbomParentEntity root = datas.stream()
|
||||
.filter(d -> d.getRowId().equals(ebomRowId))
|
||||
.findFirst()
|
||||
.orElseThrow(() -> new RuntimeException("未找到根节点"));
|
||||
root.setVirtrualPackageEnum(handleVirtualPackage(datas, VirtualPackageTypeEnum.DELIVERY_PACKAGE)
|
||||
& handleVirtualPackage(datas, VirtualPackageTypeEnum.MAKING_PACKAGE)
|
||||
& handleVirtualPackage(datas, VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE)
|
||||
& handleVirtualPackage(datas, VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE));
|
||||
}
|
||||
|
||||
private int handleVirtualPackage(List<BomNewEbomParentEntity> datas, VirtualPackageTypeEnum em) {
|
||||
List<BomNewEbomParentEntity> list = datas.stream()
|
||||
.filter(d -> d.getMaterialName().endsWith("(" + em.getConMaterialName() + ")"))
|
||||
.collect(Collectors.toList());
|
||||
if (CollUtil.isEmpty(list)) return 0;
|
||||
list.forEach(it -> {
|
||||
it.setVirtualPackageIs(1);
|
||||
handleMaterial(it, em);
|
||||
});
|
||||
return em.getValue();
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理主物料,如果主物料不存在则添加
|
||||
*/
|
||||
private void handleMaterial(BomNewEbomParentEntity data, VirtualPackageTypeEnum em) {
|
||||
if (StrUtil.isBlank(data.getDrawingNo())) return;
|
||||
MaterialMainEntity material = materialMainService.lambdaQuery().eq(MaterialMainEntity::getDrawingNo, data.getDrawingNo())
|
||||
.orderByDesc(MaterialMainEntity::getRowId)
|
||||
.last(" limit 1")
|
||||
.one();
|
||||
if (material == null) {
|
||||
AddVirtrualMaterialDTO ent = new AddVirtrualMaterialDTO();
|
||||
ent.setKey(StrUtil.join("", data.getRowId(), em.getConMaterialName()));
|
||||
ent.setDrawingNo(data.getDrawingNo());
|
||||
ent.setMaterialName(data.getMaterialName());
|
||||
ent.setMaterialDesc(data.getMaterialDesc());
|
||||
ent.setMaterialCategoryCode(em.getMaterialCategoryCode());
|
||||
|
||||
SpringUtil.getBean(MaterialService.class).batchAddMaterial(CollUtil.toList(ent));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步到历史正式表(只保留最新版)
|
||||
*/
|
||||
|
|
|
|||
Loading…
Reference in New Issue