hanfucheng 7 ay önce
ebeveyn
işleme
31cf0080b8

+ 22 - 0
src/main/java/com/sooka/sponest/lawenforcement/record/controller/LawenforcementViewController.java

@@ -136,4 +136,26 @@ public class LawenforcementViewController extends BaseController {
     public R getLawenforcement(LawenforcementViewBO lawenforcementViewBO) {
     public R getLawenforcement(LawenforcementViewBO lawenforcementViewBO) {
         return R.ok(lawenforcementViewService.getLawenforcement(lawenforcementViewBO));
         return R.ok(lawenforcementViewService.getLawenforcement(lawenforcementViewBO));
     }
     }
+
+    /*
+    * 类型列表
+    *
+    * @author 韩福成
+    * @date 2024/10/26 下午2:24
+    */
+    @GetMapping("/getTypeList")
+    public R getTypeList(LawenforcementViewBO lawenforcementViewBO) {
+        return R.ok(lawenforcementViewService.getTypeList(lawenforcementViewBO));
+    }
+
+    /*
+    * 近一年任务类型统计
+    *
+    * @author 韩福成
+    * @date 2024/10/26 下午2:05
+    */
+    @GetMapping("/getTypeCount")
+    public R getTypeCount(LawenforcementViewBO lawenforcementViewBO) {
+        return R.ok(lawenforcementViewService.getTypeCount(lawenforcementViewBO));
+    }
 }
 }

+ 3 - 0
src/main/java/com/sooka/sponest/lawenforcement/record/domain/bo/LawenforcementViewBO.java

@@ -31,4 +31,7 @@ public class LawenforcementViewBO extends BaseBusinessEntity {
     private String deviceId;//设备id
     private String deviceId;//设备id
 
 
     private String recordId;//工单id
     private String recordId;//工单id
+
+    private List<String> typeList;
+
 }
 }

+ 5 - 0
src/main/java/com/sooka/sponest/lawenforcement/record/mapper/LawenforcementViewMapper.java

@@ -2,6 +2,7 @@ package com.sooka.sponest.lawenforcement.record.mapper;
 
 
 import com.sooka.sponest.lawenforcement.record.domain.bo.LawenforcementViewBO;
 import com.sooka.sponest.lawenforcement.record.domain.bo.LawenforcementViewBO;
 
 
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
@@ -31,4 +32,8 @@ public interface LawenforcementViewMapper {
 
 
     List<Map<String, Object>> getEquipmentDetails(LawenforcementViewBO lawenforcementViewBO);
     List<Map<String, Object>> getEquipmentDetails(LawenforcementViewBO lawenforcementViewBO);
 
 
+    List<Map<String, Object>> getTypeList(LawenforcementViewBO lawenforcementViewBO);
+
+    List<LinkedHashMap<String, Object>> getTypeCount(LawenforcementViewBO lawenforcementViewBO);
+
 }
 }

+ 5 - 0
src/main/java/com/sooka/sponest/lawenforcement/record/service/ILawenforcementViewService.java

@@ -2,6 +2,7 @@ package com.sooka.sponest.lawenforcement.record.service;
 
 
 import com.sooka.sponest.lawenforcement.record.domain.bo.LawenforcementViewBO;
 import com.sooka.sponest.lawenforcement.record.domain.bo.LawenforcementViewBO;
 
 
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
@@ -28,4 +29,8 @@ public interface ILawenforcementViewService {
     Map<String, Object> getLawenforcement(LawenforcementViewBO lawenforcementViewBO);
     Map<String, Object> getLawenforcement(LawenforcementViewBO lawenforcementViewBO);
 
 
     List<Map<String, Object>> getEquipmentDetails(LawenforcementViewBO lawenforcementViewBO);
     List<Map<String, Object>> getEquipmentDetails(LawenforcementViewBO lawenforcementViewBO);
+
+    List<Map<String, Object>> getTypeList(LawenforcementViewBO lawenforcementViewBO);
+
+    List<LinkedHashMap<String, Object>> getTypeCount(LawenforcementViewBO lawenforcementViewBO);
 }
 }

