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

修改 日报

parent 079e184a
......@@ -111,7 +111,13 @@ public class ExcelTools {
if (fileTemplate.isFileExists(bucketName, fileName)) {
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);
Map<String, Object> params = new HashMap<>(paramMap);
boolean result = convertUtils.fillWordLoop(fileName, "科环集团电力运营日报模板.docx", params, bucketName);
......@@ -176,11 +182,11 @@ public class ExcelTools {
}
public Map<String, Double> generateReport(LocalDateTime startTime, LocalDateTime endTime) {
Map<String, Double> paramMap = new HashMap<>();
paramMap.put("year", (double) startTime.getYear());
paramMap.put("month", (double) startTime.getMonthValue());
paramMap.put("day", (double) startTime.getDayOfMonth());
public Map<String, Object> generateReport(LocalDateTime startTime, LocalDateTime endTime) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("year", startTime.getYear());
paramMap.put("month", startTime.getMonthValue());
paramMap.put("day",startTime.getDayOfMonth());
List<AskReportDict> askReportDicts = askReportDictMapper.selectList(
Wrappers.lambdaQuery(AskReportDict.class).eq(AskReportDict::getType, 1)
......@@ -229,6 +235,9 @@ public class ExcelTools {
case 4:
handleTypeSum(askReportDict.getKey(), params, paramMap);
break;
case 5:
handleTypeSum5(askReportDict.getKey(), params, paramMap);
break;
default:
// Handle other types if necessary
break;
......@@ -260,7 +269,7 @@ public class ExcelTools {
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);
if (param == null) {
......@@ -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) {
return;
}
......@@ -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) {
return;
}
......@@ -321,12 +330,12 @@ public class ExcelTools {
double value = result * 100; // 计算百分比
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);
}
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);
if (param == null) {
return;
......@@ -338,8 +347,9 @@ public class ExcelTools {
}
AtomicReference<Double> realValue = new AtomicReference<>(0.0);
paramMap.forEach((mapKey, value) -> {
if (mapKey.contains(keyC)) {
realValue.set(realValue.get() + value);
if (mapKey.startsWith(keyC)) {
Double valueDouble = Double.parseDouble(value.toString());
realValue.set(realValue.get() + valueDouble);
}
});
if (realValue.get() != 0.0) {
......@@ -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 {
if (param.getType() == 1) {
return paramMap.get(param.getParam());
return (Double) paramMap.get(param.getParam());
} else {
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