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; $OAOccupationSQL=empty($OAOccupation)!=false ? "" : " and EntourageID in (".$OAOccupation.") "; $sql="select OA_User_ID,OA_Name,EntourageName=vtext,DispatchOrdID,ServiceOrdID,OrdDistance=convert(money,Replace(Replace(ServiceOrdTraDistance,'公里',''),'km','')),convert(char,DispatchOrdActualDate,120) DispatchOrdActualDate,convert(char,(case when DispatchOrdReturnDate is null then (select top 1 DispatchOrdStartDate from DispatchOrd_Running where DispatchOrdIDDt=DispatchOrdID and DispatchOrdState in (8,9) order by DispatchOrdStartDate desc) else DispatchOrdReturnDate end),120) DispatchOrdReturnDate ,DispatchOrd_NS_Time,DispatchOrdPerfomance,EntourageOT_is,EntourageOT2_is,EntourageLong_is,EntourageBetimesHH,EntourageDKP,EntourageDKPScale,EntourageState_Time,Stretcher_is,StretcherM=isnull((select sum(AddMoney) from (select AddMoney=(AddMoney/COUNT(a.Stretcher_is)) from DispatchOrd_Entourage as a,PaidMoney_Add as b where a.DispatchOrdIDDt=DispatchOrd_Entourage.DispatchOrdIDDt and b.ToDispatchOrdID=a.DispatchOrdIDDt and a.EntourageState<>4 and a.Stretcher_is=1 and b.AddMoneyType=2 GROUP BY AddMoney) as c),0) from DispatchOrd_Entourage,DispatchOrd,dictionary,OA_User,ServiceOrder where OA_User_ID=EntourageOAid and ServiceOrdID=ServiceOrdIDDt and vtitle='DispatchOrdEntourage' and EntourageID=vID and DispatchOrdID=DispatchOrdIDDt and (ServiceOrdTraDistance like '%公里%' or ServiceOrdTraDistance like '%km%') and DispatchOrdState in (8,9) and EntourageState=3".$OAOccupationSQL." and ServiceOrdType not in (14,15,16,17,18,19,21,22,23,24,25,13) and ServiceOrdClass in ('BF') and DispatchOrd_NS_Time $SqlOrdDateType $searchSql order by OA_User_ID,DispatchOrd_NS_Time"; //echo $sql; //exit; $data = sqlsrv_query($conn,$sql); if($data == true){ $FormArray=array(); //表头 //$FormArray[0]=array("姓名","岗位","总里程","加班里程","加班比例","总单数","加班单数","加班比例","提前出车单数","提前出车比例","总提成","加班提成","加班提成比例"); $FormArray[0]=array("姓名","岗位","总里程","加班里程","加班比例","总单数","加班补贴单数","加班补贴比例","加班补贴任务累计时长","加班绩效单数","加班绩效比例","加班绩效任务总时长"); $FormArrayX=count($FormArray[0]); if (sqlsrv_rows_affected($data)==0) { $SystemMessageType=2; $SystemMessageTXT="数据库中相关无数据!"; $y=0; } else { $i=1; $OA_User_ID_Old=0; $Dete_OrdDistance=0; $Dete_OT_OrdDistance=0; $Dete_OrdInt=0; $Dete_OT_OrdInt=0; $Dete_OT_OrdTime=0; $Dete_OT2_OrdInt=0; $Dete_OT2_OrdTime=0; $EntourageBetimesHHInt=0; $Dete_DKPMoney=0; $Dete_OT_DKPMoney=0; while($rs = sqlsrv_fetch_array( $data, SQLSRV_FETCH_ASSOC) ) { //读取数据 $OA_User_ID = $rs['OA_User_ID']; if ($OA_User_ID_Old==0 and $OA_User_ID!=$OA_User_ID_Old) {$OA_User_ID_Old=$OA_User_ID;} $OA_Name = $rs['OA_Name']; $EntourageName = $rs['EntourageName']; $DispatchOrdID = $rs['DispatchOrdID']; $ServiceOrdID = $rs['ServiceOrdID']; $OrdDistance = $rs['OrdDistance']; $DispatchOrdActualDate = $rs['DispatchOrdActualDate']; //任务开始时间 $DispatchOrdReturnDate = $rs['DispatchOrdReturnDate']; //任务结束时间 $DispatchOrd_NS_Time = $rs['DispatchOrd_NS_Time']; $DispatchOrdPerfomance = $rs['DispatchOrdPerfomance']; $EntourageOT_is = $rs['EntourageOT_is']; $EntourageOT2_is = $rs['EntourageOT2_is']; $EntourageLong_is = $rs['EntourageLong_is']; $EntourageBetimesHH = $rs['EntourageBetimesHH']; $EntourageDKP = $rs['EntourageDKP']; $EntourageDKPScale = $rs['EntourageDKPScale']; $EntourageState_Time = $rs['EntourageState_Time']; $Stretcher_is = $rs['Stretcher_is']; $StretcherM = $rs['StretcherM']; //写入数组 if ($OA_User_ID!=$OA_User_ID_Old) { $FormArray[$i][0]="".$Dete_OA_Name.""; $FormArray[$i][1]=$Dete_EntourageName; $FormArray[$i][2]=$Dete_OrdDistance; $FormArray[$i][3]=$Dete_OT_OrdDistance; if ($Dete_OT_OrdDistance>0) {$FormArray[$i][4]=round($Dete_OT_OrdDistance/$Dete_OrdDistance*100,2)."%";} else {$FormArray[$i][4]="0%";} $FormArray[$i][5]=$Dete_OrdInt; $FormArray[$i][6]=$Dete_OT_OrdInt; if ($Dete_OT_OrdInt>0) {$FormArray[$i][7]=round($Dete_OT_OrdInt/$Dete_OrdInt*100,2)."%";} else {$FormArray[$i][7]="0%";} $FormArray[$i][8]=$Dete_OT_OrdTime; $FormArray[$i][9]=$Dete_OT2_OrdInt; if ($Dete_OT2_OrdInt>0) {$FormArray[$i][10]=round($Dete_OT2_OrdInt/$Dete_OrdInt*100,2)."%";} else {$FormArray[$i][10]="0%";} $FormArray[$i][11]=$Dete_OT2_OrdTime; $OA_User_ID_Old=$OA_User_ID; $Dete_OrdDistance=0; $Dete_OT_OrdDistance=0; $Dete_OrdInt=0; $Dete_OT_OrdInt=0; $Dete_OT_OrdTime=0; $Dete_OT2_OrdInt=0; $Dete_OT2_OrdTime=0; $Dete_DKPMoney=0; $Dete_OT_DKPMoney=0; $i++; } //写入数组--End if ($OA_User_ID==$OA_User_ID_Old) { $Dete_OA_Name = $OA_Name; $Dete_EntourageName = $EntourageName; //总里程 $Dete_OrdDistance += $OrdDistance; //加班里程 if ($EntourageOT_is==1) {$Dete_OT_OrdDistance += $OrdDistance;} //总单数 $Dete_OrdInt++; //加班补贴单数 if ($EntourageOT_is==1) { $Dete_OT_OrdInt++; $Dete_OT_OrdTime=$Dete_OT_OrdTime+abs(round(((strtotime($DispatchOrdReturnDate)-strtotime($DispatchOrdActualDate))/60/60),1)); /* if (strtotime($DispatchOrdActualDate)strtotime(date("Y-m-d 17:30:00",strtotime($DispatchOrdActualDate)))){ $Dete_OT_OrdTime=$Dete_OT_OrdTime+abs(round(((strtotime($DispatchOrdActualDate)-strtotime(date("Y-m-d 17:30:00",strtotime($DispatchOrdActualDate))))/60/60),1)); } if (strtotime(date("Y-m-d",strtotime($DispatchOrdActualDate)))strtotime(date("Y-m-d 17:30:00",strtotime($DispatchOrdReturnDate)))){ $Dete_OT_OrdTime=$Dete_OT_OrdTime+abs(round(((strtotime($DispatchOrdReturnDate)-strtotime(date("Y-m-d 17:30:00",strtotime($DispatchOrdReturnDate))))/60/60),1)); } */ } //加班绩效单数 if ($EntourageOT2_is==1) { $Dete_OT2_OrdInt++; $Dete_OT2_OrdTime=$Dete_OT2_OrdTime+abs(round(((strtotime($DispatchOrdReturnDate)-strtotime($DispatchOrdActualDate))/60/60),1)); } //总提成 $Dete_DKPMoney+=EntourageDKP_Money_B($DispatchOrdPerfomance,$EntourageOT_is,$EntourageLong_is,$EntourageBetimesHH,$EntourageDKP,$EntourageDKPScale,$EntourageState_Time,$StretcherM); //加班提成 if ($EntourageOT_is==1) {$Dete_OT_DKPMoney += EntourageDKP_Money_B($DispatchOrdPerfomance,$EntourageOT_is,$EntourageLong_is,$EntourageBetimesHH,$EntourageDKP,$EntourageDKPScale,$EntourageState_Time,$StretcherM);} } //读取数据--End } //写入最后一个 $OA_User_ID_Old=$OA_User_ID; $FormArray[$i][0]="".$OA_Name.""; $FormArray[$i][1]=$EntourageName; $FormArray[$i][2]=$Dete_OrdDistance; $FormArray[$i][3]=$Dete_OT_OrdDistance; if ($Dete_OT_OrdDistance>0) {$FormArray[$i][4]=round($Dete_OT_OrdDistance/$Dete_OrdDistance*100,2)."%";} else {$FormArray[$i][4]="0%";} $FormArray[$i][5]=$Dete_OrdInt; $FormArray[$i][6]=$Dete_OT_OrdInt; if ($Dete_OT_OrdInt>0) {$FormArray[$i][7]=round($Dete_OT_OrdInt/$Dete_OrdInt*100,2)."%";} else {$FormArray[$i][7]="0%";} $FormArray[$i][8]=$Dete_OT_OrdTime; $FormArray[$i][9]=$Dete_OT2_OrdInt; if ($Dete_OT2_OrdInt>0) {$FormArray[$i][10]=round($Dete_OT2_OrdInt/$Dete_OrdInt*100,2)."%";} else {$FormArray[$i][10]="0%";} $FormArray[$i][11]=$Dete_OT2_OrdTime; $Dete_OrdDistance=0; $Dete_OrdInt=0; $Dete_OT_OrdTime=0; $Dete_OT2_OrdInt=0; $Dete_OT2_OrdTime=0; $Dete_DKPMoney=0; $Dete_OT_DKPMoney=0; $i++; } } if ($is_CSV==2) { echo json_encode($FormArray); } //echo print_r($FormArray); //exit; ?>