wuyouming666
2023-10-09 a4d8c9d69e1c171a8aa38a3f9be613f322a2c2b9
Merge branch 'master' of http://10.153.19.25:10101/r/CanadaMes

# Conflicts:
# springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
4个文件已修改
1个文件已添加
429 ■■■■ 已修改文件
CanadaMes-ui/src/api/home.js 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/lang/locales/en-US.json 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/lang/locales/zh-CN.json 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/home/index.vue 250 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/api/home.js
@@ -100,4 +100,26 @@
    })
}
export function SelectGlassByGlassID(glassid) {
    return request({
        url: '/home/SelectGlassByGlassID?glassid=' + glassid,
        method: 'get',
        data: ""
    })
}
export function Disabled(cage, cell, disabled) {
    return request({
        url: '/home/Disabled?cage=' + cage + '&cell=' + cell + '&disabled=' + disabled,
        method: 'get',
        data: ""
    })
}
export function Inglassid(cage,cell,tier,data) {
    return request({
        url: '/home/Inglassid?cage=' + cage + '&cell=' + cell+ '&tier=' + tier,
        method: 'post',
        data
    })
}
CanadaMes-ui/src/lang/locales/en-US.json
@@ -228,7 +228,7 @@
  "Enter the glass lD":"Enter the glass lD",
  "Manually feed the glass":"Manually feed the glass",
  "Infeed barcodid":"Infeed barcodid",
  "Enter the order number":"Enter the order number",
  "Exit the glass by order number":"Exit the glass by order number",
  "Please confirm the glass information":"Please confirm the glass information",
@@ -238,28 +238,29 @@
  "order":"order",
  "length":"length",
  "width":"width",
  "coating":"coating",
  "Operate":"Operate",
  "end task":"end task",
  "cancal":"cancal",
  "confirm":"confirm",
  "number":"number",
  "Coming out glass ID":"Coming out glass ID",
  "Incoming glass ID":"Incoming glass ID",
  "The Cage number being used":"The Cage number being used",
  "The Grille number being used":"The Grille number being used",
  "Outfeed Barcodid":"Outfeed Barcodid",
  "Infeed Barcodid":"Infeed Barcodid",
  "The Cage number being used":"The Cage Number being used",
  "The Slot number being used":"The Slot Number being used",
  "Order Nmuber":"Order Nmuber",
  "Length and width":"Length and width",
  "Length and Width":"Length and Width",
  "id":"id",
  "content":"content",
  "timeon":"timeon",
  "endTime":"endTime",
  "The Cage number":"The Cage number",
  "tier":"tier",
  "cell":"cell",
  "glassid":"glassid",
  "order number":"order number",
  "The Side":"The Side",
  "The Slot Number":"The Slot Number",
  "Barcodid":"Barcodid",
  "Order Number":"Order Number",
  "List Number":"List Number",
  "Box Number":"Box Number",
  "delete":"delete",
  "out":"out",
@@ -275,10 +276,18 @@
  "prompt":"prompt",
  "Yes":"Yes",
  "No":"No",
  "Please enter the password":"Please enter the password",
  "Password error":"Password error",
  "DataBase Connection failed":"DataBase Connection failed",
  "Distribute parameters":"Distribute parameters"
  "Distribute parameters":"Distribute parameters",
  "The glass size is not within the range":"The glass size is not within the range",
  "increase":"increase",
  "Enable":"Enable",
  "Disable":"Disable",
  "Usage":"Usage",
  "Space (Pieces)":"Space (Pieces)",
  "This glass is already in the cage":"This glass is already in the cage"
}
CanadaMes-ui/src/lang/locales/zh-CN.json
@@ -223,7 +223,7 @@
  "Enter the glass lD":"输入玻璃id",
  "Manually feed the glass":"手动上片",
  "Infeed barcodid":"手动上片",
  "Enter the order number":"输入订单号",
  "Exit the glass by order number":"按订单出片",
  "Please confirm the glass information":"请确认玻璃信息",
