Junjie
2023-06-19 936a3f961de4e7de9e2b28d6cb36dadb1efa57e1
src/main/webapp/views/shuttle.html
@@ -20,7 +20,7 @@
        <div style="padding: 10px;height: 100%">
            <!-- 日志监控板 -->
            <div class="log-board">
                <div class="command-log" id="commandLogId">
                <div class="command-log" id="commandLogId" style="width: 5%;">
<!--                    <div data-shuttleNo="1" class="shuttle-command-item">-->
<!--                        <label>1#</label>-->
<!--                        <button class="demoBtn pos-btn">数据维护</button>-->
@@ -28,24 +28,28 @@
<!--                    </div>-->
                </div>
                <!-- 堆垛机状态位信息 -->
                <div class="shuttle-state">
                <div class="shuttle-state" style="width: 95%;">
                    <table id="shuttle-state-table">
                        <thead>
                            <tr>
                                <th>四向穿梭车</th>
                                <th>待定</th>
                                <th>状态</th>
                                <th>有物</th>
                                <th>在轨</th>
                                <th>任务状态</th>
                                <th>小车状态</th>
                                <th>当前二维码</th>
                                <th>电量</th>
                                <th>排</th>
                                <th>列</th>
                                <th>层</th>
                                <th>等待WCS确认</th>
                                <th>定位</th>
                                <th>充电状态</th>
                                <th>报警信息1</th>
                                <th>报警信息2</th>
                                <th>电池温度</th>
                                <th>错误编号</th>
                                <th>plc输出状态IO-顶升位</th>
                                <th>plc输出状态IO-换向位</th>
                                <th>plc输出状态IO-抱闸位</th>
                                <th>plc输出状态IO-充电位</th>
                                <th>错误信息码</th>
                                <th>plc输入状态</th>
                                <th>当前或之前二维码</th>
                                <th>x偏移量</th>
                                <th>y偏移量</th>
                                <th>电压</th>
                                <th>模拟量</th>
                            </tr>
                        </thead>
                        <tbody>
@@ -61,12 +65,15 @@
                            <th>四向穿梭车</th>
                            <th>工作号</th>
                            <th>状态</th>
                            <th>源站</th>
                            <th>目标站</th>
                            <th>源库位</th>
                            <th>目标库位</th>
                            <th>速度</th>
                            <th>升降伺服速度</th>
                            <th>行走伺服速度</th>
                            <th>升降伺服负载</th>
                            <th>行走伺服负载</th>
                            <th>作业标记</th>
                            <th>库位号</th>
                            <th>当前楼层</th>
                        </tr>
                    </thead>
                    <tbody>
