【调度系统】广东民航医疗快线调度系统源代码
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
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%Session.CodePage=65001%>  
<!--#include file="JsonPost.gds"-->
<!--#include virtual="/inc/function.gds"-->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<%
DispatchOrdID    = trim(request("DispatchOrdID"))
EntourageOAid    = trim(request("EntourageOAid"))
 
If DispatchOrdID="" Then
    Response.Redirect "/DispatchOrder_List.gds?SystemMessageType=4&SMT=1"
End If
If EntourageOAid<>"" Then
    session("JsonKey")="1"
    Is_EntourageOAid="1"
End If
'session("JsonKey")="1"
If session("JsonKey")="1" Then
session("JsonKey")="0"
 
    Set rs = Server.CreateObject("ADODB.Recordset")
    If Is_EntourageOAid="1" Then
        sql="select DispatchOrdClass,DispatchOrdID,DispatchOrdState,DispatchOrdTraSDTime,DispatchOrdTraStreet,DispatchOrdTraEnd,DispatchOrd_NS_Time,DispatchOrdNo,RecommendedCar,ServiceOrdTraDistance,ServiceOrdPtOutHosp,ServiceOrdPtInHosp,ServiceOrdApptDate,ServiceOrdVIP,OrderLevel from DispatchOrd LEFT join ServiceOrder on ServiceOrdID=ServiceOrdIDDt where DispatchOrdID="&DispatchOrdID
    Else
        sql="select DispatchOrdClass,DispatchOrdID,DispatchOrdState,DispatchOrdTraSDTime,DispatchOrdTraStreet,DispatchOrdTraEnd,DispatchOrd_NS_Time,DispatchOrdNo,RecommendedCar,ServiceOrdTraDistance,ServiceOrdPtOutHosp,ServiceOrdPtInHosp,ServiceOrdApptDate,ServiceOrdVIP,OrderLevel from DispatchOrd LEFT join ServiceOrder on ServiceOrdID=ServiceOrdIDDt where DispatchOrdState<=3 and DispatchOrdID="&DispatchOrdID
    End If
    rs.open sql,objConn,1,1
    If not rs.Eof Then
        DispatchOrdClass    = rs("DispatchOrdClass")
        DispatchOrdID        = rs("DispatchOrdID")
        DispatchOrdState    = rs("DispatchOrdState")
        SDTime                = rs("DispatchOrdTraSDTime")
        DispatchOrdTraStreet= rs("DispatchOrdTraStreet")
        DispatchOrdTraEnd    = rs("DispatchOrdTraEnd")
        RecommendedCar        = rs("RecommendedCar")
        ServiceOrdTraDistance=rs("ServiceOrdTraDistance")
        ServiceOrdPtOutHosp    = rs("ServiceOrdPtOutHosp")
        ServiceOrdPtInHosp    = rs("ServiceOrdPtInHosp")
        ServiceOrdVIP        = rs("ServiceOrdVIP")
        SATime                = rs("ServiceOrdApptDate")
        OrderLevel            = rs("OrderLevel")
        DispatchOrdNo            = 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 SDTime<>"" then
            If year(SDTime)<2010 Then SDTime=""
        End If
        If SDTime<>"" Then 
            DispatchOrdTraSDTime=year(SDTime)&"年"&month(SDTime)&"月"&day(SDTime)&"日"
            If hour(SDTime)>0 Then DispatchOrdTraSDTime=DispatchOrdTraSDTime&" "&hour(SDTime)&"时"
            If minute(SDTime)>0 Then DispatchOrdTraSDTime=DispatchOrdTraSDTime&minute(SDTime)&"分"
            If DateDiff("d",Date(),formatdatetime(SDTime,2))=0 Then DispatchOrdTraSDTime=DispatchOrdTraSDTime&"(今天)"
            If DateDiff("d",Date(),formatdatetime(SDTime,2))=1 Then DispatchOrdTraSDTime=DispatchOrdTraSDTime&"(明天)"
            If DateDiff("d",Date(),formatdatetime(SDTime,2))=2 Then DispatchOrdTraSDTime=DispatchOrdTraSDTime&"(后天)"
        End If
        
        If SATime<>"" then
            If year(SATime)<2010 Then SATime=""
        End If
        If SATime<>"" Then 
            ServiceOrdApptDate=year(SATime)&"年"&month(SATime)&"月"&day(SATime)&"日"
            If hour(SATime)>0 Then ServiceOrdApptDate=ServiceOrdApptDate&" "&hour(SATime)&"时"
            If minute(SATime)>0 Then ServiceOrdApptDate=ServiceOrdApptDate&minute(SATime)&"分"
            If DateDiff("d",Date(),formatdatetime(SATime,2))=0 Then ServiceOrdApptDate=ServiceOrdApptDate&"(今天)"
            If DateDiff("d",Date(),formatdatetime(SATime,2))=1 Then ServiceOrdApptDate=ServiceOrdApptDate&"(明天)"
            If DateDiff("d",Date(),formatdatetime(SATime,2))=2 Then ServiceOrdApptDate=ServiceOrdApptDate&"(后天)"
        End if
 
        If ServiceOrdPtOutHosp<>"0" And ServiceOrdPtOutHosp<>"" And ServiceOrdPtOutHosp<>"4" Then
            PtOutHosp="\n转出医院:"&HospA(ServiceOrdPtOutHosp,"HospName")
        End If
        If ServiceOrdPtInHosp<>"0" And ServiceOrdPtInHosp<>"" And ServiceOrdPtInHosp<>"814" Then
            DispatchOrdTraEnd=HospA(ServiceOrdPtInHosp,"HospName")
        End If
 
    Else
        Response.Redirect "/DispatchOrder.gds?DispatchOrdID="&DispatchOrdID&"&SystemMessageType=4&SMT=9"
    End If
    rs.close()
    
    If Is_EntourageOAid="1" Then
        sql="select EntourageOAid,EntourageLead,OA_weixinUserID,EntourageState from DispatchOrd_Entourage,OA_User where OA_User_ID=EntourageOAid and EntourageOAid="&EntourageOAid&" and DispatchOrdIDDt="&DispatchOrdID
    Else
        sql="select EntourageOAid,EntourageLead,OA_weixinUserID,EntourageState from DispatchOrd_Entourage,OA_User where OA_User_ID=EntourageOAid and EntourageState=0 and DispatchOrdIDDt="&DispatchOrdID
    End If
    rs.open sql,objConn,1,1
    do while not rs.Eof
        EntourageOAid        = rs("EntourageOAid")
        EntourageLead        = rs("EntourageLead")
        OA_weixinUserID        = rs("OA_weixinUserID")
        EntourageState        = rs("EntourageState")
        touser=touser&OA_weixinUserID&"|"
    rs.movenext
    loop
    rs.close()
    If touser="" Then Response.Redirect "/DispatchOrder.gds?DispatchOrdID="&DispatchOrdID&"&SystemMessageType=4&SMT=9"
    touser=Mid(touser,1,Len(touser)-1)
 
    
 
    '微信OA信息下发接口
    appUrl="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token="&access_token
    
    'VIP客户订单推送
    If ServiceOrdVIP="1" And Is_EntourageOAid<>"1" Then
        PowerID="070204"
        sql="select OA_weixinUserID from OA_User where OA_Power like '%,"&PowerID&",%' and OA_weixinStatus=1"
        rs.open sql,objConn,1,1
        VIPtouser=""
        do while not rs.Eof
            OA_weixinUserID        = rs("OA_weixinUserID")
            VIPtouser=VIPtouser&OA_weixinUserID&"|"
        rs.movenext
        Loop
        rs.close()
        If VIPtouser<>"" Then
            VIPtouser=Mid(VIPtouser,1,Len(VIPtouser)-1)
            args1="{"
            args1=args1&"""touser"": """&VIPtouser&""","    '成员ID列表(消息接收者,多个接收者用‘|’分隔,最多支持1000个)。特殊情况:指定为@all,则向关注该企业应用的全部成员发送 |liaojunliang
            args1=args1&"""toparty"": """","        '部门ID列表,多个接收者用‘|’分隔,最多支持100个。当touser为@all时忽略本参数
            args1=args1&"""totag"": """","            '标签ID列表,多个接收者用‘|’分隔。当touser为@all时忽略本参数
            args1=args1&"""agentid"": 21,"            '企业应用的id,整型。可在应用的设置页面查看
            args1=args1&"""msgtype"": ""news"","
            args1=args1&"""news"": {"
                args1=args1&"""articles"":["
                    args1=args1&"{"
                        args1=args1&"""title"": ""【VIP订单,请关注!】"&DispatchOrdNo&""","
                        args1=args1&"""description"": """
                        If DispatchOrdTraSDTime<>"" Then args1=args1&"拟出发时间:"&DispatchOrdTraSDTime&"\n"
                        If ServiceOrdApptDate<>"" Then args1=args1&"预约时间:"&ServiceOrdApptDate&"\n"
                        If RecommendedCar<>"" Then args1=args1&"要求车型:"&RecommendedCar&"\n"
                        'If ServiceOrdApptDate="" And DispatchOrdTraSDTime="" Then args1=args1&"派单时间:"&now()&"\n"
                        args1=args1&"出发地:"&DispatchOrdTraStreet&PtOutHosp&"\n目的地:"&DispatchOrdTraEnd&"(约"&ServiceOrdTraDistance&")"","
                    args1=args1&"""url"": """&WEBURL&"/m_DispatchOrder.gds?DispatchOrdID="&DispatchOrdID&""","
                    args1=args1&"""picurl"": """""
                    args1=args1&"}"  
                args1=args1&"]"
            args1=args1&"}"
            args1=args1&"}"
            call PostBody(appUrl,args1)
            'HTMLCODE= PostBody(appUrl,args1)
            'Response.Write HTMLCODE
        End If
    End If
    'Response.end
 
    '微信调度单下发
    args1="{"
    args1=args1&"""touser"": """&touser&""","    '成员ID列表(消息接收者,多个接收者用‘|’分隔,最多支持1000个)。特殊情况:指定为@all,则向关注该企业应用的全部成员发送 |liaojunliang
    args1=args1&"""toparty"": """","        '部门ID列表,多个接收者用‘|’分隔,最多支持100个。当touser为@all时忽略本参数
    args1=args1&"""totag"": """","            '标签ID列表,多个接收者用‘|’分隔。当touser为@all时忽略本参数
    args1=args1&"""agentid"": 21,"            '企业应用的id,整型。可在应用的设置页面查看
 
    args1=args1&"""msgtype"": ""news"","
    args1=args1&"""news"": {"
        args1=args1&"""articles"":["
            args1=args1&"{"
            If DispatchOrdClass="SP" Then
                args1=args1&"""title"": ""【驻点调度请求】"&DispatchOrdNo&""","
                args1=args1&"""description"": ""驻点时间:"&DispatchOrdTraSDTime&"\n驻点地:"&DispatchOrdTraEnd&""","
            else
                args1=args1&"""title"": ""【新调度请求】"&DispatchOrdNo&""","
                args1=args1&"""description"": """
                If OrderLevel=2 Then args1=args1&"Z计划\n"
                If DispatchOrdTraSDTime<>"" Then args1=args1&"拟出发时间:"&DispatchOrdTraSDTime&"\n"
                If ServiceOrdApptDate<>"" Then args1=args1&"预约时间:"&ServiceOrdApptDate&"\n"
                'If RecommendedCar<>"" Then args1=args1&"要求车型:"&RecommendedCar&"\n"
                'If ServiceOrdApptDate="" And DispatchOrdTraSDTime="" Then args1=args1&"派单时间:"&now()&"\n"
                args1=args1&"出发地:"&DispatchOrdTraStreet&PtOutHosp&"\n目的地:"&DispatchOrdTraEnd&"(约"&ServiceOrdTraDistance&")"","
            End if
            args1=args1&"""url"": """&WEBURL&"/m_DispatchOrder.gds?DispatchOrdID="&DispatchOrdID&""","
            args1=args1&"""picurl"": """""
            args1=args1&"}"  
        args1=args1&"]"
    args1=args1&"}"
 
    args1=args1&"}"
 
 
    HTMLCODE= PostBody(appUrl,args1)
    'Response.Write HTMLCODE &"<br>"
    Call OA_Running("weixin_message_send|21|"&touser&"|"&HTMLCODE)
    
    If Mid(HTMLCODE,12,1)<>"0" Then
        Response.Write HTMLCODE
    Else
        If Is_EntourageOAid<>"1" Then
            '更改调度单状态
            If DispatchOrdState=0 then
              sql="update DispatchOrd set DispatchOrdState=1,DispatchOrdStartDate=getdate(),DispatchOrd_NS_ID="&session("adminID")&",DispatchOrd_NS_Time=getdate() where DispatchOrdState=0 and DispatchOrdID="&DispatchOrdID
            Else
              sql="update DispatchOrd set DispatchOrdState=1 where DispatchOrdState<3 and DispatchOrdID="&DispatchOrdID
            End If
            objConn.Execute sql
            sql="update DispatchOrd_Entourage set EntourageState=1,EntourageState_Time=getdate() where EntourageState=0 and DispatchOrdIDDt="&DispatchOrdID
            objConn.Execute sql
            objConn.Execute "exec OrdDataUP "&DispatchOrdID
        End If
 
        If DispatchOrdClass="SP" Then
            'Response.Redirect "/admin_save.gds?admin_save=39&DispatchOrdID="&DispatchOrdID
            Response.Redirect "/DispatchOrder.gds?DispatchOrdID="&DispatchOrdID&"&SystemMessageType=3&SMT=7"
        else
            Response.Redirect "/DispatchOrder.gds?DispatchOrdID="&DispatchOrdID&"&SystemMessageType=3&SMT=7"
        End if
    End If
Else
    Response.Write "信息发送失败,请重新发送"
End If
%>