| | |
| | | import com.moral.service.SensorUnitService; |
| | | import com.moral.service.WeatherService; |
| | | import com.moral.util.AQICalculation; |
| | | import com.moral.util.MyLatLng; |
| | | import com.moral.util.TempAllocationUtils; |
| | | |
| | | import com.moral.util.mapUtils; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | 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.apache.ibatis.annotations.Param; |
| | | import org.apache.log4j.Logger; |
| | | import org.dom4j.Document; |
| | | import org.dom4j.Element; |
| | |
| | | return sensorsMapList; |
| | | } |
| | | |
| | | @GetMapping("/getSensorsAllMap") |
| | | public List<Map<String, String>> getSensorsAllMap(String mac) { |
| | | List<Map<String, String>> sensorsMapList = sensorService.getSensorsAllMap(); |
| | | return sensorsMapList; |
| | | } |
| | | |
| | | @RequestMapping(value = "/get-monitorpoints", method = RequestMethod.GET) |
| | | @ResponseBody |
| | | public ResultBean getMonitorpointList(@RequestParam("orgId") String orgId, MapBounds mapBounds, |
| | |
| | | |
| | | @RequestMapping(value = "/get-devices", method = RequestMethod.GET) |
| | | @ResponseBody |
| | | @ApiOperation(value = "设备信息", notes = "设备信息") |
| | | @ApiImplicitParams(value = { |
| | | @ApiImplicitParam(name = "orgId", defaultValue = "5", value = "组织Id", required = true, paramType = "query", dataType = "Integer"), |
| | | @ApiImplicitParam(name = "regionCode", defaultValue = "320583", value = "地区编码", required = true, paramType = "query", dataType = "String"), |
| | | @ApiImplicitParam(name = "Fe", defaultValue = "31.485018", value = "东北角纬度", required = true, paramType = "query", dataType = "String"), |
| | | @ApiImplicitParam(name = "Ge", defaultValue = "121.378395", value = "东北角经度", required = true, paramType = "query", dataType = "String"), |
| | | @ApiImplicitParam(name = "Ke", defaultValue = "31.296614", value = "西南角纬度", required = true, paramType = "query", dataType = "String"), |
| | | @ApiImplicitParam(name = "Le", defaultValue = "120.59651", value = "西南角经度", required = true, paramType = "query", dataType = "String") |
| | | }) |
| | | public ResultBean getDevices(@RequestParam("orgId") Integer orgId, MapBounds mapBounds, |
| | | @RequestParam("regionCode") String regionCode) { |
| | | ResultBean<List<Device>> resultBean = new ResultBean(); |
| | |
| | | String time = map.get("time").toString(); |
| | | time = time.substring(time.length() - 2); |
| | | map.put("time", Integer.valueOf(time)); |
| | | if (parameters.get("type").equals("day")) { |
| | | map.put("time", Integer.valueOf(time) + 1); |
| | | } |
| | | map.put("value", map.remove(sensorKey)); |
| | | } |
| | | return new ResultBean<List<Map<String, Object>>>(list); |
| | |
| | | public ResultBean<Map<String, Object>> getSensor(HttpServletRequest request) throws Exception { |
| | | Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); |
| | | String mac = (String) parameters.get("mac"); |
| | | //System.out.println("ScreenController-----getSensor-----mac:"+mac); |
| | | Map<String, Object> map = sensorUnitService.getSensorByMac(mac); |
| | | System.out.println("ScreenController-----getSensor-----map:"+map); |
| | | return new ResultBean<Map<String, Object>>(map); |
| | | }*/ |
| | | |
| | |
| | | }) |
| | | public ResultBean<List<Map<String, Object>>> AIForecast(HttpServletRequest request) throws Exception { |
| | | Map<String, Object> parameters = getParametersStartingWith(request, null); |
| | | //System.out.println(parameters); |
| | | String monitorPoint = (String) parameters.get("monitorPoint"); |
| | | String intoTime = parameters.get("time").toString(); |
| | | Date date = new SimpleDateFormat("yy-MM-dd").parse(intoTime); |
| | |
| | | |
| | | @RequestMapping(value = "/newMap-page", method = RequestMethod.GET) |
| | | public ModelAndView newMap(ModelAndView model, @RequestParam("areaCode") long code, |
| | | @RequestParam("accountId") int accountId) { |
| | | @RequestParam("accountId") int accountId) { |
| | | Account account = accountService.getAccountById(accountId); |
| | | List<MonitorPoint> monitorPointList = monitorPointService.getMonitorPointListByAccountId(accountId); |
| | | String regionName = areaService.queryFullNameByCode(code); |
| | | |
| | | if (account != null && regionName != null) { |
| | | Object sensors = sensorService.queryAll(); |
| | | JSONObject params = new JSONObject(); |
| | |
| | | JSONObject params = new JSONObject(); |
| | | params.put("sensorInfo", sensorData); |
| | | params.put("sensorsMap", sensorsMap); |
| | | params.put("sensorKey",parameters.get("sensorKey")); |
| | | params.put("unit",parameters.get("unit")); |
| | | params.put("description",parameters.get("description")); |
| | | params.put("sensorKey", parameters.get("sensorKey")); |
| | | params.put("unit", parameters.get("unit")); |
| | | params.put("description", parameters.get("description")); |
| | | String paramsJson = params.toJSONString(); |
| | | model.addObject("uavDroppointParams", paramsJson); |
| | | model.setViewName("uavdroppoint"); |
| | |
| | | JSONObject params = new JSONObject(); |
| | | params.put("sensorInfo", sensorData); |
| | | params.put("sensorsMap", sensorsMap); |
| | | params.put("sensorKey",parameters.get("sensorKey")); |
| | | params.put("unit",parameters.get("unit")); |
| | | params.put("description",parameters.get("description")); |
| | | params.put("sensorKey", parameters.get("sensorKey")); |
| | | params.put("unit", parameters.get("unit")); |
| | | params.put("description", parameters.get("description")); |
| | | String paramsJson = params.toJSONString(); |
| | | model.addObject("uavDroppointParams", paramsJson); |
| | | model.setViewName("uavchannel"); |
| | | model.addObject("uavChannelParams", paramsJson); |
| | | model.setViewName("uavchannelnew"); |
| | | return model; |
| | | } else { |
| | | StringBuilder msg = new StringBuilder(); |
| | |
| | | String startTime = startYearAndDay + " " + startHour + ":00:00"; |
| | | String et = parameters.get("endTime").toString(); |
| | | String endHour = et.substring(et.lastIndexOf("-") + 1); |
| | | int endHourValue = Integer.valueOf(endHour); |
| | | int startHourValue = Integer.valueOf(startHour); |
| | | int endHourValue = Integer.parseInt(endHour); |
| | | int startHourValue = Integer.parseInt(startHour); |
| | | if (endHourValue <= startHourValue) { |
| | | endHourValue = startHourValue + 1; |
| | | } |
| | |
| | | JSONObject params = new JSONObject(); |
| | | params.put("sensorInfo", sensorData); |
| | | params.put("sensorsMap", sensorsMap); |
| | | params.put("sensorKey",parameters.get("sensorKey")); |
| | | params.put("unit",parameters.get("unit")); |
| | | params.put("description",parameters.get("description")); |
| | | params.put("sensorKey", parameters.get("sensorKey")); |
| | | params.put("unit", parameters.get("unit")); |
| | | params.put("description", parameters.get("description")); |
| | | String paramsJson = params.toJSONString(); |
| | | model.addObject("uavDroppointParams", paramsJson); |
| | | model.addObject("uavTracingParams", paramsJson); |
| | | model.setViewName("uavtracing"); |
| | | return model; |
| | | } else { |
| | |
| | | return model; |
| | | } |
| | | } |
| | | |
| | | @GetMapping("/purify") |
| | | @ApiOperation(value = "获取厂区净化率", notes = "获取厂区净化率") |
| | | @ApiImplicitParams(value = { |
| | | @ApiImplicitParam(name = "monitorPointId", value = "公司Id", required = true, paramType = "query", dataType = "String"), |
| | | @ApiImplicitParam(name = "sensorKey", value = "因子", required = true, paramType = "query", dataType = "String"), |
| | | @ApiImplicitParam(name = "time", value = "时间(格式:2020-03-19-14)", required = true, paramType = "query", dataType = "String")}) |
| | | public ModelAndView PurificationRate(HttpServletRequest request, ModelAndView model) { |
| | | Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); |
| | | String monitPointIdS = (String) parameters.get("monitorPointId"); |
| | | String sensor = (String) parameters.get("sensorKey"); |
| | | String time = (String) parameters.get("time"); |
| | | String YearAndDay = time.substring(0, time.lastIndexOf("-")); |
| | | String Hour = time.substring(time.lastIndexOf("-") + 1); |
| | | String Time = YearAndDay + " " + Hour + ":00:00"; |
| | | int monitPointId = Integer.parseInt(monitPointIdS); |
| | | JSONObject params = monitorPointService.getMonitorPointById(monitPointId, Time, 1, sensor); |
| | | String paramsJson = params.toJSONString(); |
| | | model.addObject("mapParams", paramsJson); |
| | | model.setViewName("purityMap"); |
| | | return model; |
| | | } |
| | | |
| | | |
| | | @GetMapping("/collection") |
| | | @ApiOperation(value = "获取厂区收集率", notes = "获取厂区收集率") |
| | | @ApiImplicitParams(value = { |
| | | @ApiImplicitParam(name = "monitorPointId", value = "公司Id", required = true, paramType = "query", dataType = "String"), |
| | | @ApiImplicitParam(name = "time", value = "时间(格式:2020-03-19-14)", required = true, paramType = "query", dataType = "String")}) |
| | | public ModelAndView collectionRate(HttpServletRequest request, ModelAndView model) { |
| | | Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); |
| | | String monitPointIdS = (String) parameters.get("monitorPointId"); |
| | | String sensor = ""; |
| | | String time = (String) parameters.get("time"); |
| | | String YearAndDay = time.substring(0, time.lastIndexOf("-")); |
| | | String Hour = time.substring(time.lastIndexOf("-") + 1); |
| | | String Time = YearAndDay + " " + Hour + ":00:00"; |
| | | int monitPointId = Integer.parseInt(monitPointIdS); |
| | | //获取公司信息 |
| | | JSONObject params = monitorPointService.getMonitorPointById(monitPointId, Time, 2, sensor); |
| | | model.addObject("params", params); |
| | | model.setViewName("pressureMap"); |
| | | return model; |
| | | } |
| | | |
| | | |
| | | @GetMapping("/unorganizedEmissions") |
| | | @ApiOperation(value = "无组织排放", notes = "无组织排放") |
| | | @ApiImplicitParams(value = { |
| | | @ApiImplicitParam(name = "monitorPointId", value = "公司Id", required = true, paramType = "query", dataType = "String"), |
| | | @ApiImplicitParam(name = "sensorKey", value = "因子", required = true, paramType = "query", dataType = "String"), |
| | | // @ApiImplicitParam(name = "sensorKey", value = "传感器key,如有多个用逗号分隔", required = true, paramType = "query", dataType = "String"), |
| | | @ApiImplicitParam(name = "time", value = "时间(格式:2020-03-19-14)", required = true, paramType = "query", dataType = "String")}) |
| | | public ModelAndView unorganizedEmissions(HttpServletRequest request, ModelAndView model) { |
| | | Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); |
| | | String monitPointIdS = (String) parameters.get("monitorPointId"); |
| | | String sensor = (String) parameters.get("sensorKey"); |
| | | String time = (String) parameters.get("time"); |
| | | String YearAndDay = time.substring(0, time.lastIndexOf("-")); |
| | | String Hour = time.substring(time.lastIndexOf("-") + 1); |
| | | String Time = YearAndDay + " " + Hour + ":00:00"; |
| | | int monitPointId = Integer.parseInt(monitPointIdS); |
| | | //获取公司信息 |
| | | JSONObject params = monitorPointService.getMonitorPointById(monitPointId, Time, 3, sensor); |
| | | model.addObject("params", params); |
| | | model.setViewName("unorganizedMap"); |
| | | return model; |
| | | } |
| | | |
| | | |
| | | @GetMapping("/unorganizedEmissionsRealTime") |
| | | @ApiOperation(value = "无组织排放实时", notes = "无组织排放实时") |
| | | @ApiImplicitParams(value = { |
| | | @ApiImplicitParam(name = "monitorPointId", value = "公司Id", required = true, paramType = "query", dataType = "String"), |
| | | @ApiImplicitParam(name = "sensorKey", value = "因子", required = true, paramType = "query", dataType = "String"), |
| | | @ApiImplicitParam(name = "accountId", value = "用户id", required = false, paramType = "query", dataType = "String")}) |
| | | public ModelAndView unorganizedEmissionsBackups(HttpServletRequest request, ModelAndView model) { |
| | | Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); |
| | | String monitPointIdS = (String) parameters.get("monitorPointId"); |
| | | String sensor = (String) parameters.get("sensorKey"); |
| | | String accountId = (String) parameters.get("accountId"); |
| | | Account account = accountService.getAccountById(Integer.parseInt(accountId)); |
| | | int monitPointId = Integer.parseInt(monitPointIdS); |
| | | JSONObject params = monitorPointService.getMacList(monitPointId); |
| | | params.put("accountId", accountId); |
| | | params.put("orgId", account.getOrganizationId()); |
| | | params.put("sensor", sensor); |
| | | //获取公司信息 |
| | | //JSONObject params=monitorPointService.getMonitorPointById(monitPointId,Time,3,sensor); |
| | | // model.addObject("params",params); |
| | | model.addObject("params", params); |
| | | model.setViewName("newUnorganizedMap"); |
| | | return model; |
| | | } |
| | | |
| | | @GetMapping("/chooseDevice") |
| | | @ResponseBody |
| | | public Object unorganizedEmissionsBackups(String wind, String monitPointId) { |
| | | JSONObject params = new JSONObject(); |
| | | Double windDir = Double.parseDouble(wind); |
| | | List<Device> deviceList = deviceService.getDeviceById2(Integer.parseInt(monitPointId)); |
| | | Map<String, Object> longAndLatiMap; |
| | | List<Map> longAndLatiList = new ArrayList<>();//经纬度夹角集合,存放的是windList中两台设备的下标和两台设备夹角与风向角的差值 |
| | | List<Device> preAngleDeviceList = new ArrayList<Device>(); //角度减去风向最小的两台设备 |
| | | for (int f = 0; f < deviceList.size(); f++) { |
| | | for (int h = 0; h < deviceList.size(); h++) { |
| | | if (f != h) { |
| | | longAndLatiMap = new HashMap<String, Object>(); |
| | | longAndLatiMap.put("h", h); |
| | | longAndLatiMap.put("f", f); |
| | | Double angle = mapUtils.getAngle( |
| | | new MyLatLng((Double) deviceList.get(h).getLongitude(), |
| | | (Double) deviceList.get(h).getLatitude()), |
| | | new MyLatLng((Double) deviceList.get(f).getLongitude(), |
| | | (Double) deviceList.get(f).getLatitude())); |
| | | Double angleDiff = Math.abs(angle - windDir); |
| | | longAndLatiMap.put("angle", angleDiff); |
| | | longAndLatiList.add(longAndLatiMap); |
| | | } |
| | | } |
| | | } |
| | | Double minAngle = (Double) longAndLatiList.get(0).get("angle"); |
| | | int indexAngle = 0; |
| | | for (int j = 1; j < longAndLatiList.size(); j++) { |
| | | if (minAngle > (Double) longAndLatiList.get(j).get("angle")) { |
| | | minAngle = (Double) longAndLatiList.get(j).get("angle"); |
| | | indexAngle = j; |
| | | } else { |
| | | indexAngle = indexAngle; |
| | | } |
| | | } |
| | | preAngleDeviceList.add(deviceList.get((Integer) longAndLatiList.get(indexAngle).get("h"))); |
| | | preAngleDeviceList.add(deviceList.get((Integer) longAndLatiList.get(indexAngle).get("f"))); |
| | | Double length = mapUtils.getDistance((Double) preAngleDeviceList.get(0).getLongitude(), (Double) preAngleDeviceList.get(0).getLatitude(), |
| | | (Double) preAngleDeviceList.get(1).getLongitude(), (Double) preAngleDeviceList.get(1).getLatitude()); |
| | | Double subLength = length / 5; |
| | | Double subLength1 = length / 6.1; |
| | | Double angle = mapUtils.getAngle( |
| | | new MyLatLng((Double) preAngleDeviceList.get(0).getLongitude(), |
| | | (Double) preAngleDeviceList.get(0).getLatitude()), |
| | | new MyLatLng((Double) preAngleDeviceList.get(1).getLongitude(), |
| | | (Double) preAngleDeviceList.get(1).getLatitude())); |
| | | List locationList = new ArrayList(); |
| | | String[] firstLocation = mapUtils.calLocationByDistanceAndLocationAndDirection(angle, (Double) preAngleDeviceList.get(0).getLongitude(), |
| | | (Double) preAngleDeviceList.get(0).getLatitude(), subLength); |
| | | String[] secondLoction = mapUtils.calLocationByDistanceAndLocationAndDirection(angle, Double.parseDouble(firstLocation[0]), |
| | | Double.parseDouble(firstLocation[1]), subLength); |
| | | String[] thirdLocation = mapUtils.calLocationByDistanceAndLocationAndDirection(angle, Double.parseDouble(secondLoction[0]), |
| | | Double.parseDouble(secondLoction[1]), subLength); |
| | | String[] fourthLoction = mapUtils.calLocationByDistanceAndLocationAndDirection(angle, Double.parseDouble(thirdLocation[0]), |
| | | Double.parseDouble(thirdLocation[1]), subLength); |
| | | String[] fivethLoction = mapUtils.calLocationByDistanceAndLocationAndDirection(angle, Double.parseDouble(fourthLoction[0]), |
| | | Double.parseDouble(fourthLoction[1]), subLength1); |
| | | locationList.add(firstLocation); |
| | | locationList.add(secondLoction); |
| | | locationList.add(thirdLocation); |
| | | locationList.add(fourthLoction); |
| | | locationList.add(fivethLoction); |
| | | String preAngleDeviceString = JSON.toJSON(preAngleDeviceList).toString(); |
| | | params.put("preAngleDeviceString", preAngleDeviceString);//两台添加箭头的设备 |
| | | params.put("locationList", locationList); |
| | | return params; |
| | | } |
| | | |
| | | @GetMapping("weather_nextDay") |
| | | @ApiOperation(value = "未来一天臭氧预测", notes = "未来一天臭氧预测") |
| | | @ApiImplicitParams(value = { |
| | | @ApiImplicitParam(name = "monitorPointId", defaultValue = "6", value = "监控站id", required = true, paramType = "query", dataType = "String"), |
| | | @ApiImplicitParam(name = "time", value = "时间(格式:2020-03-19)", required = true, paramType = "query", dataType = "String")}) |
| | | public ResultBean<List<Map<String, Object>>> getWeatherNextDayDataByRegion(HttpServletRequest request) throws Exception { |
| | | Map<String, Object> parameters = getParametersStartingWith(request, null); |
| | | parameters.put("typeFormat", "%Y-%m-%d %H"); |
| | | List<Map<String, Object>> resultList = weatherService.getNextDayWeatherDataByRegion(parameters); |
| | | return new ResultBean<List<Map<String, Object>>>(resultList); |
| | | } |
| | | } |