From 2a6d8a858ca7e41436548b35db147b5cdad4e4be Mon Sep 17 00:00:00 2001
From: wuyouming666 <2265557248@qq.com>
Date: 星期四, 14 十二月 2023 14:08:17 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/CanadaMes

---
 CanadaMes-ui/src/views/home/index.vue                                       |   86 ++++++++++-------
 springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java |  187 +++++++++++++++++++++++++++++++++++++
 2 files changed, 237 insertions(+), 36 deletions(-)

diff --git a/CanadaMes-ui/src/views/home/index.vue b/CanadaMes-ui/src/views/home/index.vue
index bf8547b..8947496 100644
--- a/CanadaMes-ui/src/views/home/index.vue
+++ b/CanadaMes-ui/src/views/home/index.vue
@@ -453,7 +453,8 @@
                 </el-table-column>
                 <el-table-column :min-width="250" :label="$t('Operate')">
                     <template slot-scope='scope'>
-                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" :disabled="scope.row.state == 1 ? false : true"
+                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
+                            :disabled="scope.row.state == 1 ? false : true"
                             @click="deleteglass(scope.row.glassId, scope.row.state)">{{ $t('Delete') }}</el-button>
                         <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
                             :disabled="scope.row.state == 1 ? false : true"
@@ -643,7 +644,8 @@
                 <el-table-column prop="storageCage.glassheightmm" :label="$t('Width')"></el-table-column>
                 <el-table-column :min-width="90" prop="state" :label="$t('Glass State')">
                     <template slot-scope='scope'>
-                        {{ scope.row.state == 0 ? $t('Waiting') : scope.row.state == 1 ? $t('Outing') : scope.row.state == 2 ? $t('Completed') :scope.row.state == 3 ? $t('Absent') :$t('Deleted') }}
+                        {{ scope.row.state == 0 ? $t('Waiting') : scope.row.state == 1 ? $t('Outing') : scope.row.state == 2
+                            ? $t('Completed') : scope.row.state == 3 ? $t('Absent') : $t('Deleted') }}
                     </template>
                 </el-table-column>
                 <el-table-column prop="sequence" :label="$t('Sequence')"></el-table-column>
@@ -661,7 +663,8 @@
 
                 <el-table-column prop="barcode" :label="$t('Complete')">
                     <template slot-scope='scope'>
-                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" :disabled="(!isAllowQueue||scope.row.state!=1)"
+                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
+                            :disabled="(!isAllowQueue || scope.row.state != 1)"
                             @click="CompleteQueue(scope.row.id, scope.row.barcode, scope.row.glassId)">{{ $t('Complete')
                             }}</el-button>
                     </template>
@@ -729,7 +732,7 @@
         </el-dialog>
 
         <el-dialog :visible.sync="dialogFormCountDown" :title="$t('Approximately resettable time')" top="5vh">
-            <div style="font-size: 500px;text-align: center;">
+            <div :style="'font-size: ' + PromptSize + 'px;text-align: center;'">
                 {{ this.CountDowns }}
             </div>
         </el-dialog>
@@ -765,7 +768,7 @@
             dialogFormVisible5: false,
             dialogFormVisible6: false,
             dialogFormVisible7: false,
