<?php
|
//分页信息
|
$page=empty($_REQUEST['page'])!=false ? 1 : $_REQUEST['page'];
|
$QuantityInt = 20; //每页显示数量
|
$acc1=$page; //当前页数
|
$acc2=0; //总页数
|
$acc3=0; //总记录数
|
|
//查询条件
|
$searchSql="";
|
$searchTXT=empty($searchTXT)!=false ? "" : $searchTXT;
|
if ($searchTXT!=""){
|
$searchSql=" and (OA_Name like '%$searchTXT%') ";
|
}else{
|
$searchSql="";
|
}
|
|
$orderby=empty($orderby)!=false ? "" : $orderby;
|
If (strrpos($orderby," desc")>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]="<a href=DispatchOrder_List.gds?searchTXT=staff1|".$OA_User_ID_Old."&OrdDateType=".$OrdDateType."&OrdDateStart=".$OrdDateStart."&OrdDateEnd=".$OrdDateEnd." 23:59:59&OrdClassList=&h_menu1_1=1 target=_blank>".$Dete_OA_Name."</a>";
|
$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 8:30:00",strtotime($DispatchOrdActualDate)))) {
|
$Dete_OT_OrdTime=$Dete_OT_OrdTime+abs(round(((strtotime(date("Y-m-d 8:30:00",strtotime($DispatchOrdActualDate)))-strtotime($DispatchOrdActualDate))/60/60),1));
|
}elseif (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",strtotime($DispatchOrdReturnDate)))) {
|
$Dete_OT_OrdTime=$Dete_OT_OrdTime+abs(round(((strtotime($DispatchOrdReturnDate)-strtotime(date("Y-m-d 23:59:59",strtotime($DispatchOrdActualDate))))/60/60),1));
|
}elseif (strtotime($DispatchOrdReturnDate)>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]="<a href=DispatchOrder_List.gds?searchTXT=staff1|".$OA_User_ID_Old."&OrdDateType=".$OrdDateType."&OrdDateStart=".$OrdDateStart."&OrdDateEnd=".$OrdDateEnd." 23:59:59&OrdClassList=&h_menu1_1=1 target=_blank>".$OA_Name."</a>";
|
$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;
|
?>
|