【调度系统】广东民航医疗快线调度系统源代码
wlzboy
2025-09-06 2decf5219e3476e30095fd9dbf6e49c55e105563
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
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
<%@Language="VBScript" CodePage="65001"%>
<%'On Error Resume Next%>
<!--#include virtual="/inc/odbc.asp"-->
<!--#include virtual="/inc/function.gds"-->
<%
'**********************************************
'接口信息
encodingAesKey = "1eSbetpojD5hX4PqLpXkdXUdTPDs2Pmepr2gxEqnamX"
token = "966120"
corpId = "wx248505bfbab6d0c1"
 
msg_signature=request("msg_signature")
timestamp=request("timestamp")
nonce=request("nonce")
 
    url="https://sys.966120.com.cn/weixin/Enterprise/index.php"  '//定义要获取源代码的网址,一般是通过变量传递过来
    Origin="encodingAesKey="&encodingAesKey
    Origin=Origin&"&token="&token
    Origin=Origin&"&corpId="&corpId
    Origin=Origin&"&msg_signature="&msg_signature
    Origin=Origin&"&timestamp="&timestamp
    Origin=Origin&"&nonce="&nonce
    'Origin=Origin&"&echostr="&Server.URLEncode(request("echostr"))
    'HTMLCODE= GetBody(url,Origin)
    'Response.Write HTMLCODE
    'Response.end
    set xml_dom = Server.CreateObject("MSXML2.DOMDocument")
    xml_dom.load request
    ToUserName=xml_dom.getelementsbytagname("ToUserName").item(0).text 'ToUserName为企业微信的CorpID,当为第三方套件回调事件时,CorpID的内容为suiteid
    toAgentID=xml_dom.getelementsbytagname("AgentID").item(0).text 'AgentID为接收的应用id,可在应用的设置页面获取
    Encrypt=xml_dom.getelementsbytagname("Encrypt").item(0).Text    'msg_encrypt为经过加密的密文
    set xml_dom=Nothing
    If ToUserName<>"" Then
        Origin=Origin&"&ToUserName="&ToUserName
        Origin=Origin&"&AgentID="&ToAgentID
        Origin=Origin&"&Encrypt="&Server.URLEncode(Encrypt)
        HTMLCODE= GetBody(url,Origin)
    End If
