自动化立体仓库 - WCS系统
Junjie
2023-07-03 5e3cd26eb7038849be8d4429ac844389587a6728
手动操作提升机四向车状态
6个文件已修改
545 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/LiftController.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/ShuttleController.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/css/lift.css 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/css/shuttle.css 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/lift.html 165 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/shuttle.html 301 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/LiftController.java
@@ -217,4 +217,28 @@
        return R.error();
    }
    @PostMapping("/detl/update")
    @ManagerAuth(memo = "修改数据")
    public R liftUpdate(@RequestParam Integer liftNo,
                            @RequestParam Short workNo,
                            @RequestParam String pakMk){
        for (LiftSlave liftSlave : slaveProperties.getLift()) {
            LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, liftSlave.getId());
            if (liftThread == null) {
                return R.error("plc已掉线");
            }
            LiftProtocol liftProtocol = liftThread.getLiftProtocol();
            if (liftProtocol == null) {
                return R.error("plc已掉线");
            }
            if (workNo != null) {
                liftProtocol.setTaskNo(workNo);
            }
            if (pakMk != null) {
                liftProtocol.setPakMk(pakMk.equals("Y"));
            }
        }
        return R.error("plc已掉线");
    }
}
src/main/java/com/zy/asrs/controller/ShuttleController.java
@@ -23,7 +23,6 @@
import com.zy.core.model.ShuttleSlave;
import com.zy.core.model.Task;
import com.zy.core.model.command.ShuttleAssignCommand;
import com.zy.core.model.command.ShuttleCommand;
import com.zy.core.model.protocol.ShuttleProtocol;
import com.zy.core.properties.SlaveProperties;
import com.zy.core.thread.ShuttleThread;
@@ -241,37 +240,27 @@
    }
    @PostMapping("/detl/update")
    @ManagerAuth
    public R steUpdate(ShuttleDataVo vo){
        BasShuttle basShuttle = basShuttleService.selectById(vo.getShuttleNo());
        if (basShuttle == null) {
            return R.error();
    @ManagerAuth(memo = "修改数据")
    public R liftUpdate(@RequestParam Integer shuttleNo,
                        @RequestParam Short workNo,
                        @RequestParam String pakMk){
        for (ShuttleSlave shuttleSlave : slaveProperties.getShuttle()) {
            ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttleSlave.getId());
            if (shuttleThread == null) {
                return R.error("plc已掉线");
            }
            ShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol();
            if (shuttleProtocol == null) {
                return R.error("plc已掉线");
            }
            if (workNo != null) {
                shuttleProtocol.setTaskNo(workNo);
            }
            if (pakMk != null) {
                shuttleProtocol.setPakMk(pakMk.equals("Y"));
            }
        }
        // 获取四向穿梭车信息
        ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, vo.getShuttleNo());
        ShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol();
        if (shuttleProtocol == null) {
            throw new CoolException(vo.getShuttleNo() + "号四向穿梭车不在线,无法保存");
        }
//        if (!Cools.isEmpty(vo.getRow(), vo.getBay(), vo.getLev())) {
//            if (!shuttleThread.modifyPosHandle(vo.getRow(), vo.getBay(), vo.getLev())) {
//                throw new CoolException("服务器错误");
//            }
//        }
        ShuttleCommand shuttleCommand = new ShuttleCommand();
        shuttleCommand.setTaskNo(vo.getWorkNo().shortValue());
        if (MessageQueue.offer(SlaveType.Shuttle, vo.getShuttleNo(), new Task(2, shuttleCommand))) {
        } else {
            throw new CoolException("命令下发失败");
        }
        basShuttle.setPakMk(vo.getPakMk());
        basShuttle.setWrkNo(vo.getWorkNo());
        basShuttle.setUpdateTime(new Date());
        if (!basShuttleService.updateById(basShuttle)) {
            throw new CoolException("修改失败");
        }
        return R.ok();
        return R.error("plc已掉线");
    }
    @PostMapping("/runSpeed/{shuttleNo}")