@@ -94,35 +101,83 @@
                <!-- 设备任务操作 -->
                <div class="task-operator">
                    <div style="display: flex;">
                        <div class="task-operator" style="height: auto;width: 100%;">
                            <div class="operator-item" style="height: auto">
                                <span class="select-title">源库位/目标库位</span>
                                <div class="select-container" style="height: auto">
                                    <div class="select-container-item">
                                        <span>源库位</span>
                                        <label><input id="sourceLocNo" type="text" name="sourceLocNo" /></label>
                                    </div>
                                    <div class="select-container-item">
                                        <span>目标库位</span>
                                        <label><input id="distLocNo" type="text" name="distLocNo" /></label>
                    <fieldset style="height: auto;padding-bottom: 20px;">
                        <legend>手动操作</legend>
                        <div style="display: flex;">
                            <div style="width: 30%;">
                                <div class="operator-item" style="height: auto;width: 100%;">
                                    <span class="select-title">源库位/目标库位</span>
                                    <div class="select-container" style="height: auto;padding: 30px 10px 20px 10px;">
                                        <div class="select-container-item">
                                            <span>源库位</span>
                                            <label><input id="sourceLocNo" type="text" name="sourceLocNo" /></label>
                                        </div>
                                        <div class="select-container-item">
                                            <span>目标库位</span>
                                            <label><input id="distLocNo" type="text" name="distLocNo" /></label>
                                        </div>
                                        <div style="margin-top: 10px;">
                                            <button class="item" onclick="shuttleOperator(1)">入库</button>
                                            <button class="item" onclick="shuttleOperator(2)">出库</button>
                                            <button class="item" onclick="shuttleOperator(14)">移动到目标库位</button>
                                            <button class="item" onclick="shuttleOperator(16)">移动到提升机</button>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                    <fieldset style="height: auto;padding-bottom: 20px;">
                        <legend>手动操作</legend>
                        <div class="button-group">
                            <button class="item" onclick="shuttleOperator(1)">入库</button>
                            <button class="item" onclick="shuttleOperator(2)">出库</button>
                            <button class="item" onclick="shuttleOperator(3)">托盘顶升</button>
                            <button class="item" onclick="shuttleOperator(4)">托盘下降</button>
                            <button class="item" onclick="shuttleOperator(5)">左移</button>
                            <button class="item" onclick="shuttleOperator(6)">右移</button>
                            <button class="item" onclick="shuttleOperator(7)">前移</button>
                            <button class="item" onclick="shuttleOperator(8)">后移</button>
                            <div style="width: 40%;">
                                <div class="operator-item" style="height: auto;width: 100%;">
                                    <span class="select-title">相关指令</span>
                                    <div class="select-container" style="height: auto;padding: 30px 10px 10px 10px;">
                                        <div class="button-group">
                                            <button class="item" onclick="shuttleOperator(3)">托盘顶升</button>
                                            <button class="item" onclick="shuttleOperator(4)">托盘下降</button>
                                            <button class="item" onclick="shuttleOperator(5)">左移</button>
                                            <button class="item" onclick="shuttleOperator(6)">右移</button>
                                            <button class="item" onclick="shuttleOperator(7)">后移</button>
                                            <button class="item" onclick="shuttleOperator(8)">前移</button>
                                            <button class="item" onclick="shuttleOperator(9)">复位</button>
                                            <button class="item" onclick="shuttleOperator(10)">正方向(右)寻库位</button>
                                            <button class="item" onclick="shuttleOperator(11)">负方向(左)寻库位</button>
                                            <button class="item" onclick="shuttleOperator(12)">正方向(前)寻库位</button>
                                            <button class="item" onclick="shuttleOperator(13)">负方向(后)寻库位</button>
                                            <button class="item" onclick="shuttleOperator(15)">充电开关</button>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <div style="width: 20%;">
                                <div class="operator-item" style="height: auto;width: 100%;">
                                    <span class="select-title">设置配置参数</span>
                                    <div class="select-container" style="height: auto;padding: 30px 10px 10px 10px;">
                                        <div class="select-container-item">
                                            <span>运行速度</span>
                                            <label><input id="runSpeed" type="text" name="runSpeed" /></label>
                                        </div>
                                        <div class="select-container-item">
                                            <span>充电阈值</span>
                                            <label><input id="chargeLine" type="text" name="runSpeed" /></label>
                                        </div>
                                        <div>
                                            <button class="item" onclick="shuttleParamSave()">保存</button>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <div style="width: 15%;">
                                <div class="operator-item" style="height: auto;width: 100%;">
                                    <span class="select-title">配置参数</span>
                                    <div class="select-container" style="height: auto;padding: 30px 10px 10px 10px;">
                                        <div>运行速度:<span id="runSpeedText"></span></div>
                                        <div>充电阈值:<span id="chargeLineText"></span></div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </fieldset>
                </div>
