From d91ee46e736cd877ee9c55e6917f135e5ffd1338 Mon Sep 17 00:00:00 2001
From: 16639036659 <577530412@qq.com>
Date: 星期二, 23 四月 2024 09:41:47 +0800
Subject: [PATCH] SPI数据接口提供

---
 src/main/java/com/ruoyi/doublePrevention/entity/SPI/SPIDataReqBO.java                                      |   38 +++++++
 src/main/resources/mybatis/doublePrevention/TrHiddenDangerCheckPointMapper.xml                             |   20 ++++
 src/main/java/com/ruoyi/doublePrevention/entity/SPI/TroubleData.java                                       |   26 +++++
 src/main/java/com/ruoyi/framework/config/ShiroConfig.java                                                  |    4 
 src/main/java/com/ruoyi/doublePrevention/repository/TrHiddenDangerCheckPointRepository.java                |    7 +
 src/main/java/com/ruoyi/doublePrevention/controller/SPIDataController.java                                 |   26 +++++
 src/main/java/com/ruoyi/doublePrevention/service/SPIDataCountService.java                                  |    4 
 src/main/java/com/ruoyi/doublePrevention/entity/SPI/SPIDataRespDTO.java                                    |   29 +++++
 src/main/java/com/ruoyi/doublePrevention/service/impl/SPIDataCountServiceImpl.java                         |   46 +++++++++
 src/main/java/com/ruoyi/doublePrevention/entity/SPI/TroubleLevel.java                                      |   37 +++++++
 src/main/java/com/ruoyi/doublePrevention/service/baseService/TrHiddenDangerCheckPointService.java          |    7 +
 src/main/java/com/ruoyi/doublePrevention/service/baseService/impl/TrHiddenDangerCheckPointServiceImpl.java |   13 ++
 12 files changed, 255 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/ruoyi/doublePrevention/controller/SPIDataController.java b/src/main/java/com/ruoyi/doublePrevention/controller/SPIDataController.java
