From dad9ebf1e6bfd86e7d4ce9cb976a8f24422c4cf7 Mon Sep 17 00:00:00 2001
From: lizijie <lzjiiie@163.com>
Date: Tue, 28 Dec 2021 15:30:55 +0800
Subject: [PATCH] 获取设备一天24小时平均值、最小值、最大值接口

---
 screen-api/src/main/java/com/moral/api/service/impl/HistoryHourlyServiceImpl.java |   39 +++++++++++++++++++
 screen-api/src/main/java/com/moral/api/controller/HistoryHourlyController.java    |   29 ++++++++++++++
 screen-api/src/main/java/com/moral/api/service/HistoryHourlyService.java          |    9 ++++
 3 files changed, 77 insertions(+), 0 deletions(-)

diff --git a/screen-api/src/main/java/com/moral/api/controller/HistoryHourlyController.java b/screen-api/src/main/java/com/moral/api/controller/HistoryHourlyController.java
index d10d3b1..bf34467 100644
--- a/screen-api/src/main/java/com/moral/api/controller/HistoryHourlyController.java
+++ b/screen-api/src/main/java/com/moral/api/controller/HistoryHourlyController.java
@@ -1,10 +1,14 @@
 package com.moral.api.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.moral.api.entity.Device;
 import com.moral.api.entity.Organization;
+import com.moral.api.mapper.DeviceMapper;
 import com.moral.api.mapper.OrganizationMapper;
 import com.moral.api.service.AlarmInfoService;
 import com.moral.api.service.HistoryHourlyService;
+import com.moral.constant.Constants;
 import com.moral.constant.ResponseCodeEnum;
 import com.moral.constant.ResultMessage;
 import com.moral.util.WebUtils;
@@ -14,6 +18,7 @@
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -31,6 +36,9 @@
 
     @Resource
     private OrganizationMapper organizationMapper;
+
+    @Resource
+    private DeviceMapper deviceMapper;
 
     @Resource
     private HistoryHourlyService historyHourlyService;
@@ -69,4 +77,25 @@
         return ResultMessage.ok(resultMap);
     }
 
+    @RequestMapping(value = "getHourCompleteDataByMacSensorCodeDate", method = RequestMethod.GET)
+    @ResponseBody
+    public ResultMessage getHourCompleteDataByMacSensorCodeDate(HttpServletRequest request){
+        Map<String, Object> parameters = WebUtils.getParametersStartingWith(request,null);
+        Object mac = parameters.get("mac");
+        Object sensorCode = parameters.get("sensor_code");
+        Object date = parameters.get("date");
+        if (ObjectUtils.isEmpty(mac) || ObjectUtils.isEmpty(sensorCode) || ObjectUtils.isEmpty(date)){
+            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+        }
+        QueryWrapper<Device> deviceQueryWrapper = new QueryWrapper<>();
+        deviceQueryWrapper.eq("is_delete",Constants.NOT_DELETE);
+        deviceQueryWrapper.eq("mac",mac);
+        Device device = deviceMapper.selectOne(deviceQueryWrapper);
+        if (ObjectUtils.isEmpty(device)){
+            return ResultMessage.fail(ResponseCodeEnum.ORGANIZATION_NOT_EXIST.getCode(), ResponseCodeEnum.ORGANIZATION_NOT_EXIST.getMsg());
+        }
+        List<Map<String, Object>> resultList = historyHourlyService.getHourCompleteDataByMacSensorCodeDate(parameters);
+        return ResultMessage.ok(resultList);
+    }
+
 }
diff --git a/screen-api/src/main/java/com/moral/api/service/HistoryHourlyService.java b/screen-api/src/main/java/com/moral/api/service/HistoryHourlyService.java
index 79473a3..3b7e654 100644
--- a/screen-api/src/main/java/com/moral/api/service/HistoryHourlyService.java
+++ b/screen-api/src/main/java/com/moral/api/service/HistoryHourlyService.java
@@ -56,6 +56,15 @@
     List<Map<String, Object>> getThermodynamicDiagramDataByOrgIdSensorCodeTimeslot(Map<String, Object> map);
 
     /**
+     *@Description: ���������������������������������
+     *@Param: [map]
+     *@return: java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
+     *@Author: lizijie
+     *@Date: 2021/12/28 10:04
+     **/
+    List<Map<String, Object>> getHourCompleteDataByMacSensorCodeDate(Map<String,Object> map);
+
+    /**
      * @Description: ������mac������������������������
      * @Param: [mac, startDate, endDate]
      * @return: java.util.List<com.moral.api.entity.HistoryHourly>
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/HistoryHourlyServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/HistoryHourlyServiceImpl.java
index c60183b..5c01832 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/HistoryHourlyServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/HistoryHourlyServiceImpl.java
@@ -527,6 +527,45 @@
         return list;
     }
 
+    @Override
+    public List<Map<String, Object>> getHourCompleteDataByMacSensorCodeDate(Map<String, Object> map) {
+        String mac = map.get("mac").toString();
+        String sensorCode = map.get("sensor_code").toString();
+        String date = map.get("date").toString();
+        String dateTime = date.replace("-","");
+        String timeUnits = dateTime.substring(0,6)+"_complete";
+        Map<String,Object> params = new HashMap<>();
+        params.put("timeUnits",timeUnits);
+        params.put("mac",mac);
+        List resultList = new ArrayList();
+        for (int i = 0; i < 13; i++) {
+            Map<String,Object> oneHourDateMap = new HashMap<>();
+            String j;
+            if (i<10){
+                j = " 0"+i+":00:00";
+            }else {
+                j = " "+i+":00:00";
+            }
+            String time = date+j;
+            params.put("time",time);
+            if (ObjectUtils.isEmpty(historyHourlyMapper.selectHourlyData(params))){
+                resultList.add(oneHourDateMap);
+                continue;
+            }
+            String oneHourlyData = null;
+            oneHourlyData = historyHourlyMapper.selectHourlyData(params);
+            JSONObject js = JSONObject.parseObject(oneHourlyData);
+            String sensorDate = js.get(sensorCode).toString();
+            sensorDate = sensorDate.replace("[","");
+            sensorDate = sensorDate.replace("]","");
+            String[] split = sensorDate.split(",");
+            oneHourDateMap.put("time",time);
+            oneHourDateMap.put("values",split);
+            resultList.add(oneHourDateMap);
+        }
+        return resultList;
+    }
+
     /**
      * @Description: ���������������������������mac���������
      * @Param: [mac, startDate, endDate]

--
Gitblit v1.8.0