src/main/webapp/static/css/lift.css
@@ -290,7 +290,7 @@
}
.form-label {
    display: inline-block;
    width: 130px;
    width: 70px;
    text-align: right;
}
.form-input {
src/main/webapp/static/css/shuttle.css
@@ -290,7 +290,7 @@
}
.form-label {
    display: inline-block;
    width: 130px;
    width: 70px;
    text-align: right;
}
.form-input {
src/main/webapp/views/lift.html
@@ -119,6 +119,33 @@
        <div class="lift-output-board">
            <textarea id="lift-output"></textarea>
        </div>
        <div id="lift-detl" style="display: none">
            <div>
                <div class="form-item">
                    <label class="form-label">站号:</label>
                    <div class="form-input">
                        <input id="liftNo" name="liftNo" class="layui-input" lay-verify="required|number" autocomplete="off" disabled="disabled">
                    </div>
                </div>
                <div class="form-item">
                    <label class="form-label">工作号:</label>
                    <div class="form-input">
                        <input id="workNo" name="workNo" type="number" class="layui-input" lay-verify="number" autocomplete="off">
                    </div>
                </div>
                <div class="form-item">
                    <label class="form-label">作业标记:</label>
                    <div class="form-input">
                        <input id="pakMk" name="pakMk" type="text" class="layui-input" autocomplete="off">
                    </div>
                </div>
                <div class="form-item form-button-container">
                    <button class="form-button" id="save">保存</button>
                    <button class="form-button" id="cancel" style="background-color: #D0D0D0">取消</button>
                </div>
            </div>
        </div>
    </div>
</div>
</body>
@@ -163,82 +190,6 @@
        }
    }
    var layerIdx;
    $(document).on('click ','.pos-btn', function () {
        let liftNo = Number($(this).parent().attr("data-liftNo"));
        layerIdx = layer.open({
            type: 1,
            title: false,
            shadeClose: true,
            offset: [$(this).offset().top + 30 + 'px', $(this).offset().left + 'px'],
            anim: 5,
            shade: [0],
            area: ['310px', '370px'],
            closeBtn: 0,
            content: $("#lift-detl"),
            success: function(layero, index){
                http.get(baseUrl+ "/lift/detl/"+liftNo, null, function (res) {
                    $('#liftNo').val(liftNo);
                    $('#workNo').val(res.data.workNo);
                    $('#row').val(res.data.row);
                    $('#bay').val(res.data.bay);
                    $('#lev').val(res.data.lev);
                    $('#crnNo').val(res.data.crnNo);
                    $('#pakMk').val(res.data.pakMk);
                })
            },
            end: function () {
                $('#liftNo').val("");
                $('#workNo').val("");
                $('#row').val("");
                $('#bay').val("");
                $('#lev').val("");
                $('#crnNo').val("");
                $('#pakMk').val("");
            }
        })
    })
    var layerIdx0;
    $(document).on('click ','.mode-btn', function () {
        let liftNo = Number($(this).parent().attr("data-liftNo"));
        layerIdx0 = layer.open({
            type: 1,
            title: false,
            shadeClose: true,
            offset: [$(this).offset().top + 30 + 'px', $(this).offset().left + 'px'],
            anim: 5,
            shade: [0],
            area: ['70%', '85%'],
            closeBtn: 0,
            content: $("#lift-detl2"),
            success: function(layero, index){
                console.log(liftNo)
                http.get(baseUrl+ "/lift/sensor/detl/"+liftNo, null, function (res) {
                    $('#liftNo1').val(res.data.liftNo);
                    getColor(res.data.pakInTask,'#pakInTask');
                    getColor(res.data.pakOutTask,'#pakOutTask');
                    getColor(res.data.pakMoveTask,'#pakMoveTask');
                    getColor(res.data.goHpTask,'#goHpTask');
                    getColor(res.data.goOHpTask,'#goOHpTask');
                    getColor(res.data.goHpAvoid,'#goHpAvoid');
                    getColor(res.data.goOHpAvoid,'#goOHpAvoid');
                    getColor(res.data.pakInEmpty,'#pakInEmpty');
                    getColor(res.data.pakInFinish,'#pakInFinish');
                    getColor(res.data.pakOutEmpty,'#pakOutEmpty');
                    getColor(res.data.pakOutFinish,'#pakOutFinish');
                    getColor(res.data.goHpAvoidFinish,'#goHpAvoidFinish');
                    getColor(res.data.goOHpAvoidFinish,'#goOHpAvoidFinish');
                    getColor(res.data.goHpAvoidErr,'#goHpAvoidErr');
                    getColor(res.data.goOHpAvoidErr,'#goOHpAvoidErr');
                })
            },
            end: function () {
                $('#liftNo').val("");
            }
        })
    })
    function getColor(res,e){
        $(e).val(res?"✔":"—");
        if (res){
@@ -252,19 +203,11 @@
        http.post(baseUrl+ "/lift/detl/update", {
            liftNo: $('#liftNo').val(),
            workNo: $('#workNo').val(),
            row:  $('#row').val(),
            bay: $('#bay').val(),
            lev:  $('#lev').val(),
            crnNo: $('#crnNo').val(),
            pakMk: $('#pakMk').val(),
        }, function (res) {
            layer.msg("修改成功", {icon: 1,});
            layer.close(layerIdx);
        })
    })
    $(document).on('click ','#cancel', function () {
        layer.close(layerIdx);
    })
    function setliftRadio() {
@@ -493,4 +436,58 @@
        liftOutputDom.scrollTop = liftOutputDom.scrollHeight;
    }
    // 详情操作 -------------------------------------------------------------------------
    var layerDetl;
    $(document).on('dblclick ','#lift-msg-table tr', function () {
        var liftNo = $(this).children("td").eq(0).html();
        if (liftNo !== null && liftNo !== "") {
            layerDetl = layer.open({
                type: 1,
                title: false,
                shadeClose: true,
                offset: 'rt',
                anim: 5,
                shade: [0],
                area: ['340px', '255px'],
                closeBtn: 0,
                content: $("#lift-detl"),
                success: function(layero, index){
                    $.ajax({
                        url: baseUrl+ "/lift/table/lift/msg",
                        headers: {'token': localStorage.getItem('token')},
                        method: 'POST',
                        success: function (res) {
                            if (res.code === 200){
                                var table = res.data;
                                for (var i=1;i<=table.length;i++){
                                    if (liftNo == table[i-1].liftNo) {
                                        $('#liftNo').val(liftNo);
                                        $('#workNo').val(table[i-1].workNo);
                                        $('#pakMk').val(table[i-1].pakMk);
                                    }
                                }
                            } else if (res.code === 403){
                                window.location.href = baseUrl+"/login";
                            }  else {
                                console.log(res.msg);
                            }
                        }
                    });
                },
                end: function () {
                    $('#liftNo').val("");
                    $('#workNo').val("");
                    $('#pakMk').val("");
                }
            })
        }
    });
    $(document).on('click ','#cancel', function () {
        $('#liftNo').val("");
        $('#workNo').val("");
        $('#pakMk').val("");
        layer.close(layerDetl);
    })
