package com.hxzkoa.controller; import java.io.IOException; import java.io.OutputStream; import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.Enumeration; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import com.hxzkoa.json.tb_person; import com.hxzkoa.json.tb_realocation; import com.hxzkoa.json.tb_tag; import com.hxzkoa.json.tb_track; import com.hxzkoa.services.BasicInfoService; import com.hxzkoa.services.LocationService; import com.hxzkoa.util.Config; import com.hxzkoa.util.ExcelUtils; import com.hxzkoa.util.ModifyConfig; import com.hxzkoa.util.PageUtil; import com.hxzkoa.util.RequestUtils; import net.sf.json.JSONObject; @Controller public class LocationController { @Autowired private LocationService locationService; @Autowired private BasicInfoService basicInfoService; @RequestMapping(value = "/realTimeLocation.do", method = { RequestMethod.POST, RequestMethod.GET }) public String realTimeLocation(HttpServletRequest request) { String toPage = "forward:/hxzk/location/realTimeLocation.jsp"; List personManagement = basicInfoService.getPersonManagement(1); request.setAttribute("realTimeLocationList", personManagement); int curPage = 1; int count = basicInfoService.getPersonManagementCount(); int minPage = PageUtil.getMinPage(count); request.setAttribute("pageList", PageUtil.getPage(minPage)); request.setAttribute("curPage", curPage); return toPage; } @ResponseBody @RequestMapping(value = "/realTimeLocation_search.do", method = { RequestMethod.POST, RequestMethod.GET }) public String realTimeLocation_search(HttpServletRequest request) { String input = request.getParameter("input"); int curPage = 1; List pageList = new ArrayList(); List realTimeLocationList = basicInfoService.searchPersonManagement(input); pageList.add(1); JSONObject json = new JSONObject(); json.put("dataList", realTimeLocationList); json.put("pageList", pageList); json.put("curPage", curPage); return json.toString(); } @ResponseBody @RequestMapping(value = "/realTimeLocation_page.do", method = { RequestMethod.POST, RequestMethod.GET }) public String realTimeLocation_page(HttpServletRequest request) { String pageStr = request.getParameter("page"); String curPageStr = request.getParameter("curPage"); int count = basicInfoService.getPersonManagementCount(); int minPage = PageUtil.getMinPage(count); int curPage = Integer.parseInt(curPageStr); int page = 1; if ("pre".equals(pageStr)) { if (curPage > 1) { page = curPage - 1; } } else if ("next".equals(pageStr)) { if (curPage < minPage) { page = curPage + 1; } } else { page = Integer.parseInt(pageStr); } List realTimeLocationList = basicInfoService.getPersonManagement(page); List pageList = PageUtil.getPage(PageUtil.getLocPage(page, curPage), page, minPage); JSONObject json = new JSONObject(); json.put("dataList", realTimeLocationList); json.put("pageList", pageList); json.put("curPage", page); return json.toString(); } @RequestMapping(value = "/historicalLocation.do", method = { RequestMethod.POST, RequestMethod.GET }) public String historicalLocation(HttpServletRequest request) throws SQLException { String toPage = "forward:/hxzk/location/historicalLocation.jsp"; String pagePath = Config.getPageConfig(); Integer perPage = Integer.parseInt(ModifyConfig.readData(pagePath, "perPage")); // List historicalLocationList = // locationService.getRealTimeLocation(1,perPage); Date date = new Date(System.currentTimeMillis()); SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd"); String currentDate = formatter.format(date); System.out.print(currentDate); List trackList = locationService.getTrack(currentDate, 1, perPage); request.setAttribute("historicalLocationList", trackList); int curPage = 1; int count = locationService.getRealTimeLocationCount(currentDate); System.out.print(count); int minPage = PageUtil.getMinPage(count); request.setAttribute("pageList", PageUtil.getPage(minPage)); request.setAttribute("curPage", curPage); request.setAttribute("perPage", perPage); // 处理日期查询列表 List trackDateList = locationService.getTrackDateList(); List trackDateReList = new ArrayList(); trackDateReList.add(currentDate); for (int i = 0; i < trackDateList.size(); i++) { String listdate = trackDateList.get(i); if (!(currentDate).equals(listdate)) { trackDateReList.add(listdate); } } request.setAttribute("dateList", trackDateReList); return toPage; } @ResponseBody @RequestMapping(value = "/historicalLocation_delete.do", method = { RequestMethod.POST, RequestMethod.GET }) public void historicalLocation_delete(HttpServletRequest request) { String checkValStr = request.getParameter("checkVal"); String date = request.getParameter("datea"); checkValStr = checkValStr.replaceAll("\"", ""); String[] checkVal = checkValStr.split(","); locationService.realTimeLocation_delete(checkVal,date); } @ResponseBody @RequestMapping(value = "/historicalLocation_deleteAll.do", method = { RequestMethod.POST, RequestMethod.GET }) public void historicalLocation_deleteAll(HttpServletRequest request) { String date = request.getParameter("aaaa"); locationService.realTimeLocation_deleteAll(date); } @ResponseBody @RequestMapping(value = "/historicalLocation_search.do", method = { RequestMethod.POST, RequestMethod.GET }) public String historicalLocation_search(HttpServletRequest request) { String input = request.getParameter("input"); String date = request.getParameter("cccc"); int curPage = 1; List pageList = new ArrayList(); List historicalLocationList = locationService.searchRealTimeLocation(input,date); pageList.add(1); JSONObject json = new JSONObject(); json.put("dataList", historicalLocationList); json.put("pageList", pageList); json.put("curPage", curPage); return json.toString(); } @ResponseBody @RequestMapping(value = "/historicalLocation_page.do", method = { RequestMethod.POST, RequestMethod.GET }) public String historicalLocation_page(HttpServletRequest request) { String pageStr = request.getParameter("page"); String curPageStr = request.getParameter("curPage"); String date = request.getParameter("date"); int count = locationService.getRealTimeLocationCount(date); int minPage = PageUtil.getMinPage(count); int curPage = Integer.parseInt(curPageStr); String pagePath = Config.getPageConfig(); Integer perPage = Integer.parseInt(ModifyConfig.readData(pagePath, "perPage")); if (("").equals(pageStr) || pageStr == null) { pageStr = curPageStr; } int page = 1; if ("pre".equals(pageStr)) { if (curPage > 1) { page = curPage - 1; } } else if ("next".equals(pageStr)) { if (curPage < minPage) { page = curPage + 1; } } else { page = Integer.parseInt(pageStr); } // List historicalLocationList = // locationService.getRealTimeLocation(page,perPage); List trackList = locationService.getTrack(date, page, perPage); List pageList = PageUtil.getPage(PageUtil.getLocPage(page, curPage), page, minPage); JSONObject json = new JSONObject(); json.put("dataList", trackList); json.put("pageList", pageList); json.put("curPage", page); System.out.print(pageList); return json.toString(); } @ResponseBody @RequestMapping(value = "/historicalLocation_export.do", method = { RequestMethod.POST, RequestMethod.GET }) public String historicalPower_export(HttpServletRequest request, HttpServletResponse response) { String toPage = "forward:/hxzk/label/historicalLocation.jsp"; Enumeration paraNames=request.getParameterNames(); String thisName = null; String thisValue = null; for(Enumeration e=paraNames;e.hasMoreElements();){ thisName=e.nextElement()+""; //name名 thisValue=request.getParameter(thisName); //name名对应的值 } // String date = request.getParameter("datebb"); List historicalLocationList = locationService.getRealTimeLocation(thisValue); String[] rowName = { "序号", "标签ID", "X坐标", "Y坐标", "Z坐标", "层", "时间" }; List dataList = objectToArray_historicalLocation(historicalLocationList); ExcelUtils excel = new ExcelUtils("轨迹数据", rowName, dataList); OutputStream out; try { String fileName = "Excel-" + String.valueOf(System.currentTimeMillis()).substring(4, 13) + ".xls"; String headStr = "attachment; filename=\"" + fileName + "\""; response.setContentType("APPLICATION/OCTET-STREAM"); response.setHeader("Content-Disposition", headStr); out = response.getOutputStream(); excel.export(out); out.flush(); out.close(); } catch (Exception e) { e.printStackTrace(); } return toPage; } // tb_realocation 导出表格 对象转数组 public static List objectToArray_historicalLocation(List historicalLocationList) { List reList = new ArrayList<>(); for (int i = 0; i < historicalLocationList.size(); i++) { List words = new ArrayList(); tb_realocation realocation = (tb_realocation) historicalLocationList.get(i); words.add(realocation.getId() + ""); words.add(realocation.getTagid()); words.add(realocation.getX()); words.add(realocation.getY()); words.add(realocation.getZ()); words.add(realocation.getLayer()); words.add(realocation.getTime()); String[] array = words.toArray(new String[0]); reList.add(array); } return reList; } @RequestMapping(value = "/track_bw_add.do", method = { RequestMethod.POST, RequestMethod.GET }) public void track_bw_add(HttpServletRequest request) throws IOException { String jsonString = RequestUtils.getRequestJsonString(request, Config.getCharset()); tb_track track = (tb_track) JSONObject.toBean(JSONObject.fromObject(jsonString), tb_track.class); Date date = new Date(System.currentTimeMillis()); SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd"); String currentDate = formatter.format(date); locationService.track_add(currentDate,track); } @RequestMapping(value = "/tag_time_bw.do", method = { RequestMethod.POST, RequestMethod.GET }) public void tag_time_bw(HttpServletRequest request) throws IOException { String jsonString = RequestUtils.getRequestJsonString(request, Config.getCharset()); tb_tag tag = (tb_tag) JSONObject.toBean(JSONObject.fromObject(jsonString), tb_tag.class); locationService.tag_time(tag); } // @RequestMapping(value = "/shishi.do", method = { RequestMethod.POST, RequestMethod.GET }) // public void shiyan(HttpServletRequest request) throws IOException { // String jsonString = RequestUtils.getRequestJsonString(request, Config.getCharset()); // System.out.print(jsonString); // System.out.print("执行力我"); // tb_tag tag = (tb_tag) JSONObject.toBean(JSONObject.fromObject(jsonString), tb_tag.class); // locationService.tag_time(tag); // } }