Browse Source

定时任务——报警总数统计

LLL 1 year ago
parent
commit
5c70130aa3

+ 3 - 1
itdmServer/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/JeecgSystemApplication.java

@@ -8,6 +8,7 @@ import org.springframework.boot.builder.SpringApplicationBuilder;
 import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
 import org.springframework.context.ConfigurableApplicationContext;
 import org.springframework.core.env.Environment;
+import org.springframework.scheduling.annotation.EnableScheduling;
 
 import java.net.InetAddress;
 import java.net.UnknownHostException;
@@ -16,6 +17,7 @@ import java.net.UnknownHostException;
 * 单体启动类
 * 报错提醒: 未集成mongo报错,可以打开启动类上面的注释 exclude={MongoAutoConfiguration.class}
 */
+@EnableScheduling // 开启定时任务
 @Slf4j
 @SpringBootApplication
 //@EnableAutoConfiguration(exclude={MongoAutoConfiguration.class})
@@ -41,4 +43,4 @@ public class JeecgSystemApplication extends SpringBootServletInitializer {
 
     }
 
-}
+}

+ 5 - 0
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmAlarm/mapper/ItdmAlarmMapper.java

@@ -2,7 +2,9 @@ package org.jeecg.modules.itdmAlarm.mapper;
 
 import java.util.List;
 
+import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
 import org.jeecg.modules.itdmAlarm.entity.ItdmAlarm;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
@@ -14,4 +16,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface ItdmAlarmMapper extends BaseMapper<ItdmAlarm> {
 
+    @Select("select * from itdm_alarm where year(create_time)=#{nowYear} and month(create_time)=#{nowMonth}")
+    public List<ItdmAlarm> selectByYearMouthDay(@Param("nowYear") Integer nowYear, @Param("nowMonth") Integer nowMonth);
+
 }

+ 1 - 1
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmAlarm/mapper/xml/ItdmAlarmMapper.xml

@@ -2,4 +2,4 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.jeecg.modules.itdmAlarm.mapper.ItdmAlarmMapper">
 
-</mapper>
+</mapper>

+ 1 - 1
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/largeScreen/component/WebSocketServer2.java

@@ -59,7 +59,7 @@ public class WebSocketServer2 {
         SchedulingRunnable task = new SchedulingRunnable("demoTask2", "taskWithParamsList", session);
 
         addOnlineCount();//在线数加1
-        this.getCronTaskRegistrar().addCronTask(task, "0/30 * * * * ?");//30秒传一次数据
+        this.getCronTaskRegistrar().addCronTask(task, "0/30 * * * * ?");//从第0秒开始,每30秒传一次数据
         webSocketSet1.put(session.getId(), task);
     }
 

+ 102 - 0
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/largeScreen/task/TaskUtils.java

@@ -0,0 +1,102 @@
+package org.jeecg.modules.largeScreen.task;
+
+import org.jeecg.modules.itdmAlarm.entity.ItdmAlarm;
+import org.jeecg.modules.itdmAlarm.mapper.ItdmAlarmMapper;
+import org.jeecg.modules.itdmAlarm.service.IItdmAlarmService;
+import org.jeecg.modules.itdmAlarmTotal.entity.ItdmAlarmTotal;
+import org.jeecg.modules.itdmAlarmTotal.service.IItdmAlarmTotalService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Component // 把此类托管给 Spring,不能省略
+public class TaskUtils {
+
+    @Autowired
+    @SuppressWarnings("all")
+    private IItdmAlarmTotalService alarmTotalService;
+    @Autowired
+    @SuppressWarnings("all")
+    private IItdmAlarmService alarmService;
+    @Autowired
+    @SuppressWarnings("all")
+    private ItdmAlarmMapper alarmMapper;
+
+
+    // 添加定时任务
+//    @Scheduled(cron = "59 59 23 0 0 5") // cron 表达式,每周五 23:59:59 执行
+    @Scheduled(cron = "0 0 12 * * ?") // cron 表达式,每天中午12:00 执行
+    public void doTask(){
+        System.out.println("我是定时任务————更新本月报警总数");
+
+        SimpleDateFormat f1 = new SimpleDateFormat("yyyy");
+        SimpleDateFormat f2 = new SimpleDateFormat("MM");
+        int year = Integer.parseInt(f1.format(new Date()));
+        int month = Integer.parseInt(f2.format(new Date()));
+
+        List<ItdmAlarm> itdmAlarmList = alarmMapper.selectByYearMouthDay(year,month);
+
+        Map<String, Object> alarmTotalMap = new HashMap<>();
+        alarmTotalMap.put("alarm_year",year);
+        alarmTotalMap.put("alarm_month",month);
+        List<ItdmAlarmTotal> list = alarmTotalService.listByMap(alarmTotalMap);
+        if(!list.isEmpty()){ //存在,修改
+            ItdmAlarmTotal alarmTotal = list.get(0);
+            alarmTotal.setAlarmTotal(itdmAlarmList.size());
+            alarmTotalService.updateById(alarmTotal);
+        }else{ //不存在,新增
+            ItdmAlarmTotal alarmTotal = new ItdmAlarmTotal();
+            alarmTotal.setAlarmYear(year);
+            alarmTotal.setAlarmMonth(month);
+            alarmTotal.setAlarmTotal(itdmAlarmList.size());
+            alarmTotalService.save(alarmTotal);
+        }
+
+
+    }
+
+    @Scheduled(cron = "0 0 0 1 * ?") // cron 表达式,每月1号0点 执行
+    public void doTask1(){
+        System.out.println("我是定时任务————更新上个月报警总数");
+
+        SimpleDateFormat f1 = new SimpleDateFormat("yyyy");
+        SimpleDateFormat f2 = new SimpleDateFormat("MM");
+        int year = Integer.parseInt(f1.format(new Date()));
+        int month = Integer.parseInt(f2.format(new Date()));
+
+        int lastMonth = month; //上个月
+        int lastYear = year; //上个月所在年份
+        if(month==1){
+            lastMonth=12;
+            lastYear = year-1;
+        }else{
+            lastMonth=month-1;
+            lastYear = year;
+        }
+
+        List<ItdmAlarm> itdmAlarmList1 = alarmMapper.selectByYearMouthDay(year,month);
+
+        Map<String, Object> alarmTotalMap1 = new HashMap<>();
+        alarmTotalMap1.put("alarm_year",lastYear);
+        alarmTotalMap1.put("alarm_month",lastMonth);
+        List<ItdmAlarmTotal> list1 = alarmTotalService.listByMap(alarmTotalMap1);
+        if(!list1.isEmpty()){ //存在,修改
+            ItdmAlarmTotal alarmTotal = list1.get(0);
+            alarmTotal.setAlarmTotal(itdmAlarmList1.size());
+            alarmTotalService.updateById(alarmTotal);
+        }else{ //不存在,新增
+            ItdmAlarmTotal alarmTotal = new ItdmAlarmTotal();
+            alarmTotal.setAlarmYear(lastYear);
+            alarmTotal.setAlarmMonth(lastMonth);
+            alarmTotal.setAlarmTotal(itdmAlarmList1.size());
+            alarmTotalService.save(alarmTotal);
+        }
+    }
+}
+