Просмотр исходного кода

- 添加 预警信息-处置状态分析 接口
- 修改 预警信息 接口路径

Kazerin 1 месяц назад
Родитель
Сommit
0117573e67

+ 62 - 0
pipe-network-service/zksy-admin/src/main/java/com/zksy/web/controller/warning/EarlyWarningDisposeStatusController.java

@@ -0,0 +1,62 @@
+package com.zksy.web.controller.warning;
+
+import com.zksy.base.warning.service.IEarlyWarningDisposeStatusService;
+import com.zksy.common.core.domain.AjaxResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 预警统计-处置状态分析接口
+ */
+@RestController
+@RequestMapping("/warning/disposeStatus")
+@Api(tags = "预警信息-处置状态分析模块")
+public class EarlyWarningDisposeStatusController {
+
+    private static final Logger log = LoggerFactory.getLogger(EarlyWarningDisposeStatusController.class);
+
+    @Autowired
+    private IEarlyWarningDisposeStatusService disposeStatusService;
+
+    @GetMapping("/stat")
+    @ApiOperation(value = "处置状态统计分析",
+            notes = "按预警处置状态分组统计数量,支持时间范围、预警专项筛选,返回数据适配饼图/柱状图")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "统计成功", response = AjaxResult.class),
+            @ApiResponse(code = 500, message = "统计异常", response = AjaxResult.class)
+    })
+    public AjaxResult getDisposeStatusStat(
+            @ApiParam(value = "发布开始时间 yyyy-MM-dd HH:mm:ss", example = "2026-01-01 00:00:00")
+            @RequestParam(required = false)
+            @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime startTime,
+
+            @ApiParam(value = "发布结束时间 yyyy-MM-dd HH:mm:ss", example = "2026-06-01 23:59:59")
+            @RequestParam(required = false)
+            @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime endTime,
+
+            @ApiParam(value = "预警专项", example = "管网压力专项")
+            @RequestParam(required = false) String warningSpecial) {
+        try {
+            List<Map<String, Object>> result = disposeStatusService.getWarningStatusStat(startTime, endTime, warningSpecial);
+            return AjaxResult.success("处置状态统计查询成功", result);
+        } catch (Exception e) {
+            log.error("处置状态统计查询异常", e);
+            return AjaxResult.error("统计失败:" + e.getMessage());
+        }
+    }
+}

+ 1 - 1
pipe-network-service/zksy-admin/src/main/java/com/zksy/web/controller/warning/EarlyWarningTodayController.java

@@ -21,7 +21,7 @@ import java.util.Map;
  * 今日预警统计接口
  */
 @RestController
-@RequestMapping("/api/warning/today")
+@RequestMapping("/warning/today")
 @Api(tags = "预警信息-今日预警统计接口")
 public class EarlyWarningTodayController {
 

+ 1 - 1
pipe-network-service/zksy-admin/src/main/java/com/zksy/web/controller/warning/EarlyWarningTrendController.java

@@ -21,7 +21,7 @@ import java.util.Map;
  * 预警发展趋势接口
  */
 @RestController
-@RequestMapping("/api/warning/trend")
+@RequestMapping("/warning/trend")
 @Api(tags = "预警信息-预警发展趋势接口")
 public class EarlyWarningTrendController {
 

+ 12 - 0
pipe-network-service/zksy-system/src/main/java/com/zksy/base/warning/mapper/EarlyWarningMapper.java

@@ -61,4 +61,16 @@ public interface EarlyWarningMapper extends BaseMapper<EarlyWarning> {
             @Param("startTime") LocalDateTime startTime,
             @Param("endTime") LocalDateTime endTime,
             @Param("warningSpecial") String warningSpecial);
+
+    /**
+     * 按处置状态分组统计预警数量
+     * @param startTime 开始发布时间
+     * @param endTime 结束发布时间
+     * @param warningSpecial 预警专项(可选)
+     * @return 分组结果:status状态、count数量
+     */
+    List<Map<String, Object>> selectWarningGroupByStatus(
+            @Param("startTime") LocalDateTime startTime,
+            @Param("endTime") LocalDateTime endTime,
+            @Param("warningSpecial") String warningSpecial);
 }

+ 19 - 0
pipe-network-service/zksy-system/src/main/java/com/zksy/base/warning/service/IEarlyWarningDisposeStatusService.java

@@ -0,0 +1,19 @@
+package com.zksy.base.warning.service;
+
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Map;
+
+public interface IEarlyWarningDisposeStatusService {
+
+    /**
+     * 处置状态分析:按状态分组统计预警数量
+     * @param startTime 发布开始时间
+     * @param endTime 发布结束时间
+     * @param warningSpecial 预警专项
+     * @return 状态+数量集合
+     */
+    List<Map<String, Object>> getWarningStatusStat(LocalDateTime startTime,
+                                                   LocalDateTime endTime,
+                                                   String warningSpecial);
+}

+ 24 - 0
pipe-network-service/zksy-system/src/main/java/com/zksy/base/warning/service/impl/EarlyWarningDisposeStatusServiceImpl.java

@@ -0,0 +1,24 @@
+package com.zksy.base.warning.service.impl;
+
+import com.zksy.base.warning.mapper.EarlyWarningMapper;
+import com.zksy.base.warning.service.IEarlyWarningDisposeStatusService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class EarlyWarningDisposeStatusServiceImpl implements IEarlyWarningDisposeStatusService {
+
+    @Autowired
+    private EarlyWarningMapper earlyWarningMapper;
+
+    @Override
+    public List<Map<String, Object>> getWarningStatusStat(LocalDateTime startTime,
+                                                          LocalDateTime endTime,
+                                                          String warningSpecial) {
+        return earlyWarningMapper.selectWarningGroupByStatus(startTime, endTime, warningSpecial);
+    }
+}

+ 20 - 0
pipe-network-service/zksy-system/src/main/resources/mapper/warning/EarlyWarningMapper.xml

@@ -103,6 +103,26 @@
         ORDER BY stat_month ASC, warning_special ASC
     </select>
 
+    <!-- 处置状态分析:按预警状态分组统计数量 -->
+    <select id="selectWarningGroupByStatus" resultType="java.util.Map">
+        SELECT
+        status,
+        COUNT(warning_id) AS status_count
+        FROM early_warning
+        WHERE status != 'DRAFT'
+        <if test="startTime != null">
+            AND publish_time &gt;= #{startTime}
+        </if>
+        <if test="endTime != null">
+            AND publish_time &lt; #{endTime}
+        </if>
+        <if test="warningSpecial != null and warningSpecial != ''">
+            AND warning_special = #{warningSpecial}
+        </if>
+        GROUP BY status
+        ORDER BY status_count DESC
+    </select>
+
     <!--  -->
 
     <select id="selectWarningList" resultType="java.util.Map">