Merge branch 'refs/heads/dev' into feature/excel-132

This commit is contained in:
曹鹏飞 2024-04-18 11:11:43 +08:00
commit 2121978af1
1 changed files with 51 additions and 6 deletions

View File

@ -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));
}
}
/**
* 同步到历史正式表只保留最新版
*/