@@ -233,28 +233,29 @@
  "order":"订单",
  "length":"长",
  "width":"宽",
  "coating":"涂层",
  "Operate":"操作",
  "end task":"完成任务",
  "cancal":"取消",
  "confirm":"确认",
  "number":"数量",
  "Coming out glass ID":"出片玻璃id",
  "Incoming glass ID":"进片玻璃id",
  "Outfeed Barcodid":"出片玻璃id",
  "Infeed Barcodid":"进片玻璃id",
  "The Cage number being used":"笼子",
  "The Grille number being used":"格子",
  "The Slot number being used":"格子",
  "Order Nmuber":"订单编号",
  "Length and width":"尺寸",
  "List Number":"列表编号",
  "Box Number":"箱子编号",
  "Length and Width":"尺寸",
  "id":"id",
  "content":"内容",
  "timeon":"报警时间",
  "endTime":"结束时间",
  "The Cage number":"笼子",
  "tier":"层",
  "cell":"格子",
  "glassid":"玻璃id",
  "order number":"订单",
  "The Side":"内外侧",
  "The Slot Number":"格子",
  "Barcodid":"玻璃id",
  "Order Number":"订单",
  "delete":"删除",
  "out":"出片",
@@ -283,6 +284,13 @@
  "Please enter the password":"请输入密码",
  "Password error":"密码错误",
  "DataBase Connection failed":"数据库连接失败",
  "Distribute parameters":"下发参数"
  "Distribute parameters":"下发参数",
  "The glass size is not within the range":"玻璃尺寸不在范围内",
  "increase":"添加",
  "Enable":"启用",
  "Disable":"禁用",
  "Usage":"使用率",
  "Space (Pieces)":"空间(片数)",
  "This glass is already in the cage":"笼子里已有此玻璃"
}
CanadaMes-ui/src/views/home/index.vue
@@ -66,16 +66,6 @@
    /* width: 4.22px; */
}
/* .gezi:nth-child(22),
.gezi:nth-child(43),
.gezi:nth-child(64),
.gezi:nth-child(85) {
    margin-left: 7px;
    margin-left: 10px;
} */
.blocks {
@@ -139,7 +129,7 @@
.el-table td,
.el-table th {
    padding: 8px 0;
    padding: 5px 0;
}
.el-table__empty-block {
@@ -153,18 +143,21 @@
.box {
    width: 90%;
    margin-left: 5%;
    height: 35px;
    color: red;
    font-size: 12px;
    overflow: hidden;
    height: 20px;
    /* height: 35px; */
}
.text {
    width: auto;
    line-height: 35px;
    white-space: nowrap;
    animation: textScroll 20s linear infinite;
    margin: 0 auto;
    line-height: 20px;
    /* line-height: 35px; */
}
@keyframes textScroll {
@@ -178,7 +171,7 @@
}
.el-dialog {
    width: 80%;
    width: 90%;
}
</style>
<template>
@@ -196,18 +189,19 @@
            </div>
            <div style="display:flex;justify-content: space-around;width: 95%;margin: 0 auto;">
                <el-input style="width:15%;" :placeholder="$t('Enter the glass lD')" v-model="glassid"></el-input>
                <el-button type="primary" @click="showform()">{{ $t('Manually feed the glass') }}</el-button>
                <el-button type="primary" @click="showform(1)">{{ $t('Infeed barcodid') }}</el-button>
                <el-input style="width:15%;" :placeholder="$t('Enter the order number')" v-model="order"></el-input>
                <el-button type="warning" @click="showform1();">{{ $t('Exit the glass by order number') }}</el-button>
            </div>
            <div>
                <el-table :data="this.tasklist1" border style="width: 100%">
                    <el-table-column prop="glassId" :label="$t('Coming out glass ID')"></el-table-column>
                    <el-table-column :width="250" prop="cage" :label="$t('The Cage number being used')"></el-table-column>
                    <el-table-column :width="250" prop="cell" :label="$t('The Grille number being used')"></el-table-column>
                    <el-table-column prop="orderId" :label="$t('Order Nmuber')"></el-table-column>
                    <el-table-column prop="lengthWidth" :label="$t('Length and width')"></el-table-column>
                    <el-table-column prop="coating" :label="$t('coating')"></el-table-column>
                    <el-table-column :width="130" prop="cage" :label="$t('The Cage number being used')"></el-table-column>
                    <el-table-column :width="130" prop="cell" :label="$t('The Slot number being used')"></el-table-column>
                    <el-table-column :width="150" prop="glassId" :label="$t('Outfeed Barcodid')"></el-table-column>
                    <el-table-column :width="130" prop="orderId" :label="$t('Order Nmuber')"></el-table-column>
                    <el-table-column prop="list" :label="$t('List Number')"></el-table-column>
                    <el-table-column prop="box" :label="$t('Box Number')"></el-table-column>
                    <el-table-column prop="lengthWidth" :label="$t('Length and Width')"></el-table-column>
                    <el-table-column :label="$t('Operate')">
                        <template slot-scope='scope'>
                            <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
@@ -216,12 +210,13 @@
                    </el-table-column>
                </el-table>
                <el-table :data="this.tasklist2" border style="width: 100%">
                    <el-table-column prop="glassId" :label="$t('Incoming glass ID')"></el-table-column>
                    <el-table-column :width="250" prop="cage" :label="$t('The Cage number being used')"></el-table-column>
                    <el-table-column :width="250" prop="cell" :label="$t('The Grille number being used')"></el-table-column>
                    <el-table-column prop="orderId" :label="$t('Order Nmuber')"></el-table-column>
                    <el-table-column prop="lengthWidth" :label="$t('Length and width')"></el-table-column>
                    <el-table-column prop="coating" :label="$t('coating')"></el-table-column>
                    <el-table-column :width="130" prop="cage" :label="$t('The Cage number being used')"></el-table-column>
                    <el-table-column :width="130" prop="cell" :label="$t('The Slot number being used')"></el-table-column>
                    <el-table-column :width="150" prop="glassId" :label="$t('Infeed Barcodid')"></el-table-column>
                    <el-table-column :width="130" prop="orderId" :label="$t('Order Nmuber')"></el-table-column>
                    <el-table-column prop="list" :label="$t('List Number')"></el-table-column>
                    <el-table-column prop="box" :label="$t('Box Number')"></el-table-column>
                    <el-table-column prop="lengthWidth" :label="$t('Length and Width')"></el-table-column>
                    <el-table-column :label="$t('Operate')">
                        <template slot-scope='scope'>
                            <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
@@ -234,11 +229,11 @@
                <div v-for="item in tableData" :key="item['cageno']" class="occupy">
                    <el-col style="text-align:left;font-weight: bold;">#{{ item['cage'] }}</el-col>
                    <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
                        <span class="biao">Usage</span><span class="zhi">{{ item['cell'] }}%</span>
                        <span class="biao">{{ $t('Usage') }}</span><span class="zhi">{{ item['cell'] }}%</span>
                    </el-col>
                    <hr style="width:80%;margin: 0 auto;" />
                    <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
                        <span class="biao">Space (Pieces)</span><span class="zhi">{{ item['state'] }}</span>
                        <span class="biao">{{ $t('Space (Pieces)') }}</span><span class="zhi">{{ item['state'] }}</span>
                    </el-col>
                </div>
            </div>
@@ -267,7 +262,7 @@
                        @click="showcageinfo(item['cage'])"></div>
                </div>
                <div class="blue gezi"
                    :style="{ display: flex, position: absolute, float: left, top: 105 + 'px', left: 1050 + 'px', height: loadglassheight + 'px', width: 5 + 'px' }">
                    :style="{ display: 'flex', position: 'absolute', float: 'left', top: 105 + 'px', left: 1050 + 'px', height: loadglassheight + 'px', width: 5 + 'px' }">
                </div>
                <div class="blocks-img" :style="{ left: car1 + 'px', top: '16px' }"></div>
                <div class="blocks-img" :style="{ left: car2 + 'px', top: '175px' }"></div>
@@ -301,23 +296,33 @@
        </el-footer>
        <el-dialog :visible.sync="dialogFormVisible" :title="$t('Please confirm the glass information')">
            <el-form :model="form" label-width="100px" style="padding-right: 30px">
                <el-form-item :label="$t('Barcodid')">
                    <el-input style="width:15%;" :placeholder="$t('Enter the glass lD')" v-model="glassid"></el-input>
                    <el-button type="primary" @click="showform(3)">query</el-button>
                </el-form-item>
                <el-form-item :label="$t('order')">
                    <el-input v-model="form.orderno" autocomplete="off" />
                    <el-input v-model="form.orderId" readonly autocomplete="off" />
                </el-form-item>
                <el-form-item :label="$t('length')">
                    <el-input v-model="form.length" autocomplete="off" />
                    <el-input v-model="form.height" readonly autocomplete="off" />
                </el-form-item>
                <el-form-item :label="$t('width')">
                    <el-input v-model="form.width" autocomplete="off" />
                    <el-input v-model="form.width" readonly autocomplete="off" />
                </el-form-item>
                <el-form-item :label="$t('coating')">
                    <el-input v-model="form.coating" autocomplete="off" />
                <el-form-item :label="$t('Barcodid')">
                    <el-input v-model="form.glassId" readonly autocomplete="off" />
                </el-form-item>
            </el-form>
            <template #footer>
                <span class="dialog-footer">
                    <el-button @click="sbumitglassid()" :style="{ display: confirm1 == true ? '' : 'none' }"
                        type="primary">{{
                            $t('confirm') }}</el-button>
                    <el-button @click="FeedInglassid()" :style="{ display: confirm2 == true ? '' : 'none' }"
                        type="primary">{{
                            $t('confirm') }}</el-button>
                    <el-button @click="cancal()">{{ $t('cancal') }}</el-button>
                    <el-button @click="sbumitglassid()" type="primary">{{ $t('confirm') }}</el-button>
                </span>
            </template>
        </el-dialog>
@@ -332,8 +337,8 @@
            </el-form>
            <template #footer>
                <span class="dialog-footer">
                    <el-button @click="cancal1()">{{ $t('cancal') }}</el-button>
                    <el-button @click="getOrder();" type="primary">{{ $t('confirm') }}</el-button>
                    <el-button @click="cancal1()">{{ $t('cancal') }}</el-button>
                </span>
            </template>
        </el-dialog>
@@ -345,23 +350,28 @@
                <el-table-column prop="endTime" :label="$t('endTime')"></el-table-column>
            </el-table>
        </el-dialog>
        <el-dialog :visible.sync="dialogFormVisible3" :title="$t('Cage Details')">
        <el-dialog :visible.sync="dialogFormVisible3" :title="$t('Cage Details')" top="5vh">
            <el-table :data="this.cageinfo" :height="700" border style="width: 100%;overflow: auto;">
                <el-table-column prop="cage" :label="$t('The Cage number')"></el-table-column>
                <el-table-column prop="cell" :label="$t('cell')"></el-table-column>
                <el-table-column prop="tier" :label="$t('tier')"></el-table-column>
                <el-table-column prop="glassId" :label="$t('glassid')"></el-table-column>
                <el-table-column prop="orderId" :label="$t('order number')"></el-table-column>
                <el-table-column prop="lengthWidth" :label="$t('Length and width')"></el-table-column>
                <el-table-column prop="coating" :label="$t('coating')"></el-table-column>
                <el-table-column :label="$t('Operate')">
                <el-table-column :width="90" prop="cage" :label="$t('The Cage number')"></el-table-column>
                <el-table-column :width="90"  prop="cell" :label="$t('The Slot Number')"></el-table-column>
                <el-table-column :width="55" prop="tier" :label="$t('The Side')"></el-table-column>
                <el-table-column :width="100" prop="glassId" :label="$t('Barcodid')"></el-table-column>
                <el-table-column :width="100" prop="orderId" :label="$t('Order Number')"></el-table-column>
                <el-table-column :width="100" prop="list" :label="$t('List Number')"></el-table-column>
                <el-table-column :width="100" prop="box" :label="$t('Box Number')"></el-table-column>
                <el-table-column :width="170" prop="lengthWidth" :label="$t('Length and Width')"></el-table-column>
                <el-table-column :width="280" :label="$t('Operate')">
                    <template slot-scope='scope'>
                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
                            @click="deleteglass(scope.row.glassId, scope.row.state)">{{ $t('delete') }}</el-button>
                        <!-- <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" @click="open">{{ $t('delete')
                        }}</el-button> -->
                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
                            @click="outglass(scope.row.glassId, scope.row.state)">{{ $t('out') }}</el-button>
                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
                            @click="UpdateDisabled(scope.row.cage, scope.row.cell, scope.row.disabled == 0 ? 1 : 0)">
                            {{ scope.row.disabled == 0 ? $t('Enable') : $t('Disable') }}</el-button>
                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
                            @click="insertglass(scope.row.cage, scope.row.cell, scope.row.tier)">{{ $t('increase')
                            }}</el-button>
                    </template>
                </el-table-column>
            </el-table>