+ 37 - 2
src/main/java/com/sooka/sponest/lawenforcement/record/service/impl/LawenforcementViewServiceImpl.java

@@ -8,8 +8,9 @@ import com.sooka.sponest.lawenforcement.record.service.ILawenforcementViewServic
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+
+import static com.ruoyi.common.core.utils.DateUtils.getLastMonths;
 
 
 /**
 /**
  * 可视化Service业务层处理
  * 可视化Service业务层处理
@@ -75,4 +76,38 @@ public class LawenforcementViewServiceImpl extends BaseService implements ILawen
         setSookaDataBase(lawenforcementViewBO);
         setSookaDataBase(lawenforcementViewBO);
         return lawenforcementViewMapper.getEquipmentDetails(lawenforcementViewBO);
         return lawenforcementViewMapper.getEquipmentDetails(lawenforcementViewBO);
     }
     }
+
+    @Override
+    @DataScopeMutiDept(deptAlias = "d")
+    public List<Map<String, Object>> getTypeList(LawenforcementViewBO lawenforcementViewBO) {
+        setSookaDataBase(lawenforcementViewBO);
+        return lawenforcementViewMapper.getTypeList(lawenforcementViewBO);
+    }
+
+    @Override
+    @DataScopeMutiDept(deptAlias = "d")
+    public List<LinkedHashMap<String, Object>> getTypeCount(LawenforcementViewBO lawenforcementViewBO) {
+        setSookaDataBase(lawenforcementViewBO);
+        lawenforcementViewBO.setDates(getLastMonths(12));
+        List<LinkedHashMap<String, Object>> typeCount = lawenforcementViewMapper.getTypeCount(lawenforcementViewBO);
+        List<LinkedHashMap<String,Object>> list = new ArrayList<>();
+        for (LinkedHashMap<String,Object> map : typeCount) {
+            LinkedHashMap<String, Object> hashMap = new LinkedHashMap<>();
+            hashMap.put("subitemName", map.get("subitemName"));
+            map.remove("subitemName");
+            Iterator<String> iterator = map.keySet().iterator();
+            List<String> month = new ArrayList<>();
+            List<String> num = new ArrayList<>();
+            while (iterator.hasNext()) {
+                String key = iterator.next();
+                month.add(key);
+                Object value = map.get(key);
+                num.add(value.toString());
+            }
+            hashMap.put("month", month);
+            hashMap.put("num", num);
+            list.add(hashMap);
+        }
+        return list;
+    }
 }
 }

+ 29 - 0
src/main/resources/mapper/lawenforcement/LawenforcementViewMapper.xml

@@ -261,4 +261,33 @@
             ${params.dataScope}
             ${params.dataScope}
         <if test="deviceId != null  and deviceId != ''"> LIMIT 5 </if>
         <if test="deviceId != null  and deviceId != ''"> LIMIT 5 </if>
     </select>
     </select>
+
+    <select id="getTypeList" parameterType="LawenforcementViewBO" resultType="map">
+        SELECT DISTINCT subitem_name FROM lawenforcement_subitem ORDER BY fill_time desc
+    </select>
+
+    <select id="getTypeCount" parameterType="LawenforcementViewBO" resultType="java.util.LinkedHashMap">
+        SELECT
+            subitemName,
+            <foreach item="date" collection="dates" open="" separator="," close="">
+                CASE WHEN fillTime = #{date} THEN num ELSE 0 END AS #{date}
+            </foreach>
+        FROM
+        (
+            SELECT
+                a.subitem_name subitemName,
+                FROM_UNIXTIME( a.fill_time / 1000, '%Y-%m' ) fillTime,
+                count( a.id ) num
+            FROM
+                lawenforcement_subitem a
+            WHERE
+            a.subitem_name IN
+        <foreach item="type" collection="typeList" open="(" separator="," close=")">
+            #{type}
+        </foreach>
+            GROUP BY a.subitem_name,fillTime
+        ) AS subquery
+        GROUP BY
+        subitemName
+    </select>
 </mapper>
 </mapper>