Commit 75b47151 authored by 林洋洋's avatar 林洋洋

修改百分比计算,注释掉文件存在不重新生成问题

parent be7d1735
...@@ -107,10 +107,10 @@ public class ExcelTools { ...@@ -107,10 +107,10 @@ public class ExcelTools {
jsonObject.set("fileName", fileName); jsonObject.set("fileName", fileName);
jsonObject.set("filePath", baseUrl + "/admin/sys-file/" + bucketName + "/" + fileName); jsonObject.set("filePath", baseUrl + "/admin/sys-file/" + bucketName + "/" + fileName);
// 载入Word文档 // // 载入Word文档
if (fileTemplate.isFileExists(bucketName, fileName)) { // if (fileTemplate.isFileExists(bucketName, fileName)) {
return jsonObject.toString(); // return jsonObject.toString();
} // }
Map<String, Object> paramMap =new HashMap<>(); Map<String, Object> paramMap =new HashMap<>();
try { try {
paramMap = generateReport(startTime, endTime); paramMap = generateReport(startTime, endTime);
...@@ -358,26 +358,28 @@ public class ExcelTools { ...@@ -358,26 +358,28 @@ public class ExcelTools {
} }
private void handleTypeSum5(String key, List<AskReportDict.Params> params, Map<String, Object> paramMap) { private void handleTypeSum5(String key, List<AskReportDict.Params> params, Map<String, Object> paramMap) {
AskReportDict.Params param = params.get(0);
if (param == null) { if (params.size() < 2) {
return; return;
} }
// 第一个值做初始分子
String keyC = params.get(0).getParam(); Double result = (Double) paramMap.get(params.get(0).getParam());
if (StringUtils.isEmpty(keyC)) { if (result == null) {
return; return;
} }
AtomicReference<Double> realValue = new AtomicReference<>(0.0);
paramMap.forEach((mapKey, value) -> { // 从第二个开始全部当分母,依次除
if (mapKey.contains(keyC)) { for (int i = 1; i < params.size(); i++) {
Double valueDouble = Double.parseDouble(value.toString()); Double denominator = (Double) paramMap.get(params.get(i).getParam());
realValue.set(realValue.get() + valueDouble); if (denominator == null || denominator == 0) {
return; // 任何一个分母非法就整体丢弃
} }
}); result /= denominator;
if (realValue.get() != 0.0) {
String percentageResult = String.format("%.2f%%", realValue.get() / 100); // 格式化为百分比字符串
paramMap.put(key, percentageResult);
} }
String percentageResult = String.format("%.2f%%", result); // 格式化为百分比字符串
paramMap.put(key, percentageResult);
} }
private Double getParamValue(AskReportDict.Params param, Map<String, Object> paramMap) { private Double getParamValue(AskReportDict.Params param, Map<String, Object> paramMap) {
......
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