@@ -369,8 +379,11 @@
    </el-container>
</template>
<script>
import { home, home2, loadtask, InsertOrder, Addglassid, UpdateTask, SelectAlarmmgInfo, SelectCageInfo, DeleteByGlassID, OutByGlassID, Loadcarlist, SelectPassword } from "../../api/home";
//:disabled="scope.row.glassId > 0 || scope.row.disabled == 1 ? true : false"
import {
    home, home2, loadtask, InsertOrder, Addglassid, UpdateTask, SelectAlarmmgInfo,
    SelectCageInfo, DeleteByGlassID, OutByGlassID, Loadcarlist, SelectPassword, SelectGlassByGlassID, Disabled, Inglassid
} from "../../api/home";
import LanguageMixin from '../../lang/LanguageMixin'
@@ -379,6 +392,11 @@
    name: "Home",
    data() {
        return {
            confirm1: false,
            confirm2: false,
            insertcage: 0,
            insertcell: 0,
            inserttier: 0,
            name: 'Confirm',
            mixins: [LanguageMixin],
            dialogFormVisible: false,
@@ -386,10 +404,10 @@
            dialogFormVisible2: false,
            dialogFormVisible3: false,
            form: {
                orderno: "NG2210210",
                length: 800,
                width: 1000,
                coating: "red",
                orderId: "",
                glassId: "",
                height: "",
                width: ""
            },
            form1: {
                order: "NG2210210",
@@ -417,7 +435,7 @@
            carlist: [],
            loadglassheight: 0,
            password: 1,
            text: "DataBase Connection failed",
            text: "",
            zhuangtai: ""
        };
    },
@@ -454,8 +472,6 @@
                        this.car2 = 210 + 8.15 * Math.abs(obj.params[0][1] - this.carlist[1]['start']) / Math.abs(this.carlist[1]['end'] - this.carlist[1]['start']) * 100;
                        // this.car1 = 210 + 11.25 * (obj.params[0][1]-this.carlist[1]['start'])/(this.carlist[1]['end']-this.carlist[1]['start'])*100;
                        // this.car2 = 300 + 11.25 * (obj.params[0][1]-this.carlist[1]['start'])/(this.carlist[1]['end']-this.carlist[1]['start'])*100;
                        console.log(obj.params[0][1], this.carlist[1]['start']);
                        console.log(obj.params[0][0], this.carlist[0]['start']);
                    }
                    this.tableData = obj.tableData[0];
                    this.cagelist1 = obj.cagelist1[0];
