From 389745c23c0c279f9f79bd2aa028128beb18cd5c Mon Sep 17 00:00:00 2001
From: lizijie <lzjiiie@163.com>
Date: Thu, 20 Jan 2022 16:55:01 +0800
Subject: [PATCH] 热力图接口修改

---
 screen-api/src/main/java/com/moral/api/controller/ChartController.java |  100 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 100 insertions(+), 0 deletions(-)

diff --git a/screen-api/src/main/java/com/moral/api/controller/ChartController.java b/screen-api/src/main/java/com/moral/api/controller/ChartController.java
index 2820c0a..90b6611 100644
--- a/screen-api/src/main/java/com/moral/api/controller/ChartController.java
+++ b/screen-api/src/main/java/com/moral/api/controller/ChartController.java
@@ -1,11 +1,15 @@
 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.Organization;
+import com.moral.api.entity.ServicesScope;
 import com.moral.api.mapper.OrganizationMapper;
 import com.moral.api.service.HistoryDailyService;
 import com.moral.api.service.HistoryHourlyService;
 import com.moral.api.service.HistoryMonthlyService;
+import com.moral.api.service.ServicesScopeService;
+import com.moral.constant.Constants;
 import com.moral.constant.ResponseCodeEnum;
 import com.moral.constant.ResultMessage;
 import com.moral.util.DateUtils;
@@ -44,6 +48,9 @@
 
     @Resource
     private HistoryMonthlyService historyMonthlyService;
+
+    @Resource
+    private ServicesScopeService servicesScopeService;
 
     @RequestMapping(value = "getThermodynamicDiagramDataByCondition", method = RequestMethod.GET)
     @ResponseBody
@@ -135,6 +142,99 @@
         return ResultMessage.ok(resultMap);
     }
 
+    @RequestMapping(value = "getThermodynamicDiagramDataByConditionV2", method = RequestMethod.GET)
+    @ResponseBody
+    public ResultMessage getThermodynamicDiagramDataByConditionV2(HttpServletRequest request) throws ParseException {
+        Map<String, Object> parameters = WebUtils.getParametersStartingWith(request,null);
+        Object servicesScopeId = parameters.get("servicesScopeId");
+        Object sensorCode = parameters.get("sensor_code");
+        Object type = parameters.get("type");
+        if (ObjectUtils.isEmpty(servicesScopeId) || ObjectUtils.isEmpty(sensorCode) || ObjectUtils.isEmpty(type)){
+            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+        }
+        QueryWrapper<ServicesScope> servicesScopeQueryWrapper = new QueryWrapper<>();
+        servicesScopeQueryWrapper.eq("is_delete",Constants.NOT_DELETE);
+        servicesScopeQueryWrapper.eq("id",servicesScopeId);
+        ServicesScope servicesScope = servicesScopeService.getOne(servicesScopeQueryWrapper);
+        if (ObjectUtils.isEmpty(servicesScope)){
+            return ResultMessage.fail(ResponseCodeEnum.ORGANIZATION_NOT_EXIST.getCode(), ResponseCodeEnum.ORGANIZATION_NOT_EXIST.getMsg());
+        }
+        Map<String, Object> resultMap = new HashMap<>();
+        List<Map<String,Object>> resultList = new ArrayList<>();
+        if (type.equals("hourly")){
+            Object time = parameters.get("time");
+            if (ObjectUtils.isEmpty(time)){
+                return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+            }
+            resultMap = historyHourlyService.getThermodynamicDiagramDataByOrgIdSensorCodeTimeV2(parameters);
+            return ResultMessage.ok(resultMap);
+        }
+        if (type.equals("daily")){
+            Object time = parameters.get("time");
+            if (ObjectUtils.isEmpty(time)){
+                return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+            }
+            resultMap = historyDailyService.getThermodynamicDiagramDataByOrgIdSensorCodeTimeV2(parameters);
+            return ResultMessage.ok(resultMap);
+        }
+        if (type.equals("monthly")){
+            Object time = parameters.get("time");
+            if (ObjectUtils.isEmpty(time)){
+                return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+            }
+            resultMap = historyMonthlyService.getThermodynamicDiagramDataByOrgIdSensorCodeTimeV2(parameters);
+            return ResultMessage.ok(resultMap);
+        }
+        if (type.equals("custom")){
+            String startTime = parameters.get("startTime").toString();
+            String endTime = parameters.get("endTime").toString();
+            if (ObjectUtils.isEmpty(startTime) || ObjectUtils.isEmpty(endTime)){
+                return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+            }
+            if (startTime.length() == 13){
+                SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//24���������
+                long newTime1 = simpleDateFormat.parse(startTime+":00:00").getTime();
+                long newTime2 = simpleDateFormat.parse(endTime+":00:00").getTime();
+                Long result = newTime2 - newTime1; //���������������������������������
+                long nd = 1000 * 24 * 60 * 60;
+                long nh = 1000 * 60 * 60;
+                long nm = 1000 * 60;
+                long hour = result / nh; //������������������������
+                if (hour+1>12){
+                    return ResultMessage.fail(-1, "������������������12������");
+                }
+                if (hour<0){
+                    return ResultMessage.fail(ResponseCodeEnum.TIME_FORMAT_INVALID.getCode(), ResponseCodeEnum.TIME_FORMAT_INVALID.getMsg());
+                }
+                parameters.put("hour",hour);
+                resultList = historyHourlyService.getThermodynamicDiagramDataByOrgIdSensorCodeTimeslotV2(parameters);
+                return ResultMessage.ok(resultList);
+            }
+            if (startTime.length() == 10){
+                long days = DateUtils.getQuotByDays(startTime, endTime);
+                if (days+1>12){
+                    return ResultMessage.fail(-1, "������������������12���");
+                }
+                parameters.put("days",days);
+                resultList = historyDailyService.getThermodynamicDiagramDataByOrgIdSensorCodeTimeSlotV2(parameters);
+                return ResultMessage.ok(resultList);
+            }
+            if (startTime.length() == 7){
+                SimpleDateFormat df = new SimpleDateFormat("yyyy-MM");
+                Date satrtTimeDate = df.parse(startTime);
+                Date endTimeDate = df.parse(endTime);
+                long months = DateUtils.getMonth(satrtTimeDate,endTimeDate); //������������������������
+                if (months+1>12){
+                    return ResultMessage.fail(-1, "������������������12���");
+                }
+                parameters.put("months",months);
+                resultList = historyMonthlyService.getThermodynamicDiagramDataByOrgIdSensorCodeTimeSlotV2(parameters);
+                return ResultMessage.ok(resultList);
+            }
+        }
+        return ResultMessage.ok(resultMap);
+    }
+
     @RequestMapping(value = "returnDataTest", method = RequestMethod.GET)
     @ResponseBody
     public ResultMessage returnDataTest(HttpServletRequest request) throws ParseException {

--
Gitblit v1.8.0