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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
package Method;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Vector;
import BaoWen.Dell_55AA0A;
import DataBase.DatabaseManagement;
import PbuliClass.Shi_jian_cha_sss;
import PbuliClass.ShowMessage;
import PbuliClass.Systems;
import anchor.Anchor;
import anchor.Anchor_Dell;
import fence.Palyvoice;
import fence.PointIsInKaoQing;
import fence.kaoqing.Dell_KaoQing;
import jiekou.Warnig;
import person.Person;
import person.person_Dell;
import tbDataModel.Tb_gps;
import urt.Dell_gps;
 
/**¸ÃÀàÓÃÓÚÅжϻùÕ¾»òÕß±êÇ©ÊÇ·ñ´¦ÓÚÀëÏß״̬*/
public class JudgeTagOrAnchorOffline {
    static int biaozhi=0;
    /**ÅжÏÈËÔ±ÊÇ·ñ´¦ÓÚÀëÏß״̬*/
    public static void juge_person_off() {
        Vector<Person> prsvc=person_Dell.getPerson_vector();
        int size=prsvc.size();
        for(int i=0;i<size;i++) {
            Person prs=prsvc.get(i);
            juge_uwb_tag_havexinhao( prs);//ÅжϱêÇ©ÊÇ·ñÓÐÐźÅ
            String onlie=prs.getP_online();
            String tagid=prs.getP_tagid();
            noxinhaodeletepian(prs);            
            if(onlie.equals("1")) {                
                String time=prs.getXinhaotime();
                if(time==null || time.length()<1 ) {
                    continue;
                }
 
                int time0=Systems.getTagofftime();
                boolean aa=Shi_jian_cha_sss.shijiancha(time,time0);
                //Èç¹û±êÇ©¸üÐÂʱ¼ä´óÓÚÀëÏßʱ¼ä´óÓÚtimetagoffÃë
                if(aa) {                    
                    Warnig.tag_off(tagid);//ת·¢±¨ÎıêÇ©ÀëÏß                    
                    person_Dell.alert_person_offline(tagid);//¸Ä±äÈËÔ±µÄ״̬ΪÀëÏß
                    String[] ziduan= {"p_online","p_tagid"};
                    String[] zhi= {"0",tagid};
                    DatabaseManagement.fast_alert_dbase("tb_person", ziduan, zhi);
                    PointIsInKaoQing.lixianclear(prs);
                    ShowMessage.zidingyi(tagid+"±êÇ©ÀëÏß");
                    insert_inlixiandata(prs,tagid);
                    Palyvoice.play("taglixian.wav");
                    Dell_KaoQing.Clear_kaoqing_lixian(tagid);
                    Tb_gps tb_gps = Dell_gps.get_tb_gps(tagid);
                    if (tb_gps!=null) {
                        tb_gps.setGpslastx(0);
                        tb_gps.setGpslasty(0);
                    }
                }
            }else {                
                Warnig.tag_off(tagid);//ת·¢±¨ÎıêÇ©ÀëÏß
            }
        }
 
    }
 
    public static void noxinhaodeletepian(Person prs) {
        boolean havaxinhao=prs.isHavexinhao();
        if(havaxinhao) {//Èç¹ûÓÐÊÕµ½±êÇ©µÄÐźÅ
            String time=prs.getXinhaotime();
            boolean aa=Shi_jian_cha_sss.shijiancha(time,60);
            if(aa) {
                String tagid=prs.getP_tagid();
                int hz=prs.getRealhz();
                Dell_55AA0A.delete_pian(tagid, hz,"ÎÞÐźÅɾ³ý");
                prs.setHavexinhao(false);
            }
        }
    }
 
