zhanghua
2023-10-27 e468088052b2dea9837645eeed689ee9c5f0948d
ycl-smoke/src/main/java/com/ycl/smoke/task/ScheduledTask.java
@@ -1,6 +1,9 @@
package com.ycl.smoke.task;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ycl.service.redis.RedisService;
import com.ycl.smoke.entity.*;
import com.ycl.smoke.dto.*;
@@ -12,6 +15,10 @@
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.List;
@Component
@@ -21,9 +28,13 @@
    IOdsAlarmMsgService alarmMsgService;
    IOdsDetectorDailyService detectorDailyService;
    IOdsTenMinDataService tenMinDataService;
    IOdsInTimeService inTimeService;
    IOdsInTimeCountService iOdsInTimeCountService;
    IOdsLocaleService localeService;
@@ -39,6 +50,11 @@
    @Autowired
    public void setSmokeDetectionService(ISmokeDetectionService smokeDetectionService) {
        this.smokeDetectionService = smokeDetectionService;
    }
    @Autowired
    public void setIOdsInTimeCountService(IOdsInTimeCountService iOdsInTimeCountService) {
        this.iOdsInTimeCountService = iOdsInTimeCountService;
    }
    @Autowired
@@ -76,59 +92,75 @@
        this.curAlarmService = curAlarmService;
    }
    @Autowired
    public void setDetectorDailyService(IOdsDetectorDailyService detectorDailyService) {
        this.detectorDailyService = detectorDailyService;
    }
    @Scheduled(cron = "0 0 1 * * ?")   // 每天零点执行
    // @Scheduled(cron = "0/1 * * * * ?")   // 每秒执行
    public void alarmMsgTask() {
        try {
            AlarmMsgParamDto paramDto = AlarmMsgParamDto.builder().StartAt(0).Size(100).build();
            String json = smokeDetectionService.getListAlarmMsg(paramDto, redisService.get(RedisKey.SMOKE_TOKEN).toString());
            SmokeResultResponseDto responseDto = JSON.parseObject(json, SmokeResultResponseDto.class);
            SmokeResultResponseDto<AlarmMsgResponseDto> responseDto = smokeDetectionService.getListAlarmMsg(paramDto, redisService.get(RedisKey.SMOKE_TOKEN).toString());
            if (responseDto.getStatus() == 200) {
                AlarmMsgResponseDto dto = responseDto.getData();
                AlarmMsgResponseDto dto = JSON.parseObject(responseDto.getData().toString(), AlarmMsgResponseDto.class);
                List<OdsAlarmMsg> list = dto.getContent();
                System.out.println(list.size());
                // System.out.println(list.size());
                list.forEach(o -> {
                    try {
                        alarmMsgService.save(o);
                    } catch (Exception ex) {
                        System.out.printf(ex.getMessage());
                    }
                });
                // alarmMsgService.saveBatch(list);
            } else if (responseDto.getStatus() == 114) {
                login();
                alarmMsgTask();
            } else {
                System.out.printf(responseDto.getData().toString());
            }
        } catch (Exception ex) {
            System.out.printf(ex.getMessage());
        }
    }
    @Scheduled(cron = "0 0 1 * * ?")   // 每天零点执行
    // @Scheduled(cron = "0/1 * * * * ?")   // 每秒执行
