zhanghua
2023-03-03 1ded71f8fe1b7ac7746e6ea6e09b7db4a4000340
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
package com.ycl.smoke.task;
 
import com.ycl.service.redis.RedisService;
import com.ycl.smoke.entity.OdsAlarmMsg;
import com.ycl.smoke.dto.*;
import com.ycl.smoke.remote.service.ISmokeDetectionService;
import com.ycl.smoke.service.IOdsAlarmMsgService;
import com.ycl.utils.redis.RedisKey;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
 
import javax.annotation.Resource;
import java.util.List;
 
@Component
public class ScheduledTask {
 
    ISmokeDetectionService smokeDetectionService;
 
    IOdsAlarmMsgService alarmMsgService;
 
    @Resource
    private RedisService redisService;
 
    @Autowired
    public void setSmokeDetectionService(ISmokeDetectionService smokeDetectionService) {
        this.smokeDetectionService = smokeDetectionService;
    }
 
    @Autowired
    public void setAlarmMsgService(IOdsAlarmMsgService alarmMsgService) {
        this.alarmMsgService = alarmMsgService;
    }
 
    @Scheduled(cron = "0 0 1 * * ?")   // 每天零点执行
    // @Scheduled(cron = "0 */2 * * * ?")   // 每一个分钟执行 0 0/1 * ?
    // @Scheduled(cron = "0/1 * * * * ?")   // 每秒执行
    public void alarmMsgTask() {
        try {
            AlarmMsgParamDto paramDto = AlarmMsgParamDto.builder().StartAt(0).Size(100).build();
 
            SmokeResultResponseDto<AlarmMsgResponseDto> responseDto = smokeDetectionService.getListAlarmMsg(paramDto, redisService.get(RedisKey.SMOKE_TOKEN).toString());
            if (responseDto.getStatus() == 200) {
                AlarmMsgResponseDto dto = responseDto.getData();
                List<OdsAlarmMsg> list = dto.getContent();
                System.out.println(list.size());
                list.forEach(o->{
                    try {
                        alarmMsgService.save(o);
                    }
                    catch (Exception ex){
 
                    }
                });
                // alarmMsgService.saveBatch(list);
            } else if (responseDto.getStatus() == 114) {
                login();
                alarmMsgTask();
            }
        } catch (Exception ex) {
 
        }
    }
 
    @Scheduled(cron = "0 0 1 * * ?")   // 每天零点执行
    // @Scheduled(cron = "0 */2 * * * ?")   // 每一个分钟执行 0 0/1 * ?
    // @Scheduled(cron = "0/1 * * * * ?")   // 每秒执行
    public void queryDataDetectorDaily2Task() {
        try {
            AlarmMsgParamDto paramDto = AlarmMsgParamDto.builder().StartAt(0).Size(100).build();
 
            SmokeResultResponseDto<AlarmMsgResponseDto> responseDto = smokeDetectionService.getListAlarmMsg(paramDto, redisService.get(RedisKey.SMOKE_TOKEN).toString());
            if (responseDto.getStatus() == 200) {
                AlarmMsgResponseDto dto = responseDto.getData();
                List<OdsAlarmMsg> list = dto.getContent();
                System.out.println(list.size());
                list.forEach(o->{
                    try {
                        alarmMsgService.save(o);
                    }
                    catch (Exception ex){
 
                    }
                });
                // alarmMsgService.saveBatch(list);
            } else if (responseDto.getStatus() == 114) {
                login();
                queryDataDetectorDaily2Task();
            }
        } catch (Exception ex) {
 
        }
    }
 
    void login() {
        LoginParamDto loginParamDto = LoginParamDto.builder().username("connect_test2").password("test@234").noCode(true).build();
        SmokeResultResponseDto<LoginResponseDto> responseDto = smokeDetectionService.loginAction(loginParamDto);
        if (responseDto.getStatus() == 200) {
            System.out.println(responseDto.getData().getToken());
            redisService.set(RedisKey.SMOKE_TOKEN, responseDto.getData().getToken());
        }
    }
}