【调度系统】广东民航医疗快线调度系统源代码
wanglizhong
2025-05-05 2a11acffdd3df927be6abace9e8155e370b49681
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
<%
acc1=request("page")
if acc1=empty then acc1=clng(1)
QuantityInt = 365
acc2=0
acc3=0
 
'查看各分公司报表权限
if isDepartment("070109")=1 Or OrdClassInt>1 then
  
  If UnitNameID<>"" And UnitNameID<>"0" Then
    OrdClassListSql=""
    sql="select vOrder2 from dictionary where vtitle='UnitName' and vID="&UnitNameID
    rs.open sql,objConn,1,1
    If not rs.Eof Then
        UnitTypeID=rs(0)
        rs.close()
        sql="select vID,vtext,vOrder2 from dictionary where vID in ("&UnitTypeID&") and vtitle='OrderClass' order by vOrder"
        rs.open sql,objConn,1,1
        do while not rs.Eof
            OrderClassID    = rs("vOrder2")
            OrdClassListSql    = OrdClassListSql&","&OrderClassID
            rs.movenext
        Loop
        OrdClassListSql=Mid(OrdClassListSql,2)
        OrdClassListSql=Replace(OrdClassListSql,",","','")
    End If
    rs.close()
  ElseIf isDepartment("070109")=1 Then
    OrdClassListSql=""
    sql="select vID,vtext,vOrder2 from dictionary where vType in (1,2) and vtitle='OrderClass' order by vOrder"
    rs.open sql,objConn,1,1
    do while not rs.Eof
        OrderClassID    = rs("vOrder2")
        OrdClassListSql    = OrdClassListSql&","&OrderClassID
        rs.movenext
    loop
    rs.close()
    OrdClassListSql=Mid(OrdClassListSql,2)
    OrdClassListSql=Replace(OrdClassListSql,",","','")
  End If
end If
 
if searchTXT<>"" Then
  searchSql=" and (HospName like '%"&searchTXT&"%') "
else
  searchSql=""
end If
 
'合作单位
If CoopUnitID<>"" And CoopUnitID<>"0" Then
  If Left(CoopUnitID,2)="0," Then CoopUnitID=Mid(CoopUnitID,3)
  CoopUnitSql=" And  (ServiceOrdUnitID in ("&CoopUnitID&")"
    sql="select HospID,HospIntroducerDate from HospData,IntroducerData where HospIntroducerID=IntroducerID and IntroducerUnitID in ("&CoopUnitID&") GROUP BY HospID,HospIntroducerDate order by HospIntroducerDate"
    rs.open sql,objConn,1,1
    If not rs.Eof Then
        UnitHospDateOld=""
        do while not rs.Eof
            If UnitHospDateOld<>rs(1) then
                UnitHospDate=UnitHospDate&"|"&rs(1)
                UnitHospID=UnitHospID&"|"
                UnitHospDateOld=rs(1)
            End If
            UnitHospID=UnitHospID&","&rs(0)
        rs.movenext
        Loop
        UnitHospDateSP    = SPLIT(UnitHospDate,"|")
        UnitHospIDSP    = SPLIT(UnitHospID,"|")
        for i=1 to ubound(UnitHospDateSP)
            CoopUnitSql=CoopUnitSql&" or (ServiceOrdPtOutHospID in ("&Mid(UnitHospIDSP(i),2)&") and ServiceOrd_CC_Time>='"&UnitHospDateSP(i)&"')"
        Next
    End If
    rs.close()
  CoopUnitSql=CoopUnitSql&")"
Else
  CoopUnitSql=""
End If
 
If InStr(orderby," desc")>1 Then
    orderbydesc=""
    descTXT="↓"
Else
    orderbydesc=" desc"
    descTXT="↑"
End If
'sql="select * from (select vID,HospName,OutHosp=(select count(ServiceOrdPtOutHosp) from ServiceOrder where ServiceOrdPtOutHosp=vID and ServiceOrd_CC_Time "&SqlOrdDateType&"),InHosp=(select count(ServiceOrdPtInHosp) from ServiceOrder where ServiceOrdPtInHosp=vID and ServiceOrd_CC_Time "&SqlOrdDateType&") from HospData,dictionary where vtitle='HospName' and HospState=1 and vtext=HospName GROUP BY vID,HospName) as aa order by OutHosp+OutHosp desc"
If orderby="" Then
  orderby="OutHosp|InHosp desc,OutHospPrice|InHospPrice desc"
  descTXT="↓"
End If
 
