<%@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%>
|