【调度系统】广东民航医疗快线调度系统源代码
hzj
2 天以前 d08ed14d6a4589c034140fdc8ac04a277c8e4b36
Report_DispatchDetailed_Data.php
@@ -266,7 +266,7 @@
    ,ServiceOrdTraDistance,DispatchOrdCarID,DispatchOrd_NS_Time,DispatchOrdActualDate,DispatchOrd_OAName,DispatchOrd_OAEntourage,FromHQ_is,FromHQ2_is,ServiceOrdPtName,ServiceOrdPtServices,ServiceOrdTraVia,ServiceOrdTraEnd
    ,HopsProvince=hospA.HopsProvince,HopsCity=hospA.HopsCity,HopsArea=hospA.HopsArea,HospName=hospA.HospName
    ,HopsProvinceIn=hospB.HopsProvince,HopsCityIn=hospB.HopsCity,HopsAreaIn=hospB.HopsArea,HospNameIn=hospB.HospName,ServiceOrdTaskRemarks
    ,ServiceOrd_work_ID,ServiceOrd_work_IDs,ServiceOrd_work_is,CommissionScenarioID
    ,ServiceOrd_work_ID,ServiceOrd_work_IDs,ServiceOrd_work_is,CommissionScenarioID,ServiceOrdStairClimberPrice
    ,row_number() over (order by ServiceOrd_CC_Time desc) n  $sqlWhere";
   //附加结果SQL
   //$Additional_sql = ",ServiceOrderStateTXT=(select vtext from dictionary where vtitle='ServiceOrderState' and vID=ServiceOrdState),ServiceOrd_SaleName=(select OA_Name from OA_User where OA_User_ID=ServiceOrd_Sale_ID),ServiceOrd_CCName=(select OA_Name from OA_User where OA_User_ID=ServiceOrd_CC_ID),DispatchOrd_NSName=(select OA_Name from OA_User where OA_User_ID=DispatchOrd_NS_ID),ServiceOrdSource=(select vtext from dictionary where vtitle='OrdSource' and vID=ServiceOrdSource) ,HospNameA=(select HospName from HospData where HospID=ServiceOrdPtOutHospID),HospNameB=(select HospName from HospData where HospID=ServiceOrdPtInHospID),PaidType=(SELECT  STUFF(( select ',' + vtext from PaidMoney,dictionary where vtitle='PaidMoneyType' and vType>=1 and vID=PaidMoneyType and PaidMoney<>0 and ServiceOrdIDDt=ServiceOrdID GROUP BY vtext FOR XML PATH('')), 1, 1, '') AS PaidType),HospDepartmentName=isnull((select top 1 vtext from dictionary where vtitle='HospitalDepartment' and ServiceOrdPtServicesID=vID),''),HospDepartmentInName=isnull((select top 1 vtext from dictionary where vtitle='HospitalDepartment' and ServiceOrdPtInServicesID=vID),''),isRespirator=AMV_is,EntourageName='--',MessageCountInt=FromHQ_is,Stime2='--'";
@@ -304,7 +304,7 @@
    ,ServiceOrdTraDistance,DispatchOrdCarID,DispatchOrd_NS_Time,DispatchOrdActualDate,DispatchOrd_OAName,DispatchOrd_OAEntourage,FromHQ_is,FromHQ2_is,ServiceOrdPtName,ServiceOrdPtServices,ServiceOrdTraVia,ServiceOrdTraEnd
    ,HopsProvince=hospA.HopsProvince,HopsCity=hospA.HopsCity,HopsArea=hospA.HopsArea,HospName=hospA.HospName
    ,HopsProvinceIn=hospB.HopsProvince,HopsCityIn=hospB.HopsCity,HopsAreaIn=hospB.HopsArea,HospNameIn=hospB.HospName,ServiceOrdTaskRemarks
    ,ServiceOrd_work_ID,ServiceOrd_work_IDs,ServiceOrd_work_is,CommissionScenarioID
    ,ServiceOrd_work_ID,ServiceOrd_work_IDs,ServiceOrd_work_is,CommissionScenarioID,ServiceOrdStairClimberPrice
    ,row_number() over (order by DispatchOrd_NS_Time desc) n  $sqlWhere";
   //附加结果SQL
   $Additional_sql = ",DispatchOrdStateTXT=(select vtext from dictionary where vtitle='DispatchOrdState' and vID=DispatchOrdState)
@@ -327,15 +327,15 @@
/**
 * 根据 DispatchOrdID 查找开单人及跟单人列表
 * 
 * @param int $DispatchOrdID 调度单 ID
 * @param int $ServiceOrdID 调度单 ID
 * @param object $conn 数据库连接对象
 * @return array 包含开单人及跟单人信息的数组
 */
