1.问题修复
This commit is contained in:
parent
ff395e626a
commit
8591089de2
|
|
@ -176,6 +176,9 @@ public class BomOriginalListVO extends BaseMaterialVO {
|
||||||
@ApiModelProperty("是否删除 0-否 1-是")
|
@ApiModelProperty("是否删除 0-否 1-是")
|
||||||
private Integer delIs=0;
|
private Integer delIs=0;
|
||||||
|
|
||||||
|
@ApiModelProperty("转换后Ebom行ID")
|
||||||
|
private Long eBomRowId=0L;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -224,7 +224,8 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
||||||
public List<BomNewEbomParentVO> getChild(Long rowId) {
|
public List<BomNewEbomParentVO> getChild(Long rowId) {
|
||||||
BomNewEbomParentEntity parent = this.getBaseMapper().selectById(rowId);
|
BomNewEbomParentEntity parent = this.getBaseMapper().selectById(rowId);
|
||||||
List<BomNewEbomParentVO> parentChild = this.getBaseMapper().getParentChild(rowId);
|
List<BomNewEbomParentVO> parentChild = this.getBaseMapper().getParentChild(rowId);
|
||||||
materialMainService.intiMaterialInfo(parentChild);
|
//排除项目类别的赋值
|
||||||
|
materialMainService.intiMaterialInfo(parentChild , "material","materialTexture","procureType");
|
||||||
if (CollUtil.isNotEmpty(parentChild)) {
|
if (CollUtil.isNotEmpty(parentChild)) {
|
||||||
List<String> materialNos = parentChild.stream().map(u -> u.getMaterialNo()).collect(Collectors.toList());
|
List<String> materialNos = parentChild.stream().map(u -> u.getMaterialNo()).collect(Collectors.toList());
|
||||||
if (CollUtil.isNotEmpty(materialNos)) {
|
if (CollUtil.isNotEmpty(materialNos)) {
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.convert.Convert;
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.nflg.product.base.core.config.SpringContextUtils;
|
import com.nflg.product.base.core.config.SpringContextUtils;
|
||||||
|
|
@ -365,10 +366,11 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
|
||||||
//开始转换
|
//开始转换
|
||||||
for (BomNewOriginalParentEntity parent : bomNewOriginalParentEntities) {
|
for (BomNewOriginalParentEntity parent : bomNewOriginalParentEntities) {
|
||||||
|
|
||||||
convertToEBomDo(parent);
|
Long ebomRowId= IdWorker.getId();
|
||||||
|
convertToEBomDo(parent,ebomRowId);
|
||||||
|
|
||||||
//更新并保存异常信息
|
//更新并保存异常信息
|
||||||
ebomParentService.checkAndSaveEBomException(parent.getRowId());
|
ebomParentService.checkAndSaveEBomException(ebomRowId);
|
||||||
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
@ -381,12 +383,13 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
|
||||||
* @param parent
|
* @param parent
|
||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void convertToEBomDo(BomNewOriginalParentEntity parent) throws ExecutionException, InterruptedException {
|
public void convertToEBomDo(BomNewOriginalParentEntity parent , Long eBomRowId) throws ExecutionException, InterruptedException {
|
||||||
//获取整颗树的BOM
|
//获取整颗树的BOM
|
||||||
List<BomOriginalListVO> bomAllChildList = this.getBomTree(parent.getRowId());
|
List<BomOriginalListVO> bomAllChildList = this.getBomTree(parent.getRowId());
|
||||||
|
|
||||||
|
BomOriginalListVO parentVO = Convert.convert(BomOriginalListVO.class, parent);
|
||||||
OriginalBomToEBomConvert convert = new OriginalBomToEBomConvert(parent, bomAllChildList);
|
parentVO.setEBomRowId(eBomRowId);
|
||||||
|
OriginalBomToEBomConvert convert = new OriginalBomToEBomConvert(parentVO, bomAllChildList);
|
||||||
convert.convert();
|
convert.convert();
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -431,6 +434,9 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
|
||||||
data.setParentKey(CollUtil.isNotEmpty(parentData) ? StrUtil.join("-", parentData.get(0).getLevelNo(), parentData.get(0).getRowNum()) : "0");
|
data.setParentKey(CollUtil.isNotEmpty(parentData) ? StrUtil.join("-", parentData.get(0).getLevelNo(), parentData.get(0).getRowNum()) : "0");
|
||||||
data.setUuid(uuid);
|
data.setUuid(uuid);
|
||||||
}
|
}
|
||||||
|
List<BomNewOriginalExcelDTO> noMaterialNoList = excelContext.stream().filter(u -> StrUtil.isBlank(u.getMaterialNo())).collect(Collectors.toList());
|
||||||
|
materialMainService.initMaterialForDrawdingNo(noMaterialNoList,BomNewOriginalExcelDTO::getChartNo,BomNewOriginalExcelDTO::setMaterialNo,BomNewOriginalExcelDTO::setMaterialName);
|
||||||
|
|
||||||
//转换
|
//转换
|
||||||
for (BomNewOriginalExcelDTO data : excelContext) {
|
for (BomNewOriginalExcelDTO data : excelContext) {
|
||||||
PlmBomToOriginalConvert convert = new PlmBomToOriginalConvert();
|
PlmBomToOriginalConvert convert = new PlmBomToOriginalConvert();
|
||||||
|
|
|
||||||
|
|
@ -79,6 +79,19 @@ public class MaterialMainService extends ServiceImpl<MaterialMainMapper, Materia
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public <T extends BaseMaterialVO> void intiMaterialInfo(List<T> data , String ... ignorePropertyList) {
|
||||||
|
List<String> materialNos = data.stream().filter(u -> StrUtil.isNotBlank(u.getMaterialNo())).map(u -> u.getMaterialNo()).collect(Collectors.toList());
|
||||||
|
if (CollUtil.isNotEmpty(materialNos)) {
|
||||||
|
List<BaseMaterialVO> materialBaseInfos = SpringUtil.getBean(MaterialMainService.class).getMaterialBaseInfo(materialNos);
|
||||||
|
Map<String, BaseMaterialVO> materialMp = ListCommonUtil.listToMap(materialBaseInfos, BaseMaterialVO::getMaterialNo);
|
||||||
|
for (T t : data) {
|
||||||
|
if (StrUtil.isNotBlank(t.getMaterialNo()) && materialMp.containsKey(t.getMaterialNo())) {
|
||||||
|
BeanUtil.copyProperties(materialMp.get(t.getMaterialNo()), t, ignorePropertyList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public <T> void initShouldBomExist(List<T> list, Function<T, String> getMaterialCategoryCodeFun, BiConsumer<T, Integer> setShouldBomExistFun, Function<T,Integer> getMaterialGetTypeFun) {
|
public <T> void initShouldBomExist(List<T> list, Function<T, String> getMaterialCategoryCodeFun, BiConsumer<T, Integer> setShouldBomExistFun, Function<T,Integer> getMaterialGetTypeFun) {
|
||||||
|
|
||||||
|
|
@ -119,7 +132,7 @@ public class MaterialMainService extends ServiceImpl<MaterialMainMapper, Materia
|
||||||
* @param <T>
|
* @param <T>
|
||||||
*/
|
*/
|
||||||
public <T> void initMaterialForDrawdingNo
|
public <T> void initMaterialForDrawdingNo
|
||||||
(List<T> list, Function<T, String> getDrawingNoFun, BiConsumer<T, String>... setFun) {
|
(List<T> list, Function<T, String> getDrawingNoFun, BiConsumer<T, String> setMaterialNoFun, BiConsumer<T, String> setMaterialNameFun) {
|
||||||
List<String> drawingNos = list.stream().map(getDrawingNoFun).collect(Collectors.toList());
|
List<String> drawingNos = list.stream().map(getDrawingNoFun).collect(Collectors.toList());
|
||||||
if (CollUtil.isNotEmpty(drawingNos)) {
|
if (CollUtil.isNotEmpty(drawingNos)) {
|
||||||
List<BaseMaterialVO> materialList = SpringUtil.getBean(MaterialMainMapper.class).getMaterialByDrawingNo(drawingNos);
|
List<BaseMaterialVO> materialList = SpringUtil.getBean(MaterialMainMapper.class).getMaterialByDrawingNo(drawingNos);
|
||||||
|
|
@ -129,9 +142,10 @@ public class MaterialMainService extends ServiceImpl<MaterialMainMapper, Materia
|
||||||
String drawingNo = getDrawingNoFun.apply(t);
|
String drawingNo = getDrawingNoFun.apply(t);
|
||||||
BaseMaterialVO materialVO = materialVOMap.get(drawingNo);
|
BaseMaterialVO materialVO = materialVOMap.get(drawingNo);
|
||||||
if (materialVO != null) {
|
if (materialVO != null) {
|
||||||
for (BiConsumer<T, String> setFun1 : setFun) {
|
|
||||||
setFun1.accept(t, materialVO.getMaterialNo());
|
setMaterialNoFun.accept(t, materialVO.getMaterialNo());
|
||||||
}
|
setMaterialNameFun.accept(t,materialVO.getMaterialName());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -57,15 +57,20 @@ public class OriginalBomToEBomConvert extends BaseConvert {
|
||||||
List<BomNewEbomChildEntity> eBomChildResult = new ArrayList<>();
|
List<BomNewEbomChildEntity> eBomChildResult = new ArrayList<>();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public OriginalBomToEBomConvert(BomNewOriginalParentEntity inParent, List<BomOriginalListVO> inBomDetail) {
|
public OriginalBomToEBomConvert(BomNewOriginalParentEntity inParent, List<BomOriginalListVO> inBomDetail) {
|
||||||
parent = Convert.convert(BomOriginalListVO.class, inParent);
|
parent = Convert.convert(BomOriginalListVO.class, inParent);
|
||||||
parent.setBomRowId(parent.getRowId());
|
parent.setBomRowId(parent.getRowId());
|
||||||
bomDetail = inBomDetail;
|
bomDetail = inBomDetail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public OriginalBomToEBomConvert(BomOriginalListVO inParent, List<BomOriginalListVO> inBomDetail) {
|
||||||
|
parent = inParent;
|
||||||
|
parent.setBomRowId(parent.getRowId());
|
||||||
|
bomDetail = inBomDetail;
|
||||||
|
}
|
||||||
|
|
||||||
public void convert() {
|
public void convert() {
|
||||||
//checkData();
|
checkData();
|
||||||
|
|
||||||
SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(ImmutableList.of(parent));
|
SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(ImmutableList.of(parent));
|
||||||
SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(bomDetail);
|
SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(bomDetail);
|
||||||
|
|
@ -140,16 +145,21 @@ public class OriginalBomToEBomConvert extends BaseConvert {
|
||||||
if (CollUtil.isNotEmpty(materialBaseInfo)) {
|
if (CollUtil.isNotEmpty(materialBaseInfo)) {
|
||||||
|
|
||||||
List<BomNewEbomChildEntity> oldParenChild = SpringUtil.getBean(BomNewEbomChildMapper.class).getChildByMaterialNo(parentEnt.getMaterialNo());
|
List<BomNewEbomChildEntity> oldParenChild = SpringUtil.getBean(BomNewEbomChildMapper.class).getChildByMaterialNo(parentEnt.getMaterialNo());
|
||||||
|
BomNewEbomChildEntity newChild = buildCommonEbomChildEntity(materialBaseInfo.get(0), parentEnt);
|
||||||
//存在旧版本
|
//存在旧版本
|
||||||
if (CollUtil.isNotEmpty(oldParenChild)) {
|
if (CollUtil.isNotEmpty(oldParenChild)) {
|
||||||
BomNewEbomChildEntity newChild = buildCommonEbomChildEntity(materialBaseInfo.get(0), parentEnt);
|
|
||||||
//结构是否相同
|
//结构是否相同
|
||||||
if (!isSameEBom(oldParenChild, ImmutableList.of(newChild))) {
|
if (!isSameEBom(oldParenChild, ImmutableList.of(newChild))) {
|
||||||
Long parentRowId = buildEBomParent(parentEnt);
|
Long parentRowId = buildEBomParent(parentEnt);
|
||||||
newChild.setParentRowId(parentRowId);
|
newChild.setParentRowId(parentRowId);
|
||||||
this.eBomChildResult.add(newChild);
|
this.eBomChildResult.add(newChild);
|
||||||
}
|
}
|
||||||
}}
|
} else {
|
||||||
|
Long parentRowId = buildEBomParent(parentEnt);
|
||||||
|
newChild.setParentRowId(parentRowId);
|
||||||
|
this.eBomChildResult.add(newChild);
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
buildEBomParent(parentEnt);
|
buildEBomParent(parentEnt);
|
||||||
}
|
}
|
||||||
|
|
@ -165,6 +175,7 @@ public class OriginalBomToEBomConvert extends BaseConvert {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 处理子级
|
* 处理子级
|
||||||
|
*
|
||||||
* @param parentEntity
|
* @param parentEntity
|
||||||
* @param originalSourceEnum
|
* @param originalSourceEnum
|
||||||
*/
|
*/
|
||||||
|
|
@ -225,7 +236,7 @@ public class OriginalBomToEBomConvert extends BaseConvert {
|
||||||
.eq(BomNewEbomParentEntity::getLastVersionIs, 1).one();
|
.eq(BomNewEbomParentEntity::getLastVersionIs, 1).one();
|
||||||
BomNewEbomParentEntity eBomParent = new BomNewEbomParentEntity();
|
BomNewEbomParentEntity eBomParent = new BomNewEbomParentEntity();
|
||||||
BeanUtil.copyProperties(parentEnt, eBomParent, "materialGetType");
|
BeanUtil.copyProperties(parentEnt, eBomParent, "materialGetType");
|
||||||
eBomParent.setRowId(IdWorker.getId());
|
eBomParent.setRowId(parentEnt.getEBomRowId()>0?parentEnt.getEBomRowId(): IdWorker.getId());
|
||||||
eBomParent.setSource(EBomSourceEnum.FROM_BOM.getValue());
|
eBomParent.setSource(EBomSourceEnum.FROM_BOM.getValue());
|
||||||
eBomParent.setCurrentVersion(Objects.isNull(ebom) ? "" : VersionUtil.getNextVersion(ebom.getCurrentVersion()));
|
eBomParent.setCurrentVersion(Objects.isNull(ebom) ? "" : VersionUtil.getNextVersion(ebom.getCurrentVersion()));
|
||||||
eBomParent.setConvertToEbomTime(LocalDateTime.now());
|
eBomParent.setConvertToEbomTime(LocalDateTime.now());
|
||||||
|
|
@ -297,7 +308,7 @@ public class OriginalBomToEBomConvert extends BaseConvert {
|
||||||
List<BaseMaterialVO> materialBaseInfo = SpringUtil.getBean(MaterialMainService.class).getMaterialBaseInfo(materialNos);
|
List<BaseMaterialVO> materialBaseInfo = SpringUtil.getBean(MaterialMainService.class).getMaterialBaseInfo(materialNos);
|
||||||
List<String> materialNoInMain = materialBaseInfo.stream().map(u -> u.getMaterialNo()).collect(Collectors.toList());
|
List<String> materialNoInMain = materialBaseInfo.stream().map(u -> u.getMaterialNo()).collect(Collectors.toList());
|
||||||
Set<String> difference = Sets.difference(new HashSet<>(materialNos), new HashSet<>(materialNoInMain));
|
Set<String> difference = Sets.difference(new HashSet<>(materialNos), new HashSet<>(materialNoInMain));
|
||||||
VUtils.isTure(CollUtil.isNotEmpty(difference)).throwMessage(StrUtil.join(",", difference) + "物料编码在主数据平台不存在");
|
VUtils.isTure(CollUtil.isNotEmpty(difference)).throwMessage(StrUtil.join(",", difference) + "物料编码在主数据平台不存在,请检查更正");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -42,6 +42,15 @@ public class PlmBomToOriginalConvert extends BaseConvert {
|
||||||
public void convertOriginalBom(BomOriginalCadParentEntity inParent) {
|
public void convertOriginalBom(BomOriginalCadParentEntity inParent) {
|
||||||
childs = Convert.toList(BomOriginalPlmBomVO.class, SpringUtil.getBean(BomOriginalCadChildService.class).lambdaQuery().eq(BomOriginalCadChildEntity::getParentRowId, inParent.getRowId()).list());
|
childs = Convert.toList(BomOriginalPlmBomVO.class, SpringUtil.getBean(BomOriginalCadChildService.class).lambdaQuery().eq(BomOriginalCadChildEntity::getParentRowId, inParent.getRowId()).list());
|
||||||
parent = Convert.convert(BomOriginalPlmBomVO.class, inParent);
|
parent = Convert.convert(BomOriginalPlmBomVO.class, inParent);
|
||||||
|
//图号-初始化缺编码的物料
|
||||||
|
if(StrUtil.isBlank(parent.getMaterialNo())){
|
||||||
|
SpringUtil.getBean(MaterialMainService.class).initMaterialForDrawdingNo(ImmutableList.of(parent) ,BomOriginalPlmBomVO::getDrawingNo,BomOriginalPlmBomVO::setMaterialNo,BomOriginalPlmBomVO::setMaterialName);
|
||||||
|
}
|
||||||
|
List<BomOriginalPlmBomVO> noMaterialNoList = childs.stream().filter(u -> StrUtil.isBlank(u.getMaterialNo())).collect(Collectors.toList());
|
||||||
|
if(CollUtil.isNotEmpty(noMaterialNoList)){
|
||||||
|
SpringUtil.getBean(MaterialMainService.class).initMaterialForDrawdingNo(noMaterialNoList ,BomOriginalPlmBomVO::getDrawingNo,BomOriginalPlmBomVO::setMaterialNo,BomOriginalPlmBomVO::setMaterialName);
|
||||||
|
}
|
||||||
|
|
||||||
//初始化物料信息
|
//初始化物料信息
|
||||||
SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(ImmutableList.of(parent));
|
SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(ImmutableList.of(parent));
|
||||||
SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(childs);
|
SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(childs);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue