| | |
| | | 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.OdsAlarmMsg; |
| | | import com.ycl.smoke.remote.dto.*; |
| | | import com.ycl.smoke.entity.*; |
| | | import com.ycl.smoke.dto.*; |
| | | import com.ycl.smoke.remote.service.ISmokeDetectionService; |
| | | import com.ycl.smoke.service.IOdsAlarmMsgService; |
| | | import com.ycl.smoke.service.*; |
| | | import com.ycl.utils.redis.RedisKey; |
| | | import org.apache.velocity.runtime.directive.Foreach; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.scheduling.annotation.Scheduled; |
| | | import org.springframework.stereotype.Component; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | 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 |
| | |
| | | ISmokeDetectionService smokeDetectionService; |
| | | |
| | | IOdsAlarmMsgService alarmMsgService; |
| | | |
| | | IOdsDetectorDailyService detectorDailyService; |
| | | |
| | | IOdsTenMinDataService tenMinDataService; |
| | | |
| | | IOdsInTimeService inTimeService; |
| | | |
| | | IOdsInTimeCountService iOdsInTimeCountService; |
| | | |
| | | IOdsLocaleService localeService; |
| | | |
| | | IOdsCustomerService customerService; |
| | | |
| | | IOdsAlarmRecordService alarmRecordService; |
| | | |
| | | IOdsCurAlarmService curAlarmService; |
| | | |
| | | @Resource |
| | | private RedisService redisService; |
| | |
| | | } |
| | | |
| | | @Autowired |
| | | public void setIOdsInTimeCountService(IOdsInTimeCountService iOdsInTimeCountService) { |
| | | this.iOdsInTimeCountService = iOdsInTimeCountService; |
| | | } |
| | | |
| | | @Autowired |
| | | public void setAlarmMsgService(IOdsAlarmMsgService alarmMsgService) { |
| | | this.alarmMsgService = alarmMsgService; |
| | | } |
| | | |
| | | @Autowired |
| | | public void setTenMinDataService(IOdsTenMinDataService tenMinDataService) { |
| | | this.tenMinDataService = tenMinDataService; |
| | | } |
| | | |
| | | @Autowired |
| | | public void setInTimeService(IOdsInTimeService inTimeService) { |
| | | this.inTimeService = inTimeService; |
| | | } |
| | | |
| | | @Autowired |
| | | public void setLocaleService(IOdsLocaleService localeService) { |
| | | this.localeService = localeService; |
| | | } |
| | | |
| | | @Autowired |
| | | public void setCustomerService(IOdsCustomerService customerService) { |
| | | this.customerService = customerService; |
| | | } |
| | | |
| | | @Autowired |
| | | public void setAlarmRecordService(IOdsAlarmRecordService alarmRecordService) { |
| | | this.alarmRecordService = alarmRecordService; |
| | | } |
| | | |
| | | @Autowired |
| | | public void setCurAlarmService(IOdsCurAlarmService curAlarmService) { |
| | | this.curAlarmService = curAlarmService; |
| | | } |
| | | |
| | | @Autowired |
| | | public void setDetectorDailyService(IOdsDetectorDailyService detectorDailyService) { |
| | | this.detectorDailyService = detectorDailyService; |
| | | } |
| | | |
| | | @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(); |
| | | 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()); |
| | | list.forEach(o->{ |
| | | // System.out.println(list.size()); |
| | | list.forEach(o -> { |
| | | try { |
| | | alarmMsgService.save(o); |
| | | } |
| | | catch (Exception ex){ |
| | | |
| | | } 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 */2 * * * ?") // 每一个分钟执行 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()); |
| | | list.forEach(o->{ |
| | | DetectorDailyResponseDto dto = JSON.parseObject(responseDto.getData().toString(), DetectorDailyResponseDto.class); |
| | | List<OdsDetectorDaily> list = dto.getContent(); |
| | | list.forEach(o -> { |
| | | try { |
| | | alarmMsgService.save(o); |
| | | } |
| | | catch (Exception ex){ |
| | | 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()); |
| | | } |
| | | } |
| | | |
| | | |
| | | @Scheduled(cron = "0 0 1 * * ?") // 每天零点执行 |
| | | // @Scheduled(cron = "0/1 * * * * ?") // 每秒执行 |
| | | 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); |
| | | |
| | | if (responseDto.getStatus() == 200) { |
| | | List<OdsTenMinData> list = JSON.parseArray(responseDto.getData().toString(), OdsTenMinData.class); |
| | | list.forEach(o -> { |
| | | try { |
| | | tenMinDataService.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()); |
| | | } |
| | | } |
| | | |
| | | |
| | | // @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(20); |
| | | 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()); |
| | | } |
| | | } |
| | | |
| | | @Scheduled(cron = "0 0 1 * * ?") // 每天零点执行 |
| | | // @Scheduled(cron = "0/1 * * * * ?") // 每秒执行 |
| | | public void listLocale() { |
| | | try { |
| | | LocaleParamDto paramDto = LocaleParamDto.builder().build(); |
| | | |
| | | String json = smokeDetectionService.listLocale(paramDto, redisService.get(RedisKey.SMOKE_TOKEN).toString()); |
| | | SmokeResultResponseDto responseDto = JSON.parseObject(json, SmokeResultResponseDto.class); |
| | | |
| | | if (responseDto.getStatus() == 200) { |
| | | LocaleResponseDto responseDataDto = JSON.parseObject(responseDto.getData().toString(), LocaleResponseDto.class); |
| | | List<OdsLocale> list = responseDataDto.getContent(); |
| | | list.forEach(o -> { |
| | | try { |
| | | o.setCustomerString(JSON.toJSONString(o.getCustomer())); |
| | | localeService.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()); |
| | | } |
| | | } |
| | | |
| | | |
| | | @Scheduled(cron = "0 0 1 * * ?") // 每天零点执行 |
| | | // @Scheduled(cron = "0/1 * * * * ?") // 每秒执行 |
| | | public void queryCustomer() { |
| | | try { |
| | | CustomerParamDto paramDto = CustomerParamDto.builder().build(); |
| | | |
| | | String json = smokeDetectionService.queryCustomer(paramDto, redisService.get(RedisKey.SMOKE_TOKEN).toString()); |
| | | SmokeResultResponseDto responseDto = JSON.parseObject(json, SmokeResultResponseDto.class); |
| | | |
| | | if (responseDto.getStatus() == 200) { |
| | | CustomerResponseDto responseDataDto = JSON.parseObject(responseDto.getData().toString(), CustomerResponseDto.class); |
| | | List<OdsCustomer> list = responseDataDto.getContent(); |
| | | list.forEach(o -> { |
| | | try { |
| | | o.setAreasString(o.getAreas() == null ? "" : JSON.toJSONString(o.getAreas())); |
| | | o.setAreaIdsString(o.getAreaIds() == null ? "" : JSON.toJSONString(o.getAreaIds())); |
| | | o.setAreaIdCascadsString(o.getAreaIdCascads() == null ? "" : JSON.toJSONString(o.getAreaIdCascads())); |
| | | customerService.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()); |
| | | } |
| | | } |
| | | |
| | | @Scheduled(cron = "0 0 1 * * ?") // 每天零点执行 |
| | | // @Scheduled(cron = "0/1 * * * * ?") // 每秒执行 |
| | | public void listAlarmRecord() { |
| | | try { |
| | | AlarmMsgParamDto paramDto = AlarmMsgParamDto.builder().build(); |
| | | |
| | | String json = smokeDetectionService.getListAlarmRecord(paramDto, redisService.get(RedisKey.SMOKE_TOKEN).toString()); |
| | | SmokeResultResponseDto responseDto = JSON.parseObject(json, SmokeResultResponseDto.class); |
| | | |
| | | if (responseDto.getStatus() == 200) { |
| | | AlarmRecordResponseDto responseDataDto = JSON.parseObject(responseDto.getData().toString(), AlarmRecordResponseDto.class); |
| | | List<OdsAlarmRecord> list = responseDataDto.getContent(); |
| | | list.forEach(o -> { |
| | | try { |
| | | o.setAlarmRecordPicsString(JSON.toJSONString(o.getAlarmRecordPics())); |
| | | alarmRecordService.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()); |
| | | } |
| | | } |
| | | |
| | | @Scheduled(cron = "0 0 1 * * ?") // 每天零点执行 |
| | | // @Scheduled(cron = "0/1 * * * * ?") // 每秒执行 |
| | | public void listCurAlarm() { |
| | | try { |
| | | CurAlarmParamDto paramDto = CurAlarmParamDto.builder().Typ(2).build(); |
| | | |
| | | String json = smokeDetectionService.getListCurAlarm(paramDto, redisService.get(RedisKey.SMOKE_TOKEN).toString()); |
| | | SmokeResultResponseDto responseDto = JSON.parseObject(json, SmokeResultResponseDto.class); |
| | | |
| | | if (responseDto.getStatus() == 200) { |
| | | CurAlarmResponseDto responseDataDto = JSON.parseObject(responseDto.getData().toString(), CurAlarmResponseDto.class); |
| | | List<OdsCurAlarm> list = responseDataDto.getContent(); |
| | | list.forEach(o -> { |
| | | try { |
| | | curAlarmService.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()); |
| | | } |
| | | } |
| | | |
| | | 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()); |
| | | } |
| | | } |
| | | } |