'Response.Write HTMLCODE
If HTMLCODE<>"" Then
    set xml_Content = Server.CreateObject("MSXML2.DOMDocument")
    xml_Content.preserveWhiteSpace = true  
    xml_Content.async = false
    xml_Content.LoadXML(HTMLCODE)
    Set nodes=xml_Content.documentElement.childNodes 
    For i=0 To nodes.length-1 
        select case nodes(i).nodeName
        case "ToUserName"    '发送者微信账号/成员UserID
            ToUserName    = nodes(i).childNodes(0).Text
        case "FromUserName"
            FromUserName    = nodes(i).childNodes(0).Text
        case "ToUserName"    '接收者微信账号。即我们的企业微信CorpID。
            ToUserName    = nodes(i).childNodes(0).Text
        case "CreateTime"    '消息创建时间(整型)
            CreateTime    = nodes(i).childNodes(0).Text
        case "MsgType"        '消息类型,文本:text  图片:image  语音:voice  视频:video  位置:location  链接:link
            MsgType    = nodes(i).childNodes(0).Text
        case "AgentID"        '企业应用的id,整型。可在应用的设置页面查看
            AgentID    = nodes(i).childNodes(0).Text
        case "Content"        '文本消息内容
            Content    = nodes(i).childNodes(0).Text
        case "PicUrl"        '文本消息内容
            PicUrl    = nodes(i).childNodes(0).Text
        case "MediaId"        '文本消息内容
            MediaId    = nodes(i).childNodes(0).Text
        case "MsgId"        '消息id,64位整型
            MsgId    = nodes(i).childNodes(0).Text
        end select
    Next
    Set xml_Content=Nothing
    Set rs = Server.CreateObject("ADODB.Recordset")
 
    '消息类型,文本消息:text
    if MsgType="text" Then
        If Len(Content)=8 Or Len(Content)=14 Then    '更换调度单号
            selectDate=API_selectSql("wxDispatch|"&toAgentID&"|",FromUserName,0)
            If selectDate<>"" then
                selectDateSP    = SPLIT(selectDate,"|")
                WX_DispatchOrdID=selectDateSP(2)
                WX_PicUrl=selectDateSP(3)
                WX_Id=selectDateSP(4)
                If Len(Content)=8 Then
                    OrdClass="SA"
                    NS_Time_year=CInt(Mid(Content,1,1))
                    If NS_Time_year>=6 Then
                        NS_Time_year="201"&NS_Time_year
                    Else
                        NS_Time_year="202"&NS_Time_year
                    End If
                    NS_Time_month=Mid(Content,2,2)
                    NS_Time_day=Mid(Content,4,2)
                    OrdNo=Mid(Content,6,3)
                Else
                    OrdClass=Mid(Content,1,2)
                    NS_Time_year=Mid(Content,3,4)
                    NS_Time_month=Mid(Content,7,2)
                    NS_Time_day=Mid(Content,9,2)
                    OrdNo=Mid(Content,12,3)
                End If
                sql=""
                If IsNumeric(NS_Time_year) And IsNumeric(NS_Time_month) And IsNumeric(NS_Time_day) And IsNumeric(OrdNo) Then 
                    sql="select DispatchOrdID,DispatchOrdPicUrl,DispatchOrd_NS_Time,DispatchOrdNo,DispatchOrdClass,ServiceOrdPtName from DispatchOrd,ServiceOrder where ServiceOrdID=ServiceOrdIDDt and DispatchOrdClass='"&OrdClass&"' and DatePart(year,DispatchOrd_NS_Time)="&NS_Time_year&" and DatePart(Month,DispatchOrd_NS_Time)="&NS_Time_month&" and DatePart(Day,DispatchOrd_NS_Time)="&NS_Time_day&" and DispatchOrdNo="&OrdNo
                End If
                If sql<>"" Then
                    rs.open sql,objConn,1,1
                    If not rs.Eof then
                        DispatchOrdID            = rs("DispatchOrdID")            '调度单号
                        DispatchOrdPicUrl        = rs("DispatchOrdPicUrl")        '图片路径
                        ServiceOrdPtName        = rs("ServiceOrdPtName")        '病人姓名
                        DispatchOrdNo            = rs("DispatchOrdClass")& year(rs("DispatchOrd_NS_Time"))&Right("0"&month(rs("DispatchOrd_NS_Time")),2)&Right("0"&day(rs("DispatchOrd_NS_Time")),2) & "-"&Right("00"&rs("DispatchOrdNo"),3)    '调度单编号
                        sql="update API_Json set method='wxDispatch|"&toAgentID&"|"&DispatchOrdID&"',Json_time=getdate() where id="&WX_Id
                        objConn.Execute sql
                        If DispatchOrdPicUrl="0" Then
                            ToContent="是否确认上传"&DispatchOrdNo&"["&ServiceOrdPtName&"]的转运同意书"&chr(13)&chr(10)&chr(13)&chr(10)&"确认请回复1"&chr(13)&chr(10)&chr(13)&chr(10)&"取消请回复0"&chr(13)&chr(10)&chr(13)&chr(10)&"其它调度单请回复单号后8位数字,例如70718001"
                        Else
                            ToContent=DispatchOrdNo&"["&ServiceOrdPtName&"]已上传转运同意书,是否继续?"&chr(13)&chr(10)&chr(13)&chr(10)&"继续请回复1"&chr(13)&chr(10)&"覆盖请回复2"&chr(13)&chr(10)&"取消请回复0"&chr(13)&chr(10)&chr(13)&chr(10)&"其它调度单请回复单号后8位数字,例如70718001"
                        End If
                    Else
                        ToContent="调度单号不存在,请重新输入!"
                    End If
                    rs.close()
                Else
                    ToContent="调度单号格式错误,请重新输入!"
                End If
                strsend= API_strsend(FromUserName,ToContent)
            End If
            
        ElseIf Content="1" Then    '同意上传
            selectDate=API_selectSql("wxDispatch|"&toAgentID&"|",FromUserName,1)
            If selectDate<>"" then
                selectDateSP    = SPLIT(selectDate,"|")
                WX_DispatchOrdID=selectDateSP(2)
                WX_PicUrl=selectDateSP(3)
                WX_PicUrl=downFile(WX_PicUrl,"/upload/","jpg")
                sql="update DispatchOrd set DispatchOrdPicUrl=DispatchOrdPicUrl+',"&WX_PicUrl&"' where DispatchOrdID="&WX_DispatchOrdID
                objConn.Execute sql
                ToContent="上传完成"
                strsend= API_strsend(FromUserName,ToContent)
            End If
        ElseIf Content="2" Then    '覆盖上传
            selectDate=API_selectSql("wxDispatch|"&toAgentID&"|",FromUserName,1)
            If selectDate<>"" then
                selectDate    = SPLIT(selectDate,"|")
                WX_DispatchOrdID=selectDate(2)
                WX_PicUrl=selectDate(3)
                WX_PicUrl=downFile(WX_PicUrl,"/upload/","jpg")
                sql="update DispatchOrd set DispatchOrdPicUrl='0,"&WX_PicUrl&"' where DispatchOrdID="&WX_DispatchOrdID
                objConn.Execute sql
                ToContent="上传完成"
                strsend= API_strsend(FromUserName,ToContent)
            End If
        ElseIf Content="0" Then    '取消操作
            selectDate=API_selectSql("wxDispatch|"&toAgentID&"|",FromUserName,1)
            ToContent="上传已取消"
            strsend= API_strsend(FromUserName,ToContent)
        Else
            ToContent="已收到"
            strsend= API_strsend(FromUserName,ToContent)
        End If
        
        'Call API_JsonSql("url",ToContent,"vicgame")
        
 
    '消息类型,图片消息:image
    ElseIf MsgType="image" Then
        sql="select DispatchOrdID,DispatchOrdPicUrl,DispatchOrd_NS_Time,DispatchOrdNo,DispatchOrdClass,ServiceOrdPtName from DispatchOrd,OA_User,DispatchOrd_Entourage,ServiceOrder where ServiceOrdID=ServiceOrdIDDt and DispatchOrdState>=4 and DispatchOrdState<=7 and DispatchOrdID=DispatchOrdIDDt and EntourageOAid=OA_User_ID and EntourageLead=1 and EntourageState=3 and OA_weixinUserID='"&FromUserName&"' order by DispatchOrdID desc"
        rs.open sql,objConn,1,1
        If not rs.Eof then
            DispatchOrdID            = rs("DispatchOrdID")            '调度单号
            DispatchOrdPicUrl        = rs("DispatchOrdPicUrl")        '图片路径
            ServiceOrdPtName        = rs("ServiceOrdPtName")        '病人姓名
            DispatchOrdNo            = rs("DispatchOrdClass")& year(rs("DispatchOrd_NS_Time"))&Right("0"&month(rs("DispatchOrd_NS_Time")),2)&Right("0"&day(rs("DispatchOrd_NS_Time")),2) & "-"&Right("00"&rs("DispatchOrdNo"),3)    '调度单编号
            
            If DispatchOrdPicUrl="0" And PicUrl<>"" Then
                Call API_JsonSql("wxDispatch|"&toAgentID&"|"&DispatchOrdID,PicUrl,FromUserName)
                ToContent="是否确认上传"&DispatchOrdNo&"["&ServiceOrdPtName&"]的转运同意书"&chr(13)&chr(10)&chr(13)&chr(10)&"确认请回复1"&chr(13)&chr(10)&chr(13)&chr(10)&"取消请回复0"&chr(13)&chr(10)&chr(13)&chr(10)&"其它调度单请回复单号后8位数字,例如70718001"
                strsend= API_strsend(FromUserName,ToContent)
            ElseIf PicUrl<>"" Then
                Call API_JsonSql("wxDispatch|"&toAgentID&"|"&DispatchOrdID,PicUrl,FromUserName)
                ToContent=DispatchOrdNo&"["&ServiceOrdPtName&"]已上传转运同意书,是否继续?"&chr(13)&chr(10)&chr(13)&chr(10)&"继续请回复1"&chr(13)&chr(10)&"覆盖请回复2"&chr(13)&chr(10)&"取消请回复0"&chr(13)&chr(10)&chr(13)&chr(10)&"其它调度单请回复单号后8位数字,例如70718001"
                strsend= API_strsend(FromUserName,ToContent)
            End If
        Else
            Call API_JsonSql("wxDispatch|"&toAgentID&"|0",PicUrl,FromUserName)
            ToContent="你现在没有正在执行的出车任务"&chr(13)&chr(10)&chr(13)&chr(10)&"其它调度单请回复单号后8位数字,例如70718001"
            strsend= API_strsend(FromUserName,ToContent)
        End If
        rs.close()
    end If
