package fence; import java.awt.geom.Point2D; import java.util.Vector; import DataBase.DatabaseManagement; import Method.GetNowTime; import PbuliClass.*; import fence.kaoqing.Dell_KaoQing; import fence.kaoqing.TbRealKaoQing; import jiekou.Tongji; import person.Person; import person.person_Dell; import tbDataModel.TbFence; /** * ÅжϵãÊÇ·ñÔÚ¿¼ÇÚÇøÓòÄÚ */ public class PointIsInKaoQing { static String prefix = "INSERT tb_realkaoqing (id,area,name,bumen,tagid,intime,beizhu ) VALUES "; static String prefix2 = "INSERT tb_kaoqing (area,name,bumen,tagid,intime,outtime,alltime,beizhu) VALUES "; static StringBuffer suffix = new StringBuffer(); // ±£´æsqlºó׺ static StringBuffer suffix2 = new StringBuffer(); // ±£´æsqlºó׺ static int jishu = 0; static int jishu2 = 0; static String mark = Systems.sys().getBiaozhi(); static Person person; static String tag_name; static String a = Systems.sys().getEng_bs(); static boolean ispoly =false; public static void is_in_kaoqing_fence( Vector kaoqing_fences, int size, String tagid, String floor, int x, int y, int z, String battery, String intime, Point2D.Double point) { if (size == 0) {//Èç¹ûΧÀ¸ÇøÓò²»´æÔÚÔòÖ´ÐÐ return; } person = person_Dell.get_Person(tagid); if (person == null) { return; } tag_name = person.getP_name(); Dell_KaoQing.alert_xy(tagid, x, y); for (int i = 0; i < size; i++) {//±éÀúËùÓп¼ÇÚÇøÓò TbFence kaoqing_fence = kaoqing_fences.get(i); String bumen = person.getP_department(); String bumen2 = kaoqing_fence.getBumen(); if (!bumen.equals(bumen2) && !bumen2.equals("ϵͳĬÈÏ")) { continue; } String ceng = kaoqing_fence.getFloor();//¿¼ÇÚÇøÓòËùÔڵIJã String allFnece = kaoqing_fence.getBaoliu10();//¿¼ÇÚÇøÓòËùÔڵIJã if (!floor.equals(ceng) && !allFnece.equals("1")) { continue; } String startime = kaoqing_fence.getStart();//ΧÀ¸ÉúЧ¿ªÊ¼Ê±¼ä String stoptime = kaoqing_fence.getStop();//ΧÀ¸ÉúЧ½áÊøÊ±¼ä String name = kaoqing_fence.getName(); //Ö»ÓÐÔÚÉúЧʱ¼äÄÚ²ÅÅжϵãÔÚ²»ÔÚÇøÓòÄÚ boolean zai = IsInStartAndEndTime.belongCalendar(intime, startime, stoptime);//ÅжÏÊÇ·ñÔÚΧÀ¸ÉúЧµÄʱ¼äÄÚ if (!zai) {//²»ÔÚΧÀ¸ÉúЧʱ¼äÄÚ continue; } String shape=kaoqing_fence.getShape(); int h0=Integer.parseInt(kaoqing_fence.getBaoliu12());//ΧÀ¸µ×²¿¸ß int h1=Integer.parseInt(kaoqing_fence.getBaoliu11());//ΧÀ¸¶¥²¿¸ß if(h0==-1) {//µÈÓÚ-1±íʾ²»ÅжÏΧÀ¸¸ß¶ÈÖ»¸ù¾Ý²ãÅÐ¶Ï if(shape.equals("Ô²ÐÎ")) { ispoly=Juge_in_yuan.is_in(kaoqing_fence.getYuan_x(),x,y); }else { ispoly = IsPtInPoly.inPoly(point, kaoqing_fence.getPts());//ÅжÏID×ø±êÊÇ·ñÔÚΧÀ¸ÇøÓò } }else { if(zh1) {//Èç¹û±êÇ©¸ß¶ÈÔÚΧÀ¸·¶Î§ÄÚ if(shape.equals("Ô²ÐÎ")) { ispoly=Juge_in_yuan.is_in(kaoqing_fence.getYuan_x(),x,y); }else { ispoly = IsPtInPoly.inPoly(point, kaoqing_fence.getPts());//ÅжÏID×ø±êÊÇ·ñÔÚΧÀ¸ÇøÓò } } } is_infece_or_noin_fence(name, bumen,floor,intime,tagid,x,y,z,battery); } } /**ÔÚ»òÕß²»ÔÚ¿¼ÇÚÇøÓòÐèÒª×öµÄÊÂÇéyang20230915*/ public static void is_infece_or_noin_fence(String name,String bumen,String floor, String intime,String tagid,int x,int y,int z,String battery) { if (ispoly) {//Èç¹ûÔÚ¿¼ÇÚÇøÓòÄÚ String inkaoqingname=person.getP_kaoqqingname(); if(inkaoqingname.equals(name)) {//Èç¹ûµ±Ç°ËùÔڵĿ¼ÇÚÇøÓòºÍ֮ǰһÑùÔò·µ»Ø return; } String phone = person.getP_phone(); String time2 = GetNowTime.HH_MM_SS(); TbRealKaoQing tbr = new TbRealKaoQing(); tbr.setArea(name); tbr.setBumen(bumen); tbr.setFloor(Integer.parseInt(floor)); tbr.setIntime(intime); tbr.setName(tag_name); tbr.setTagid(tagid); tbr.setX(x); tbr.setY(y); tbr.setZ(z); tbr.setBeizhu(phone); tbr.setPower(battery); tbr.setTime2(time2); Dell_KaoQing.add_tbkaoq(name, floor, tagid, tbr);//ʵʱ¿¼ÇÚ¼¯ºÏÖÐÌí¼ÓÒ»¸ö¼Ç¼ add_data_indatabase(name, tag_name, tagid, time2, phone, bumen);//Êý¾Ý¿âÖÐÌí¼ÓÒ»Ìõ¼Ç¼ person.setP_kaoqing("1");//±êÇ©½øÈ뿼ÇÚÇøÓò½«ÊµÊ±Î»ÖÃÖп¼ÇÚ״̬ÐÞ¸ÄΪ1 person.setP_kaoqqingname(name); return; } else {//Èç¹û²»ÔÚ¿¼ÇÚÇøÓò String arename = person.getP_kaoqqingname(); if(arename==null || arename.length()<1 || !arename.equals(name)) {//֮ǰ²»ÔÚÈκο¼ÇÚÇøÓò·µ»Ø return; } TbRealKaoQing tbkq = Dell_KaoQing.get_tbkq(arename, tagid); if (tbkq != null) { add2(tbkq, tag_name, tagid, intime); Dell_KaoQing.delete_TbRealKaoQing(tbkq, arename);//½«Ä³ÇøÓòÖеĿ¼ÇÚ¶ÔÏóÒÆ³ý if (a.equals("1")) { String deleteSql = "DELETE FROM tb_realkaoqing WHERE tagid='" + tagid + "'"; DatabaseManagement.update(deleteSql); } } person.setP_kaoqing("0"); person.setP_kaoqqingname(""); } } public static void add_data_indatabase(String name, String tag_name, String tagid, String time2, String phone, String bumen) { jishu++; suffix.append("(default,'" + name + "','" + tag_name + "','" + bumen + "','" + tagid + "','" + time2 + "','" + phone + "'),"); if (jishu == 1) { StringBuffer sql = new StringBuffer(prefix + suffix.substring(0, suffix.length() - 1)); // ¹¹½¨ÍêÕûsql DatabaseManagement.insert_fast(sql.toString(), 4); suffix = new StringBuffer(); // Çå¿ÕÉÏÒ»´ÎÌí¼ÓµÄÊý¾Ý jishu = 0; } } public static void add2(TbRealKaoQing tbkq, String name, String tagid, String intime) { String in = tbkq.getIntime(); if (in == null) { return; } int alltime = Shi_jian_cha_sss.get_time_cha_s(in, intime); jishu2++; String are = tbkq.getArea(); String bumen = tbkq.getBumen(); String tagname = tbkq.getName(); suffix2.append("('" + are + "','" + tagname + "','" + bumen + "','" + tagid + "','" + in + "','" + intime + "','" + alltime + "','" + "power:" + tbkq.getPower() + "'),"); if (jishu2 == 1) { StringBuffer sql = new StringBuffer(prefix2 + suffix2.substring(0, suffix2.length() - 1)); // ¹¹½¨ÍêÕûsql DatabaseManagement.insert_fast(sql.toString(), 5); suffix2 = new StringBuffer(); // Çå¿ÕÉÏÒ»´ÎÌí¼ÓµÄÊý¾Ý jishu2 = 0; String message = "$statistics_time," + tagid + "," + are + "," + tagname + "," + bumen + "," + in + "," + intime + "," + alltime + "," + mark; Tongji.zhuanfa(message, tagid); } } /** * ÀëÏßÔÚ¿¼ÇÚÇøÓòÖÐÇå³ý */ public static void lixianclear(Person person) { if (!Systems.isLixianoff()) { return; } int kqsize = Fences.getKaoqing_fences().size(); if (kqsize == 0) { return; } String inkq = person.getP_kaoqing(); if (inkq.equals("1")) { String area = person.getP_kaoqqingname(); String tagid = person.getP_tagid(); TbRealKaoQing tbkq = Dell_KaoQing.get_tbkq(area, tagid); Dell_KaoQing.delete_TbRealKaoQing(tbkq, area);//½«Ä³ÇøÓòÖеĿ¼ÇÚ¶ÔÏóÒÆ³ý String deleteSql = "DELETE FROM tb_realkaoqing WHERE tagid='" + tagid + "'"; DatabaseManagement.update(deleteSql); person.setP_kaoqing("0"); person.setP_kaoqqingname(""); } } }