【调度系统】广东民航医疗快线调度系统源代码
wanglizhong
2025-06-24 a51d070d364b0da8e5f8ea9203a6e50c8b4c0af3
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
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%Session.CodePage=65001%>
<%Response.Buffer = True
Server.ScriptTimeOut=240000
'On Error Resume Next
%>
<!--#include virtual="/inc/chkadmin_for_wx.gds"-->
<!--#include virtual="/inc/function.gds"-->
<!--#include virtual="/inc/core.asp"-->
 
<%
objConn.BeginTrans
ServiceOrdID    = SafeRequest(request("ServiceOrdID"))
DispatchOrdID    = SafeRequest(request("DispatchOrdID"))
DispatchOrdState= SafeRequest(request("DispatchOrdState"))
EntourageLeadID    = SafeRequest(request("EntourageLeadID"))    '领队ID
StreetMileage    = SafeRequest(request("StreetMileage"))        '出发里程数
EndMileage        = SafeRequest(request("EndMileage"))        '结束里程数
PaidMoney        = SafeRequest(request("PaidMoney"))            '现支付金额
PaidMoneyType    = SafeRequest(request("PaidMoneyType"))        '支付方式
PaidMoneyTimestamp= SafeRequest(request("PaidMoneyTimestamp"))    '支付时间戳
OA_latitude        = SafeRequest(request("OA_latitude"))    '纬度
OA_longitude    = SafeRequest(request("OA_longitude"))    '经度
OA_address        = SafeRequest(request("OA_address"))    '定位地址
If EntourageLeadID="" Then EntourageLeadID=0
 
Set rs = Server.CreateObject("ADODB.Recordset")
'检查状态是否正确
If CInt(session("adminID"))<>CInt(EntourageLeadID) And PaidMoneyType="" Then
    response.write "Result:not allower"
    Response.End
End If
If DispatchOrdID="" Then Response.End()
sql="select DispatchOrdID,ServiceOrdIDDt,DispatchOrdCarID,DispatchOrdPerfomance,DispatchOrd_NS_Time,DispatchOrdNo,DispatchOrdClass,CarSeatBelt_OAId,DispatchOrdTraStreetMileage,DispatchOrdTraEndMileage,StretcherMoney from DispatchOrd where DispatchOrdID="&DispatchOrdID
rs.open sql,objConn,1,1
If rs.eof Then Response.End()
DispatchOrdCarID=rs("DispatchOrdCarID")
ServiceOrdID=rs("ServiceOrdIDDt")
DispatchOrdClass=rs("DispatchOrdClass")
old_Perfomance=rs("DispatchOrdPerfomance")
old_StreetMileage=rs("DispatchOrdTraStreetMileage")
old_EndMileage=rs("DispatchOrdTraEndMileage")
CarSeatBelt_OAId=rs("CarSeatBelt_OAId")
DispatchOrd_NS_Time=rs("DispatchOrd_NS_Time")
StretcherMoney=rs("StretcherMoney")
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)    '调度单编号
rs.close()
 
'验证服务单是否正确
If ServiceOrdID<>"" And ServiceOrdID<>"0" Then
    sql="select top 1 ServiceOrdID,ServiceOrdUnitID,ServiceOrdState,ServiceOrdCoPhone,ServiceOrdCoName,ServiceOrdTraTxnPrice,ServiceOrdTraPaidPrice,ToUserUUID from ServiceOrder where ServiceOrdID="&ServiceOrdID
    rs.open sql,objConn,1,1
    If not rs.eof Then
        ServiceOrdUnitID=rs("ServiceOrdUnitID")
        ServiceOrdState=rs("ServiceOrdState")
        ServiceOrdCoPhone=rs("ServiceOrdCoPhone")
        ServiceOrdCoName=rs("ServiceOrdCoName")
        old_TraTxnPrice=rs("ServiceOrdTraTxnPrice")
        TraPaidPrice=rs("ServiceOrdTraPaidPrice")-StretcherMoney
        ToUserUUID=rs("ToUserUUID")
    End If
    rs.close()
End If
sql="select id from ServiceOrd_TransferMode where ServiceOrdTMID="&ServiceOrdID&" and TransferModeID=6"
rs.open sql,objConn,1,1
If not rs.eof Then    '出车限制
    TransferMode=0