function getDispatchOrderStaff($DispatchOrdID, $conn) {
function getDispatchOrderStaff($ServiceOrdID, $conn) {
    $staffList = [];
    // 查询开单人信息
    $sqlDispatcher = "select PersonName,CommissionRatio from ServiceOrderCommissionDetails where ServiceOrderID='$DispatchOrdID' and PersonType='Opener'";
    $sqlDispatcher = "select PersonName,CommissionRatio from ServiceOrderCommissionDetails where ServiceOrderID='$ServiceOrdID' and PersonType='Opener'";
                      
    $dataDispatcher = sqlsrv_query($conn, $sqlDispatcher);
    if ($dataDispatcher && sqlsrv_has_rows($dataDispatcher)) {
@@ -345,7 +345,7 @@
    }
    // 查询跟单人列表
    $sqlEntourage = "select PersonName,CommissionRatio from ServiceOrderCommissionDetails where ServiceOrderID='$DispatchOrdID' and PersonType='Follower'";
    $sqlEntourage = "select PersonName,CommissionRatio from ServiceOrderCommissionDetails where ServiceOrderID='$ServiceOrdID' and PersonType='Follower'";
    $dataEntourage = sqlsrv_query($conn, $sqlEntourage);
    if ($dataEntourage) {
        $entourageList = [];
@@ -353,6 +353,7 @@
        while ($rsEntourage = sqlsrv_fetch_array($dataEntourage)) {
            $entourageList[$i]["Follower"] = $rsEntourage['PersonName'];
            $entourageList[$i]["FollowerRatio"] = $rsEntourage['CommissionRatio'];
         $i++;
        }
        $staffList['entourage'] = $entourageList;
    }
@@ -376,12 +377,16 @@
   $sqlPage="" ;
}
$sql = "select * $Additional_sql from ($Result_sql) sqlData ".$sqlPage." order by sqlData.n" ;
// echo $sql;exit;
//  echo $sql;exit;
// 初始化变量,确保在所有情况下都被定义
$FormArrayX = 0;
$FormArray = array();
$data = sqlsrv_query($conn,$sql);
if($data == true){
   $FormArray=array();
   //表头
   $FormArray[0]=array("序号","服务单号","调度单号","级别","分区","预约类型","调度单状态","日期","时间","班次","联系人","联系电话","患者姓名","销售","介绍人","客服","调度","来源","是否企微成交","主要企微客服","其他企微客服","情景编号","企微绩效","总部下发","支援总部","承包组","区域","类型","出发省份","出发市","出发区","转出医院","转出科室","转出床位","转入省份","转入市","转入区","转入医院","转入科室","总成交价","系统报价参考","等待费","担架费","居家ICU费","距离(公里)","支付方式","使用呼吸机","车牌","出车成员","出车岗位","医护出车时间(分钟)","开单人","开单人提成比例","跟单人","跟单人提成比例","跟单人","跟单人提成比例","跟单人","跟单人提成比例");
   $FormArray[0]=array("序号","服务单号","调度单号","级别","分区","预约类型","调度单状态","日期","时间","班次","联系人","联系电话","患者姓名","销售","介绍人","客服","调度","来源","是否企微成交","主要企微客服","其他企微客服","情景编号","企微绩效","总部下发","支援总部","承包组","区域","类型","出发省份","出发市","出发区","转出医院","转出科室","转出床位","转入省份","转入市","转入区","转入医院","转入科室","总成交价","爬楼机费","系统报价参考","等待费","担架费","居家ICU费","距离(公里)","支付方式","使用呼吸机","车牌","出车成员","出车岗位","医护出车时间(分钟)","开单人","开单人提成比例","跟单人","跟单人提成比例","跟单人","跟单人提成比例","跟单人","跟单人提成比例","跟单人","跟单人提成比例");
   if ($is_CSV==1){array_push($FormArray[0],"任务备注");}
   $FormArrayX=count($FormArray[0]);
   if (sqlsrv_rows_affected($data)==0) {
@@ -401,11 +406,11 @@
            $isRespirator="是";
         }
         //读取数据--End
         $ServiceOrdID=$rs['ServiceOrdID'];
         //写入数组
         $FormArray[$i][0]=$i+(($page-1)*$page_size);
         If ($OrdType=="2") {
            $FormArray[$i][1]="<a href='ServiceOrder.gds?ServiceOrdID=".$rs['ServiceOrdID']."&OrdDateType=4&OrdClassList=&h_menu1_1=1' target='_blank'>".$rs['ServiceOrdNo']."</a>";
            $FormArray[$i][1]="<a href='ServiceOrder.gds?ServiceOrdID=".$ServiceOrdID."&OrdDateType=4&OrdClassList=&h_menu1_1=1' target='_blank'>".$rs['ServiceOrdNo']."</a>";
            if (!empty($rs['DispatchOrdNo'])) {
               $FormArray[$i][2]="<a href='DispatchOrder.gds?DispatchOrdID=".$rs['DispatchOrdID']."&OrdDateType=4&OrdClassList=&h_menu1_1=1' target='_blank'>".$rs['DispatchOrdNo']."</a>";
            }else{
@@ -510,54 +515,60 @@
         $FormArray[$i][37]=$HospNameIn;
         $FormArray[$i][38]=$rs['HospDepartmentInName'];
         $FormArray[$i][39]=round($rs['OrdTraPrice'],2);
         $ServiceOrdStairClimberPrice=$rs['ServiceOrdStairClimberPrice'];
         $FormArray[$i][40]=floatval(number_format($ServiceOrdStairClimberPrice,2,".",""));
         if (!empty($rs['OrderPrice_Auto'])) {$OrderPrice_Auto=round($rs['OrderPrice_Auto'],2);}else{$OrderPrice_Auto='--';}
         $FormArray[$i][40]=$OrderPrice_Auto;
         $FormArray[$i][41]=round($rs['AddMoney1'],2);
         $FormArray[$i][42]=round($rs['AddMoney2'],2);
         $FormArray[$i][43]=round($rs['AddMoney3'],2);
         $FormArray[$i][44]=str_replace("公里","",$rs['ServiceOrdTraDistance']);
         $FormArray[$i][45]=$rs['PaidType'];
         $FormArray[$i][46]=$isRespirator;
         $FormArray[$i][47]=CarDataA($rs['DispatchOrdCarID'],'','CarLicense');
         $FormArray[$i][48]=$rs['EntourageName'];
         $FormArray[$i][49]=$rs['EntouragePost'];
         $FormArray[$i][50]=$rs['Stime2'];
         $rs2=getDispatchOrderStaff($rs['DispatchOrdID'], $conn);
         $FormArray[$i][41]=$OrderPrice_Auto;
         $FormArray[$i][42]=round($rs['AddMoney1'],2);
         $FormArray[$i][43]=round($rs['AddMoney2'],2);
         $FormArray[$i][44]=round($rs['AddMoney3'],2);
         $FormArray[$i][45]=str_replace("公里","",$rs['ServiceOrdTraDistance']);
         $FormArray[$i][46]=$rs['PaidType'];
         $FormArray[$i][47]=$isRespirator;
         $FormArray[$i][48]=CarDataA($rs['DispatchOrdCarID'],'','CarLicense');
         $FormArray[$i][49]=$rs['EntourageName'];
         $FormArray[$i][50]=$rs['EntouragePost'];
         $FormArray[$i][51]=$rs['Stime2'];
         $rs2=getDispatchOrderStaff($ServiceOrdID, $conn);
         //如果 $rs2 为空,设置默认值
         if (empty($rs2)) {
            $FormArray[$i][51]='--';
            $FormArray[$i][52]='';
            $FormArray[$i][52]='--';
            $FormArray[$i][53]='';
         }else{
            $FormArray[$i][51]=isset($rs2['Opener'])?$rs2['Opener']:'--';
            $FormArray[$i][52]=isset($rs2['OpenerCommissionRatio'])?$rs2['OpenerCommissionRatio']:'';
            $FormArray[$i][52]=isset($rs2['Opener'])?$rs2['Opener']:'--';
            $FormArray[$i][53]=isset($rs2['OpenerCommissionRatio'])?$rs2['OpenerCommissionRatio']:'';
         }
         if (!empty($rs2['entourage'])) {
            //$rs2['entourage']的长度
            $count=count($rs2['entourage']);
            $FormArray[$i][54]='--';
            $FormArray[$i][55]='';
            $FormArray[$i][56]='--';
            $FormArray[$i][57]='';
            $FormArray[$i][58]='--';
            $FormArray[$i][59]='';
            $FormArray[$i][60]='--';
            $FormArray[$i][61]='';
            $j=0;
            
            foreach ($rs2['entourage'] as $key => $value) {
               $FormArray[$i][53+$j]=$value['Follower'];
               $FormArray[$i][54+$j]=$value['FollowerRatio'];
               $j++;
               $FormArray[$i][54+$j*2]=$value['Follower'];
               $FormArray[$i][55+$j*2]=$value['FollowerRatio'];
               $j++;
            }   
            if($count<3){
               //补足3个
               while($j<3){
                  $FormArray[$i][53+$j*2]='--';
                  $FormArray[$i][54+$j*2]='';
                  $j++;
               }
            }
         }else{
            $FormArray[$i][53]='--';
            $FormArray[$i][54]='';
            $FormArray[$i][55]='--';
            $FormArray[$i][56]='';
            $FormArray[$i][57]='--';
            $FormArray[$i][58]='';
            $FormArray[$i][54]='--';
            $FormArray[$i][55]='';
            $FormArray[$i][56]='--';
            $FormArray[$i][57]='';
            $FormArray[$i][58]='--';
            $FormArray[$i][59]='';
            $FormArray[$i][60]='--';
            $FormArray[$i][61]='';
         }
         if ($is_CSV==1){$FormArray[$i][59]=$rs['ServiceOrdTaskRemarks'];}
         if ($is_CSV==1){$FormArray[$i][62]=$rs['ServiceOrdTaskRemarks'];}
         $i++;
         //写入数组--End