فهرست منبع

Merge branch 'han' of uskycloud/usky-modules into server-165

hanzhengyi 1 سال پیش
والد
کامیت
2884f7ce82

+ 31 - 2
service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/controller/web/BaseAlarmStatisticController.java

@@ -1,10 +1,19 @@
 package com.usky.alarm.controller.web;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
+import com.aliyuncs.exceptions.ClientException;
+import com.usky.alarm.domain.BaseAlarm;
+import com.usky.alarm.service.BaseAlarmService;
+import com.usky.alarm.service.BaseAlarmStatisticService;
+import com.usky.common.core.bean.ApiResult;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
 
 import org.springframework.stereotype.Controller;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * <p>
  * 告警统计表 前端控制器
@@ -13,9 +22,29 @@ import org.springframework.stereotype.Controller;
  * @author han
  * @since 2023-11-24
  */
-@Controller
+@RestController
 @RequestMapping("/baseAlarmStatistic")
 public class BaseAlarmStatisticController {
+    @Autowired
+    private BaseAlarmStatisticService baseAlarmStatisticService;
+
+    @GetMapping("/add")
+    public ApiResult<Void> add(@RequestParam(value = "alarmId") Integer alarmId) throws ClientException {
+        baseAlarmStatisticService.baseAlarmStatisticTask(alarmId);
+        return ApiResult.success();
+    }
 
+    /**
+     * 综合云图-告警及隐患折线图接口
+     *
+     * @param deptId 部门ID
+     * @param dateType 时间类型
+     * @return
+     */
+    @GetMapping("/alarmStatistic")
+    public ApiResult<List<Map<String,Object>>> alarmStatistic(@RequestParam(value = "deptId", required = false) Integer deptId,
+                                                              @RequestParam(value = "dateType", required = false) Integer dateType){
+        return ApiResult.success(baseAlarmStatisticService.alarmStatistic(deptId,dateType));
+    }
 }
 

+ 13 - 6
service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/controller/web/TaskController.java

@@ -1,23 +1,30 @@
 package com.usky.alarm.controller.web;
 
-import com.usky.alarm.service.job.DmpDataOverviewJob;
+import com.usky.alarm.service.BaseAlarmStatisticService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
 /**
- * @author zyj
- * @since 2023-06-05
+ * @author han
+ * @since 2023-12-04
  */
 @EnableScheduling
 @Component
 public class TaskController {
     @Autowired
-    private DmpDataOverviewJob dmpDataOverviewJob;
+    private BaseAlarmStatisticService baseAlarmStatisticService;
 
-    @Scheduled(cron = "0 0 1 * * ? ") //每天凌晨1点执行
+    @Scheduled(cron = "0 2 0 * * ? ") //每天凌晨2点执行
     public void task() {
-        System.out.println(Thread.currentThread().getName() + "定时任务执行中");
+        System.out.println(Thread.currentThread().getName() + "告警及隐患日统计定时任务执行中");
+        baseAlarmStatisticService.baseAlarmStatisticTask(1);
+    }
+
+    @Scheduled(cron = "0 0 1 1 * ?")//每月1号凌晨1点
+    public void task1() {
+        System.out.println(Thread.currentThread().getName() + "告警及隐患月统计定时任务执行中");
+        baseAlarmStatisticService.baseAlarmStatisticTask(2);
     }
 }

+ 5 - 0
service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/domain/BaseAlarmStatistic.java