//    @Scheduled(cron = "0/1 * * * * ?")   // 每秒执行
    public void queryDataDetectorDaily2Task() {
        try {
            AlarmMsgParamDto paramDto = AlarmMsgParamDto.builder().StartAt(0).Size(100).build();
            LocalDateTime ldt = LocalDateTime.now();
            ldt = ldt.plusDays(-1);
            DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-MM-dd");
            SmokeResultResponseDto<AlarmMsgResponseDto> responseDto = smokeDetectionService.getListAlarmMsg(paramDto, redisService.get(RedisKey.SMOKE_TOKEN).toString());
            DetectorDailyParamDto paramDto = DetectorDailyParamDto.builder().AcquitDate(ldt.format(pattern)).build();
            String json = smokeDetectionService.queryDataDetectorDaily2(paramDto, redisService.get(RedisKey.SMOKE_TOKEN).toString());
            SmokeResultResponseDto responseDto = JSON.parseObject(json, SmokeResultResponseDto.class);
            if (responseDto.getStatus() == 200) {
                AlarmMsgResponseDto dto = responseDto.getData();
                List<OdsAlarmMsg> list = dto.getContent();
                System.out.println(list.size());
                DetectorDailyResponseDto dto = JSON.parseObject(responseDto.getData().toString(), DetectorDailyResponseDto.class);
                List<OdsDetectorDaily> list = dto.getContent();
                list.forEach(o -> {
                    try {
                        alarmMsgService.save(o);
                        detectorDailyService.save(o);
                    } catch (Exception ex) {
                        System.out.printf(ex.getMessage());
                    }
                });
                // alarmMsgService.saveBatch(list);
            } else if (responseDto.getStatus() == 114) {
                login();
                queryDataDetectorDaily2Task();
            } else {
                System.out.printf(responseDto.getData().toString());
            }
        } catch (Exception ex) {
            System.out.printf(ex.getMessage());
        }
    }
@@ -138,41 +170,14 @@
    public void queryTenMinData() {
        try {
            TenMinParamDto paramDto = TenMinParamDto.builder().build();
            String json = smokeDetectionService.queryTenMinData(paramDto, redisService.get(RedisKey.SMOKE_TOKEN).toString());
            SmokeResultResponseDto responseDto = JSON.parseObject(json, SmokeResultResponseDto.class);
            SmokeResultResponseDto<List<OdsTenMinData>> responseDto = smokeDetectionService.queryTenMinData(paramDto, redisService.get(RedisKey.SMOKE_TOKEN).toString());
            if (responseDto.getStatus() == 200) {
                List<OdsTenMinData> list = responseDto.getData();
                List<OdsTenMinData> list = JSON.parseArray(responseDto.getData().toString(), OdsTenMinData.class);
                list.forEach(o -> {
                    try {
                        tenMinDataService.save(o);
                    } catch (Exception ex) {
                    }
                });
                // alarmMsgService.saveBatch(list);
            } else if (responseDto.getStatus() == 114) {
                login();
                queryDataDetectorDaily2Task();
            }
        } catch (Exception ex) {
        }
    }
    @Scheduled(cron = "0 0 1 * * ?")   // 每天零点执行
