package com.hxzkoa.controller; import java.awt.geom.Point2D; import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import java.sql.Date; import java.sql.Time; import java.sql.Timestamp; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; 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.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; import com.hxzkoa.json.httpsos; import com.hxzkoa.json.tb_achor; import com.hxzkoa.json.tb_fence; import com.hxzkoa.json.tb_fence_inout; import com.hxzkoa.json.tb_gas; import com.hxzkoa.json.tb_gps; import com.hxzkoa.json.tb_map; import com.hxzkoa.json.tb_person; import com.hxzkoa.json.tb_qihou; import com.hxzkoa.json.tb_realkaoqing; import com.hxzkoa.json.tb_realocation; import com.hxzkoa.json.tb_realpositoin; import com.hxzkoa.json.tb_shipin; import com.hxzkoa.json.tb_system; import com.hxzkoa.json.tb_tag; import com.hxzkoa.json.tb_track; import com.hxzkoa.services.SysSettingService; import com.hxzkoa.services.ZhwService; import com.hxzkoa.services.AnchorService; import com.hxzkoa.services.AttendanceService; import com.hxzkoa.services.FenceService; import com.hxzkoa.udp.Dell_Ip; import com.hxzkoa.udp.GetNowTime; import com.hxzkoa.udp.ReadPeizhiMessage; import com.hxzkoa.udp.Read_Write_Anchor_Message; import com.hxzkoa.udp.Udp_Out; import com.hxzkoa.util.BytesToHex; 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 com.hxzkoa.util.ResourceUtils; import com.hxzkoa.util.RtspToMP4; import jxl.Sheet; import jxl.Workbook; import jxl.read.biff.BiffException; import net.sf.json.JSONObject; @Controller public class ZhwController { private Logger logger = LoggerFactory.getLogger(this.getClass()); public static String MSG_LOGIN_FAIL = ResourceUtils .getString("msg.login.fail"); @Autowired private ZhwService ZhwService; @Autowired private SysSettingService sysSettingService; @Autowired private AnchorService AnchorService; @Autowired private FenceService fenceService; @Autowired private AttendanceService attendanceService; httpsos sos = new httpsos(); Process process ; private Map map=new HashMap<>(); @ResponseBody @RequestMapping("/Shipinstart") public void Start(Integer id, String FileName) { String ffmpegPath="F:\\ffmpeg\\ffmpeg-4.4-essentials_build\\bin\\ffmpeg.exe"; String streamUrl="rtsp://admin:hxzk20151102@192.168.1.64:554/Streaming/Channels/101"; String FilePath="E:\\data\\MP4\\"+FileName; RtspToMP4 tomp4 = new RtspToMP4(); Process process = tomp4.StartRecord(ffmpegPath, streamUrl, FilePath); if(null!=process){ map.put(id,process); } } @RequestMapping("/Shipinstop") public void stop(Integer id) { if(map.containsKey(id)){ Process process = map.get(id); if(null!=process){ RtspToMP4 tomp4 = new RtspToMP4(); tomp4.stopRecord(process); } } } @RequestMapping(value = "/drawFence_init.do", method = { RequestMethod.POST, RequestMethod.GET }) public String drawFence_init(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String toPage = "forward:/hxzk/fence/drawFence.jsp"; List floorList = ZhwService.getFloor(); List fenceList = fenceService.getFenceList(); List fencenames = new ArrayList<>(); for (int i =0;i < fenceList.size(); i++) { fencenames.add(fenceList.get(i).getName()); } Map realAttendanceTypeMap = attendanceService.getRealAttendanceType(); List realAttendance_k = new ArrayList(); // List realAttendance_v = new ArrayList(); Iterator realAttendanceTypeIter = realAttendanceTypeMap.keySet().iterator(); while (realAttendanceTypeIter.hasNext()) { String key = realAttendanceTypeIter.next(); realAttendance_k.add(key); // realAttendance_v.add((int) realAttendanceTypeMap.get(key)); } request.setAttribute("guanlianList", realAttendance_k); request.setAttribute("fenceList", fencenames); request.setAttribute("floorList", floorList); return toPage; } @RequestMapping(value = "/drawFence.do", method = { RequestMethod.POST, RequestMethod.GET }) public String drawFence(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String floor_number = request.getParameter("value"); String toPage = "forward:/hxzk/fence/drawFence.jsp"; List mapList = ZhwService.getMap(floor_number); request.setAttribute("value", mapList); request.getRequestDispatcher(toPage).forward(request, response); return toPage; } @RequestMapping(value="/floornumTomap.do", method = { RequestMethod.POST, RequestMethod.GET }) @ResponseBody public List floorNumtoMap(HttpServletRequest request) { String floor_number = request.getParameter("value"); final List mapList = ZhwService.getMap(floor_number); return mapList; } @RequestMapping(value="/floornumTomap_all.do", method = { RequestMethod.POST, RequestMethod.GET }) @ResponseBody public List floornumTomap_all(HttpServletRequest request) { final List mapList = ZhwService.getMap_all(); return mapList; } @RequestMapping(value="/getFloorByMapname.do", method = { RequestMethod.POST, RequestMethod.GET }) @ResponseBody public List getFloorByMapname(HttpServletRequest request) { String mapname = request.getParameter("map"); final List mapList = ZhwService.getFloorByMapname(mapname); return mapList; } @RequestMapping(value="/getFloorFence.do", method = { RequestMethod.POST, RequestMethod.GET }) @ResponseBody public List getFloorFence(HttpServletRequest request) { String floor_number = request.getParameter("value"); final List fenceList = ZhwService.getFence(floor_number); return fenceList; } @RequestMapping(value="/getFloorFence_all.do", method = { RequestMethod.POST, RequestMethod.GET }) @ResponseBody public List getFloorFence_all(HttpServletRequest request) { final List fenceList = ZhwService.getFence_all(); return fenceList; } @RequestMapping(value="/getGas_list.do", method = { RequestMethod.POST, RequestMethod.GET }) @ResponseBody public List getGas_list(HttpServletRequest request) { final List fenceList = ZhwService.getGas(); return fenceList; } @RequestMapping(value = "/saveFence.do", method = { RequestMethod.POST, RequestMethod.GET }) @ResponseBody public int drawFence_add(HttpServletRequest request) { tb_fence fence = new tb_fence(); String layer = request.getParameter("layer"); if(!layer.equals("百度地图")) { Integer layerjj = Integer.parseInt(layer); layer = layerjj.toString(); } fence.setFloor(layer); fence.setType(request.getParameter("weilanleixing")); fence.setBumen(request.getParameter("guanlianduixiang")); fence.setName(request.getParameter("quyumingcheng")); String zuobiao =(String) request.getParameter("zuobiao"); fence.setZuobiao(zuobiao); fence.setShape(request.getParameter("xingzhuang")); String start = "00:00:00"; String end = "23:59:59"; fence.setStart(start); fence.setStop(end); fence.setColor(request.getParameter("yanse")); int aaa = ZhwService.drawFence_add(fence); String xieyi = "BSTOCS1,ADDFENCE,"+fence.getFloor()+","+fence.getType()+","+fence.getBumen()+","+fence.getName()+","+fence.getZuobiao()+","+fence.getShape()+","+fence.getStart()+","+fence.getStop()+","+GetNowTime.now()+","+fence.getColor()+",END"; Udp_Out.udp_to_cs(xieyi); String type = request.getParameter("weilanleixing"); String name = request.getParameter("quyumingcheng"); String floor = request.getParameter("layer"); String shape = request.getParameter("xingzhuang"); if(type.equals("巡检区域")) { ZhwService.xunjianSet_add(name); } else if (type.equals("定位区域")) { String[] zb_list = zuobiao.split(","); String zb_inout = ""; for (int i=0;i floorList = ZhwService.getFloor(); List fenceList = fenceService.getFenceList2(); request.setAttribute("fenceList", fenceList); request.setAttribute("floorList", floorList); return toPage; } @RequestMapping(value="/trackTagid2.do", method = { RequestMethod.POST, RequestMethod.GET }) @ResponseBody public List queryTagid2(HttpServletRequest request) throws ParseException { String tag_id = request.getParameter("tag_value"); String begin_time = request.getParameter("begin_value"); String end_time = request.getParameter("end_value"); String floor = request.getParameter("floor_value"); final List tagList = ZhwService.getTagtrack(tag_id, begin_time, end_time, floor); return tagList; } @RequestMapping(value="/trackTagid.do", method = { RequestMethod.POST, RequestMethod.GET }) @ResponseBody public List queryTagid(HttpServletRequest request) throws ParseException { String tag_id = request.getParameter("tag_value"); String begin_time = request.getParameter("begin_value"); String end_time = request.getParameter("end_value"); String floor = request.getParameter("floor_value"); String fence = request.getParameter("fence"); if (fence.equals("空")) { final List tagList = ZhwService.getTagtrack(tag_id, begin_time, end_time, floor); return tagList; } else { final List tagList = ZhwService.getTagtrack(tag_id, begin_time, end_time, floor); final List tagList2 = new ArrayList<>(); for (int i=0;i fencedian = new ArrayList<>(); for (int j=0;j tagList = ZhwService.getTagtrack(tag_id, begin_time, end_time, floor); json.put("dataList", tagList); return json; } else { final List tagList = ZhwService.getTagtrack(tag_id, begin_time, end_time, floor); final List tagList2 = new ArrayList<>(); for (int i=0;i fencedian = new ArrayList<>(); for (int j=0;j getRealPosition(HttpServletRequest request) { String floor = request.getParameter("floor"); //根据时间筛选出数据 List realLocationList = ZhwService.getpersonLocation(floor); List finalPositionList = new ArrayList(); //根据每个tagid取tb_tag:[tag_id,state(静止1or运动0),power,status(在线1or离线0),addtime],放入tb_position中 for (tb_person node : realLocationList) { String tagid = node.getP_tagid(); tb_realpositoin position = new tb_realpositoin(); position.setTagid(tagid); position.setPower(node.getP_power()); position.setLife(node.getP_online()); position.setName(node.getP_name()); position.setPosx(node.getP_x()); position.setPosy(node.getP_y()); position.setSos(node.getP_sos()); position.setTime(node.getP_addtiem()); position.setFence(node.getP_fence()); position.setSousuo(node.getP_sousuo()); position.setShipin(node.getP_shipin()); finalPositionList.add(position); } return finalPositionList; } @RequestMapping(value="/getRealPosition_all.do", method = { RequestMethod.POST, RequestMethod.GET }) @ResponseBody public List getRealPosition_all(HttpServletRequest request) { //根据时间筛选出数据 List realLocationList = ZhwService.getpersonLocation_all(); List finalPositionList = new ArrayList(); //根据每个tagid取tb_tag:[tag_id,state(静止1or运动0),power,status(在线1or离线0),addtime],放入tb_position中 for (tb_person node : realLocationList) { String tagid = node.getP_tagid(); tb_realpositoin position = new tb_realpositoin(); position.setTagid(tagid); position.setPower(node.getP_power()); position.setLife(node.getP_online()); position.setFloor(node.getP_floor()); position.setName(node.getP_name()); position.setPosx(node.getP_x()); position.setPosy(node.getP_y()); position.setSos(node.getP_sos()); position.setTime(node.getP_addtiem()); position.setFence(node.getP_fence()); position.setChaichu(node.getBaoliu6()); finalPositionList.add(position); } return finalPositionList; } @ResponseBody @RequestMapping(value="/getpersonid.do",method = { RequestMethod.POST, RequestMethod.GET }) public JSONObject getpersonid(HttpServletRequest request) { String tagid = request.getParameter("tagid"); List realTrackList = ZhwService.getpersonid(tagid); JSONObject json = new JSONObject(); json.put("X", realTrackList.get(0).getP_x()); json.put("Y", realTrackList.get(0).getP_y()); return json; } @ResponseBody @RequestMapping(value="/getgpsid.do",method = { RequestMethod.POST, RequestMethod.GET }) public JSONObject getgpsid(HttpServletRequest request) { String tagid = request.getParameter("tagid"); List realTrackList = ZhwService.getgpsid(tagid); JSONObject json = new JSONObject(); json.put("jingdu", realTrackList.get(0).getGsp_jingdu()); json.put("weidu", realTrackList.get(0).getGps_weidu()); json.put("haibagao", realTrackList.get(0).getGps_haiba_gao()); return json; } @RequestMapping(value="/getRealTrack.do", method = { RequestMethod.POST, RequestMethod.GET }) @ResponseBody public List> getRealTrack(HttpServletRequest request) { String tagid = request.getParameter("tagid"); String[] taglist = tagid.split(","); String floor = request.getParameter("floor"); Long time_range = Long.parseLong(request.getParameter("time")) * 1000;// ms*1000=s long timeNow = System.currentTimeMillis(); long timeStart = timeNow - time_range; // long timeStart = 0; Timestamp ts=new Timestamp(timeStart); String start_str=ts.toString(); // start time string //start_str="2021-03-01 10:26:00"; List realTrackList = ZhwService.getRealPosTrack(taglist, start_str, floor); //get all tag in a list List tagList = new ArrayList(); for (tb_track node : realTrackList) { if (tagList.contains(node.getTagid())) { continue; } else { tagList.add(node.getTagid()); } } // sort all track data by tagid List> tmpRealTrackList = new ArrayList>(); List> finalRealTrackList = new ArrayList>(); for (String tag : tagList) { tmpRealTrackList.add(new ArrayList()); } for (tb_track node : realTrackList) { int index = tagList.indexOf(node.getTagid()); tmpRealTrackList.get(index).add(node); } return tmpRealTrackList; } @RequestMapping(value="/getRealTrack_all.do", method = { RequestMethod.POST, RequestMethod.GET }) @ResponseBody public List getRealTrack_all(HttpServletRequest request) { String tagid = request.getParameter("tagid"); String[] taglist = tagid.split(","); Long time_range = Long.parseLong(request.getParameter("time")) * 1000;// ms*1000=s long timeNow = System.currentTimeMillis(); long timeStart = timeNow - time_range; // long timeStart = 0; Timestamp ts=new Timestamp(timeStart); String start_str=ts.toString(); // start time string // String start_str="2021-03-01 10:26:00"; List realTrackList = ZhwService.getRealPosTrack_all(taglist, start_str); // List finalRealTrackList = new ArrayList(); return realTrackList; // if (realTrackList.size()<=100) { // return realTrackList; // } else { // int lenth = realTrackList.size(); // int interval = (int) Math.floor(lenth/100); // for (int i=0;i anchorList = ZhwService.getAnchor(); request.setAttribute("anchorList", anchorList); return toPage; } @RequestMapping(value="/getAnchorip.do", method = { RequestMethod.POST, RequestMethod.GET }) @ResponseBody public List getAnchorip(HttpServletRequest request) { String anchorid = request.getParameter("anchorid"); final List anchoripList = ZhwService.getAnchorip(anchorid); return anchoripList; } @RequestMapping(value="/getSysSetting_list.do", method = { RequestMethod.POST, RequestMethod.GET }) @ResponseBody public List getSysSetting_list(HttpServletRequest request) { List settingList = sysSettingService.getSetting(); return settingList; } @RequestMapping(value="/getAnchorInfo.do", method = { RequestMethod.POST, RequestMethod.GET }) @ResponseBody public List getAnchorInfo(HttpServletRequest request) { String floor = request.getParameter("floor"); final List anchoripList = ZhwService.getAnchorInfo(floor); return anchoripList; } @RequestMapping(value="/getAnchorInfo_all.do", method = { RequestMethod.POST, RequestMethod.GET }) @ResponseBody public List getAnchorInfo_all(HttpServletRequest request) { final List anchoripList = ZhwService.getAnchorInfo_all(); return anchoripList; } @RequestMapping(value="/getGPS.do", method = { RequestMethod.POST, RequestMethod.GET }) @ResponseBody public List getGPS(HttpServletRequest request) { final List gpsList = ZhwService.getGPS(); List finalGPSList = new ArrayList(); for ( tb_gps node : gpsList) { if (node.getGsp_jingdu() != null && !node.getGsp_jingdu().equals("00000.000000") && node.getGps_weidu() != null && !node.getGps_weidu().equals("00000.000000")) { String[] jingdu = node.getGsp_jingdu().split("\\."); String[] weidu = node.getGps_weidu().split("\\."); if (jingdu[0].length() == 3 && weidu[0].length() == 2) { finalGPSList.add(node); } } }; return finalGPSList; } @RequestMapping(value="/getGPSa.do", method = { RequestMethod.POST, RequestMethod.GET }) @ResponseBody public JSONObject getGPSa(HttpServletRequest request) { JSONObject json = new JSONObject(); final List gpsList = ZhwService.getGPS(); List finalGPSList = new ArrayList(); for ( tb_gps node : gpsList) { if (node.getGsp_jingdu() != null && !node.getGsp_jingdu().equals("00000.000000") && node.getGps_weidu() != null && !node.getGps_weidu().equals("00000.000000")) { String[] jingdu = node.getGsp_jingdu().split("\\."); String[] weidu = node.getGps_weidu().split("\\."); if (jingdu[0].length() == 3 && weidu[0].length() == 2) { finalGPSList.add(node); } } }; json.put("dataList", finalGPSList); return json; } @RequestMapping(value="/getGPSTrack.do", method = { RequestMethod.POST, RequestMethod.GET }) @ResponseBody public List getGPSTrack(HttpServletRequest request) throws ParseException { String tag_id = request.getParameter("tag_value"); String begin_time = request.getParameter("begin_value"); String end_time = request.getParameter("end_value"); final List finalGPSList = ZhwService.getGPStrack(tag_id, begin_time, end_time); return finalGPSList; } @RequestMapping(value="/getGPSTracka.do", method = { RequestMethod.POST, RequestMethod.GET }) @ResponseBody public JSONObject getGPSTracka(HttpServletRequest request) throws ParseException { String tag_id = request.getParameter("tag_value"); String begin_time = request.getParameter("begin_value"); String end_time = request.getParameter("end_value"); final List finalGPSList = ZhwService.getGPStrack(tag_id, begin_time, end_time); JSONObject json = new JSONObject(); json.put("dataList", finalGPSList); return json; } @RequestMapping(value="/qiehuanditu_option.do", method = { RequestMethod.POST, RequestMethod.GET }) @ResponseBody public List qiehuanditu_option(HttpServletRequest request) { List mapList = ZhwService.getFloor(); return mapList; } @RequestMapping(value = "/qiehuanditu_save.do", method = { RequestMethod.POST, RequestMethod.GET }) public String qiehuanditu_save(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //String toPage = "forward:/show.do"; String map_now = request.getParameter("map_now"); String filePath = Config.getMapConfig(); ModifyConfig.writeData(filePath,"map_now",map_now); //System.out.print(ModifyConfig.readData(filePath, "map_now")); return "1"; } @RequestMapping(value="/qiehuanditu_get.do", method = { RequestMethod.POST, RequestMethod.GET }) @ResponseBody public List qiehuanditu_get(HttpServletRequest request) { // String filePath = Config.getMapConfig(); // String map = ModifyConfig.readData(filePath, "map_now"); // List maplist = new ArrayList(); // maplist.add(map); // //System.out.print("read data"); // //System.out.print(map); List systemlist = sysSettingService.getSetting(); List maplist = new ArrayList(); String map = systemlist.get(0).getYulan_map(); maplist.add(map); return maplist; } @RequestMapping(value = "/getAnchor_read_config.do", method = { RequestMethod.POST, RequestMethod.GET }) public void getAnchor_read_config(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { byte[] byt=Read_Write_Anchor_Message.ReadData((byte)0x2,(byte)0x50); System.out.println("读取配置信息:"+BytesToHex.bytesToHex(byt)); String ip = request.getParameter("ip"); List settingList = sysSettingService.getSetting(); Udp_Out.out(byt, byt.length, ip, settingList.get(0).getUdpPort().toString(), settingList.get(0).getWifi_mdel().toString()); //( , , ,udp_port, wifi_mode) } @RequestMapping(value = "/modify_anchor_version.do", method = { RequestMethod.POST, RequestMethod.GET }) public void modify_anchor_version(HttpServletRequest request) throws IOException { String jsonString = RequestUtils.getRequestJsonString(request, Config.getCharset()); tb_achor anchor = (tb_achor) JSONObject.toBean(JSONObject.fromObject(jsonString), tb_achor.class); AnchorService.anchorManagement_modify_ip_ver(anchor); } @RequestMapping(value="/read_anchor_config_done.do", method = { RequestMethod.POST, RequestMethod.GET }) @ResponseBody public List read_anchor_config_done(HttpServletRequest request) { String filePath = Config.getAnchorConfig(); List peizhilist = new ArrayList(); String peizhi = ModifyConfig.readData(filePath, "readpeizhi"); peizhilist.add(peizhi); String shebeimoshi = ModifyConfig.readData(filePath, "shebeimoshi"); peizhilist.add(shebeimoshi); String zhudongceju = ModifyConfig.readData(filePath, "zhudongceju"); peizhilist.add(zhudongceju); String kaiqixintiao = ModifyConfig.readData(filePath, "kaiqixintiao"); peizhilist.add(kaiqixintiao); String jizhanid = ModifyConfig.readData(filePath, "jizhanid"); peizhilist.add(jizhanid); String fashegonglv = ModifyConfig.readData(filePath, "fashegonglv"); peizhilist.add(fashegonglv); String wuchajiaozhun = ModifyConfig.readData(filePath, "wuchajiaozhun"); peizhilist.add(wuchajiaozhun); String lvbocanshu = ModifyConfig.readData(filePath, "lvbocanshu"); peizhilist.add(lvbocanshu); String tongxunxiaozu = ModifyConfig.readData(filePath, "tongxunxiaozu"); peizhilist.add(tongxunxiaozu); String tongxunpinlv = ModifyConfig.readData(filePath, "tongxunpinlv"); peizhilist.add(tongxunpinlv); String tongxunshangxian = ModifyConfig.readData(filePath, "tongxunshangxian"); peizhilist.add(tongxunshangxian); String gujianbanben = ModifyConfig.readData(filePath, "gujianbanben"); peizhilist.add(gujianbanben); String tongbujizhan = ModifyConfig.readData(filePath, "tongbujizhan"); peizhilist.add(tongbujizhan); String tongbuleixing = ModifyConfig.readData(filePath, "tongbuleixing"); peizhilist.add(tongbuleixing); String linjinjizhanshuliang = ModifyConfig.readData(filePath, "linjinjizhanshuliang"); peizhilist.add(linjinjizhanshuliang); String linjinjizhan1 = ModifyConfig.readData(filePath, "linjinjizhan1"); peizhilist.add(linjinjizhan1); String linjinjizhan2 = ModifyConfig.readData(filePath, "linjinjizhan2"); peizhilist.add(linjinjizhan2); String linjinjizhan3 = ModifyConfig.readData(filePath, "linjinjizhan3"); peizhilist.add(linjinjizhan3); String linjinjizhan4 = ModifyConfig.readData(filePath, "linjinjizhan4"); peizhilist.add(linjinjizhan4); String linjinjizhan5 = ModifyConfig.readData(filePath, "linjinjizhan5"); peizhilist.add(linjinjizhan5); String linjinjizhan6 = ModifyConfig.readData(filePath, "linjinjizhan6"); peizhilist.add(linjinjizhan6); String linjinjizhan7 = ModifyConfig.readData(filePath, "linjinjizhan7"); peizhilist.add(linjinjizhan7); String linjinjizhan8 = ModifyConfig.readData(filePath, "linjinjizhan8"); peizhilist.add(linjinjizhan8); String qiehuanjuli = ModifyConfig.readData(filePath, "qiehuanjuli"); peizhilist.add(qiehuanjuli); return peizhilist; } @RequestMapping(value="/modify_anchor_config_done.do", method = { RequestMethod.POST, RequestMethod.GET }) @ResponseBody public List modify_anchor_config_done(HttpServletRequest request) { String ip=request.getParameter("ip"); String filePath = Config.getAnchorConfig(); List peizhilist = new ArrayList(); String peizhi = ModifyConfig.readData(filePath, "readpeizhi"); if (peizhi.equals("done")) { ModifyConfig.writeData(filePath, "shebeimoshi", request.getParameter("shebeimoshi")); ModifyConfig.writeData(filePath, "zhudongceju", request.getParameter("zhudongceju")); ModifyConfig.writeData(filePath, "kaiqixintiao", request.getParameter("kaiqixintiao")); ModifyConfig.writeData(filePath, "jizhanid", request.getParameter("jizhanid")); ModifyConfig.writeData(filePath, "fashegonglv", request.getParameter("fashegonglv")); ModifyConfig.writeData(filePath, "wuchajiaozhun", request.getParameter("wuchajiaozhun")); ModifyConfig.writeData(filePath, "lvbocanshu", request.getParameter("lvbocanshu")); ModifyConfig.writeData(filePath, "tongxunxiaozu", request.getParameter("tongxunxiaozu")); ModifyConfig.writeData(filePath, "tongxunpinlv", request.getParameter("tongxunpinlv")); ModifyConfig.writeData(filePath, "tongxunshangxian", request.getParameter("tongxunshangxian")); ModifyConfig.writeData(filePath, "gujianbanben", request.getParameter("gujianbanben")); ModifyConfig.writeData(filePath, "tongbujizhan", request.getParameter("tongbujizhan")); ModifyConfig.writeData(filePath, "tongbuleixing", request.getParameter("tongbuleixing")); ModifyConfig.writeData(filePath, "linjinjizhanshuliang", request.getParameter("linjinjizhanshuliang")); ModifyConfig.writeData(filePath, "linjinjizhan1", request.getParameter("linjinjizhan1")); ModifyConfig.writeData(filePath, "linjinjizhan2", request.getParameter("linjinjizhan2")); ModifyConfig.writeData(filePath, "linjinjizhan3", request.getParameter("linjinjizhan3")); ModifyConfig.writeData(filePath, "linjinjizhan4", request.getParameter("linjinjizhan4")); ModifyConfig.writeData(filePath, "linjinjizhan5", request.getParameter("linjinjizhan5")); ModifyConfig.writeData(filePath, "linjinjizhan6", request.getParameter("linjinjizhan6")); ModifyConfig.writeData(filePath, "linjinjizhan7", request.getParameter("linjinjizhan7")); ModifyConfig.writeData(filePath, "linjinjizhan8", request.getParameter("linjinjizhan8")); ModifyConfig.writeData(filePath, "qiehuanjuli", request.getParameter("qiehuanjuli")); byte[] byt = ReadPeizhiMessage.save(request.getParameter("jizhanid"), request.getParameter("fashegonglv"), request.getParameter("wuchajiaozhun"), request.getParameter("lvbocanshu"), request.getParameter("tongxunxiaozu"), request.getParameter("tongxunpinlv"), request.getParameter("tongxunshangxian"), request.getParameter("shebeimoshi"), request.getParameter("linjinjizhanshuliang"), request.getParameter("linjinjizhan1"), request.getParameter("linjinjizhan2"), request.getParameter("linjinjizhan3"), request.getParameter("linjinjizhan4"), request.getParameter("linjinjizhan5"), request.getParameter("linjinjizhan6"), request.getParameter("linjinjizhan7"), request.getParameter("linjinjizhan8"), "", request.getParameter("qiehuanjuli"), request.getParameter("zhudongceju"), request.getParameter("kaiqixintiao"), request.getParameter("tongbujizhan"), request.getParameter("tongbuleixing")); List settingList = sysSettingService.getSetting(); System.out.println("保存配置信息是:"+BytesToHex.bytesToHex(byt)); Udp_Out.out(byt,byt.length,ip, settingList.get(0).getUdpPort().toString(), settingList.get(0).getWifi_mdel().toString() ); } List modi = new ArrayList(); modi.add("1"); return modi; } @RequestMapping(value="/modify_all_anchor_config.do", method = { RequestMethod.POST, RequestMethod.GET }) @ResponseBody public List modify_all_anchor_config(HttpServletRequest request) { String filePath = Config.getAnchorConfig(); ModifyConfig.writeData(filePath, "fashegonglv", request.getParameter("fashegonglv")); ModifyConfig.writeData(filePath, "wuchajiaozhun", request.getParameter("wuchajiaozhun")); ModifyConfig.writeData(filePath, "lvbocanshu", request.getParameter("lvbocanshu")); ModifyConfig.writeData(filePath, "tongxunxiaozu", request.getParameter("tongxunxiaozu")); ModifyConfig.writeData(filePath, "tongxunpinlv", request.getParameter("tongxunpinlv")); ModifyConfig.writeData(filePath, "tongxunshangxian", request.getParameter("tongxunshangxian")); ModifyConfig.writeData(filePath, "tongbujizhan", request.getParameter("tongbujizhan")); ModifyConfig.writeData(filePath, "tongbuleixing", request.getParameter("tongbuleixing")); byte[] byt = ReadPeizhiMessage.alert_all_anchor(request.getParameter("fashegonglv"), request.getParameter("wuchajiaozhun"), request.getParameter("lvbocanshu"), request.getParameter("tongxunxiaozu"), request.getParameter("tongxunpinlv"), request.getParameter("tongxunshangxian"), request.getParameter("tongbujizhan"), request.getParameter("tongbuleixing")); List settingList = sysSettingService.getSetting(); String port = settingList.get(0).getUdpPort().toString(); String wifi_mode = settingList.get(0).getWifi_mdel().toString(); System.out.println("修改所有基站信息是:"+BytesToHex.bytesToHex(byt)); List anchorIpList = ZhwService.getALlAnchor(); if (anchorIpList.size()!=0) { for(int i=0; i modi = new ArrayList(); modi.add("1"); return modi; } @RequestMapping(value="/restart_anchor.do", method = { RequestMethod.POST, RequestMethod.GET }) @ResponseBody public List restart_anchor(HttpServletRequest request) { byte[] byt=Read_Write_Anchor_Message.WriteData((byte)0x60,(byte)0x2,1); System.out.println("重启基站信息是:"+BytesToHex.bytesToHex(byt)); String ip=request.getParameter("ip"); List settingList = sysSettingService.getSetting(); Udp_Out.out(byt,byt.length,ip,settingList.get(0).getUdpPort().toString(), settingList.get(0).getWifi_mdel().toString()); List rslt = new ArrayList(); rslt.add("1"); return rslt; } @RequestMapping(value="/reset_anchor.do", method = { RequestMethod.POST, RequestMethod.GET }) @ResponseBody public List reset_anchor(HttpServletRequest request) { byte[] byt=Read_Write_Anchor_Message.WriteData((byte)0x62,(byte)0x2,1); System.out.println("恢复出厂设置信息是:"+BytesToHex.bytesToHex(byt)); String ip=request.getParameter("ip"); List settingList = sysSettingService.getSetting(); Udp_Out.out(byt,byt.length,ip,settingList.get(0).getUdpPort().toString(), settingList.get(0).getWifi_mdel().toString()); List rslt = new ArrayList(); rslt.add("1"); return rslt; } @RequestMapping(value="/anchorCeju.do", method = { RequestMethod.POST, RequestMethod.GET }) @ResponseBody public List anchorCeju(HttpServletRequest request) { String begin=request.getParameter("begin"); System.out.println("begin"+begin); List settingList = sysSettingService.getSetting(); if (begin.equals("true")) { //点击了开始测距 String ip_a = request.getParameter("beice"); String beice_anchor = request.getParameter("beice_anchor"); String filePath = Config.getAnchorConfig(); ModifyConfig.writeData(filePath, "beice_anchor", beice_anchor); byte[] byt=Read_Write_Anchor_Message.WriteData((byte)0x10,(byte)0x2,1); System.out.println("基站开始测距:"+BytesToHex.bytesToHex(byt)); Udp_Out.out(byt,byt.length,ip_a, settingList.get(0).getUdpPort().toString(), settingList.get(0).getWifi_mdel().toString()); } else if (begin.equals("false")) { //点击了取消测距 String ip_a = request.getParameter("beice"); String ip_b = request.getParameter("ceju"); byte[] byt=Read_Write_Anchor_Message.WriteData((byte)0x10,(byte)0x2,0); System.out.println("基站取消测距:"+BytesToHex.bytesToHex(byt)); Udp_Out.out(byt,byt.length,ip_a,settingList.get(0).getUdpPort().toString(), settingList.get(0).getWifi_mdel().toString()); byte[] byt2=Read_Write_Anchor_Message.WriteData((byte)0x10,(byte)0x2,0); System.out.println("基站取消测距:"+BytesToHex.bytesToHex(byt2)); Udp_Out.out(byt2,byt2.length,ip_b, settingList.get(0).getUdpPort().toString(), settingList.get(0).getWifi_mdel().toString()); } List rslt = new ArrayList(); rslt.add("1"); return rslt; } @RequestMapping(value="/getAnchorhuce.do", method = { RequestMethod.POST, RequestMethod.GET }) @ResponseBody public List getAnchorhuce(HttpServletRequest request) { String filePath = Config.getAnchorConfig(); String huceju = ModifyConfig.readData(filePath, "huceju"); System.out.println("huceju"+huceju); List rslt = new ArrayList(); rslt.add(huceju); return rslt; } @RequestMapping(value = "/gpsRecord_add.do", method = { RequestMethod.POST, RequestMethod.GET }) public void gpsRecord_add(HttpServletRequest request) throws IOException { String jsonString = RequestUtils.getRequestJsonString(request, Config.getCharset()); logger.info("传入数据IData:" + jsonString); tb_gps gps = (tb_gps) JSONObject.toBean(JSONObject.fromObject(jsonString), tb_gps.class); List searchGpsList = ZhwService.searchGps(gps.getTagid()); if (searchGpsList.size()>0){ ZhwService.gpsRecord_modify(gps); } else { ZhwService.gpsRecord_add(gps); } } @RequestMapping(value = "/gpsTrack_add.do", method = { RequestMethod.POST, RequestMethod.GET }) public void gpsTrack_add(HttpServletRequest request) throws IOException { String jsonString = RequestUtils.getRequestJsonString(request, Config.getCharset()); logger.info("传入数据IData:" + jsonString); tb_gps gps = (tb_gps) JSONObject.toBean(JSONObject.fromObject(jsonString), tb_gps.class); ZhwService.gpsTrack_add(gps); } @RequestMapping(value = "/httpsos.do", method = { RequestMethod.POST, RequestMethod.GET }) public void http(HttpServletRequest request) throws IOException { String jsonString = RequestUtils.getRequestJsonString(request, Config.getCharset()); JSONObject str = JSONObject.fromObject(jsonString); sos = (httpsos)JSONObject.toBean(str, httpsos.class); } @RequestMapping(value = "/sosgaojing.do", method = { RequestMethod.POST, RequestMethod.GET }) public void sosgaojing(HttpServletRequest request) throws IOException { String tagid=request.getParameter("tagid"); ZhwService.sosgao(tagid); String xieyi = "BSTOCS1,DELLWARN," +tagid+ ",SOS,END"; Udp_Out.udp_to_cs(xieyi); } @RequestMapping(value = "/fencegaojing.do", method = { RequestMethod.POST, RequestMethod.GET }) public void fencegaojing(HttpServletRequest request) throws IOException { String tagid=request.getParameter("tagid"); String type=request.getParameter("type"); ZhwService.fencegao(tagid); String xieyi = "BSTOCS1,DELLWARN," +tagid+ ","+type+",END"; Udp_Out.udp_to_cs(xieyi); } @RequestMapping(value = "/chaichugaojing.do", method = { RequestMethod.POST, RequestMethod.GET }) public void chaichugaojing(HttpServletRequest request) throws IOException { String tagid=request.getParameter("tagid"); ZhwService.chaichugao(tagid); String xieyi = "BSTOCS1,DELLWARN," +tagid+ ",被拆除,END"; Udp_Out.udp_to_cs(xieyi); } @RequestMapping(value = "/gaojingzongchuli.do", method = { RequestMethod.POST, RequestMethod.GET }) public void gaojingzongchuli(HttpServletRequest request) throws IOException { List soslist = ZhwService.getsosgaojing(); for (int i=0; i fencelist = ZhwService.getfencegaojing(); for (int i=0; i chufencelist = ZhwService.getchufencegaojing(); for (int i=0; i shipinzhuangtai(HttpServletRequest request){ String tagid=request.getParameter("tagid"); ZhwService.shipin(tagid); List fencename = ZhwService.getfencename(tagid); // //System.out.print(fencename.get(0).getP_fencename()); List id = ZhwService.getshebeiid(fencename.get(0).getP_fencename()); // //System.out.print(id.get(0).getShebeiid()); List bb =null; return id; } @RequestMapping(value = "/sousuo.do", method = { RequestMethod.POST, RequestMethod.GET }) public void sousuo(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String tagid = request.getParameter("tagid"); String[] tagids = tagid.split(","); String xieyi = "BSTOCS1,sousuo,"+tagids[0]+",END"; Udp_Out.udp_to_cs(xieyi); } @RequestMapping(value = "/sousuoquxiao.do", method = { RequestMethod.POST, RequestMethod.GET }) public void sousuoquxiao(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String xieyi = "BSTOCS1,give_up_sousuo,END"; Udp_Out.udp_to_cs(xieyi); } @RequestMapping(value = "/qihouManagement.do", method = { RequestMethod.POST, RequestMethod.GET }) public String qihouManagement(HttpServletRequest request) { String toPage = "forward:/hxzk/qihou.jsp"; List qihouManagementList = ZhwService.qihoucha(1); request.setAttribute("qihouManagementList", qihouManagementList); int curPage = 1; int count = ZhwService.getqihouManagementCount(); int minPage = PageUtil.getMinPage(count); request.setAttribute("pageList", PageUtil.getPage(minPage)); request.setAttribute("curPage", curPage); return toPage; } @RequestMapping(value = "/qihouManagement_add.do", method = { RequestMethod.POST, RequestMethod.GET }) public void qihouManagement_add(HttpServletRequest request) throws IOException { tb_qihou qihou = new tb_qihou(); qihou.setPlace(request.getParameter("place")); qihou.setWeather(request.getParameter("weather")); qihou.setWd(request.getParameter("wd")); qihou.setSd(request.getParameter("sd")); ZhwService.qihouzeng(qihou); } @RequestMapping(value = "/qihouManagement_modify.do", method = { RequestMethod.POST, RequestMethod.GET }) public void qihouManagement_modify(HttpServletRequest request) { tb_qihou qihou = new tb_qihou(); String id = request.getParameter("id"); qihou.setId(Integer.parseInt(id)); qihou.setPlace(request.getParameter("place")); qihou.setWeather(request.getParameter("weather")); qihou.setWd(request.getParameter("wd")); qihou.setSd(request.getParameter("sd")); ZhwService.qihougai(qihou); } // @RequestMapping(value = "/labelManagement_modifyAll.do", method = { RequestMethod.POST, RequestMethod.GET }) // public void labelManagement_modifyAll(HttpServletRequest request) { // tb_tag tag = new tb_tag(); // tag.setGaodu(request.getParameter("gaodu")); // tag.setSudu(request.getParameter("sudu")); // tag.setPinglv(request.getParameter("pinglv")); // labelService.labelManagement_modifyAll(tag); // String xieyi = "BSTOCS1,ALTERALLTAG,"+tag.getGaodu()+","+tag.getSudu()+","+tag.getPinglv()+",END"; // Udp_Out.udp_to_cs(xieyi); // // 需要遍历修改 // List labelList = labelService.getLabelManagement(); // for (int i = 0; i < labelList.size(); i++) { // String tag_id = labelList.get(i).getTag_id(); // // 修改标签同时需要修改tb_person 需要先查再改否则覆盖空 // List searchPersonManagement = basicInfoService.searchPersonManagement(tag_id); // if(searchPersonManagement!=null){ // tb_person person = searchPersonManagement.get(0); // person.setP_tagid(tag.getTag_id()); // person.setP_name(tag.getState()); // person.setP_power(tag.getPower()); // basicInfoService.personManagement_modify(person); // } // } // } @ResponseBody @RequestMapping(value = "/qihouManagement_delete.do", method = { RequestMethod.POST, RequestMethod.GET }) public void qihouManagement_delete(HttpServletRequest request) { String checkValStr = request.getParameter("checkVal"); checkValStr = checkValStr.replaceAll("\"", ""); String[] checkVal = checkValStr.split(","); ZhwService.qihoudelete(checkVal); } @ResponseBody @RequestMapping(value = "/qihouManagement_deleteAll.do", method = { RequestMethod.POST, RequestMethod.GET }) public void qihouManagement_deleteAll(HttpServletRequest request) { ZhwService.qihoudeleteAll(); } @ResponseBody @RequestMapping(value = "/qihouManagement_export.do", method = { RequestMethod.POST, RequestMethod.GET }) public String qihouManagement_export(HttpServletRequest request, HttpServletResponse response) { String toPage = "forward:/hxzk/qihou.jsp"; List tb_qihouList = ZhwService.qihoucha(); String[] rowName = { "ID", "时间", "地点", "天气", "温度", "湿度" }; List dataList = objectToArray_qihouManagement(tb_qihouList); 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; } @ResponseBody @RequestMapping(value = "/qihouManagement_exportTemplate.do", method = { RequestMethod.POST, RequestMethod.GET }) public String qihouManagement_exportTemplate(HttpServletRequest request, HttpServletResponse response) { String toPage = "forward:/hxzk/qihou.jsp"; List qihouTemplateList = ZhwService.qihoucha(1); String[] rowName = { "时间", "地点", "天气", "温度", "湿度"}; List dataList = objectToArray_qihouManagement2(qihouTemplateList); 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; } @ResponseBody @RequestMapping(value = "/qihouManagement_page.do", method = { RequestMethod.POST, RequestMethod.GET }) public String qihouManagement_page(HttpServletRequest request) { String pageStr = request.getParameter("page"); String curPageStr = request.getParameter("curPage"); int count = ZhwService.getqihouManagementCount(); 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 qihouManagementList = ZhwService.qihoucha(page); List pageList = PageUtil.getPage(PageUtil.getLocPage(page, curPage), page, minPage); JSONObject json = new JSONObject(); json.put("dataList", qihouManagementList); json.put("pageList", pageList); json.put("curPage", page); return json.toString(); } @RequestMapping(value = "/uploadqihou.do") public String uploadqihou(@RequestParam("file") MultipartFile[] files, HttpServletRequest request) { String toPage = "forward:/hxzk/qihou.jsp"; String filePath = request.getServletContext().getRealPath("/") + "hxzk\\upload\\"; String filename = files[0].getOriginalFilename(); try { File existFile = new File(filePath); if (!existFile.exists()) { existFile.mkdir(); } for (MultipartFile file : files) { file.transferTo(new File(filePath + file.getOriginalFilename())); //System.out.print(file.getOriginalFilename()); } } catch (IOException e) { e.printStackTrace(); } int result = 0; String path = filePath + filename; // 选取Excel文件得到工作薄 Workbook workbook; try { File file = new File(path); workbook = Workbook.getWorkbook(file); // 选择工作表,通过Workbook的getSheet方法选择第一个工作表(从0开始) Sheet sheet = workbook.getSheet(0); int rows = sheet.getRows(); // 选择Cell,读取单元格 通过Sheet的getCell方法选择位置为C2的单元格(两个参数都从0开始) for (int i = 3; i < rows; i++) { // 读取信息,通过Cell的getContents方法读取单元格的值把单元格中的信息以字符的形式读取出来 // String status = sheet.getCell(0, i).getContents(); String time = sheet.getCell(0, i).getContents(); String place = sheet.getCell(1, i).getContents(); String weather = sheet.getCell(2, i).getContents(); String wd = sheet.getCell(3, i).getContents(); String sd = sheet.getCell(4, i).getContents(); tb_qihou qihou = new tb_qihou(); // tag.setStatus(status); qihou.setTime(time); qihou.setPlace(place); qihou.setWeather(weather); qihou.setWd(wd); qihou.setSd(sd); result = ZhwService.qihouzeng(qihou); } // 释放资源 workbook.close(); } catch (BiffException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } request.setAttribute("resultList", result); List qihouManagementList = ZhwService.qihoucha(1); request.setAttribute("qihouManagementList", qihouManagementList); int curPage = 1; int count = ZhwService.getqihouManagementCount(); int minPage = PageUtil.getMinPage(count); request.setAttribute("pageList", PageUtil.getPage(minPage)); request.setAttribute("curPage", curPage); File file = new File(path); file.delete(); return toPage; } @RequestMapping(value="/getRealPositionsan.do", method = { RequestMethod.POST, RequestMethod.GET }) @ResponseBody public List getRealPositionsan(HttpServletRequest request) { long timeStart = 0; //根据时间筛选出数据 List realLocationList = ZhwService.getpersonLocationsan(); for ( tb_person node : realLocationList) { Double x = Double.valueOf(node.getP_x()); Double y = Double.valueOf(node.getP_y()); Double xo = (x-54732)/100; Double yo = -(y+10268)/100; List xy = ZhwController.cal2(xo, yo); node.setP_x((xy.get(0)).toString()); node.setP_y((xy.get(1)).toString()); } List finalPositionList = new ArrayList(); //根据每个tagid取tb_tag:[tag_id,state(静止1or运动0),power,status(在线1or离线0),addtime],放入tb_position中 for (tb_person node : realLocationList) { String tagid = node.getP_tagid(); tb_realpositoin position = new tb_realpositoin(); position.setTagid(tagid); position.setPower(node.getP_power()); position.setLife(node.getP_online()); position.setName(node.getP_name()); position.setPosx(node.getP_x()); position.setPosy(node.getP_y()); position.setSos(node.getP_sos()); position.setTime(node.getP_addtiem()); position.setFence(node.getP_fence()); position.setSousuo(node.getP_sousuo()); position.setShipin(node.getP_shipin()); position.setInkaoqing(node.getP_kaoqing()); finalPositionList.add(position); } return finalPositionList; } @RequestMapping(value="/getRealPositionsana.do", method = { RequestMethod.POST, RequestMethod.GET }) @ResponseBody public JSONObject getRealPositionsana(HttpServletRequest request) { long timeStart = 0; JSONObject json = new JSONObject(); //根据时间筛选出数据 List realLocationList = ZhwService.getpersonLocationsan(); for ( tb_person node : realLocationList) { Double x = Double.valueOf(node.getP_x()); Double y = Double.valueOf(node.getP_y()); Double xo = (x-54732)/100; Double yo = -(y+10268)/100; List xy = ZhwController.cal2(xo, yo); node.setP_x((xy.get(0)).toString()); node.setP_y((xy.get(1)).toString()); } List finalPositionList = new ArrayList(); //根据每个tagid取tb_tag:[tag_id,state(静止1or运动0),power,status(在线1or离线0),addtime],放入tb_position中 for (tb_person node : realLocationList) { String tagid = node.getP_tagid(); tb_realpositoin position = new tb_realpositoin(); position.setTagid(tagid); position.setPower(node.getP_power()); position.setLife(node.getP_online()); position.setName(node.getP_name()); position.setPosx(node.getP_x()); position.setPosy(node.getP_y()); position.setSos(node.getP_sos()); position.setTime(node.getP_addtiem()); position.setFence(node.getP_fence()); position.setSousuo(node.getP_sousuo()); position.setShipin(node.getP_shipin()); position.setInkaoqing(node.getP_kaoqing()); position.setFangkeid(node.getP_fangkeid()); position.setJingdu(node.getP_jingdu()); position.setWeidu(node.getP_weidu()); position.setGaocheng(node.getP_gaocheng()); finalPositionList.add(position); } json.put("dataList", finalPositionList); return json; } @RequestMapping(value="/getkaoqinsan.do", method = { RequestMethod.POST, RequestMethod.GET }) @ResponseBody public List getkaoqinsan(HttpServletRequest request) { List realkaoqingList = ZhwService.getkaoqinsan(); System.out.print("------------------------"); System.out.print("------------------------"+realkaoqingList.get(0).getName()); return realkaoqingList; } @RequestMapping(value = "/xiafazhendong.do", method = { RequestMethod.POST, RequestMethod.GET }) public void xiafazhendong(HttpServletRequest request) throws IOException { String tagid=request.getParameter("tagid"); String xieyi = "55BB,TAG_SHAKE,10,"+tagid+",END"; Udp_Out.udp_to_cs(xieyi); } @RequestMapping("bofang.do") public void shangchuan2() { int flag = -1; // 输出ffmpeg推流日志 String ffmpegPath = "F:\\ffmpeg\\ffmpeg-4.4-essentials_build\\bin\\"; try { String command = ffmpegPath; command += "ffmpeg -rtsp_transport tcp"; // ffmpeg开头,-re代表按照帧率发送,在推流时必须有 command += " -i \"rtsp://admin:hxzk20151102@192.168.3.64:554/Streaming/Channels/102\""; // 指定要推送的视频 command += " -q 0 -f mpegts -codec:v mpeg1video -s 1280x720 http://127.0.0.1:8081/123456"; // 指定推送服务器,-f:指定格式 1280 720 System.out.println("ffmpeg推流命令:" + command); process = Runtime.getRuntime().exec(command); // 输出ffmpeg推流日志 BufferedReader br= new BufferedReader(new InputStreamReader(process.getErrorStream())); String line = ""; while ((line = br.readLine()) != null) { System.out.println("视频推流信息[" + line + "]"); } flag = process.waitFor(); //这里是为了区分不同的流,需求会打开多个摄像头,根据token //后面可以对不需要的流关闭 } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } @RequestMapping("tingzhibofang.do") public void tingzhibofang() { process.destroy(); } public static List objectToArray_qihouManagement2(List tb_qihouList) { List reList = new ArrayList<>(); for (int i = 0; i < tb_qihouList.size(); i++) { List words = new ArrayList(); tb_qihou qihou = (tb_qihou) tb_qihouList.get(i); words.add(qihou.getTime()); words.add(qihou.getPlace()); words.add(qihou.getWeather()); words.add(qihou.getWd()); words.add(qihou.getSd()); String[] array = words.toArray(new String[0]); reList.add(array); } return reList; } // tb_qihou 导出表格 对象转数组 public static List objectToArray_qihouManagement(List tb_qihouList) { List reList = new ArrayList<>(); for (int i = 0; i < tb_qihouList.size(); i++) { List words = new ArrayList(); tb_qihou qihou = (tb_qihou) tb_qihouList.get(i); words.add(String.valueOf(qihou.getId())); words.add(qihou.getTime()); words.add(qihou.getPlace()); words.add(qihou.getWeather()); words.add(qihou.getWd()); words.add(qihou.getSd()); String[] array = words.toArray(new String[0]); reList.add(array); } return reList; } /** * 以K0 + 877为原点 * @param px X坐标 * @param py y坐标 */ private static List cal2(double px, double py) { double mx1 = 12738394.2203293; double my1 = 4586352.97186441; double rx = 1.0439323780911336; double ry = 1.0443204318588795; double mx = mx1 + px * rx; double my = my1 + py * ry; List xy = new ArrayList(); xy.add(mx); xy.add(my); return xy; } public static boolean isInPolygon(Point2D.Double point, List pts){ int N = pts.size(); boolean boundOrVertex = true; int intersectCount = 0;//交叉点数量 double precision = 2e-10; //浮点类型计算时候与0比较时候的容差 Point2D.Double p1, p2;//临近顶点 Point2D.Double p = point; //当前点 p1 = pts.get(0); for(int i = 1; i <= N; ++i){ if(p.equals(p1)){ return boundOrVertex; } p2 = pts.get(i % N); if(p.x < Math.min(p1.x, p2.x) || p.x > Math.max(p1.x, p2.x)){ p1 = p2; continue; } //射线穿过算法 if(p.x > Math.min(p1.x, p2.x) && p.x < Math.max(p1.x, p2.x)){ if(p.y <= Math.max(p1.y, p2.y)){ if(p1.x == p2.x && p.y >= Math.min(p1.y, p2.y)){ return boundOrVertex; } if(p1.y == p2.y){ if(p1.y == p.y){ return boundOrVertex; }else{ ++intersectCount; } }else{ double xinters = (p.x - p1.x) * (p2.y - p1.y) / (p2.x - p1.x) + p1.y; if(Math.abs(p.y - xinters) < precision){ return boundOrVertex; } if(p.y < xinters){ ++intersectCount; } } } }else{ if(p.x == p2.x && p.y <= p2.y){ Point2D.Double p3 = pts.get((i+1) % N); if(p.x >= Math.min(p1.x, p3.x) && p.x <= Math.max(p1.x, p3.x)){ ++intersectCount; }else{ intersectCount += 2; } } } p1 = p2; } if(intersectCount % 2 == 0){//偶数在多边形外 return false; } else { //奇数在多边形内 return true; } } }