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