lizijie
2021-12-28 dad9ebf1e6bfd86e7d4ce9cb976a8f24422c4cf7
获取设备一天24小时平均值、最小值、最大值接口
3 files modified
77 ■■■■■ changed files
screen-api/src/main/java/com/moral/api/controller/HistoryHourlyController.java 29 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/service/HistoryHourlyService.java 9 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/service/impl/HistoryHourlyServiceImpl.java 39 ●●●●● patch | view | raw | blame | history
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);
    }
}
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>
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]