From ead280567beb29e26e0980c6b3770815e6fe86d9 Mon Sep 17 00:00:00 2001 From: zhanghua <314079846@qq.com> Date: 星期日, 12 十一月 2023 10:09:14 +0800 Subject: [PATCH] 油烟统计 --- ycl-smoke/src/main/java/com/ycl/smoke/task/ScheduledTask.java | 128 +++++++++++++++++++++++++++++++++++++++++- 1 files changed, 123 insertions(+), 5 deletions(-) diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/task/ScheduledTask.java b/ycl-smoke/src/main/java/com/ycl/smoke/task/ScheduledTask.java index 8038a21..68846db 100644 --- a/ycl-smoke/src/main/java/com/ycl/smoke/task/ScheduledTask.java +++ b/ycl-smoke/src/main/java/com/ycl/smoke/task/ScheduledTask.java @@ -4,26 +4,30 @@ 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.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.ycl.service.redis.RedisService; import com.ycl.smoke.entity.*; import com.ycl.smoke.dto.*; import com.ycl.smoke.remote.service.ISmokeDetectionService; import com.ycl.smoke.service.*; +import com.ycl.smoke.utils.HttpUtil; 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.text.DateFormat; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; +import java.util.Calendar; import java.util.Date; import java.util.List; @Component public class ScheduledTask { - + private final String host = "http://116.62.234.187:8120"; ISmokeDetectionService smokeDetectionService; IOdsAlarmMsgService alarmMsgService; @@ -43,6 +47,8 @@ IOdsAlarmRecordService alarmRecordService; IOdsCurAlarmService curAlarmService; + + IOdsStatisticsService odsStatisticsService; @Resource private RedisService redisService; @@ -95,6 +101,11 @@ @Autowired public void setDetectorDailyService(IOdsDetectorDailyService detectorDailyService) { this.detectorDailyService = detectorDailyService; + } + + @Autowired + public void setOdsStatisticsService(IOdsStatisticsService odsStatisticsService) { + this.odsStatisticsService = odsStatisticsService; } @Scheduled(cron = "0 0 1 * * ?") // 姣忓ぉ闆剁偣鎵ц @@ -194,6 +205,10 @@ } } + @Scheduled(cron = "0 */30 * * * ?") // 姣�5鍒嗛挓鎵ц + public void loginTask() { + login(); + } // @Scheduled(cron = "0 0 1 * * ?") // 姣忓ぉ闆剁偣鎵ц @Scheduled(cron = "0 */1 * * * ?") // 姣�5鍒嗛挓鎵ц @@ -218,7 +233,6 @@ 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); @@ -358,11 +372,32 @@ } } + /** + * 鐩戞祴鎶ヨ缁熻 杩愮淮鎯呭喌鎶ヨ〃 + */ @Scheduled(cron = "0 0 1 * * ?") // 姣忓ぉ闆剁偣鎵ц // @Scheduled(cron = "0/1 * * * * ?") // 姣忕鎵ц public void listCurAlarm() { try { - CurAlarmParamDto paramDto = CurAlarmParamDto.builder().Typ(2).build(); + CurAlarmParamDto paramDto = CurAlarmParamDto.builder().StartAt(0).Size(20).SortBy("status").SortMode("asc").Typ(2).build(); + CurAlarmParamChildDto childDto = CurAlarmParamChildDto.builder().build(); + + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.SECOND, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.HOUR_OF_DAY, 0); + calendar.set(Calendar.MILLISECOND, 0); + calendar.add(Calendar.DAY_OF_MONTH, -1); + long todayZero = calendar.getTimeInMillis(); + + calendar.add(Calendar.DAY_OF_MONTH, 1); + calendar.add(Calendar.MONTH, -1); + long lastMonthZero = calendar.getTimeInMillis(); + + childDto.setStartAt(lastMonthZero / 1000); + childDto.setEndAt(todayZero / 1000); + childDto.setLocaleWithDevice(true); + paramDto.setParam(childDto); String json = smokeDetectionService.getListCurAlarm(paramDto, redisService.get(RedisKey.SMOKE_TOKEN).toString()); SmokeResultResponseDto responseDto = JSON.parseObject(json, SmokeResultResponseDto.class); @@ -372,7 +407,7 @@ List<OdsCurAlarm> list = responseDataDto.getContent(); list.forEach(o -> { try { - curAlarmService.save(o); + curAlarmService.saveByLocalId(o); } catch (Exception ex) { System.out.printf(ex.getMessage()); } @@ -380,7 +415,7 @@ // alarmMsgService.saveBatch(list); } else if (responseDto.getStatus() == 114) { login(); - queryDataDetectorDaily2Task(); + listCurAlarm(); } else { System.out.printf(responseDto.getData().toString()); } @@ -389,6 +424,89 @@ } } + /** + * 妫�娴嬩华鎬讳綋鎯呭喌鎶ヨ〃 + */ + @Scheduled(cron = "0 0 1 * * ?") // 姣忓ぉ闆剁偣鎵ц +// @Scheduled(cron = "0/1 * * * * ?") // 姣忕鎵ц + public void listDataDetectorDailyStats() { + try { + DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + Calendar calendar = Calendar.getInstance(); + String dateEnd = df.format(calendar.getTime()); + + calendar.add(Calendar.MONTH, -1); + String dateBegin = df.format(calendar.getTime()); + + DataDetectorDailyStatsParamDto paramDto = DataDetectorDailyStatsParamDto.builder().Typ(1).WithAreaLocaleReport(false) + .AcquitDateBegin(dateBegin).AcquitDateEnd(dateEnd).build(); + String json = smokeDetectionService.getListDataDetectorDailyStats(paramDto, redisService.get(RedisKey.SMOKE_TOKEN).toString()); + SmokeResultResponseDto responseDto = JSON.parseObject(json, SmokeResultResponseDto.class); + + if (responseDto.getStatus() == 200) { + LambdaUpdateWrapper<OdsStatistics> update = new LambdaUpdateWrapper<OdsStatistics>() + .eq(OdsStatistics::getTypeName, "listDataDetectorDailyStats") + .set(OdsStatistics::getContent, responseDto.getData().toString()); + + odsStatisticsService.update(update); + } else if (responseDto.getStatus() == 114) { + login(); + listDataDetectorDailyStats(); + } 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 listDetectorDaily() { + try { + CurAlarmParam2Dto paramDto = CurAlarmParam2Dto.builder().StartAt(0).Size(20).build(); + CurAlarmParamChild2Dto childDto = CurAlarmParamChild2Dto.builder().build(); + + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.SECOND, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.HOUR_OF_DAY, 0); + calendar.set(Calendar.MILLISECOND, 0); + calendar.add(Calendar.DAY_OF_MONTH, -1); + long todayZero = calendar.getTimeInMillis(); + + calendar.add(Calendar.DAY_OF_MONTH, 1); + calendar.add(Calendar.MONTH, -1); + long lastMonthZero = calendar.getTimeInMillis(); + + childDto.setStartAt(lastMonthZero / 1000); + childDto.setEndAt(todayZero / 1000); + paramDto.setParam(childDto); + // {"StartAt":0,"Size":20,"Param":{"startAt":1697040000,"endAt":1699631999}}: + String json = smokeDetectionService.getListDetectorDaily(paramDto, redisService.get(RedisKey.SMOKE_TOKEN).toString()); + SmokeResultResponseDto responseDto = JSON.parseObject(json, SmokeResultResponseDto.class); + + if (responseDto.getStatus() == 200) { + LambdaUpdateWrapper<OdsStatistics> update = new LambdaUpdateWrapper<OdsStatistics>() + .eq(OdsStatistics::getTypeName, "listDetectorDaily") + .set(OdsStatistics::getContent, responseDto.getData().toString()); + + odsStatisticsService.update(update); + } else if (responseDto.getStatus() == 114) { + login(); + listDetectorDaily(); + } else { + System.out.printf(responseDto.getData().toString()); + } + } catch (Exception ex) { + System.out.printf(ex.getMessage()); + } + } + + void login() { LoginParamDto loginParamDto = LoginParamDto.builder().username("閬傛槍鍩庣灞�").password("123456").noCode(true).build(); String json = smokeDetectionService.loginAction(loginParamDto); -- Gitblit v1.8.0