Else
    TransferMode=1
    If (DispatchOrdCarID="" Or isnull(DispatchOrdCarID) Or DispatchOrdCarID="0") And (DispatchOrdState="4" Or DispatchOrdState="7" Or DispatchOrdState="14") Then
        response.write "Result:need car"
        Response.End
    End If
    rs.close()
    sql="select EntourageOAid from DispatchOrd_Entourage,dictionary where vtitle='DispatchOrdEntourage' and EntourageState<>4 and EntourageState<>2 and vType=1 and vID=EntourageID and vtext like '%司机%' and DispatchOrdIDDt="&DispatchOrdID
    rs.open sql,objConn,1,1
    If rs.eof And (DispatchOrdState="4" Or DispatchOrdState="7" Or DispatchOrdState="14") Then
        response.write "Result:need driver"        
        Response.End
    End If
    If (old_StreetMileage=0 Or isnull(old_StreetMileage)) And (DispatchOrdState="4" Or DispatchOrdState="7" Or DispatchOrdState="14") Then
        response.write "Result:need street mileage"
        Response.End
    End If
    If (old_EndMileage=0 Or isnull(old_EndMileage)) And (DispatchOrdState="8") Then
        response.write "Result:need end mileage"
        Response.End
    End If
    If DispatchOrdClass="SA" And CLng(old_TraTxnPrice)>CLng(TraPaidPrice) And (DispatchOrdState="8") Then
        response.write "Result:need paid money"
        Response.End
    End If
End If
rs.close()
 
