1){ $orderbydesc=""; $descTXT="↓"; }else{ $orderbydesc=" desc"; $descTXT="↑"; } If ($orderby=="") { $orderby="OA_DepartmentID,OA_User_ID"; $descTXT="↓"; } if ($OrdDateType=="0" and $OrdDateStart=="" and $OrdDateEnd=="") {$OrdDateType=4;} //查询开始 $SqlOrdDateType=empty($SqlOrdDateType)!=false ? "" : $SqlOrdDateType; $sql="select DispatchOrdID,ServiceOrdID,DispatchOrdNo=DispatchOrdClass+convert(nvarchar(10),year(DispatchOrd_NS_Time))+right('0'+convert(nvarchar(10),month(DispatchOrd_NS_Time)),2)+right('0'+convert(nvarchar(10),day(DispatchOrd_NS_Time)),2)+'-'+right('00'+convert(nvarchar(10),DispatchOrdNo),3),OrdDistance=convert(money,Replace(Replace(ServiceOrdTraDistance,'公里',''),'km','')),ServiceOrdAreaType,ServiceOrdType,DispatchOrd_NS_Time=convert(char,DispatchOrd_NS_Time,120),TimeLength_Program,TimeLength_ICU,TimeLength_Wait,DispatchOrdPerfomance,ServiceOrdPtOutHosp=(select vtext from dictionary where vType=1 and vtitle='HospName' and vID=ServiceOrdPtOutHosp),ServiceOrdPtInHosp=(select vtext from dictionary where vType=1 and vtitle='HospName' and vID=ServiceOrdPtInHosp),DoctorsName=(select CASE WHEN EntourageMileageFactor<>1 THEN ','+OA_Name+'/'+CONVERT(nvarchar(5),EntourageMileageFactor) ELSE ','+OA_Name END from DispatchOrd_Entourage,OA_User where OA_User_ID=EntourageOAid and EntourageState<>4 and DispatchOrdIDDt=DispatchOrdID and EntourageID in (3,5) for xml path('')),NurseName=(select CASE WHEN EntourageMileageFactor<>1 THEN ','+OA_Name+'/'+CONVERT(nvarchar(5),EntourageMileageFactor) ELSE ','+OA_Name END from DispatchOrd_Entourage,OA_User where OA_User_ID=EntourageOAid and EntourageState<>4 and DispatchOrdIDDt=DispatchOrdID and EntourageID in (4,6) for xml path('')),DriverName=(select CASE WHEN EntourageMileageFactor<>1 THEN ','+OA_Name+'/'+CONVERT(nvarchar(5),EntourageMileageFactor) ELSE ','+OA_Name END from DispatchOrd_Entourage,OA_User where OA_User_ID=EntourageOAid and EntourageState<>4 and DispatchOrdIDDt=DispatchOrdID and EntourageID in (1,2) for xml path('')) from DispatchOrd,ServiceOrder where ServiceOrdID=ServiceOrdIDDt and (ServiceOrdTraDistance like '%公里%' or ServiceOrdTraDistance like '%km%') and DispatchOrdState in (8,9) and DispatchOrd_NS_Time ".$SqlOrdDateType.$searchSql." and ServiceOrdClass in ('".$OrdClassListSql."') order by DispatchOrd_NS_Time desc"; //echo $sql;exit; $data = sqlsrv_query($conn,$sql); if($data == true){ $FormArray=array(); //表头 $FormArray[0]=array("单号","类型","转出医院","转入医院","医生","护士","司机","实际公里数","大型活动保障时长","居家ICU时长","等待时长","折算公里数"); $FormArrayX=count($FormArray[0]); if (sqlsrv_rows_affected($data)==0) { $SystemMessageType=2; $SystemMessageTXT="数据库中相关无数据!"; $y=0; } else { $i=1; while($rs = sqlsrv_fetch_array( $data, SQLSRV_FETCH_ASSOC) ) { //读取数据 $DispatchOrdID = $rs['DispatchOrdID']; $ServiceOrdID = $rs['ServiceOrdID']; $DispatchOrdNo = $rs['DispatchOrdNo']; $ServiceOrdAreaType = $rs['ServiceOrdAreaType']; $ServiceOrdType = $rs['ServiceOrdType']; $OrdDistance = $rs['OrdDistance']; $TimeLength_Program = $rs['TimeLength_Program']; $TimeLength_ICU = $rs['TimeLength_ICU']; $TimeLength_Wait = $rs['TimeLength_Wait']; $DispatchOrd_NS_Time= $rs['DispatchOrd_NS_Time']; $DispatchOrdPerfomance = $rs['DispatchOrdPerfomance']; $ServiceOrdPtOutHosp= $rs['ServiceOrdPtOutHosp']; $ServiceOrdPtInHosp = $rs['ServiceOrdPtInHosp']; $DoctorsName = substr($rs['DoctorsName'],3); $NurseName = substr($rs['NurseName'],3); $DriverName = substr($rs['DriverName'],3); //读取数据--End $ConversionDistance = 0; //行驾里程 if ($OrdDistance>=0 and $OrdDistance<=50) {$ConversionDistance = 50;} elseif ($OrdDistance>50 and $OrdDistance<=100 and $ServiceOrdType!=9) {$ConversionDistance = 100;} elseif ($OrdDistance>100 and $OrdDistance<=150 and $ServiceOrdType!=9) {$ConversionDistance = 150;} elseif ($OrdDistance>150 and $OrdDistance<=200 and $ServiceOrdType!=9) {$ConversionDistance = 200;} elseif ($OrdDistance>200 and $OrdDistance<=250 and $ServiceOrdType!=9) {$ConversionDistance = 250;} else {$ConversionDistance = floatval(number_format($OrdDistance,0,".",""));} //大型活动保障时长 if ($TimeLength_Program>0) {$ConversionDistance=$ConversionDistance+($TimeLength_Program*30);} //居家ICU if ($TimeLength_ICU>0) {$ConversionDistance=$ConversionDistance+($TimeLength_ICU*50);} //等待时长 if ($TimeLength_Wait>0) {$ConversionDistance=$ConversionDistance+($TimeLength_Wait*20);} //机场单 if ($ServiceOrdType==4) { if ($OrdDistance==0) {$ConversionDistance=0;} $ConversionDistance=$ConversionDistance+150; } //救援单 if ($ServiceOrdType==10) { if ($OrdDistance<50) {$ConversionDistance = 50;} else {$ConversionDistance = floatval(number_format($OrdDistance,0,".",""));} } //高铁,航空单 if ($ServiceOrdType==8 or $ServiceOrdType==5) { $ConversionDistance=0; } //写入数组 $FormArray[$i][0]="".$DispatchOrdNo.""; $FormArray[$i][1]=$ArrayOrdAreaType[$ServiceOrdAreaType]; $FormArray[$i][2]=$ArrayOrdType[$ServiceOrdType]; $FormArray[$i][3]=$ServiceOrdPtOutHosp; $FormArray[$i][4]=$ServiceOrdPtInHosp; $FormArray[$i][5]=$DoctorsName; $FormArray[$i][6]=$NurseName; $FormArray[$i][7]=$DriverName; $FormArray[$i][8]=floatval(number_format($OrdDistance,2,".","")); $FormArray[$i][9]=floatval(number_format($TimeLength_Program,2,".","")); $FormArray[$i][10]=floatval(number_format($TimeLength_ICU,2,".","")); $FormArray[$i][11]=floatval(number_format($TimeLength_Wait,2,".","")); $FormArray[$i][12]=$ConversionDistance; $i++; } } } if ($is_CSV==2) { echo json_encode($FormArray); } //echo print_r($FormArray); //exit; ?>