new file mode 100644
index 0000000..79fc09e
--- /dev/null
+++ b/src/main/java/com/ruoyi/doublePrevention/controller/SPIDataController.java
@@ -0,0 +1,26 @@
+package com.ruoyi.doublePrevention.controller;
+
+
+import com.ruoyi.doublePrevention.entity.SPI.SPIDataReqBO;
+import com.ruoyi.doublePrevention.entity.SPI.SPIDataRespDTO;
+import com.ruoyi.doublePrevention.service.SPIDataCountService;
+import com.ruoyi.doublePrevention.vo.ResultVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/SPIData")
+public class SPIDataController {
+
+    @Autowired
+    private SPIDataCountService spiDataCountService;
+
+    @PostMapping("/select/getSPIData")
+    public ResultVO<SPIDataRespDTO> getSPIData(@RequestBody SPIDataReqBO spiDataReqBO) {
+        return spiDataCountService.getSPIData(spiDataReqBO);
+    }
+
+}
diff --git a/src/main/java/com/ruoyi/doublePrevention/entity/SPI/SPIDataReqBO.java b/src/main/java/com/ruoyi/doublePrevention/entity/SPI/SPIDataReqBO.java
new file mode 100644
index 0000000..8a25cd8
--- /dev/null
+++ b/src/main/java/com/ruoyi/doublePrevention/entity/SPI/SPIDataReqBO.java
@@ -0,0 +1,38 @@
+package com.ruoyi.doublePrevention.entity.SPI;
+
+import lombok.Data;
+import java.util.Date;
+
+@Data
+public class SPIDataReqBO {
+
+    private String key;
+
+    private Date startTime;
+
+    private Date endTime;
+
+    public String getKey() {
+        return key;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
+}
diff --git a/src/main/java/com/ruoyi/doublePrevention/entity/SPI/SPIDataRespDTO.java b/src/main/java/com/ruoyi/doublePrevention/entity/SPI/SPIDataRespDTO.java
new file mode 100644
index 0000000..f640b17
--- /dev/null
+++ b/src/main/java/com/ruoyi/doublePrevention/entity/SPI/SPIDataRespDTO.java
@@ -0,0 +1,29 @@
+package com.ruoyi.doublePrevention.entity.SPI;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class SPIDataRespDTO {
+
+    private List<TroubleData> troubleDataList;
+
+    private TroubleLevel troubleLevel;
+
+    public List<TroubleData> getTroubleDataList() {
+        return troubleDataList;
+    }
+
+    public void setTroubleDataList(List<TroubleData> troubleDataList) {
+        this.troubleDataList = troubleDataList;
+    }
+
+    public TroubleLevel getTroubleLevel() {
+        return troubleLevel;
+    }
+
+    public void setTroubleLevel(TroubleLevel troubleLevel) {
+        this.troubleLevel = troubleLevel;
+    }
+}
diff --git a/src/main/java/com/ruoyi/doublePrevention/entity/SPI/TroubleData.java b/src/main/java/com/ruoyi/doublePrevention/entity/SPI/TroubleData.java
new file mode 100644
index 0000000..7ccbe4c
--- /dev/null
+++ b/src/main/java/com/ruoyi/doublePrevention/entity/SPI/TroubleData.java
@@ -0,0 +1,26 @@
+package com.ruoyi.doublePrevention.entity.SPI;
+
+
+
+
+public class TroubleData {
+
+    private String time;
+    private Integer count;
+
+    public String getTime() {
+        return time;
+    }
+
+    public void setTime(String time) {
+        this.time = time;
+    }
+
+    public Integer getCount() {
+        return count;
+    }
+
+    public void setCount(Integer count) {
+        this.count = count;
+    }
+}
diff --git a/src/main/java/com/ruoyi/doublePrevention/entity/SPI/TroubleLevel.java b/src/main/java/com/ruoyi/doublePrevention/entity/SPI/TroubleLevel.java
new file mode 100644
index 0000000..1b69fe7
--- /dev/null
+++ b/src/main/java/com/ruoyi/doublePrevention/entity/SPI/TroubleLevel.java
@@ -0,0 +1,37 @@
+package com.ruoyi.doublePrevention.entity.SPI;
+
+
+
+
+public class TroubleLevel {
+
+    private String A;
+
+    private String B;
+
+    private String C;
+
+    public String getA() {
+        return A;
+    }
+
+    public void setA(String a) {
+        A = a;
+    }
+
+    public String getB() {
+        return B;
+    }
+
+    public void setB(String b) {
+        B = b;
+    }
+
+    public String getC() {
+        return C;
+    }
+
+    public void setC(String c) {
+        C = c;
+    }
+}
diff --git a/src/main/java/com/ruoyi/doublePrevention/repository/TrHiddenDangerCheckPointRepository.java b/src/main/java/com/ruoyi/doublePrevention/repository/TrHiddenDangerCheckPointRepository.java
index 2a53c96..7d36a6a 100644
--- a/src/main/java/com/ruoyi/doublePrevention/repository/TrHiddenDangerCheckPointRepository.java
+++ b/src/main/java/com/ruoyi/doublePrevention/repository/TrHiddenDangerCheckPointRepository.java
@@ -1,5 +1,8 @@
 package com.ruoyi.doublePrevention.repository;
 
+import com.ruoyi.doublePrevention.entity.SPI.SPIDataReqBO;
+import com.ruoyi.doublePrevention.entity.SPI.TroubleData;
+import com.ruoyi.doublePrevention.entity.SPI.TroubleLevel;
 import com.ruoyi.doublePrevention.entity.dto.DataCountDangerLevelRectifiedRespDO;
 import com.ruoyi.doublePrevention.entity.dto.DataCountDangerLevelRespDO;
 import org.apache.ibatis.annotations.Param;
@@ -21,4 +24,8 @@
      */
     DataCountDangerLevelRectifiedRespDO listDangerLevelRectifiedCountByTime(@Param("startTime") Date startTime,
                                                                             @Param("endTime") Date endTime,@Param("depIds") List<Long> depIds);
+
+    List<TroubleData> getSPIData(@Param(value="spiDataReqBO")SPIDataReqBO spiDataReqBO);
+
+    TroubleLevel getTroubleLevel(@Param(value="spiDataReqBO")SPIDataReqBO spiDataReqBO);
 }
