From ffc342d5c299fa3d966d88e4cdb9bf092a7c7510 Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期四, 21 三月 2024 08:31:01 +0800
Subject: [PATCH] 添加主页面设备状态显示
---
springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java | 4 +
springboot-vue3/src/main/java/com/example/springboot/component/S7control.java | 9 +
Albania_Mes-ui/src/views/home/index.vue | 136 +++++++++++++++++++--------------
springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java | 9 +
springboot-vue3/src/main/resources/JsonFile/PlcAlbania.json | 8 +
springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java | 10 +-
springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java | 8 +
7 files changed, 114 insertions(+), 70 deletions(-)
diff --git a/Albania_Mes-ui/src/views/home/index.vue b/Albania_Mes-ui/src/views/home/index.vue
index fe4231b..b75642f 100644
--- a/Albania_Mes-ui/src/views/home/index.vue
+++ b/Albania_Mes-ui/src/views/home/index.vue
@@ -5,8 +5,8 @@
}
.occupy {
- height: 100%;
- width: 20%;
+ height: 50%;
+ width: 45%;
background-color: white;
margin: 0px 8px 0px 8px;
border: 1px #EBEEF5 solid;
@@ -74,6 +74,7 @@
max-width: 57%;
background-size: 1050px 1400px;
margin-top: -280px;
+ overflow: hidden;
/* width: 1660px;
max-width: 100vw;
background-size: 1660px 560px; */
@@ -82,17 +83,14 @@
}
.blocks-img {
- height: 88px;
- line-height: 90px;
- color: white;
+ height: 900px;
max-width: 100vw;
background-repeat: no-repeat;
background-attachment: local;
- width: 32px;
+ width: 1200px;
position: absolute;
- background-image: url('../../img/bigcar01.png');
- background-size: 40px 87px;
- /* background-size: 46px 94px; */
+ background-image: url(/img/car.c2f92670.png);
+ background-size: 800px 1200px;
}
.blocks-img2 {
@@ -237,74 +235,73 @@
height: 15px;
position: absolute;
}
+
/*
*/
#fileinput .container {
- width: 800px;
- margin: 0 auto;
+ width: 800px;
+ margin: 0 auto;
}
#fileinput .header {
- display: flex;
- justify-content: space-between;
- margin-bottom: 10px;
+ display: flex;
+ justify-content: space-between;
+ margin-bottom: 10px;
}
#fileinput table {
- width: 100%;
- border-collapse: collapse;
- border: 1px solid;
+ width: 100%;
+ border-collapse: collapse;
+ border: 1px solid;
}
#fileinput tr,
#fileinput th,
#fileinput td {
- border: 1px solid #000;
- padding: 5px;
+ border: 1px solid #000;
+ padding: 5px;
}
#fileinput button {
- border: none;
- padding: 5px;
- background-color: #00a297;
- color: #fff;
- border-radius: 5px;
- cursor: pointer;
- margin: 0 5px;
+ border: none;
+ padding: 5px;
+ background-color: #00a297;
+ color: #fff;
+ border-radius: 5px;
+ cursor: pointer;
+ margin: 0 5px;
}
#fileinput tr:nth-child(2n) {
- background-color: #dcdcdc;
+ background-color: #dcdcdc;
}
#fileinput .hide {
- display: none;
+ display: none;
}
#fileinput .c1 {
- position: fixed;
- top: 0;
- bottom: 0;
- left: 0;
- right: 0;
- background: rgba(0, 0, 0, .5);
- z-index: 2;
+ position: fixed;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ background: rgba(0, 0, 0, .5);
+ z-index: 2;
}
#fileinput .c2 {
- background-color: white;
- position: fixed;
- width: 400px;
- height: 300px;
- top: 50%;
- left: 50%;
- z-index: 3;
- margin-top: -150px;
- margin-left: -200px;
+ background-color: white;
+ position: fixed;
+ width: 400px;
+ height: 300px;
+ top: 50%;
+ left: 50%;
+ z-index: 3;
+ margin-top: -150px;
+ margin-left: -200px;
}
-
-
</style>
<template>
<el-container>
@@ -338,20 +335,40 @@
</div>
<div style="display: flex;align-items: center;">
<div class="blocks" style="position: relative;width: 100%;">
+ <div class="blocks-img" :style="'z-index:999;left:150px;top:555px;'">
+ </div>
+ <div
+ :style="'position: absolute;z-index:999;left:271px;top:987px;width:210px;height:38px;background-color:' + ShowDeviceList(0) + ';;'">
+ </div>
+ <div
+ :style="'position: absolute;z-index:999;left:553px;top:956px;width:110px;height:74px;background-color:' + ShowDeviceList(0) + ';;'">
+ </div>
+ <div
+ :style="'position: absolute;z-index:999;left:800px;top:450px;width:115px;height:30px;background-color:' + ShowDeviceList(0) + ';;'">
+ </div>
+ <div
+ :style="'position: absolute;z-index:999;left:800px;top:675px;width:115px;height:30px;background-color:' + ShowDeviceList(0) + ';;'">
+ </div>
+ <div
+ :style="'position: absolute;z-index:999;left:740px;top:930px;width:230px;height:90px;background-color:' + ShowDeviceList(0) + ';;'">
+ <div v-for="item in cagelist1" :key="item['id']">
+ <div></div>
+ </div>
+ </div>
</div>
<div>
- <div style="padding: 10px;display: flex;height:100px;">
+ <div style="padding: 10px;display: flex;height: 300px;flex-wrap: wrap;">
<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">{{ $t('Usage') }}</span><span class="zhi">{{ item['cell'] }}%</span>
+ style="text-align:left;display:flex;justify-content: space-between;align-items: center;height: 70px;">
+ <span class="biao">{{ $t('Usage') }}</span><span class="zhi">{{ item['width'] }}%</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">{{ $t('Space (Pieces)') }}</span><span class="zhi">{{ item['state']
+ <span class="biao">{{ $t('Space (Pieces)') }}</span><span class="zhi">{{ item['cell']
}}</span>
</el-col>
</div>
@@ -440,7 +457,7 @@
<td>{{ item.films }}</td>
<td>{{ item.quantity }}</td>
<td>{{ item.tier }}</td>
- <td>{{ item.matching}}</td>
+ <td>{{ item.matching }}</td>
<td>{{ item.glasstype }}</td>
<td>{{ item.productname }}</td>
</tr>
@@ -704,7 +721,7 @@
reset: false,
isQueueWarning: false,
CurrentFrame: [],
- DeviceList: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+ DeviceList: [1, 1, 1, 1],
GlassIdList: [],
Scanningmethod: true,
CurrrentGlassId: "",
@@ -760,7 +777,10 @@
// 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;
}
-
+ // 鑾峰彇璁惧鐘舵��
+ if (obj.DeviceList != null) {
+ this.DeviceList = obj.DeviceList[0];
+ }
this.tableData = obj.tableData[0];
this.cagelist1 = obj.cagelist1[0];
this.cagelist2 = obj.cagelist2[0];
@@ -1005,9 +1025,9 @@
let _this = this //鎶奷ata閲岀殑鏁版嵁璧嬪�肩粰鏂扮殑鍙橀噺
// wb:wordbook 宸ヤ綔琛�
reader.addEventListener("load", function (e) {
-
+
var data = e.target.result; //璇诲彇鎴愬姛鍚巖esult涓殑鏁版嵁
- var wb = XLSX.read(data, { type: "binary" });
+ var wb = XLSX.read(data, { type: "binary" });
let sheetName = wb.SheetNames[0]; //鏄幏鍙朣heets涓涓�涓猄heet鐨勫悕瀛�
let sheets = wb.Sheets[sheetName];
let dataList2 = JSON.stringify(XLSX.utils.sheet_to_json(sheets));
@@ -1020,17 +1040,17 @@
}
},
Add() {
-
+
},
Hide() {
-
+
},
AllAdd() {
//娣诲姞鏁版嵁杩涘悗鍙�
console.log(this.dataList);
},
del() {
-
+
this.StorageCageAdd = true;
}
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java
index 13c2640..eed7ccf 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java
@@ -39,14 +39,17 @@
// List<Short> E0sss1id = S7control.getinstance().ReadWord("DB14.0",1);
// String E01id = S7control.getinstance().readStrings("DB14.38");
// System.out.println(E01id);
- // if (S7control.getinstance().CheckConnected() == false) {
- byte[] E0sss1id = S7control.getinstance().ReadByte("DB14.208",1);
+ // if (S7control.getinstance().CheckCsonnected() == false) {
+ List<Short> E0sss1id = S7control.getinstance().ReadWord("DB14.206",1);
+ List<String> st= S7control.getinstance().readStrings("DB14.206");
+ byte[] E0sss1ids = S7control.getinstance().ReadByte("DB14.206",2);
+ byte[] E0sss1idss = S7control.getinstance().ReadByte("DB14.0",210);
spianService = WebSocketServer.applicationContext.getBean(SpianServiceNew.class);
albaniaMapper = WebSocketServer.applicationContext.getBean(AlbaniaMapper.class);
//spianService.selectAll(albaniaMapper.SelectGlass());
//璇诲彇DB14鍖烘枃浠�
PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
-
+
String ExportTOMES1=plcmes.getPlcParameter("ExportTOMES1").getValue();//鍑虹墖璇锋眰涓�绾�
String ExportToMES2=plcmes.getPlcParameter("ExportToMES2").getValue();//鍑虹墖璇锋眰浜岀嚎
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
index b5693e4..caa4c27 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
@@ -77,13 +77,13 @@
storageCageService = WebSocketServer.applicationContext.getBean(StorageCageService.class);
// 绗煎瓙浣跨敤鎯呭喌
- List<StorageCage> tableData = homeMapper.selectAll();
+ List<StorageCage> tableData = homeMapper.selectAlls();
jsonObject.append("tableData", tableData);
// 鏍肩悊鐗囩鏍煎瓙鐘舵��
- List<StorageCage> cagelist1 = homeMapper.selectRack1();
- List<StorageCage> cagelist2 = homeMapper.selectRack2();
- List<StorageCage> cagelist3 = homeMapper.selectRack3();
- List<StorageCage> cagelist4 = homeMapper.selectRack4();
+ List<StorageCage> cagelist1=storageCageService.SelectStorageCageByCage(1);
+ List<StorageCage> cagelist2=storageCageService.SelectStorageCageByCage(2);
+ List<StorageCage> cagelist3=storageCageService.SelectStorageCageByCage(3);
+ List<StorageCage> cagelist4=storageCageService.SelectStorageCageByCage(4);
jsonObject.append("cagelist1", cagelist1);
jsonObject.append("cagelist2", cagelist2);
jsonObject.append("cagelist3", cagelist3);
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/S7control.java b/springboot-vue3/src/main/java/com/example/springboot/component/S7control.java
index 44a6805..d4a7529 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/S7control.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/S7control.java
@@ -201,7 +201,6 @@
public List<Short> ReadWord(String address, int count) {
if (s7PLC == null)
return null;
-
List<String> addresslist = GetAddressList(address, count, 16);
try {
return s7PLC.readInt16(addresslist);
@@ -211,7 +210,13 @@
return null;
}
}
-
+ public byte[] Readbyte(String address, int count) {
+ byte[] byt=new byte[count];
+ int wordcount=((count%2==0)?count/2:count+1);
+ List<Short> word=ReadWord(address,wordcount);
+
+ return byt;
+ }
/**
* 鎸夋寚瀹氱殑鍦板潃 璇诲彇byte缁撴灉闆�
*
diff --git a/springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java b/springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java
index 105307a..ad017b3 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java
@@ -21,6 +21,9 @@
@Select("select cage,round(100-(21-sum(if(state>0,1,state)))/21*100) as cell,21-sum(if(state>0,1,state)) as state from (select cage,cell,max(state) as state from storage_cage group by cage,cell) as cages group by cage")
List<StorageCage> selectAll();
+ @Select("Select cage,sum(case when number=0 or number is null then 1 else 0 end) as cell,100-sum(case when number=0 or number is null then 1 else 0 end)/count(id)*100 as width from storage_cage group by cage")
+ List<StorageCage> selectAlls();
+
// 鏌ヨ10-6绗煎唴灞傛牸瀛愮姸鎬�
@Select("SELECT cage,state,ifnull(glasswidth/2750*2,0) as glasswidth from storage_cage where cage>5 and tier=2 order by cage desc,cell desc")
List<StorageCage> selectRack1();
@@ -283,8 +286,11 @@
@Update("update queue set flowcard=#{flowcard},glasswidth=#{width},glassheight=#{height},glasstype=#{glasstype},state=1 where state<=0")
void UpdateQueue(String flowcard,double width,double height,Integer glasstype);
- @Update("update glassinfo set finishnumber=finishnumber+1 where flowcard=#{flowcard} and mateid=#{mateid} and tier=#{geTier}")
+ @Update("update glassinfo set finishnumber=ifnull(finishnumber,0)+1 where flowcard=#{flowcard} and mateid=#{mateid} and tier=#{geTier}")
void AddGlassNo(String flowcard, Integer mateid, Integer geTier);
+ // 鏌ヨ绗煎唴鐜荤拑淇℃伅
+ @Select("SELECT select * from storage_cage where cage=#{cage} order by id desc")
+ List<StorageCage> SelectStorageCageByCage(Integer cage);
}
diff --git a/springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java b/springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java
index 14acc27..e624744 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java
@@ -315,4 +315,8 @@
return Result.success(map);
}
+ public List<StorageCage> SelectStorageCageByCage(int cage) {
+ return homeMapper.SelectStorageCageByCage(cage);
+ }
+
}
diff --git a/springboot-vue3/src/main/resources/JsonFile/PlcAlbania.json b/springboot-vue3/src/main/resources/JsonFile/PlcAlbania.json
index ab65b19..47c58e7 100644
--- a/springboot-vue3/src/main/resources/JsonFile/PlcAlbania.json
+++ b/springboot-vue3/src/main/resources/JsonFile/PlcAlbania.json
@@ -409,6 +409,12 @@
"addressLenght":"2",
"ratio":"1",
"unit":"mm/S"
- }
+ },{
+ "codeId": "MainControl",
+ "addressIndex":"208",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm/S"
+ }
]
}
--
Gitblit v1.8.0