|
@@ -34,6 +34,7 @@ import com.rtrh.projects.modules.projects.po.LogOperate;
|
|
import com.rtrh.projects.modules.projects.po.SubIndu;
|
|
import com.rtrh.projects.modules.projects.po.SubIndu;
|
|
import com.rtrh.projects.modules.projects.po.SubInfoGxj;
|
|
import com.rtrh.projects.modules.projects.po.SubInfoGxj;
|
|
import com.rtrh.projects.modules.projects.service.ILogOperateService;
|
|
import com.rtrh.projects.modules.projects.service.ILogOperateService;
|
|
|
|
+import com.rtrh.projects.modules.projects.vo.LogOperateVO;
|
|
import com.rtrh.projects.modules.projects.vo.StatusChangeCountersVO;
|
|
import com.rtrh.projects.modules.projects.vo.StatusChangeCountersVO;
|
|
import com.rtrh.projects.modules.projects.vo.SubInfoTotalExcel;
|
|
import com.rtrh.projects.modules.projects.vo.SubInfoTotalExcel;
|
|
import com.rtrh.projects.modules.projects.vo.export.*;
|
|
import com.rtrh.projects.modules.projects.vo.export.*;
|
|
@@ -1009,7 +1010,7 @@ public class SubInfoExportController extends BaseController {
|
|
statusGroupList.forEach((key, value) -> {
|
|
statusGroupList.forEach((key, value) -> {
|
|
SubInfoStatusEnum anEnum = SubInfoStatusEnum.getEnum(key);
|
|
SubInfoStatusEnum anEnum = SubInfoStatusEnum.getEnum(key);
|
|
String statusRate = new BigDecimal(value.size()).multiply(new BigDecimal(100)).divide(new BigDecimal(list.size()), 2, RoundingMode.HALF_UP) + "%";
|
|
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);
|
|
|
|
|
|
+ BigDecimal totalAmt = value.stream().map(SubInfoTotalExcel::getAmtTotal).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);
|
|
String format = String.format("%s项目%s个,占工业项目总数的%s,计划总投资%s亿元;", anEnum.getDesc(), value.size(), statusRate, totalAmt);
|
|
statusStrBuilder.append(format);
|
|
statusStrBuilder.append(format);
|
|
});
|
|
});
|
|
@@ -1021,7 +1022,7 @@ public class SubInfoExportController extends BaseController {
|
|
Map<String, List<SubInfoTotalExcel>> subjectGroupList = list.stream().collect(Collectors.groupingBy(SubInfoTotalExcel::getSubjectId));
|
|
Map<String, List<SubInfoTotalExcel>> subjectGroupList = list.stream().collect(Collectors.groupingBy(SubInfoTotalExcel::getSubjectId));
|
|
subjectGroupList.forEach((key, value) -> {
|
|
subjectGroupList.forEach((key, value) -> {
|
|
String rate = new BigDecimal(value.size()).multiply(new BigDecimal(100)).divide(new BigDecimal(list.size()), 2, RoundingMode.HALF_UP) + "%";
|
|
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);
|
|
|
|
|
|
+ BigDecimal totalAmt = value.stream().map(SubInfoTotalExcel::getAmtTotal).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);
|
|
String format = String.format("%s%s个,占工业项目总数的%s,计划总投资%s亿元;", jsddMap.get(key), value.size(), rate, totalAmt);
|
|
subjectStrBuilder.append(format);
|
|
subjectStrBuilder.append(format);
|
|
});
|
|
});
|
|
@@ -1044,7 +1045,7 @@ public class SubInfoExportController extends BaseController {
|
|
}));
|
|
}));
|
|
scaleGroupList.forEach((key, value) -> {
|
|
scaleGroupList.forEach((key, value) -> {
|
|
String rate = new BigDecimal(value.size()).multiply(new BigDecimal(100)).divide(new BigDecimal(list.size()), 2, RoundingMode.HALF_UP) + "%";
|
|
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);
|
|
|
|
|
|
+ BigDecimal totalAmt = value.stream().map(SubInfoTotalExcel::getAmtTotal).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);
|
|
String format = String.format("计划总投资%s项目%s个,占工业项目总数的%s,计划总投资%s亿元;", key, value.size(), rate, totalAmt);
|
|
scaleStrBuilder.append(format);
|
|
scaleStrBuilder.append(format);
|
|
});
|
|
});
|
|
@@ -1064,7 +1065,7 @@ public class SubInfoExportController extends BaseController {
|
|
}));
|
|
}));
|
|
hyGroupList.forEach((key, value) -> {
|
|
hyGroupList.forEach((key, value) -> {
|
|
String rate = new BigDecimal(value.size()).multiply(new BigDecimal(100)).divide(new BigDecimal(list.size()), 2, RoundingMode.HALF_UP) + "%";
|
|
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);
|
|
|
|
|
|
+ BigDecimal totalAmt = value.stream().map(SubInfoTotalExcel::getAmtTotal).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);
|
|
String format = String.format("%s项目%s个,占工业项目总数的%s,计划总投资%s亿元;", hyflMap.getOrDefault(key, key), value.size(), rate, totalAmt);
|
|
hyStrBuilder.append(format);
|
|
hyStrBuilder.append(format);
|
|
});
|
|
});
|
|
@@ -1072,7 +1073,7 @@ public class SubInfoExportController extends BaseController {
|
|
data.put("hyStr", hyStr);
|
|
data.put("hyStr", hyStr);
|
|
|
|
|
|
// 一、项目转化情况
|
|
// 一、项目转化情况
|
|
- List<LogOperate> logList = logOperateService.queryByYear(year);
|
|
|
|
|
|
+ List<LogOperateVO> logList = logOperateService.queryByYear(year);
|
|
StatusChangeCountersVO totalCounterVo = new StatusChangeCountersVO();
|
|
StatusChangeCountersVO totalCounterVo = new StatusChangeCountersVO();
|
|
addNum(logList, totalCounterVo);
|
|
addNum(logList, totalCounterVo);
|
|
data.put("cbToXjNum", totalCounterVo.cbToXjNum);
|
|
data.put("cbToXjNum", totalCounterVo.cbToXjNum);
|
|
@@ -1082,7 +1083,7 @@ public class SubInfoExportController extends BaseController {
|
|
data.put("xjToCbNum", totalCounterVo.xjToCbNum);
|
|
data.put("xjToCbNum", totalCounterVo.xjToCbNum);
|
|
data.put("rgToZjNum", totalCounterVo.rgToZjNum);
|
|
data.put("rgToZjNum", totalCounterVo.rgToZjNum);
|
|
|
|
|
|
- List<LogOperate> lastLogList = logList.stream().filter(logOperate -> DateUtil.month(logOperate.getCreateTime()) < DateUtil.month(new Date())).collect(Collectors.toList());
|
|
|
|
|
|
+ List<LogOperateVO> lastLogList = logList.stream().filter(logOperate -> DateUtil.month(logOperate.getCreateTime()) < DateUtil.month(new Date())).collect(Collectors.toList());
|
|
StatusChangeCountersVO lastCounterVo = new StatusChangeCountersVO();
|
|
StatusChangeCountersVO lastCounterVo = new StatusChangeCountersVO();
|
|
addNum(lastLogList, lastCounterVo);
|
|
addNum(lastLogList, lastCounterVo);
|
|
data.put("lastCbToXjNum", lastCounterVo.cbToXjNum);
|
|
data.put("lastCbToXjNum", lastCounterVo.cbToXjNum);
|
|
@@ -1093,53 +1094,60 @@ public class SubInfoExportController extends BaseController {
|
|
data.put("lastRgToZjNum", lastCounterVo.rgToZjNum);
|
|
data.put("lastRgToZjNum", lastCounterVo.rgToZjNum);
|
|
|
|
|
|
// 分属地看
|
|
// 分属地看
|
|
|
|
+ Map<String, List<LogOperateVO>> subjectZhGroups = logList.stream().collect(Collectors.groupingBy(LogOperateVO::getSubjectId));
|
|
String text = "%s年1-%s月,%s储备项目转新建%s个、新建项目转在建%s个、在建项目转投产%s个、投产项目转入规%s个,新建项目降级为储备%s个、入规项目转为在建%s个。" +
|
|
String text = "%s年1-%s月,%s储备项目转新建%s个、新建项目转在建%s个、在建项目转投产%s个、投产项目转入规%s个,新建项目降级为储备%s个、入规项目转为在建%s个。" +
|
|
"其中,%s月当月,储备项目转新建%s个、新建项目转在建%s个、在建项目转投产%s个、投产项目转入规%s个,新建项目降级为储备%s个、入规项目转为在建%s个。" +
|
|
"其中,%s月当月,储备项目转新建%s个、新建项目转在建%s个、在建项目转投产%s个、投产项目转入规%s个,新建项目降级为储备%s个、入规项目转为在建%s个。" +
|
|
"1-%s月,项目开工率%s、投产率%s、入规率%s,较1-(%s)月,分别增长%s、%s、%s个百分点。";
|
|
"1-%s月,项目开工率%s、投产率%s、入规率%s,较1-(%s)月,分别增长%s、%s、%s个百分点。";
|
|
- String subjectZhStr = String.format(text,
|
|
|
|
- year, month, "subjectName", totalCounterVo.cbToXjNum, totalCounterVo.xjToZjNum, totalCounterVo.zjToTcNum, totalCounterVo.tcToRgNum, totalCounterVo.xjToCbNum, totalCounterVo.rgToZjNum,
|
|
|
|
- month, totalCounterVo.cbToXjNum, totalCounterVo.xjToZjNum, totalCounterVo.zjToTcNum, totalCounterVo.tcToRgNum, totalCounterVo.xjToCbNum, totalCounterVo.rgToZjNum,
|
|
|
|
- month, "kgl", "tcl", "rgl", lastMonth, "1", "2", "3"
|
|
|
|
- );
|
|
|
|
|
|
+ StringBuilder subjectZhStr = new StringBuilder();
|
|
|
|
+ subjectZhGroups.forEach((key, value) -> {
|
|
|
|
+ StatusChangeCountersVO tempVo = new StatusChangeCountersVO();
|
|
|
|
+ subjectZhStr.append(String.format(text,
|
|
|
|
+ year, month, jsddMap.get(key), tempVo.cbToXjNum, tempVo.xjToZjNum, tempVo.zjToTcNum, tempVo.tcToRgNum, tempVo.xjToCbNum, tempVo.rgToZjNum,
|
|
|
|
+ month, totalCounterVo.cbToXjNum, tempVo.xjToZjNum, tempVo.zjToTcNum, tempVo.tcToRgNum, tempVo.xjToCbNum, tempVo.rgToZjNum,
|
|
|
|
+ month, "0%", "0%", "0%", lastMonth, "0", "0", "0"));
|
|
|
|
+ });
|
|
|
|
+
|
|
data.put("subjectZhStr", subjectZhStr);
|
|
data.put("subjectZhStr", subjectZhStr);
|
|
// 分规模看
|
|
// 分规模看
|
|
|
|
+ Map<String, List<LogOperateVO>> scaleZhGroups = logList.stream().collect(Collectors.groupingBy(LogOperateVO::getSubjectId));
|
|
String scaleZhStr = String.format(text,
|
|
String scaleZhStr = String.format(text,
|
|
year, month, "计划总投资100亿元以上", totalCounterVo.cbToXjNum, totalCounterVo.xjToZjNum, totalCounterVo.zjToTcNum, totalCounterVo.tcToRgNum, totalCounterVo.xjToCbNum, totalCounterVo.rgToZjNum,
|
|
year, month, "计划总投资100亿元以上", totalCounterVo.cbToXjNum, totalCounterVo.xjToZjNum, totalCounterVo.zjToTcNum, totalCounterVo.tcToRgNum, totalCounterVo.xjToCbNum, totalCounterVo.rgToZjNum,
|
|
month, totalCounterVo.cbToXjNum, totalCounterVo.xjToZjNum, totalCounterVo.zjToTcNum, totalCounterVo.tcToRgNum, totalCounterVo.xjToCbNum, totalCounterVo.rgToZjNum,
|
|
month, totalCounterVo.cbToXjNum, totalCounterVo.xjToZjNum, totalCounterVo.zjToTcNum, totalCounterVo.tcToRgNum, totalCounterVo.xjToCbNum, totalCounterVo.rgToZjNum,
|
|
- month, "kgl", "tcl", "rgl", lastMonth, "1", "2", "3"
|
|
|
|
|
|
+ month, "0%", "0%", "0%", lastMonth, "0", "0", "0"
|
|
);
|
|
);
|
|
data.put("scaleZhStr", scaleZhStr);
|
|
data.put("scaleZhStr", scaleZhStr);
|
|
// 分行业看
|
|
// 分行业看
|
|
|
|
+ Map<String, List<LogOperateVO>> hyZhGroups = logList.stream().collect(Collectors.groupingBy(LogOperateVO::getSubjectId));
|
|
String hyZhStr = String.format(text,
|
|
String hyZhStr = String.format(text,
|
|
year, month, "制造业", totalCounterVo.cbToXjNum, totalCounterVo.xjToZjNum, totalCounterVo.zjToTcNum, totalCounterVo.tcToRgNum, totalCounterVo.xjToCbNum, totalCounterVo.rgToZjNum,
|
|
year, month, "制造业", totalCounterVo.cbToXjNum, totalCounterVo.xjToZjNum, totalCounterVo.zjToTcNum, totalCounterVo.tcToRgNum, totalCounterVo.xjToCbNum, totalCounterVo.rgToZjNum,
|
|
month, totalCounterVo.cbToXjNum, totalCounterVo.xjToZjNum, totalCounterVo.zjToTcNum, totalCounterVo.tcToRgNum, totalCounterVo.xjToCbNum, totalCounterVo.rgToZjNum,
|
|
month, totalCounterVo.cbToXjNum, totalCounterVo.xjToZjNum, totalCounterVo.zjToTcNum, totalCounterVo.tcToRgNum, totalCounterVo.xjToCbNum, totalCounterVo.rgToZjNum,
|
|
- month, "kgl", "tcl", "rgl", lastMonth, "1", "2", "3"
|
|
|
|
|
|
+ month, "0%", "0%", "0%", lastMonth, "0", "0", "0"
|
|
);
|
|
);
|
|
data.put("hyZhStr", hyZhStr);
|
|
data.put("hyZhStr", hyZhStr);
|
|
// 二、存在问题
|
|
// 二、存在问题
|
|
// (一)项目落地方面
|
|
// (一)项目落地方面
|
|
- data.put("xmldSubNameStr", "a项目、b项目、c项目");
|
|
|
|
- data.put("xmldNum", 3);
|
|
|
|
- data.put("xmldMonthNum", 3);
|
|
|
|
|
|
+ data.put("xmldSubNameStr", "、、");
|
|
|
|
+ data.put("xmldNum", 0);
|
|
|
|
+ data.put("xmldMonthNum", 0);
|
|
// (二)前期手续方面
|
|
// (二)前期手续方面
|
|
- data.put("qqsxNum", 3);
|
|
|
|
- data.put("qqsxHpNames", "a项目、b项目、c项目");
|
|
|
|
- data.put("qqsxHpNum", 3);
|
|
|
|
- data.put("qqsxNpNames", "a项目、b项目、c项目");
|
|
|
|
- data.put("qqsxNpNum", 3);
|
|
|
|
- data.put("qqsxYdNames", "a项目、b项目、c项目");
|
|
|
|
- data.put("qqsxYdNum", 3);
|
|
|
|
|
|
+ data.put("qqsxNum", 0);
|
|
|
|
+ data.put("qqsxHpNames", "、、");
|
|
|
|
+ data.put("qqsxHpNum", 0);
|
|
|
|
+ data.put("qqsxNpNames", "、、");
|
|
|
|
+ data.put("qqsxNpNum", 0);
|
|
|
|
+ data.put("qqsxYdNames", "、、");
|
|
|
|
+ data.put("qqsxYdNum", 0);
|
|
// (三)工程建设方面
|
|
// (三)工程建设方面
|
|
- data.put("gcjsNum", 3);
|
|
|
|
- data.put("gcjsZjzhNames", "a项目、b项目、c项目");
|
|
|
|
- data.put("gcjsZjzhNum", 3);
|
|
|
|
- data.put("gcjsAqsgNames", "a项目、b项目、c项目");
|
|
|
|
|
|
+ data.put("gcjsNum", 0);
|
|
|
|
+ data.put("gcjsZjzhNames", "、、");
|
|
|
|
+ data.put("gcjsZjzhNum", 0);
|
|
|
|
+ data.put("gcjsAqsgNames", "、、");
|
|
// (四)升规入统方面
|
|
// (四)升规入统方面
|
|
- data.put("sgrtNum", 3);
|
|
|
|
- data.put("sgrtCqNames", "a项目、b项目、c项目");
|
|
|
|
- data.put("sgrtCqNum", 3);
|
|
|
|
- data.put("sgrtZlzhNames", "a项目、b项目、c项目");
|
|
|
|
- data.put("sgrtZlzhNum", 3);
|
|
|
|
|
|
+ data.put("sgrtNum", 0);
|
|
|
|
+ data.put("sgrtCqNames", "、、");
|
|
|
|
+ data.put("sgrtCqNum", 0);
|
|
|
|
+ data.put("sgrtZlzhNames", "、、");
|
|
|
|
+ data.put("sgrtZlzhNum", 0);
|
|
|
|
|
|
// Map<String, List<LogOperate>> collect = logList.stream().collect(Collectors.groupingBy(LogOperate::getTitle));
|
|
// Map<String, List<LogOperate>> collect = logList.stream().collect(Collectors.groupingBy(LogOperate::getTitle));
|
|
// String currentYearZhStr = buildZhData(collect);
|
|
// String currentYearZhStr = buildZhData(collect);
|
|
@@ -1158,7 +1166,7 @@ public class SubInfoExportController extends BaseController {
|
|
word.write(response.getOutputStream());
|
|
word.write(response.getOutputStream());
|
|
}
|
|
}
|
|
|
|
|
|
- private void addNum(List<LogOperate> lastLogList, StatusChangeCountersVO vo) {
|
|
|
|
|
|
+ private void addNum(List<LogOperateVO> lastLogList, StatusChangeCountersVO vo) {
|
|
for (LogOperate logOperate : lastLogList) {
|
|
for (LogOperate logOperate : lastLogList) {
|
|
if (SubInfoStatusEnum.CB.getCode().equals(logOperate.getStatusFirst()) && SubInfoStatusEnum.XJ.getCode().equals(logOperate.getStatusAfter())) {
|
|
if (SubInfoStatusEnum.CB.getCode().equals(logOperate.getStatusFirst()) && SubInfoStatusEnum.XJ.getCode().equals(logOperate.getStatusAfter())) {
|
|
++vo.cbToXjNum;
|
|
++vo.cbToXjNum;
|