From dba54bf8c8f9299d61c05bf3a941708ea399c998 Mon Sep 17 00:00:00 2001 From: ZhuDongming <773644075@qq.com> Date: Sun, 26 Apr 2020 15:20:22 +0800 Subject: [PATCH] update excel多个工作表导出 --- src/main/java/com/moral/controller/ScreenController.java | 170 ++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 138 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java index 042724a..e4bb92c 100644 --- a/src/main/java/com/moral/controller/ScreenController.java +++ b/src/main/java/com/moral/controller/ScreenController.java @@ -20,6 +20,9 @@ import java.util.Optional; import java.util.stream.Collectors; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; + import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.MapUtils; import org.apache.commons.net.ftp.FTPClient; @@ -99,9 +102,6 @@ import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; import static com.moral.common.util.ResourceUtil.getValue; import static com.moral.common.util.WebUtils.getParametersStartingWith; @@ -204,6 +204,58 @@ resultMap.put("accountId", -1); } else { resultMap = accountService.screenLogin(parameters); + // ������������������������������������������ + Object orgId = resultMap.get("orgId"); + if (resultMap.get("orgId") != null && resultMap.get("orgId") instanceof Integer) { + StringBuilder areaNamesBuilder = new StringBuilder("������"); + if (!((Integer) orgId).equals(dictionaryDataService.querySupperOrgId())) { + Organization organization = organizationService.getOrganizationById((Integer) orgId); + if (organization.getAreaNames() != null) { + Map<String, String> areaNameMap = BeanUtils.beanToMap(organization.getAreaNames()); + List<String> names = areaNameMap.entrySet().stream().filter(item -> { + return item.getValue() != null; + }).map(item -> { + return item.getValue(); + }).collect(Collectors.toList()); + AreaNames areaNames = organization.getAreaNames(); + areaNamesBuilder.append("/"); + areaNamesBuilder.append(String.join("/", names)); + } + // ������������ + if (organization.getRank() != null && organization.getRank() == 0) { + resultMap.put("type", "enterprise"); + } else { + resultMap.put("type", "government"); + } + Number mapAreaCode = null; + if (organization.getVillageCode() != null) { + mapAreaCode = organization.getVillageCode(); + } else if (organization.getTownCode() != null) { + mapAreaCode = organization.getTownCode(); + } else if (organization.getAreaCode() != null) { + mapAreaCode = organization.getAreaCode(); + } else if (organization.getCityCode() != null) { + mapAreaCode = organization.getCityCode(); + } else if (organization.getProvinceCode() != null) { + mapAreaCode = organization.getProvinceCode(); + } + resultMap.put("mapAreaCode", mapAreaCode.toString()); + } + resultMap.put("mapPath", areaNamesBuilder.toString()); + } + } + return resultMap; + } + + @GetMapping("loginNew") + public Map<String, Object> screenLoginNew(HttpServletRequest request) { + Map<String, Object> resultMap = new HashMap<String, Object>(); + Map<String, Object> parameters = getParametersStartingWith(request, null); + if (!(parameters.containsKey("account") && parameters.containsKey("password"))) { + resultMap.put("msg", "������������������������������������"); + resultMap.put("accountId", -1); + } else { + resultMap = accountService.screenLoginNew(parameters); // ������������������������������������������ Object orgId = resultMap.get("orgId"); if (resultMap.get("orgId") != null && resultMap.get("orgId") instanceof Integer) { @@ -545,21 +597,9 @@ } @GetMapping("/getSensorsMap") - public ResultBean getSensorsMapOnly(String mac){ - Map<String, String> paramMap = sensorService.getSensorsMapOnly(mac); - ResultBean<Map<String, String>> resultBean = new ResultBean(); - resultBean.setData(paramMap); - resultBean.setCode(ResultBean.SUCCESS); - return resultBean; - } - - @GetMapping("/getSensorsUnitMap") - public ResultBean getSensorsUnitMap(String mac){ - Map<String, String> paramMap = sensorService.getSensorsUnitMap(mac); - ResultBean<Map<String, String>> resultBean = new ResultBean(); - resultBean.setData(paramMap); - resultBean.setCode(ResultBean.SUCCESS); - return resultBean; + public List<Map<String, String>> getSensorsMapOnly(String mac) { + List<Map<String, String>> sensorsMapList = sensorService.getSensorsMaps(mac); + return sensorsMapList; } @RequestMapping(value = "/get-monitorpoints", method = RequestMethod.GET) @@ -1028,7 +1068,6 @@ Map<String, Object> map = list.get(0); String monitor_point_id = map.get("monitor_point_id").toString(); List<Map<String, Object>> sensorUnitList = sensorUnitService.getSensorsByMonitPointId2(monitor_point_id); - System.out.println(sensorUnitList); for (Map<String, Object> sensorMap : list) { for (Map<String, Object> sensorUnitMap : sensorUnitList) { if (sensorUnitMap.get("sensor_key").equals(sensorMap.get("sensor_key"))) { @@ -1049,8 +1088,6 @@ String monitor_point_id = (String) parameters.get("monitor_point_id"); List<Map<String, Object>> list = sensorService.getSensorByMonitorPointId(monitor_point_id); List<Map<String, Object>> sensorUnitList = sensorUnitService.getSensorsByMonitPointId2(monitor_point_id); - System.out.println("list:"+list); - System.out.println("sensorUnitList:"+sensorUnitList); for (Map<String, Object> sensorMap : list) { for (Map<String, Object> sensorUnitMap : sensorUnitList) { if (sensorUnitMap.get("sensor_key").equals(sensorMap.get("sensorKey"))) { @@ -1076,7 +1113,7 @@ String intoTime = parameters.get("time").toString(); Date date = new SimpleDateFormat("yy-MM-dd").parse(intoTime); DateFormat df1 = new SimpleDateFormat("yyyy-MM-dd"); - String alterTime = df1.format(date.getTime()-15*24*60*60*1000); + String alterTime = df1.format(date.getTime() - 15 * 24 * 60 * 60 * 1000); parameters.put("time", alterTime); ParameterUtils.getTimeType4Time(parameters); String monitor_point_id = (String) parameters.get("monitorPoint"); @@ -1095,15 +1132,15 @@ Map<String, Object> weatherMap = new HashMap<>(); Map<String, Object> tempMap = new HashMap<>(); Boolean tf = false; - for(int i=0;i<sensorKeys.length;i++) { - if(sensorKeys[i].equals("e7")) { - tf = true; - } + for (int i = 0; i < sensorKeys.length; i++) { + if (sensorKeys[i].equals("e7")) { + tf = true; + } } if (tf) { weatherMap = weatherService.get15DayWeatherDataByRegion(weatherParameters); tempMap = TempAllocationUtils.tempAllocation(weatherMap); - } + } //������������������ Map<String, Map<String, Object>> sensorUnitMap = sensorUnitService.getSensorsByMonitPointId(monitor_point_id); @@ -1111,9 +1148,9 @@ String time = map.get("time").toString(); time = time.substring(time.length() - 2); map.put("time", Integer.valueOf(time)); - if (tempMap!=null) { - map.put("temp", tempMap.get(map.get("time").toString())); - } + if (tempMap != null) { + map.put("temp", tempMap.get(map.get("time").toString())); + } List<Number> values = new ArrayList<Number>(); List<String> units = new ArrayList<String>(); for (String string : sensorKeys) { @@ -1265,9 +1302,7 @@ sensorMap.put("e10", Double.parseDouble(map.get("co").toString())); sensorMap.put("e15", Double.parseDouble(map.get("o3").toString())); Map<String, Object> StateControl = AQICalculation.hourlyAQI(sensorMap); - System.out.println("StateControl:" + StateControl); Map<String, Object> hourAqi = historyService.gitHourlyAQIByMonitorPointIdAndTimeslot(parameters); - System.out.println("hourAqi:" + hourAqi); Map<String, Object> returnMap = new HashMap<>(); returnMap.put("MonitorPointAQI", hourAqi.get("AQI")); returnMap.put("StateControlAQI", StateControl.get("AQI")); @@ -1299,4 +1334,75 @@ return new ResultBean<List<Map<String, Object>>>(returnList); } + @GetMapping("/carTrajectory") + @ApiOperation(value = "���������������������", notes = "���������������������") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "mac", value = "������mac������������p5dnd7a0392082���", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "startTime", value = "������������(���������2020-03-19-14)", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "endTime", value = "������������(���������2020-03-19-17)", required = true, paramType = "query", dataType = "String") + }) + public ModelAndView carTrajectory(ModelAndView model, HttpServletRequest request) throws Exception { + Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); + String st = parameters.get("startTime").toString(); + String startYearAndDay = st.substring(0, st.lastIndexOf("-")); + String startHour = st.substring(st.lastIndexOf("-") + 1); + String startTime = startYearAndDay + " " + startHour + ":00:00"; + String et = parameters.get("endTime").toString(); + String endYearAndDay = et.substring(0, et.lastIndexOf("-")); + String endHour = et.substring(et.lastIndexOf("-") + 1); + String endTime = endYearAndDay + " " + endHour + ":00:00"; + parameters.put("startTime", startTime); + parameters.put("endTime", endTime); + String mac = parameters.get("mac").toString(); + if (mac != null && mac.length() != 0) { + List<List<Map<String, Object>>> sensorData = historyService.getCarSensorData(parameters); + Map<String, String> sensorsMap = sensorService.getSensorsMap(parameters); + List<Map<String, Object>> sensorList = new ArrayList<>(); + if (sensorData.size() == 3) { + sensorList = sensorData.get(0); + } + JSONObject params = new JSONObject(); + params.put("sensorInfo", sensorList); + params.put("sensorsMap", sensorsMap); + String paramsJson = params.toJSONString(); + model.addObject("carTrajectoryParams", paramsJson); + model.setViewName("cartrajectory"); + return model; + } else { + StringBuilder msg = new StringBuilder(); + msg.append(" param[0] mac:"); + msg.append(mac); + log.warn(msg); + model.setViewName("403"); + return model; + } + } + + @GetMapping("device-excel") + @ApiOperation(value = "������������������������", notes = "������������������������") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "sensorKey", value = "���������key", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "organizationId", defaultValue = "8", value = "���������������������id", required = true, paramType = "query", dataType = "Integer"), + @ApiImplicitParam(name = "regionCode", defaultValue = "320583", value = "���������", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "time", value = "������(���������2020-04-09���2019-04)", required = true, paramType = "query", dataType = "String")}) + public ResultBean<List<Map<String, Object>>> getDevicesDataToExcel(HttpServletRequest request) throws Exception { + Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); + ParameterUtils.getTimeType4Time(parameters); + Object sensorKey = parameters.get("sensorKey"); + parameters.put("sensorKeys", Arrays.asList(sensorKey)); + 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); + } + return new ResultBean<List<Map<String, Object>>>(list); + } + } -- Gitblit v1.8.0