正查汇总调整
This commit is contained in:
parent
bb6e4daec0
commit
3b87848f60
|
|
@ -138,10 +138,30 @@ public class BomReportApi extends BaseApi {
|
|||
return resultBom1VO;
|
||||
}
|
||||
|
||||
if (query.getLeft().getVersionStrategy().compareTo(ReportConstant.VersionStrategyEnum.ALL.getValue()) == 0
|
||||
|| query.getLeft().getVersionStrategy().compareTo(ReportConstant.VersionStrategyEnum.DEFINE.getValue()) == 0 ) {
|
||||
if(StrUtil.isEmpty(query.getLeft().getBomVersion()))
|
||||
return ResultVO.error(STATE.ParamErr, "比对左边请选择一个版本");
|
||||
}
|
||||
|
||||
|
||||
if (resultBom2VO != null) {
|
||||
return resultBom2VO;
|
||||
}
|
||||
|
||||
if (query.getRight().getVersionStrategy().compareTo(ReportConstant.VersionStrategyEnum.ALL.getValue()) == 0
|
||||
|| query.getRight().getVersionStrategy().compareTo(ReportConstant.VersionStrategyEnum.DEFINE.getValue()) == 0 ) {
|
||||
if(StrUtil.isEmpty(query.getRight().getBomVersion()))
|
||||
return ResultVO.error(STATE.ParamErr, "比对右侧请选择一个版本");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if (!ObjectUtil.equal(query.getLeft().getQueryType(), query.getRight().getQueryType())) {
|
||||
|
||||
return ResultVO.error(STATE.ParamErr, "查询方式不一致");
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.nflg.product.bomnew.pojo.vo;
|
||||
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
|
|
@ -31,6 +32,19 @@ public class ForwardReportVO extends BaseMaterialVO {
|
|||
|
||||
@ApiModelProperty("层级")
|
||||
private Integer levelNum;
|
||||
@ApiModelProperty("查询物料bom版本")
|
||||
private String bomVersion;
|
||||
|
||||
@ApiModelProperty("层级描述")
|
||||
private String levelNumText;
|
||||
|
||||
public String getLevelNumText(){
|
||||
if(Objects.nonNull(levelNum)){
|
||||
levelNumText=StrUtil.repeat(".",levelNum);
|
||||
levelNumText=levelNumText+levelNum;
|
||||
}
|
||||
return levelNumText;
|
||||
}
|
||||
|
||||
@ApiModelProperty(value = "工厂编码")
|
||||
private String facCode;
|
||||
|
|
@ -56,6 +70,8 @@ public class ForwardReportVO extends BaseMaterialVO {
|
|||
@ApiModelProperty(value = "数量")
|
||||
private BigDecimal num;
|
||||
|
||||
|
||||
|
||||
public BigDecimal getNum(){
|
||||
|
||||
if(Objects.nonNull(num)) {
|
||||
|
|
|
|||
|
|
@ -44,10 +44,33 @@ public abstract class BaseForwardReport {
|
|||
* @param bomList
|
||||
*/
|
||||
protected void sumLevel(List<ForwardReportVO> bomList) {
|
||||
if(CollUtil.isEmpty(bomList)){
|
||||
return;
|
||||
}
|
||||
//分层统计,避免使用遍历树统计
|
||||
Map<Integer, List<ForwardReportVO>> listMap = bomList.stream().collect(Collectors.groupingBy(ForwardReportVO::getLevelNum));
|
||||
|
||||
// List<Map.Entry<Integer,List<ForwardReportVO>>> sortList=new ArrayList<>(listMap.entrySet());
|
||||
// Collections.sort(sortList, new Comparator<Map.Entry<Integer, List<ForwardReportVO>>>() {
|
||||
// @Override
|
||||
// public int compare(Map.Entry<Integer, List<ForwardReportVO>> o1, Map.Entry<Integer, List<ForwardReportVO>> o2) {
|
||||
// return o1.getKey().compareTo(o2.getKey());
|
||||
// }
|
||||
// });
|
||||
|
||||
//排序 层级升序
|
||||
Map<Integer, List<ForwardReportVO>> sortListMap= CollectionUtil.sort(listMap, new Comparator<Integer>() {
|
||||
@Override
|
||||
public int compare( Integer o1, Integer o2) {
|
||||
return o1.compareTo(o2 );
|
||||
}
|
||||
});
|
||||
sortListMap.putAll(listMap);
|
||||
|
||||
|
||||
|
||||
Map<Long, List<ForwardReportVO>> bomParentMap = bomList.stream().filter(u->Objects.nonNull(u.getParentRowId())&&u.getParentRowId()>0).collect(Collectors.groupingBy(ForwardReportVO::getParentRowId));
|
||||
listMap.forEach((key, value) -> {
|
||||
sortListMap.forEach((key, value) -> {
|
||||
value.forEach(parent -> {
|
||||
List<ForwardReportVO> dataList = bomParentMap.get(parent.getBomRowId());
|
||||
if (CollectionUtil.isNotEmpty(dataList) ) {
|
||||
|
|
|
|||
|
|
@ -294,17 +294,24 @@ public class EBomForwardReport extends BaseForwardReport {
|
|||
|
||||
initMaterialInfo(parentChildList);
|
||||
initMaterialInfo(ImmutableList.of(parentFormal));
|
||||
AtomicInteger orderNum = new AtomicInteger(1);
|
||||
parentFormal.setLevelNum(1);
|
||||
parentFormal.setOrderNumber(orderNum.getAndIncrement() + "");
|
||||
nodesList.add(Convert.convert(ForwardReportVO.class, parentFormal));
|
||||
if (CollectionUtil.isNotEmpty(parentChildList)) {
|
||||
AtomicInteger orderNum = new AtomicInteger(1);
|
||||
parentFormal.setLevelNum(1);
|
||||
parentFormal.setOrderNumber(orderNum.getAndIncrement() + "");
|
||||
nodesList.add(Convert.convert(ForwardReportVO.class, parentFormal));
|
||||
|
||||
|
||||
bomUpAndLowLevel(ImmutableList.of(parentFormal), parentChildList, null, 2, orderNum);
|
||||
bomUpAndLowLevel(ImmutableList.of(parentFormal), parentChildList, null, 2, orderNum);
|
||||
List<ForwardReportVO> nodeList = Convert.convert(new TypeReference<List<ForwardReportVO>>() {
|
||||
}, parentChildList);
|
||||
nodeList.forEach(item->{
|
||||
item.setBomVersion(parentFormal.getCurrentVersion());
|
||||
});
|
||||
|
||||
|
||||
nodesList.addAll(nodeList);
|
||||
}
|
||||
|
||||
List<ForwardReportVO> nodeList = Convert.convert(new TypeReference<List<ForwardReportVO>>() {
|
||||
}, parentChildList);
|
||||
nodesList.addAll(nodeList);
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -469,7 +476,7 @@ public class EBomForwardReport extends BaseForwardReport {
|
|||
nodesList.addAll(nodeList);
|
||||
for (ForwardReportVO vo :
|
||||
nodeList) {
|
||||
|
||||
vo.setBomVersion(parentFormal.getCurrentVersion());
|
||||
// vo.setDeviseName(parentFormal.getDeviseName());
|
||||
vo.setExpireEndTime(parentFormal.getConvertToEbomTime());
|
||||
}
|
||||
|
|
@ -489,40 +496,77 @@ public class EBomForwardReport extends BaseForwardReport {
|
|||
* @return
|
||||
*/
|
||||
ReportBomVO sumReport() {
|
||||
List<BomNewEbomParentVO> listParent = getParentV2();
|
||||
if (CollUtil.isEmpty(listParent)) {
|
||||
|
||||
ReportBomVO multiReportObj = multiReport();
|
||||
|
||||
if(multiReportObj==null || CollUtil.isEmpty(multiReportObj.getChildNodes())){
|
||||
return null;
|
||||
}
|
||||
BomNewEbomParentVO parentFormal0 = listParent.get(0);
|
||||
ForwardReportVO forwardReportVO = Convert.convert(ForwardReportVO.class, parentFormal0);
|
||||
|
||||
List<ForwardReportVO> nodesList = new ArrayList<>();
|
||||
for (BomNewEbomParentVO parentFormal : listParent) {
|
||||
Map<String,List<ForwardReportVO>> bomVesionMap=multiReportObj.getChildNodes().stream().collect(Collectors.groupingBy(ForwardReportVO::getBomVersion));
|
||||
bomVesionMap.forEach((key, value) -> {
|
||||
|
||||
List<BomNewEbomParentVO> bomList = bomDetailAndParent(parentFormal);
|
||||
if (CollUtil.isEmpty(bomList)) {
|
||||
continue;
|
||||
}
|
||||
List<ForwardReportVO> convertBomList = Convert.convert(new TypeReference<List<ForwardReportVO>>() {
|
||||
}, bomList);
|
||||
sumLevel(convertBomList);
|
||||
|
||||
//无子级的数据
|
||||
List<ForwardReportVO> nodeList = leafMergeMaterialNo(convertBomList);
|
||||
if(CollUtil.isNotEmpty(value)){
|
||||
//无子级的数据
|
||||
List<ForwardReportVO> nodeList = leafMergeMaterialNo(value);
|
||||
|
||||
nodesList.addAll(nodeList);
|
||||
AtomicInteger orderNum = new AtomicInteger(1);
|
||||
for (ForwardReportVO vo :
|
||||
nodeList) {
|
||||
AtomicInteger orderNum = new AtomicInteger(1);
|
||||
for (ForwardReportVO vo :
|
||||
nodeList) {
|
||||
|
||||
// vo.setLevelNum(1);
|
||||
vo.setOrderNumber(orderNum.incrementAndGet() + "");
|
||||
|
||||
}
|
||||
|
||||
nodesList.addAll(nodeList);
|
||||
|
||||
vo.setLevelNum(1);
|
||||
vo.setOrderNumber(orderNum.incrementAndGet() + "");
|
||||
vo.setExpireEndTime(parentFormal.getConvertToEbomTime());
|
||||
// vo.setDeviseName(forwardReportVO.getDeviseName());
|
||||
}
|
||||
|
||||
}
|
||||
return buildReportBomVo(forwardReportVO, nodesList);
|
||||
|
||||
});
|
||||
|
||||
|
||||
multiReportObj.getChildNodes().clear();
|
||||
multiReportObj.getChildNodes().addAll(nodesList);
|
||||
|
||||
return multiReportObj;
|
||||
|
||||
// List<BomNewEbomParentVO> listParent = getParentV2();
|
||||
// if (CollUtil.isEmpty(listParent)) {
|
||||
// return null;
|
||||
// }
|
||||
// BomNewEbomParentVO parentFormal0 = listParent.get(0);
|
||||
// ForwardReportVO forwardReportVO = Convert.convert(ForwardReportVO.class, parentFormal0);
|
||||
//
|
||||
// List<ForwardReportVO> nodesList = new ArrayList<>();
|
||||
// for (BomNewEbomParentVO parentFormal : listParent) {
|
||||
//
|
||||
// List<BomNewEbomParentVO> bomList = bomDetailAndParent(parentFormal);
|
||||
// if (CollUtil.isEmpty(bomList)) {
|
||||
// continue;
|
||||
// }
|
||||
// List<ForwardReportVO> convertBomList = Convert.convert(new TypeReference<List<ForwardReportVO>>() {
|
||||
// }, bomList);
|
||||
// sumLevel(convertBomList);
|
||||
//
|
||||
// //无子级的数据
|
||||
// List<ForwardReportVO> nodeList = leafMergeMaterialNo(convertBomList);
|
||||
//
|
||||
// nodesList.addAll(nodeList);
|
||||
// AtomicInteger orderNum = new AtomicInteger(1);
|
||||
// for (ForwardReportVO vo :
|
||||
// nodeList) {
|
||||
//
|
||||
// vo.setLevelNum(1);
|
||||
// vo.setOrderNumber(orderNum.incrementAndGet() + "");
|
||||
// vo.setExpireEndTime(parentFormal.getConvertToEbomTime());
|
||||
// // vo.setDeviseName(forwardReportVO.getDeviseName());
|
||||
// }
|
||||
//
|
||||
// }
|
||||
// return buildReportBomVo(forwardReportVO, nodesList);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -311,14 +311,20 @@ public class PBomForwardReport extends BaseForwardReport {
|
|||
parentFormal.setOrderNumber(orderNum.getAndIncrement() + "");
|
||||
nodesList.add(Convert.convert(ForwardReportVO.class, parentFormal));
|
||||
bomUpAndLowLevel(ImmutableList.of(parentFormal), parentChildList, null, 2, orderNum);
|
||||
List<ForwardReportVO> nodeList = Convert.convert(new TypeReference<List<ForwardReportVO>>() {
|
||||
}, parentChildList);
|
||||
|
||||
nodeList.forEach(item->{
|
||||
item.setBomVersion(parentFormal.getCurrentVersion());
|
||||
});
|
||||
|
||||
nodesList.addAll(nodeList);
|
||||
}
|
||||
|
||||
|
||||
|
||||
List<ForwardReportVO> nodeList = Convert.convert(new TypeReference<List<ForwardReportVO>>() {
|
||||
}, parentChildList);
|
||||
nodesList.addAll(nodeList);
|
||||
|
||||
|
||||
}
|
||||
return buildReportBomVo(forwardReportVO,nodesList);
|
||||
}
|
||||
|
|
@ -497,7 +503,7 @@ public class PBomForwardReport extends BaseForwardReport {
|
|||
|
||||
for (ForwardReportVO vo :
|
||||
nodeList) {
|
||||
|
||||
vo.setBomVersion(parentFormal.getCurrentVersion());
|
||||
// vo.setDeviseName(parentFormal.getDeviseName());
|
||||
// vo.setCreatedTime(parentFormal.getCreatedTime());
|
||||
vo.setExpireEndTime(parentFormal.getReleaseTime());
|
||||
|
|
@ -517,41 +523,77 @@ public class PBomForwardReport extends BaseForwardReport {
|
|||
* @return
|
||||
*/
|
||||
ReportBomVO sumReport() {
|
||||
List<BomNewPbomParentVO> listParent=getParentV2();
|
||||
if (CollUtil.isEmpty(listParent)) {
|
||||
|
||||
ReportBomVO multiReportObj = multiReport();
|
||||
|
||||
if(multiReportObj==null || CollUtil.isEmpty(multiReportObj.getChildNodes())){
|
||||
return null;
|
||||
}
|
||||
BomNewPbomParentVO parentFormal0=listParent.get(0);
|
||||
ForwardReportVO forwardReportVO = Convert.convert(ForwardReportVO.class, parentFormal0);
|
||||
List<ForwardReportVO> nodesList = new ArrayList<>();
|
||||
Map<String,List<ForwardReportVO>> bomVesionMap=multiReportObj.getChildNodes().stream().collect(Collectors.groupingBy(ForwardReportVO::getBomVersion));
|
||||
bomVesionMap.forEach((key, value) -> {
|
||||
|
||||
List<ForwardReportVO> nodesList=new ArrayList<>();
|
||||
for (BomNewPbomParentVO parentFormal:
|
||||
listParent ) {
|
||||
if(CollUtil.isNotEmpty(value)) {
|
||||
//无子级的数据
|
||||
List<ForwardReportVO> nodeList = leafMergeMaterialNo(value);
|
||||
|
||||
AtomicInteger orderNum = new AtomicInteger(1);
|
||||
for (ForwardReportVO vo :
|
||||
nodeList) {
|
||||
|
||||
List<BomNewPbomParentVO> bomList = bomDetailAndParent(parentFormal );
|
||||
// vo.setLevelNum(1);
|
||||
vo.setOrderNumber(orderNum.incrementAndGet() + "");
|
||||
|
||||
}
|
||||
|
||||
nodesList.addAll(nodeList);
|
||||
|
||||
if(CollUtil.isEmpty(bomList)){
|
||||
continue;
|
||||
}
|
||||
List<ForwardReportVO> convertBomList = Convert.convert(new TypeReference<List<ForwardReportVO>>() {
|
||||
}, bomList);
|
||||
|
||||
sumLevel(convertBomList);
|
||||
List<ForwardReportVO> nodeList = leafMergeMaterialNo(convertBomList);
|
||||
nodesList.addAll(nodeList);
|
||||
int noNum = 1;
|
||||
for (ForwardReportVO vo : nodeList) {
|
||||
vo.setOrderNumber(noNum + "");
|
||||
noNum++;
|
||||
// vo.setDeviseName(forwardReportVO.getDeviseName());
|
||||
vo.setCreatedTime(parentFormal.getCreatedTime());
|
||||
vo.setExpireEndTime(parentFormal.getReleaseTime());
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
return buildReportBomVo(forwardReportVO,nodesList);
|
||||
multiReportObj.getChildNodes().clear();
|
||||
multiReportObj.getChildNodes().addAll(nodesList);
|
||||
|
||||
return multiReportObj;
|
||||
|
||||
|
||||
|
||||
// List<BomNewPbomParentVO> listParent=getParentV2();
|
||||
// if (CollUtil.isEmpty(listParent)) {
|
||||
// return null;
|
||||
// }
|
||||
// BomNewPbomParentVO parentFormal0=listParent.get(0);
|
||||
// ForwardReportVO forwardReportVO = Convert.convert(ForwardReportVO.class, parentFormal0);
|
||||
//
|
||||
// List<ForwardReportVO> nodesList=new ArrayList<>();
|
||||
// for (BomNewPbomParentVO parentFormal:
|
||||
// listParent ) {
|
||||
//
|
||||
//
|
||||
// List<BomNewPbomParentVO> bomList = bomDetailAndParent(parentFormal );
|
||||
//
|
||||
// if(CollUtil.isEmpty(bomList)){
|
||||
// continue;
|
||||
// }
|
||||
// List<ForwardReportVO> convertBomList = Convert.convert(new TypeReference<List<ForwardReportVO>>() {
|
||||
// }, bomList);
|
||||
//
|
||||
// sumLevel(convertBomList);
|
||||
// List<ForwardReportVO> nodeList = leafMergeMaterialNo(convertBomList);
|
||||
// nodesList.addAll(nodeList);
|
||||
// int noNum = 1;
|
||||
// for (ForwardReportVO vo : nodeList) {
|
||||
// vo.setOrderNumber(noNum + "");
|
||||
// noNum++;
|
||||
// // vo.setDeviseName(forwardReportVO.getDeviseName());
|
||||
// vo.setCreatedTime(parentFormal.getCreatedTime());
|
||||
// vo.setExpireEndTime(parentFormal.getReleaseTime());
|
||||
// }
|
||||
//
|
||||
//
|
||||
// }
|
||||
// return buildReportBomVo(forwardReportVO,nodesList);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue