ebom pbom 无子级数据

This commit is contained in:
jing's 2024-07-23 11:40:58 +08:00
parent 4f02752c5b
commit 63d25b1445
3 changed files with 52 additions and 47 deletions

View File

@ -37,11 +37,15 @@ public class EBomFormalTreeTask extends RecursiveTask<List<BomNewEbomParentVO>>
@Getter @Getter
@Setter @Setter
private int levelNum=2; private int levelNum=2;
AtomicInteger orderNum = new AtomicInteger(2); AtomicInteger orderNum;
List<BomNewEbomParentVO> result = new ArrayList<>(); List<BomNewEbomParentVO> result = new ArrayList<>();
public EBomFormalTreeTask(List<BomNewEbomParentVO> inBomDetail) { public EBomFormalTreeTask(List<BomNewEbomParentVO> inBomDetail,
int inCountLevel ,
AtomicInteger inCountNum) {
bomDetail = inBomDetail; bomDetail = inBomDetail;
this.levelNum=inCountLevel;
this.orderNum=inCountNum;
} }
/** /**
@ -149,8 +153,8 @@ public class EBomFormalTreeTask extends RecursiveTask<List<BomNewEbomParentVO>>
if(CollUtil.isNotEmpty(childBowIds)) { if(CollUtil.isNotEmpty(childBowIds)) {
List<BomNewEbomParentVO> bom = SpringUtil.getBean(BomNewEbomParentService.class).getBaseMapper().getParentChildBatch(childBowIds); List<BomNewEbomParentVO> bom = SpringUtil.getBean(BomNewEbomParentService.class).getBaseMapper().getParentChildBatch(childBowIds);
EBomFormalTreeTask task = new EBomFormalTreeTask(bom); EBomFormalTreeTask task = new EBomFormalTreeTask(bom,levelNum,orderNum);
task.setLevelNum(levelNum); // task.setLevelNum(levelNum);
task.fork(); task.fork();
bomDetail.addAll(task.join()); bomDetail.addAll(task.join());
return bomDetail; return bomDetail;

View File

@ -291,28 +291,23 @@ public class EBomForwardReport extends BaseForwardReport {
for (BomNewEbomParentVO parentFormal : listParent) { for (BomNewEbomParentVO parentFormal : listParent) {
List<BomNewEbomParentVO> parentChildList = getParentChildList(ImmutableList.of(parentFormal.getRowId())); List<BomNewEbomParentVO> parentChildList = getParentChildList(ImmutableList.of(parentFormal.getRowId()));
List<ForwardReportVO> nodeList=new ArrayList<>();
initMaterialInfo(parentChildList);
initMaterialInfo(ImmutableList.of(parentFormal));
if (CollectionUtil.isNotEmpty(parentChildList)) {
AtomicInteger orderNum = new AtomicInteger(1); AtomicInteger orderNum = new AtomicInteger(1);
parentFormal.setLevelNum(1); parentFormal.setLevelNum(1);
parentFormal.setOrderNumber(orderNum.getAndIncrement() + ""); parentFormal.setOrderNumber(orderNum.getAndIncrement() + "");
List<ForwardReportVO> nodeList=new ArrayList<>();
nodeList.add(Convert.convert(ForwardReportVO.class, parentFormal)); nodeList.add(Convert.convert(ForwardReportVO.class, parentFormal));
if (CollectionUtil.isNotEmpty(parentChildList)) {
bomUpAndLowLevel(ImmutableList.of(parentFormal), parentChildList, null, 2, orderNum); bomUpAndLowLevel(ImmutableList.of(parentFormal), parentChildList, null, 2, orderNum);
nodeList.addAll( Convert.convert(new TypeReference<List<ForwardReportVO>>() { nodeList.addAll( Convert.convert(new TypeReference<List<ForwardReportVO>>() {
}, parentChildList)); }, parentChildList));
}
initMaterialInfo(nodeList);
nodeList.forEach(item->{ nodeList.forEach(item->{
item.setBomVersion(parentFormal.getCurrentVersion()); item.setBomVersion(parentFormal.getCurrentVersion());
}); });
nodesList.addAll(nodeList); nodesList.addAll(nodeList);
}
} }
@ -365,7 +360,9 @@ public class EBomForwardReport extends BaseForwardReport {
List<BomNewEbomParentVO> bomDetailList(Long bomRowId) { List<BomNewEbomParentVO> bomDetailList(Long bomRowId) {
List<BomNewEbomParentVO> childList = SpringUtil.getBean(BomNewEbomParentService.class).getParentChild(bomRowId); List<BomNewEbomParentVO> childList = SpringUtil.getBean(BomNewEbomParentService.class).getParentChild(bomRowId);
if (CollUtil.isNotEmpty(childList)) { if (CollUtil.isNotEmpty(childList)) {
EBomFormalTreeTask task = new EBomFormalTreeTask(childList); int inCountLevel=2;
AtomicInteger inCountNum=new AtomicInteger(2);
EBomFormalTreeTask task = new EBomFormalTreeTask(childList,inCountLevel,inCountNum);
ForkJoinPool pool = new ForkJoinPool(); ForkJoinPool pool = new ForkJoinPool();
ForkJoinTask<List<BomNewEbomParentVO>> submit = pool.submit(task); ForkJoinTask<List<BomNewEbomParentVO>> submit = pool.submit(task);
List<BomNewEbomParentVO> bomList = submit.join(); List<BomNewEbomParentVO> bomList = submit.join();
@ -379,13 +376,15 @@ public class EBomForwardReport extends BaseForwardReport {
List<BomNewEbomParentVO> bomDetailAndParent(BomNewEbomParentVO parentBomRow) { List<BomNewEbomParentVO> bomDetailAndParent(BomNewEbomParentVO parentBomRow) {
if (isNewVersion()) { if (isNewVersion()) {
List<BomNewEbomParentVO> bomDetails = bomDetailList(parentBomRow.getRowId()); List<BomNewEbomParentVO> bomDetails =new ArrayList<>();
if (CollUtil.isNotEmpty(bomDetails)) {
parentBomRow.setLevelNum(1); parentBomRow.setLevelNum(1);
parentBomRow.setOrderNumber("1"); parentBomRow.setOrderNumber("1");
bomDetails.add(0, parentBomRow); bomDetails.add( parentBomRow);
List<BomNewEbomParentVO> childs= bomDetailList(parentBomRow.getRowId());
if(CollUtil.isNotEmpty(childs)){
bomDetails.addAll(childs);
} }
initMaterialInfo(bomDetails);
return bomDetails; return bomDetails;
} else { } else {
return bomDetailFormalList(parentBomRow); return bomDetailFormalList(parentBomRow);
@ -436,7 +435,7 @@ public class EBomForwardReport extends BaseForwardReport {
} }
} }
initMaterialInfo(voList);
return voList; return voList;
} }
@ -467,6 +466,7 @@ public class EBomForwardReport extends BaseForwardReport {
if (CollUtil.isEmpty(bomList)) { if (CollUtil.isEmpty(bomList)) {
continue; continue;
} }
initMaterialInfo(bomList);
List<ForwardReportVO> convertBomList = Convert.convert(new TypeReference<List<ForwardReportVO>>() { List<ForwardReportVO> convertBomList = Convert.convert(new TypeReference<List<ForwardReportVO>>() {
}, bomList); }, bomList);
@ -474,14 +474,14 @@ public class EBomForwardReport extends BaseForwardReport {
//转化为树结构 //转化为树结构
List<ForwardReportVO> nodeList = showDataStyle(convertBomList, parentFormal.getRowId()); List<ForwardReportVO> nodeList = showDataStyle(convertBomList, parentFormal.getRowId());
nodesList.addAll(nodeList);
for (ForwardReportVO vo : for (ForwardReportVO vo :
nodeList) { nodeList) {
vo.setBomVersion(parentFormal.getCurrentVersion()); vo.setBomVersion(parentFormal.getCurrentVersion());
// vo.setDeviseName(parentFormal.getDeviseName()); // vo.setDeviseName(parentFormal.getDeviseName());
vo.setExpireEndTime(parentFormal.getConvertToEbomTime()); vo.setExpireEndTime(parentFormal.getConvertToEbomTime());
} }
nodesList.addAll(nodeList);
} }
return buildReportBomVo(forwardReportVO, nodesList, query.getDataType()); return buildReportBomVo(forwardReportVO, nodesList, query.getDataType());

View File

@ -218,13 +218,19 @@ public class PBomForwardReport extends BaseForwardReport {
List<BomNewPbomParentVO> bomDetailAndParent(BomNewPbomParentVO parentBomRow) { List<BomNewPbomParentVO> bomDetailAndParent(BomNewPbomParentVO parentBomRow) {
if (isNewVersion()) { if (isNewVersion()) {
List<BomNewPbomParentVO> bomDetails = bomDetailList(parentBomRow.getRowId(),parentBomRow.getFacCode());
if (CollUtil.isNotEmpty(bomDetails)) { List<BomNewPbomParentVO> bomDetails =new ArrayList<>();
List<BomNewPbomParentVO> childs = bomDetailList(parentBomRow.getRowId(),parentBomRow.getFacCode());
parentBomRow.setLevelNum(1); parentBomRow.setLevelNum(1);
parentBomRow.setOrderNumber("1"); parentBomRow.setOrderNumber("1");
bomDetails.add(0, parentBomRow); bomDetails.add( parentBomRow);
if(CollUtil.isNotEmpty(childs)){
bomDetails.addAll(childs);
} }
initMaterialInfo(bomDetails);
return bomDetails; return bomDetails;
} else { } else {
return bomDetailFormalList(parentBomRow); return bomDetailFormalList(parentBomRow);
@ -271,7 +277,7 @@ public class PBomForwardReport extends BaseForwardReport {
} }
} }
initMaterialInfo(voList);
return voList; return voList;
} }
@ -296,36 +302,30 @@ public class PBomForwardReport extends BaseForwardReport {
ForwardReportVO forwardReportVO = Convert.convert(ForwardReportVO.class, parentFormal0); ForwardReportVO forwardReportVO = Convert.convert(ForwardReportVO.class, parentFormal0);
List<ForwardReportVO> nodesList=new ArrayList<>(); List<ForwardReportVO> nodesList=new ArrayList<>();
for (BomNewPbomParentVO parentFormal: for (BomNewPbomParentVO parentFormal:
listParent ) { listParent ) {
List<ForwardReportVO> nodeList=new ArrayList<>();
List<BomNewPbomParentVO> parentChildList = getParentChildList(ImmutableList.of(parentFormal.getRowId())); List<BomNewPbomParentVO> parentChildList = getParentChildList(ImmutableList.of(parentFormal.getRowId()));
initMaterialInfo(parentChildList);
initMaterialInfo(ImmutableList.of(parentFormal));
if (CollectionUtil.isNotEmpty(parentChildList)) {
AtomicInteger orderNum = new AtomicInteger(1); AtomicInteger orderNum = new AtomicInteger(1);
parentFormal.setLevelNum(1); parentFormal.setLevelNum(1);
parentFormal.setOrderNumber(orderNum.getAndIncrement() + ""); parentFormal.setOrderNumber(orderNum.getAndIncrement() + "");
List<ForwardReportVO> nodeList=new ArrayList<>();
nodeList.add(Convert.convert(ForwardReportVO.class, parentFormal)); nodeList.add(Convert.convert(ForwardReportVO.class, parentFormal));
if (CollectionUtil.isNotEmpty(parentChildList)) {
bomUpAndLowLevel(ImmutableList.of(parentFormal), parentChildList, null, 2, orderNum); bomUpAndLowLevel(ImmutableList.of(parentFormal), parentChildList, null, 2, orderNum);
nodeList.addAll( Convert.convert(new TypeReference<List<ForwardReportVO>>() { nodeList.addAll( Convert.convert(new TypeReference<List<ForwardReportVO>>() {
}, parentChildList)); }, parentChildList));
}
initMaterialInfo(nodeList);
nodeList.forEach(item->{ nodeList.forEach(item->{
item.setBomVersion(parentFormal.getCurrentVersion()); item.setBomVersion(parentFormal.getCurrentVersion());
}); });
nodesList.addAll(nodeList); nodesList.addAll(nodeList);
}
} }
return buildReportBomVo(forwardReportVO,nodesList); return buildReportBomVo(forwardReportVO,nodesList);
@ -494,6 +494,7 @@ public class PBomForwardReport extends BaseForwardReport {
if(CollUtil.isEmpty(bomList)){ if(CollUtil.isEmpty(bomList)){
continue; continue;
} }
initMaterialInfo(bomList);
List<ForwardReportVO> convertBomList = Convert.convert(new TypeReference<List<ForwardReportVO>>() { List<ForwardReportVO> convertBomList = Convert.convert(new TypeReference<List<ForwardReportVO>>() {
}, bomList); }, bomList);
@ -501,7 +502,7 @@ public class PBomForwardReport extends BaseForwardReport {
sumLevel(convertBomList); sumLevel(convertBomList);
//转化为树结构 //转化为树结构
List<ForwardReportVO> nodeList = showDataStyle(convertBomList, parentFormal.getRowId()); List<ForwardReportVO> nodeList = showDataStyle(convertBomList, parentFormal.getRowId());
nodesList.addAll(nodeList);
for (ForwardReportVO vo : for (ForwardReportVO vo :
nodeList) { nodeList) {
@ -511,7 +512,7 @@ public class PBomForwardReport extends BaseForwardReport {
vo.setExpireEndTime(parentFormal.getReleaseTime()); vo.setExpireEndTime(parentFormal.getReleaseTime());
} }
nodesList.addAll(nodeList);
} }
return buildReportBomVo(forwardReportVO,nodesList,query.getDataType()); return buildReportBomVo(forwardReportVO,nodesList,query.getDataType());