@@ -42,6 +42,11 @@ public class BaseAlarmStatistic implements Serializable {
      */
     private Integer statisticDimen;
 
+    /**
+     * 统一时间
+     */
+    private LocalDateTime statisticTime;
+
     /**
      * 创建时间
      */

+ 2 - 0
service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/mapper/BaseAlarmMapper.java

@@ -3,6 +3,7 @@ package com.usky.alarm.mapper;
 import com.usky.alarm.domain.BaseAlarm;
 import com.usky.alarm.domain.BaseAlarmType;
 import com.usky.common.mybatis.core.CrudMapper;
+import org.springframework.stereotype.Repository;
 
 /**
  * <p>
@@ -12,6 +13,7 @@ import com.usky.common.mybatis.core.CrudMapper;
  * @author han
  * @since 2023-09-22
  */
+@Repository
 public interface BaseAlarmMapper extends CrudMapper<BaseAlarm> {
     BaseAlarmType getAlarmTypeOne(String alarmType);
 }

+ 9 - 1
service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/mapper/BaseAlarmStatisticMapper.java

@@ -2,6 +2,12 @@ package com.usky.alarm.mapper;
 
 import com.usky.alarm.domain.BaseAlarmStatistic;
 import com.usky.common.mybatis.core.CrudMapper;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.time.LocalDate;
+import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -11,6 +17,8 @@ import com.usky.common.mybatis.core.CrudMapper;
  * @author han
  * @since 2023-11-24
  */
+@Repository
 public interface BaseAlarmStatisticMapper extends CrudMapper<BaseAlarmStatistic> {
-
+    List<Map<String, Object>> getStatistic(@Param("startTime") LocalDate startTime,
+                                          @Param("endTime") LocalDate endTime);
 }

+ 11 - 0
service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/service/BaseAlarmStatisticService.java

@@ -3,6 +3,9 @@ package com.usky.alarm.service;
 import com.usky.alarm.domain.BaseAlarmStatistic;
 import com.usky.common.mybatis.core.CrudService;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * <p>
  * 告警统计表 服务类
@@ -12,5 +15,13 @@ import com.usky.common.mybatis.core.CrudService;
  * @since 2023-11-24
  */
 public interface BaseAlarmStatisticService extends CrudService<BaseAlarmStatistic> {
+    /**
+     * 定时任务-告警日、月不同维度统计
+     */
+    void baseAlarmStatisticTask(Integer type);
 
+    /**
+     * 综合云图-告警及隐患折线图接口
+     */
+    List<Map<String,Object>> alarmStatistic(Integer deptId,Integer dateType);
 }

+ 57 - 0
service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/service/impl/BaseAlarmStatisticServiceImpl.java

@@ -1,10 +1,22 @@
 package com.usky.alarm.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.usky.alarm.domain.BaseAlarm;
 import com.usky.alarm.domain.BaseAlarmStatistic;
 import com.usky.alarm.mapper.BaseAlarmStatisticMapper;
+import com.usky.alarm.service.BaseAlarmService;
 import com.usky.alarm.service.BaseAlarmStatisticService;
 import com.usky.common.mybatis.core.AbstractCrudService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.time.*;
+import java.time.temporal.TemporalAdjusters;
+import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -16,5 +28,50 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class BaseAlarmStatisticServiceImpl extends AbstractCrudService<BaseAlarmStatisticMapper, BaseAlarmStatistic> implements BaseAlarmStatisticService {
+    @Autowired
+    private BaseAlarmService baseAlarmService;
+
+    @Transactional
+    @Override
+    public void baseAlarmStatisticTask(Integer type) {
+        LocalDateTime now = LocalDateTime.now();
+        LocalDate currentDate = LocalDate.now();
+        LocalDate previousDate = currentDate.minusDays(1);
+        BaseAlarmStatistic baseAlarmStatistic = new BaseAlarmStatistic();
+        LocalDateTime startDateTime = LocalDateTime.of(previousDate, LocalTime.MIN);
+        LocalDateTime endDateTime = LocalDateTime.of(previousDate, LocalTime.MAX);
+        LocalDateTime startOfPreviousMonth = YearMonth.from(now).minusMonths(1).atDay(1).atTime(0, 0, 0);
+        LocalDateTime endOfPreviousMonth = YearMonth.from(now).minusMonths(1).atEndOfMonth().atTime(23, 59, 59);
+        QueryWrapper<BaseAlarm> queryWrapper = Wrappers.query();
+        if (type.equals(1)){
+            queryWrapper.select("COUNT(alarm_grade=1 or null) as alarmCount","COUNT(alarm_grade!=1 or" +
+                    " null) as hiddenCount")
+                    .between("alarm_time",startDateTime,endDateTime);
+            baseAlarmStatistic.setStatisticDimen(1);
+            baseAlarmStatistic.setStatisticTime(startDateTime);
+        }else {
+            queryWrapper.select("COUNT(alarm_grade=1 or null) as alarmCount","COUNT(alarm_grade!=1 or" +
+                    " null) as hiddenCount")
+                    .between("alarm_time",startOfPreviousMonth,endOfPreviousMonth);
+            baseAlarmStatistic.setStatisticDimen(2);
+            baseAlarmStatistic.setStatisticTime(startOfPreviousMonth);
+        }
+        List<Map<String,Object>> alarmStatisticList = baseAlarmService.listMaps(queryWrapper);
+        baseAlarmStatistic.setAlarmNum(Integer.valueOf(alarmStatisticList.get(0).get("alarmCount").toString()));
+        baseAlarmStatistic.setPitfallNum(Integer.valueOf(alarmStatisticList.get(0).get("hiddenCount").toString()));
+        baseAlarmStatistic.setCreateTime(now);
+        this.save(baseAlarmStatistic);
+    }
 
+    @Override
+    public List<Map<String, Object>> alarmStatistic(Integer deptId,Integer dateType) {
+        LocalDateTime currentDate = LocalDateTime.now();
+        LocalDateTime firstDayOfMonth = LocalDateTime.now().with(TemporalAdjusters.firstDayOfMonth());
+        QueryWrapper<BaseAlarmStatistic> queryWrapper = Wrappers.query();
+        queryWrapper.select("alarm_num as alarmNum","pitfall_num as pitfallNum","DATE_FORMAT(statistic_time, '%m-%d') AS " +
+                "statisticTime")
+                .between("statistic_time",firstDayOfMonth,currentDate);
+        List<Map<String, Object>> list = this.listMaps(queryWrapper);
+        return list;
+    }
 }

+ 165 - 0
service-alarm/service-alarm-biz/src/main/resources/mapper/alarm/BaseAlarmStatisticMapper.xml

@@ -8,9 +8,174 @@
         <result column="alarm_num" property="alarmNum" />
         <result column="pitfall_num" property="pitfallNum" />
         <result column="statistic_dimen" property="statisticDimen" />
+        <result column="statistic_time" property="statisticTime" />
         <result column="create_time" property="createTime" />
         <result column="dept_id" property="deptId" />
         <result column="tenant_id" property="tenantId" />
     </resultMap>
 
+<!--    <select id="getStatistic" resultType="java.util.Map">-->
+<!--        SELECT-->
+<!--        d.date,-->
+<!--        IFNULL(t.total_rows, 0) AS total_rows-->
+<!--        FROM-->
+<!--        (-->
+<!--        SELECT-->
+<!--        date_add(-->
+<!--        #{startTime},-->
+<!--        INTERVAL ROW DAY-->
+<!--        ) date-->
+<!--        FROM-->
+<!--        (-->
+<!--        SELECT-->
+<!--        @ROW := @ROW + 1 AS ROW-->
+<!--        FROM-->
+<!--        (-->
+<!--        SELECT-->
+<!--        0-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        1-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        2-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        3-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        4-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        5-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        6-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        7-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        8-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        9-->
+<!--        ) t,-->
+<!--        (-->
+<!--        SELECT-->
+<!--        0-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        1-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        2-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        3-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        4-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        5-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        6-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        7-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        8-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        9-->
+<!--        ) t2,-->
+<!--        (-->
+<!--        SELECT-->
+<!--        0-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        1-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        2-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        3-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        4-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        5-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        6-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        7-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        8-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        9-->
+<!--        ) t3,-->
+<!--        (-->
+<!--        SELECT-->
+<!--        0-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        1-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        2-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        3-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        4-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        5-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        6-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        7-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        8-->
+<!--        UNION ALL-->
+<!--        SELECT-->
+<!--        9-->
+<!--        ) t4,-->
+<!--        (SELECT @ROW :=- 1) r-->
+<!--        ) se-->
+<!--        WHERE-->
+<!--        date_add(-->
+<!--        #{startTime},-->
+<!--        INTERVAL ROW DAY-->
+<!--        ) < #{endTime}-->
+<!--        ) AS d-->
+<!--        LEFT JOIN (-->
+<!--        SELECT-->
+<!--        DATE(alarm_time) AS date,-->
+<!--        COUNT(*) AS total_rows-->
+<!--        FROM-->
+<!--        base_alarm-->
+<!--        WHERE-->
+<!--        DATE(alarm_time) BETWEEN #{startTime}-->
+<!--        AND #{endTime}-->
+<!--        GROUP BY-->
+<!--        DATE(alarm_time)-->
+<!--        ) AS t ON d.date = t.date-->
+<!--        ORDER BY-->
+<!--        d.date-->
+<!--    </select>-->
+
 </mapper>