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]