@@ -464,7 +480,6 @@
                    this.cagelist4 = obj.cagelist4[0];
                    this.tasklist1 = obj.tasklist1[0];
                    this.tasklist2 = obj.tasklist2[0];
                    // console.log(this.cagelist4);
                    this.alarm = obj.alarmmg[0];
                    this.loadglassheight = obj.loadglassheight;
                    this.zhuangtai = obj.zhuangtai[0];
@@ -518,7 +533,6 @@
            });
            Loadcarlist().then(res => {
                this.carlist = res.data.carlist;
                console.log(this.carlist);
            });
            SelectPassword().then(res => {
                this.password = res.data.password;
@@ -547,7 +561,7 @@
                        this.$message.success(this.$t('Operation successful'));
                    } else {
                        this.$message.success(this.$t('There is no glass for this order'));
                        this.$message.error(this.$t('There is no glass for this order'));
                    }
                    this.load();
                });
@@ -557,38 +571,48 @@
        //手动上片
        sbumitglassid() {
            if (this.form.order != "") {
                if (this.form.height < 380 || this.form.width < 390 || this.form.height > 1810 || this.form.width > 2760) {
                    this.$message.error(this.$t('The glass size is not within the range'));
                } else {
                if (this.zhuangtai == true) {
                    Addglassid(this.glassid).then(res => {
                        if (res.data.message2 == 200) {
                            this.$message.success(this.$t('Operation successful'));
                            this.cancal();
                        } else if (res.data.message2 == 500) {
                            this.$message.success(this.$t('There are currently tasks'));
                                this.$message.error(this.$t('There are currently tasks'));
                        }
                        else if (res.data.message2 == 300) {
                            this.$message.success(this.$t('There is no such glass'));
                                this.$message.error(this.$t('There is no such glass'));
                        }
                        else if (res.data.message2 == 400) {
                            this.$message.success(this.$t('There is no such grid'));
                                this.$message.error(this.$t('There is no such grid'));
                        }
                    });
                } else {
                    this.$message.success(this.$t('There are currently tasks'));
                        this.$message.error(this.$t('There are currently tasks'));
                }
                }
            }
        },
        showform() {
            if (this.glassid != "") {
                this.form =
                {
                    orderno: "NG2210210",
                    length: 800,
                    width: 1000,
                    coating: "red",
                };
                this.dialogFormVisible = true;
        showform(buttons) {
            if (buttons == 1) {
                this.confirm1 = true;
                this.confirm2 = false;
            } else if (buttons == 2) {
                this.confirm1 = false;
                this.confirm2 = true;
            }
            SelectGlassByGlassID(this.glassid).then(res => {
                if (res.data.form != null) {
                    this.form = res.data.form;
                    this.dialogFormVisible = true;
                    this.$message.success('query was successful');
                } else {
                    this.dialogFormVisible = true;
                    this.$message.error(this.$t('There is no such glass'));
                }
            });
        },
        showform1() {
            if (this.order != "") {
@@ -604,7 +628,12 @@
        },
        cancal() {
            this.dialogFormVisible = false;
            this.form = {};
            this.form = {
                orderId: "",
                glassId: "",
                height: "",
                width: ""
            };
        },
        cancal1() {
            this.dialogFormVisible1 = false;
@@ -625,7 +654,7 @@
                        }
                    });
                } else {
                    this.$message.success(this.$t('Password error'));//密码错误
                    this.$message.error(this.$t('Password error'));//密码错误
                }
            }).catch(() => {
                this.$message({
@@ -657,10 +686,10 @@
                            }
                        });
                    } else {
                        this.$message.success(this.$t('No delete allowed'));
                        this.$message.error(this.$t('No delete allowed'));
                    }
                } else {
                    this.$message.success(this.$t('Password error'));//密码错误
                    this.$message.error(this.$t('Password error'));//密码错误
                }
            }).catch(() => {
@@ -685,14 +714,17 @@
                                this.$message.success(this.$t('Operation successful'));
                            }
                            else if (res.data.message2 == 300) {
                                this.$message.success(this.$t('There is no such grid'));
                                this.$message.error(this.$t('There is no such grid'));
                            }
                            else if (res.data.message2 == 500) {
                                this.$message.error(this.$t('This glass is already in the cage'));
                            }
                        });
                    } else {
                        this.$message.success(this.$t('No out allowed'));
                        this.$message.error(this.$t('No out allowed'));
                    }
                } else {
                    this.$message.success(this.$t('Password error'));//密码错误
                    this.$message.error(this.$t('Password error'));//密码错误
                }
            }).catch(() => {
                this.$message({
@@ -700,10 +732,60 @@
                    message: this.$t('Operation canceled')
                });
            });
        },
        insertglass(cage, cell, tier) {
            this.$prompt(this.$t('Are you sure to perform this operation ?'), this.$t('prompt'), {
                inputType: 'password',
                inputPlaceholder: this.$t('Please enter the password'),
                confirmButtonText: this.$t('Yes'),
                cancelButtonText: this.$t('No'),
                type: 'warning'
            }).then(({ value }) => {
                if (this.password == value) {
                    // OutByGlassID(glassid).then(res => {
                    //     if (res.data.message3 == 200) {
                    //         this.$message.success(this.$t('Operation successful'));
                    //     }
                    //     else if (res.data.message2 == 300) {
                    //         this.$message.error(this.$t('There is no such grid'));
                    //     }
                    // });
                    this.insertcage = cage;
                    this.insertcell = cell;
                    this.inserttier = tier;
                    this.showform(2);
                } else {
                    this.$message.error(this.$t('Password error'));//密码错误
        }
            }).catch(() => {
                this.$message({
                    type: 'info',
                    message: this.$t('Operation canceled')
                });
            });
        },
        FeedInglassid() {
            Inglassid(this.insertcage, this.insertcell, this.inserttier, this.form).then(res => {
                if (this.form.glassId != "") {
                    if (res.data.message == 200) {
                        this.$message.success(this.$t('Operation successful'));
                        this.dialogFormVisible = false;
                    } else {
                        this.$message.error(this.$t('This glass is already in the cage'));
                    }
                } else {
                    this.$message.error(this.$t('There is no such glass'));
    }
            });
        },
        UpdateDisabled(cage, cell, disabled) {
            Disabled(cage, cell, disabled).then(res => {
                if (res.data.message == 200) {
                    this.$message.success(this.$t('Operation successful'));
}
            });
        }
    }
}
</script>
springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
New file
@@ -0,0 +1,94 @@
package com.example.springboot.component;
import cn.hutool.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
import com.example.springboot.entity.StorageCage;
import com.example.springboot.entity.alarmmg;
import com.example.springboot.mapper.HomeMapper;
import com.example.springboot.service.JdbcConnections;
public class Plchome extends Thread {
    private HomeMapper homeMapper;
    private JdbcConnections dbserve;
    @Override
    public void run() {
        while (this != null) {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            JSONObject jsonObject = new JSONObject();
            // 注入mapper
            homeMapper = WebSocketServer.applicationContext.getBean(HomeMapper.class);
            // 笼子使用情况
            List<StorageCage> tableData = homeMapper.selectAll();
            jsonObject.append("tableData", tableData);
            // 格理片笼格子状态
            List<StorageCage> cagelist1 = homeMapper.selectRack1();
            List<StorageCage> cagelist2 = homeMapper.selectRack2();
            List<StorageCage> cagelist3 = homeMapper.selectRack3();
            List<StorageCage> cagelist4 = homeMapper.selectRack4();
            jsonObject.append("cagelist1", cagelist1);
            jsonObject.append("cagelist2", (Object)cagelist2);
            jsonObject.append("cagelist3", cagelist3);
            jsonObject.append("cagelist4", cagelist4);
            // 进出片任务
            List<StorageCage> tasklist1 = homeMapper.selectinout(3);
            List<StorageCage> tasklist2 = homeMapper.selectinout(2);
            jsonObject.append("tasklist1", tasklist1);
            jsonObject.append("tasklist2", tasklist2);
            // 查询报警信息
            List<alarmmg> alarmmg = homeMapper.SelectAlarmmgInfo();
            jsonObject.append("alarmmg", alarmmg);
            // 读去Plc进片车与出片车位置W
            List<String> addressList = new ArrayList<String>();
            addressList.add("DB106.12");
            addressList.add("DB106.0");
            List<Short> paramlist= S7control.getinstance().ReadWord(addressList);
            // 获取进片车状态
            List<Short> datas1ListState = S7control.getinstance().ReadWord("DB106.8", 1);// 获取进片车状态
            boolean exist1 = datas1ListState.contains((short) 0);
            jsonObject.append("zhuangtai",exist1);
            // List<Short> paramlists = new ArrayList<Short>();
            // short para1 = 11111;
            // short para2 = 32000;
            // paramlists.add(para1);
            // paramlists.add(para2);
            // System.out.println(paramlists);
            if(paramlist!=null){
            jsonObject.append("params", paramlist);
            }
           List<Short> inglassInfo=  S7control.getinstance().ReadWord("DB106.24",1);
           if(inglassInfo!=null){
            if(inglassInfo.size()>0)
            jsonObject.append("loadglassheight", inglassInfo.get(0)*70);
            }
               dbserve = WebSocketServer.applicationContext.getBean(JdbcConnections.class);
               boolean dbconnected=false;
               try {
                dbserve.getConn();
                 dbconnected=true;
               } catch (Exception e) {
                // TODO: handle exception
                 dbconnected=false;
               }
            jsonObject.append("dbconnected",  dbconnected);
            // jsonObject.append("params", new short[] { 30, 40, });
            WebSocketServer sendwServer = WebSocketServer.sessionMap.get("Home");
            if (sendwServer != null) {
                sendwServer.sendMessage(jsonObject.toString());
            }
        }
    }
}