</script>
src/main/webapp/views/shuttle.html
@@ -193,7 +193,7 @@
    <div id="shuttle-detl" style="display: none">
        <div>
            <div class="form-item">
                <label class="form-label">四向穿梭车号:</label>
                <label class="form-label">穿梭车号:</label>
                <div class="form-input">
                    <input id="shuttleNo" name="shuttleNo" class="layui-input" lay-verify="required|number" autocomplete="off" disabled="disabled">
                </div>
@@ -205,24 +205,6 @@
                </div>
            </div>
            <div class="form-item">
                <label class="form-label">排:</label>
                <div class="form-input">
                    <input id="row" name="row" type="number" class="layui-input" lay-verify="number" autocomplete="off">
                </div>
            </div>
            <div class="form-item">
                <label class="form-label">列:</label>
                <div class="form-input">
                    <input id="bay" name="bay" type="number" class="layui-input" autocomplete="off">
                </div>
            </div>
            <div class="form-item">
                <label class="form-label">层:</label>
                <div class="form-input">
                    <input id="lev" name="lev" type="number" class="layui-input" autocomplete="off">
                </div>
            </div>
            <div class="form-item">
                <label class="form-label">作业标记:</label>
                <div class="form-input">
                    <input id="pakMk" name="pakMk" type="text" class="layui-input" autocomplete="off">