if DispatchOrdID<>"" and DispatchOrdState<>"" And CInt(session("adminID"))=CInt(EntourageLeadID) Then
    '车辆实时定位(暂时关闭 2019.9.12)
    
    OA_longitude    = 0
    OA_latitude        = 0
    OA_address        = ""
    
    '实际时间记录
    If DispatchOrdState=4 Then
        ActualSql=",DispatchOrdActualDate=getdate()"
        sql="update DispatchOrd_Entourage set EntourageState=3,EntourageState_Time=GETDATE() where EntourageState=1 and DispatchOrdIDDt="&DispatchOrdID
        objConn.Execute sql
        sql="update DispatchOrd_Entourage set EntourageDKP=0,EntourageDKPScale=0 where EntourageOAid in (select EntourageOAid from DispatchOrd_Entourage where EntourageState<>4 and DispatchOrdIDDt="&DispatchOrdID&") and EntourageDKPScale=1 and EntourageEnd_Time=CONVERT(varchar(10),getdate(),120)"
        objConn.Execute sql
        If session("adminID")<>8 Then    '过滤测试人员订单推送 
            weixin="1"
        End If
    ElseIf DispatchOrdState=7 Then
        ActualSql=",DispatchOrdArriveDate=getdate()"
        If TransferMode=0 Then ActualSql=ActualSql&",DispatchOrdActualDate=getdate()"
    ElseIf DispatchOrdState=14 Then
        ActualSql=",DispatchOrdActualDate=getdate()"
    End If
    
    '里程数记录
    If StreetMileage<>"" Then
        MileageSql=",DispatchOrdTraStreetMileage="&StreetMileage
    ElseIf EndMileage<>"" Then
        MileageSql=",DispatchOrdTraEndMileage="&EndMileage
    End If
    If OA_latitude="" or OA_longitude="" Then
        OA_latitude=0
        OA_longitude=0
    End If
    
    sql="insert into DispatchOrd_Running (DispatchOrdIDDt,DispatchOrdState,DispatchOrdStartOA,OA_longitude,OA_latitude,OA_address) values ("&DispatchOrdID&","&DispatchOrdState&","&session("adminID")&","&OA_longitude&","&OA_latitude&",'"&OA_address&"')"
    objConn.Execute sql
    sql="update DispatchOrd set DispatchOrdState="&DispatchOrdState&",DispatchOrdStartDate=getdate(),StateInt=StateInt+1,DispatchOrd_OAName=(SELECT STUFF(( select ',' + OA_Name from DispatchOrd_Entourage,OA_User where OA_User_ID=EntourageOAid and DispatchOrdIDDt=DispatchOrdID and EntourageState<>4 order by EntourageLead desc FOR XML PATH('')), 1, 1, '') AS EntourageName),DispatchOrd_OAEntourage=(SELECT STUFF(( select ',' + vtext from DispatchOrd_Entourage,OA_User,dictionary where OA_User_ID=EntourageOAid and DispatchOrdIDDt=DispatchOrdID and EntourageState<>4 and vtitle='DispatchOrdEntourage' and vID=EntourageID order by EntourageLead desc FOR XML PATH('')), 1, 1, '') AS EntouragePost)"&ActualSql&MileageSql&",DispatchOrdUpdateOAid="&session("adminID")&",DispatchOrdUpdateTime=getdate() where DispatchOrdState<>10 and DispatchOrdID="&DispatchOrdID
    objConn.Execute sql
    
    '驻点人员绩效
    If DispatchOrdState=14 Then
        sql="update DispatchOrd set DispatchOrdReturnDate=DispatchOrdTraSDTime,DispatchOrd_AP_Check=1,DispatchOrdUpdateOAid="&session("adminID")&",DispatchOrdUpdateTime=getdate() where DispatchOrdState=14 and DispatchOrdID="&DispatchOrdID
        objConn.Execute sql
        sql="update DispatchOrd_Entourage set EntourageEnd_Time=(select CONVERT(varchar(10),DispatchOrdTraSDTime,120) from DispatchOrd where DispatchOrdID=DispatchOrdIDDt) where EntourageState<>4 and EntourageEnd_Time is null and DispatchOrdIDDt="&DispatchOrdID
        objConn.Execute sql
        call EntourageDKP_A(DispatchOrdID,50)
    
    '跑空单绩效(按已收费用计算)
    ElseIf DispatchOrdState=9 Then 
        sql="select isnull(SUM(PaidMoney),0) from PaidMoney where PaidMoney_AP_Check<>-1 and (ServiceOrdIDDt="&ServiceOrdID&" or DispatchOrdIDDt="&DispatchOrdID&")"
        rs.open sql,objConn,1,1
        If not rs.eof Then
            DispatchOrdPerfomance=rs(0)-StretcherMoney
        End If
        rs.close()
        If DispatchOrdPerfomance="" Or isnull(DispatchOrdPerfomance) Then DispatchOrdPerfomance=0
        sql="update DispatchOrd set DispatchOrdPerfomance="&DispatchOrdPerfomance&",DispatchOrdUpdateOAid="&session("adminID")&",DispatchOrdUpdateTime=getdate() where DispatchOrdState=9 and DispatchOrdID="&DispatchOrdID
        objConn.Execute sql
        sql="update ServiceOrder set ServiceOrdTraTxnPrice="&DispatchOrdPerfomance&",ServiceOrdTraPriceReason=ServiceOrdTraPriceReason+'跑空单,原成交价:"&old_TraTxnPrice&",原绩效计价:"&old_Perfomance&"' where ServiceOrdID="&ServiceOrdID
        objConn.Execute sql
        call EntourageDKP_A(DispatchOrdID,DispatchOrdPerfomance)
        '更新用户积分
        Call UserPointsA(ServiceOrdID,DispatchOrdID)
        '重点议器归还
        call DispatchMRPOrderReturn(14,DispatchOrdID)
    
    '完成返回,更新绩效计价
    ElseIf DispatchOrdState=8 Then 
        call EntourageDKP_A(DispatchOrdID,old_Perfomance)
        '更新用户积分
        Call UserPointsA(ServiceOrdID,DispatchOrdID)
        '重点议器归还
        call DispatchMRPOrderReturn(14,DispatchOrdID)
 
    End if
 
end If
 
'费用支付操作
'If isDepartment("030204")=1 Then PaidMoneyCheck=1    '自动审核权(2019.6.26取消)
'If PaidMoneyType<>"" And IsNumeric(PaidMoney) And PaidMoneyTimestamp<>"" And ServiceOrdID<>"" And DispatchOrdID<>"" And CInt(session("adminID"))=CInt(EntourageLeadID) Then
If PaidMoneyType<>"" And IsNumeric(PaidMoney) And PaidMoneyTimestamp<>"" And ServiceOrdID<>"" And DispatchOrdID<>"" Then
    If PaidMoney<>0 Then
        Call PaidMoneyA(ServiceOrdID,DispatchOrdID,PaidMoney,PaidMoneyType,PaidMoneyTimestamp,PaidMoneyMono,PaidMoneyCheck)
    End if