if searchTXT<>"" Then
  searchSql=""
  If Len(searchTXT)=14 And Not IsNumeric(Left(searchTXT,2)) And IsNumeric(Mid(searchTXT,3,8)) And IsNumeric(Right(searchTXT,3)) And Mid(searchTXT,11,1)="-" Then
    searchSql=" DispatchOrdClass='"&Left(searchTXT,2)&"' and CONVERT(VARCHAR(10),DispatchOrd_NS_Time,120)=CONVERT(VARCHAR(10),'"&Mid(searchTXT,3,4)&"-"&Mid(searchTXT,7,2)&"-"&Mid(searchTXT,9,2)&"',120) and Right('00'+convert(varchar(3),DispatchOrdNo),3)='"&Right(searchTXT,3)&"' "
  ElseIf Len(searchTXT)=10 And IsNumeric(searchTXT) Then
    searchSql=" DispatchOrdID="&Right(searchTXT,10)&" "
  Else
    searchSql=" (ServiceOrdCoName like '%"&searchTXT&"%' or ServiceOrdCoPhone like '%"&searchTXT&"%' or ServiceOrdPtName like '%"&searchTXT&"%' or ServiceOrdTraStreet like '%"&searchTXT&"%' or ServiceOrdTraEnd like '%"&searchTXT&"%') "
  End if
else
  '按实际返回时间统计
  'searchSql=" DispatchOrdReturnDate "&SqlOrdDateType&" "
  '按订单生成时间统计
  searchSql=" DispatchOrd_NS_Time "&SqlOrdDateType&" "
  If OrdState="0" Then
    searchSql=searchSql&""
  ElseIf OrdState="1" Then
    searchSql=searchSql&" and DispatchOrdState in (0) "
  ElseIf OrdState="2" Then
    searchSql=searchSql&" and DispatchOrdState in (1,2) "
  ElseIf OrdState="4" Then
    searchSql=" DispatchOrdState in (4,5,6,7) "
  ElseIf OrdState="8_0" Then
    searchSql=" DispatchOrdState in (8) and DispatchOrdMileage=0 "
  ElseIf OrdState="8_1" Then
    searchSql=" DispatchOrdState in (8) and DispatchOrdMileage>0 "
  Else
    searchSql=searchSql&" and DispatchOrdState in ("&OrdState&") "
  End If
  If OrdClassList<>"0" Then
    searchSql=searchSql&" and ServiceOrdClass='"&OrdClassList&"' "
  End if
end If
 
'时间列Y
sql=Replace(Replace(searchSql,"DispatchOrd_NS_Time between","select ")," and ",",")        
rs.open sql,objConn,1,1
DateA=rs(0)
DateB=rs(1)
rs.close()
ArrayY=DateDiff("d",DateA,DateB)+1
 
'Response.Write DateB&"<br>"
'Response.end
 
 
sql="select DispatchOrd_Date,Sum_OrdInt=SUM(Sum_OrdInt),Sum_TraTxnPrice=SUM(Sum_TraTxnPrice),vType from (select DispatchOrd_Date=CONVERT(VARCHAR(24),DispatchOrd_NS_Time,111),Sum_OrdInt=count(DispatchOrdID),case when isnull(SUM(ServiceOrdTraTxnPrice+StretcherMoney),0)=0 or DispatchOrdPerfomance=0 then 0 else SUM(ServiceOrdTraTxnPrice+StretcherMoney)/((select SUM(DispatchOrdPerfomance) from DispatchOrd where ServiceOrdIDDt=ServiceOrdID and DispatchOrdState not in (10))/DispatchOrdPerfomance) END as Sum_TraTxnPrice ,vType from DispatchOrd LEFT JOIN ServiceOrder on ServiceOrdIDDt=ServiceOrdID,dictionary where vtitle='ServiceOrderType' and vID=ServiceOrdType and DispatchOrd_NS_Time "&SqlOrdDateType&CoopUnitSql&" and DispatchOrdState not in (10) and ServiceOrdType not in (13) and DispatchOrdClass in ('"&OrdClassListSql&"') GROUP BY DispatchOrdPerfomance,ServiceOrdID,CONVERT(VARCHAR(24),DispatchOrd_NS_Time,111),vType) as aa GROUP BY DispatchOrd_Date,vType order by DispatchOrd_Date,vType"
 
