459242451@qq.com před 1 rokem
rodič
revize
18f17017da

+ 32 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/qdtl/TlCommonController.java

@@ -1,5 +1,6 @@
 package com.ruoyi.web.controller.qdtl;
 
+import cn.hutool.core.convert.Convert;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
@@ -12,13 +13,17 @@ import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.qdtl.domain.IncidentAreaNum;
+import com.ruoyi.qdtl.domain.IncidentDetailAreaNum;
 import com.ruoyi.qdtl.domain.MonitorStatic;
 import com.ruoyi.qdtl.domain.TlArea;
+import com.ruoyi.qdtl.domain.TlIncident;
 import com.ruoyi.qdtl.domain.TlInspectionLocation;
 import com.ruoyi.qdtl.domain.TlInspectionLocationLog;
 import com.ruoyi.qdtl.domain.UserCheckPoint;
 import com.ruoyi.qdtl.service.IQdCommonService;
 import com.ruoyi.qdtl.service.ITlAreaService;
+import com.ruoyi.qdtl.service.ITlIncidentService;
 import com.ruoyi.qdtl.service.ITlInspectionLocationLogService;
 import com.ruoyi.qdtl.service.ITlInspectionLocationService;
 import com.ruoyi.qdtl.service.ITlMonitorService;
@@ -40,6 +45,7 @@ import org.springframework.web.bind.annotation.RestController;
 import sun.misc.BASE64Decoder;
 
 import java.io.File;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -67,6 +73,7 @@ public class TlCommonController extends BaseController {
     private final IQdCommonService qdCommonService;
 
     private final ITlSinglePawnService singlePawnService;
+    private final ITlIncidentService incidentService;
 
 
     /**
@@ -175,6 +182,31 @@ public class TlCommonController extends BaseController {
         DateTime startDate = DateUtil.offsetDay(endDate, -6);
         List<JSONObject> locationLogDaysList = tlInspectionLocationLogService.queryDistanceByDateRange(DateUtil.formatDate(startDate), DateUtil.formatDate(endDate));
         map.put("locationLogDaysList", locationLogDaysList);
+        // 隐患分析
+        List<TlIncident> tlIncidents = incidentService.selectTlIncidentList(new TlIncident());
+        long unDealTotal = tlIncidents.stream().filter(obj -> "1".equals(obj.getStatus())).count();
+        Map<String, Map<String, Integer>> incidentDetailCount = tlIncidents.stream().collect(Collectors.groupingBy(TlIncident::getArea, Collectors.groupingBy(TlIncident::getStatus, Collectors.summingInt(e -> 1))));
+        Map<String, Integer> incidentCount = tlIncidents.stream().collect(Collectors.groupingBy(TlIncident::getArea, Collectors.summingInt(e -> 1)));
+        map.put("unDealTotal", unDealTotal); // 未处理隐患总数
+        map.put("incidentTotal", tlIncidents.size()); // 隐患总数
+        TlArea tlArea = new TlArea();
+        tlArea.setAreaType("1");
+        List<TlArea> areas = tlAreaService.selectTlAreaList(tlArea);
+        List<IncidentAreaNum> areaIncidentTotals = new ArrayList<>();
+        List<IncidentDetailAreaNum> incidentDetailCounts = new ArrayList<>();
+        for (TlArea area : areas) {
+            IncidentAreaNum incidentAreaNum = new IncidentAreaNum();
+            incidentAreaNum.setAreaName(area.getAreaName());
+            incidentAreaNum.setNum(incidentCount.getOrDefault(Convert.toStr(area.getId()), 0));
+            areaIncidentTotals.add(incidentAreaNum);
+
+            IncidentDetailAreaNum incidentDetailAreaNum = new IncidentDetailAreaNum();
+            incidentDetailAreaNum.setAreaName(area.getAreaName());
+            incidentDetailAreaNum.setDetail(incidentDetailCount.get(Convert.toStr(area.getId())));
+            incidentDetailCounts.add(incidentDetailAreaNum);
+        }
+        map.put("areaIncidentTotal", areaIncidentTotals); // 各区域隐患占比
+        map.put("areaIncidentDetail", incidentDetailCounts); // 各区域隐患分项占比
 
         return AjaxResult.success(map);
     }

+ 15 - 0
ruoyi-system/src/main/java/com/ruoyi/qdtl/domain/IncidentAreaNum.java

@@ -0,0 +1,15 @@
+package com.ruoyi.qdtl.domain;
+
+import lombok.Data;
+
+/**
+ * @Description: TODO
+ * @Author: huangcheng
+ * @Date: 2023/10/12
+ * @Version V1.0
+ */
+@Data
+public class IncidentAreaNum {
+    private String areaName;
+    private Integer num;
+}

+ 17 - 0
ruoyi-system/src/main/java/com/ruoyi/qdtl/domain/IncidentDetailAreaNum.java

@@ -0,0 +1,17 @@
+package com.ruoyi.qdtl.domain;
+
+import lombok.Data;
+
+import java.util.Map;
+
+/**
+ * @Description: TODO
+ * @Author: huangcheng
+ * @Date: 2023/10/12
+ * @Version V1.0
+ */
+@Data
+public class IncidentDetailAreaNum {
+    private String areaName;
+    private Map<String, Integer> detail;
+}