-            dialogFormCountDown:false,
+            dialogFormCountDown: false,
             form: {
                 orderId: "",
                 glassId: "",
@@ -826,19 +829,19 @@
             OutingQueue: true,
             OrderInfo: true,
             CageDetails: true,
-            CountDowns:0,
-            D01RequestState:false
+            CountDowns: "EMERGENCY STOP",
+            D01RequestState: false,
+            EmergencyStop: false,
+            PromptSize: 250
         };
     },
     created() {
         this.load();
-        
+
         this.init();
     }
     ,
     methods: {
-
-
         init() {
             let viewname = "Home";
             if (typeof (WebSocket) == "undefined") {
@@ -847,7 +850,7 @@
                 //console.log("鎮ㄧ殑娴忚鍣ㄦ敮鎸乄ebSocket");
                 let socketUrl = "ws://" + this.$t('ip') + ":8888" + "/springboot-vue3/api/talk/" + viewname;
                 if (socket != null) {
-                    socket.close();this.car1
+                    socket.close();
                     socket = null;
                 }
                 // 寮�鍚竴涓獁ebsocket鏈嶅姟
@@ -861,7 +864,7 @@
                     //console.log("鏀跺埌鏁版嵁====" + msg.data);
                     let obj = JSON.parse(msg.data);
                     if (obj.params != null) {
-                        
+
                         this.car1 = 145 + 8.15 * Math.abs(obj.params[0][0] - this.carlist[0]['start']) / Math.abs(this.carlist[0]['end'] - this.carlist[0]['start']) * 100;
                         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;
@@ -875,17 +878,21 @@
                     this.tasklist1 = obj.tasklist1[0];
                     this.tasklist2 = obj.tasklist2[0];
                     this.alarm = obj.alarmmg[0];
-                    if(this.alarm.length>0){
-                        this.dialogFormVisible2=true;
+                    if (this.alarm.length > 0) {
+                        this.dialogFormVisible2 = true;
+                    } else {
+                        this.dialogFormVisible2 = false;
                     }
-                    console.log(obj.countdown[0],this.CountDowns);
+                    //鏄惁鎬ュ仠
+                    this.EmergencyStop = obj.emergencystop[0];
+
                     //澶嶄綅鍊掕鏃�
-                    if (obj.countdown[0] == true&&this.CountDowns==0) {
+                    if ((obj.countdown[0] == true && this.CountDowns == 0) || this.EmergencyStop == true) {
                         this.CountDown();
                     }
                     //鏄惁鏈夎繘鐗囪姹�
-                    this.D01RequestState=obj.D01RequestState[0];
-                    
+                    this.D01RequestState = obj.D01RequestState[0];
+
                     //鏄惁鍏佽鍑虹墖
                     this.isAllowQueue = obj.isAllowQueue[0];
                     //鍑虹墖闃熷垪
@@ -919,13 +926,11 @@
                         this.form5 = obj.form3[0];
                         this.showform3();
                         this.glassid1 = "";
-                        if(this.D01RequestState==true){
+                        if (this.D01RequestState == true) {
                             this.Sizerange(this.form5, 3);
-                        }else{
-                            this.disabled1=true;
+                        } else {
+                            this.disabled1 = true;
                         }
-                        
-                        
                     } else {
                         if (this.glassid1 == "") {
                             this.DeleteBarcodeGlass();
@@ -1333,7 +1338,7 @@
         },
         //鎵嬪姩涓婄墖
         FeedInglassid() {
-            if (this.form.glassId != ""&&this.form.glassId != null) {
+            if (this.form.glassId != "" && this.form.glassId != null) {
                 Inglassid(this.insertcage, this.insertcell, this.inserttier, this.form).then(res => {
                     if (res.data.message == 200) {
                         this.$message.success(this.$t('Operation successful'));
@@ -1621,7 +1626,7 @@
             column = rowIndex;
             rowIndex = column;
             let style = "";
-            if (columnIndex === 8 ) {
+            if (columnIndex === 8) {
                 style = "font-size:25px;text-align: center;";
             }
             if (columnIndex === 9 && row.flip == 1) {
@@ -1699,7 +1704,7 @@
                     } else {
                         this.disabled = false;
                     }
-                    if (position == 3 && this.isConfirm == true&&this.D01RequestState==true) {
+                    if (position == 3 && this.isConfirm == true && this.D01RequestState == true) {
                         this.InsertQueueGlass(1);
                     }
                 }
@@ -1717,25 +1722,34 @@
                 }
             });
         },
-        CountDown(){
-            this.dialogFormCountDown=true;
+        CountDown() {
             //50绉掑�掓暟璁℃椂
             let count = 45;
             let timer = setInterval(
                 () => {
-                    if (count > 0) {
-                        this.CountDowns = count;
-                        count--;
-                    }
-                    else {
+                    if (this.EmergencyStop == true) {
                         clearInterval(timer);
-                        this.CountDowns = 0;
-                        this.dialogFormCountDown=false;
+                        this.PromptSize = 250;
+                        this.CountDowns = "EMERGENCY STOP";
+                    } else {
+                        if (count > 0) {
+                            this.PromptSize = 500;
+                            this.CountDowns = count;
+                            count--;
+                        }
+                        else {
+                            this.PromptSize = 250;
+                            this.CountDowns = "Waiting for reset";
+                            this.dialogFormCountDown = false;
+                            // if(澶嶄綅瀹屾垚==true){
+                            //     clearInterval(timer);
+                            // }
+                        }
                     }
                 },
                 1000
             );
-            
+            this.dialogFormCountDown = true;
         }
     }
 }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java b/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
new file mode 100644
index 0000000..67666ae
--- /dev/null
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
@@ -0,0 +1,187 @@
+package com.example.springboot.component;
+
+import cn.hutool.json.JSONObject;
+
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+
+import com.example.springboot.entity.Out_slice;
+import com.example.springboot.entity.Queue;
+import com.example.springboot.entity.StorageCage;
+import com.example.springboot.entity.alarmmg;
+import com.example.springboot.mapper.HomeMapper;
+import com.example.springboot.mapper.SpianMapper;
+import com.example.springboot.service.JdbcConnections;
+import com.example.springboot.service.North_Glass_Buffer1Service;
+import com.example.springboot.service.OutSliceServive;
+import com.example.springboot.service.SpianService;
+
+public class Plchome extends Thread {
+
+    @Autowired
+    private HomeMapper homeMapper;
+    private OutSliceServive outSliceServive;
+    private SpianMapper spianMapper;
+    private SpianService spianService;
+    private North_Glass_Buffer1Service north_Glass_Buffer1Service;
+    private JdbcConnections dbserve;
+    // 鍑虹墖闃熷垪鏄惁鍏佽鍑虹墖
+    public static Boolean isAllowQueue = true;
+    // 閾濇id
+    public static String FrameNo;
+    // 鏄惁闇�瑕佹墜鍔ㄧ‘璁ょ幓鐠�
+    public static Boolean isConfirm = false;
+
+    // public static Map b=new HashMap<>();
+    // b.put()
+    @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);
+            spianMapper = WebSocketServer.applicationContext.getBean(SpianMapper.class);
+            spianService = WebSocketServer.applicationContext.getBean(SpianService.class);
+            outSliceServive = WebSocketServer.applicationContext.getBean(OutSliceServive.class);
+            north_Glass_Buffer1Service = WebSocketServer.applicationContext.getBean(North_Glass_Buffer1Service.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", 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杩涚墖杞︿笌鍑虹墖杞︿綅缃甒
+            List<String> addressList = new ArrayList<String>();
+            addressList.add("DB106.12");
+            addressList.add("DB106.0");
+            List<Short> paramlist = S7control.getinstance().ReadWord(addressList);
+            if (paramlist != null) {
+                jsonObject.append("params", paramlist);
+            }
+            // 鑾峰彇杩涚墖杞︾姸鎬�
+            List<Short> datas1ListState = S7control.getinstance().ReadWord("DB106.8",
+                    1);// 鑾峰彇杩涚墖杞︾姸鎬�
+            boolean exist1 = datas1ListState.contains((short) 0);
+            jsonObject.append("zhuangtai", exist1);
+            // 鑾峰彇杩涚墖鐜荤拑淇℃伅
+            List<Short> inglassInfo = S7control.getinstance().ReadWord("DB106.24", 1);
+            if (inglassInfo != null) {
+                if (inglassInfo.size() > 0)
+                    jsonObject.append("loadglassheight", inglassInfo.get(0) * 70);
+            }
+            // 浼� 鑾峰彇杩涙槸鍚︽湁寰呯‘璁ょ殑鐜荤拑id
+            String queid = spianMapper.Selectqueueid();
+            int state = spianMapper.Selectqueuestate();
+            jsonObject.append("queid", queid);
+            jsonObject.append("state", state);
+            // 鑾峰彇鎵爜浣嶄笌涓婄墖浣嶇幓鐠冧俊鎭�
+            Queue form2 = homeMapper.GetQueueInfo(2);
+            Queue form3 = homeMapper.GetQueueInfo(1);
+            if (form2.getglassId() != null && form2.getglassId() != "") {
+                jsonObject.append("form2", form2);
+            }
+            if (form3.getglassId() != null && form3.getglassId() != "") {
+                jsonObject.append("form3", form3);
+            }
+            // 鑾峰彇鍑虹墖闃熷垪淇℃伅
+            List<Out_slice> listoutslice = outSliceServive.SelectProductionqueue();
+            jsonObject.append("listoutslice", listoutslice);
+            // 鑾峰彇褰撳墠鍑虹墖闃熷垪鐘舵��
+            jsonObject.append("isAllowQueue", Plchome.isAllowQueue);
+
+            // 鑾峰彇閾濇idDB106.DBW64
+            // String frameno=spianService.queGlassid("DB103.270",14).toString();
+            // if(frameno!=Plchome.FrameNo&&frameno!=""){
+            // Plchome.FrameNo=frameno;
+            // }
+            // try {
+            // north_Glass_Buffer1Service.AddOutSliceS(Plchome.FrameNo);
+            // } catch (SQLException e) {
+            // // TODO Auto-generated catch block
+            // e.printStackTrace();
+            // }
+            // 鏄惁闇�瑕佷汉宸ョ‘璁や笂鐗囩幓鐠�
+            jsonObject.append("isConfirm", isConfirm);
+
+            //鑾峰彇杩涚墖璇锋眰鐘舵��
+            List<Short> D01Request = S7control.getinstance().ReadWord("DB106.24", 1);
+            boolean D01RequestState = D01Request.contains((short) 1);
+            // boolean D01RequestState =true;
+            jsonObject.append("D01RequestState", D01RequestState);
+
+            //澶嶄綅鍊掕鏃�
+            // 鍦板潃104.9.6
+            List<Boolean> countdown = S7control.getinstance().ReadBits("DB104.9.6", 1);
+            for (Boolean countdowns : countdown) {
+                jsonObject.append("countdown", countdowns);
+            }
+            // jsonObject.append("countdown", true);
+            // 閾濇绾夸氦浜�
+
+            // //閾濇id璇锋眰瀛�
+            // List<Short> framerequest = S7control.getinstance().ReadWord("閾濇id璇锋眰瀛楀湴鍧�", 1);
+            // if(framerequest!=null){
+            // //閾濇id
+            // String franmeno= spianService.queGlassid("閾濇id鍦板潃", 14).toString();
+            // String position;
+            // try {
+            // position=dbserve.SelectPositionByFrameBarcode(franmeno);
+            // } catch (SQLException e) {
+            // // TODO Auto-generated catch block
+            // position="0";
+            // e.printStackTrace();
+            // }
+            // Short send;
+            // if(position=="0"){
+            // send=0;
+            // }else{
+            // send=1;
+            // }
+            // S7control.getinstance().WriteWord("閾濇缈昏浆鍙戦�佸湴鍧�", (short)send);
+            // }
+
+            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, });
+            ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Home");
+            if (sendwServer != null) {
+                for (WebSocketServer webserver : sendwServer) {
+                    webserver.sendMessage(jsonObject.toString());
+                }
+            }
+
+        }
+    }
+}

--
Gitblit v1.8.0