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