    /**ÅжϻùÕ¾ÊÇ·ñÀëÏß*/
    public static void anchor_off() {
        int size=Anchor_Dell.getAnchor_vector().size();
        if(size !=0) {
            for(int i=0;i<size;i++) {
                Anchor ac=Anchor_Dell.getAnchor_vector().get(i);
                String state=ac.getAnc_status();                
                if(state.equals("1")) {//Èç¹û»ùվ֮ǰ´¦ÓÚÔÚÏß״̬ÔÙÅжÏÊÇ·ñÀëÏß
                    String tm=ac.getAnc_cteatetime();
                    int a= Shi_jian_cha_sss.get_time_cha_s(GetNowTime.now(),tm);
                    int b=Systems.getAnchorofftime();
                    if( a>b) {
                        ac.setPort(0);
                        String anchorid=ac.getAnc_id();
                        jiekou.anchor_off.udptcpout(anchorid);                        
                        insert_indata(ac.getAnc_id(),"»ùÕ¾ÀëÏß","ÔÚÏßʱ³¤:"+a);//»ùÕ¾ÀëÏß²åÈëÀëÏ߼ǼÊý¾Ý¿â
                        ac.setAnc_status("0");
                        Anchor_Dell.set_anchor_image(0,anchorid);
                        ac.setAnc_image(Anchor_Dell.getLixian());
                    }
                }
            }
        }
    }
 
 
    /**¸üлùÕ¾µÄÀúÊ·µçÁ¿¼Ç¼Êý¾Ý*/
    public static void insert_power_into_database(String anchorid,String power,Anchor anchor,int state) {
        String time=GetNowTime.now();
        if(state==-1) {//ÒýÇæ¿ª»ú»ùÕ¾ÉÏÏ߼Ǽһ´ÎµçÁ¿
            String[] ziduan= {"anchorId","power","addtime"};
            String[] zhi= {anchorid,power,time};
            DatabaseManagement.insertfast("tb_ac_history_power", ziduan, zhi);
            anchor.setAnchor_hispower_record_time(time);    
        }else if(state==0) {//»ùÕ¾ÀëÏßÓÖÉÏÏßÈç¹ûʱ¼ä´óÓÚ24СʱÔò¼Ç¼µçÁ¿
            String tm=anchor.getAnchor_hispower_record_time();//»ùÕ¾µçÁ¿ÉϴβåÈëÊý¾Ý¿âµÄʱ¼ä
            int a= Shi_jian_cha_sss.get_time_cha_s(GetNowTime.now(),tm);
            if(a>24*60*60) {
                String[] ziduan= {"anchorId","power","addtime"};
                String[] zhi= {anchorid,power,time};
                DatabaseManagement.insertfast("tb_ac_history_power", ziduan, zhi);
                anchor.setAnchor_hispower_record_time(time);    
            }
        }
        
        
    }
 
    /**¼ÆËã2¸öʱ¼äÏà²îµÄ·ÖÖÓÊý*/
    public static int get_time_cha(String a,String b) throws ParseException {
        SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm");
        /*·ÖÖÓ²î*/
        Date fromDate3 = simpleFormat.parse(b);  
        Date toDate3 = simpleFormat.parse(a);  
        long from3 = fromDate3.getTime();
        long to3 = toDate3.getTime();  
        int minutes = (int) ((to3 - from3) / (1000 * 60)); 
 
        return minutes;
    }
 
 
    /**½«»ùÕ¾ÀëÏ߼Ǽ²åÈëÀúÊ·¼Ç¼Êý¾Ý¿â
     * String anchorid,
     * String state,
     * String alltime,
     * Anchor ac*/
    public static void insert_indata(String anchorid,String state,String alltime) {
 
        String[]  ziduan= {"anchorid","state","alltime","addtime"};
        String[] zhi= {anchorid,state,alltime,GetNowTime.now()};
        DatabaseManagement.insertfast("tb_anchor_history_record", ziduan, zhi);
    }
 
    /**½«»ùÕ¾ÉÏÏ߼Ǽ²åÈëÀúÊ·¼Ç¼Êý¾Ý¿â
     * String anchorid,
     * String state,
     * String alltime,
     * Anchor ac*/
    public static void insert_indata_shangxian(String anchorid,String state,String alltime) {
        String[]  ziduan= {"anchorid","state","alltime","addtime"};
        String[] zhi= {anchorid,state,alltime,GetNowTime.now()};
        DatabaseManagement.insertfast("tb_anchor_history_record", ziduan, zhi);
    }
 
    /**±êÇ©ÀëÏßÀúÊ·¼Ç¼*/
    public static void insert_inlixiandata(Person prs,String tagid) {
        String name=prs.getP_name();
        String bumen=prs.getP_department();
        String time=prs.getP_addtiem();
        int cha= Shi_jian_cha_sss.get_time_cha_s(GetNowTime.now(),time);
        String[]  ziduan= {"tagid","name","bumen","phone","time"};
        String[] zhi= {tagid,name,bumen,cha+"",GetNowTime.now()};
        DatabaseManagement.insertfast("tb_lixianrecord_0829", ziduan, zhi);//
 
    }
 
    /**ÅжÏUWB±êÇ©ÊÇ·ñÓÐÐźÅ*/
    public static void juge_uwb_tag_havexinhao(Person prs) {
        if(Systems.isIssanwei()) {//Èç¹û¿ªÆôµÄÊÇ3άģʽ
            int xinhao=prs.getHave_uwbxinhao();
            if(xinhao==1) {//Èç¹ûÓÐÐźÅ
                String time=prs.getXinhaotime();
                if(time.length()<5) {
                    return;
                }
                int time0=Systems.getTagofftime();
                boolean aa=Shi_jian_cha_sss.shijiancha(time,time0);
                if(aa) {
                    prs.setHave_uwbxinhao(0);
                }
            }
        }
    }
}