企业微信智慧校园的门禁控制服务
wzp
2024-10-08 4263769ca1b65b52e84026341ff1de7fba0bce07
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
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <!--人脸识别系统数据库 -->
    <!--
    <add name="ConnectionString" connectionString="server=8.129.227.30;uid=admin;pwd=admin;database=FaceOpen3" providerName="System.Data.SqlClient"/>
    -->
    <!-- 数据类型:服务器引擎;服务器名:WIN-PPHJ26HT77K-->
    <add name="ConnectionString" connectionString="server=127.0.0.1;uid=ZJsa;pwd=ZhangJun@2021;database=zk" providerName="System.Data.SqlClient"/>
  </connectionStrings>
  <appSettings>
    <!--掌骏后端接口配置值 -->
    <!--主服务URL -->
    <!--开发环境 -->
    <!--<add key="mainServiceUrl" value="http://127.0.0.1:5088/api/data"/>-->
    <!--测试环境 -->
    <!--<add key="mainServiceUrl" value="https://dryadnet.izjun.com/api/data"/>-->
    <!--生产环境参数 -->
    <add key="mainServiceUrl" value="https://wx.izjun.com/api/data"/>
    
    <!-- 学生门禁记录推送企业微信-->
    <add key="sendMsgByAccessControlRecordUrl" value="/sendMsgByAccessControlRecord"/>
    <!-- 检查服务端门禁人脸图片文件前是否存在URL-->
    <add key="checkDoorImageUrl" value="/checkDoorImage"/>
    <!-- 上传门禁系统人脸图片URL-->
    <add key="uploadDoorImageUrl" value="/uploadDoorImage"/>
    <!-- 企业微信授权企业ID -->
    <add key="CorpId" value="ww02afcf7988be8b9b"/>
    <!-- 门禁设备供应商:1-依时利;2-中控 -->
    <add key="supplier" value="2"/>
 
    <!-- SQL:数据获取 -->
    <!-- 字段说明,确保:id、door_id、temperature、inOutFlag、evenFlag整型、card_id、emp_id、status_id字符型、passTime时间-->
    <add key="sql_extract_1" value=" select aa.* from ( "/>
    <add key="sql_extract_2" value=" select a.id, a.CARDNO card_id, a.CARDNO emp_id, null door_id, 0 temperature, "/>
    <add key="sql_extract_3" value=" convert(datetime, SUBSTRING(SKTIME, 1,4) + '-' + SUBSTRING(SKTIME, 5,2) + '-' + SUBSTRING(SKTIME, 7,2) + ' ' + SUBSTRING(SKTIME, 9,2) + ':' + SUBSTRING(SKTIME, 11,2) + ':' + SUBSTRING(SKTIME, 13,2), 20) passTime, "/>
    <add key="sql_extract_4" value=" convert(int, jczt) inOutFlag, null evenFlag , '77' status_id  "/>
    <add key="sql_extract_5" value=" from zk.dbo.YSSKKQ a where 1=1 and dataSycFlag = 0  "/>
    <add key="sql_extract_judge_1" value=" and DATEDIFF(ss, convert(datetime, SUBSTRING(SKTIME, 1,4) + '-' + SUBSTRING(SKTIME, 5,2) + '-' + SUBSTRING(SKTIME, 7,2) + ' ' + SUBSTRING(SKTIME, 9,2) + ':' + SUBSTRING(SKTIME, 11,2) + ':' + SUBSTRING(SKTIME, 13,2), 20), GETDATE() ) &lt; =   "/>
    <add key="sql_extract_judge_2" value=" and DATEDIFF(ss, convert(datetime, SUBSTRING(SKTIME, 1,4) + '-' + SUBSTRING(SKTIME, 5,2) + '-' + SUBSTRING(SKTIME, 7,2) + ' ' + SUBSTRING(SKTIME, 9,2) + ':' + SUBSTRING(SKTIME, 11,2) + ':' + SUBSTRING(SKTIME, 13,2), 20), GETDATE() ) &gt;= 2 "/>
    <add key="sql_extract_6" value="  ) aa "/>
    <add key="sql_extract_7" value=" "/>
    <add key="sql_extract_8" value=" "/>
    <add key="sql_extract_9" value=" order by aa.passTime "/>
 
    <!-- SQL:微信发送检验 -->
    <add key="sql_WXCheck_def_1" value=" select DISTINCT a.id, a.CARDNO card_id, a.CARDNO emp_id, null door_id, 0 temperature, "/>
    <add key="sql_WXCheck_def_2" value=" convert(datetime, SUBSTRING(SKTIME, 1,4) + '-' + SUBSTRING(SKTIME, 5,2) + '-' + SUBSTRING(SKTIME, 7,2) + ' ' + SUBSTRING(SKTIME, 9,2) + ':' + SUBSTRING(SKTIME, 11,2) + ':' + SUBSTRING(SKTIME, 13,2), 20) passTime, convert(int, jczt) inOutFlag, null evenFlag "/>
    <add key="sql_WXCheck_def_3" value=" from zk.dbo.YSSKKQ a where 1!=1 "/>
    <add key="sql_WXCheck_def_4" value=" and a.CARDNO = '"/>
    <add key="sql_WXCheck_def_5" value=" "/>
 
    <!-- SQL:微信发送检验、相同方向间隔时间控制 -->
    <add key="sql_WXCheck_judge1_1" value=" union all select DISTINCT a.id, a.CARDNO card_id, a.CARDNO emp_id, '' door_id, 0 temperature, "/>
    <add key="sql_WXCheck_judge1_2" value=" convert(datetime, SUBSTRING(SKTIME, 1,4) + '-' + SUBSTRING(SKTIME, 5,2) + '-' + SUBSTRING(SKTIME, 7,2) + ' ' + SUBSTRING(SKTIME, 9,2) + ':' + SUBSTRING(SKTIME, 11,2) + ':' + SUBSTRING(SKTIME, 13,2), 20) passTime, convert(int, jczt) inOutFlag, null evenFlag "/>
    <add key="sql_WXCheck_judge1_3" value=" from zk.dbo.YSSKKQ a where 1=1 "/>
    <add key="sql_WXCheck_judge1_4" value=" and a.CARDNO = '"/>
    <add key="sql_WXCheck_judge1_5" value=" and convert(int, a.jczt) = "/>
    <add key="sql_WXCheck_judge1_6" value=" and DATEDIFF(ss, convert(datetime, SUBSTRING(SKTIME, 1,4) + '-' + SUBSTRING(SKTIME, 5,2) + '-' + SUBSTRING(SKTIME, 7,2) + ' ' + SUBSTRING(SKTIME, 9,2) + ':' + SUBSTRING(SKTIME, 11,2) + ':' + SUBSTRING(SKTIME, 13,2), 20), (select convert(datetime, SUBSTRING(SKTIME, 1,4) + '-' + SUBSTRING(SKTIME, 5,2) + '-' + SUBSTRING(SKTIME, 7,2) + ' ' + SUBSTRING(SKTIME, 9,2) + ':' + SUBSTRING(SKTIME, 11,2) + ':' + SUBSTRING(SKTIME, 13,2), 20) passTime from zk.dbo.YSSKKQ where id = "/>
    <add key="sql_WXCheck_judge1_7" value=" and DATEDIFF(ss, convert(datetime, SUBSTRING(SKTIME, 1,4) + '-' + SUBSTRING(SKTIME, 5,2) + '-' + SUBSTRING(SKTIME, 7,2) + ' ' + SUBSTRING(SKTIME, 9,2) + ':' + SUBSTRING(SKTIME, 11,2) + ':' + SUBSTRING(SKTIME, 13,2), 20), (select convert(datetime, SUBSTRING(SKTIME, 1,4) + '-' + SUBSTRING(SKTIME, 5,2) + '-' + SUBSTRING(SKTIME, 7,2) + ' ' + SUBSTRING(SKTIME, 9,2) + ':' + SUBSTRING(SKTIME, 11,2) + ':' + SUBSTRING(SKTIME, 13,2), 20) passTime from zk.dbo.YSSKKQ where id = "/>
    <add key="sql_WXCheck_judge1_8" value=" "/>
    <add key="sql_WXCheck_judge1_9" value=" "/>
 
    <!-- SQL:微信发送检验、相反方向间隔时间控制 -->
    <add key="sql_WXCheck_judge2_1" value=" union all select DISTINCT a.id, a.CARDNO card_id, a.CARDNO emp_id, null door_id, 0 temperature, "/>
    <add key="sql_WXCheck_judge2_2" value=" convert(datetime, SUBSTRING(SKTIME, 1,4) + '-' + SUBSTRING(SKTIME, 5,2) + '-' + SUBSTRING(SKTIME, 7,2) + ' ' + SUBSTRING(SKTIME, 9,2) + ':' + SUBSTRING(SKTIME, 11,2) + ':' + SUBSTRING(SKTIME, 13,2), 20) passTime, convert(int, jczt) inOutFlag, null evenFlag "/>
    <add key="sql_WXCheck_judge2_3" value=" from zk.dbo.YSSKKQ a where 1=1 "/>
    <add key="sql_WXCheck_judge2_4" value=" and a.CARDNO = '"/>
    <add key="sql_WXCheck_judge2_5" value=" and convert(int, a.jczt) != "/>
    <add key="sql_WXCheck_judge2_6" value=" and DATEDIFF(ss, convert(datetime, SUBSTRING(SKTIME, 1,4) + '-' + SUBSTRING(SKTIME, 5,2) + '-' + SUBSTRING(SKTIME, 7,2) + ' ' + SUBSTRING(SKTIME, 9,2) + ':' + SUBSTRING(SKTIME, 11,2) + ':' + SUBSTRING(SKTIME, 13,2), 20), (select convert(datetime, SUBSTRING(SKTIME, 1,4) + '-' + SUBSTRING(SKTIME, 5,2) + '-' + SUBSTRING(SKTIME, 7,2) + ' ' + SUBSTRING(SKTIME, 9,2) + ':' + SUBSTRING(SKTIME, 11,2) + ':' + SUBSTRING(SKTIME, 13,2), 20) passTime from zk.dbo.YSSKKQ where id = "/>
    <add key="sql_WXCheck_judge2_7" value=" and DATEDIFF(ss, convert(datetime, SUBSTRING(SKTIME, 1,4) + '-' + SUBSTRING(SKTIME, 5,2) + '-' + SUBSTRING(SKTIME, 7,2) + ' ' + SUBSTRING(SKTIME, 9,2) + ':' + SUBSTRING(SKTIME, 11,2) + ':' + SUBSTRING(SKTIME, 13,2), 20), (select convert(datetime, SUBSTRING(SKTIME, 1,4) + '-' + SUBSTRING(SKTIME, 5,2) + '-' + SUBSTRING(SKTIME, 7,2) + ' ' + SUBSTRING(SKTIME, 9,2) + ':' + SUBSTRING(SKTIME, 11,2) + ':' + SUBSTRING(SKTIME, 13,2), 20) passTime from zk.dbo.YSSKKQ where id = "/>
    <add key="sql_WXCheck_judge2_8" value=" "/>
    <add key="sql_WXCheck_judge2_9" value=" "/>
 
    <!-- SQL:短信发送检验 -->
    <add key="sql_SMSCheck_def_1" value=" select DISTINCT a.id, a.CARDNO card_id, a.CARDNO emp_id, null door_id, 0 temperature, "/>
    <add key="sql_SMSCheck_def_2" value=" convert(datetime, SUBSTRING(SKTIME, 1,4) + '-' + SUBSTRING(SKTIME, 5,2) + '-' + SUBSTRING(SKTIME, 7,2) + ' ' + SUBSTRING(SKTIME, 9,2) + ':' + SUBSTRING(SKTIME, 11,2) + ':' + SUBSTRING(SKTIME, 13,2), 20) passTime, convert(int, jczt) inOutFlag, null evenFlag "/>
    <add key="sql_SMSCheck_def_3" value=" from zk.dbo.YSSKKQ a where 1=1 "/>
    <add key="sql_SMSCheck_def_4" value=" and a.CARDNO = '"/>
    <add key="sql_SMSCheck_def_5" value=" "/>
 
    <!-- SQL:短信发送检验、间隔时间控制 -->
    <add key="sql_SMSCheck_judge1_1" value=" and DATEDIFF(ss, convert(datetime, SUBSTRING(SKTIME, 1,4) + '-' + SUBSTRING(SKTIME, 5,2) + '-' + SUBSTRING(SKTIME, 7,2) + ' ' + SUBSTRING(SKTIME, 9,2) + ':' + SUBSTRING(SKTIME, 11,2) + ':' + SUBSTRING(SKTIME, 13,2), 20), (select convert(datetime, SUBSTRING(SKTIME, 1,4) + '-' + SUBSTRING(SKTIME, 5,2) + '-' + SUBSTRING(SKTIME, 7,2) + ' ' + SUBSTRING(SKTIME, 9,2) + ':' + SUBSTRING(SKTIME, 11,2) + ':' + SUBSTRING(SKTIME, 13,2), 20) passTime from zk.dbo.YSSKKQ where id = "/>
    <add key="sql_SMSCheck_judge1_2" value=" and DATEDIFF(ss, convert(datetime, SUBSTRING(SKTIME, 1,4) + '-' + SUBSTRING(SKTIME, 5,2) + '-' + SUBSTRING(SKTIME, 7,2) + ' ' + SUBSTRING(SKTIME, 9,2) + ':' + SUBSTRING(SKTIME, 11,2) + ':' + SUBSTRING(SKTIME, 13,2), 20), (select convert(datetime, SUBSTRING(SKTIME, 1,4) + '-' + SUBSTRING(SKTIME, 5,2) + '-' + SUBSTRING(SKTIME, 7,2) + ' ' + SUBSTRING(SKTIME, 9,2) + ':' + SUBSTRING(SKTIME, 11,2) + ':' + SUBSTRING(SKTIME, 13,2), 20) passTime from zk.dbo.YSSKKQ where id = "/>
      
    <!-- SQL:更新同步状态 -->
    <add key="sql_update_SycFlag" value=" update zk.dbo.YSSKKQ set dataSycFlag=@dataSycFlag where id=@id "/>
 
 
    <!-- 生成图片规则1:学号 + "_" + 刷卡时间(yyyyMMddHHmmss)+ ".jpg" -->
    <add key="picture_file_name_rules_1" value="1"/>
    <!-- 生成图片规则2:卡号 + 刷卡时间(yyyyMMddHHmmss)+ ".jpg" -->
    <add key="picture_file_name_rules_2" value="2"/>
      
    <!-- 定时服务轮循休眠时间(毫秒),默认2秒 -->
    <add key="sleepTime" value="1000"/>
    
    <!-- 获取近2小时(7200秒)的门禁学生进出记录,注意该值必须大于轮循休眠时间 -->
    <add key="seconds" value="7200"/>
    
    <!-- 两次门禁考勤记录间相同方向在60秒(1分钟)内,不推送微信;为0时都推送。 -->
    <add key="twoRecordSameTimes" value="60"/>
 
    <!-- 两次门禁考勤记录间相反方向在60秒(1分钟)内,不推送微信;为0时都推送。 -->
    <add key="twoRecordContraryTimes" value="60"/>
 
    <!-- 两次门禁考勤记录间在60秒(5分钟)内,不推送短信;为0时都推送。 -->
    <add key="twoRecordSMSTimes" value="300"/>
 
    <!-- 请假签到有效时间内1800秒(30分钟) -->
    <add key="validTimeLeave" value="1800"/>
 
    <!-- 人脸识别照片路径 -->
    <add key="frpicPath" value="D:/Program Files (x86)/EastRiver/Documents/FRPic"/>
 
    <!-- 刷卡抓拍路径 -->
    <add key="doorPicPath" value="D:/Program Files (x86)/EastRiver/Documents/DoorPic"/>
 
    <!-- 温度控制不推送消息,由于门禁配置大于等于这个温度不开门。 -->
    <add key="_temperature" value="37.3"/>
    
    <!-- 走读生类型 -->
    <add key="extern_student"     value="66"/>
    <!-- 住宿生类型 -->
    <add key="boarder_student"     value="55"/>
 
    <!--时间段规则如下,时间跨度以连接符“~”连接,多个时间以分号“;”分隔如:value="11:00~14:00; 17:25~18:50; 21:00~23:59"-->
    <!-- 走读生、进门、周一到周日推送消息时间段 -->
    <add key="in_extern_monday"     value="00:00~23:59"/>
    <add key="in_extern_tuesday"    value="00:00~23:59"/>
    <add key="in_extern_wednesday"  value="00:00~23:59"/>
    <add key="in_extern_thursday"   value="00:00~23:59"/>
    <add key="in_extern_friday"     value="00:00~23:59"/>
    <add key="in_extern_saturday"   value="00:00~23:59"/>
    <add key="in_extern_sunday"     value="00:00~23:59"/>
    <!-- 住宿生、进门、周一到周日推送消息时间段 -->
    <add key="in_boarder_monday"    value="00:00~23:59"/>
    <add key="in_boarder_tuesday"   value="00:00~23:59"/>
    <add key="in_boarder_wednesday" value="00:00~23:59"/>
    <add key="in_boarder_thursday"  value="00:00~23:59"/>
    <add key="in_boarder_friday"    value="00:00~23:59"/>
    <add key="in_boarder_saturday"  value="00:00~23:59"/>
    <add key="in_boarder_sunday"    value="00:00~23:59"/>
    
    <!-- 走读生、出门、周一到周日推送消息时间段 -->
    <add key="out_extern_monday"      value="11:00~14:00; 17:25~18:50; 21:00~23:59"/>
    <add key="out_extern_tuesday"     value="11:00~14:00; 17:25~18:50; 21:00~23:59"/>
    <add key="out_extern_wednesday"   value="11:00~14:00; 17:25~18:50; 21:00~23:59"/>
    <add key="out_extern_thursday"    value="11:00~14:00; 17:25~18:50; 21:00~23:59"/>
    <add key="out_extern_friday"      value="11:00~14:00; 17:25~18:50; 21:00~23:59"/>
    <add key="out_extern_saturday"    value="11:00~14:00; 17:25~18:50; 21:00~23:59"/>
    <add key="out_extern_sunday"      value="11:00~14:00; 17:25~18:50; 21:00~23:59"/>
    <!-- 住宿生、出门、周一到周日推送消息时间段 -->
    <add key="out_boarder_monday"     value="11:00~14:00; 17:25~18:50; 21:00~23:59"/>
    <add key="out_boarder_tuesday"    value="11:00~14:00; 17:25~18:50; 21:00~23:59"/>
    <add key="out_boarder_wednesday"  value="11:00~14:00; 17:25~18:50; 21:00~23:59"/>
    <add key="out_boarder_thursday"   value="11:00~14:00; 17:25~18:50; 21:00~23:59"/>
    <add key="out_boarder_friday"     value="11:00~14:00; 17:25~18:50; 21:00~23:59"/>
    <add key="out_boarder_saturday"   value="11:00~14:00; 17:25~18:50; 21:00~23:59"/>
    <add key="out_boarder_sunday"     value="11:00~14:00; 17:25~18:50; 21:00~23:59"/>
  </appSettings>
  
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
</configuration>