@@ -231,148 +213,6 @@
            <div class="form-item form-button-container">
                <button class="form-button" id="save">保存</button>
                <button class="form-button" id="cancel" style="background-color: #D0D0D0">取消</button>
            </div>
        </div>
    </div>
    <div id="shuttle-detl2" style="display: none">
        <div style="width: 1400px">
            <div class="form-item" style="text-align: left">
                <spen style="margin:  20px 10px 10px 10px; padding: 10px 10px 10px 10px;border: black;border-width: 3px;border-style:dotted;">
                    异常:<spen style="color: #FD482C;">✔</spen>
                </spen>
                <spen style="margin:  20px 10px 10px 10px; padding: 10px 10px 10px 10px;border: black;border-width: 3px;border-style: double;">
                    正常:<spen style="color: #00FF00;">—</spen>
                </spen>
            </div>
            <div style="float:left;margin:  10px 10px 10px 10px; padding: 10px 10px 10px 10px;border: black;border-width: 3px;border-style:dotted;">
                <div class="form-item" style="text-align: center">
                    <label>四向穿梭车异常</label>
                </div>
                <div class="form-item">
                    <label class="form-label">四向穿梭车号:</label>
                    <div class="form-input">
                        <input id="shuttleNo1" name="shuttleNo" class="layui-input" lay-verify="required|number" autocomplete="off" disabled="disabled" readonly>
                    </div>
                </div>
            </div>
            <div style="float:left;margin:  10px 10px 10px 10px; padding: 10px 10px 10px 10px;border: black;border-width: 3px;border-style:dotted">
                <div class="form-item" style="text-align: center">
                    <label>四向穿梭车提示信息</label>
                </div>
            </div>
            <div style="float:left;margin:  10px 10px 10px 10px; padding: 10px 10px 10px 10px;border: black;border-width: 3px;border-style:dotted">
                <div class="form-item" style="text-align: center">
                    <label>任务信息</label>
                </div>
                <div class="form-item">
                    <label class="form-label">入库任务中:</label>
                    <div class="form-input">
                        <input id="pakInTask" name="pakInTask" class="layui-input" autocomplete="off" readonly>
                    </div>
                </div>
                <div class="form-item">
                    <label class="form-label">出库任务中:</label>
                    <div class="form-input">
                        <input id="pakOutTask" name="pakOutTask" class="layui-input" autocomplete="off" readonly>
                    </div>
                </div>
                <div class="form-item">
                    <label class="form-label">移库任务中:</label>
                    <div class="form-input">
                        <input id="pakMoveTask" name="pakMoveTask" class="layui-input" autocomplete="off" readonly>
                    </div>
                </div>
                <div class="form-item">
                    <label class="form-label">回原点任务中:</label>
                    <div class="form-input">
                        <input id="goHpTask" name="goHpTask" class="layui-input" autocomplete="off" readonly>
                    </div>
                </div>
                <div class="form-item">
                    <label class="form-label">去反原点任务中:</label>
                    <div class="form-input">
                        <input id="goOHpTask" name="goOHpTask" class="layui-input" autocomplete="off" readonly>
                    </div>
                </div>
                <div class="form-item">
                    <label class="form-label">去原点避让位:</label>
                    <div class="form-input">
                        <input id="goHpAvoid" name="goHpAvoid" class="layui-input" autocomplete="off" readonly>
                    </div>
                </div>
                <div class="form-item">
                    <label class="form-label">去反原点避让位:</label>
                    <div class="form-input">
                        <input id="goOHpAvoid" name="goOHpAvoid" class="layui-input" autocomplete="off" readonly>
                    </div>
                </div>
                <div class="form-item">
                    <label class="form-label">入库取空结束:</label>
                    <div class="form-input">
                        <input id="pakInEmpty" name="pakInEmpty" class="layui-input" autocomplete="off" readonly>
                    </div>
                </div>
                <div class="form-item">
                    <label class="form-label">入库正常结束:</label>
                    <div class="form-input">
                        <input id="pakInFinish" name="pakInFinish" class="layui-input" autocomplete="off" readonly>
                    </div>
                </div>
                <div class="form-item">
                    <label class="form-label">出库取空结束:</label>
                    <div class="form-input">
                        <input id="pakOutEmpty" name="pakOutEmpty" class="layui-input" autocomplete="off" readonly>
                    </div>
                </div>
                <div class="form-item">
                    <label class="form-label">出库正常结束:</label>
                    <div class="form-input">
                        <input id="pakOutFinish" name="pakOutFinish" class="layui-input" autocomplete="off" readonly>
                    </div>
                </div>
                <div class="form-item">
                    <label class="form-label">去原点避让完成:</label>
                    <div class="form-input">
                        <input id="goHpAvoidFinish" name="goHpAvoidFinish" class="layui-input" autocomplete="off" readonly>
                    </div>
                </div>
                <div class="form-item">
                    <label class="form-label">去反原点避让完成:</label>
                    <div class="form-input">
                        <input id="goOHpAvoidFinish" name="goOHpAvoidFinish" class="layui-input" autocomplete="off" readonly>
                    </div>
                </div>
                <div class="form-item">
                    <label class="form-label">去原点避让完成:</label>
                    <div class="form-input">
                        <input id="goHpAvoidErr" name="goHpAvoidErr" class="layui-input" autocomplete="off" readonly>
                    </div>
                </div>
                <div class="form-item">
                    <label class="form-label">去反原点避让完成:</label>
                    <div class="form-input">
                        <input id="goOHpAvoidErr" name="goOHpAvoidErr" class="layui-input" autocomplete="off" readonly>
                    </div>
                </div>
            </div>
            <div style="float:left;margin:  10px 10px 10px 10px; padding: 10px 10px 10px 10px;border: black;border-width: 3px;border-style:dotted">
                <div class="form-item" style="text-align: center">
                    <label>状态信息</label>
                </div>
