Explorar el Código

Merge remote-tracking branch 'origin/feature/dev' into feature/dev

wangxx hace 3 días
padre
commit
938170eef9

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

@@ -1,5 +1,6 @@
1
 package com.sundot.airport.blocked.service.impl;
1
 package com.sundot.airport.blocked.service.impl;
2
 
2
 
3
+import cn.hutool.core.collection.CollUtil;
3
 import com.sundot.airport.blocked.domain.BlockedMissCheckStatistics;
4
 import com.sundot.airport.blocked.domain.BlockedMissCheckStatistics;
4
 import com.sundot.airport.blocked.mapper.BlockedMissCheckStatisticsMapper;
5
 import com.sundot.airport.blocked.mapper.BlockedMissCheckStatisticsMapper;
5
 import com.sundot.airport.blocked.service.IBlockedMissCheckStatisticsScreenService;
6
 import com.sundot.airport.blocked.service.IBlockedMissCheckStatisticsScreenService;
@@ -11,6 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired;
11
 import org.springframework.stereotype.Service;
12
 import org.springframework.stereotype.Service;
12
 
13
 
13
 import java.math.BigDecimal;
14
 import java.math.BigDecimal;
15
+import java.math.RoundingMode;
14
 import java.util.ArrayList;
16
 import java.util.ArrayList;
15
 import java.util.List;
17
 import java.util.List;
16
 import java.util.Map;
18
 import java.util.Map;
@@ -70,6 +72,11 @@ public class BlockedMissCheckStatisticsScreenServiceImpl implements IBlockedMiss
70
             item.setTotal(BigDecimal.valueOf(monthlyAssessmentMap.getOrDefault(sysDictData.getDictValue(), 0L)));
72
             item.setTotal(BigDecimal.valueOf(monthlyAssessmentMap.getOrDefault(sysDictData.getDictValue(), 0L)));
71
             result.add(item);
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
         return result;
80
         return result;
74
     }
81
     }
75
 
82
 
@@ -109,6 +116,11 @@ public class BlockedMissCheckStatisticsScreenServiceImpl implements IBlockedMiss
109
             item.setTotal(BigDecimal.valueOf(value));
116
             item.setTotal(BigDecimal.valueOf(value));
110
             result.add(item);
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
         return result;
124
         return result;
113
     }
125
     }
114
 
126