Junjie
2023-07-25 8e9dd8e355464e5da29ab837752ce82d5379a2ed
输送站点设备
3个文件已修改
155 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/SiteController.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/wms/js/realtimeWatch/pipeline.js 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/realtimeWatch/pipeline.html 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/SiteController.java
@@ -85,6 +85,38 @@
        return R.ok().add(list);
    }
    @GetMapping("/list/auth")
    @ManagerAuth(memo = "站点信息表")
    public R crnList(){
        List<SiteTableVo> list = new ArrayList<>();
        // 内存数据
        Map<Integer, StaProtocol> station = new HashMap<>();
        for (DevpSlave devp : slaveProperties.getDevp()) {
            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
            station.putAll(devpThread.getStation());
        }
        // 持久数据
        List<BasDevp> basDevps = basDevpService.selectList(new EntityWrapper<BasDevp>().orderBy("dev_no"));
        for (BasDevp devp : basDevps) {
            SiteTableVo vo = new SiteTableVo();
            vo.setDevNo(devp.getDevNo());    // 站点编号
            list.add(vo);
            StaProtocol staProtocol = station.get(devp.getDevNo());
            if (null == staProtocol) { continue; }
            vo.setWorkNo(staProtocol.getWorkNo());   //  工作号
            vo.setAutoing(staProtocol.isAutoing()?"Y":"N");     //  自动
            vo.setLoading(staProtocol.isLoading()?"Y":"N");     // 有物
            vo.setInEnable(staProtocol.isInEnable()?"Y":"N");   // 可入
            vo.setOutEnable(staProtocol.isOutEnable()?"Y":"N"); // 可出
            vo.setPakMk(staProtocol.isPakMk()?"Y":"N");       // 入库标记
            vo.setEmptyMk(staProtocol.isEmptyMk()?"Y":"N");     // 空板信号
            vo.setStaNo(staProtocol.getStaNo());                // 目标站
//            vo.setLocType1(staProtocol.isHigh() != staProtocol.isLow() && staProtocol.isLow() ? "低" : "高");     //高低库位
            vo.setLocType1(devp.getDevNo()==102 ? "高" : "低");
        }
        return R.ok().add(list);
    }
    @PostMapping("/table/plc/errors")
    @ManagerAuth(memo = "输送设备plc异常信息表")
    public R plcErrorTable(){
src/main/webapp/static/wms/js/realtimeWatch/pipeline.js
@@ -2,6 +2,7 @@
var tableData;
// 定义一个变量来保存滚动条的位置
var scrollLeft = 0;
var scrollTop = 0;
layui.config({
    base: baseUrl + "/static/wms/layui/lay/modules/"
}).use(['table','laydate', 'form', 'admin'], function(){
@@ -14,9 +15,9 @@
    // 数据渲染
    tableIns = table.render({
        elem: '#crn',
        elem: '#pipeline',
        headers: {token: localStorage.getItem('token')},
        url: baseUrl+'/crn/list/auth',
        url: baseUrl+'/site/list/auth',
        page: false,
        limit: 500,
        limits: [15, 30, 50, 100, 200, 500],
@@ -24,32 +25,17 @@
        cellMinWidth: 100,
        height: 'full-120',
        cols: [[
            {field: 'crnNo', align: 'center',title: '堆垛机'}
            {field: 'devNo', align: 'center',title: '站号'}
            ,{field: 'workNo', align: 'center',title: '工作号'}
            ,{field: 'statusType', align: 'center',title: '模式'}
            ,{field: 'wrkStatus', align: 'center',title: '任务状态',width: 120}
            ,{field: 'deviceStatus', align: 'center',title: '设备状态'}
            ,{field: 'autoing', align: 'center',title: '自动'}
            ,{field: 'loading', align: 'center',title: '有物'}
            ,{field: 'bay', align: 'center',title: '列'}
            ,{field: 'lev', align: 'center',title: '层'}
            ,{field: 'warnCode', align: 'center',title: '故障代码'}
            ,{field: 'alarm', align: 'center',title: '故障描述'}
            ,{field: 'sourceStaNo', align: 'center',title: '源站'}
            ,{field: 'inEnable', align: 'center',title: '可入'}
            ,{field: 'outEnable', align: 'center',title: '可出'}
            ,{field: 'pakMk', align: 'center',title: '入库标记'}
            ,{field: 'emptyMk', align: 'center',title: '空板信号'}
            ,{field: 'staNo', align: 'center',title: '目标站'}
            ,{field: 'sourceLocNo', align: 'center',title: '源库位'}
            ,{field: 'locNo', align: 'center',title: '目标库位'}
            ,{field: 'forkOffset', align: 'center',title: '货叉定位'}
            ,{field: 'liftPos', align: 'center',title: '载货台定位'}
            ,{field: 'walkPos', align: 'center',title: '走行在定位'}
            ,{field: 'xspeed', align: 'center',title: '走行速度(m/min)'}
            ,{field: 'yspeed', align: 'center',title: '升降速度(m/min)'}
            ,{field: 'zspeed', align: 'center',title: '叉牙速度(m/min)'}
            ,{field: 'xdistance', align: 'center',title: '走行距离(Km)'}
            ,{field: 'ydistance', align: 'center',title: '升降距离(Km)'}
            ,{field: 'xduration', align: 'center',title: '走行时长(H)'}
            ,{field: 'yduration', align: 'center',title: '升降时长(H)'}
            // ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width:120}
            ,{field: 'locType1', align: 'center',title: '高低库位'}
            ,{title:'操作', align: 'center', toolbar: '#operate', width:120}
        ]],
        request: {
            pageName: 'curr',
@@ -79,7 +65,7 @@
    });
    // 监听排序事件
    table.on('sort(crn)', function (obj) {
    table.on('sort(pipeline)', function (obj) {
        var searchData = {};
        $.each($('#search-box [name]').serializeArray(), function() {
            searchData[this.name] = this.value;
@@ -93,7 +79,7 @@
    });
    // 监听头工具栏事件
    table.on('toolbar(crn)', function (obj) {
    table.on('toolbar(pipeline)', function (obj) {
        var checkStatus = table.checkStatus(obj.config.id).data;
        switch(obj.event) {
            case 'addData':
@@ -141,7 +127,7 @@
    });
    // 监听行工具事件
    table.on('tool(crn)', function(obj){
    table.on('tool(pipeline)', function(obj){
        var data = obj.data;
        switch (obj.event) {
            case 'edit':
@@ -155,7 +141,7 @@
        admin.open({
            type: 1,
            area: '600px',
            title: (mData ? '修改' : '添加') + '接口配置',
            title: (mData ? '修改' : '添加') + '输送设备',
            content: $('#editDialog').html(),
            success: function (layero, dIndex) {
                layDateRender(mData);
@@ -163,16 +149,20 @@
                form.on('submit(editSubmit)', function (data) {
                    var loadIndex = layer.load(2);
                    $.ajax({
                        url: baseUrl+"/apiConfig/"+(mData?'update':'add')+"/auth",
                        url: baseUrl+"/site//detl/update",
                        headers: {'token': localStorage.getItem('token')},
                        data: data.field,
                        data: {
                            siteId: $('#devNo').val(),
                            workNo: $('#workNo').val(),
                            staNo:  $('#staNo').val(),
                            pakMk: $('#pakMk').val()
                        },
                        method: 'POST',
                        success: function (res) {
                            layer.close(loadIndex);
                            if (res.code === 200){
                                layer.close(dIndex);
                                layer.msg(res.msg, {icon: 1});
                                tableReload();
                                layer.msg("修改成功",{icon: 1,});
                            } else if (res.code === 403){
                                top.location.href = baseUrl+"/";
                            }else {
@@ -249,9 +239,10 @@
    setInterval(() => {
        // 获取当前滚动条位置
        scrollLeft = $("#crn").next('.layui-table-view').find('.layui-table-body').scrollLeft();
        scrollLeft = $("#pipeline").next('.layui-table-view').find('.layui-table-body').scrollLeft();
        scrollTop = $("#pipeline").next('.layui-table-view').find('.layui-table-body').scrollTop();
        $.ajax({
            url: baseUrl+"/crn/list/auth",
            url: baseUrl+"/site/list/auth",
            headers: {'token': localStorage.getItem('token')},
            data: {},
            dataType:'json',
@@ -260,7 +251,7 @@
            success: function (res) {
                console.log(res)
                table.render({
                    elem: '#crn',
                    elem: '#pipeline',
                    headers: {token: localStorage.getItem('token')},
                    data: res.data,
                    page: false,
@@ -270,32 +261,17 @@
                    cellMinWidth: 100,
                    height: 'full-120',
                    cols: [[
                        {field: 'crnNo', align: 'center',title: '堆垛机'}
                        {field: 'devNo', align: 'center',title: '站号'}
                        ,{field: 'workNo', align: 'center',title: '工作号'}
                        ,{field: 'statusType', align: 'center',title: '模式'}
                        ,{field: 'wrkStatus', align: 'center',title: '任务状态',width: 120}
                        ,{field: 'deviceStatus', align: 'center',title: '设备状态'}
                        ,{field: 'autoing', align: 'center',title: '自动'}
                        ,{field: 'loading', align: 'center',title: '有物'}
                        ,{field: 'bay', align: 'center',title: '列'}
                        ,{field: 'lev', align: 'center',title: '层'}
                        ,{field: 'warnCode', align: 'center',title: '故障代码'}
                        ,{field: 'alarm', align: 'center',title: '故障描述'}
                        ,{field: 'sourceStaNo', align: 'center',title: '源站'}
                        ,{field: 'inEnable', align: 'center',title: '可入'}
                        ,{field: 'outEnable', align: 'center',title: '可出'}
                        ,{field: 'pakMk', align: 'center',title: '入库标记'}
                        ,{field: 'emptyMk', align: 'center',title: '空板信号'}
                        ,{field: 'staNo', align: 'center',title: '目标站'}
                        ,{field: 'sourceLocNo', align: 'center',title: '源库位'}
                        ,{field: 'locNo', align: 'center',title: '目标库位'}
                        ,{field: 'forkOffset', align: 'center',title: '货叉定位'}
                        ,{field: 'liftPos', align: 'center',title: '载货台定位'}
                        ,{field: 'walkPos', align: 'center',title: '走行在定位'}
                        ,{field: 'xspeed', align: 'center',title: '走行速度(m/min)'}
                        ,{field: 'yspeed', align: 'center',title: '升降速度(m/min)'}
                        ,{field: 'zspeed', align: 'center',title: '叉牙速度(m/min)'}
                        ,{field: 'xdistance', align: 'center',title: '走行距离(Km)'}
                        ,{field: 'ydistance', align: 'center',title: '升降距离(Km)'}
                        ,{field: 'xduration', align: 'center',title: '走行时长(H)'}
                        ,{field: 'yduration', align: 'center',title: '升降时长(H)'}
                        // ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width:120}
                        ,{field: 'locType1', align: 'center',title: '高低库位'}
                        ,{title:'操作', align: 'center', toolbar: '#operate', width:120}
                    ]],
                    request: {
                        pageName: 'curr',
@@ -320,7 +296,8 @@
                        limit();
                        tableData = table.cache.crn;
                        // 恢复滚动条位置
                        $("#crn").next('.layui-table-view').find('.layui-table-body').scrollLeft(scrollLeft);
                        $("#pipeline").next('.layui-table-view').find('.layui-table-body').scrollLeft(scrollLeft);
                        $("#pipeline").next('.layui-table-view').find('.layui-table-body').scrollTop(scrollTop);
                        $(".layui-table-tool").hide()
                    }
src/main/webapp/views/realtimeWatch/pipeline.html
@@ -32,7 +32,7 @@
            <!--                    </div>-->
            <!--                </div>-->
            <!--            </div>-->
            <table class="layui-hide" id="crn" lay-filter="crn"></table>
            <table class="layui-hide" id="pipeline" lay-filter="pipeline"></table>
        </div>
    </div>
</div>
@@ -47,7 +47,7 @@
<script type="text/html" id="operate">
    <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">修改</a>
    <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">删除</a>
<!--    <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">删除</a>-->
</script>
<script type="text/javascript" src="../../static/wms/js/jquery/jquery-3.3.1.min.js"></script>
@@ -63,25 +63,27 @@
        <div class="layui-row">
            <div class="layui-col-md12">
                <div class="layui-form-item">
                    <label class="layui-form-label">api地址: </label>
                    <label class="layui-form-label">站号: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="url" placeholder="请输入api地址">
                        <input class="layui-input" id="devNo" name="devNo" disabled placeholder="">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">状态: </label>
                    <label class="layui-form-label">工作号: </label>
                    <div class="layui-input-block">
                        <select name="status">
                            <option value="">请选择状态</option>
                            <option value="0">正常</option>
                            <option value="1">禁用</option>
                        </select>
                        <input class="layui-input" id="workNo" name="workNo" placeholder="">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">备注: </label>
                    <label class="layui-form-label">目标站: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="memo" placeholder="请输入备注">
                        <input class="layui-input" id="staNo" name="staNo" placeholder="">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">入库标记: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" id="pakMk" name="pakMk" placeholder="">
                    </div>
                </div>