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 |  185 +++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 173 insertions(+), 12 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 3f0f48c..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
@@ -1,26 +1,33 @@
 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.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;
@@ -31,6 +38,8 @@
 
     IOdsInTimeService inTimeService;
 
+    IOdsInTimeCountService iOdsInTimeCountService;
+
     IOdsLocaleService localeService;
 
     IOdsCustomerService customerService;
@@ -39,12 +48,19 @@
 
     IOdsCurAlarmService curAlarmService;
 
+    IOdsStatisticsService odsStatisticsService;
+
     @Resource
     private RedisService redisService;
 
     @Autowired
     public void setSmokeDetectionService(ISmokeDetectionService smokeDetectionService) {
         this.smokeDetectionService = smokeDetectionService;
+    }
+
+    @Autowired
+    public void setIOdsInTimeCountService(IOdsInTimeCountService iOdsInTimeCountService) {
+        this.iOdsInTimeCountService = iOdsInTimeCountService;
     }
 
     @Autowired
@@ -87,6 +103,11 @@
         this.detectorDailyService = detectorDailyService;
     }
 
+    @Autowired
+    public void setOdsStatisticsService(IOdsStatisticsService odsStatisticsService) {
+        this.odsStatisticsService = odsStatisticsService;
+    }
+
     @Scheduled(cron = "0 0 1 * * ?")   // 姣忓ぉ闆剁偣鎵ц
     // @Scheduled(cron = "0/1 * * * * ?")   // 姣忕鎵ц
     public void alarmMsgTask() {
@@ -98,7 +119,7 @@
             if (responseDto.getStatus() == 200) {
                 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);
@@ -184,22 +205,58 @@
         }
     }
 
+    @Scheduled(cron = "0 */30 * * * ?")   // 姣�5鍒嗛挓鎵ц
+    public void loginTask() {
+        login();
+    }
 
-    @Scheduled(cron = "0 0 1 * * ?")   // 姣忓ぉ闆剁偣鎵ц
-//    @Scheduled(cron = "0/1 * * * * ?")   // 姣忕鎵ц
-    public void listDataIntime() {
+    //    @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 {
-            DataIntimeParamDto paramDto = DataIntimeParamDto.builder().build();
-
             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 {
-                        inTimeService.save(o);
+                        o.setModifyTime(LocalDateTime.now());
+                        o.setTyp(paramDto.getTyp());
+                        inTimeService.saveOrUpdate(o);
                     } catch (Exception ex) {
                         System.out.printf(ex.getMessage());
                     }
@@ -315,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);
@@ -329,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());
                     }
@@ -337,7 +415,7 @@
                 // alarmMsgService.saveBatch(list);
             } else if (responseDto.getStatus() == 114) {
                 login();
-                queryDataDetectorDaily2Task();
+                listCurAlarm();
             } else {
                 System.out.printf(responseDto.getData().toString());
             }
@@ -346,8 +424,91 @@
         }
     }
 
+    /**
+     * 妫�娴嬩华鎬讳綋鎯呭喌鎶ヨ〃
+     */
+    @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("connect_test2").password("test@234").noCode(true).build();
+        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) {

--
Gitblit v1.8.0