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<TbFence> 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(z<h0 || z>h1) {//Èç¹û±êÇ©¸ß¶ÈÔÚΧÀ¸·¶Î§ÄÚ
|
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("");
|
}
|
}
|
|
}
|