Ver código fonte

漏检统计大屏-模块三

chenshudong 3 dias atrás
pai
commit
7a8952b4d7

+ 12 - 0
airport-blocked/src/main/java/com/sundot/airport/blocked/service/impl/BlockedMissCheckStatisticsScreenServiceImpl.java

@@ -1,5 +1,6 @@
1 1
 package com.sundot.airport.blocked.service.impl;
2 2
 
3
+import cn.hutool.core.collection.CollUtil;
3 4
 import com.sundot.airport.blocked.domain.BlockedMissCheckStatistics;
4 5
 import com.sundot.airport.blocked.mapper.BlockedMissCheckStatisticsMapper;
5 6
 import com.sundot.airport.blocked.service.IBlockedMissCheckStatisticsScreenService;
@@ -11,6 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired;
11 12
 import org.springframework.stereotype.Service;
12 13
 
13 14
 import java.math.BigDecimal;
15
+import java.math.RoundingMode;
14 16
 import java.util.ArrayList;
15 17
 import java.util.List;
16 18
 import java.util.Map;
@@ -70,6 +72,11 @@ public class BlockedMissCheckStatisticsScreenServiceImpl implements IBlockedMiss
70 72
             item.setTotal(BigDecimal.valueOf(monthlyAssessmentMap.getOrDefault(sysDictData.getDictValue(), 0L)));
71 73
             result.add(item);
72 74
         });
75
+        BigDecimal sum = result.stream().map(BaseCommonDto::getTotal).reduce(BigDecimal.ZERO, BigDecimal::add);
76
+        result.forEach(item -> {
77
+            item.setScale(sum.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO : item.getTotal().divide(sum, 4, RoundingMode.HALF_UP));
78
+            item.setScaleDesc(item.getScale().multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP) + "%");
79
+        });
73 80
         return result;
74 81
     }
75 82
 
@@ -109,6 +116,11 @@ public class BlockedMissCheckStatisticsScreenServiceImpl implements IBlockedMiss
109 116
             item.setTotal(BigDecimal.valueOf(value));
110 117
             result.add(item);
111 118
         });
119
+        BigDecimal sum = result.stream().map(BaseCommonDto::getTotal).reduce(BigDecimal.ZERO, BigDecimal::add);
120
+        result.forEach(item -> {
121
+            item.setScale(sum.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO : item.getTotal().divide(sum, 4, RoundingMode.HALF_UP));
122
+            item.setScaleDesc(item.getScale().multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP) + "%");
123
+        });
112 124
         return result;
113 125
     }
114 126