diff --git a/src/main/java/com/ruoyi/doublePrevention/service/SPIDataCountService.java b/src/main/java/com/ruoyi/doublePrevention/service/SPIDataCountService.java
index 2262ada..0aa1580 100644
--- a/src/main/java/com/ruoyi/doublePrevention/service/SPIDataCountService.java
+++ b/src/main/java/com/ruoyi/doublePrevention/service/SPIDataCountService.java
@@ -1,5 +1,7 @@
 package com.ruoyi.doublePrevention.service;
 
+import com.ruoyi.doublePrevention.entity.SPI.SPIDataReqBO;
+import com.ruoyi.doublePrevention.entity.SPI.SPIDataRespDTO;
 import com.ruoyi.doublePrevention.entity.dto.req.SPIDataCountReqDTO;
 import com.ruoyi.doublePrevention.entity.dto.resp.SPIDataCountRespDTO;
 import com.ruoyi.doublePrevention.vo.ResultVO;
@@ -10,4 +12,6 @@
      * 数据统计-隐患数据统计-根据月或者年
      */
     ResultVO<SPIDataCountRespDTO> listDangerResultCountByMonthOrYear(SPIDataCountReqDTO spiDataCountReqDTO);
+
+    ResultVO<SPIDataRespDTO> getSPIData(SPIDataReqBO spiDataReqBO);
 }
diff --git a/src/main/java/com/ruoyi/doublePrevention/service/baseService/TrHiddenDangerCheckPointService.java b/src/main/java/com/ruoyi/doublePrevention/service/baseService/TrHiddenDangerCheckPointService.java
index 29c1e05..6c751e6 100644
--- a/src/main/java/com/ruoyi/doublePrevention/service/baseService/TrHiddenDangerCheckPointService.java
+++ b/src/main/java/com/ruoyi/doublePrevention/service/baseService/TrHiddenDangerCheckPointService.java
@@ -1,5 +1,8 @@
 package com.ruoyi.doublePrevention.service.baseService;
 
+import com.ruoyi.doublePrevention.entity.SPI.SPIDataReqBO;
+import com.ruoyi.doublePrevention.entity.SPI.TroubleData;
+import com.ruoyi.doublePrevention.entity.SPI.TroubleLevel;
 import com.ruoyi.doublePrevention.entity.dto.DataCountDangerLevelRectifiedRespDO;
 import com.ruoyi.doublePrevention.entity.dto.DataCountDangerLevelRespDO;
 
@@ -18,4 +21,8 @@
      * @description 统计时间段内一般已整改、重大已整改的隐患数量
      */
     DataCountDangerLevelRectifiedRespDO listDangerLevelRectifiedCountByTime(Date startTime, Date endTime, List<Long> depIds);
+
+    List<TroubleData> getSPIData(SPIDataReqBO spiDataReqBO);
+
+    TroubleLevel getTroubleLevel(SPIDataReqBO spiDataReqBO);
 }
diff --git a/src/main/java/com/ruoyi/doublePrevention/service/baseService/impl/TrHiddenDangerCheckPointServiceImpl.java b/src/main/java/com/ruoyi/doublePrevention/service/baseService/impl/TrHiddenDangerCheckPointServiceImpl.java
index 052c7d6..81a8ae1 100644
--- a/src/main/java/com/ruoyi/doublePrevention/service/baseService/impl/TrHiddenDangerCheckPointServiceImpl.java
+++ b/src/main/java/com/ruoyi/doublePrevention/service/baseService/impl/TrHiddenDangerCheckPointServiceImpl.java
@@ -1,5 +1,8 @@
 package com.ruoyi.doublePrevention.service.baseService.impl;
 
