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;
?>