【调度系统】广东民航医疗快线调度系统源代码
wanglizhong
2025-04-28 1e955583470b47f7636eaba800c52c258ac24296
fix:将开单人跟单人放到服务单中
5个文件已修改
1 文件已重命名
676 ■■■■ 已修改文件
API/v1/web.config111 补丁 | 查看 | 原始文档 | blame | 历史
DispatchOrder.gds 312 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Report_DispatchDetailed_Data.php 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServiceOrder.gds 321 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin_save.gds 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web.config 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
API/v1/web.config111
DispatchOrder.gds
@@ -876,289 +876,7 @@
                                        
                            </div>
                            <div class="field">
                                <!-- 开单人 -->
                                <%
                                EntourageID_OpenUser = "-8"
                                departmentID_OpenUser = "9"
                                OpenUserID = ""
                                OpenUserName = ""
                                OpenUserRatio = ""
                                OpenerAndFollowerEnableModify = False
                                if isDepartment("020140")=1 then
                                    OpenerAndFollowerEnableModify=True
                                End If
                                If DispatchOrdID<>"" Then
                                    openSql="select * from ServiceOrderCommissionDetails where ServiceOrderID="&DispatchOrdID&" and PersonType='Opener'"
                                    rs.open openSql,objConn,1,1
                                    If not rs.Eof Then
                                    OpenUserID = rs("PersonID")
                                    OpenUserName = rs("PersonName")
                                    OpenUserRatio = rs("CommissionRatio")
                                    End If
                                    rs.close()
                                End If
                                %>
                                <div class="label" style="float: left;margin-left: 0px;"><label for="input-small">开单人:</label></div>
                                <div class="input" style="float:left;margin-left: 70px;">
                                    <input id="Entourage_<%=EntourageID_OpenUser%>" name="OpenUserID" type="hidden" value="<%=OpenUserID%>">
                                    <input type="text" id="EntourageName_<%=EntourageID_OpenUser%>" name="OpenUserName" <% if OpenerAndFollowerEnableModify=False Then%> disabled <% end If%> class="small" <%If OpenUserID="" Or OpenerAndFollowerEnableModify=True Then%>onclick="javascript:JS_EntourageOpen('<%=EntourageID_OpenUser%>','-<%=departmentID_OpenUser%>');"<%End If%> style="width:138px;" value="<%=OpenUserName%>" readonly="true">
                                </div>
                                <%
                                    followerCount = 0
                                    showFollower = False
                                    If DispatchOrdID<>"" Then
                                        followerSqlCount="select count(1) from ServiceOrderCommissionDetails where ServiceOrderID="&DispatchOrdID&" and PersonType='Follower'"
                                        rs.open followerSqlCount,objConn,1,1
                                        If Not rs.EOF Then
                                            ' 获取查询结果
                                            followerCount = rs.Fields(0).Value
                                            if followerCount>0 then
                                                showFollower = True
                                            else
                                                showFollower = False
                                            end if
                                        Else
                                            ' 如果记录集为空,将结果设为 0
                                            followerCount = 0
                                            showFollower = False
                                        End If
                                        rs.close()
                                    End If
                                    EditFollower=True
                                    showTopFollowerAdd=True
                                    if showFollower=True then
                                        showTopFollowerAdd=False
                                    End If
                                    if OpenerAndFollowerEnableModify=False Then
                                        EditFollower=False
                                        showTopFollowerAdd=False
                                    End If
                                %>
                                <div class="label" style="float: left;margin-left: 226px;"><label for="input-small">提成比例(%):</label></div>
                                <div class="input" style="float:left;margin-left: 86px;">
                                    <input type="text" id="OpenUserRatio" name="OpenUserRatio" <% if EditFollower=False Then%> disabled <% end If%> value="<%=OpenUserRatio%>" class="small" style="width:50px;">
                                </div>
                                <div class="input" style="float:left;margin-left: 10px;">
                                <button class="ui-state-default" <% If showTopFollowerAdd=False then %> style='display:none' <% End If%> id="inputTopAddFollower" onclick="return showFollower();">添加跟单人</button>
                                </div>
                                </div>
                            
                                <div class="field" id="followerDiv" <% If showFollower<>True  then %> style="display:none;" <% end if%>>
                                    <!-- 跟单人 -->
                                    <input type="hidden" id="hidFollowerCount" name="FollowersCount" value="<%=followerCount%>"/>
                                    <div class="label" style="float: left;margin-left: 10px;"><label for="input-small">跟单人:</label></div>
                                    <div class="input" style="float:left;margin-left: 70px;">
                                        <div id="FollowersList">
                                            <%
                                            FollowerCount = 1
                                            EntourageID_Follower = "-9"
                                            departmentID_Follower = "9"
                                            if DispatchOrdID<>"" then
                                                followerSql="select * from ServiceOrderCommissionDetails where ServiceOrderID="&DispatchOrdID&" and PersonType='Follower'"
                                                rs.open followerSql,objConn,1,1
                                                FollowerIndex=1
                                                do while not rs.Eof
                                                    FollowerID = rs("PersonID")
                                                    FollowerName = rs("PersonName")
                                                    FollowerRatio = rs("CommissionRatio")
                                            %>
                                            <div class="follower-item">
                                                <input  name="FollowerID_<%=FollowerIndex%>" id="FollowerId_<%=FollowerIndex%>" type="hidden" value="<%=FollowerID%>">
                                                <input type="text" name="FollowerName_<%=FollowerIndex%>"  <% if EditFollower=False Then %> disabled <% End If%> id="FollowerName_<%=FollowerIndex%>" class="small" <%If FollowerID="" Or isDepartment("020140")=1 Then%>onclick="javascript:JS_EntourageOpen('<%=EntourageID_Follower%>_<%=FollowerCount%>','-<%=departmentID_Follower%>');"<%End If%> style="width:138px;" value="<%=FollowerName%>" readonly="true">
                                                <div class="label" style="float: left;margin-left: 226px;"><label for="input-small">提成比例(%):</label></div>
                                                <div class="input" style="float:left;margin-left: 87px;">
                                                    <input type="text" id="FollowerRatio_<%=FollowerIndex%>"  <% if EditFollower=False Then %> disabled <% End If%> name="FollowerRatio_<%=FollowerIndex%>" class="small" style="width:50px;" value="<%=FollowerRatio%>" />
                                                </div>
                                                <div class="input" style="float:left;margin-left: 10px;">
                                                    <button <% if EditFollower=False Then %> style="display:none" <% End If%> onclick="return removeFollower();">删除</button>
                                                </div>
                                            </div>
                                            <%
                                                FollowerIndex=FollowerIndex+1
                                                rs.movenext
                                                loop
                                                rs.close()
                                            End If
                                            %>
                                        </div>
                                        <button  <% if EditFollower=False Then %> style="display:none" <% End If%> class="ui-state-default" onclick="return addFollower()">添加跟单人</button>
                                    </div>
                                </div>
                                <style>
                                    /* 其他已有样式... */
                                    .follower-item {
                                        margin-bottom: 10px; /* 每个跟单人项之间的间距 */
                                        clear: both; /* 清除浮动 */
                                        overflow: hidden; /* 处理浮动元素 */
                                    }
                                    .follower-item input {
                                        margin-right: 10px; /* 输入框之间的间距 */
                                    }
                                </style>
                            <script LANGUAGE="javascript">
                            function showFollower(){
                                document.getElementById("followerDiv").style.display="";
                                document.getElementById("inputTopAddFollower").style.display="none";
                                addFollower()
                                return false;
                            }
                            function checkOpenerAndFollower(){
                                // 获取开单人信息
                                var openerNameInput = document.getElementById("EntourageName_<%=EntourageID_OpenUser%>");
                                var openerName = openerNameInput.value;
                                var openerRatioInput = document.getElementById("OpenUserRatio");
                                var openerRatio = openerRatioInput.value;
                                // 检测开单人姓名是否为空
                                //if (openerName === "") {
                                //    alert("开单人姓名不能为空");
                                //    return false;
                                //}
                                // 检测开单人提成比例是否为空
                                if (openerName !="" && openerRatio === "") {
                                    alert("开单人提成比例不能为空");
                                    return false;
                                }
                                // 存储跟单人姓名和提成比例
                                var followerNames = [];
                                var followerRatios = [];
                                var followersList = document.getElementById('FollowersList');
                                var followerItems = followersList.getElementsByClassName('follower-item');
                                // 遍历跟单人,收集姓名和提成比例并进行检测
                                for (var i = 0; i < followerItems.length; i++) {
                                    var followerNameInput = followerItems[i].querySelector('input[name^="FollowerName_"]');
                                    var followerName = followerNameInput.value;
                                    var followerRatioInput = followerItems[i].querySelector('input[name^="FollowerRatio_"]');
                                    var followerRatio = followerRatioInput.value;
                                    // 检测跟单人姓名是否为空
                                    if (followerName === "") {
                                        alert("跟单人姓名不能为空");
                                        return false;
                                    }
                                    // 检测跟单人提成比例是否为空
                                    if (followerRatio === "") {
                                        alert("跟单人提成比例不能为空");
                                        return false;
                                    }
                                    followerNames.push(followerName);
                                    followerRatios.push(parseFloat(followerRatio));
                                }
                                // 将开单人提成比例转换为浮点数
                                openerRatio = parseFloat(openerRatio);
                                // 检测逻辑 1: 开单人与跟单人比例加起不能超过 100
                                var totalRatio = openerRatio;
                                for (var j = 0; j < followerRatios.length; j++) {
                                    totalRatio += followerRatios[j];
                                }
                                if (totalRatio > 100) {
                                    alert("开单人与跟单人提成比例总和不能超过 100%");
                                    return false;
                                }
                                // 检测逻辑 2: 开单人与跟单人不要出现重复
                                if (followerNames.includes(openerName)) {
                                    alert("开单人与跟单人不能重复");
                                    return false;
                                }
                                // 检测逻辑 3: 多个跟单人之间也不要出现重复
                                var uniqueFollowerNames = [];
                                for (var k = 0; k < followerNames.length; k++) {
                                    if (uniqueFollowerNames.includes(followerNames[k])) {
                                        alert("跟单人之间不能重复");
                                        return false;
                                    }
                                    uniqueFollowerNames.push(followerNames[k]);
                                }
                                return true;
                            }
                            function addFollower() {
                                var followersList = document.getElementById('FollowersList');
                                var newFollower = document.createElement('div');
                                newFollower.className = 'follower-item';
                                var followerCount = followersList.children.length + 1;
                                newFollower.innerHTML = `
                                    <input id="Entourage_<%=EntourageID_Follower%>_${followerCount}" name="FollowerID_${followerCount}" type="hidden" value="">
                                    <input type="text" id="EntourageName_<%=EntourageID_Follower%>_${followerCount}" name="FollowerName_${followerCount}" class="small" onclick="javascript:JS_EntourageOpen('<%=EntourageID_Follower%>_${followerCount}','-<%=departmentID_Follower%>');" style="width:138px;" value="" readonly="true">
                                    <div class="label" style="float: left;margin-left: 226px;"><label for="input-small">提成比例(%):</label></div>
                                    <div class="input" style="float:left;margin-left: 87px;">
                                        <input type="text" id="FollowerRatio_${followerCount}" name="FollowerRatio_${followerCount}" class="small" style="width:50px;">
                                    </div>
                                    <div class="input" style="float:left;margin-left: 10px;">
                                        <button onclick="return removeFollower();">删除</button>
                                    </div>
                                `;
                                followersList.appendChild(newFollower);
                                addFollowerCount(1);
                                return false;
                            }
                            function removeFollower(index){
                                var followersList = document.getElementById('FollowersList');
                                var followerItems = followersList.getElementsByClassName('follower-item');
                                // 如果传入了 index 参数,删除指定索引的元素;否则删除最后一个元素
                                var elementToRemove = index !== undefined ? followerItems[index] : followersList.lastElementChild;
                                if (elementToRemove) {
                                    elementToRemove.remove();
                                }
                                followersList = document.getElementById('FollowersList');
                                let len=followersList.children.length;
                                // 更新剩余元素的 name 属性和索引
                                var newFollowerCount = 1;
                                for (var i = 0; i < len; i++) {
                                    var item = followerItems[i];
                                    var followerIdInput = item.querySelector('input[name^="FollowerID_"]');
                                    var followerNameInput = item.querySelector('input[name^="FollowerName_"]');
                                    var followerRatioInput = item.querySelector('input[name^="FollowerRatio_"]');
                                    if (followerIdInput) {
                                        followerIdInput.name = `FollowerID_${newFollowerCount}`;
                                        followerIdInput.id = `FollowerId_${newFollowerCount}`;
                                    }
                                    if (followerNameInput) {
                                        followerNameInput.name = `FollowerName_${newFollowerCount}`;
                                        followerNameInput.id = `FollowerName_${newFollowerCount}`;
                                    }
                                    if (followerRatioInput) {
                                        followerRatioInput.name = `FollowerRatio_${newFollowerCount}`;
                                        followerRatioInput.id = `FollowerRatio_${newFollowerCount}`;
                                    }
                                    newFollowerCount++;
                                }
                                if(followersList.children.length==0){
                                    document.getElementById("followerDiv").style.display="none";
                                    document.getElementById("inputTopAddFollower").style.display="";
                                }
                                addFollowerCount(-1);
                                return false;
                            }
                            function addFollowerCount(val){
                                var hid=document.getElementById("hidFollowerCount");
                                var oldv=hid.value;
                                hid.value=parseInt(oldv)+val;
                            }
                            </script>
                            <%If isDepartment("070127")=1 Then%>
                            <div class="field">
                                        <%'主要企微客服
