agvTask.html 15.7 KB
<!DOCTYPE HTML>
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="gray-bg">
<div class="container-div">
    <div class="row">
        <div class="col-sm-12 select-info">

            <div id="myTabContent" class="tab-content">
                <div class="tab-pane fade in active" id="tabHeader">
                    <div class="col-sm-12 select-info">
                        <form id="task-form">
                            <div class="select-list">
                                <ul>
                                    <li>
                                        sap唯一号:<input type="text" name="uniqueId"/>
                                    </li>
                                    <li>
                                        起点:<input type="text" name="FromPoint"/>
                                    </li>
                                    <li>
                                        终点:<input type="text" name="ToPoint"/>
                                    </li>
                                    <li>
                                        容器编号:<input type="text" name="PalletNo"/>
                                    </li>
                                    <li>
                                        批次/卷:<input type="text" name="lot"/>
                                    </li>
                                    <li>
                                        任务id:<input type="text" name="taskNo"/>
                                    </li>
                                    <li>
                                        <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i
                                                class="fa fa-search"></i>&nbsp;搜索</a>
                                        <a class="btn btn-warning btn-rounded btn-sm"
                                           onclick="$.form.reset('task-form')"><i class="fa fa-refresh"></i>&nbsp;重置</a>
                                        <!--<a class="btn btn-success btn-rounded btn-sm" onclick="$.table.exportExcel()" shiro:hasPermission="receipt:receiptHeader:export"><i class="fa fa-download"></i>&nbsp;导出</a>-->
                                    </li>
                                </ul>
                            </div>
                        </form>
                    </div>
                    <div class="btn-group hidden-xs" id="toolbar" role="group">
                        <!--<a class="btn btn-outline btn-success btn-rounded" onclick="stationToLocation()">
                            <i class="fa fa-plus"></i> 站台-库位
                        </a>
                        <a class="btn btn-outline btn-success btn-rounded" onclick="locationToStation()">
                            <i class="fa fa-plus"></i> 库位-站台
                        </a>-->
                        <a class="btn btn-outline btn-success btn-rounded" onclick="stationToDevice()">
                            <i class="fa fa-plus"></i> 站台-站台
                        </a>
                        <a class="btn btn-outline btn-success btn-rounded" onclick="stationWX()">
                            <i class="fa fa-plus"></i> 维修房
                        </a>
                    </div>

                    <table id="bootstrap-table" data-mobile-responsive="true"
                           class="table table-bordered table-hover"></table>
                </div>
                <div class="tab-pane fade" id="tabDetail">
                    <div class="btn-group hidden-xs" id="toolbar1" role="group">

                    </div>
                    <table id="bootstrap-table1" data-mobile-responsive="true"
                           class="table table-bordered table-hover"></table>
                </div>
            </div>
        </div>
    </div>
