From b146d1a002c4e3b323810f95bea28a1e47e0d680 Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期一, 02 十月 2023 11:05:01 +0800
Subject: [PATCH] 接口

---
 ycl-platform/src/main/java/com/ycl/service/smoke/IOdsInTimeService.java         |    3 +++
 ycl-platform/src/main/java/com/ycl/controller/smoke/SmokeController.java        |   10 ++++++++++
 ycl-platform/src/main/java/com/ycl/mapper/smoke/OdsInTimeMapper.java            |    2 ++
 ycl-platform/src/main/java/com/ycl/service/smoke/impl/OdsInTimeServiceImpl.java |   37 +++++++++++++++++++++++++++++++++++--
 ycl-platform/src/main/resources/mapper/smoke/OdsInTimeMapper.xml                |    6 ++++++
 5 files changed, 56 insertions(+), 2 deletions(-)

diff --git a/ycl-platform/src/main/java/com/ycl/controller/smoke/SmokeController.java b/ycl-platform/src/main/java/com/ycl/controller/smoke/SmokeController.java
index 82774ef..3f5641d 100644
--- a/ycl-platform/src/main/java/com/ycl/controller/smoke/SmokeController.java
+++ b/ycl-platform/src/main/java/com/ycl/controller/smoke/SmokeController.java
@@ -5,6 +5,7 @@
 import com.ycl.api.CommonPage;
 import com.ycl.api.CommonResult;
 import com.ycl.controller.BaseController;
+import com.ycl.dto.smoker.InTimeCountDto;
 import com.ycl.entity.smoke.OdsCustomer;
 import com.ycl.entity.smoke.OdsInTime;
 import com.ycl.service.smoke.IOdsCustomerService;
@@ -61,4 +62,13 @@
         Page<OdsInTime> inTimePage = inTimeService.findList(owner, onlineStatus, startTime, endTime, type, status, pageSize, pageNum);
         return CommonResult.success(CommonPage.restPage(inTimePage));
     }
+
+    @ApiOperation("鑾峰彇璁惧鍦ㄧ嚎鎯呭喌")
+    @RequestMapping(value = "/inTime/count", method = RequestMethod.GET)
+    @ResponseBody
+    @LogSave(operationType = "娌圭儫妯″潡", contain = "鑾峰彇璁惧鍦ㄧ嚎鎯呭喌")
+    public CommonResult<InTimeCountDto> getInTimeCount() {
+        InTimeCountDto dto = inTimeService.getInTimeCount();
+        return CommonResult.success(dto);
+    }
 }
diff --git a/ycl-platform/src/main/java/com/ycl/mapper/smoke/OdsInTimeMapper.java b/ycl-platform/src/main/java/com/ycl/mapper/smoke/OdsInTimeMapper.java
index 769fc11..32d381a 100644
--- a/ycl-platform/src/main/java/com/ycl/mapper/smoke/OdsInTimeMapper.java
+++ b/ycl-platform/src/main/java/com/ycl/mapper/smoke/OdsInTimeMapper.java
@@ -1,6 +1,7 @@
 package com.ycl.mapper.smoke;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ycl.dto.smoker.InTimeCountDto;
 import com.ycl.entity.smoke.OdsInTime;
 
 /**
@@ -13,4 +14,5 @@
  */
 public interface OdsInTimeMapper extends BaseMapper<OdsInTime> {
 
+    InTimeCountDto getInTimeCount();
 }
diff --git a/ycl-platform/src/main/java/com/ycl/service/smoke/IOdsInTimeService.java b/ycl-platform/src/main/java/com/ycl/service/smoke/IOdsInTimeService.java
index 1c3e7ab..8e7767a 100644
--- a/ycl-platform/src/main/java/com/ycl/service/smoke/IOdsInTimeService.java
+++ b/ycl-platform/src/main/java/com/ycl/service/smoke/IOdsInTimeService.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ycl.dto.smoker.InTimeCountDto;
 import com.ycl.entity.smoke.OdsInTime;
 
 /**
@@ -15,4 +16,6 @@
 public interface IOdsInTimeService extends IService<OdsInTime> {
 
     Page<OdsInTime> findList(String owner, String onlineStatus, String startTime, String endTime, String type, String status, Integer pageSize, Integer pageNum);
+
+    InTimeCountDto getInTimeCount();
 }
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 2b9269d..6edbd26 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
@@ -5,11 +5,16 @@
 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.dto.smoker.InTimeCountDto;
 import com.ycl.entity.smoke.OdsCustomer;
 import com.ycl.entity.smoke.OdsInTime;
 import com.ycl.mapper.smoke.OdsInTimeMapper;
 import com.ycl.service.smoke.IOdsInTimeService;
 import org.springframework.stereotype.Service;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
 
 /**
  * <p>
@@ -27,11 +32,39 @@
         Page<OdsInTime> page = new Page<>(pageNum, pageSize);
         QueryWrapper<OdsInTime> wrapper = new QueryWrapper<>();
         LambdaQueryWrapper<OdsInTime> lambda = wrapper.lambda();
-        if (StrUtil.isNotEmpty(keyword)) {
-            lambda.like(OdsInTime::getName, keyword);
+        if (StrUtil.isNotEmpty(owner)) {
+            lambda.eq(OdsInTime::getOwner, owner);
+        }
+        if (StrUtil.isNotEmpty(onlineStatus)) {
+            lambda.eq(OdsInTime::getOnlineStatus, onlineStatus);
+        }
+        if (StrUtil.isNotEmpty(startTime)) {
+            try {
+                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                Date startdate = format.parse(startTime);
+                Long startTimestamp = startdate.getTime();
+
+                Date enddate = format.parse(endTime);
+                Long endTimestamp = enddate.getTime();
+
+                lambda.between(OdsInTime::getLastAt, startTimestamp, endTimestamp);
+            } catch (ParseException e) {
+                throw new RuntimeException(e);
+            }
+        }
+        if (StrUtil.isNotEmpty(type)) {
+            lambda.eq(OdsInTime::getTyp, type);
+        }
+        if (StrUtil.isNotEmpty(status)) {
+            lambda.eq(OdsInTime::getStatus, status);
         }
 
         return this.page(page, wrapper);
 
     }
+
+    @Override
+    public InTimeCountDto getInTimeCount() {
+        return baseMapper.getInTimeCount();
+    }
 }
diff --git a/ycl-platform/src/main/resources/mapper/smoke/OdsInTimeMapper.xml b/ycl-platform/src/main/resources/mapper/smoke/OdsInTimeMapper.xml
index 191248e..d0e233a 100644
--- a/ycl-platform/src/main/resources/mapper/smoke/OdsInTimeMapper.xml
+++ b/ycl-platform/src/main/resources/mapper/smoke/OdsInTimeMapper.xml
@@ -42,5 +42,11 @@
     <sql id="Base_Column_List">
         id, string, acquit_at, last_at, c_emissions, c_granule, c_hydrocarbon, emissions_conc, granule_conc, hydrocarbon_conc, fan_status, filter_status, typ, status, velocity, temperature, moisture, locale, lid, owner, addr, emissions_sill, granule_sill, hydrocarbon_sill, link_status, customer_mobile, locale_lng, localelat, fan_current, pur_current, online_status, status_of_record
     </sql>
+    <select id="getInTimeCount" resultType="com.ycl.dto.smoker.InTimeCountDto">
+        SELECT sum(CASE  WHEN  online_status = 1 THEN 1  ELSE 0 END ) onlineCount,
+               count(id) monitor,
+               count(id) devices
+        from ums_ods_in_time
+    </select>
 
 </mapper>

--
Gitblit v1.8.0