|
|
@@ -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
|
|