//    @Scheduled(cron = "0/1 * * * * ?")   // 每秒执行
    public void listDataIntime() {
        try {
            DataIntimeParamDto paramDto = DataIntimeParamDto.builder().build();
            SmokeResultResponseDto<DataIntimeResponseDto> responseDto = smokeDetectionService.listDataIntime(paramDto, redisService.get(RedisKey.SMOKE_TOKEN).toString());
            if (responseDto.getStatus() == 200) {
                DataIntimeResponseDto dataIntimeResponseDto = responseDto.getData();
                List<OdsInTime> list = dataIntimeResponseDto.getContent();
                list.forEach(o -> {
                    try {
                        inTimeService.save(o);
                    } catch (Exception ex) {
                        System.out.printf(ex.getMessage());
                    }
@@ -181,6 +186,73 @@
            } else if (responseDto.getStatus() == 114) {
                login();
                queryDataDetectorDaily2Task();
            } else {
                System.out.printf(responseDto.getData().toString());
            }
        } catch (Exception ex) {
            System.out.printf(ex.getMessage());
        }
    }
    //    @Scheduled(cron = "0 0 1 * * ?")   // 每天零点执行
    @Scheduled(cron = "0 */1 * * * ?")   // 每5分钟执行
    public void listDataInTime() {
        DataIntimeParamDto paramDto = DataIntimeParamDto.builder().build();
        // {"StartAt":0,"Size":20,"Typ":2,"SortBy":"status","SortMode":"asc","Param":{"StatusOfRecord":"NORMAL"}}:
        paramDto.setSize(200);
        paramDto.setStartAt(0);
        paramDto.setTyp(2);
        paramDto.setSortBy("status");
        paramDto.setSortMode("asc");
        DataIntimeParamChildDto paramChildDto = new DataIntimeParamChildDto();
        paramChildDto.setStatusOfRecord("NORMAL");
        paramDto.setParam(paramChildDto);
        getInTimeData(paramDto);
        paramDto.setTyp(1);
        getInTimeData(paramDto);
    }
    private void getInTimeData(DataIntimeParamDto paramDto) {
        try {
            String jj = JSON.toJSONString(paramDto);
            String json = smokeDetectionService.listDataIntime(paramDto, redisService.get(RedisKey.SMOKE_TOKEN).toString());
            SmokeResultResponseDto responseDto = JSON.parseObject(json, SmokeResultResponseDto.class);
            if (responseDto.getStatus() == 200) {
                DataIntimeResponseDto dataIntimeResponseDto = JSON.parseObject(responseDto.getData().toString(), DataIntimeResponseDto.class);
                List<OdsInTime> list = dataIntimeResponseDto.getContent();
                OdsInTimeCount odsInTimeCount = new OdsInTimeCount();
                LambdaQueryWrapper<OdsInTimeCount> queryWrapper = new LambdaQueryWrapper<OdsInTimeCount>().eq(OdsInTimeCount::getType, paramDto.getTyp());
                List<OdsInTimeCount> countList = iOdsInTimeCountService.list(queryWrapper);
                if (countList.size() > 0) {
                    odsInTimeCount = countList.get(0);
                }
                odsInTimeCount.setDeviceNum(dataIntimeResponseDto.getDeviceNum());
                odsInTimeCount.setLocaleNum(dataIntimeResponseDto.getLocaleNum());
                odsInTimeCount.setOnlineNum(dataIntimeResponseDto.getOnlineNum());
                odsInTimeCount.setTotal(dataIntimeResponseDto.getTotal());
                iOdsInTimeCountService.saveOrUpdate(odsInTimeCount);
                list.forEach(o -> {
                    try {
                        o.setModifyTime(LocalDateTime.now());
                        o.setTyp(paramDto.getTyp());
                        inTimeService.saveOrUpdate(o);
                    } catch (Exception ex) {
                        System.out.printf(ex.getMessage());
                    }
                });
                // alarmMsgService.saveBatch(list);
            } else if (responseDto.getStatus() == 114) {
                login();
                queryDataDetectorDaily2Task();
            } else {
                System.out.printf(responseDto.getData().toString());
            }
        } catch (Exception ex) {
            System.out.printf(ex.getMessage());
@@ -193,9 +265,11 @@
        try {
            LocaleParamDto paramDto = LocaleParamDto.builder().build();
            SmokeResultResponseDto<LocaleResponseDto> responseDto = smokeDetectionService.listLocale(paramDto, redisService.get(RedisKey.SMOKE_TOKEN).toString());
            String json = smokeDetectionService.listLocale(paramDto, redisService.get(RedisKey.SMOKE_TOKEN).toString());
            SmokeResultResponseDto responseDto = JSON.parseObject(json, SmokeResultResponseDto.class);
            if (responseDto.getStatus() == 200) {
                LocaleResponseDto responseDataDto = responseDto.getData();
                LocaleResponseDto responseDataDto = JSON.parseObject(responseDto.getData().toString(), LocaleResponseDto.class);
                List<OdsLocale> list = responseDataDto.getContent();
                list.forEach(o -> {
                    try {
@@ -209,6 +283,8 @@
            } else if (responseDto.getStatus() == 114) {
                login();
                queryDataDetectorDaily2Task();
            } else {
                System.out.printf(responseDto.getData().toString());
            }
        } catch (Exception ex) {
            System.out.printf(ex.getMessage());
@@ -222,9 +298,11 @@
        try {
            CustomerParamDto paramDto = CustomerParamDto.builder().build();
            SmokeResultResponseDto<CustomerResponseDto> responseDto = smokeDetectionService.queryCustomer(paramDto, redisService.get(RedisKey.SMOKE_TOKEN).toString());
            String json = smokeDetectionService.queryCustomer(paramDto, redisService.get(RedisKey.SMOKE_TOKEN).toString());
            SmokeResultResponseDto responseDto = JSON.parseObject(json, SmokeResultResponseDto.class);
            if (responseDto.getStatus() == 200) {
                CustomerResponseDto responseDataDto = responseDto.getData();
                CustomerResponseDto responseDataDto = JSON.parseObject(responseDto.getData().toString(), CustomerResponseDto.class);
                List<OdsCustomer> list = responseDataDto.getContent();
                list.forEach(o -> {
                    try {
@@ -240,6 +318,8 @@
            } else if (responseDto.getStatus() == 114) {
                login();
                queryDataDetectorDaily2Task();
            } else {
                System.out.printf(responseDto.getData().toString());
            }
        } catch (Exception ex) {
            System.out.printf(ex.getMessage());
@@ -252,9 +332,11 @@
        try {
            AlarmMsgParamDto paramDto = AlarmMsgParamDto.builder().build();
            SmokeResultResponseDto<AlarmRecordResponseDto> responseDto = smokeDetectionService.getListAlarmRecord(paramDto, redisService.get(RedisKey.SMOKE_TOKEN).toString());
            String json = smokeDetectionService.getListAlarmRecord(paramDto, redisService.get(RedisKey.SMOKE_TOKEN).toString());
            SmokeResultResponseDto responseDto = JSON.parseObject(json, SmokeResultResponseDto.class);
            if (responseDto.getStatus() == 200) {
                AlarmRecordResponseDto responseDataDto = responseDto.getData();
                AlarmRecordResponseDto responseDataDto = JSON.parseObject(responseDto.getData().toString(), AlarmRecordResponseDto.class);
                List<OdsAlarmRecord> list = responseDataDto.getContent();
                list.forEach(o -> {
                    try {
@@ -268,6 +350,8 @@
            } else if (responseDto.getStatus() == 114) {
                login();
                queryDataDetectorDaily2Task();
            } else {
                System.out.printf(responseDto.getData().toString());
            }
        } catch (Exception ex) {
            System.out.printf(ex.getMessage());
@@ -280,9 +364,11 @@
        try {
            CurAlarmParamDto paramDto = CurAlarmParamDto.builder().Typ(2).build();
            SmokeResultResponseDto<CurAlarmResponseDto> responseDto = smokeDetectionService.getListCurAlarm(paramDto, redisService.get(RedisKey.SMOKE_TOKEN).toString());
            String json = smokeDetectionService.getListCurAlarm(paramDto, redisService.get(RedisKey.SMOKE_TOKEN).toString());
            SmokeResultResponseDto responseDto = JSON.parseObject(json, SmokeResultResponseDto.class);
            if (responseDto.getStatus() == 200) {
                CurAlarmResponseDto responseDataDto = responseDto.getData();
                CurAlarmResponseDto responseDataDto = JSON.parseObject(responseDto.getData().toString(), CurAlarmResponseDto.class);
                List<OdsCurAlarm> list = responseDataDto.getContent();
                list.forEach(o -> {
                    try {
@@ -295,6 +381,8 @@
            } else if (responseDto.getStatus() == 114) {
                login();
                queryDataDetectorDaily2Task();
            } else {
                System.out.printf(responseDto.getData().toString());
            }
        } catch (Exception ex) {
            System.out.printf(ex.getMessage());
@@ -302,11 +390,13 @@
    }
    void login() {
        LoginParamDto loginParamDto = LoginParamDto.builder().username("connect_test2").password("test@234").noCode(true).build();
        SmokeResultResponseDto<LoginResponseDto> responseDto = smokeDetectionService.loginAction(loginParamDto);
        LoginParamDto loginParamDto = LoginParamDto.builder().username("遂昌城管局").password("123456").noCode(true).build();
        String json = smokeDetectionService.loginAction(loginParamDto);
        SmokeResultResponseDto responseDto = JSON.parseObject(json, SmokeResultResponseDto.class);
        if (responseDto.getStatus() == 200) {
            System.out.println(responseDto.getData().getToken());
            redisService.set(RedisKey.SMOKE_TOKEN, responseDto.getData().getToken());
            LoginResponseDto loginResponseDto = JSON.parseObject(responseDto.getData().toString(), LoginResponseDto.class);
            System.out.println(loginResponseDto.getToken());
            redisService.set(RedisKey.SMOKE_TOKEN, loginResponseDto.getToken());
        }
    }
}