sql="select DispatchOrd_Date,Sum_OrdInt=SUM(Sum_OrdInt),Sum_TraTxnPrice=SUM(Sum_TraTxnPrice),TransferModeID from (select DispatchOrd_Date=CONVERT(VARCHAR(24),DispatchOrd_NS_Time,111),Sum_OrdInt=count(DispatchOrdID),case when isnull(SUM(ServiceOrdTraTxnPrice+StretcherMoney),0)=0 or DispatchOrdPerfomance=0 then 0 else SUM(ServiceOrdTraTxnPrice+StretcherMoney)/((select SUM(DispatchOrdPerfomance) from DispatchOrd where ServiceOrdIDDt=ServiceOrdID and DispatchOrdState not in (10))/DispatchOrdPerfomance) END as Sum_TraTxnPrice ,isnull(TransferModeID,0) TransferModeID from DispatchOrd LEFT JOIN ServiceOrder on ServiceOrdIDDt=ServiceOrdID LEFT JOIN ServiceOrd_TransferMode on ServiceOrdTMID=ServiceOrdID and TransferModeID=7 where DispatchOrd_NS_Time "&SqlOrdDateType&CoopUnitSql&" and DispatchOrdState not in (10) and ServiceOrdType not in (13) and DispatchOrdClass in ('"&OrdClassListSql&"')  GROUP BY DispatchOrdPerfomance,ServiceOrdID,CONVERT(VARCHAR(24),DispatchOrd_NS_Time,111),TransferModeID) as aa GROUP BY DispatchOrd_Date,TransferModeID order by DispatchOrd_Date,TransferModeID"
'Response.Write sql
'Response.end
rs.open sql,objConn,1,1
if not rs.eof then
rs.pagesize=QuantityInt
rs.absolutepage=acc1
acc2=rs.pagecount
acc3=rs.recordcount
else
SystemMessageType=2
SystemMessageTXT="数据库中相关无数据!"
end If
If SystemMessageType<>"2" then
    Dim FormArray()
    ArrayX=50
    If acc3<QuantityInt Or (is_CSV=1 And acc3>QuantityInt) Then
        ArrayY=acc3
    Else
        ArrayY=QuantityInt
    End If
    '表头
    FormFields="日期,数量,营业总额,正常,营业额,占比,承包,营业额,占比"
    FormFields=split(FormFields,",")
    ArrayX=ubound(FormFields)+1
    REDIM FormArray(ArrayX,ArrayY+1)
    for i=0 to ubound(FormFields) 
        FormArray((i+1),0)=FormFields(i)
    next  
    Y=1
    DateTXT=""
    do while not rs.Eof and Y<=ArrayY
      DateTXT        = rs(0)
      If DateTXT<>old_DateTXT then
          Y=Y+1
          'FormArray(1,Y)=DatePart("m",DateTXT)&"/"&DatePart("d",DateTXT)
          FormArray(1,Y)=DateTXT
          old_DateTXT=DateTXT
      End If
      DateInt        = rs(1)
      DateMoney        = rs(2)
      TransferModeID= rs(3)
      
      If TransferModeID=7 Then
        '承包任务
          FormArray(2,Y)=FormArray(2,Y)+DateInt        '订单数量
          FormArray(3,Y)=FormArray(3,Y)+DateMoney    '营业总额
          FormArray(7,Y)=DateInt        '承包任务数量
          FormArray(8,Y)=DateMoney        '承包任务营业额
          If FormArray(4,Y)=0 Then
            FormArray(4,Y)=0        '正常任务数量
            FormArray(5,Y)=0        '正常任务营业额
          End If
      Else
        '正常任务
          FormArray(2,Y)=FormArray(2,Y)+DateInt        '订单数量
          FormArray(3,Y)=FormArray(3,Y)+DateMoney    '营业总额
          FormArray(4,Y)=DateInt        '正常任务数量
          FormArray(5,Y)=DateMoney        '正常任务营业额
          If FormArray(7,Y)=0 Then
            FormArray(7,Y)=0        '承包任务数量
            FormArray(8,Y)=0        '承包任务营业额
          End If
      End If
      If FormArray(5,Y)>0 Then
        FormArray(6,Y)=Formatpercent(FormArray(5,Y)/FormArray(3,Y),0)        '正常任务占比
      Else
        FormArray(6,Y)="--"
      End If
      If FormArray(8,Y)>0 Then
        FormArray(9,Y)=Formatpercent(FormArray(8,Y)/FormArray(3,Y),0)        '特殊任务占比
      Else
        FormArray(9,Y)="--"
      End If
      
     
      rs.movenext
    Loop
    'REDIM FormArray(ArrayX,Y)
End If
rs.close()
%>