From e468088052b2dea9837645eeed689ee9c5f0948d Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期五, 27 十月 2023 15:58:11 +0800
Subject: [PATCH] 油烟

---
 ycl-platform/src/main/java/com/ycl/service/smoke/impl/OdsAlarmMsgServiceImpl.java |   36 ++++
 ycl-smoke/src/main/java/com/ycl/smoke/remote/service/ISmokeDetectionService.java  |    2 
 ycl-smoke/src/main/resources/mapper/smoke/OdsInTimeCountMapper.xml                |   19 ++
 ycl-platform/src/main/java/com/ycl/controller/smoke/SmokeAlarmController.java     |  150 +++++++----------
 ycl-platform/src/main/java/com/ycl/service/smoke/IOdsAlarmMsgService.java         |    2 
 ycl-platform/src/main/java/com/ycl/vo/smoke/OdsAlarmVo.java                       |   34 ++++
 ycl-smoke/src/main/java/com/ycl/smoke/dto/DataIntimeParamDto.java                 |    2 
 ycl-platform/src/main/java/com/ycl/service/smoke/impl/OdsInTimeServiceImpl.java   |    1 
 ycl-smoke/src/main/java/com/ycl/smoke/task/ScheduledTask.java                     |   50 +++++
 ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsInTimeCount.java                  |   39 ++++
 ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsInTimeCountService.java         |   17 ++
 ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsInTimeCountServiceImpl.java |   23 ++
 ycl-common/src/main/java/com/ycl/service/oss/impl/OssServiceImpl.java             |    5 
 ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsInTimeCountMapper.java            |   17 ++
 ycl-platform/src/main/java/com/ycl/controller/dingding/DingController.java        |   11 +
 ycl-platform/src/main/java/com/ycl/dto/smoker/QueryAlarmParam.java                |   10 +
 ycl-smoke/src/main/java/com/ycl/smoke/dto/DataIntimeParamChildDto.java            |    3 
 17 files changed, 326 insertions(+), 95 deletions(-)

diff --git a/ycl-common/src/main/java/com/ycl/service/oss/impl/OssServiceImpl.java b/ycl-common/src/main/java/com/ycl/service/oss/impl/OssServiceImpl.java
index 4d42a27..bc84db9 100644
--- a/ycl-common/src/main/java/com/ycl/service/oss/impl/OssServiceImpl.java
+++ b/ycl-common/src/main/java/com/ycl/service/oss/impl/OssServiceImpl.java
@@ -13,6 +13,7 @@
 import java.io.ByteArrayOutputStream;
 import java.io.InputStream;
 import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.Date;
 
