zsh_root
2024-01-02 7b595546af704983dbafcd0d385c8768ddacefc2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
package fence;
import java.awt.geom.Point2D;
import java.util.List;
import DataBase.DatabaseManagement;
import Method.ControTag;
import Method.GetNowTime;
import PbuliClass.IsInStartAndEndTime;
import PbuliClass.IsPtInPoly;
import PbuliClass.ShowMessage;
import person.Person;
import person.person_Dell;
import tbDataModel.TbFence;
 
/**½øÃŸ澯*/
public class Pointindoor {
    public static   void isindoor_fence(
            List<TbFence> fences,
            int size,
            String tagid,            
            int x, 
            int y,
            String floor,
            Point2D.Double point
            ) {
        if(size==0) {//Èç¹ûΧÀ¸²»´æÔÚÔòÍ˳ö    
            return;
        }
        Person person=person_Dell.get_Person(tagid);
        if(person==null) {//Èç¹û±êÇ©²»´æÔÚÔòÍ˳ö    
            return;
        }
        
        String baoliu18=person.getBaoliu18();
        if(baoliu18==null || baoliu18.equals("1")) {
            person.setJinmenstate(0);
            return;
        }
        
        String intime=GetNowTime.now();
        for(int i=0;i<size;i++) {
            TbFence indoor_fence=fences.get(i);
            String startime=indoor_fence.getStart();//ΧÀ¸ÉúЧ¿ªÊ¼Ê±¼ä
            String stoptime=indoor_fence.getStop();//ΧÀ¸ÉúЧ½áÊøÊ±¼ä
            String area=indoor_fence.getName();//ÇøÓòÃû³Æ
            String ceng=indoor_fence.getFloor();//ΧÀ¸ÇøÓòËùÔڵIJã
            String allFnece = indoor_fence.getBaoliu10();
            if(!ceng.equals(floor)&&!allFnece.equals("1")) {//Èç¹ûÈËÔ±ËùÔÚ²ãºÍΧÀ¸²ã²»Ò»ÖÂÔòÍ˳ö
                continue;
            }
            boolean zai=IsInStartAndEndTime.belongCalendar(intime, startime, stoptime);//ÅжÏÊÇ·ñÔÚΧÀ¸ÉúЧµÄʱ¼äÄÚ
            if(!zai) {//Èç²»ÔÚΧÀ¸ÉúЧʱ¼äÄÚÔòÍ˳ö
                continue;
            }            
            boolean ispoly=IsPtInPoly.inPoly(point, indoor_fence.getPts());//ÅжÏID×ø±êÊÇ·ñÔÚΧÀ¸ÇøÓòÄÚ
            if(ispoly) {//Èç¹ûÔÚ¸æ¾¯ÇøÓòÄÚ    
                int isin=person.getJinmenstate();//ÈËÔ±ÊÇ·ñÒѾ­´¦ÓÚ½øÃÅÇøÓòÄÚ                
                String name=person.getP_name();                
                if(isin==1) {
                    ShowMessage.zidingyi(name+"("+tagid+")½øÃÅ"+area+"±¨¾¯");//Êý¾Ý¿âÖÐÌí¼ÓÒ»Ìõ¼Ç¼
                    int zhendstate =person.getNowzhendong();
                    if(zhendstate==0) {
                        Kongzhizhengdong.contril(tagid,"½øÃŸ澯");//¿ØÖÆÕ𶯻òÕß·äÃù
                    }
                    Palyvoice.play("indoor.wav");
                    person.setP_fencename(area);
                    return;
                }            
 
                ShowMessage.zidingyi(name+"("+tagid+")δ¾­ÊÚȨ½øÃÅ"+area+"±¨¾¯");//Êý¾Ý¿âÖÐÌí¼ÓÒ»Ìõ¼Ç¼
                datainto_base("ÑéÖ¤¼Ç¼",name,tagid,"½øÃÅ","δ¾­ÊÚȨ");
                Palyvoice.play("indoor.wav");
                Kongzhizhengdong.contril(tagid,"½øÃŸ澯");//¿ØÖÆÕ𶯻òÕß·äÃù
                person.setJinmenstate(1);
                person.setP_fencename(area);
                return;
            }
        }
 
        person.setP_fencename("");
        person.setJinmenstate(0);
        int zhendstate =person.getNowzhendong();
        if(zhendstate==1) {
            ControTag.konghzitag(0, tagid,(byte)0x10,"","½øÃÅÏ·¢");//Ï·¢Õñ¶¯
        }        
        
 
    }
    
    public static void datainto_base(String type,String name,String tagid,String event,String details) {
        String addtime=GetNowTime.now();
        String[] ziduan = {"type","name","tagid","event","details","addtime"};
        String[] zhi = {type,name,tagid,event,details,addtime};
        DatabaseManagement.insertfast("tb_permission", ziduan, zhi);
    }
 
}