| | |
| | | |
| | | import java.io.*; |
| | | import java.lang.reflect.Array; |
| | | import java.net.URLEncoder; |
| | | import java.text.DateFormat; |
| | | import java.text.DecimalFormat; |
| | | import java.text.ParseException; |
| | |
| | | |
| | | @Resource |
| | | private ScreenVersionService screenVersionService; |
| | | |
| | | @Resource |
| | | private DeviceAdjustValueTimingService deviceAdjustValueTimingService; |
| | | |
| | | /** |
| | | * Screen login. 大屏登录 |
| | |
| | | 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; |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | @GetMapping("/contrastFactor") |
| | | @ApiOperation(value = "因子对比", notes = "因子对比") |
| | | @ApiImplicitParams(value = { |
| | |
| | | } |
| | | |
| | | |
| | | @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; |
| | | } |
| | | } |