From 7f1e2732b38bbed37355e822f4267abccfec3583 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期三, 06 三月 2024 16:39:44 +0800
Subject: [PATCH] 解决空值错误

---
 src/main/java/com/lf/server/service/sys/ReportService.java |  414 +++++++++++++++++++++-------------------------------------
 1 files changed, 152 insertions(+), 262 deletions(-)

diff --git a/src/main/java/com/lf/server/service/sys/ReportService.java b/src/main/java/com/lf/server/service/sys/ReportService.java
index bfa119e..6d5e919 100644
--- a/src/main/java/com/lf/server/service/sys/ReportService.java
+++ b/src/main/java/com/lf/server/service/sys/ReportService.java
@@ -1,7 +1,6 @@
 package com.lf.server.service.sys;
 
 import com.lf.server.entity.all.RedisCacheKey;
-import com.lf.server.entity.all.SettingData;
 import com.lf.server.entity.all.StaticData;
 import com.lf.server.entity.ctrl.CoordinateEntity;
 import com.lf.server.entity.ctrl.CountEntity;
@@ -13,10 +12,8 @@
 import com.lf.server.mapper.sys.ReportMapper;
 import com.lf.server.service.all.RedisService;
 import com.lf.server.service.data.DownloadService;
-import com.lf.server.service.data.PublishService;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.locationtech.jts.geom.Coordinate;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
@@ -24,11 +21,12 @@
 import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.util.*;
