顶层同步主数据

This commit is contained in:
jing's 2024-07-07 10:35:01 +08:00
parent 24edba0da3
commit fe3536f13d
4 changed files with 41 additions and 66 deletions

View File

@ -27,4 +27,5 @@ public class ChildBomReportQuery {
}

View File

@ -5,10 +5,7 @@ import cn.hutool.core.convert.Convert;
import cn.hutool.core.lang.TypeReference;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.spring.SpringUtil;
import com.nflg.product.bomnew.constant.EBomConstant;
import com.nflg.product.bomnew.constant.EBomStatusEnum;
import com.nflg.product.bomnew.constant.OriginalConstant;
import com.nflg.product.bomnew.constant.ReportConstant;
import com.nflg.product.bomnew.constant.*;
import com.nflg.product.bomnew.mapper.master.BomNewPbomParentMapper;
import com.nflg.product.bomnew.pojo.entity.*;
import com.nflg.product.bomnew.pojo.query.ChildBomReportQuery;
@ -167,17 +164,14 @@ public class ForwardReportService {
List<ForwardReportVO> chilidEBomList(ChildBomReportQuery query) {
BomNewEbomParentVO parentEntity=null;
List<BomNewEbomParentVO> parentChildList=null;
boolean isNewVersion=false;
if (query.getVersionStrategy().compareTo(ReportConstant.VersionStrategyEnum.NEW.getValue()) == 0) {
isNewVersion=true;
}
if (isNewVersion) {
parentEntity= Convert.convert(BomNewEbomParentVO.class,SpringUtil.getBean(BomNewEbomParentService .class).getById(query.getBomRowId()));
parentChildList
= Convert.toList(BomNewEbomParentVO.class,SpringUtil.getBean(BomNewEbomParentService.class). getParentChild(query.getBomRowId()));
@ -187,51 +181,41 @@ public class ForwardReportService {
= Convert.toList(BomNewEbomParentVO.class,SpringUtil.getBean(BomNewEbomParentFormalService.class). getParentChild(query.getBomRowId()));
}
if(CollUtil.isEmpty(parentChildList)){
return new ArrayList<>();
}
SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(parentChildList, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT);
Map<Long, BomNewEbomParentVO > parentEntityMap=null;
if (query.getVersionStrategy().compareTo(ReportConstant.VersionStrategyEnum.NEW.getValue()) == 0) {
Map<String, BomNewEbomParentVO > parentEntityMap=null;
if (isNewVersion) {
List<String> materialNos = parentChildList.stream().filter(u -> StrUtil.isNotBlank(u.getMaterialNo()) )
.map(BomNewEbomParentVO::getMaterialNo).collect(Collectors.toList());
List<BomNewEbomParentEntity> childBomlist = SpringUtil.getBean(BomNewEbomParentService.class).lambdaQuery()
.in(BomNewEbomParentEntity::getMaterialNo, materialNos)
.eq(BomNewEbomParentEntity::getStatus, EBomStatusEnum.PUBLISHED.getValue()).list();
List<BomNewEbomParentVO> covertList=Convert.toList(BomNewEbomParentVO.class,childBomlist);
parentEntityMap = covertList.parallelStream()
.collect(Collectors.toMap(
BomNewEbomParentVO::getRowId,
BomNewEbomParentVO::getMaterialNo,
Function.identity(),
BinaryOperator.maxBy(Comparator.comparing(BomNewEbomParentVO::getCurrentVersion))
));
}else {
List<Long> bomRowIds=parentChildList.stream().filter(u -> Objects.nonNull(u.getBomRowId()) && u.getBomRowId()>0 )
.map(BomNewEbomParentVO::getBomRowId).collect(Collectors.toList());
if(CollUtil.isNotEmpty(bomRowIds)) {
List<BomNewEbomParentFormalEntity> bomlist = SpringUtil.getBean(BomNewEbomParentFormalService.class).lambdaQuery()
.in(BomNewEbomParentFormalEntity::getRowId, bomRowIds).list();
parentEntityMap = ListCommonUtil.listToMap(Convert.toList(BomNewEbomParentVO.class,bomlist), BomNewEbomParentVO::getRowId);
parentEntityMap = ListCommonUtil.listToMap(Convert.toList(BomNewEbomParentVO.class,bomlist), BomNewEbomParentVO::getMaterialNo);
}
}
for (BomNewEbomParentVO vo :
parentChildList) {
if (Objects.nonNull(parentEntityMap) && parentEntityMap.containsKey(vo.getParentRowId())) {
BomNewEbomParentVO ebomParentEntity = parentEntityMap.get(vo.getParentRowId());
if (Objects.nonNull(parentEntityMap) && parentEntityMap.containsKey(vo.getMaterialNo())) {
BomNewEbomParentVO ebomParentEntity = parentEntityMap.get(vo.getMaterialNo());
vo.setDeviseName(ebomParentEntity.getDeviseName());
vo.setDeviseUserCode(ebomParentEntity.getDeviseUserCode());
vo.setCurrentVersion(ebomParentEntity.getCurrentVersion());
@ -248,21 +232,19 @@ public class ForwardReportService {
// }
}
}
List<ForwardReportVO> childBomLit = Convert.convert(new TypeReference<List<ForwardReportVO>>() {}, parentChildList);
return childBomLit;
}
List<ForwardReportVO> chilidPBomList(ChildBomReportQuery query) {
BomNewPbomParentVO parentEntity=null;
List<BomNewPbomParentVO> parentChildList=null;
boolean isNewVersion=false;
if (query.getVersionStrategy().compareTo(ReportConstant.VersionStrategyEnum.NEW.getValue()) == 0) {
isNewVersion=true;
}
if (isNewVersion) {
parentEntity= Convert.convert(BomNewPbomParentVO.class,SpringUtil.getBean(BomNewPbomParentService .class).getById(query.getBomRowId()));
parentChildList
= Convert.toList(BomNewPbomParentVO.class,SpringUtil.getBean(BomNewPbomParentMapper.class). getParentChild(query.getBomRowId()));
@ -272,28 +254,24 @@ public class ForwardReportService {
= Convert.toList(BomNewPbomParentVO.class,SpringUtil.getBean(BomNewPbomParentFormalService.class). getParentChild(query.getBomRowId()));
}
if(CollUtil.isEmpty(parentChildList)){
return new ArrayList<>();
}
SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(parentChildList, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT);
Map<Long, BomNewPbomParentVO > parentEntityMap=null;
if (query.getVersionStrategy().compareTo(ReportConstant.VersionStrategyEnum.NEW.getValue()) == 0) {
Map<String, BomNewPbomParentVO > parentEntityMap=null;
if (isNewVersion) {
List<String> materialNos = parentChildList.stream().filter(u -> StrUtil.isNotBlank(u.getMaterialNo()) )
.map(BomNewPbomParentVO::getMaterialNo).collect(Collectors.toList());
List<BomNewPbomParentEntity> childBomlist = SpringUtil.getBean(BomNewPbomParentService.class).lambdaQuery()
.in(BomNewPbomParentEntity::getMaterialNo, materialNos)
.ge( BomNewPbomParentEntity::getStatus, PBomStatusEnum.PUBLISH.getValue())
.eq(BomNewPbomParentEntity::getFacCode, parentEntity.getFacCode()).list();
List<BomNewPbomParentVO> covertList=Convert.toList(BomNewPbomParentVO.class,childBomlist);
parentEntityMap = covertList.stream()
.collect(Collectors.groupingBy(
BomNewPbomParentVO::getRowId,
BomNewPbomParentVO::getMaterialNo,
Collectors.collectingAndThen(
Collectors.maxBy(Comparator.comparing(BomNewPbomParentVO::getCurrentVersion)),
Optional::get
@ -309,20 +287,17 @@ public class ForwardReportService {
List<BomNewPbomParentFormalEntity> bomlist = SpringUtil.getBean(BomNewPbomParentFormalService.class).lambdaQuery()
.in(BomNewPbomParentFormalEntity::getRowId, bomRowIds).list();
parentEntityMap = ListCommonUtil.listToMap(Convert.toList(BomNewPbomParentVO.class,bomlist), BomNewPbomParentVO::getRowId);
parentEntityMap = ListCommonUtil.listToMap(Convert.toList(BomNewPbomParentVO.class,bomlist), BomNewPbomParentVO::getMaterialNo);
}
}
for (BomNewPbomParentVO vo:
parentChildList) {
if (Objects.nonNull(parentEntityMap) && parentEntityMap.containsKey(vo.getParentRowId())) {
BomNewPbomParentVO pbomParentEntity = parentEntityMap.get(vo.getBomRowId());
if (Objects.nonNull(parentEntityMap) && parentEntityMap.containsKey(vo.getMaterialNo())) {
BomNewPbomParentVO pbomParentEntity = parentEntityMap.get(vo.getMaterialNo());
vo.setDeviseName(pbomParentEntity.getDeviseName());
vo.setCurrentVersion(pbomParentEntity.getCurrentVersion());
vo.setExpireEndTime(pbomParentEntity.getReleaseTime());
@ -339,8 +314,6 @@ public class ForwardReportService {
// }
}
}
List<ForwardReportVO> childBomLit = Convert.convert(
new TypeReference<List<ForwardReportVO>>() {
@ -363,8 +336,6 @@ public class ForwardReportService {
if (item.getParentRowId().longValue() == 0l) {
item.setParentRowId(bomRowId);
}
}
List<ForwardReportVO> childBomLit = Convert.convert(

View File

@ -172,7 +172,9 @@ public class EBomForwardReport extends BaseForwardReport {
if (CollectionUtil.isNotEmpty(parentChildList)) {
List<Long> bomRowIds = parentChildList.stream().filter(u -> Objects.nonNull(u.getBomRowId()) && u.getBomRowId() > 0).map(BomNewEbomParentVO::getBomRowId).collect(Collectors.toList());
List<Long> bomRowIds = parentChildList.stream().filter(u -> Objects.nonNull(u.getBomRowId()) && u.getBomRowId() > 0)
.map(BomNewEbomParentVO::getBomRowId)
.collect(Collectors.toList());
Map<Long, BomNewEbomParentVO> parentEntityMap = null;
if (CollUtil.isNotEmpty(bomRowIds)) {
List<BomNewEbomParentVO> bomlist = getParentList(bomRowIds);
@ -185,7 +187,6 @@ public class EBomForwardReport extends BaseForwardReport {
Map<Long, BomNewEbomParentVO> noBomParentEntityMap = ListCommonUtil.listToMap(parent, BomNewEbomParentVO::getRowId);
for (BomNewEbomParentVO vo :
parentChildList) {
@ -203,15 +204,12 @@ public class EBomForwardReport extends BaseForwardReport {
} else {
vo.setLevelNum(levelNum);
vo.setOrderNumber(orderNum.getAndIncrement() + "");
if (Objects.nonNull(noBomParentEntityMap) && noBomParentEntityMap.containsKey(vo.getParentRowId())) {
BomNewEbomParentVO parentVO = noBomParentEntityMap.get(vo.getParentRowId());
vo.setDeviseName(parentVO.getDeviseName());
vo.setDeviseUserCode(parentVO.getDeviseUserCode());
}
// if (MaterialshouldBomExistUtil.checkShouldBomExist(vo)) {
// vo.setCurrentVersion(OriginalConstant.NO_BOM_VERSION);
// } else {
@ -278,6 +276,7 @@ public class EBomForwardReport extends BaseForwardReport {
List<BomNewEbomParentVO> parentChildList = getParentChildList(ImmutableList.of(parentFormal.getRowId()));
initMaterialInfo(parentChildList);
initMaterialInfo(ImmutableList.of(parentFormal));
AtomicInteger orderNum = new AtomicInteger(1);
parentFormal.setLevelNum(1);
parentFormal.setOrderNumber(orderNum.getAndIncrement() + "");
@ -345,7 +344,7 @@ public class EBomForwardReport extends BaseForwardReport {
ForkJoinPool pool = new ForkJoinPool();
ForkJoinTask<List<BomNewEbomParentVO>> submit = pool.submit(task);
List<BomNewEbomParentVO> bomList = submit.join();
initMaterialInfo(bomList);
return bomList;
}
return null;
@ -361,7 +360,7 @@ public class EBomForwardReport extends BaseForwardReport {
parentBomRow.setOrderNumber("1");
bomDetails.add(0, parentBomRow);
}
initMaterialInfo(bomDetails);
return bomDetails;
} else {
return bomDetailFormalList(parentBomRow);
@ -409,10 +408,10 @@ public class EBomForwardReport extends BaseForwardReport {
if (CollUtil.isNotEmpty(nextBomId)) {
rowIdList.addAll(nextBomId);
}
}
}
}
initMaterialInfo(voList);
return voList;
}

View File

@ -224,7 +224,7 @@ public class PBomForwardReport extends BaseForwardReport {
parentBomRow.setOrderNumber("1");
bomDetails.add(0, parentBomRow);
}
initMaterialInfo(bomDetails);
return bomDetails;
} else {
return bomDetailFormalList(parentBomRow);
@ -271,6 +271,7 @@ public class PBomForwardReport extends BaseForwardReport {
}
}
initMaterialInfo(voList);
return voList;
}
@ -300,11 +301,11 @@ public class PBomForwardReport extends BaseForwardReport {
List<BomNewPbomParentVO> parentChildList = getParentChildList(ImmutableList.of(parentFormal.getRowId()));
initMaterialInfo(parentChildList);
initMaterialInfo(ImmutableList.of(parentFormal));
if (CollectionUtil.isNotEmpty(parentChildList)) {
AtomicInteger orderNum = new AtomicInteger(1);
parentFormal.setLevelNum(1);
parentFormal.setOrderNumber(orderNum.getAndIncrement() + "");
@ -312,6 +313,9 @@ public class PBomForwardReport extends BaseForwardReport {
bomUpAndLowLevel(ImmutableList.of(parentFormal), parentChildList, null, 2, orderNum);
}
List<ForwardReportVO> nodeList = Convert.convert(new TypeReference<List<ForwardReportVO>>() {
}, parentChildList);
nodesList.addAll(nodeList);
@ -450,7 +454,7 @@ public class PBomForwardReport extends BaseForwardReport {
ForkJoinTask<List<BomNewPbomParentVO>> submit = pool.submit(task);
List<BomNewPbomParentVO> bomList = submit.join();
initMaterialInfo(bomList);
return bomList;
}
return null;