|  |  | 
 |  |  |  | 
 |  |  | import java.io.*; | 
 |  |  | import java.lang.reflect.Array; | 
 |  |  | import java.net.URLEncoder; | 
 |  |  | import java.text.DateFormat; | 
 |  |  | import java.text.DecimalFormat; | 
 |  |  | import java.text.ParseException; | 
 |  |  | 
 |  |  |  | 
 |  |  | import com.rabbitmq.client.*; | 
 |  |  | import com.rabbitmq.client.Channel; | 
 |  |  |  | 
 |  |  | import io.swagger.annotations.Api; | 
 |  |  | import io.swagger.annotations.ApiImplicitParam; | 
 |  |  | import io.swagger.annotations.ApiImplicitParams; | 
 |  |  | 
 |  |  | import io.swagger.models.auth.In; | 
 |  |  | import jdk.nashorn.internal.runtime.regexp.joni.Regex; | 
 |  |  | import net.sf.json.JSONString; | 
 |  |  |  | 
 |  |  | import org.apache.commons.collections.CollectionUtils; | 
 |  |  | import org.apache.commons.collections.MapUtils; | 
 |  |  | import org.apache.commons.net.ftp.FTPClient; | 
 |  |  | 
 |  |  | import org.springframework.web.bind.annotation.RestController; | 
 |  |  | import org.springframework.web.servlet.ModelAndView; | 
 |  |  | import org.xml.sax.InputSource; | 
 |  |  |  | 
 |  |  | import static com.moral.common.util.ResourceUtil.getValue; | 
 |  |  | import static com.moral.common.util.WebUtils.getParametersStartingWith; | 
 |  |  | import static java.util.Calendar.*; | 
 |  |  | 
 |  |  |  | 
 |  |  |     @Resource | 
 |  |  |     private ScreenVersionService screenVersionService; | 
 |  |  |  | 
 |  |  |     @Resource | 
 |  |  |     private DeviceAdjustValueTimingService deviceAdjustValueTimingService; | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * Screen login. 大屏登录 | 
 |  |  | 
 |  |  |             parameters.put("sensors", Arrays.asList(sensorKey)); | 
 |  |  |             // monitorPointService.isCompensateCalculation(parameters); | 
 |  |  |             list = historyMinutelyService.getMonitorPointOrDeviceAvgData(parameters); | 
 |  |  |             list.remove(0); | 
 |  |  |             if (list.size() == 23) { | 
 |  |  |                 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | 
 |  |  |                 SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd"); | 
 |  |  |                 //获取全格式时间yyyy-MM-dd HH:mm:ss | 
 |  |  |                 time1 = time1 + " 00:00:00"; | 
 |  |  |                 Date date = sdf.parse(time1); | 
 |  |  |                 date = DateUtil.rollDay(date, 1); | 
 |  |  |                 //将全格式时间截取 | 
 |  |  |                 String time2 = sdf2.format(date); | 
 |  |  |                 parameters.put("time", time2); | 
 |  |  |                 List<Map<String, Object>> nextDayList = historyMinutelyService.getMonitorPointOrDeviceAvgData(parameters); | 
 |  |  |                 if(!ObjectUtils.isEmpty(nextDayList)){ | 
 |  |  |                     time1=time1.replaceAll(" 00:00:00"," 24"); | 
 |  |  |                     Map<String, Object> datas = nextDayList.get(0); | 
 |  |  |                     datas.put("time",time1); | 
 |  |  |                     list.add(datas); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             for (Map<String, Object> map : list) { | 
 |  |  |                 String time = map.get("time").toString(); | 
 |  |  |                 time = time.substring(time.length() - 2); | 
 |  |  |                 map.put("time", Integer.valueOf(time)); | 
 |  |  |                 if (parameters.get("type").equals("day")) { | 
 |  |  |              /*   if (parameters.get("type").equals("day")) { | 
 |  |  |                     map.put("time", Integer.valueOf(time) + 1); | 
 |  |  |                 } | 
 |  |  |                 }*/ | 
 |  |  |                 map.put("value", map.remove(sensorKey)); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  | 
 |  |  |     public ResultBean<List<MonitorPoint>> getMonitorPointsAndDevicesByRegion(HttpServletRequest request) | 
 |  |  |             throws Exception { | 
 |  |  |         Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); | 
 |  |  |         String regionCode = parameters.get("regionCode").toString(); | 
 |  |  |         List<MonitorPoint> monitorPoints = monitorPointService.getMonitorPointsAndDevicesByRegion(parameters); | 
 |  |  |  | 
 |  |  |         //剔除沧州非本公司设备 | 
 |  |  |         if (regionCode.startsWith("1309")) { | 
 |  |  |             List<Integer> orgIds = new ArrayList<>(); | 
 |  |  |             Collections.addAll(orgIds, 60, 65, 159, 165, 166); | 
 |  |  |             Iterator<MonitorPoint> iter = monitorPoints.iterator(); | 
 |  |  |             while (iter.hasNext()) { | 
 |  |  |                 MonitorPoint next = iter.next(); | 
 |  |  |                 Integer mpId = next.getId(); | 
 |  |  |                 Integer orgId = next.getOrganizationId(); | 
 |  |  |                 if (!orgIds.contains(orgId)) { | 
 |  |  |                     iter.remove(); | 
 |  |  |                 } else { | 
 |  |  |                     if (orgId == 60) { | 
 |  |  |                         if (mpId != 56) { | 
 |  |  |                             iter.remove(); | 
 |  |  |                         } | 
 |  |  |                     } else if (orgId == 65) { | 
 |  |  |                         if (mpId != 83 && mpId != 84) { | 
 |  |  |                             iter.remove(); | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         //给每一个monitorPoint下的设备通过device.getName()进行排序 | 
 |  |  |         for (MonitorPoint monitorPoint : monitorPoints) { | 
 |  |  |             List<Device> deviceList = monitorPoint.getDevices(); | 
 |  |  | 
 |  |  |         Calendar calendar = Calendar.getInstance(); | 
 |  |  |         calendar.set(Calendar.MINUTE, (calendar.get(Calendar.MINUTE) - 2)); | 
 |  |  |         SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm"); | 
 |  |  |         String time = df.format(calendar.getTime()) + ":00"; | 
 |  |  |         //String time = df.format(calendar.getTime()) + ":00"; | 
 |  |  |         int year = calendar.get(Calendar.YEAR); | 
 |  |  |         int month = calendar.get(Calendar.MONTH) + 1; | 
 |  |  |         String mon; | 
 |  |  | 
 |  |  |             mon = "" + month; | 
 |  |  |         } | 
 |  |  |         String table = "history_minutely_" + year + mon; | 
 |  |  |         List list = deviceService.byMonitorIdGetDeviceAndWind(monitorPointId, time, table); | 
 |  |  |         List list = deviceService.byMonitorIdGetDeviceAndWind(monitorPointId, table); | 
 |  |  |         return list; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 
 |  |  |             mon = "" + month; | 
 |  |  |         } | 
 |  |  |         String table = "history_minutely_" + year + mon; | 
 |  |  |         List list = deviceService.byMonitorIdGetDeviceAndWindSpecial(monitorPointId, time, table); | 
 |  |  |         List list = deviceService.byMonitorIdGetDeviceAndWindSpecial(monitorPointId, table); | 
 |  |  |         return list; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 
 |  |  |                     for (Map<String, Object> dataMap : dataList) { | 
 |  |  |                         JSONObject dataJson = JSONObject.parseObject(dataMap.get("json").toString()); | 
 |  |  |                         if (dataMap.get("time").toString().equals(day + " 00:00:00.0")) { | 
 |  |  |                             oneSensorMap.put(dataMap.get("time").toString().substring(0, 10), dataJson.getJSONArray(key).get(2)); | 
 |  |  |                             oneSensorMap.put(dataMap.get("time").toString().substring(0, 10), dataJson.getJSONArray(key).get(0)); | 
 |  |  |                             break; | 
 |  |  |                         } else { | 
 |  |  |                             continue; | 
 |  |  | 
 |  |  |                     for (Map sameDayHourlyMap : sameDayHourlyList) { | 
 |  |  |                         List<Double> arr = new ArrayList<>(); | 
 |  |  |                         JSONObject hourlyJson = JSONObject.parseObject(sameDayHourlyMap.get("json").toString()); | 
 |  |  |                         arr.add(Double.parseDouble(hourlyJson.getJSONArray(key).get(2).toString())); | 
 |  |  |                         arr.add(Double.parseDouble(hourlyJson.getJSONArray(key).get(0).toString())); | 
 |  |  |                         Double sum = 0.0; | 
 |  |  |                         for (int i = 0; i < arr.size(); i++) { | 
 |  |  |                             sum += arr.get(i); | 
 |  |  | 
 |  |  |                     for (Map<String, Object> hourlyMap : hourlyList) { | 
 |  |  |                         JSONObject dataJson = JSONObject.parseObject(hourlyMap.get("json").toString()); | 
 |  |  |                         if (hourlyMap.get("time").toString().equals(hour + ".0")) { | 
 |  |  |                             oneSensorMap.put(hourlyMap.get("time").toString().substring(0, 19), dataJson.getJSONArray(key).get(2)); | 
 |  |  |                             break; | 
 |  |  |                             if (dataJson.getJSONArray(key) != null) { | 
 |  |  |                                 oneSensorMap.put(hourlyMap.get("time").toString().substring(0, 19), dataJson.getJSONArray(key).get(0)); | 
 |  |  |                                 break; | 
 |  |  |                             } | 
 |  |  |                         } else { | 
 |  |  |                             continue; | 
 |  |  |                         } | 
 |  |  | 
 |  |  |         } | 
 |  |  |         return new ResultBean<List<Map<String, Object>>>(list); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @GetMapping("/contrastFactor") | 
 |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @GetMapping("/tellAlarm") | 
 |  |  |     @PostMapping("/tellAlarm") | 
 |  |  |     @ResponseBody | 
 |  |  |     public List<List> tellAlarm(@Param("states") String states, | 
 |  |  |                                   @Param("orgId") String orgId, | 
 |  |  |                                   @Param("accountId") String accountId, | 
 |  |  |                                   @Param("states1") String states1, | 
 |  |  |                                   @Param("regionCode") String regionCode) { | 
 |  |  |     public List<List> tellAlarm(String states, String orgId, String accountId, String states1, String regionCode) { | 
 |  |  |         JSONArray stateList = JSONArray.parseArray(states);//最新的设备数据 | 
 |  |  |         JSONArray stateList1 = JSONArray.parseArray(states1);//前10秒的设备数据 | 
 |  |  |         List<List> lookList = new ArrayList<>(); | 
 |  |  | 
 |  |  |                         } | 
 |  |  |                         String state = (String) dataMap.get("state"); | 
 |  |  |                         String state1 = (String) dataMap.get("state1"); | 
 |  |  |                         List<Map> mapList=new ArrayList(); | 
 |  |  |                         List<Map> mapList = new ArrayList(); | 
 |  |  |                         for (String key : list) { | 
 |  |  |                             if (((Map) aEMap.get("eMap")).containsKey(key)) { | 
 |  |  |                                 Double val = Double.valueOf(sensorMap.get(key).toString()); | 
 |  |  | 
 |  |  |                                     if ((state1.equals("0") || state1.equals("1")) && Integer.parseInt(state) > 1) { | 
 |  |  |                                         if (val > Double.valueOf(String.valueOf(valueList.get(1)))) { | 
 |  |  |                                             Map lookMap = new HashMap(); | 
 |  |  |                                             lookMap.put("time",time); | 
 |  |  |                                             lookMap.put("name",device.getName()); | 
 |  |  |                                             lookMap.put("sensor",sensors.get("description")); | 
 |  |  |                                             lookMap.put("value",val + ""+sensors.get("unit")); | 
 |  |  |                                             lookMap.put("time", time); | 
 |  |  |                                             lookMap.put("name", device.getName()); | 
 |  |  |                                             lookMap.put("sensor", sensors.get("description")); | 
 |  |  |                                             lookMap.put("value", val + "" + sensors.get("unit")); | 
 |  |  |                                             mapList.add(lookMap); | 
 |  |  |                                            //lookString = time+" "+device.getName()+sensors.get("description")+"="+val + sensors.get("unit")+"超标"; | 
 |  |  |                                            //System.out.println(time + "====" + device.getName() + "=====" + sensors.get("description") + "======" + val + sensors.get("unit")); | 
 |  |  |                                             //lookString = time+" "+device.getName()+sensors.get("description")+"="+val + sensors.get("unit")+"超标"; | 
 |  |  |                                             //System.out.println(time + "====" + device.getName() + "=====" + sensors.get("description") + "======" + val + sensors.get("unit")); | 
 |  |  |                                         } | 
 |  |  |                                     } | 
 |  |  |                                 }else {//判断非六参因子超标 | 
 |  |  |                                 } else {//判断非六参因子超标 | 
 |  |  |                                     if (state1.equals("0")) { | 
 |  |  |                                         if (val > Double.valueOf(String.valueOf(valueList.get(0)))) { | 
 |  |  |                                             Map lookMap = new HashMap(); | 
 |  |  |                                             lookMap.put("time",time); | 
 |  |  |                                             lookMap.put("name",device.getName()); | 
 |  |  |                                             lookMap.put("sensor",sensors.get("description")); | 
 |  |  |                                             lookMap.put("value",val + ""+sensors.get("unit")); | 
 |  |  |                                             lookMap.put("time", time); | 
 |  |  |                                             lookMap.put("name", device.getName()); | 
 |  |  |                                             lookMap.put("sensor", sensors.get("description")); | 
 |  |  |                                             lookMap.put("value", val + "" + sensors.get("unit")); | 
 |  |  |                                             mapList.add(lookMap); | 
 |  |  |                                         } | 
 |  |  |                                     } | 
 |  |  | 
 |  |  |  | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |                         if (mapList.size()>0){ | 
 |  |  |                         if (mapList.size() > 0) { | 
 |  |  |                             lookList.add(mapList); | 
 |  |  |                         }else { | 
 |  |  |                         } else { | 
 |  |  |                             continue; | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  | 
 |  |  |         return lookList; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |   /*  @GetMapping("/lianxian") | 
 |  |  |     @ApiOperation(value = "连线", notes = "连线" ) | 
 |  |  |     @GetMapping("multiDeviceContrast") | 
 |  |  |     @ApiOperation(value = "多设备因子对比", notes = "多设备因子对比") | 
 |  |  |     @ApiImplicitParams(value = { | 
 |  |  |             @ApiImplicitParam(name = "macs", value = "设备mac,如有多个用逗号分隔", required = true, paramType = "query", dataType = "String"), | 
 |  |  |             @ApiImplicitParam(name = "sensorKey", value = "传感器key", required = true, paramType = "query", dataType = "String"), | 
 |  |  |             @ApiImplicitParam(name = "time", value = "时间,日期(格式:2018-03-12)", required = true, paramType = "query", dataType = "String"),}) | 
 |  |  |     public ResultBean<List<Map<String, Object>>> multiDeviceSensor(HttpServletRequest request) throws Exception { | 
 |  |  |         Map<String, Object> parameters = getParametersStartingWith(request, null); | 
 |  |  |         ParameterUtils.getTimeType4Time(parameters); | 
 |  |  |         List<Map<String, Object>> list = historyMinutelyService.getMultiDeviceSensorData(parameters); | 
 |  |  |         return new ResultBean<List<Map<String, Object>>>(list); | 
 |  |  |     } | 
 |  |  |     /*  @GetMapping("/lianxian") | 
 |  |  |       @ApiOperation(value = "连线", notes = "连线" ) | 
 |  |  |       @GetMapping("multiDeviceContrast") | 
 |  |  |       @ApiOperation(value = "多设备因子对比", notes = "多设备因子对比") | 
 |  |  |       @ApiImplicitParams(value = { | 
 |  |  |               @ApiImplicitParam(name = "macs", value = "设备mac,如有多个用逗号分隔", required = true, paramType = "query", dataType = "String"), | 
 |  |  |               @ApiImplicitParam(name = "sensorKey", value = "传感器key", required = true, paramType = "query", dataType = "String"), | 
 |  |  |               @ApiImplicitParam(name = "time", value = "时间,日期(格式:2018-03-12)", required = true, paramType = "query", dataType = "String"),}) | 
 |  |  |       public ResultBean<List<Map<String, Object>>> multiDeviceSensor(HttpServletRequest request) throws Exception { | 
 |  |  |           Map<String, Object> parameters = getParametersStartingWith(request, null); | 
 |  |  |           ParameterUtils.getTimeType4Time(parameters); | 
 |  |  |           List<Map<String, Object>> list = historyMinutelyService.getMultiDeviceSensorData(parameters); | 
 |  |  |           return new ResultBean<List<Map<String, Object>>>(list); | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |     /* | 
 |  |  |     * 根据大屏版本号获取版本更新信息 | 
 |  |  |     */ | 
 |  |  |       /* | 
 |  |  |       * 根据大屏版本号获取版本更新信息 | 
 |  |  |       */ | 
 |  |  |     @GetMapping("screenVersion") | 
 |  |  |     public Map<String, Object> getScreenVersion(HttpServletRequest request) { | 
 |  |  |         Map<String, Object> parameters = getParametersStartingWith(request, null); | 
 |  |  | 
 |  |  |         return screenVersionService.getScreenVersion(version); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @GetMapping("devices-sensors-excel") | 
 |  |  |     @GetMapping("allDeviceExcel") | 
 |  |  |     @ApiOperation(value = "所有设备多因子数据报表", notes = "所有设备多因子数据报表") | 
 |  |  |     @ApiImplicitParams(value = { | 
 |  |  |             @ApiImplicitParam(name = "monitor_point_id", defaultValue = "5", value = "监控站点id", required = true, paramType = "query", dataType = "String"), | 
 |  |  |             @ApiImplicitParam(name = "monitorPoint", value = "监控站点id", required = true, paramType = "query", dataType = "String"), | 
 |  |  |             @ApiImplicitParam(name = "sensorKey", value = "传感器key,多个逗号隔开", required = true, paramType = "query", dataType = "String"), | 
 |  |  |             @ApiImplicitParam(name = "time", value = "时间(格式:2020-04-09)", required = true, paramType = "query", dataType = "String")}) | 
 |  |  |     public ResultBean<List<Map<String, Object>>> getDevicesToExcel(HttpServletRequest request) throws Exception { | 
 |  |  |             @ApiImplicitParam(name = "startTime", value = "起始时间(格式:2020-08-03)", required = true, paramType = "query", dataType = "String"), | 
 |  |  |             @ApiImplicitParam(name = "endTime", value = "结束时间(格式:2020-08-04)", required = false, paramType = "query", dataType = "String")}) | 
 |  |  |     public ResultBean<List<Map<String, Object>>> getAllDeviceDataToExcel(HttpServletRequest request) throws Exception { | 
 |  |  |         Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); | 
 |  |  |         ParameterUtils.getTimeType4Time(parameters); | 
 |  |  |         /*String[] sensorKeys = parameters.get("sensorKey").toString().split(","); | 
 |  |  |         parameters.put("sensorKeys", Arrays.asList(sensorKeys)); | 
 |  |  |         List<String> macList = new ArrayList<>(); | 
 |  |  |         List<MonitorPoint> monitorPoints = monitorPointService.getMonitorPointsAndDevicesByRegion(parameters); | 
 |  |  |         for (MonitorPoint m : monitorPoints) { | 
 |  |  |             for (Device d : m.getDevices()) { | 
 |  |  |                 macList.add(d.getMac()); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         parameters.put("macs", macList); | 
 |  |  |         List<Map<String, Object>> list = new ArrayList<>(); | 
 |  |  |         if (!CollectionUtils.isEmpty(macList)) { | 
 |  |  |             list = historyMinutelyService.getDevicesAvgDataToExcel(parameters); | 
 |  |  |         }*/ | 
 |  |  |         List<Map<String, Object>> list = historyMinutelyService.getDevicesSensorsToExcel(parameters); | 
 |  |  |         List<Map<String, Object>> list = historyMinutelyService.getAllDeviceDataToExcel(parameters); | 
 |  |  |         return new ResultBean<List<Map<String, Object>>>(list); | 
 |  |  |     } | 
 |  |  | } | 
 |  |  |  | 
 |  |  |     /*@PostMapping("insertAdjustValue") | 
 |  |  |     @ApiOperation(value = "所有设备多因子数据报表", notes = "所有设备多因子数据报表") | 
 |  |  |     @ApiImplicitParams(value = { | 
 |  |  |             @ApiImplicitParam(name = "id", value = "设备id", required = true, paramType = "query", dataType = "String"), | 
 |  |  |             @ApiImplicitParam(name = "time", value = "时间(格式08:30:00)", required = true, paramType = "query", dataType = "String"), | 
 |  |  |             @ApiImplicitParam(name = "dataArray", value = "公式", required = false, paramType = "query", dataType = "String")}) | 
 |  |  |     public void insertAdjustValue(HttpServletRequest request) throws Exception { | 
 |  |  |         Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); | 
 |  |  |         int device_id = Integer.parseInt(parameters.get("id").toString()); | 
 |  |  |         String hour_minute_second = parameters.get("time").toString(); | 
 |  |  |         String[] arr = hour_minute_second.split(":"); | 
 |  |  |         int seconds = Integer.parseInt(arr[0])*3600+Integer.parseInt(arr[1])*60+Integer.parseInt(arr[2]); | 
 |  |  |         String value = parameters.get("dataArray").toString(); | 
 |  |  |         deviceAdjustValueTimingService.insertData(device_id,seconds,value);; | 
 |  |  |     }*/ | 
 |  |  |  | 
 |  |  |     @PostMapping("insertAdjustValue") | 
 |  |  |     public  int insertAdjustValue(@RequestBody HashMap map){ | 
 |  |  |         try{ | 
 |  |  |             int device_id = Integer.parseInt(map.get("id").toString()); | 
 |  |  |             String time = map.get("time").toString(); | 
 |  |  |             String[] arr = time.split(":"); | 
 |  |  |             int seconds = Integer.parseInt(arr[0])*3600+Integer.parseInt(arr[1])*60+Integer.parseInt(arr[2]); | 
 |  |  |             //String t = URLEncoder.encode(参数,"UTF-8") | 
 |  |  |             List list = (List) map.get("dataArray"); | 
 |  |  |             String val=""; | 
 |  |  |             for (int i = 0; i <list.size() ; i++) { | 
 |  |  |                 if (i==0){ | 
 |  |  |                     val=val+list.get(i); | 
 |  |  |                 }else { | 
 |  |  |                     val=val+","+list.get(i); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             String value = "{"+val+"}"; | 
 |  |  |             deviceAdjustValueTimingService.insertData(device_id,seconds,value); | 
 |  |  |             return 1; | 
 |  |  |         }catch (Exception e){ | 
 |  |  |             log.warn(e); | 
 |  |  |         } | 
 |  |  |         return 0; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @RequestMapping("/biaozhun") | 
 |  |  |     @ResponseBody | 
 |  |  |     public List<Device> queryDevice(String macOrName){ | 
 |  |  |         List<Device> deviceList = new ArrayList<>(); | 
 |  |  |         if (!macOrName.equals("")){ | 
 |  |  |              deviceList= deviceService.getDevice(macOrName); | 
 |  |  |         } | 
 |  |  |         return deviceList; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @RequestMapping("/getBiaoZhun") | 
 |  |  |     @ResponseBody | 
 |  |  |     public List<DeviceAdjustValueTiming> getBiaoZhun(String id){ | 
 |  |  |         List<DeviceAdjustValueTiming> dataByDeviceid = deviceAdjustValueTimingService.getDataByDeviceid(Integer.parseInt(id)); | 
 |  |  |         for (DeviceAdjustValueTiming deviceAdjustValueTiming : dataByDeviceid) { | 
 |  |  |             int seconds = Integer.parseInt(deviceAdjustValueTiming.getSeconds()); | 
 |  |  |             String hour = String.valueOf(seconds/3600); | 
 |  |  |             int millAndSeconds = seconds%3600; | 
 |  |  |             String mill = String.valueOf(millAndSeconds/60); | 
 |  |  |             String second = String.valueOf(millAndSeconds%60); | 
 |  |  |             if (hour.length()<2){ | 
 |  |  |                 hour="0"+hour; | 
 |  |  |             } | 
 |  |  |             if (mill.length()<2){ | 
 |  |  |                 mill="0"+mill; | 
 |  |  |             } | 
 |  |  |             if (second.length()<2){ | 
 |  |  |                 second="0"+second; | 
 |  |  |             } | 
 |  |  |             String time = hour+":"+mill+":"+second; | 
 |  |  |             Map<String, String> value = deviceAdjustValueTiming.getValue(); | 
 |  |  |             Collection<String> values = value.values(); | 
 |  |  |             deviceAdjustValueTiming.setSeconds(time); | 
 |  |  |         } | 
 |  |  |         return dataByDeviceid; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @RequestMapping("/getSensor") | 
 |  |  |     @ResponseBody | 
 |  |  |     public  List<Map<String, Object>> getSensor(String id){ | 
 |  |  |         List<Map<String, Object>> allSensors = sensorService.getSensorByDeviceId(id); | 
 |  |  |         return allSensors; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @RequestMapping("/deleteBiaoZhun") | 
 |  |  |     @ResponseBody | 
 |  |  |     public int deleteBiaoZhun(String id){ | 
 |  |  |         int i= deviceAdjustValueTimingService.delete(id); | 
 |  |  |         return i; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @GetMapping("/monitorAVGData") | 
 |  |  |     @ApiOperation(value = "monitor平均数据导出", notes = "monitor平均数据导出") | 
 |  |  |     @ApiImplicitParams(value = { | 
 |  |  |             @ApiImplicitParam(name = "monitorPointIds", value = "多个monitorid", required = true, paramType = "query", dataType = "String"), | 
 |  |  |             @ApiImplicitParam(name = "time", value = "时间(格式:2020-03-19)", required = true, paramType = "query", dataType = "String")}) | 
 |  |  |     public  List<List<Map>> monitorAVGData(HttpServletRequest request) throws Exception { | 
 |  |  |         Map<String, Object> parameters = getParametersStartingWith(request, null); | 
 |  |  |         String monitorPointIds = (String) parameters.get("monitorPointIds"); | 
 |  |  |         String time = (String) parameters.get("time"); | 
 |  |  |         time = time+" 00:00:00"; | 
 |  |  |         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd mm:HH:ss");//注意月份是MM | 
 |  |  |         Date date = simpleDateFormat.parse(time); | 
 |  |  |         Calendar calendar = new GregorianCalendar(); | 
 |  |  |         calendar.setTime(date); | 
 |  |  |         calendar.add(calendar.DATE,+1); | 
 |  |  |         String date1= simpleDateFormat.format(date); | 
 |  |  |         String date2= simpleDateFormat.format(calendar.getTime()); | 
 |  |  |         String[] mIds = monitorPointIds.split(","); | 
 |  |  |         List<List<Map>> lists = new ArrayList<>(); | 
 |  |  |         if (mIds.length==1 && mIds.length!=0){ | 
 |  |  |             String mId = mIds[0]; | 
 |  |  |             List<Map> dataAvbByMIdAndTime = historyHourlyService.getDataAvbByMIdAndTime(mId, date1, date2); | 
 |  |  |             lists.add(dataAvbByMIdAndTime); | 
 |  |  |             //List<Device> devicesByMonitorPointId = deviceService.getDevicesByMonitorPointId(Integer.valueOf(mId)); | 
 |  |  |         }else { | 
 |  |  |             for (int i = 0; i <mIds.length ; i++) { | 
 |  |  |                 List<Map> dataAvbByMIdAndTime = historyHourlyService.getDataAvbByMIdAndTime(mIds[i], date1, date2); | 
 |  |  |                 lists.add(dataAvbByMIdAndTime); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         return lists; | 
 |  |  |     } | 
 |  |  | } |