-import java.util.concurrent.TimeUnit;
 
 /**
  * 鎶ュ憡妯℃澘
+ *
  * @author WWW
+ * @date 2024-03-06
  */
 @Service
 public class ReportService implements ReportMapper {
@@ -134,15 +132,11 @@
     @Override
     public List<CountEntity> countExplorationPoints() {
         String key = RedisCacheKey.dataCountKey("countExplorationPoints");
-//        Object obj = redisService.get(key);
-//        if (obj instanceof List<?>) {
-//            return (List<CountEntity>) obj;
-//        }
-
-        List<CountEntity> list = reportMapper.countExplorationPoints();
-        if (null != list && list.size() > 0) {
+        List<CountEntity> list = redisService.getListByKey(key);
+        if (null == list) {
+            list = reportMapper.countExplorationPoints();
             countExplorationArea(list);
-            redisService.put(key, list, SettingData.CACHE_EXPIRE, TimeUnit.MINUTES);
+            redisService.saveListByKey(key, list, StaticData.I2);
         }
 
         return list;
@@ -153,10 +147,78 @@
         return reportMapper.selectExplorationPoints(StringHelper.getRightLike(code));
     }
 
+    @Override
+    public List<CountEntity> countDemAreaByPrj() {
+        return reportMapper.countDemAreaByPrj();
+    }
+
+    @Override
+    public List<CountEntity> countMptAreaByPrj() {
+        return reportMapper.countMptAreaByPrj();
+    }
+
+    @Override
+    public List<CountEntity> countOsgbAreaByPrj() {
+        return reportMapper.countOsgbAreaByPrj();
+    }
+
+    @Override
+    public List<CountEntity> countLasAreaByPrj() {
+        return reportMapper.countLasAreaByPrj();
+    }
+
+    @Override
+    public List<CountEntity> countSurveyWorksiteByPrj() {
+        return reportMapper.countSurveyWorksiteByPrj();
+    }
+
+    @Override
+    public List<CountEntity> countExplorationReportByPrj() {
+        return reportMapper.countExplorationReportByPrj();
+    }
+
+    @Override
+    public List<CountEntity> countCollapseByPrj() {
+        return reportMapper.countCollapseByPrj();
+    }
+
+    @Override
+    public List<CountEntity> countDebrisFlowByPrj() {
+        return reportMapper.countDebrisFlowByPrj();
+    }
+
+    @Override
+    public List<CountEntity> countGroundCollapseByPrj() {
+        return reportMapper.countGroundCollapseByPrj();
+    }
+
+    @Override
+    public List<CountEntity> countHighSteepSlopeByPrj() {
+        return reportMapper.countHighSteepSlopeByPrj();
+    }
+
+    @Override
+    public List<CountEntity> countLandSlideByPrj() {
+        return reportMapper.countLandSlideByPrj();
+    }
+
+    @Override
+    public List<CountEntity> countUnstableSlopeByPrj() {
+        return reportMapper.countUnstableSlopeByPrj();
+    }
+
+    @Override
+    public List<CountEntity> countWaterDamageByPrj() {
+        return reportMapper.countWaterDamageByPrj();
+    }
+
     /**
      * 缁熻閽诲瓟鐐归潰绉�
      */
     private void countExplorationArea(List<CountEntity> list) {
+        if (null == list) {
+            return;
+        }
         for (CountEntity ce : list) {
             if (0 == ce.getCount()) {
                 continue;
@@ -234,52 +296,82 @@
      */
     private void generateReport(String source, String target, ReportEntity re) {
         if (StaticData.S1.equals(re.getType())) {
-            switch (re.getCode()) {
-                case "countOperates":
-                    createCountOperatesWord(source, target);
-                    break;
-                case "countSizes":
-                    createCountSizesWord(source, target);
-                    break;
-                case "countServices":
-                    createCountServicesWord(source, target);
-                    break;
-                case "countExplorationPoints":
-                    createCountExplorationPointsWord(source, target);
-                    break;
-                case "countSizesByType":
-                    createCountSizesByTypeWord(source, target);
-                    break;
-                case "countSizesByPrj":
-                    createCountSizesByPrjWord(source, target);
-                    break;
-                default:
-                    break;
-            }
+            createWord(source, target, re);
         } else {
-            switch (re.getCode()) {
-                case "countOperates":
-                    createCountOperatesExcel(source, target);
-                    break;
-                case "countSizes":
-                    createCountSizesExcel(source, target);
-                    break;
-                case "countServices":
-                    createCountServicesExcel(source, target);
-                    break;
-                case "countExplorationPoints":
-                    createCountExplorationPointsExcel(source, target);
-                    break;
-                case "countSizesByType":
-                    createCountSizesByTypeExcel(source, target);
-                    break;
-                case "countSizesByPrj":
-                    createCountSizesByPrjExcel(source, target);
-                    break;
-                default:
-                    break;
-            }
+            createExcel(source, target, re);
         }
+    }
+
+    /**
+     * 鐢熸垚Word
+     */
+    private void createWord(String source, String target, ReportEntity re) {
+        //
+    }
+
+    /**
+     * 鐢熸垚Excel
+     */
+    private void createExcel(String source, String target, ReportEntity re) {
+        List<CountEntity> list = countExplorationPoints();
+        if (null == list || list.isEmpty()) {
+            return;
+        }
+
+        int rows = 1, allCount = 0;
+        Double allSize = 0d, allArea = 0d;
+        for (CountEntity ce : list) {
+            if (null == ce.getCount()) {
+                ce.setCount(0L);
+            }
+            if (null == ce.getSizes()) {
+                ce.setSizes(0d);
+            }
+            if (null == ce.getArea()) {
+                ce.setArea(0d);
+            }
+            ce.setNo(rows++);
+            ce.setM2(FileHelper.getSizes(ce.getSizes()));
+            ce.setM3(FileHelper.getSquareMeter(ce.getArea()));
+            allCount += ce.getCount();
+            allSize += ce.getSizes();
+            allArea += ce.getArea();
+        }
+        if (list.size() > 0) {
+            CountEntity ce = new CountEntity();
+            ce.setNo(rows);
+            ce.setM1("鎬昏");
+            ce.setCount((long) allCount);
+            ce.setM2(FileHelper.getSizes(allSize));
+            ce.setM3(FileHelper.getSquareMeter(allArea));
+            list.add(ce);
+        }
+
+        Map<String, List<CountEntity>> map = new HashMap<>(1);
+        map.put("data", list);
+
+        ExcelHelper.writeToTemplate(source, target, map);
+    }
+
+    /**
+     * 鑾峰彇涓嬭浇瀹炰綋绫�
+     */
+    private DownloadEntity getDownloadEntity(UserEntity ue, String file) {
+        DownloadEntity de = new DownloadEntity();
+        de.setName(FileHelper.getFileName(file));
+        // 1-Shp鏂囦欢锛�2-涓撻鍥撅紝3-鍏冩暟鎹紝4-涓氬姟鏁版嵁锛�5-绠¢亾鍒嗘瀽锛�6-缁熻鎶ュ憡锛�7-闄勪欢鏂囦欢锛�8-鐡︾墖鏂囦欢
+        de.setType(6);
+        de.setSizes(FileHelper.sizeToMb(new File(file).length()));
+        de.setDepid(ue.getDepid());
+        de.setDcount(1);
+        de.setPwd(null);
+        de.setUrl(FileHelper.getRelativePath(file));
+        de.setDescr("缁熻鎶ュ憡");
+        de.setGuid(FileHelper.getFileMd5(file));
+        de.setCreateUser(ue.getId());
+        // de.setGeom(null)
+
+        return de;
     }
 
     /**
@@ -362,16 +454,17 @@
         }
 
         int rows = 1, allCount = 0;
-        Double allSize = 0d;
+        Double allSize = 0d, allArea = 0d;
         ArrayList<String[]> addList = new ArrayList<>();
         for (CountEntity ce : list) {
             allSize += ce.getSizes();
             allCount += ce.getCount();
-            String[] strs = new String[]{"" + rows++, ce.getM1(), "" + ce.getCount(), FileHelper.getSizes(ce.getSizes())};
+            allArea += ce.getArea();
+            String[] strs = new String[]{"" + rows++, ce.getM1(), "" + ce.getCount(), FileHelper.getSizes(ce.getSizes()), FileHelper.getSquareMeter(ce.getArea())};
             addList.add(strs);
         }
         if (addList.size() > 0) {
-            addList.add(new String[]{"" + rows, "鎬昏", "" + allCount, FileHelper.getSizes(allSize)});
+            addList.add(new String[]{"" + rows, "鎬昏", "" + allCount, FileHelper.getSizes(allSize), FileHelper.getSquareMeter(allArea)});
         }
 
         WordHelper.generateWord(source, target, null, addList);
@@ -425,208 +518,5 @@
         }
 
         WordHelper.generateWord(source, target, null, addList);
-    }
-
-    /**
-     * 鍒涘缓 鐢ㄦ埛娴侀噺缁熻 Excel
-     */
-    public void createCountOperatesExcel(String source, String target) {
-        List<CountEntity> list = countOperates();
-        if (null == list || list.isEmpty()) {
-            return;
-        }
-
-        int rows = 1, allCount = 0;
-        for (CountEntity ce : list) {
-            ce.setNo(rows++);
-            allCount += ce.getCount();
-        }
-        if (list.size() > 0) {
-            CountEntity ce = new CountEntity();
-            ce.setNo(rows);
-            ce.setM1("鎬昏");
-            ce.setCount((long) allCount);
-            list.add(ce);
-        }
-
-        Map<String, List<CountEntity>> map = new HashMap<>(1);
-        map.put("data", list);
-
-        ExcelHelper.writeToTemplate(source, target, map);
-    }
-
-    /**
-     * 鍒涘缓 鏁版嵁閲忕粺璁� Excel
-     */
-    public void createCountSizesExcel(String source, String target) {
-        List<CountEntity> list = countSizes();
-        if (null == list || list.isEmpty()) {
-            return;
-        }
-
-        int rows = 1;
-        Double allSize = 0d;
-        for (CountEntity ce : list) {
-            ce.setNo(rows++);
-            ce.setM2(FileHelper.getSizes(ce.getSizes()));
-            allSize += ce.getSizes();
-        }
-        if (list.size() > 0) {
-            CountEntity ce = new CountEntity();
-            ce.setNo(rows);
-            ce.setM1("鎬昏");
-            ce.setM2(FileHelper.getSizes(allSize));
-            list.add(ce);
-        }
-
-        Map<String, List<CountEntity>> map = new HashMap<>(1);
-        map.put("data", list);
-
-        ExcelHelper.writeToTemplate(source, target, map);
-    }
-
-    /**
-     * 鍒涘缓 鏈嶅姟璋冪敤閲忕粺璁� Excel
-     */
-    public void createCountServicesExcel(String source, String target) {
-        List<CountEntity> list = countServices();
-        if (null == list || list.isEmpty()) {
-            return;
-        }
-
-        int rows = 1, allCount = 0;
-        for (CountEntity ce : list) {
-            ce.setNo(rows++);
-            allCount += ce.getCount();
-        }
-        if (list.size() > 0) {
-            CountEntity ce = new CountEntity();
-            ce.setNo(rows);
-            ce.setM1("鎬昏");
-            ce.setCount((long) allCount);
-            list.add(ce);
-        }
-
-        Map<String, List<CountEntity>> map = new HashMap<>(1);
-        map.put("data", list);
-
-        ExcelHelper.writeToTemplate(source, target, map);
-    }
-
-    /**
-     * 鍒涘缓 閽诲瓟鏁版嵁缁熻 Excel
-     */
-    public void createCountExplorationPointsExcel(String source, String target) {
-        List<CountEntity> list = countExplorationPoints();
-        if (null == list || list.isEmpty()) {
-            return;
-        }
-
-        int rows = 1, allCount = 0;
-        Double allSize = 0d;
-        for (CountEntity ce : list) {
-            ce.setNo(rows++);
-            ce.setM2(FileHelper.getSizes(ce.getSizes()));
-            allCount += ce.getCount();
-            allSize += ce.getSizes();
-        }
-        if (list.size() > 0) {
-            CountEntity ce = new CountEntity();
-            ce.setNo(rows);
-            ce.setM1("鎬昏");
-            ce.setCount((long) allCount);
-            ce.setM2(FileHelper.getSizes(allSize));
-            list.add(ce);
-        }
-
-        Map<String, List<CountEntity>> map = new HashMap<>(1);
-        map.put("data", list);
-
-        ExcelHelper.writeToTemplate(source, target, map);
-    }
-
-    /**
-     * 鍒涘缓 鏁版嵁鏍煎紡缁熻 Excel
-     */
-    public void createCountSizesByTypeExcel(String source, String target) {
-        List<CountEntity> list = countSizesByType();
-        if (null == list || list.isEmpty()) {
-            return;
-        }
-
-        int rows = 1, allCount = 0;
-        Double allSize = 0d;
-        for (CountEntity ce : list) {
-            ce.setNo(rows++);
-            ce.setM2(FileHelper.getSizes(ce.getSizes()));
-            allCount += ce.getCount();
-            allSize += ce.getSizes();
-        }
-        if (list.size() > 0) {
-            CountEntity ce = new CountEntity();
-            ce.setNo(rows);
-            ce.setM1("鎬昏");
-            ce.setCount((long) allCount);
-            ce.setM2(FileHelper.getSizes(allSize));
-            list.add(ce);
-        }
-
-        Map<String, List<CountEntity>> map = new HashMap<>(1);
-        map.put("data", list);
-
-        ExcelHelper.writeToTemplate(source, target, map);
-    }
-
-    /**
-     * 鍒涘缓 椤圭洰鏁版嵁缁熻 Excel
-     */
-    public void createCountSizesByPrjExcel(String source, String target) {
-        List<CountEntity> list = countSizesByPrj();
-        if (null == list || list.isEmpty()) {
-            return;
-        }
-
-        int rows = 1, allCount = 0;
-        Double allSize = 0d;
-        for (CountEntity ce : list) {
-            ce.setNo(rows++);
-            ce.setM2(FileHelper.getSizes(ce.getSizes()));
-            allCount += ce.getCount();
-            allSize += ce.getSizes();
-        }
-        if (list.size() > 0) {
-            CountEntity ce = new CountEntity();
-            ce.setNo(rows);
-            ce.setM1("鎬昏");
-            ce.setCount((long) allCount);
-            ce.setM2(FileHelper.getSizes(allSize));
-            list.add(ce);
-        }
-
-        Map<String, List<CountEntity>> map = new HashMap<>(1);
-        map.put("data", list);
-
-        ExcelHelper.writeToTemplate(source, target, map);
-    }
-
-    /**
-     * 鑾峰彇涓嬭浇瀹炰綋绫�
-     */
-    private DownloadEntity getDownloadEntity(UserEntity ue, String file) {
-        DownloadEntity de = new DownloadEntity();
-        de.setName(FileHelper.getFileName(file));
-        // 1-Shp鏂囦欢锛�2-涓撻鍥撅紝3-鍏冩暟鎹紝4-涓氬姟鏁版嵁锛�5-绠¢亾鍒嗘瀽锛�6-缁熻鎶ュ憡锛�7-闄勪欢鏂囦欢锛�8-鐡︾墖鏂囦欢
-        de.setType(6);
-        de.setSizes(FileHelper.sizeToMb(new File(file).length()));
-        de.setDepid(ue.getDepid());
-        de.setDcount(1);
-        de.setPwd(null);
-        de.setUrl(FileHelper.getRelativePath(file));
-        de.setDescr("缁熻鎶ュ憡");
-        de.setGuid(FileHelper.getFileMd5(file));
-        de.setCreateUser(ue.getId());
-        // de.setGeom(null)
-
-        return de;
     }
 }

--
Gitblit v1.9.3