cpT
2025-06-28 3955ce066d72de68724f22b1b3a2d10efa4ff1a1
#改造
3个文件已修改
2个文件已添加
843 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/RgvController.java 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/domain/param/RingThroughParam.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/enums/RgvModeType.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/enums/RgvStatusType.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/deviceOperate/wcsOperate.html 678 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/RgvController.java
@@ -4,6 +4,7 @@
import com.core.annotations.ManagerAuth;
import com.core.common.Cools;
import com.core.common.R;
import com.zy.asrs.domain.param.RingThroughParam;
import com.zy.asrs.entity.BasDevpPosition;
import com.zy.asrs.service.BasDevpPositionService;
import com.zy.core.cache.RgvErrCache;
@@ -340,4 +341,105 @@
        return R.ok("任务生成成功");
    }
    @PostMapping("/ring/through/rgv/position/data")
//    @ManagerAuth(memo = "小车位置信息")
    public R ringThroughRgv(){
        List<RingThroughParam> result = new ArrayList<>();
        ConcurrentHashMap<Integer, RgvProtocol> allRgvStatus = RgvStatusCache.getAllRgvStatus();
        for (RgvProtocol rgvProtocol : allRgvStatus.values()){
            RingThroughParam ringThroughParam = new RingThroughParam();
            ringThroughParam.setIndex(rgvProtocol.getRgvNo());
//            ringThroughParam.setIndex(i);
//            double[] doubles = Utils.RingThroughXY2(perimeter, NumUtils.GetRandomIntInRange(183));
//            double[] doubles = Utils.RingThroughXYRgv(perimeter, perimeter-rgvProtocol.RgvPos.doubleValue());
//            double[] doubles = Utils.getRgvPosNew(perimeter, rgvProtocol.RgvPos.doubleValue());
//            double[] doubles = Utils.RingThroughXY2(183.0, 100*i );
            ringThroughParam.setValueX(rgvProtocol.getRgvNo()*100*1D);
            ringThroughParam.setValueY(rgvProtocol.getRgvNo()*100*2D);
            ringThroughParam.setModeColor(rgvProtocol.modeType.color);
            ringThroughParam.setStatusColor(rgvProtocol.statusType.color);
            result.add(ringThroughParam);
        }
        return R.ok().add(result);
    }
    @PostMapping("/ring/through/dev/position/data")
//    @ManagerAuth(memo = "站点信息")
    //  站点位置信息
    public R ringThroughDev(){
        List<RingThroughParam> result = new ArrayList<>();
        ArrayList<Integer> arrayList = new ArrayList<Integer>() {{
            add(1001);
            add(1002);
            add(1003);
            add(1004);
            add(1005);
            add(1006);
            add(1007);
            add(1008);
            add(1009);
            add(1010);
            add(1011);
            add(1012);
            add(1013);
            add(1014);
            add(1015);
            add(1016);
            add(1017);
            add(1018);
            add(1019);
            add(1020);
            add(1021);
            add(1022);
            add(1023);
        }};
        for (Integer staNo : arrayList){
            RingThroughParam ringThroughParam = new RingThroughParam();
            ringThroughParam.setIndex(staNo);
//            double[] doubles = Utils.RingThroughXYSta(perimeter, perimeter-basDevpPosition.getPlcPosition());
//            ringThroughParam.setValueX(doubles[0]>50? doubles[0]+6:doubles[0]-1);
//            ringThroughParam.setValueY(doubles[1]>50? doubles[1]+6:doubles[1]-1);
//            double[] doubles = Utils.getRgvPosNew(basDevpPosition.getDevNo(),perimeter, basDevpPosition.getPlcPosition());
            ringThroughParam.setValueX(staNo*100*1D);
            ringThroughParam.setValueY(staNo*100*2D);
            result.add(ringThroughParam);
        }
        return R.ok().add(result);
    }
    @PostMapping("/ring/through/track/position/data")
//    @ManagerAuth(memo = "轨道PLC状态信息")
    public R wnergyGatheringRingParamTrack(){
        return R.ok();
    }
    @PostMapping("/ring/through/task/wrk/mast/position/data")
//    @ManagerAuth(memo = "作业信息")
    public R ringThroughTaskWrkMast(){
        return R.ok();
    }
    @PostMapping("/ring/through/task/wrk/mast/position/data/v1")
//    @ManagerAuth(memo = "作业信息")
    public R ringThroughTaskWrkMastV1(){
        return R.ok();
    }
    @PostMapping("/task/rgv/circular/shuttle/mast/position/data")