+import com.ruoyi.doublePrevention.entity.SPI.SPIDataReqBO;
+import com.ruoyi.doublePrevention.entity.SPI.TroubleData;
+import com.ruoyi.doublePrevention.entity.SPI.TroubleLevel;
 import com.ruoyi.doublePrevention.entity.dto.DataCountDangerLevelRectifiedRespDO;
 import com.ruoyi.doublePrevention.entity.dto.DataCountDangerLevelRespDO;
 import com.ruoyi.doublePrevention.repository.TrHiddenDangerCheckPointRepository;
@@ -31,4 +34,14 @@
     public DataCountDangerLevelRectifiedRespDO listDangerLevelRectifiedCountByTime(Date startTime, Date endTime, List<Long> depIds) {
         return checkPointRepository.listDangerLevelRectifiedCountByTime(startTime,endTime,depIds);
     }
+
+    @Override
+    public List<TroubleData> getSPIData(SPIDataReqBO spiDataReqBO) {
+        return  checkPointRepository.getSPIData(spiDataReqBO);
+    }
+
+    @Override
+    public TroubleLevel getTroubleLevel(SPIDataReqBO spiDataReqBO) {
+        return checkPointRepository.getTroubleLevel(spiDataReqBO);
+    }
 }
diff --git a/src/main/java/com/ruoyi/doublePrevention/service/impl/SPIDataCountServiceImpl.java b/src/main/java/com/ruoyi/doublePrevention/service/impl/SPIDataCountServiceImpl.java
index 827faec..ec2ae73 100644
--- a/src/main/java/com/ruoyi/doublePrevention/service/impl/SPIDataCountServiceImpl.java
+++ b/src/main/java/com/ruoyi/doublePrevention/service/impl/SPIDataCountServiceImpl.java
@@ -1,6 +1,10 @@
 package com.ruoyi.doublePrevention.service.impl;
 
 import com.ruoyi.doublePrevention.entity.DoublePreventDept;
+import com.ruoyi.doublePrevention.entity.SPI.SPIDataReqBO;
+import com.ruoyi.doublePrevention.entity.SPI.SPIDataRespDTO;
+import com.ruoyi.doublePrevention.entity.SPI.TroubleData;
+import com.ruoyi.doublePrevention.entity.SPI.TroubleLevel;
 import com.ruoyi.doublePrevention.entity.dto.DataCountDangerLevelRectifiedRespDO;
 import com.ruoyi.doublePrevention.entity.dto.DataCountDangerLevelRespDO;
 import com.ruoyi.doublePrevention.entity.dto.DataCountDangerResultRespDO;
@@ -13,7 +17,6 @@
 import com.ruoyi.doublePrevention.service.baseService.PreventRiskDangerInfoService;
 import com.ruoyi.doublePrevention.service.baseService.TrHiddenDangerCheckPointService;
 import com.ruoyi.doublePrevention.vo.ResultVO;
-import io.swagger.models.auth.In;
 import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -21,6 +24,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.time.LocalDateTime;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
@@ -158,6 +162,46 @@
         return parameterVerificationResult;
     }
 