@@ -416,38 +471,6 @@
                console.log(shuttleNo)
                http.get(baseUrl+ "/shuttle/sensor/detl/"+shuttleNo, null, function (res) {
                    $('#shuttleNo1').val(res.data.shuttleNo);
                    // getColor(res.data.liftErr,'#liftErr');
                    // getColor(res.data.inFetchErr,'#inFetchErr');
                    // getColor(res.data.outFetchErr,'#outFetchErr');
                    // getColor(res.data.antiErr,'#antiErr');
                    // getColor(res.data.liftSwitchErr,'#liftSwitchErr');
                    // getColor(res.data.trackErr,'#trackErr');
                    // getColor(res.data.timeoutErr,'#timeoutErr');
                    // getColor(res.data.connectErr,'#connectErr');
                    // getColor(res.data.emergencyErr,'#emergencyErr');
                    // getColor(res.data.taskTypeErr,'#taskTypeErr');
                    // getColor(res.data.taskNoErr,'#taskNoErr');
                    // getColor(res.data.newTaskErr,'#newTaskErr');
                    // getColor(res.data.errTaskErr,'#errTaskErr');
                    // getColor(res.data.stopErr,'#stopErr');
                    // getColor(res.data.offlineTaskErr,'#offlineTaskErr');
                    // getColor(res.data.startTaskErr,'#startTaskErr');
                    // getColor(res.data.voltageTaskErr,'#voltageTaskErr');
                    // getColor(res.data.devpErr,'#devpErr');
                    // getColor(res.data.online,'#online');
                    // getColor(res.data.notOnTrack,'#notOnTrack');
                    // getColor(res.data.lowVoltage,'#lowVoltage');
                    // getColor(res.data.electricityLoss,'#electricityLoss');
                    // getColor(res.data.forcedTravel,'#forcedTravel');
                    // getColor(res.data.demoMode,'#demoMode');
                    // getColor(res.data.brushConnect,'#brushConnect');
                    // getColor(res.data.taskManualForbid,'#taskManualForbid');
                    // getColor(res.data.onlineManualForbid,'#onlineManualForbid');
                    // getColor(res.data.devpEmergency,'#devpEmergency');
                    // getColor(res.data.taskInterrupt,'#taskInterrupt');
                    // getColor(res.data.taskClear,'#taskClear');
                    // getColor(res.data.taskConfirmTimeout,'#taskConfirmTimeout');
                    // getColor(res.data.taskWithCharge,'#taskWithCharge');
                    getColor(res.data.pakInTask,'#pakInTask');
                    getColor(res.data.pakOutTask,'#pakOutTask');
                    getColor(res.data.pakMoveTask,'#pakMoveTask');
@@ -463,8 +486,6 @@
                    getColor(res.data.goOHpAvoidFinish,'#goOHpAvoidFinish');
                    getColor(res.data.goHpAvoidErr,'#goHpAvoidErr');
                    getColor(res.data.goOHpAvoidErr,'#goOHpAvoidErr');
                    // getColor(res.data.autoMode,'#autoMode');
                    // getColor(res.data.voltageLow,'#voltageLow');
                })
            },
            end: function () {
@@ -481,36 +502,6 @@
            $(e).attr("style", "color: #00FF00;");
        }
    }
    // $(document).on('click ','.mode-btn', function () {
    //     let shuttleNo = Number($(this).parent().attr("data-shuttleNo"));
    //     layer.confirm("改变" + shuttleNo + ' 号穿梭车在线状态吗?', function(){
    //         var index = layer.load(1, {
    //             shade: [0.1,'#fff']
    //         });
    //         $.ajax({
    //             url: baseUrl+ "/shuttle/mode/switch",
    //             headers: {'token': localStorage.getItem('token')},
    //             data: {
    //                 shuttleNo: Number(shuttleNo),
    //                 password: 'root'
    //             },
    //             method: 'POST',
    //             success: function (res) {
    //                 layer.close(index);
    //                 if (res.code === 200){
    //                     layer.msg(res.msg, {icon: 1});
    //                 } else if (res.code === 403){
    //                     window.location.href = baseUrl+"/login";
    //                 }  else {
    //                     layer.msg(res.msg, {icon: 2});
    //                 }
    //             }
    //         });
    //     });
    // })
    $(document).on('click ','#save', function () {
        http.post(baseUrl+ "/shuttle/detl/update", {
@@ -552,8 +543,8 @@
                        //渲染四向穿梭车数据维护和设备信息html
                        let shuttleCommandLogBox = '<div class="shuttle-command-item" data-shuttleNo="' + table[i - 1].shuttleNo + '">\n' +
                            '<label>' + table[i - 1].shuttleNo + '#</label>\n' +
                            '<button class="demoBtn pos-btn">数据维护</button>\n' +
                            '<button class="demoBtn mode-btn" id="mode-' + table[i - 1].shuttleNo + '">设备信息</button>\n' +
                            // '<button class="demoBtn pos-btn">数据维护</button>\n' +
                            // '<button class="demoBtn mode-btn" id="mode-' + table[i - 1].shuttleNo + '">设备信息</button>\n' +
                            '</div>'
                        $("#commandLogId").append(shuttleCommandLogBox);
                    }
@@ -584,19 +575,23 @@
                        // $("#mode-"+table[i-1].shuttleNo).html(table[i-1].statusVal===0?'联机':'脱机');
                        let tr = tableEl.find("tr").eq(i);
                        setVal(tr.children("td").eq(0), table[i-1].shuttleNo);
                        setVal(tr.children("td").eq(1), table[i-1].status);
                        setVal(tr.children("td").eq(2), table[i-1].status);
                        setVal(tr.children("td").eq(3), table[i-1].loading);
                        setVal(tr.children("td").eq(4), table[i-1].track);
                        setVal(tr.children("td").eq(5), table[i-1].batteryPower);
                        setVal(tr.children("td").eq(6), table[i-1].row);
                        setVal(tr.children("td").eq(7), table[i-1].bay);
                        setVal(tr.children("td").eq(8), table[i-1].lev);
                        setVal(tr.children("td").eq(9), table[i-1].waiting);
                        setVal(tr.children("td").eq(10), table[i-1].loca);
                        setVal(tr.children("td").eq(11), table[i-1].chargeStatus);
                        setVal(tr.children("td").eq(12), table[i-1].alarm1);
                        setVal(tr.children("td").eq(13), table[i-1].alarm2);
                        setVal(tr.children("td").eq(1), table[i-1].status$);
                        setVal(tr.children("td").eq(2), table[i-1].busyStatus);
                        setVal(tr.children("td").eq(3), table[i-1].currentCode);
                        setVal(tr.children("td").eq(4), table[i-1].batteryPower);
                        setVal(tr.children("td").eq(5), table[i-1].batteryTemp);
                        setVal(tr.children("td").eq(6), table[i-1].errorCode);
                        setVal(tr.children("td").eq(7), table[i-1].plcOutputLift$);//顶升位
                        setVal(tr.children("td").eq(8), table[i-1].plcOutputTransfer$);//换向位
                        setVal(tr.children("td").eq(9), table[i-1].plcOutputBrake$);//抱闸位
                        setVal(tr.children("td").eq(10), table[i-1].plcOutputCharge$);//充电位
                        setVal(tr.children("td").eq(11), table[i-1].statusErrorCode);
                        setVal(tr.children("td").eq(12), table[i-1].plcInputStatus);
                        setVal(tr.children("td").eq(13), table[i-1].currentOrBeforeCode);
                        setVal(tr.children("td").eq(14), table[i-1].codeOffsetX);
                        setVal(tr.children("td").eq(15), table[i-1].codeOffsetY);
                        setVal(tr.children("td").eq(16), table[i-1].currentVoltage$);
                        setVal(tr.children("td").eq(17), table[i-1].currentAnalogValue);
                    }
                } else if (res.code === 403){
                    window.location.href = baseUrl+"/login";
@@ -626,12 +621,20 @@
                        setVal(tr.children("td").eq(0), table[i-1].shuttleNo);
                        setVal(tr.children("td").eq(1), table[i-1].workNo);
                        setVal(tr.children("td").eq(2), table[i-1].status);
                        setVal(tr.children("td").eq(3), table[i-1].sourceStaNo);
                        setVal(tr.children("td").eq(4), table[i-1].staNo);
                        setVal(tr.children("td").eq(5), table[i-1].sourceLocNo);
                        setVal(tr.children("td").eq(6), table[i-1].locNo);
                        setVal(tr.children("td").eq(7), table[i-1].speed);
                        setVal(tr.children("td").eq(8), table[i-1].pakMk);
                        setVal(tr.children("td").eq(3), table[i-1].sourceLocNo);
                        setVal(tr.children("td").eq(4), table[i-1].distLocNo);
                        setVal(tr.children("td").eq(5), table[i-1].currentLiftServoSpeed);
                        setVal(tr.children("td").eq(6), table[i-1].currentMoveServoSpeed);
                        setVal(tr.children("td").eq(7), table[i-1].currentLiftServoLoad);
                        setVal(tr.children("td").eq(8), table[i-1].currentMoveServoLoad);
                        setVal(tr.children("td").eq(9), table[i-1].pakMk);
                        setVal(tr.children("td").eq(10), table[i-1].locNo);
                        setVal(tr.children("td").eq(11), table[i-1].lev);
                        if (table[i-1].shuttleNo == parseInt($('input[name="shuttleSelect"]:checked').val())) {
                            $("#runSpeedText").text(table[i-1].runSpeed)
                            $("#chargeLineText").text(table[i-1].chargeLine + "%")
                        }
                    }
                } else if (res.code === 403){
                    window.location.href = baseUrl+"/login";
@@ -706,6 +709,9 @@
                "       <td></td>\n" +
                "       <td></td>\n" +
                "       <td></td>\n" +
                "       <td></td>\n" +
                "       <td></td>\n" +
                "       <td></td>\n" +
                "     </tr>\n";
        }
        $('#shuttle-state-table tbody').after(html);
@@ -753,4 +759,26 @@
        shuttleOutputDom.scrollTop = shuttleOutputDom.scrollHeight;
    }
    //四向穿梭车配置参数保存
    function shuttleParamSave() {
        $.ajax({
            url: baseUrl+ "/shuttle/runSpeed/" + $('input[name="shuttleSelect"]:checked').val(),
            headers: {'token': localStorage.getItem('token')},
            method: 'POST',
            data: {
                runSpeed: $("#runSpeed").val(),
                chargeLine: $("#chargeLine").val(),
            },
            success: function (res) {
                if (res.code === 200){
                    layer.msg("配置已保存", {icon: 1,});
                } else if (res.code === 403){
                    window.location.href = baseUrl+"/login";
                }  else {
                    console.log(res.msg);
                }
            }
        });
    }
</script>