Commit be7d1735 authored by 林洋洋's avatar 林洋洋

修改 日报

parent 079e184a
...@@ -111,7 +111,13 @@ public class ExcelTools { ...@@ -111,7 +111,13 @@ public class ExcelTools {
if (fileTemplate.isFileExists(bucketName, fileName)) { if (fileTemplate.isFileExists(bucketName, fileName)) {
return jsonObject.toString(); return jsonObject.toString();
} }
Map<String, Double> paramMap = generateReport(startTime, endTime); Map<String, Object> paramMap =new HashMap<>();
try {
paramMap = generateReport(startTime, endTime);
}catch (Exception e){
e.printStackTrace();
}
log.info("入参{}", paramMap); log.info("入参{}", paramMap);
Map<String, Object> params = new HashMap<>(paramMap); Map<String, Object> params = new HashMap<>(paramMap);
boolean result = convertUtils.fillWordLoop(fileName, "科环集团电力运营日报模板.docx", params, bucketName); boolean result = convertUtils.fillWordLoop(fileName, "科环集团电力运营日报模板.docx", params, bucketName);
...@@ -176,11 +182,11 @@ public class ExcelTools { ...@@ -176,11 +182,11 @@ public class ExcelTools {
} }
public Map<String, Double> generateReport(LocalDateTime startTime, LocalDateTime endTime) { public Map<String, Object> generateReport(LocalDateTime startTime, LocalDateTime endTime) {
Map<String, Double> paramMap = new HashMap<>(); Map<String, Object> paramMap = new HashMap<>();
paramMap.put("year", (double) startTime.getYear()); paramMap.put("year", startTime.getYear());
paramMap.put("month", (double) startTime.getMonthValue()); paramMap.put("month", startTime.getMonthValue());
paramMap.put("day", (double) startTime.getDayOfMonth()); paramMap.put("day",startTime.getDayOfMonth());
List<AskReportDict> askReportDicts = askReportDictMapper.selectList( List<AskReportDict> askReportDicts = askReportDictMapper.selectList(
Wrappers.lambdaQuery(AskReportDict.class).eq(AskReportDict::getType, 1) Wrappers.lambdaQuery(AskReportDict.class).eq(AskReportDict::getType, 1)
...@@ -229,6 +235,9 @@ public class ExcelTools { ...@@ -229,6 +235,9 @@ public class ExcelTools {
case 4: case 4:
handleTypeSum(askReportDict.getKey(), params, paramMap); handleTypeSum(askReportDict.getKey(), params, paramMap);
break; break;
case 5:
handleTypeSum5(askReportDict.getKey(), params, paramMap);
break;
default: default:
// Handle other types if necessary // Handle other types if necessary
break; break;
...@@ -260,7 +269,7 @@ public class ExcelTools { ...@@ -260,7 +269,7 @@ public class ExcelTools {
return paramMap; return paramMap;
} }
private void handleType1(String key, List<AskReportDict.Params> params, Map<String, Double> paramMap) { private void handleType1(String key, List<AskReportDict.Params> params, Map<String, Object> paramMap) {
AskReportDict.Params param = params.get(0); AskReportDict.Params param = params.get(0);
if (param == null) { if (param == null) {
...@@ -272,7 +281,7 @@ public class ExcelTools { ...@@ -272,7 +281,7 @@ public class ExcelTools {
} }
} }
private void handleType2(String key, List<AskReportDict.Params> params, Map<String, Double> paramMap) { private void handleType2(String key, List<AskReportDict.Params> params, Map<String, Object> paramMap) {
if (params.size() < 2) { if (params.size() < 2) {
return; return;
} }
...@@ -298,7 +307,7 @@ public class ExcelTools { ...@@ -298,7 +307,7 @@ public class ExcelTools {
} }
private void handleType3(String key, List<AskReportDict.Params> params, Map<String, Double> paramMap) { private void handleType3(String key, List<AskReportDict.Params> params, Map<String, Object> paramMap) {
if (params.size() < 2) { if (params.size() < 2) {
return; return;
} }
...@@ -321,12 +330,12 @@ public class ExcelTools { ...@@ -321,12 +330,12 @@ public class ExcelTools {
double value = result * 100; // 计算百分比 double value = result * 100; // 计算百分比
value = Math.round(value * 100.0) / 100.0; // 保留两位小数 value = Math.round(value * 100.0) / 100.0; // 保留两位小数
Double percentageResult = Double.valueOf(String.format("%.2f%%", value)); // 格式化为百分比字符串 String percentageResult = String.format("%.2f%%", value); // 格式化为百分比字符串
paramMap.put(key, percentageResult); paramMap.put(key, percentageResult);
} }
private void handleTypeSum(String key, List<AskReportDict.Params> params, Map<String, Double> paramMap) { private void handleTypeSum(String key, List<AskReportDict.Params> params, Map<String, Object> paramMap) {
AskReportDict.Params param = params.get(0); AskReportDict.Params param = params.get(0);
if (param == null) { if (param == null) {
return; return;
...@@ -338,8 +347,9 @@ public class ExcelTools { ...@@ -338,8 +347,9 @@ public class ExcelTools {
} }
AtomicReference<Double> realValue = new AtomicReference<>(0.0); AtomicReference<Double> realValue = new AtomicReference<>(0.0);
paramMap.forEach((mapKey, value) -> { paramMap.forEach((mapKey, value) -> {
if (mapKey.contains(keyC)) { if (mapKey.startsWith(keyC)) {
realValue.set(realValue.get() + value); Double valueDouble = Double.parseDouble(value.toString());
realValue.set(realValue.get() + valueDouble);
} }
}); });
if (realValue.get() != 0.0) { if (realValue.get() != 0.0) {
...@@ -347,10 +357,33 @@ public class ExcelTools { ...@@ -347,10 +357,33 @@ public class ExcelTools {
} }
} }
private Double getParamValue(AskReportDict.Params param, Map<String, Double> paramMap) { private void handleTypeSum5(String key, List<AskReportDict.Params> params, Map<String, Object> paramMap) {
AskReportDict.Params param = params.get(0);
if (param == null) {
return;
}
String keyC = params.get(0).getParam();
if (StringUtils.isEmpty(keyC)) {
return;
}
AtomicReference<Double> realValue = new AtomicReference<>(0.0);
paramMap.forEach((mapKey, value) -> {
if (mapKey.contains(keyC)) {
Double valueDouble = Double.parseDouble(value.toString());
realValue.set(realValue.get() + valueDouble);
}
});
if (realValue.get() != 0.0) {
String percentageResult = String.format("%.2f%%", realValue.get() / 100); // 格式化为百分比字符串
paramMap.put(key, percentageResult);
}
}
private Double getParamValue(AskReportDict.Params param, Map<String, Object> paramMap) {
try { try {
if (param.getType() == 1) { if (param.getType() == 1) {
return paramMap.get(param.getParam()); return (Double) paramMap.get(param.getParam());
} else { } else {
return Double.valueOf(param.getParam()); return Double.valueOf(param.getParam());
} }
......
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