yq 3 vuotta sitten
vanhempi
commit
7c8f9f7df0

+ 1 - 1
mhfire-mapping/src/main/java/com/bizmatics/mhfire/persistence/mapper/FireStatisticsMapper.java

@@ -89,7 +89,7 @@ public interface FireStatisticsMapper {
 
 
 
-    Map<String,Double> selectAvgAndSum(@Param("startTime") Date startTime,
+    List<Map<String,Object>> selectAvgAndSum(@Param("startTime") Date startTime,
                                  @Param("endTime") Date endTime,
                                  @Param("region") String region,
                                  @Param("fireType") String fireType,

+ 2 - 1
mhfire-mapping/src/main/resources/mapper/mysql/FireStatisticsMapper.xml

@@ -62,7 +62,7 @@
     </select>
 
     <select id="selectAvgAndSum" resultType="java.util.Map">
-        select sum(`死亡人数`) as deathPerson,avg(`过火面积`) as fireArea
+        select `行政区域` as region,IFNULL(sum(`死亡人数`),0) as deathPerson,IFNULL(avg(`过火面积`),0.00) as fireArea,count(1) as fireCount
         from `hzdc-hztjb`
         <where>
             <if test="startTime != null and endTime != null">
@@ -79,6 +79,7 @@
                 and `单位代码` = #{unitId}
             </if>
         </where>
+        group by `行政区域`
     </select>
     <select id="selectCountByDate" resultType="java.util.Map">
         select

+ 10 - 15
mhfire-service/src/main/java/com/bizmatics/mhfire/service/impl/FireStatisticsServiceImpl.java

@@ -209,23 +209,18 @@ public class FireStatisticsServiceImpl implements FireStatisticsService {
 
     @Override
     public List<FireBubbleVO> getAvgAndSum(Date startTime, Date endTime,String fireType, String unitId) {
-        List<FireBubbleVO> list = new ArrayList<>();
-        List<String> lists = fireStatisticsMapper.getAddress().stream().filter(StringUtils::isNotBlank).filter(s -> !s.contains("派出所")).collect(Collectors.toList());
-        lists.forEach(s -> {
-            Map<String, Double> maps = fireStatisticsMapper.selectAvgAndSum(startTime, endTime, s, fireType, unitId);
+        List<FireBubbleVO> fireBubbleVOS = new ArrayList<>();
+        List<Map<String, Object>> list = fireStatisticsMapper.selectAvgAndSum(startTime, endTime, null, fireType, unitId);
+        list  = list.stream().filter(s -> s.get("region").toString().contains("派出所")).collect(Collectors.toList());
+        list.forEach(s -> {
             FireBubbleVO fireBubbleVo = new FireBubbleVO();
-            fireBubbleVo.setRegion(s);
-            fireBubbleVo.setFireCount(fireStatisticsMapper.selectCount(startTime,endTime,null,fireType,unitId,s));
-            if (null != maps){
-                fireBubbleVo.setDeathToll(Optional.ofNullable(maps.get("deathPerson")).map(Double::intValue).orElse(0));
-                fireBubbleVo.setFireArea(Optional.ofNullable(maps.get("fireArea")).filter(d -> 0.00 != d && d != 0).map(d -> Arith.div(d,1)).orElse(0.00));
-            }else {
-                fireBubbleVo.setDeathToll(0);
-                fireBubbleVo.setFireArea(0.00);
-            }
-            list.add(fireBubbleVo);
+            fireBubbleVo.setRegion(s.get("region").toString());
+            fireBubbleVo.setFireCount(Integer.valueOf(s.get("fireCount").toString()));
+            fireBubbleVo.setDeathToll(Double.valueOf(s.get("deathPerson").toString()));
+            fireBubbleVo.setFireArea(Double.valueOf(s.get("fireArea").toString()));
+            fireBubbleVOS.add(fireBubbleVo);
         });
-        return list;
+        return fireBubbleVOS;
     }
 
     public FireStatisticsPO enhanceFireStatisticsPo(Map<String,String> map){FireStatisticsPO fireStatisticsPo = new FireStatisticsPO();

+ 1 - 1
mhfire-service/src/main/java/com/bizmatics/mhfire/service/vo/FireBubbleVO.java

@@ -18,7 +18,7 @@ public class FireBubbleVO {
     /**
      * 死亡人数
      */
-    private Integer deathToll;
+    private Double deathToll;
 
     /**
      * 火灾面积