@@ -1585,10 +1303,7 @@
                    <script LANGUAGE="javascript">
                        //保存调度单(新增)
                        function form1_submit24_1(){
                            let checkResult=checkOpenerAndFollower();
                            if(!checkResult){
                                return;
                            }
                            DispatchOrdPerfomance=document.getElementById('DispatchOrdPerfomance').value; //绩效计价
                            ServiceOrdTraTxnPrice=document.getElementById('ServiceOrdTraTxnPrice').value; //成交价
                            //if ((DispatchOrdPerfomance=='0' || DispatchOrdPerfomance=='') && ServiceOrdTraTxnPrice!='0')
@@ -1609,10 +1324,7 @@
                        }
                        //保存调度单(修改)
                        function form1_submit25_1(){
                            let checkResult=checkOpenerAndFollower();
                            if(!checkResult){
                                return;
                            }
                            DispatchOrdPerfomance=document.getElementById('DispatchOrdPerfomance').value; //绩效计价
                            ServiceOrdTraTxnPrice=document.getElementById('ServiceOrdTraTxnPrice').value; //成交价
                            if(document.getElementById("RV_PointE_TXT")!=null){
@@ -1641,10 +1353,7 @@
                        }
                        //下发调度单(新增)
                        function form1_submit24_2(){
                            let checkResult=checkOpenerAndFollower();
                            if(!checkResult){
                                return;
                            }
                            DispatchOrdPerfomance=document.getElementById('DispatchOrdPerfomance').value; //绩效计价
                            ServiceOrdTraTxnPrice=document.getElementById('ServiceOrdTraTxnPrice').value; //成交价
                            //if ((DispatchOrdPerfomance=='0' || DispatchOrdPerfomance=='') && ServiceOrdTraTxnPrice!='0')
@@ -1665,10 +1374,7 @@
                        }
                        //下发调度单(修改)
                        function form1_submit25_2(){
                            let checkResult=checkOpenerAndFollower();
                            if(!checkResult){
                                return;
                            }
                            DispatchOrdPerfomance=document.getElementById('DispatchOrdPerfomance').value; //绩效计价
                            ServiceOrdTraTxnPrice=document.getElementById('ServiceOrdTraTxnPrice').value; //成交价
                            //if ((DispatchOrdPerfomance=='0' || DispatchOrdPerfomance=='') && ServiceOrdTraTxnPrice!='0')
@@ -1689,10 +1395,7 @@
                        }
                        //审核通过调度单(修改)
                        function form1_submit28_1(){
                            let checkResult=checkOpenerAndFollower();
                            if(!checkResult){
                                return;
                            }
                            DispatchOrdPerfomance=document.getElementById('DispatchOrdPerfomance').value; //绩效计价
                            ServiceOrdTraTxnPrice=document.getElementById('ServiceOrdTraTxnPrice').value; //成交价
                            //if ((DispatchOrdPerfomance=='0' || DispatchOrdPerfomance=='') && ServiceOrdTraTxnPrice!='0')
@@ -1716,10 +1419,7 @@
                        }
                        //审核不通过调度单(修改)
                        function form1_submit28_2(){
                            let checkResult=checkOpenerAndFollower();
                            if(!checkResult){
                                return;
                            }
                        if(confirm("确定审核不通过调度单?"))
                            {
                                document.getElementById("MessageContents_form1").value=document.getElementById("MessageContents").value;
Report_DispatchDetailed_Data.php
@@ -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 = [];
@@ -381,7 +381,7 @@
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 +401,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{
@@ -522,7 +522,7 @@
            $FormArray[$i][48]=$rs['EntourageName'];
            $FormArray[$i][49]=$rs['EntouragePost'];
            $FormArray[$i][50]=$rs['Stime2'];
            $rs2=getDispatchOrderStaff($rs['DispatchOrdID'], $conn);
            $rs2=getDispatchOrderStaff($ServiceOrdID, $conn);
            //如果 $rs2 为空,设置默认值
            if (empty($rs2)) {
                $FormArray[$i][51]='--';
@@ -541,9 +541,9 @@
                    $FormArray[$i][54+$j]=$value['FollowerRatio'];
                    $j++;    
                }    
                if($count<3){
                    //补足3个
                    while($j<3){
                if($count<4){
                    //补足4个
                    while($j<4){
                        $FormArray[$i][53+$j*2]='--';
                        $FormArray[$i][54+$j*2]='';
                        $j++;
@@ -556,8 +556,10 @@
                $FormArray[$i][56]='';
                $FormArray[$i][57]='--';
                $FormArray[$i][58]='';
                $FormArray[$i][59]='--';
                $FormArray[$i][60]='';
            }
            if ($is_CSV==1){$FormArray[$i][59]=$rs['ServiceOrdTaskRemarks'];}
            if ($is_CSV==1){$FormArray[$i][61]=$rs['ServiceOrdTaskRemarks'];}
            $i++;
            //写入数组--End
ServiceOrder.gds
@@ -1181,6 +1181,289 @@
                                        
                                        </div>
                            </div>
                            <div class="field">
                                <!-- 开单人 -->
                                <%
                                EntourageID_OpenUser = "-8"
                                departmentID_OpenUser = "9"
                                OpenUserID = ""
                                OpenUserName = ""
                                OpenUserRatio = ""
                                OpenerAndFollowerEnableModify = False
                                if isDepartment("020140")=1 then
                                    OpenerAndFollowerEnableModify=True
                                End If
                                If ServiceOrdID<>"" Then
                                    openSql="select * from ServiceOrderCommissionDetails where ServiceOrderID="&ServiceOrdID&" and PersonType='Opener'"
                                    rs.open openSql,objConn,1,1
                                    If not rs.Eof Then
                                    OpenUserID = rs("PersonID")
                                    OpenUserName = rs("PersonName")
                                    OpenUserRatio = rs("CommissionRatio")
                                    End If
                                    rs.close()
                                End If
                                %>
                                <div class="label" style="float: left;margin-left: 0px;"><label for="input-small">开单人:</label></div>
                                <div class="input" style="float:left;margin-left: 70px;">
                                    <input id="Entourage_<%=EntourageID_OpenUser%>" name="OpenUserID" type="hidden" value="<%=OpenUserID%>">
                                    <input type="text" id="EntourageName_<%=EntourageID_OpenUser%>" name="OpenUserName" <% if OpenerAndFollowerEnableModify=False Then%> disabled <% end If%> class="small" <%If OpenUserID="" Or OpenerAndFollowerEnableModify=True Then%>onclick="javascript:JS_EntourageOpen('<%=EntourageID_OpenUser%>','-<%=departmentID_OpenUser%>');"<%End If%> style="width:138px;" value="<%=OpenUserName%>" readonly="true">
                                </div>
                                <%
                                    followerCount = 0
                                    showFollower = False
                                    If ServiceOrdID<>"" Then
                                        followerSqlCount="select count(1) from ServiceOrderCommissionDetails where ServiceOrderID="&ServiceOrdID&" and PersonType='Follower'"
                                        rs.open followerSqlCount,objConn,1,1
                                        If Not rs.EOF Then
                                            ' 获取查询结果
                                            followerCount = rs.Fields(0).Value
                                            if followerCount>0 then
                                                showFollower = True
                                            else
                                                showFollower = False
                                            end if
                                        Else
                                            ' 如果记录集为空,将结果设为 0
                                            followerCount = 0
                                            showFollower = False
                                        End If
                                        rs.close()
                                    End If
                                    EditFollower=True
                                    showTopFollowerAdd=True
                                    if showFollower=True then
                                        showTopFollowerAdd=False
                                    End If
                                    if OpenerAndFollowerEnableModify=False Then
                                        EditFollower=False
                                        showTopFollowerAdd=False
                                    End If
                                %>
                                <div class="label" style="float: left;margin-left: 226px;"><label for="input-small">提成比例(%):</label></div>
                                <div class="input" style="float:left;margin-left: 86px;">
                                    <input type="text" id="OpenUserRatio" name="OpenUserRatio" <% if EditFollower=False Then%> disabled <% end If%> value="<%=OpenUserRatio%>" class="small" style="width:50px;">
                                </div>
                                <div class="input" style="float:left;margin-left: 10px;">
                                <button class="ui-state-default" <% If showTopFollowerAdd=False then %> style='display:none' <% End If%> id="inputTopAddFollower" onclick="return showFollower();">添加跟单人</button>
                                </div>
                                </div>
                                <div class="field" id="followerDiv" <% If showFollower<>True  then %> style="display:none;" <% end if%>>
                                    <!-- 跟单人 -->
                                    <input type="hidden" id="hidFollowerCount" name="FollowersCount" value="<%=followerCount%>"/>
                                    <div class="label" style="float: left;margin-left: 10px;"><label for="input-small">跟单人:</label></div>
                                    <div class="input" style="float:left;margin-left: 70px;">
                                        <div id="FollowersList">
                                            <%
                                            FollowerCount = 1
                                            EntourageID_Follower = "-9"
                                            departmentID_Follower = "9"
                                            if ServiceOrdID<>"" then
                                                followerSql="select * from ServiceOrderCommissionDetails where ServiceOrderID="&ServiceOrdID&" and PersonType='Follower'"
                                                rs.open followerSql,objConn,1,1
                                                FollowerIndex=1
                                                do while not rs.Eof
                                                    FollowerID = rs("PersonID")
                                                    FollowerName = rs("PersonName")
                                                    FollowerRatio = rs("CommissionRatio")
                                            %>
                                            <div class="follower-item">
                                                <input  name="FollowerID_<%=FollowerIndex%>" id="FollowerId_<%=FollowerIndex%>" type="hidden" value="<%=FollowerID%>">
                                                <input type="text" name="FollowerName_<%=FollowerIndex%>"  <% if EditFollower=False Then %> disabled <% End If%> id="FollowerName_<%=FollowerIndex%>" class="small" <%If FollowerID="" Or isDepartment("020140")=1 Then%>onclick="javascript:JS_EntourageOpen('<%=EntourageID_Follower%>_<%=FollowerCount%>','-<%=departmentID_Follower%>');"<%End If%> style="width:138px;" value="<%=FollowerName%>" readonly="true">
                                                <div class="label" style="float: left;margin-left: 226px;"><label for="input-small">提成比例(%):</label></div>
                                                <div class="input" style="float:left;margin-left: 87px;">
                                                    <input type="text" id="FollowerRatio_<%=FollowerIndex%>"  <% if EditFollower=False Then %> disabled <% End If%> name="FollowerRatio_<%=FollowerIndex%>" class="small" style="width:50px;" value="<%=FollowerRatio%>" />
                                                </div>
                                                <div class="input" style="float:left;margin-left: 10px;">
                                                    <button <% if EditFollower=False Then %> style="display:none" <% End If%> onclick="return removeFollower();">删除</button>
                                                </div>
                                            </div>
                                            <%
                                                FollowerIndex=FollowerIndex+1
                                                rs.movenext
                                                loop
                                                rs.close()
                                            End If
                                            %>
                                        </div>
                                        <button  <% if EditFollower=False Then %> style="display:none" <% End If%> class="ui-state-default" onclick="return addFollower()">添加跟单人</button>
                                    </div>
                                </div>
                                <style>
                                    /* 其他已有样式... */
                                    .follower-item {
                                        margin-bottom: 10px; /* 每个跟单人项之间的间距 */
                                        clear: both; /* 清除浮动 */
                                        overflow: hidden; /* 处理浮动元素 */
                                    }
                                    .follower-item input {
                                        margin-right: 10px; /* 输入框之间的间距 */
                                    }
                                </style>
                            <script LANGUAGE="javascript">
                            function showFollower(){
                                document.getElementById("followerDiv").style.display="";
                                document.getElementById("inputTopAddFollower").style.display="none";
                                addFollower()
                                return false;
                            }
                            function checkOpenerAndFollower(){
                                // 获取开单人信息
                                var openerNameInput = document.getElementById("EntourageName_<%=EntourageID_OpenUser%>");
                                var openerName = openerNameInput.value;
                                var openerRatioInput = document.getElementById("OpenUserRatio");
                                var openerRatio = openerRatioInput.value;
                                // 检测开单人姓名是否为空
                                //if (openerName === "") {
                                //    alert("开单人姓名不能为空");
                                //    return false;
                                //}
                                // 检测开单人提成比例是否为空
                                if (openerName !="" && openerRatio === "") {
                                    alert("开单人提成比例不能为空");
                                    return false;
                                }
                                // 存储跟单人姓名和提成比例
                                var followerNames = [];
                                var followerRatios = [];
                                var followersList = document.getElementById('FollowersList');
                                var followerItems = followersList.getElementsByClassName('follower-item');
                                // 遍历跟单人,收集姓名和提成比例并进行检测
                                for (var i = 0; i < followerItems.length; i++) {
                                    var followerNameInput = followerItems[i].querySelector('input[name^="FollowerName_"]');
                                    var followerName = followerNameInput.value;
                                    var followerRatioInput = followerItems[i].querySelector('input[name^="FollowerRatio_"]');
                                    var followerRatio = followerRatioInput.value;
                                    // 检测跟单人姓名是否为空
                                    if (followerName === "") {
                                        alert("跟单人姓名不能为空");
                                        return false;
                                    }
                                    // 检测跟单人提成比例是否为空
                                    if (followerRatio === "") {
                                        alert("跟单人提成比例不能为空");
                                        return false;
                                    }
                                    followerNames.push(followerName);
                                    followerRatios.push(parseFloat(followerRatio));
                                }
                                // 将开单人提成比例转换为浮点数
                                openerRatio = parseFloat(openerRatio);
                                // 检测逻辑 1: 开单人与跟单人比例加起不能超过 100
                                var totalRatio = openerRatio;
                                for (var j = 0; j < followerRatios.length; j++) {
                                    totalRatio += followerRatios[j];
                                }
                                if (totalRatio > 100) {
                                    alert("开单人与跟单人提成比例总和不能超过 100%");
                                    return false;
                                }
                                // 检测逻辑 2: 开单人与跟单人不要出现重复
                                if (followerNames.includes(openerName)) {
                                    alert("开单人与跟单人不能重复");
                                    return false;
                                }
                                // 检测逻辑 3: 多个跟单人之间也不要出现重复
                                var uniqueFollowerNames = [];
                                for (var k = 0; k < followerNames.length; k++) {
                                    if (uniqueFollowerNames.includes(followerNames[k])) {
                                        alert("跟单人之间不能重复");
                                        return false;
                                    }
                                    uniqueFollowerNames.push(followerNames[k]);
                                }
                                return true;
                            }
                            function addFollower() {
                                var followersList = document.getElementById('FollowersList');
                                var newFollower = document.createElement('div');
                                newFollower.className = 'follower-item';
                                var followerCount = followersList.children.length + 1;
                                newFollower.innerHTML = `
                                    <input id="Entourage_<%=EntourageID_Follower%>_${followerCount}" name="FollowerID_${followerCount}" type="hidden" value="">
                                    <input type="text" id="EntourageName_<%=EntourageID_Follower%>_${followerCount}" name="FollowerName_${followerCount}" class="small" onclick="javascript:JS_EntourageOpen('<%=EntourageID_Follower%>_${followerCount}','-<%=departmentID_Follower%>');" style="width:138px;" value="" readonly="true">
                                    <div class="label" style="float: left;margin-left: 226px;"><label for="input-small">提成比例(%):</label></div>
                                    <div class="input" style="float:left;margin-left: 87px;">
                                        <input type="text" id="FollowerRatio_${followerCount}" name="FollowerRatio_${followerCount}" class="small" style="width:50px;">
                                    </div>
                                    <div class="input" style="float:left;margin-left: 10px;">
                                        <button onclick="return removeFollower();">删除</button>
                                    </div>
                                `;
                                followersList.appendChild(newFollower);
                                addFollowerCount(1);
                                return false;
                            }
                            function removeFollower(index){
                                var followersList = document.getElementById('FollowersList');
                                var followerItems = followersList.getElementsByClassName('follower-item');
                                // 如果传入了 index 参数,删除指定索引的元素;否则删除最后一个元素
                                var elementToRemove = index !== undefined ? followerItems[index] : followersList.lastElementChild;
                                if (elementToRemove) {
                                    elementToRemove.remove();
                                }
                                followersList = document.getElementById('FollowersList');
                                let len=followersList.children.length;
                                // 更新剩余元素的 name 属性和索引
                                var newFollowerCount = 1;
                                for (var i = 0; i < len; i++) {
                                    var item = followerItems[i];
                                    var followerIdInput = item.querySelector('input[name^="FollowerID_"]');
                                    var followerNameInput = item.querySelector('input[name^="FollowerName_"]');
                                    var followerRatioInput = item.querySelector('input[name^="FollowerRatio_"]');
                                    if (followerIdInput) {
                                        followerIdInput.name = `FollowerID_${newFollowerCount}`;
                                        followerIdInput.id = `FollowerId_${newFollowerCount}`;
                                    }
                                    if (followerNameInput) {
                                        followerNameInput.name = `FollowerName_${newFollowerCount}`;
                                        followerNameInput.id = `FollowerName_${newFollowerCount}`;
                                    }
                                    if (followerRatioInput) {
                                        followerRatioInput.name = `FollowerRatio_${newFollowerCount}`;
                                        followerRatioInput.id = `FollowerRatio_${newFollowerCount}`;
                                    }
                                    newFollowerCount++;
                                }
                                if(followersList.children.length==0){
                                    document.getElementById("followerDiv").style.display="none";
                                    document.getElementById("inputTopAddFollower").style.display="";
                                }
                                addFollowerCount(-1);
                                return false;
                            }
                            function addFollowerCount(val){
                                var hid=document.getElementById("hidFollowerCount");
                                var oldv=hid.value;
                                hid.value=parseInt(oldv)+val;
                            }
                            </script>
                            <%If isDepartment("070127")=1 Then%>
                            <div class="field">
                                        <%'主要企微客服
@@ -1483,22 +1766,30 @@
                    <script LANGUAGE="javascript">
                        //生成咨询单(新增)
                        function form1_submit19_1(){
                        document.form1.action = "admin_save.gds";
                        document.form1.admin_save.value = "19";
                        document.form1.NEWOrder.value = "";
                        document.form1.ServiceOrdState.value = "1";
                        document.getElementById("zhezhao").style.display="block";
                        document.getElementById("login").style.display="block";
                        form1.submit();
                            let checkResult=checkOpenerAndFollower();
                            if(!checkResult){
                                return;
                            }
                            document.form1.action = "admin_save.gds";
                            document.form1.admin_save.value = "19";
                            document.form1.NEWOrder.value = "";
                            document.form1.ServiceOrdState.value = "1";
                            document.getElementById("zhezhao").style.display="block";
                            document.getElementById("login").style.display="block";
                            form1.submit();
                        }
                        //生成服务单(新增)
                        function form1_submit19_2(){
                        document.form1.action = "admin_save.gds";
                        document.form1.admin_save.value = "19";
                        document.form1.ServiceOrdState.value = "2";
                        document.getElementById("zhezhao").style.display="block";
                        document.getElementById("login").style.display="block";
                        form1.submit();
                            let checkResult=checkOpenerAndFollower();
                            if(!checkResult){
                                return;
                            }
                            document.form1.action = "admin_save.gds";
                            document.form1.admin_save.value = "19";
                            document.form1.ServiceOrdState.value = "2";
                            document.getElementById("zhezhao").style.display="block";
                            document.getElementById("login").style.display="block";
                            form1.submit();
                        }
                        //生成无效电话(新增)
                        function form1_submit19_4(){
@@ -1527,6 +1818,10 @@
                        }
                        //生成/保存服务单(修改)
                        function form1_submit20_2(){
                            let checkResult=checkOpenerAndFollower();
                            if(!checkResult){
                                return;
                            }
                            document.getElementById("MessageContents_form1").value=document.getElementById("MessageContents").value;
                            document.form1.action = "admin_save.gds";
                            document.form1.admin_save.value = "20";
admin_save.gds
@@ -1050,8 +1050,9 @@
rs.close()
ServiceOrdNo    = ServiceOrdClass& year(now())&Right("0"&month(now()),2)&Right("0"&day(now()),2) & "-"&Right("00"&ServiceOrdNo,3)
'保存开单人及提成比例的函数
SaveOpenerCommission ServiceOrdID
SaveFollowers ServiceOrdID
'咨询单转为服务单('自动审核)
If ServiceOrdState="2" then
    sql="update ServiceOrder set ServiceOrd_NS_ID="&session("adminID")&",ServiceOrd_NS_Time=getdate(),ServiceOrd_AP_Check=1,ServiceOrd_AP_Time=getdate(),ServiceOrd_AP_ID="&session("adminID")&" where ServiceOrdID="&ServiceOrdID
@@ -1314,7 +1315,9 @@
ServiceOrd_Check        = SafeRequest(Request.form("ServiceOrd_Check"))        '当前审核操作
EditDataForm            = SafeRequest(Request.form("EditDataForm"))            '当前修改项目
'保存开单人及提成比例的函数
SaveOpenerCommission ServiceOrdID
SaveFollowers ServiceOrdID
Call RequestForm(Origin)
session("Origin")=Origin
@@ -1836,6 +1839,7 @@
    End If
End If
Response.Redirect ReturnURL&"&SystemMessageType=3&SMT="&SMT
Response.End%>
@@ -2063,8 +2067,6 @@
sql="update DispatchOrd set DispatchOrdTraSDTime='"&DispatchOrdTraSDTime&"' where DispatchOrdID="&DispatchOrdID
objConn.Execute sql
End If
SaveOpenerCommission DispatchOrdID
SaveFollowers DispatchOrdID
'写入附加项目费用
If AddMoneyType<>"" And AddMoneyType<>"0" And AddMoney>0 And StretcherMoney>0 Then
@@ -2409,8 +2411,7 @@
ServiceOrdTraEnd        = SafeRequest(Request.form("ServiceOrdTraEnd"))        '转入地址
EditDataForm            = SafeRequest(Request.form("EditDataForm"))            '当前修改项目
SaveOpenerCommission DispatchOrdID
SaveFollowers DispatchOrdID
If ServiceOrdTraStreet<>"" Then DispatchOrdTraStreet=ServiceOrdTraStreet
If ServiceOrdTraVia<>"" Then DispatchOrdTraVia=ServiceOrdTraVia
web.config
@@ -17,7 +17,7 @@
            <remove name="FastCGI" />
            <add name="gds" path="*.gds" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\System32\inetsrv\asp.dll" resourceType="File" preCondition="bitness64" />
            <add name="FastCGI" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="D:\project\急救转运\code\php\php-cgi.exe" resourceType="File" requireAccess="Script" />
            <add name="php" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="C:\php\php-cgi.exe" resourceType="File" requireAccess="Script" />
        </handlers>
        <httpErrors errorMode="DetailedLocalOnly" />