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

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

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