CanadaMes-ui/src/views/home/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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("您的浏览器支持WebSocket"); let socketUrl = "ws://" + this.$t('ip') + ":8888" + "/springboot-vue3/api/talk/" + viewname; if (socket != null) { socket.close();this.car1 socket.close(); socket = null; } // 开启一个websocket服务 @@ -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; } } } springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
New file @@ -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进片车与出片车位置W 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()); } } } } }