End If
 
 
Call OA_Running("调度单微信出车状态更改:"&DispatchOrdID&" State:"&DispatchOrdState)
objConn.Execute "exec OrdDataUP "&DispatchOrdID
rsRollbackTrans(objConn.Errors.count)
 
'营销小程序数据更新
If ToUserUUID<>"0" And ToUserUUID<>"" And (DispatchOrdState="8" Or DispatchOrdState="9") Then 
    sql="select top 1 id,iuid from UserUUID where id="&ToUserUUID
    rs.open sql,objConn,1,1
    if not rs.eof Then
        iuid=rs("iuid")
        If DispatchOrdState="8" Then
            OrdPrice=old_TraTxnPrice
        Else
            OrdPrice=0
        End If
        Call Get_TritonshAPI(ToUserUUID,1,ServiceOrdID,iuid,ServiceOrdCoName,ServiceOrdCoPhone,OrdPrice)
    End If
    rs.close()
End If
'Call Get_UnitOrd(ServiceOrdUnitID,ServiceOrdID,ServiceOrdState,DispatchOrdState)
 
'更新提成数据
Call EntourageDKP_Money_C2(DispatchOrdID)
 
'发出车短信
If (DispatchOrdState="4") And Len(ServiceOrdCoPhone)=11 And DispatchOrdCarID<>"" And DispatchOrdCarID<>"0" Then
    Send_Phone = ServiceOrdCoPhone
    'Send_Phone="13352878722"
    lateCode="SMS_232168326"    '出车短信模板ID
    SMSID=5399
    sql="select vtext,vOrder2 from dictionary where vtitle in ('SMS') and id="&SMSID&" order by id desc"
    rs.open sql,objConn,1,1
    If not rs.eof Then
        Send_Text=rs("vOrder2")
        Send_Text=Replace(Send_Text,"#CarLicense#",CarDataA(DispatchOrdCarID,"","CarLicense"))
        Send_Text=Replace(Send_Text,"#UserName#",OAUser(EntourageLeadID,"UserName"))
        Send_Text=Replace(Send_Text,"#UserPhone#",OAUser(EntourageLeadID,"UserPhone"))
    End If
    rs.close()
    Send_Text=Send_Text&"【医疗快线】"
    appUrl="https://api.966120.com.cn/v1/SendSms.php?Phone="&Send_Phone&"&UserName="&OAUser(EntourageLeadID,"UserName")&"&CarLicense="&CarDataA(DispatchOrdCarID,"","CarLicense")&"&lateCode="&lateCode
    'Response.Write appUrl
    'Response.end
    HTMLCODE= PostBody(appUrl,args1)
    Send_Remarks="DispatchOrdID:"&DispatchOrdID
    sql="Insert into Sms_Log (Log_Id,Send_Text,Send_Phone,Send_OA,Send_errMsg,Send_Remarks) values ('阿里云','"&Send_Text&"','"&Send_Phone&"',"&session("adminID")&",'"&errMsg&"','"&Send_Remarks&"')"
    objConn.Execute sql
End If
 
'医护返回交单提醒
If (DispatchOrdState="8" Or DispatchOrdState="9") Then
    If DispatchOrdState="8" Then
        NC_OAID="78"
        NC_Name="【"&DispatchOrdNo&"医护已返回】"
        NC_Content="调度单:"&DispatchOrdNo&"医护已完成任务返回"
        NC_PageUrl="/DispatchOrder.gds?DispatchOrdID="&DispatchOrdID
        NC_PageUrlM="/m_DispatchOrder.gds?DispatchOrdID="&DispatchOrdID
    Else
        NC_OAID="78"
        NC_Name="【"&DispatchOrdNo&"跑空,医护已返回】"
        NC_Content="调度单:"&DispatchOrdNo&"跑空,医护已返回"
        NC_PageUrl="/DispatchOrder.gds?DispatchOrdID="&DispatchOrdID
        NC_PageUrlM="/m_DispatchOrder.gds?DispatchOrdID="&DispatchOrdID
    End If
    Call Notification_Add(NC_OAID,NC_Name,NC_Content,NC_PageUrl,NC_PageUrlM)
    
 
End If
 
 
Response.write "OK"
Response.End%>