浏览代码

火灾地址,火灾分页剔除为null的数据

yq 4 年之前
父节点
当前提交
9f7a6790f2

+ 9 - 5
mhfire-service/src/main/java/com/bizmatics/mhfire/service/impl/FireStatisticsServiceImpl.java

@@ -3,6 +3,7 @@ package com.bizmatics.mhfire.service.impl;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.bizmatics.common.core.bean.CommonPage;
 import com.bizmatics.common.core.util.DateUtils;
+import com.bizmatics.common.core.util.StringUtils;
 import com.bizmatics.mhfire.persistence.mapper.FireStatisticsMapper;
 
 import com.bizmatics.mhfire.persistence.mapper.po.FireStatisticsPO;
@@ -84,6 +85,9 @@ public class FireStatisticsServiceImpl implements FireStatisticsService {
         int fireCount = 0;
         List<String> fireCauses = fireStatisticsMapper.groupByCause();
         for (String cause:fireCauses) {
+            if (StringUtils.isBlank(cause)){
+                continue;
+            }
             FireLevelRatioVO fireLevelRatioVo = new FireLevelRatioVO();
             fireLevelRatioVo.setFireType(cause);
             Integer count = fireStatisticsMapper.selectCount(startTime, endTime, address, cause,null);
@@ -117,21 +121,21 @@ public class FireStatisticsServiceImpl implements FireStatisticsService {
 
     @Override
     public List<String> getFireType() {
-        return fireStatisticsMapper.groupByCause();
+        return fireStatisticsMapper.groupByCause().stream().filter(StringUtils::isNotBlank).collect(Collectors.toList());
     }
 
     @Override
     public List<String> getAddress() {
-        return fireStatisticsMapper.getAddress();
+        return fireStatisticsMapper.getAddress().stream().filter(StringUtils::isNotBlank).collect(Collectors.toList());
     }
 
     public FireStatisticsPO enhanceFireStatisticsPo(Map<String,String> map){
         FireStatisticsPO fireStatisticsPo = new FireStatisticsPO();
-        fireStatisticsPo.setId(map.get("火灾序号"));
-        fireStatisticsPo.setAddress(map.get("起火地点"));
+        fireStatisticsPo.setId(Optional.ofNullable(map.get("火灾序号")).orElse(""));
+        fireStatisticsPo.setAddress(Optional.ofNullable(map.get("起火地点")).orElse(""));
         fireStatisticsPo.setBurnedArea(Optional.ofNullable(map.get("过火面积")).orElse(""));
         fireStatisticsPo.setPropertyLoss(Optional.ofNullable(map.get("直接财产损失")).orElse(""));
-        fireStatisticsPo.setDeathToll(map.get("死亡人数"));
+        fireStatisticsPo.setDeathToll(Optional.ofNullable(map.get("死亡人数")).orElse(""));
         fireStatisticsPo.setNonFatal(Optional.ofNullable(map.get("受灾人数")).orElse(""));
         fireStatisticsPo.setDisasterHome(Optional.ofNullable(map.get("受灾户数")).orElse(""));
         fireStatisticsPo.setFireCause(Optional.ofNullable(map.get("火灾原因分类(一级)")).orElse(""));

+ 22 - 2
mhfire-service/src/main/java/com/bizmatics/mhfire/service/util/Arith.java

@@ -13,7 +13,7 @@ public class Arith {
     private static final int DEF_DIV_SCALE = 4;
 
     /**
-     * //构造器私有,让这个类不能实例化
+     * 构造器私有,让这个类不能实例化
      */
     private Arith(){}
 
@@ -60,8 +60,28 @@ public class Arith {
      * @return
      */
     public static double div(double v1,double v2){
+        return div(v1,v2,DEF_DIV_SCALE);
+    }
+
+
+    /**
+     * 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指定精度,以后的数字四舍五入
+     * @param v1
+     *            被除數
+     * @param v2
+     *            除數
+     * @param scale
+     *            表示表示需要精確到小數點以後位数。
+     * @return 兩個參數的商
+     */
+    public static double div(double v1, double v2, int scale) {
+        if (scale < 0) {
+            throw new IllegalArgumentException(
+                    "The scale must be a positive integer or zero");
+        }
         BigDecimal b1 = BigDecimal.valueOf(v1);
         BigDecimal b2 = BigDecimal.valueOf(v2);
-        return b1.divide(b2,DEF_DIV_SCALE, BigDecimal.ROUND_HALF_UP).doubleValue();
+        return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
     }
+
 }