//    @ManagerAuth(memo = "作业信息")
    public R rgvCircularShuttle(){
        return R.ok();
    }
    @PostMapping("/task/rgv/circular/shuttle/mast/position/data/v1")
//    @ManagerAuth(memo = "作业信息")
    public R rgvCircularShuttleV1(){
        return R.ok();
    }
}
src/main/java/com/zy/asrs/domain/param/RingThroughParam.java
New file
@@ -0,0 +1,17 @@
package com.zy.asrs.domain.param;
import lombok.Data;
@Data
public class RingThroughParam {
    // RGV号
    private Integer index;
    private Double valueX;
    private Double valueY;
    private String modeColor;
    private String statusColor;
}
src/main/java/com/zy/core/enums/RgvModeType.java
@@ -2,19 +2,21 @@
public enum RgvModeType {
    NONE(-1, "离线"),
    STOP(2, "维修"),
    HAND(0, "手动"),
    HALF_AUTO(3, "半自动"),
    AUTO(1, "自动"),
    OTHER(100, "其它"),
    NONE(-1, "离线","ffffff"),
    STOP(2, "维修","ffffff"),
    HAND(0, "手动","ffffff"),
    HALF_AUTO(3, "半自动","ffffff"),
    AUTO(1, "自动","ffffff"),
    OTHER(100, "其它","ffffff"),
    ;
    public Integer id;
    public String desc;
    RgvModeType(Integer id, String desc) {
    public String color;
    RgvModeType(Integer id, String desc, String color) {
        this.id = id;
        this.desc = desc;
        this.color = color;
    }
    public static RgvModeType get(Short id) {
src/main/java/com/zy/core/enums/RgvStatusType.java
@@ -2,26 +2,28 @@
public enum RgvStatusType {
    NONE(-1, "离线"),
    NONE0(0, "离线"),
    IDLE(1, "空闲"),
    WORKING(2, "作业中"),// 1:行走  2:取  3:放
    SOS(3, "报警"),
    FETCHING(11, "取货中"),
    PUTTING(12, "放货中"),
    WAITING(90, "任务完成等待WCS确认"),
    FETCHWAITING(91, "取货任务完成等待WCS确认"),
    SOS99(99, "报警99"),
    OTHER(100, "其它100"),
    MAN(110, "作业启动中"),
    ROAM(100000, "漫游")
    NONE(-1, "离线","ffffff"),
    NONE0(0, "离线","ffffff"),
    IDLE(1, "空闲","ffffff"),
    WORKING(2, "作业中","ffffff"),// 1:行走  2:取  3:放
    SOS(3, "报警","ffffff"),
    FETCHING(11, "取货中","ffffff"),
    PUTTING(12, "放货中","ffffff"),
    WAITING(90, "任务完成等待WCS确认","ffffff"),
    FETCHWAITING(91, "取货任务完成等待WCS确认","ffffff"),
    SOS99(99, "报警99","ffffff"),
    OTHER(100, "其它100","ffffff"),
    MAN(110, "作业启动中","ffffff"),
    ROAM(100000, "漫游","ffffff")
    ;
    public Integer id;
    public String desc;
    RgvStatusType(Integer id, String desc) {
    public String color;
    RgvStatusType(Integer id, String desc, String color) {
        this.id = id;
        this.desc = desc;
        this.color = color;
    }
    public static RgvStatusType get(Short id) {
src/main/webapp/views/deviceOperate/wcsOperate.html
New file
@@ -0,0 +1,678 @@
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>环形穿梭车智能系统</title>
    <link rel="stylesheet" href="../../static/wcs/css/element.css">
    <script type="text/javascript" src="../../static/wcs/js/jquery/jquery-3.3.1.min.js"></script>
    <script type="text/javascript" src="../../static/wcs/js/common.js"></script>
    <script type="text/javascript" src="../../static/wcs/js/vue.min.js"></script>
    <script type="text/javascript" src="../../static/wcs/js/element.js"></script>
    <style>
        body {
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            margin: 0;
            padding: 0;
            background-color: #a0d2eb;
            color: #ffffff;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
        }
        header {
            background-color: #2196F3;
            color: white;
            padding: 15px 20px;
            text-align: center;
            font-size: 24px;
            letter-spacing: 1px;
            box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
        }
        .map {
            position: relative;
            width: 52vw;
            height: 80vh;
            border-radius: 50%;
            display: flex;
            justify-content: center;
            align-items: center;
        }
        .inner-ring, .outer-ring {
            position: absolute;
            border-radius: 50%;
        }
        .inner-ring {
            width: 72vh;
            height: 72vh;
            border: 4px solid #00E676;
            box-shadow: inset 0 0 30px rgba(0, 230, 118, 0.5), 0 0 20px rgba(0, 230, 118, 0.5);
        }
        .outer-ring {
            width: 80vh;
            height: 80vh;
            border: 4px solid #00E676;
            box-shadow: inset 0 0 30px rgba(0, 230, 118, 0.5), 0 0 20px rgba(0, 230, 118, 0.5);
        }
        .station {
            position: absolute;
            width: 20px;
            height: 14px;
            text-align: center;
            line-height: 1.5; /* 调整行高与字体大小的比值 */
            font-size: 10px; /* 设置更小的字体 */
            font-weight: bold;
            transition: transform 0.3s ease;
            background-color: #ab1839;
            transform: scale(1); /* 可选:如果不需要放大效果 */
        }
        .bus {
            font-size: 10px;
            background-color: #2196F3;
            border: 10px solid #ffffff;
            position: absolute;
            width: 15px;
            height: 15px;
            border-radius: 50%;
            text-align: center;
            line-height: 15px;
            font-weight: bold;
            transition: transform 0.3s ease;
        }
        .station:hover, .bus:hover {
            transform: scale(1.4);
            z-index: 999;
        }
        .task-bar-left {
            position: fixed;
            top: 1%;
            /*transform: translateY(-50%);*/
            width: 25%; /* 设置宽度 */
            background-color: rgba(255, 255, 255, 0); /* 半透明背景 */
            border-radius: 5px;
            padding: 10px;
            box-shadow: 0 0 10px rgba(0, 0, 0, 0);
            z-index: 1000; /* 确保在其他元素之上 */
        }
        .task-bar-left1 {
            position: fixed;
            top: 8%;
            /*transform: translateY(-50%);*/
            width: 25%; /* 设置宽度 */
            background-color: rgba(255, 255, 255, 0); /* 半透明背景 */
            border-radius: 5px;
            padding: 10px;
            box-shadow: 0 0 10px rgba(0, 0, 0, 0);
            z-index: 1000; /* 确保在其他元素之上 */
        }
        .task-bar-right {
            position: fixed;
            top: 1%;
            /*transform: translateY(-50%);*/
            width: 25%; /* 设置宽度 */
            background-color: rgba(255, 255, 255, 0); /* 半透明背景 */
            border-radius: 5px;
            padding: 10px;
            box-shadow: 0 0 10px rgba(0, 0, 0, 0);
            z-index: 1000; /* 确保在其他元素之上 */
        }
        .task-bar-right1 {
            position: fixed;
            top: 5%;
            /*transform: translateY(-50%);*/
            width: 25%; /* 设置宽度 */
            background-color: rgba(255, 255, 255, 0); /* 半透明背景 */
            border-radius: 5px;
            padding: 10px;
            box-shadow: 0 0 10px rgba(0, 0, 0, 0);
            z-index: 1000; /* 确保在其他元素之上 */
        }
        .task-bar-div1 {
            /*width: 100%; !* 设置宽度 *!*/
            background-color: rgba(255, 255, 255, 0.8); /* 半透明背景 */
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
        }
        .left-task-bar {
            left: 20px; /* 距离左边的距离 */
            /*bottom: 100px;*/
        }
        .right-task-bar {
            /*bottom: 100px;*/
            right: 20px; /* 距离右边的距离 */
        }
        .el-table .warning-row {
            background: oldlace;
        }
        .el-table .success-row {
            background: #f0f9eb;
        }
        .container {
            width: 100vh;
            height: 72vh;
            position: absolute;
            /*background: #8c939d;*/
        }
        .bus-station {
            width: 100vh;
            height: 72vh;
            position: absolute;
            display: flex;
            /*background: #8c939d;*/
        }
        .bus-item-top {
            background: red;
            position: relative;
            width: 40px;
            height: 60px;
            line-height: 60px;
            top: 880px;
            text-align: center;
        }
        .bus-item-left {
            background: red;
            position: relative;
            width: 60px;
            height: 40px;
            line-height: 40px;
            left: 1230px;
            text-align: center;
        }
        .bus-item-left2 {
            background: red;
            position: relative;
            width: 60px;
            height: 40px;
            line-height: 40px;
            left: 1000px;
            text-align: center;
        }
    </style>
</head>
<body>
<!--<header>-->
<!--    环形穿梭车智能系统-->
<!--</header>-->
<div id="app">
    <div  class="map">
        <div v-if="licenseDayI <=30 ">
            <div style="color: red">{{licenseDay}}</div>
        </div>
        <svg class="container">
            <path d="M 1200,750
                        L 1200,100
                        C 1200,100 1200,50 1150,50
                        C 1150,50 1100,50 1100,100
                        L 1100,700
                        C 1100,700 1100,750 1050,750
                        L 60,750
                        C 60,750 10,750 10,800
                        C 10,800 10,850 60,850
                        L 1100,850
                        C 1100,850 1200,850 1200,750
"
                  style="fill:none; stroke:blue; stroke-width:4;" />
        </svg>
        <div v-for="station in tableDataDev" class="station" :style="{ top: station.valueY + 'px', left: station.valueX + 'px' }">{{ station.index }}</div>
        <div>
            <el-switch
                    style="display: block"
                    v-model="valueSystem"
                    active-color="#13ce66"
                    inactive-color="#A64036"
                    active-text="系统运行中..."
                    inactive-text="系统已停止!"
                    @change='upDateValueSystem'>
            </el-switch>
        </div>
        <div v-for="bus in tableDataRgv" class="bus" :style="{ top: bus.valueY + 'px', left: bus.valueX + 'px' , borderColor: bus.modeColor, backgroundColor: bus.statusColor}">{{ bus.index }}</div>
    </div>
</div>
<script>
    var app = new Vue({
        el: '#app',
        data: {
            activeNames: ['1'],
            valueLeft: '0',
            valueLeft1: '0',
            valueRight: '0',
            valueRight1: '0',
            licenseDay: '已过期',
            licenseDayI: 100,
            valueSystem: false,
            tableDataRgv: [],
            tableDataDev: [],
            energyGatheringRing: [],
            tableDataLeft: [],
            tableDataLeft1: [],
            tableDataRight: [],
            tableDataRight1: [],
            devpPos1:[
                {dev_no: 116,pos:633980},
                {dev_no: 117,pos:604043},
                {dev_no: 118,pos:574323},
                {dev_no: 119,pos:559534},
                {dev_no: 120,pos:544682},
                {dev_no: 121,pos:514912},
                {dev_no: 122,pos:485227},
                {dev_no: 123,pos:470367},
                {dev_no: 124,pos:455514},
                {dev_no: 125,pos:425768},
                {dev_no: 126,pos:396268},
                {dev_no: 127,pos:381106},
                {dev_no: 128,pos:366311},
                {dev_no: 129,pos:336638},
                {dev_no: 130,pos:306820},
                {dev_no: 131,pos:277067},
                {dev_no: 132,pos:257418},
                {dev_no: 133,pos:217730},
            ],
            devpPos2:[
                {dev_no: 112,pos:891000},
                {dev_no: 113,pos:865000},
                {dev_no: 114,pos:800000},
                {dev_no: 115,pos:780000},
            ],
            devpPos3:[
                {dev_no: 101,pos:1269958},
                {dev_no: 102,pos:1243454},
                {dev_no: 103,pos:1229081},
                {dev_no: 104,pos:1202099},
                {dev_no: 105,pos:1187564},
                {dev_no: 106,pos:1160630},
                {dev_no: 107,pos:1146152},
                {dev_no: 108,pos:1119463},
                {dev_no: 109,pos:1105038},
                {dev_no: 110,pos:1077961},
                {dev_no: 111,pos:1063813},
            ],
        },
        created(){
            this.init();
            this.devpPos1.reverse()
            this.devpPos3.reverse()
        },
        watch: {
        },
        methods: {
            init(){
                this.getTableDataRgv()
                this.getTableDataDev()
                this.getTableDataTrack()
                this.getTableDataLeft()
                this.getTableDataLeft1()
                this.getTableDataRight()
                this.getTableDataRight1()
                this.getValueSystem()
                this.getLicenseDays()
                setInterval(() => {
                    this.getTableDataRgv()
                    this.getTableDataDev()
                    this.getTableDataTrack()
                    this.getTableDataLeft()
                    this.getTableDataLeft1()
                    this.getTableDataRight()
                    this.getTableDataRight1()
                    this.getValueSystem()
                    this.getLicenseDays()
                }, 1000)
            },
            verifyPassword(callback) {
                this.$prompt('请输入管理员密码: root', '验证', {
                    confirmButtonText: '确定',
                    cancelButtonText: '取消',
                    inputType: 'password',
                    inputPattern: /^root$/,
                    inputErrorMessage: '密码错误'
                }).then(({ value }) => {
                    if (value === 'root') {
                        callback();
                    }
                }).catch(() => {
                    this.$message.info('已取消操作');
                });
            },
            handleChange(val) {
                console.log(val);
                if (val.length === 0){
                    valueRight = '0';
                } else {
                    console.log("2222"+val);
                    if (val.length >= 1){
                        this.handleChangeValueRight(1)
                    }
                }
            },
            handleChange1(val) {
                console.log(val);
                if (val.length === 0){
                    valueRight1 = '0';
                } else {
                    console.log("2222"+val);
                    if (val.length >= 1){
                        this.handleChangeValueRight1(1)
                    }
                }
            },
            taskDelete(row) {
                let that = this;
                that.$confirm('确认要删除该任务吗?', '提示', {
                    confirmButtonText: '确定',
                    cancelButtonText: '取消',
                    type: 'warning'
                }).then(() => {
                    $.ajax({
                        url: baseUrl + "/rgv/disable/task/delete",
                        headers: {'token': localStorage.getItem('token')},
                        method: 'POST',
                        data: {
                            wrkNo: row.wrkNo
                        },
                        success: function (res) {
                            if (res.code === 200) {
                                that.$message.success('删除成功');
                                // 删除当前行
                                that.tableDataRight.splice(that.tableDataRight.indexOf(row), 1);
                            } else {
                                that.$message.error('删除失败');
                            }
                        }
                    });
                });
            },
            taskDelete1(row) {
                let that = this;
                that.$confirm('确认要初始化该任务吗?', '提示', {
                    confirmButtonText: '确定',
                    cancelButtonText: '取消',
                    type: 'warning'
                }).then(() => {
                    $.ajax({
                        url: baseUrl + "/rgv/disable/task/delete1",
                        headers: {'token': localStorage.getItem('token')},
                        method: 'POST',
                        data: {
                            wrkNo: row.wrkNo
                        },
                        success: function (res) {
                            if (res.code === 200) {
                                that.$message.success('初始化成功');
                                // 删除当前行
                                // that.tableDataRight.splice(that.tableDataRight.indexOf(row), 1);
                            } else {
                                that.$message.error('初始化失败');
                            }
                        }
                    });
                });
            },
            toggleStatus(index, row) {
                let that = this;
                const currentStatus = row.status;
                const targetStatus = currentStatus === 0 ? 1 : 0;
                that.$confirm(`确认要${currentStatus === 0 ? '禁用' : '启用'}该设备吗?`, '提示', {
                    confirmButtonText: '确定',
                    cancelButtonText: '取消',
                    type: 'warning'
                }).then(() => {
                    $.ajax({
                        url: baseUrl + "/rgv/disable/rgv/status",
                        headers: {'token': localStorage.getItem('token')},
                        method: 'POST',
                        data: {
                            rgvNo: row.rgvNo,
                            status: targetStatus
                        },
                        success: function (res) {
                            if (res.code === 200) {
                                that.$message.success(`状态更新成功`);
                                row.status$ = targetStatus; // 更新前端状态
                            } else {
                                that.$message.error('状态更新失败');
                            }
                        }
                    });
                });
            },
            handleChangeValueRight(val) {
                console.log("33333"+val);
                switch (val){
                    case 1:
                        valueRight = '100';
                    case 2:
                        valueRight = '100';
                    case 3:
                        valueRight = '100';
                    case 4:
                        valueRight = '100';
                    default:
                        valueRight = '0';
                }
            },
            handleChangeValueRight1(val) {
                console.log("33333"+val);
                switch (val){
                    case 1:
                        valueRight1 = '100';
                    case 2:
                        valueRight1 = '100';
                    case 3:
                        valueRight1 = '100';
                    case 4:
                        valueRight1 = '100';
                    default:
                        valueRight1 = '0';
                }
            },
            tableRowClassName({row, rowIndex}) {
                if (rowIndex === 1) {
                    return 'warning-row';
                } else if (rowIndex === 3) {
                    return 'success-row';
                }
                return '';
            },
            getLicenseDays(){
                let that = this;
                $.ajax({
                    url: baseUrl + "/license/getLicenseDays",
                    headers: {'token': localStorage.getItem('token')},
                    method: 'POST',
                    success: function (res) {
                        if (res.code == 200) {
                            if (res.data.day<0){
                                that.licenseDay = "已过期"+res.data.day+"天";
                                that.licenseDayI = -1;
                            } else {
                                that.licenseDay = "许可证有效期"+res.data.day+"天";
                                that.licenseDayI = res.data.day;
                            }
                        }else {
                            that.licenseDay = "已过期";
                            that.licenseDayI = -1;
                        }
                    }
                });
                // setTimeout(function() {
                //
                // }, 1000);
            },
            getValueSystem() {
                let that = this;
                $.ajax({
                    url: baseUrl + "/console/system/running/status",
                    headers: {
                        'token': localStorage.getItem('token')
                    },
                    data: {},
                    dataType: 'json',
                    contentType: 'application/json;charset=UTF-8',
                    method: 'post',
                    success: function (res) {
                        that.valueSystem = res.data.status
                    }
                });
            },
            upDateValueSystem(){
                let that = this;
                let operatorTypeI = 0;
                if (that.valueSystem){
                    operatorTypeI = 1;
                }
                this.verifyPassword(() => {
                    $.ajax({
                        url: baseUrl + "/console/system/switch",
                        headers: {'token': localStorage.getItem('token')},
                        data: {operatorType : operatorTypeI},
                        method: 'POST',
                        success: function (res) {
                            if (res.code === 200) {
                                that.valueSystem = res.data.status;
                            }
                        }
                    });
                });
            },
            getTableDataLeft() {
                let that = this;
                $.ajax({
                    url: baseUrl + "/rgv/ring/through/task/wrk/mast/position/data",
                    headers: {
                        'token': localStorage.getItem('token')
                    },
                    data: {},
                    dataType: 'json',
                    contentType: 'application/json;charset=UTF-8',
                    method: 'post',
                    success: function (res) {
                        that.tableDataLeft = res.data
                    }
                });
            },
            getTableDataLeft1() {
                let that = this;
                $.ajax({
                    url: baseUrl + "/rgv/ring/through/task/wrk/mast/position/data/v1",
                    headers: {
                        'token': localStorage.getItem('token')
                    },
                    data: {},
                    dataType: 'json',
                    contentType: 'application/json;charset=UTF-8',
                    method: 'post',
                    success: function (res) {
                        that.tableDataLeft1 = res.data
                    }
                });
            },
            getTableDataRight() {
                let that = this;
                $.ajax({
                    url: baseUrl + "/rgv/task/rgv/circular/shuttle/mast/position/data",
                    headers: {
                        'token': localStorage.getItem('token')
                    },
                    data: {},
                    dataType: 'json',
                    contentType: 'application/json;charset=UTF-8',
                    method: 'post',
                    success: function (res) {
                        that.tableDataRight = res.data
                    }
                });
            },
            getTableDataRight1() {
                let that = this;
                $.ajax({
                    url: baseUrl + "/rgv/task/rgv/circular/shuttle/mast/position/data/v1",
                    headers: {
                        'token': localStorage.getItem('token')
                    },
                    data: {},
                    dataType: 'json',
                    contentType: 'application/json;charset=UTF-8',
                    method: 'post',
                    success: function (res) {
                        that.tableDataRight1 = res.data
                    }
                });
            },
            getTableDataRgv() {
                let that = this;
                // that.tableDataRgv = busPsto
                // return
                $.ajax({
                    url: baseUrl + "/rgv/ring/through/rgv/position/data",
                    headers: {
                        'token': localStorage.getItem('token')
                    },
                    data: {},
                    dataType: 'json',
                    contentType: 'application/json;charset=UTF-8',
                    method: 'post',
                    success: function (res) {
                        that.tableDataRgv = res.data
                    }
                });
            },
            getTableDataDev() {
                let that = this;
                $.ajax({
                    url: baseUrl + "/rgv/ring/through/dev/position/data",
                    headers: {
                        'token': localStorage.getItem('token')
                    },
                    data: {},
                    dataType: 'json',
                    contentType: 'application/json;charset=UTF-8',
                    method: 'post',
                    success: function (res) {
                        that.tableDataDev = res.data
                    }
                });
            },
            getTableDataTrack() {
                let that = this;
                $.ajax({
                    url: baseUrl + "/rgv/ring/through/track/position/data",
                    headers: {
                        'token': localStorage.getItem('token')
                    },
                    data: {},
                    dataType: 'json',
                    contentType: 'application/json;charset=UTF-8',
                    method: 'post',
                    success: function (res) {
                        that.energyGatheringRing = res.data
                    }
                });
            }
        }
    })
</script>
</body>
</html>