End If
response.write strsend
 
'Call API_JsonSql("url",strsend,"vicgame")
'信息回复
Private Function API_strsend(FromUserName,ToContent)
    strsend="<xml>"
    strsend=strsend&"<ToUserName><![CDATA["&FromUserName&"]]></ToUserName>"
    strsend=strsend&"<FromUserName><![CDATA["&ToUserName&"]]></FromUserName>"
    strsend=strsend&"<CreateTime>"&CreateTime&"</CreateTime>"
    strsend=strsend&"<MsgType><![CDATA[text]]></MsgType>"
    strsend=strsend&"<Content><![CDATA["&ToContent&"]]></Content>"
    strsend=strsend&"</xml>"
    url="http://api.v.com.cn/weixin/Enterprise/"  '//定义要获取源代码的网址,一般是通过变量传递过来
    Origin="encodingAesKey="&encodingAesKey
    Origin=Origin&"&token="&token
    Origin=Origin&"&corpId="&corpId
    Origin=Origin&"&timestamp="&timestamp
    Origin=Origin&"&nonce="&nonce
    Origin=Origin&"&RespData="&Server.URLEncode(strsend)
    'Call API_JsonSql("url",url&"?"&Origin,"vicgame")
    API_strsend= GetBody(url,Origin)
End Function
 
'查询数据库最后一次回复结果
Private Function API_selectSql(method,reserve,isJson)
    'Call API_JsonSql(method,reserve,"vicgame")
    sql="select top 1 * from API_Json where method like '"&method&"%' and reserve='"&reserve&"' and is_Json=0 and datediff(Hour,is_Json_time,getdate())<=10 order by id desc"
    rs.open sql,objConn,1,1
    If not rs.Eof Then
        API_selectSql=rs("method")&"|"&rs("Json")&"|"&rs("id")
        sql="update API_Json set is_Json="&isJson&",Json_time=getdate() where id="&rs("id")
        objConn.Execute sql
    Else
        API_selectSql=""
    End If
    rs.close()
End Function
 
'返回结果写入数据库
Private Function API_JsonSql(method,HTMLCODE,reserve)
    sql="Insert into API_Json (method,Json,reserve) values ('"&method&"','"&HTMLCODE&"','"&reserve&"')"
    objConn.Execute sql
End Function
%>