</div>
<div th:include="include :: footer"></div>
<script th:inline="javascript">
    var prefix = ctx + "task/agvTask";
    var prefix_select = ctx + "task/agvTaskSelect";
    var stations = [[${@dict.getType('station')}]];
    var taskTypes = [[${@dict.getType('taskType')}]];
    var taskStatus = [[${@dict.getType('taskStatus')}]];
    var taskDetailStatus = [[${@dict.getType('taskDetailStatus')}]];
    var zone = [[${@zone.getCode()}]];
    var stationCodes = [[${@stationService.getStationByAgv()}]];
    var AGVTaskStatus = [[${@dict.getType('AGVTaskStatus')}]];
    var agvPickUpComplete = [[${@permission.hasPermi('task:agvTask:agvPickUpComplete')}]];

    $(function () {
        var options = {
            url: prefix + "/list",
            createUrl: prefix + "/add",
            updateUrl: prefix + "/edit/{id}",
            removeUrl: prefix + "/remove",
            modalName: "任务管理",
            sortName: "id",
            sortOrder: "desc",
            search: false,
            clickToSelect: true,
            columns: [
                {
                    title: '操作',
                    align: 'center',
                    formatter: function (value, row, index) {
                        var actions = [];
                        if (row.State === 1) {
                            actions.push('<a class="btn btn-danger btn-xs " href="#" onclick="editMaterialHighLevel(\'' + row.TaskNo + '\')"><i class="fa fa-repeat"></i> 设置物料高度</a> ');
                        }
                        if (row.State < 10) {
                            actions.push('<a class="btn btn-danger btn-xs " href="#" onclick="overrideAgvTask(\'' + row.TaskNo + '\')"><i class="fa fa-repeat"></i> 重入处理</a> ');
                        }
                        if (row.State === 60 && row.ToPoint == 'P31152') {
                            actions.push('<a class="btn btn-success btn-xs ' + agvPickUpComplete + '" href="#" onclick="completeBusTask(\'' + row.TaskNo + '\')"><i class="fa fa-handshake-o"></i> 确认抓取完全 </a> ');
                        }
                        if (row.State < 90) {
                            if (row.ToPoint != 'P31152') {
                                actions.push('<a class="btn btn-primary btn-xs " href="#" onclick="completeBusTask(\'' + row.TaskNo + '\')"><i class="fa fa-check"></i>任务完成</a> ');
                            }
                            actions.push('<a class="btn btn-danger btn-xs " href="#" onclick="removeAgvTask(\'' + row.TaskNo + '\')"><i class="fa fa-remove"></i>取消</a> ');
                        }
                        // if (row.State < 90) {
                        //     actions.push('<a class="btn btn-danger btn-xs " href="#" onclick="acsOverrideHandle(\'' + row.TaskNo + '\')"><i class="fa fa-list-ul"></i>重入</a> ');
                        // }
                        return actions;
                    }
                },
                {
                    field: 'TaskNo',
                    title: '任务ID',
                    sortable: false
                },
                {
                    field: 'zoneCode',
                    title: '库区',
                    align: 'center',
                    formatter: function (value, row, index) {
                        var actions = [];
                        $.each(zone, function (index, dict) {
                            if (dict.code == value) {
                                actions.push("<span class='badge badge-info'>" + dict.name + "</span>");
                                return false;
                            }
                        });
                        return actions.join('');
                    }
                },
                {
                    field: 'uniqueId',
                    title: 'SAP唯一号',
                    visible: true
                },
                {
                    field: 'TaskLevel',
                    title: '任务优先级',
                    visible: true
                },
                {
                    field: 'isEmpty',
                    title: '是否有料',
                    visible: true,
                    formatter: function (value, row, index) {
                        if (value == undefined) {
                            return '';
                        }
                        var html = '';
                        switch (value) {
                            case 0:
                                html = '<span class="badge badge-info">空托</span>';
                                break;
                            case 1:
                                html = '<span class="badge badge-primary">有料</span>';
                                break;
                        }
                        return html;
                    }
                },
                {
                    field: 'lot',
                    title: '批次/卷',
                    visible: true
                },
                {
                    field: 'State',
                    title: '状态',
                    visible: true,
                    formatter: function (value, row, index) {
                        var actions = [];
                        $.each(AGVTaskStatus, function (index, dict) {
                            if (dict.dictValue == value) {
                                actions.push("<span class='badge badge-" + dict.listClass + "'>" + dict.dictLabel + "</span>");
                                return false;
                            }
                        });
                        return actions.join('');
                    }
                },
                {
                    field: 'PalletNo',
                    title: '容器号',
                    visible: true
                },
                {
                    field: 'FromPoint',
                    title: '开始点位',
                    visible: true,
                    formatter: function (value, row, index) {
                        var actions = [];
                        $.each(stationCodes, function (index, dict) {
                            if (dict.code == value) {
                                actions.push("<span class='badge badge-info'>" + dict.name + "</span>");
                                return false;
                            }
                        });
                        if (actions.length == 0) {
                            actions.push("<span class='badge badge-info'>" + value + "</span>");
                        }
                        return actions.join('');
                    }
                },
                {
                    field: 'ToPoint',
                    title: '结束点位',
                    visible: true,
                    formatter: function (value, row, index) {
                        var actions = [];
                        $.each(stationCodes, function (index, dict) {
                            if (dict.code == value) {
                                actions.push("<span class='badge badge-info'>" + dict.name + "</span>");
                                return false;
                            }
                        });
                        if (actions.length == 0) {
                            actions.push("<span class='badge badge-primary'>" + value + "</span>");
                        }
                        return actions.join('');
                    }
                },
                {
                    field: 'doubleIn',
                    title: '重入库位',
                    visible: true
                },
                {
                    field: 'emptyOut',
                    title: '空出库位',
                    visible: true
                },
                {
                    field: 'AgvNo',
                    title: '小车编号',
                    visible: true
                },
                {
                    field: 'materialDiameter',
                    title: '地面到物料中心高度',
                    visible: true
                },
                {
                    field: 'Remark',
                    title: '备注(ACS)',
                    visible: true,
                    formatter: function (value, row, index) {
                        if (value != '无') {
                            if (value == "建立成功") {
                                return "<span class='badge badge-primary'>" + value + "</span>";
                            } else {
                                return "<span class='badge badge-danger'>" + value + "</span>";
                            }

                        }
                        return value;
                    }
                },
                {
                    field: 'created',
                    title: '日期',
                    visible: true
                },
                {
                    field: 'sendDate',
                    title: 'AGV下发时间',
                    visible: true
                },
                {
                    field: 'executeDate',
                    title: 'AGV执行时间',
                    visible: true
                },
                {
                    field: 'runtime',
                    title: '执行耗时',
                    visible: true
                },
                {
                    field: 'finishDate',
                    title: '完成时间',
                    visible: true
                },
            ]
        };
        $.table.init(options);
    });

    /*任务列表-批量删除任务*/
    function batchRemove() {
        //var rows = $.common.isEmpty($.table._option.taskId) ? $.table.selectFirstColumns() : $.table.selectColumns($.table._option.taskId);
        var rows = $("#bootstrap-table").bootstrapTable('getSelections');
        if (rows.length == 0) {
            $.modal.alertWarning("请至少选择一条记录");
            return;
        }
        $.modal.confirm("确认要删除选中的" + rows.length + "条数据吗?", function () {
            var url = ctx + 'task/agvTask/remove';
            var ids = "";
            for (var i = 0; i < rows.length; i++) {
                ids = ids + rows[i].id + ","
            }
            var data = {"ids": ids.substring(0, ids.length - 1)};
            $.operate.submit(url, "post", "json", data);
        })
    }

    function stationToLocation() {
        $.modal.open("站台到库位", prefix_select + "/stationToLocation")
    }

    function locationToStation() {
        $.modal.open("库位到站台", prefix_select + "/locationToStation")
    }

    function stationToDevice() {
        $.modal.open("站台到站台", prefix_select + "/stationToDevice")
    }

    function locationToLocation() {
        $.modal.open("库位到库位", prefix_select + "/locationToLocation")
    }

    function stationWX() {
        $.modal.open("维修房<->提升间", prefix_select + "/stationWX")
    }

    function completeBusTask(taskId) {
        $.modal.confirm("确认要完成选中的数据吗?", function () {
            var url = ctx + 'task/agvTask/completeBusTask';

            var data = {"taskId": taskId};
            $.operate.submit(url, "post", "json", data);
        })
    }

    function removeAgvTask(id) {
        $.modal.confirm("确认要取消选中的数据吗?", function () {
            var url = ctx + 'task/agvTaskSelect/removeAgvTask';

            var data = {"TaskNo": id};
            $.operate.submit(url, "post", "json", data);
        })

    }

    function acsOverrideHandle(id) {
        $.modal.confirm("确认要取消选中的数据吗?", function () {

        })

    }

    function overrideAgvTask(taskNo) {
        $.modal.open("重入处理", ctx + "task/agvTask/overrideAgvTask/" + taskNo);
    }

    function editMaterialHighLevel(taskNo) {
        $.modal.open("设置物料高度", ctx + "task/agvTask/editMaterialHighLevel/" + taskNo);
    }


</script>
</body>
</html>