<!--                <div class="form-item">-->
<!--                    <label class="form-label">联机模式:</label>-->
<!--                    <div class="form-input">-->
<!--                        <input id="autoMode" name="autoMode" class="layui-input" autocomplete="off" readonly>-->
<!--                    </div>-->
<!--                </div>-->
<!--                <div class="form-item">-->
<!--                    <label class="form-label">电压过低:</label>-->
<!--                    <div class="form-input">-->
<!--                        <input id="voltageLow" name="voltageLow" class="layui-input" autocomplete="off" readonly>-->
<!--                    </div>-->
<!--                </div>-->
            </div>
        </div>
    </div>
@@ -418,82 +258,6 @@
        }
    }
    var layerIdx;
    $(document).on('click ','.pos-btn', function () {
        let shuttleNo = Number($(this).parent().attr("data-shuttleNo"));
        layerIdx = layer.open({
            type: 1,
            title: false,
            shadeClose: true,
            offset: [$(this).offset().top + 30 + 'px', $(this).offset().left + 'px'],
            anim: 5,
            shade: [0],
            area: ['310px', '370px'],
            closeBtn: 0,
            content: $("#shuttle-detl"),
            success: function(layero, index){
                http.get(baseUrl+ "/shuttle/detl/"+shuttleNo, null, function (res) {
                    $('#shuttleNo').val(shuttleNo);
                    $('#workNo').val(res.data.workNo);
                    $('#row').val(res.data.row);
                    $('#bay').val(res.data.bay);
                    $('#lev').val(res.data.lev);
                    $('#crnNo').val(res.data.crnNo);
                    $('#pakMk').val(res.data.pakMk);
                })
            },
            end: function () {
                $('#shuttleNo').val("");
                $('#workNo').val("");
                $('#row').val("");
                $('#bay').val("");
                $('#lev').val("");
                $('#crnNo').val("");
                $('#pakMk').val("");
            }
        })
    })
    var layerIdx0;
    $(document).on('click ','.mode-btn', function () {
        let shuttleNo = Number($(this).parent().attr("data-shuttleNo"));
        layerIdx0 = layer.open({
            type: 1,
            title: false,
            shadeClose: true,
            offset: [$(this).offset().top + 30 + 'px', $(this).offset().left + 'px'],
            anim: 5,
            shade: [0],
            area: ['70%', '85%'],
            closeBtn: 0,
            content: $("#shuttle-detl2"),
            success: function(layero, index){
                console.log(shuttleNo)
                http.get(baseUrl+ "/shuttle/sensor/detl/"+shuttleNo, null, function (res) {
                    $('#shuttleNo1').val(res.data.shuttleNo);
                    getColor(res.data.pakInTask,'#pakInTask');
                    getColor(res.data.pakOutTask,'#pakOutTask');
                    getColor(res.data.pakMoveTask,'#pakMoveTask');
                    getColor(res.data.goHpTask,'#goHpTask');
                    getColor(res.data.goOHpTask,'#goOHpTask');
                    getColor(res.data.goHpAvoid,'#goHpAvoid');
                    getColor(res.data.goOHpAvoid,'#goOHpAvoid');
                    getColor(res.data.pakInEmpty,'#pakInEmpty');
                    getColor(res.data.pakInFinish,'#pakInFinish');
                    getColor(res.data.pakOutEmpty,'#pakOutEmpty');
                    getColor(res.data.pakOutFinish,'#pakOutFinish');
                    getColor(res.data.goHpAvoidFinish,'#goHpAvoidFinish');
                    getColor(res.data.goOHpAvoidFinish,'#goOHpAvoidFinish');
                    getColor(res.data.goHpAvoidErr,'#goHpAvoidErr');
                    getColor(res.data.goOHpAvoidErr,'#goOHpAvoidErr');
                })
            },
            end: function () {
                $('#shuttleNo').val("");
            }
        })
    })
    function getColor(res,e){
        $(e).val(res?"✔":"—");
        if (res){
@@ -507,19 +271,11 @@
        http.post(baseUrl+ "/shuttle/detl/update", {
            shuttleNo: $('#shuttleNo').val(),
            workNo: $('#workNo').val(),
            row:  $('#row').val(),
            bay: $('#bay').val(),
            lev:  $('#lev').val(),
            crnNo: $('#crnNo').val(),
            pakMk: $('#pakMk').val(),
        }, function (res) {
            layer.msg("修改成功", {icon: 1,});
            layer.close(layerIdx);
        })
    })
    $(document).on('click ','#cancel', function () {
        layer.close(layerIdx);
    })
    function setShuttleRadio() {
@@ -781,4 +537,59 @@
        });
    }
    // 详情操作 -------------------------------------------------------------------------
    var layerDetl;
    $(document).on('dblclick ','#shuttle-msg-table tr', function () {
        var shuttleNo = $(this).children("td").eq(0).html();
        if (shuttleNo !== null && shuttleNo !== "") {
            layerDetl = layer.open({
                type: 1,
                title: false,
                shadeClose: true,
                offset: 'rt',
                anim: 5,
                shade: [0],
                area: ['340px', '255px'],
                closeBtn: 0,
                content: $("#shuttle-detl"),
                success: function(layero, index){
                    $.ajax({
                        url: baseUrl+ "/shuttle/table/shuttle/msg",
                        headers: {'token': localStorage.getItem('token')},
                        method: 'POST',
                        success: function (res) {
                            if (res.code === 200){
                                var table = res.data;
                                for (var i=1;i<=table.length;i++){
                                    if (shuttleNo == table[i-1].shuttleNo) {
                                        $('#shuttleNo').val(shuttleNo);
                                        $('#workNo').val(table[i-1].workNo);
                                        $('#pakMk').val(table[i-1].pakMk);
                                    }
                                }
                            } else if (res.code === 403){
                                window.location.href = baseUrl+"/login";
                            }  else {
                                console.log(res.msg);
                            }
                        }
                    });
                },
                end: function () {
                    $('#shuttleNo').val("");
                    $('#workNo').val("");
                    $('#pakMk').val("");
                }
            })
        }
    });
    $(document).on('click ','#cancel', function () {
        $('#shuttleNo').val("");
        $('#workNo').val("");
        $('#pakMk').val("");
        layer.close(layerDetl);
    })
</script>