|
@@ -746,7 +746,7 @@ public class SubInfoExportController extends BaseController {
|
|
|
LinkedHashMap<String, List<SubInfoTotalExcel>> industryList = subInfoTotalExcel.stream().collect(Collectors.groupingBy(SubInfoTotalExcel::getInduskind, LinkedHashMap::new, Collectors.toList()));
|
|
|
|
|
|
//遍历subInfoTotalExcel数据计算总金额
|
|
|
- BigDecimal totalAmt = subInfoTotalExcel.stream().map(SubInfoTotalExcel::getAmtTotal).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ BigDecimal totalAmt = subInfoTotalExcel.stream().map(e->Optional.ofNullable(e.getAmtTotal()).orElse(BigDecimal.ZERO)).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
Integer totalNum = subInfoTotalExcel.size();
|
|
|
|
|
|
LinkedHashMap<String, List<List<String>>> finalDataMap = new LinkedHashMap<>();
|
|
@@ -758,7 +758,7 @@ public class SubInfoExportController extends BaseController {
|
|
|
data.add("按属地分");
|
|
|
data.add(subInfoListEntry.getKey());
|
|
|
data.add(String.valueOf(subInfoListEntry.getValue().size()));
|
|
|
- data.add(String.valueOf(subInfoListEntry.getValue().stream().map(SubInfoTotalExcel::getAmtTotal).reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ data.add(String.valueOf(subInfoListEntry.getValue().stream().map(e->Optional.ofNullable(e.getAmtTotal()).orElse(BigDecimal.ZERO)).reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
areaData.add(data);
|
|
|
}
|
|
|
finalDataMap.put("按属地划分", areaData);
|
|
@@ -770,7 +770,7 @@ public class SubInfoExportController extends BaseController {
|
|
|
data.add("按规模划分");
|
|
|
data.add(subInfoListEntry.getKey());
|
|
|
data.add(String.valueOf(subInfoListEntry.getValue().size()));
|
|
|
- data.add(String.valueOf(subInfoListEntry.getValue().stream().map(SubInfoTotalExcel::getAmtTotal).reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ data.add(String.valueOf(subInfoListEntry.getValue().stream().map(e->Optional.ofNullable(e.getAmtTotal()).orElse(BigDecimal.ZERO)).reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
moneyData.add(data);
|
|
|
}
|
|
|
finalDataMap.put("按规模划分", moneyData);
|
|
@@ -782,7 +782,7 @@ public class SubInfoExportController extends BaseController {
|
|
|
data.add("按行业分");
|
|
|
data.add(subInfoListEntry.getKey());
|
|
|
data.add(String.valueOf(subInfoListEntry.getValue().size()));
|
|
|
- data.add(String.valueOf(subInfoListEntry.getValue().stream().map(SubInfoTotalExcel::getAmtTotal).reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ data.add(String.valueOf(subInfoListEntry.getValue().stream().map(e->Optional.ofNullable(e.getAmtTotal()).orElse(BigDecimal.ZERO)).reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
industryData.add(data);
|
|
|
}
|
|
|
finalDataMap.put("按行业划分", industryData);
|
|
@@ -1280,7 +1280,9 @@ public class SubInfoExportController extends BaseController {
|
|
|
statusGroupList.forEach((key, value) -> {
|
|
|
SubInfoStatusEnum anEnum = SubInfoStatusEnum.getEnum(key);
|
|
|
String statusRate = new BigDecimal(value.size()).multiply(new BigDecimal(100)).divide(new BigDecimal(list.size()), 2, RoundingMode.HALF_UP) + "%";
|
|
|
- BigDecimal totalAmt = value.stream().map(SubInfoTotalExcel::getAmtTotal).reduce(BigDecimal.ZERO, BigDecimal::add).divide(new BigDecimal(10000), 2, RoundingMode.HALF_UP);
|
|
|
+ BigDecimal totalAmt = value.stream()
|
|
|
+ .map(e->Optional.ofNullable(e.getAmtTotal()).orElse(BigDecimal.ZERO))
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add).divide(new BigDecimal(10000), 2, RoundingMode.HALF_UP);
|
|
|
String format = String.format("%s项目%s个,占工业项目总数的%s,计划总投资%s亿元;", anEnum.getDesc(), value.size(), statusRate, totalAmt);
|
|
|
statusStrBuilder.append(format);
|
|
|
});
|
|
@@ -1292,7 +1294,9 @@ public class SubInfoExportController extends BaseController {
|
|
|
Map<String, List<SubInfoTotalExcel>> subjectGroupList = list.stream().collect(Collectors.groupingBy(SubInfoTotalExcel::getSubjectId));
|
|
|
subjectGroupList.forEach((key, value) -> {
|
|
|
String rate = new BigDecimal(value.size()).multiply(new BigDecimal(100)).divide(new BigDecimal(list.size()), 2, RoundingMode.HALF_UP) + "%";
|
|
|
- BigDecimal totalAmt = value.stream().map(SubInfoTotalExcel::getAmtTotal).reduce(BigDecimal.ZERO, BigDecimal::add).divide(new BigDecimal(10000), 2, RoundingMode.HALF_UP);
|
|
|
+ BigDecimal totalAmt = value.stream()
|
|
|
+ .map(e->Optional.ofNullable(e.getAmtTotal()).orElse(BigDecimal.ZERO))
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add).divide(new BigDecimal(10000), 2, RoundingMode.HALF_UP);
|
|
|
String format = String.format("%s%s个,占工业项目总数的%s,计划总投资%s亿元;", jsddMap.get(key), value.size(), rate, totalAmt);
|
|
|
subjectStrBuilder.append(format);
|
|
|
});
|
|
@@ -1315,7 +1319,9 @@ public class SubInfoExportController extends BaseController {
|
|
|
}));
|
|
|
scaleGroupList.forEach((key, value) -> {
|
|
|
String rate = new BigDecimal(value.size()).multiply(new BigDecimal(100)).divide(new BigDecimal(list.size()), 2, RoundingMode.HALF_UP) + "%";
|
|
|
- BigDecimal totalAmt = value.stream().map(SubInfoTotalExcel::getAmtTotal).reduce(BigDecimal.ZERO, BigDecimal::add).divide(new BigDecimal(10000), 2, RoundingMode.HALF_UP);
|
|
|
+ BigDecimal totalAmt = value.stream()
|
|
|
+ .map(e->Optional.ofNullable(e.getAmtTotal()).orElse(BigDecimal.ZERO))
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add).divide(new BigDecimal(10000), 2, RoundingMode.HALF_UP);
|
|
|
String format = String.format("计划总投资%s项目%s个,占工业项目总数的%s,计划总投资%s亿元;", key, value.size(), rate, totalAmt);
|
|
|
scaleStrBuilder.append(format);
|
|
|
});
|
|
@@ -1335,7 +1341,9 @@ public class SubInfoExportController extends BaseController {
|
|
|
}));
|
|
|
hyGroupList.forEach((key, value) -> {
|
|
|
String rate = new BigDecimal(value.size()).multiply(new BigDecimal(100)).divide(new BigDecimal(list.size()), 2, RoundingMode.HALF_UP) + "%";
|
|
|
- BigDecimal totalAmt = value.stream().map(SubInfoTotalExcel::getAmtTotal).reduce(BigDecimal.ZERO, BigDecimal::add).divide(new BigDecimal(10000), 2, RoundingMode.HALF_UP);
|
|
|
+ BigDecimal totalAmt = value.stream()
|
|
|
+ .map(e->Optional.ofNullable(e.getAmtTotal()).orElse(BigDecimal.ZERO))
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add).divide(new BigDecimal(10000), 2, RoundingMode.HALF_UP);
|
|
|
String format = String.format("%s项目%s个,占工业项目总数的%s,计划总投资%s亿元;", hyflMap.getOrDefault(key, key), value.size(), rate, totalAmt);
|
|
|
hyStrBuilder.append(format);
|
|
|
});
|
|
@@ -1834,7 +1842,7 @@ public class SubInfoExportController extends BaseController {
|
|
|
jsddMap.getOrDefault(entry.getKey(), entry.getKey()),
|
|
|
entry.getValue().size(),
|
|
|
entry.getValue().stream()
|
|
|
- .map(SubInfoTotalExcel::getAmtTotal)
|
|
|
+ .map(e->Optional.ofNullable(e.getAmtTotal()).orElse(BigDecimal.ZERO))
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
.divide(new BigDecimal("10000"), 2, RoundingMode.HALF_UP)
|
|
|
))
|
|
@@ -1874,7 +1882,7 @@ public class SubInfoExportController extends BaseController {
|
|
|
entry.getKey(),
|
|
|
entry.getValue().size(),
|
|
|
entry.getValue().stream()
|
|
|
- .map(SubInfoTotalExcel::getAmtTotal)
|
|
|
+ .map(e->Optional.ofNullable(e.getAmtTotal()).orElse(BigDecimal.ZERO))
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
.divide(new BigDecimal("10000"), 2, RoundingMode.HALF_UP)
|
|
|
))
|
|
@@ -1908,7 +1916,7 @@ public class SubInfoExportController extends BaseController {
|
|
|
hyflMap.getOrDefault(entry.getKey(), entry.getKey()),
|
|
|
entry.getValue().size(),
|
|
|
entry.getValue().stream()
|
|
|
- .map(SubInfoTotalExcel::getAmtTotal)
|
|
|
+ .map(e->Optional.ofNullable(e.getAmtTotal()).orElse(BigDecimal.ZERO))
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
.divide(new BigDecimal("10000"), 2, RoundingMode.HALF_UP)
|
|
|
)
|
|
@@ -1928,7 +1936,9 @@ public class SubInfoExportController extends BaseController {
|
|
|
exportData.addAll(ddList);
|
|
|
exportData.addAll(amtList);
|
|
|
exportData.addAll(hyList);
|
|
|
- BigDecimal reduce = list.stream().map(SubInfoTotalExcel::getAmtTotal).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ BigDecimal reduce = list.stream()
|
|
|
+ .map(e->Optional.ofNullable(e.getAmtTotal()).orElse(BigDecimal.ZERO))
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
exportData.add(new SubInfoTotalInfoVO("合计", "合计", list.size(), reduce.divide(new BigDecimal("10000"), 2, RoundingMode.HALF_UP)));
|
|
|
// 4.导出
|
|
|
ExportParams exportParams = null;
|
|
@@ -2075,7 +2085,10 @@ public class SubInfoExportController extends BaseController {
|
|
|
collect.forEach((key, value) -> {
|
|
|
map.put(key, Collections.singletonList(new LinkedHashMap<String, Object>() {{
|
|
|
put("count", value.size());
|
|
|
- BigDecimal reduce = value.stream().map(SubInfoTotalExcel::getAmtTotal).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ BigDecimal reduce = value.stream()
|
|
|
+ .map(e->Optional.ofNullable(e.getAmtTotal()).orElse(BigDecimal.ZERO))
|
|
|
+ .map(amt -> Optional.ofNullable(amt).orElse(BigDecimal.ZERO))
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
put("amt", reduce.divide(new BigDecimal("10000"), 2, RoundingMode.HALF_UP));
|
|
|
}}));
|
|
|
});
|
|
@@ -2085,7 +2098,7 @@ public class SubInfoExportController extends BaseController {
|
|
|
|
|
|
// 合计列
|
|
|
BigDecimal cbAmtSum = statusGroup.stream()
|
|
|
- .map(SubInfoTotalExcel::getAmtTotal)
|
|
|
+ .map(e->Optional.ofNullable(e.getAmtTotal()).orElse(BigDecimal.ZERO))
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
rowMap.put("hj", Collections.singletonList(new LinkedHashMap<String, Object>() {{
|
|
|
put("count", statusGroup.size());
|
|
@@ -2138,7 +2151,7 @@ public class SubInfoExportController extends BaseController {
|
|
|
|
|
|
// 写入合计行
|
|
|
BigDecimal totalAmt = subInfoTotalExcel.stream()
|
|
|
- .map(SubInfoFixDetail::getAmtTotal)
|
|
|
+ .map(e->Optional.ofNullable(e.getAmtTotal()).orElse(BigDecimal.ZERO))
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
writer.writeRow(CollUtil.newArrayList(
|
|
|
"合计(" + subInfoTotalExcel.size() + "个)", "", "", "", totalAmt.toString(), "", "", ""));
|
|
@@ -2255,7 +2268,7 @@ public class SubInfoExportController extends BaseController {
|
|
|
|
|
|
// 写入合计行
|
|
|
BigDecimal totalAmt = subInfoTotalExcel.stream()
|
|
|
- .map(SubInfoFixCbDetail::getAmtTotal)
|
|
|
+ .map(e->Optional.ofNullable(e.getAmtTotal()).orElse(BigDecimal.ZERO))
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
writer.writeRow(CollUtil.newArrayList(
|
|
|
"合计(" + subInfoTotalExcel.size() + "个)", "", "", "", totalAmt.toString(), "", ""));
|
|
@@ -2355,7 +2368,7 @@ public class SubInfoExportController extends BaseController {
|
|
|
|
|
|
// 写入合计行
|
|
|
BigDecimal totalAmt = subInfoTotalExcel.stream()
|
|
|
- .map(SubInfoFixZjDetail::getAmtTotal)
|
|
|
+ .map(e->Optional.ofNullable(e.getAmtTotal()).orElse(BigDecimal.ZERO))
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
writer.writeRow(CollUtil.newArrayList(
|
|
|
"合计(" + subInfoTotalExcel.size() + "个)", "", "", "", totalAmt.toString(), "", ""));
|