+    @Override
+    public ResultVO<SPIDataRespDTO> getSPIData(SPIDataReqBO spiDataReqBO) {
+
+        ResultVO resultVO = new ResultVO<>();
+        resultVO.setCode("200");
+        resultVO.setMsg("查询成功");
+
+        String key = "006a4740-8f2d-4fdc-a25b-a7413a37a2ba";
+
+        if (ObjectUtils.isEmpty(spiDataReqBO.getKey())){
+            resultVO.setCode("400");
+            resultVO.setMsg("key不能为空");
+            return resultVO;
+        }
+        if (!spiDataReqBO.getKey().equals(key)){
+            resultVO.setCode("400");
+            resultVO.setMsg("key不正确");
+            return resultVO;
+        }
+        if (ObjectUtils.isEmpty(spiDataReqBO.getStartTime())){
+            spiDataReqBO.setStartTime(new Date(123, 3,1));
+        }
+        if (ObjectUtils.isEmpty(spiDataReqBO.getEndTime())){
+            spiDataReqBO.setEndTime(new Date());
+        }
+
+        List<TroubleData> spiData = checkPointService.getSPIData(spiDataReqBO);
+
+        TroubleLevel troubleLevel = checkPointService.getTroubleLevel(spiDataReqBO);
+
+        SPIDataRespDTO spiDataRespDTO = new SPIDataRespDTO();
+
+        spiDataRespDTO.setTroubleDataList(spiData);
+        spiDataRespDTO.setTroubleLevel(troubleLevel);
+
+        resultVO.setData(spiDataRespDTO);
+
+        return resultVO;
+    }
+
 
     /**
      * @description 参数校验
diff --git a/src/main/java/com/ruoyi/framework/config/ShiroConfig.java b/src/main/java/com/ruoyi/framework/config/ShiroConfig.java
index eb31311..8be903b 100644
--- a/src/main/java/com/ruoyi/framework/config/ShiroConfig.java
+++ b/src/main/java/com/ruoyi/framework/config/ShiroConfig.java
@@ -225,7 +225,7 @@
     }
 
     /**
-     * Shiro过滤器配置
+     * Shiro过滤器配置 todo 过滤器
      */
     @Bean
     public ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager)
@@ -254,6 +254,8 @@
         filterChainDefinitionMap.put("/logout", "logout");
         // 不需要拦截的访问
         filterChainDefinitionMap.put("/login", "anon,captchaValidate");
+        // 不需要拦截的访问 todo
+        filterChainDefinitionMap.put("/SPIData/**", "anon,captchaValidate");
         // 注册相关
         filterChainDefinitionMap.put("/register", "anon,captchaValidate");
 
diff --git a/src/main/resources/mybatis/doublePrevention/TrHiddenDangerCheckPointMapper.xml b/src/main/resources/mybatis/doublePrevention/TrHiddenDangerCheckPointMapper.xml
index 435914b..2050f7a 100644
--- a/src/main/resources/mybatis/doublePrevention/TrHiddenDangerCheckPointMapper.xml
+++ b/src/main/resources/mybatis/doublePrevention/TrHiddenDangerCheckPointMapper.xml
@@ -108,4 +108,24 @@
           </if>
     </select>
 
+
+<!--    List<TroubleDataRespDTO> getSPIData(SPIDataReqBO spiDataReqBO);-->
+    <select id="getSPIData" resultType="com.ruoyi.doublePrevention.entity.SPI.TroubleData">
+        SELECT
+            DATE_FORMAT(register_create_time, '%Y-%m') time, sum(1) count
+        FROM tr_hidden_danger_check_point
+        WHERE register_create_time >= #{spiDataReqBO.startTime} and #{spiDataReqBO.endTime} >= register_create_time and whether_danger = 1
+        GROUP BY time
+        ORDER BY time ASC
+    </select>
+
+<!--    TroubleLevel getTroubleLevel(SPIDataReqBO spiDataReqBO);-->
+    <select id="getTroubleLevel" resultType="com.ruoyi.doublePrevention.entity.SPI.TroubleLevel">
+        select
+            sum(case when trouble_type_name = 'A级隐患' then 1 else 0 end) A,
+            sum(case when trouble_type_name = 'B级隐患' then 1 else 0 end) B,
+            sum(case when trouble_type_name = 'C级隐患' then 1 else 0 end) C
+        from tr_hidden_danger_check_point
+        WHERE register_create_time >= #{spiDataReqBO.startTime} and #{spiDataReqBO.endTime} >= register_create_time  and whether_danger = 1
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.2