@@ -20,6 +21,9 @@
 public class OssServiceImpl implements OssService {
     @Override
     public String uploadImages(MultipartFile file) {
+        DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+
+        System.out.println("寮�濮嬩笂浼�--" + dtf2.format(LocalDateTime.now()));
         if (file == null) {
             return "涓婁紶鏂囦欢涓虹┖";
         }
@@ -47,6 +51,7 @@
             Date expiration = new Date(System.currentTimeMillis() + (long) 946080000 * 1000);
             String url = ossClient.generatePresignedUrl(bucketName, fileName, expiration).toString();
 
+            System.out.println("涓婁紶缁撴潫--" + dtf2.format(LocalDateTime.now()));
             return url;
         } catch (Exception e) {
             System.out.println("uploadImages涓婁紶鍥剧墖澶辫触锛�");
diff --git a/ycl-platform/src/main/java/com/ycl/controller/dingding/DingController.java b/ycl-platform/src/main/java/com/ycl/controller/dingding/DingController.java
index c59be61..ccd0d15 100644
--- a/ycl-platform/src/main/java/com/ycl/controller/dingding/DingController.java
+++ b/ycl-platform/src/main/java/com/ycl/controller/dingding/DingController.java
@@ -194,12 +194,16 @@
     @PostMapping("/oss/sign")
     public CommonResult ossSign(@RequestBody OssFileDto dto) {
         log.info("鎺ユ敹鍒癴ile");
+
+        DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
         if (StringUtils.isNullOrEmpty(dto.getMediaId()) || StringUtils.isNullOrEmpty(dto.getExtension())) {
             return CommonResult.failed("鍙傛暟涓嶈兘涓虹┖锛�");
         }
         ExecutableClient executableClient = DdTest.getExecutableClient();
         CloseableHttpResponse response = null;
         OSS ossClient = null;
+
+        System.out.println("寮�濮嬭幏鍙�--" + dtf2.format(LocalDateTime.now()));
         try {
             //浠庨拤閽夎幏鍙栬棰戞祦
             String api = "/media/download";
@@ -212,12 +216,15 @@
             response = getClient.getB();
             HttpEntity entity = response.getEntity();
             InputStream is = entity.getContent();
-            DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
 
-            String strDate2 = dtf2.format(LocalDateTime.now());
+            System.out.println("鑾峰彇瀹屾垚--" + dtf2.format(LocalDateTime.now()));
+            DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
+
+            String strDate2 = dtf.format(LocalDateTime.now());
 
             String fileName = strDate2 + RandomUtils.generateRandomInt(4) + "." + dto.getExtension();
             MultipartFile file = getMultipartFile(is, fileName);
+
             String url = ossService.uploadImages(file);
             return CommonResult.success(url);
         } catch (Exception e) {
diff --git a/ycl-platform/src/main/java/com/ycl/controller/smoke/SmokeAlarmController.java b/ycl-platform/src/main/java/com/ycl/controller/smoke/SmokeAlarmController.java
index b86dd23..b152efb 100644
--- a/ycl-platform/src/main/java/com/ycl/controller/smoke/SmokeAlarmController.java
+++ b/ycl-platform/src/main/java/com/ycl/controller/smoke/SmokeAlarmController.java
@@ -1,10 +1,26 @@
 package com.ycl.controller.smoke;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ycl.annotation.LogSave;
+import com.ycl.api.CommonPage;
+import com.ycl.api.CommonResult;
 import com.ycl.controller.BaseController;
+import com.ycl.entity.smoke.OdsAlarmMsg;
+import com.ycl.dto.smoker.QueryAlarmParam;
 import com.ycl.service.smoke.IOdsAlarmMsgService;
+import com.ycl.utils.EasyExcelUtils;
+import com.ycl.vo.smoke.OdsAlarmVo;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 @RestController
 @RequestMapping("/smoke")
@@ -17,91 +33,51 @@
     public void setAlarmMsgService(IOdsAlarmMsgService alarmMsgService) {
         this.alarmMsgService = alarmMsgService;
     }
-//
-//    @ApiOperation("鑾峰彇鎵�灞炲崟浣�")
-//    @RequestMapping(value = "/customer/list", method = RequestMethod.GET)
-//    @ResponseBody
-//    @LogSave(operationType = "娌圭儫妯″潡", contain = "鑾峰彇鎵�灞炲崟浣�")
-//    public CommonResult<CommonPage<OdsCustomer>> findCustomerList(@RequestParam(value = "keyword", required = false) String keyword,
-//                                                                  @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
-//                                                                  @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
-//        Page<OdsCustomer> customerPage = customerService.findList(keyword, pageSize, pageNum);
-//        return CommonResult.success(CommonPage.restPage(customerPage));
-//    }
-//
-//    @ApiOperation("鏌ヨ瀹炴椂鏁版嵁")
-//    @RequestMapping(value = "/inTime/list", method = RequestMethod.GET)
-//    @ResponseBody
-//    @LogSave(operationType = "娌圭儫妯″潡", contain = "鏌ヨ瀹炴椂鏁版嵁")
-//    public CommonResult<CommonPage<OdsInTime>> findInTimeList(@RequestParam(value = "owner", required = false) String owner,
-//                                                              @RequestParam(value = "onlineStatus", required = false) String onlineStatus,
-//                                                              @RequestParam(value = "status", required = false) String status,
-//                                                              @RequestParam(value = "startTime", required = false) String startTime,
-//                                                              @RequestParam(value = "endTime", required = false) String endTime,
-//                                                              @RequestParam(value = "type", required = false) String type,
-//                                                              @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
-//                                                              @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
-//        Page<OdsInTime> inTimePage = inTimeService.findList(owner, onlineStatus, startTime, endTime, type, status, pageSize, pageNum);
-//        return CommonResult.success(CommonPage.restPage(inTimePage));
-//    }
-//
-//    @ApiOperation("瀵煎嚭瀹炴椂鏁版嵁")
-//    @PostMapping(value = "/inTime/export")
-//    @LogSave(operationType = "娌圭儫妯″潡", contain = "鏌ヨ瀹炴椂鏁版嵁")
-//    public void exportInTimeList(HttpServletResponse response, QueryInTimeParam param) throws IOException {
-//        Page<OdsInTime> inTimePage = inTimeService.findList(param.getOwner(), param.getOnlineStatus(), param.getStartTime(),
-//                param.getEndTime(), param.getType(), param.getStatus(), 99999, 1);
-//
-//        List<OdsInTimeVo> odsInTimeVos = new ArrayList<>();
-//        Dictionary<Integer, String> fanStatusDic = new Hashtable<>();
-//        fanStatusDic.put(1, "寮�");
-//        fanStatusDic.put(2, "鍏�");
-//        fanStatusDic.put(3, "寮傚父");
-//        fanStatusDic.put(0, "寮傚父");
-//
-//        Dictionary<Integer, String> onlineStatusDic = new Hashtable<>();
-//        onlineStatusDic.put(1, "鍦ㄧ嚎");
-//        onlineStatusDic.put(2, "绂荤嚎");
-//        onlineStatusDic.put(3, "寮傚父绂荤嚎");
-//        onlineStatusDic.put(0, "寮傚父绂荤嚎");
-//
-//        Dictionary<String, String> statusDic = new Hashtable<>();
-//        statusDic.put("NORMAL", "姝e父");
-//        statusDic.put("ALARM", "棰勮");
-//        statusDic.put("EXCESS", "瓒呮爣");
-//        statusDic.put("DOWN", "绂荤嚎");
-//        statusDic.put("OFF", "寮傚父绂荤嚎");
-//
-//        inTimePage.getRecords().stream().forEach(o -> {
-//            OdsInTimeVo vo = new OdsInTimeVo();
-//            BeanUtils.copyProperties(o, vo);
-//            vo.setAcquitAtStr(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(o.getAcquitAt() * 1000)));
-//            vo.setFanStatusStr(fanStatusDic.get(o.getFanStatus()));
-//            vo.setFilterStatusStr(fanStatusDic.get(o.getFilterStatus()));
-//            vo.setOnlineStatusStr(onlineStatusDic.get(o.getOnlineStatus()));
-//            vo.setStatusStr(statusDic.get(o.getStatus()));
-//            odsInTimeVos.add(vo);
-//        });
-//
-//        String sheetName = "瀹炴椂鏁版嵁";
-//
-//        String fileName = URLEncoder.encode(sheetName + ".xlsx", "UTF-8");
-//        //璁剧疆鍝嶅簲瀛楃闆�
-//        response.setCharacterEncoding("UTF-8");
-//        //璁剧疆鍝嶅簲濯掍綋绫诲瀷
-//        response.setContentType("application/vnd.ms-excel");
-//        response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
-//
-//        EasyExcelUtils.export(response, sheetName, OdsInTimeVo.class, odsInTimeVos);
-//    }
-//
-//
-//    @ApiOperation("鑾峰彇璁惧鍦ㄧ嚎鎯呭喌")
-//    @RequestMapping(value = "/inTime/count", method = RequestMethod.GET)
-//    @ResponseBody
-//    @LogSave(operationType = "娌圭儫妯″潡", contain = "鑾峰彇璁惧鍦ㄧ嚎鎯呭喌")
-//    public CommonResult<InTimeCountDto> getInTimeCount() {
-//        InTimeCountDto dto = inTimeService.getInTimeCount();
-//        return CommonResult.success(dto);
-//    }
+
+    @ApiOperation("鏌ヨ鎶ヨ鏁版嵁")
+    @RequestMapping(value = "/alarm/list", method = RequestMethod.GET)
+    @ResponseBody
+    @LogSave(operationType = "娌圭儫妯″潡", contain = "鏌ヨ鎶ヨ鏁版嵁")
+    public CommonResult<CommonPage<OdsAlarmMsg>> findAlarmList(@RequestParam(value = "msgType", required = false) String type,
+                                                               @RequestParam(value = "startTime", required = false) String startTime,
+                                                               @RequestParam(value = "endTime", required = false) String endTime,
+                                                               @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
+                                                               @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        Page<OdsAlarmMsg> page = alarmMsgService.findList(type, startTime, endTime, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(page));
+    }
+
+    @ApiOperation("瀵煎嚭鎶ヨ鏁版嵁")
+    @PostMapping(value = "/alarm/export")
+    @LogSave(operationType = "娌圭儫妯″潡", contain = "瀵煎嚭鎶ヨ鏁版嵁")
+    public void exportAlarmList(HttpServletResponse response, QueryAlarmParam param) throws IOException {
+        Page<OdsAlarmMsg> page = alarmMsgService.findList(param.getMsgType(), param.getStartTime(),
+                param.getEndTime(), 99999, 1);
+
+        List<OdsAlarmVo> alarmMsgs = new ArrayList<>();
+
+        Dictionary<String, String> msgTypeDic = new Hashtable<>();
+        msgTypeDic.put("ExceedStandard", "瓒呮爣");
+        msgTypeDic.put("AbnormalOffline", "寮傚父绂荤嚎");
+
+        page.getRecords().stream().forEach(o -> {
+            OdsAlarmVo vo = new OdsAlarmVo();
+            BeanUtils.copyProperties(o, vo);
+            vo.setAcquitAtStr(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(o.getAcquitAt() * 1000)));
+            vo.setMsgTypeStr(msgTypeDic.get(o.getMsgType()));
+            alarmMsgs.add(vo);
+        });
+
+        String sheetName = "鎶ヨ娑堟伅";
+
+        String fileName = URLEncoder.encode(sheetName + ".xlsx", "UTF-8");
+        //璁剧疆鍝嶅簲瀛楃闆�
+        response.setCharacterEncoding("UTF-8");
+        //璁剧疆鍝嶅簲濯掍綋绫诲瀷
+        response.setContentType("application/vnd.ms-excel");
+        response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
+
+        EasyExcelUtils.export(response, sheetName, OdsAlarmVo.class, alarmMsgs);
+    }
+
 }
\ No newline at end of file
diff --git a/ycl-platform/src/main/java/com/ycl/dto/smoker/QueryAlarmParam.java b/ycl-platform/src/main/java/com/ycl/dto/smoker/QueryAlarmParam.java
new file mode 100644
index 0000000..e4da135
--- /dev/null
+++ b/ycl-platform/src/main/java/com/ycl/dto/smoker/QueryAlarmParam.java
@@ -0,0 +1,10 @@
+package com.ycl.dto.smoker;
+
+import lombok.Data;
+
+@Data
+public class QueryAlarmParam {
+    private String startTime;
+    private String endTime;
+    private String msgType;
+}
diff --git a/ycl-platform/src/main/java/com/ycl/service/smoke/IOdsAlarmMsgService.java b/ycl-platform/src/main/java/com/ycl/service/smoke/IOdsAlarmMsgService.java
index 013b82a..b52038c 100644
--- a/ycl-platform/src/main/java/com/ycl/service/smoke/IOdsAlarmMsgService.java
+++ b/ycl-platform/src/main/java/com/ycl/service/smoke/IOdsAlarmMsgService.java
@@ -1,5 +1,6 @@
 package com.ycl.service.smoke;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ycl.entity.smoke.OdsAlarmMsg;
 
@@ -13,4 +14,5 @@
  */
 public interface IOdsAlarmMsgService extends IService<OdsAlarmMsg> {
 
+    Page<OdsAlarmMsg> findList(String status, String startTime, String endTime, Integer pageSize, Integer pageNum);
 }
diff --git a/ycl-platform/src/main/java/com/ycl/service/smoke/impl/OdsAlarmMsgServiceImpl.java b/ycl-platform/src/main/java/com/ycl/service/smoke/impl/OdsAlarmMsgServiceImpl.java
index 16da8f8..e486059 100644
--- a/ycl-platform/src/main/java/com/ycl/service/smoke/impl/OdsAlarmMsgServiceImpl.java
+++ b/ycl-platform/src/main/java/com/ycl/service/smoke/impl/OdsAlarmMsgServiceImpl.java
@@ -1,10 +1,19 @@
 package com.ycl.service.smoke.impl;
 
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ycl.entity.smoke.OdsAlarmMsg;
+import com.ycl.entity.smoke.OdsInTime;
 import com.ycl.mapper.smoke.OdsAlarmMsgMapper;
 import com.ycl.service.smoke.IOdsAlarmMsgService;
 import org.springframework.stereotype.Service;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
 
 /**
  * <p>
@@ -17,4 +26,31 @@
 @Service
 public class OdsAlarmMsgServiceImpl extends ServiceImpl<OdsAlarmMsgMapper, OdsAlarmMsg> implements IOdsAlarmMsgService {
 
+    @Override
+    public Page<OdsAlarmMsg> findList(String type, String startTime, String endTime, Integer pageSize, Integer pageNum) {
+        Page<OdsAlarmMsg> page = new Page<>(pageNum, pageSize);
+        QueryWrapper<OdsAlarmMsg> wrapper = new QueryWrapper<>();
+        LambdaQueryWrapper<OdsAlarmMsg> lambda = wrapper.lambda();
+
+        if (StrUtil.isNotEmpty(startTime)) {
+            try {
+                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                Date startdate = format.parse(startTime);
+                Long startTimestamp = startdate.getTime() / 1000;
+
+                Date enddate = format.parse(endTime);
+                Long endTimestamp = enddate.getTime() / 1000;
+
+                lambda.between(OdsAlarmMsg::getAcquitAt, startTimestamp, endTimestamp);
+            } catch (ParseException e) {
+                throw new RuntimeException(e);
+            }
+        }
+
+        if (StrUtil.isNotEmpty(type)) {
+            lambda.eq(OdsAlarmMsg::getMsgType, type);
+        }
+        wrapper.orderByDesc("id");
+        return this.page(page, wrapper);
+    }
 }
diff --git a/ycl-platform/src/main/java/com/ycl/service/smoke/impl/OdsInTimeServiceImpl.java b/ycl-platform/src/main/java/com/ycl/service/smoke/impl/OdsInTimeServiceImpl.java
index 14b4991..f905fce 100644
--- a/ycl-platform/src/main/java/com/ycl/service/smoke/impl/OdsInTimeServiceImpl.java
+++ b/ycl-platform/src/main/java/com/ycl/service/smoke/impl/OdsInTimeServiceImpl.java
@@ -59,6 +59,7 @@
             lambda.eq(OdsInTime::getStatus, status);
         }
 
+        wrapper.orderByDesc("id");
         return this.page(page, wrapper);
 
     }
diff --git a/ycl-platform/src/main/java/com/ycl/vo/smoke/OdsAlarmVo.java b/ycl-platform/src/main/java/com/ycl/vo/smoke/OdsAlarmVo.java
new file mode 100644
index 0000000..ab55b4b
--- /dev/null
+++ b/ycl-platform/src/main/java/com/ycl/vo/smoke/OdsAlarmVo.java
@@ -0,0 +1,34 @@
+package com.ycl.vo.smoke;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class OdsAlarmVo {
+
+    @ExcelProperty(value = "璁惧缂栫爜", index = 0)
+    private String mn;
+
+    @ExcelProperty(value = "鎶ヨ鏃堕棿", index = 1)
+    private String acquitAtStr;
+
+    @ExcelProperty(value = "娑堟伅绫诲瀷", index = 2)
+    private String msgTypeStr;
+
+    @ExcelProperty(value = "娑堟伅鍐呭", index = 3)
+    private String content;
+
+    @ExcelProperty(value = "鍦板潃", index = 4)
+    private String addr;
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/dto/DataIntimeParamChildDto.java b/ycl-smoke/src/main/java/com/ycl/smoke/dto/DataIntimeParamChildDto.java
index 0ce5b3a..391c90d 100644
--- a/ycl-smoke/src/main/java/com/ycl/smoke/dto/DataIntimeParamChildDto.java
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/dto/DataIntimeParamChildDto.java
@@ -1,13 +1,14 @@
 package com.ycl.smoke.dto;
 
+import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Builder;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 @Data
-@Builder
 @EqualsAndHashCode(callSuper = false)
+@JsonInclude(JsonInclude.Include.NON_NULL)
 public class DataIntimeParamChildDto {
     /**
      * 鍚�	绛涢�夌粍缁囷紙Param鍐咃級
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/dto/DataIntimeParamDto.java b/ycl-smoke/src/main/java/com/ycl/smoke/dto/DataIntimeParamDto.java
index 25f482d..e8fc4a4 100644
--- a/ycl-smoke/src/main/java/com/ycl/smoke/dto/DataIntimeParamDto.java
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/dto/DataIntimeParamDto.java
@@ -1,5 +1,6 @@
 package com.ycl.smoke.dto;
 
+import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Builder;
 import lombok.Data;
@@ -8,6 +9,7 @@
 @Data
 @Builder
 @EqualsAndHashCode(callSuper = false)
+@JsonInclude(JsonInclude.Include.NON_NULL)
 public class DataIntimeParamDto {
     /**
      * 鍚�	璧峰浣嶇疆
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsInTimeCount.java b/ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsInTimeCount.java
new file mode 100644
index 0000000..45a6a8f
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsInTimeCount.java
@@ -0,0 +1,39 @@
+package com.ycl.smoke.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("ums_ods_in_time_count")
+public class OdsInTimeCount implements Serializable {
+    @TableId("id")
+    @JsonProperty("Id")
+    private String id;
+
+    @TableField("device_num")
+    @JsonProperty("deviceNum")
+    private Integer deviceNum;
+
+    @TableField("locale_num")
+    @JsonProperty("localeNum")
+    private Integer localeNum;
+
+    @TableField("online_num")
+    @JsonProperty("onlineNum")
+    private Integer onlineNum;
+
+    @TableField("total")
+    @JsonProperty("total")
+    private Integer total;
+
+    @TableField("type")
+    @JsonProperty("type")
+    private Integer type;
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsInTimeCountMapper.java b/ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsInTimeCountMapper.java
new file mode 100644
index 0000000..85d524c
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsInTimeCountMapper.java
@@ -0,0 +1,17 @@
+package com.ycl.smoke.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ycl.smoke.entity.OdsInTime;
+import com.ycl.smoke.entity.OdsInTimeCount;
+
+/**
+ * <p>
+ * 杩斿洖瀹炴椂鐨勮澶囨暟鎹� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+public interface OdsInTimeCountMapper extends BaseMapper<OdsInTimeCount> {
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/remote/service/ISmokeDetectionService.java b/ycl-smoke/src/main/java/com/ycl/smoke/remote/service/ISmokeDetectionService.java
index 3cd8410..0d6f102 100644
--- a/ycl-smoke/src/main/java/com/ycl/smoke/remote/service/ISmokeDetectionService.java
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/remote/service/ISmokeDetectionService.java
@@ -10,7 +10,7 @@
 import java.util.List;
 
 
-@FeignClient(url = "116.62.234.187:8088", name = "smokeApi")
+@FeignClient(url = "116.62.234.187:8120", name = "smokeApi")
 public interface ISmokeDetectionService {
 
     @PostMapping(value = "/loginAction")
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsInTimeCountService.java b/ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsInTimeCountService.java
new file mode 100644
index 0000000..ffecf77
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsInTimeCountService.java
@@ -0,0 +1,17 @@
+package com.ycl.smoke.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ycl.smoke.entity.OdsInTime;
+import com.ycl.smoke.entity.OdsInTimeCount;
+
+/**
+ * <p>
+ * 杩斿洖瀹炴椂鐨勮澶囨暟鎹� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+public interface IOdsInTimeCountService extends IService<OdsInTimeCount> {
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsInTimeCountServiceImpl.java b/ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsInTimeCountServiceImpl.java
new file mode 100644
index 0000000..6e26422
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsInTimeCountServiceImpl.java
@@ -0,0 +1,23 @@
+package com.ycl.smoke.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ycl.smoke.entity.OdsInTime;
+import com.ycl.smoke.entity.OdsInTimeCount;
+import com.ycl.smoke.mapper.OdsInTimeCountMapper;
+import com.ycl.smoke.mapper.OdsInTimeMapper;
+import com.ycl.smoke.service.IOdsInTimeCountService;
+import com.ycl.smoke.service.IOdsInTimeService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 杩斿洖瀹炴椂鐨勮澶囨暟鎹� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+@Service
+public class OdsInTimeCountServiceImpl extends ServiceImpl<OdsInTimeCountMapper, OdsInTimeCount> implements IOdsInTimeCountService {
+
+}
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 db0e45e..1dc348e 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,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.*;
@@ -31,6 +34,8 @@
 
     IOdsInTimeService inTimeService;
 
+    IOdsInTimeCountService iOdsInTimeCountService;
+
     IOdsLocaleService localeService;
 
     IOdsCustomerService customerService;
@@ -45,6 +50,11 @@
     @Autowired
     public void setSmokeDetectionService(ISmokeDetectionService smokeDetectionService) {
         this.smokeDetectionService = smokeDetectionService;
+    }
+
+    @Autowired
+    public void setIOdsInTimeCountService(IOdsInTimeCountService iOdsInTimeCountService) {
+        this.iOdsInTimeCountService = iOdsInTimeCountService;
     }
 
     @Autowired
@@ -186,20 +196,52 @@
 
 
     //    @Scheduled(cron = "0 0 1 * * ?")   // 姣忓ぉ闆剁偣鎵ц
-    @Scheduled(cron = "0 */5 * * * ?")   // 姣�5鍒嗛挓鎵ц
-    public void listDataIntime() {
-        try {
-            DataIntimeParamDto paramDto = DataIntimeParamDto.builder().build();
+    @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());
diff --git a/ycl-smoke/src/main/resources/mapper/smoke/OdsInTimeCountMapper.xml b/ycl-smoke/src/main/resources/mapper/smoke/OdsInTimeCountMapper.xml
new file mode 100644
index 0000000..b26199f
--- /dev/null
+++ b/ycl-smoke/src/main/resources/mapper/smoke/OdsInTimeCountMapper.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ycl.smoke.mapper.OdsInTimeCountMapper">
+
+    <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+    <resultMap id="BaseResultMap" type="com.ycl.smoke.entity.OdsInTimeCount">
+        <id column="id" property="id"/>
+        <result column="device_num" property="deviceNum"/>
+        <result column="locale_num" property="localeNum"/>
+        <result column="online_num" property="onlineNum"/>
+        <result column="total" property="total"/>
+    </resultMap>
+
+    <!-- 閫氱敤鏌ヨ缁撴灉鍒� -->
+    <sql id="Base_Column_List">
+        id , device_num, locale_num, online_num, total
+    </sql>
+
+</mapper>

--
Gitblit v1.8.0