Commit 09485835 authored by chenyuefang's avatar chenyuefang

update

parent 9f3fb21f
......@@ -13,6 +13,7 @@ import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Optional;
/**
* 成本汇总-项目汇总自定义导入
......@@ -83,6 +84,17 @@ public class CbSummaryProjectImportListener extends AnalysisEventListener<CbSumm
importVo.setLevel(1);
} else if (importVo.getNumber().matches("^[0-9]*[1-9][0-9]*$")) {//判断是否为正整数
importVo.setLevel(Integer.valueOf(importVo.getNumber()));
//判断上一条数据level是否与当前一致或为上一级
Optional<CbSummaryProjectImportVo> max = resultList.stream().max(Comparator.comparing(CbSummaryProjectImportVo::getSort));
CbSummaryProjectImportVo preImportVo = null;
if (!max.isPresent()) {
preImportVo = max.get();
} else {
throw new ServiceException("'序号'列数据错误,无法匹配层级!");
}
if (importVo.getLevel() > preImportVo.getLevel() && importVo.getLevel() != preImportVo.getLevel() + 1) {
throw new ServiceException("'序号'列数据错误,无法匹配层级!");
}
}
......
......@@ -149,9 +149,12 @@ public class CbSummaryServiceImpl extends ServiceImpl<CbSummaryMapper, CbSummary
}
//获取父级id
Integer parentLevel = cbSummary.getLevel() - 1;
CbSummary parent = cbSummaryList.stream().filter(summary -> summary.getSort() < cbSummary.getSort() && summary.getLevel() == parentLevel)
.max(Comparator.comparing(CbSummary::getSort)).get();
CbSummary parent = null;
Optional<CbSummary> max = cbSummaryList.stream().filter(summary -> summary.getSort() < cbSummary.getSort() && summary.getLevel() == parentLevel)
.max(Comparator.comparing(CbSummary::getSort));
if (max.isPresent()) {
parent = max.get();
}
if(ObjectUtil.isNull(parent)){
throw new ServiceException("'序号'列数据错误,无法匹配层级!");
}
......@@ -223,10 +226,23 @@ public class CbSummaryServiceImpl extends ServiceImpl<CbSummaryMapper, CbSummary
if (cbSummary.getLevel() == 0) {
continue;
}
//获取父级id
Integer parentLevel = cbSummary.getLevel() - 1;
CbSummary parent = cbSummaryList.stream().filter(summary -> summary.getSort() < cbSummary.getSort() && summary.getLevel() == parentLevel)
.max(Comparator.comparing(CbSummary::getSort)).get();
CbSummary parent = null;
//通过序号获取parentId
if (StringUtil.count(cbSummary.getNumber(), "-") > 1) {
String parentNumber = cbSummary.getNumber().substring(0, cbSummary.getNumber().lastIndexOf("-"));
Optional<CbSummary> max = cbSummaryList.stream().limit(cbSummary.getSort()).filter(summary -> summary.getNumber().equals(parentNumber))
.max(Comparator.comparing(CbSummary::getSort));
if (max.isPresent()) {
parent = max.get();
}
} else {
Integer parentLevel = cbSummary.getLevel() - 1;
Optional<CbSummary> max = cbSummaryList.stream().filter(summary -> summary.getSort() < cbSummary.getSort() && summary.getLevel() == parentLevel)
.max(Comparator.comparing(CbSummary::getSort));
if (max.isPresent()) {
parent = max.get();
}
}
if(ObjectUtil.isNull(parent)){
throw new ServiceException("'序号'列数据错误,无法匹配层级!");
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment