From 731d32992d51e945bbeb7402d1a9acd87ced9e9d Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期五, 08 九月 2023 17:25:49 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.150:10101/r/CanadaMes
---
CanadaMes-ui/src/views/Electrical/Sign.vue | 16
springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java | 36 +
springboot-vue3/src/main/java/com/example/springboot/controller/AlarmController.java | 25 +
CanadaMes-ui/src/views/Electrical/State.vue | 69 +-
springboot-vue3/src/main/java/com/example/springboot/mapper/SpianMapper.java | 23
CanadaMes-ui/src/api/alarm.js | 8
CanadaMes-ui/src/views/Electrical/Parameter.vue | 137 +++---
springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java | 74 ---
springboot-vue3/src/main/java/com/example/springboot/component/Plcsign.java | 69 ---
springboot-vue3/src/main/java/com/example/springboot/controller/SpianController.java | 77 ---
springboot-vue3/src/main/java/com/example/springboot/service/SpianService.java | 142 ++++++
CanadaMes-ui/src/views/user/index.vue | 9
CanadaMes-ui/src/layout/tag.vue | 2
CanadaMes-ui/src/layout/index.vue | 30
springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java | 1
CanadaMes-ui/src/lang/locales/zh-CN.json | 5
CanadaMes-ui/package.json | 1
springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter.java | 99 ++--
springboot-vue3/src/main/java/com/example/springboot/component/Plcstate.java | 62 --
CanadaMes-ui/src/views/Electrical/alarm.vue | 100 ++++
CanadaMes-ui/package-lock.json | 14
CanadaMes-ui/src/lang/locales/en-US.json | 1
springboot-vue3/src/main/java/com/example/springboot/mapper/AlarmMapper.java | 5
springboot-vue3/src/main/java/com/example/springboot/component/Plcaction.java | 141 +++---
24 files changed, 608 insertions(+), 538 deletions(-)
diff --git a/CanadaMes-ui/package-lock.json b/CanadaMes-ui/package-lock.json
index f0dcccf..8a2960a 100644
--- a/CanadaMes-ui/package-lock.json
+++ b/CanadaMes-ui/package-lock.json
@@ -14,6 +14,7 @@
"js-cookie": "^3.0.1",
"less": "^3.12.2",
"less-loader": "^6.2.0",
+ "moment": "^2.29.4",
"vue": "^2.6.11",
"vue-i18n": "^8.26.5",
"vue-router": "^3.3.4",
@@ -9041,6 +9042,14 @@
},
"bin": {
"mkdirp": "bin/cmd.js"
+ }
+ },
+ "node_modules/moment": {
+ "version": "2.29.4",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
+ "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==",
+ "engines": {
+ "node": "*"
}
},
"node_modules/move-concurrently": {
@@ -21750,6 +21759,11 @@
"minimist": "^1.2.5"
}
},
+ "moment": {
+ "version": "2.29.4",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
+ "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w=="
+ },
"move-concurrently": {
"version": "1.0.1",
"resolved": "https://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz",
diff --git a/CanadaMes-ui/package.json b/CanadaMes-ui/package.json
index 276a358..895a0f4 100644
--- a/CanadaMes-ui/package.json
+++ b/CanadaMes-ui/package.json
@@ -14,6 +14,7 @@
"js-cookie": "^3.0.1",
"less": "^3.12.2",
"less-loader": "^6.2.0",
+ "moment": "^2.29.4",
"vue": "^2.6.11",
"vue-i18n": "^8.26.5",
"vue-router": "^3.3.4",
diff --git a/CanadaMes-ui/src/api/alarm.js b/CanadaMes-ui/src/api/alarm.js
index cba7528..38c7b0f 100644
--- a/CanadaMes-ui/src/api/alarm.js
+++ b/CanadaMes-ui/src/api/alarm.js
@@ -20,3 +20,11 @@
data
})
}
+
+export function setTime (shijian1, shijian2) {
+ return request({
+ url: '/alarm/stTime?shijian1=' + shijian1 + '&shijian2=' + shijian2,
+ method: 'get',
+ data: ""
+ })
+}
diff --git a/CanadaMes-ui/src/lang/locales/en-US.json b/CanadaMes-ui/src/lang/locales/en-US.json
index 20e6f97..5942770 100644
--- a/CanadaMes-ui/src/lang/locales/en-US.json
+++ b/CanadaMes-ui/src/lang/locales/en-US.json
@@ -164,6 +164,7 @@
"B02 OUT DEC error": "B02 OUT DEC error",
"B02 OUT pos error": "B02 OUT pos error"
},
+ "Electrical": "Electrical",
"Parameter": "Parameter",
"Action": "Action",
"Sign": "Sign",
diff --git a/CanadaMes-ui/src/lang/locales/zh-CN.json b/CanadaMes-ui/src/lang/locales/zh-CN.json
index ee14dae..d1971e8 100644
--- a/CanadaMes-ui/src/lang/locales/zh-CN.json
+++ b/CanadaMes-ui/src/lang/locales/zh-CN.json
@@ -35,6 +35,7 @@
"exit": "閫�鍑�",
"changePassword": "淇敼瀵嗙爜",
"resetPassword": "閲嶇疆瀵嗙爜",
+
"home": "涓婚〉",
"role": "瑙掕壊",
"langRoleManagement": "瑙掕壊绠$悊",
@@ -164,10 +165,12 @@
"B02 OUT DEC error": "B02 OUT DEC 閿欒",
"B02 OUT pos error": "B02 OUT pos 閿欒"
},
+ "Electrical": "璁惧绠$悊",
"Parameter": "鍙傛暟涓嬪彂",
"Action": "寮�鍏虫帶鍒�",
"Sign": "IO鐘舵��",
"State": "State",
"Alarm": "鎶ヨ淇℃伅",
"Distribute": "涓嬪彂"
-}
\ No newline at end of file
+}
+
diff --git a/CanadaMes-ui/src/layout/index.vue b/CanadaMes-ui/src/layout/index.vue
index 8ae46e0..4e5d820 100644
--- a/CanadaMes-ui/src/layout/index.vue
+++ b/CanadaMes-ui/src/layout/index.vue
@@ -13,14 +13,14 @@
background-color="#222f3e" text-color="#fff" active-text-color="#ffd04b"
:collapse="isCollapse" :unique-opened="true"
:collapse-transition="false" :router="true">
- <el-menu-item index="/" @click="goToHome">
+ <!-- <el-menu-item index="/" @click="goToHome">
<template slot="title">
- <!--鍥炬爣-->
+
<i class="el-icon-menu"></i>
- <!--鏂囨湰-->
+
<span>{{ $t('home') }}</span>
</template>
- </el-menu-item>
+ </el-menu-item> -->
<!--涓�绾ц彍鍗�-->
<el-submenu :index="item.id.toString()" v-for="item in menuList" :key="item.id">
<!--涓�绾ц彍鍗曟ā鏉垮尯鍩�-->
@@ -31,6 +31,7 @@
<span>{{ item.name }}</span>
</template>
<!--浜岀骇鑿滃崟-->
+
<el-menu-item :index="'/'+menu.router"
v-for="menu in item.menuLists" :key="menu.id"
@click="addTag(menu.router)">
@@ -53,16 +54,15 @@
<el-menu :default-active="activePath1" class="el-menu-demo" mode="horizontal"
background-color="#576574" text-color="#fff" active-text-color="#ffd04b">
<div class="header-left">
- <el-button :icon="isCollapse ? 'el-icon-s-unfold' : 'el-icon-s-fold'" @click="toggleCollapse" style="height:30px"></el-button>
+ <el-button :icon="isCollapse ? 'el-icon-s-unfold' : 'el-icon-s-fold'" @click="toggleCollapse" style="height:30px;"></el-button>
</div>
- <div class="tagContainer">
- <tag v-for="(tag, index) in tags" :key="index" :tag="tag" @removeTag="removeTag(index)" @switchTag="switchTag(index)"></tag>
- <!-- <el-button icon="el-icon-circle-close" class="close-all-btn" @click="removeAllTags"></el-button> -->
- </div>
+ <div class="tagContainer" style="display: flex;">
+ <tag v-for="(tag, index) in tags" :key="index" :tag="tag" @removeTag="removeTag(index)" @switchTag="switchTag(index)"></tag>
+</div>
<template>
- <el-submenu index="1" class="custom-submenu">
+ <el-submenu index="1" class="custom-submenu" >
<template slot="title">
- <el-avatar src="../assets/emi.png" style="width:30px;height:30px;margin-top:2px;"></el-avatar>
+ <el-avatar src="../assets/emi.png" style="width:20px;height:20px;margin-top:30px;background-color: white;"></el-avatar>
</template>
<el-menu-item index="1-1" @click="logout">{{ $t('exit') }}</el-menu-item>
<el-menu-item index="1-2" @click="showChangePasswordDialog">{{ $t('changePassword') }}</el-menu-item>
@@ -149,6 +149,7 @@
...mapState('tags', ['tags'])
},
methods: {
+
logout: function () {
removeToken()
this.$router.push('/login')
@@ -168,6 +169,7 @@
this.$store.commit('tags/addTag', tag);
}
},
+
removeTag(index) {
this.$store.commit('tags/removeTag', index); // 浠� Vuex Store 涓Щ闄ゆ爣绛�
@@ -235,11 +237,16 @@
</script>
<style scoped lang="less">
+
+.el-menu--horizontal > .el-submenu .el-submenu__title {
+ height: 45px !important;
+}
.custom-submenu {
height: 90px !important;
}
+
.header-container {
@@ -250,6 +257,7 @@
.header-left {
margin-right: auto;
+width:30px;
}
.el-aside {
diff --git a/CanadaMes-ui/src/layout/tag.vue b/CanadaMes-ui/src/layout/tag.vue
index 01a1b7d..63c425f 100644
--- a/CanadaMes-ui/src/layout/tag.vue
+++ b/CanadaMes-ui/src/layout/tag.vue
@@ -64,7 +64,7 @@
.tag i {
margin-left: 5px;
- font-size: 12px;
+ font-size: 5px;
cursor: pointer;
}
</style>
\ No newline at end of file
diff --git a/CanadaMes-ui/src/views/Electrical/Parameter.vue b/CanadaMes-ui/src/views/Electrical/Parameter.vue
index ed3cb31..d30361f 100644
--- a/CanadaMes-ui/src/views/Electrical/Parameter.vue
+++ b/CanadaMes-ui/src/views/Electrical/Parameter.vue
@@ -1,55 +1,55 @@
<template>
<div class="app">
- <!--闈㈠寘灞戝鑸尯鍩�-->
+ <!-- 闈㈠寘灞戝鑸尯鍩� -->
<el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
<router-link to="/home" tag="el-button" type="text">{{ $t('langHome') }}</router-link>
- <el-button type="text">{{ $t('Distribute') }}</el-button>
+ <el-button type="text">Electrical</el-button>
<router-link to="/Electrical/Parameter" tag="el-button" type="text">Parameter</router-link>
<router-link to="/Electrical/Action" tag="el-button" type="text">Action</router-link>
<router-link to="/Electrical/Sign" tag="el-button" type="text">Sign</router-link>
<router-link to="/Electrical/State" tag="el-button" type="text">State</router-link>
<router-link to="/Electrical/alarm" tag="el-button" type="text">Alarm</router-link>
</el-breadcrumb>
+
<div>Parameter</div>
-
- <el-form label-width="100px" style="display: flex;flex-wrap: wrap;" :model="messagepack.data">
+
+ <el-form label-width="100px" style="display: flex; flex-wrap: wrap;" :model="messagepack.data">
<div id="btn_div">
- <el-button type="primary" @click="send()">{{ $t('Distribute') }}</el-button>
+ <el-button type="primary" @click="send()" id="xiafa" :disabled="isButtonDisabled">涓嬪彂鍙傛暟</el-button>
+
</div>
<div class="kuai_div" v-for="(item, index) in record.xyData" :key="index">
- <el-input style="width: 280px;" class="in_mc" v-model="item.name" readonly></el-input>
- <el-input v-model.number="item.value" style="width: 80px;"
- @input="handleChange(index, $event.target.value)"></el-input>
- </div>
+ <el-input style="width: 280px; border:none;" class="in_mc" v-model="item.name" readonly></el-input>
+ <span style="margin-right: 5px; width: 50px;">{{ item.value }}</span>
+ <span style="margin-right: 5px; font-size: 14px;">|</span>
+ <input v-model="item.value2" type="number" style="width: 30px; margin-right: 5px; margin-top: 5px; font-size: 16px;">
+</div>
</el-form>
</div>
</template>
-
-<script>
-import LanguageMixin from '../../lang/LanguageMixin'
+<script>
let socket;
export default {
name: "Parameter",
- mixins: [LanguageMixin],
- data () {
+ data() {
return {
record: {
params: [100, 200, 10, 10, 10, 10],
xyData: [
- { name: "conveyor Velocity(Auto FAST)", value: 0 },
- { name: "conveyor Velocity(Auto SLOW)", value: 0 },
- { name: "conveyor Velocity(Manual)", value: 0 },
- { name: "A01 A02 TURN JOG Velocity", value: 0 },
- { name: "A01 A02 TRAVEL JOG Velocity", value: 0 },
- { name: "B01 B02 TRAVEL JOG Velocity", value: 0 },
- { name: "A01 A02 TURN POS Velocity AUTO", value: 0 },
- { name: "A01 A02 TURN POS Velocity manual", value: 0 },
- { name: "A01 A02 TRAVEL POS Velocity AUTO", value: 0 },
- { name: "A01 A02 TRAVEL POS Velocity manual", value: 0 },
- { name: "B01 B02 TRAVEL POS Velocity AUTO", value: 0 },
- { name: "B01 B02 TRAVEL POS Velocity manual", value: 0 }
+ { name: "conveyor Velocity(Auto FAST)", value: 0, value2: 0 },
+ { name: "conveyor Velocity(Auto SLOW)", value: 0, value2: 0 },
+ { name: "conveyor Velocity(Manual)", value: 0 ,value2: 0 },
+ { name: "A01 A02 TURN JOG Velocity", value: 0, value2: 0 },
+ { name: "A01 A02 TRAVEL JOG Velocity", value: 0, value2: 0 },
+ { name: "B01 B02 TRAVEL JOG Velocity", value: 0, value2: 0 },
+ { name: "A01 A02 TURN POS Velocity AUTO", value: 0, value2: 0 },
+ { name: "A01 A02 TURN POS Velocity manual", value: 0, value2: 0 },
+ { name: "A01 A02 TRAVEL POS Velocity AUTO", value: 0, value2: 0 },
+ { name: "A01 A02 TRAVEL POS Velocity manual", value: 0, value2: 0 },
+ { name: "B01 B02 TRAVEL POS Velocity AUTO", value: 0, value2: 0 },
+ { name: "B01 B02 TRAVEL POS Velocity manual", value: 0, value2: 0 }
],
canshu: []
},
@@ -62,92 +62,98 @@
}
};
},
- created () {
+
+
+ created() {
this.initWebSocket();
+ this.isButtonDisabled = true;
},
methods: {
- initWebSocket () {
+ initWebSocket() {
let viewname = "Parameter";
-
+
if (typeof WebSocket === "undefined") {
console.log("鎮ㄧ殑娴忚鍣ㄤ笉鏀寔WebSocket");
} else {
let socketUrl = "ws://" + "localhost:8888" + "/springboot-vue3/api/talk/" + viewname;
-
+
if (socket != null) {
socket.close();
socket = null;
}
-
+
// 寮�鍚竴涓獁ebsocket鏈嶅姟
socket = new WebSocket(socketUrl);
-
+
// 鎵撳紑浜嬩欢
socket.onopen = function () {
console.log("websocket宸叉墦寮�");
};
-
+
// 鏀跺埌娑堟伅
socket.onmessage = (msg) => {
- if (!msg.data) {
- return; // 濡傛灉鏀跺埌绌烘暟鎹紝鍒欑洿鎺ヨ繑鍥烇紝涓嶆墽琛屽悗缁�昏緫
- }
+ if (!msg.data) {
+ return; // 濡傛灉鏀跺埌绌烘暟鎹紝鍒欑洿鎺ヨ繑鍥烇紝涓嶆墽琛屽悗缁�昏緫
+ }
- let obj = JSON.parse(msg.data);
- this.record.params[0] = obj.params[0];
+ let obj = JSON.parse(msg.data);
+ this.record.params[0] = obj.params[0];
+ this.record.state = obj.state[0];
- for (let a = 0; a <= this.record.params[0].length - 1; a++) {
- if (!this.record.xyData[a]) {
- this.record.xyData[a] = { name: this.record.canshu[a], value: this.record.params[0][a] };
- } else {
- this.record.xyData[a].value = this.record.params[0][a];
- }
- }
+ let isButtonDisabled = this.record.state.includes(1);
+ // 鍒ゆ柇state涓槸鍚﹀瓨鍦�1
+ console.log(isButtonDisabled)
+ this.isButtonDisabled = isButtonDisabled; // 灏嗗垽鏂粨鏋滀繚瀛樺埌鍙橀噺isButtonDisabled涓�
- console.log(this.record.xyData);
- this.$forceUpdate();
- };
+ for (let a = 0; a <= this.record.params[0].length - 1; a++) {
+ if (!this.record.xyData[a]) {
+ this.record.xyData[a] = { name: this.record.canshu[a], value: this.record.params[0][a] };
+ } else {
+ this.record.xyData[a].value = this.record.params[0][a];
+ }
+ }
+ console.log(this.record.xyData);
+ this.$forceUpdate();
+};
+
// 鍏抽棴浜嬩欢
socket.onclose = function () {
console.log("websocket宸插叧闂�");
};
-
+
// 鍙戠敓閿欒浜嬩欢
socket.onerror = function () {
console.log("websocket鍙戠敓浜嗛敊璇�");
};
}
},
- send () {
- this.messagepack.data = this.record.xyData.map((item) => parseInt(item.value)); // 杞崲涓烘暣鏁版暟缁�
+ send() {
+ this.messagepack.data = this.record.xyData.map((item) => parseInt(item.value2)); // 杞崲涓烘暣鏁版暟缁�
console.log(this.messagepack);
socket?.send(JSON.stringify(this.messagepack));
},
- handleChange (index, value) {
+ handleChange(index, value) {
this.record.xyData[index].value = value;
}
}
};
</script>
-
+
<style>
.kuai_div {
- width: 30%;
+ width: calc(100% / 3);
margin-bottom: 15px;
-}
-
-.el-input {
- border: none;
}
.el-input__inner {
border: 1px solid black;
}
+.in_mc{
-.in_mc .el-input__inner {
- border: none;
+ border:none;
}
+
#btn_div {
width: 100%;
@@ -156,4 +162,13 @@
#btn_div .el-button {
float: right;
}
-</style>
\ No newline at end of file
+input[type="number"]::-webkit-inner-spin-button,
+ input[type="number"]::-webkit-outer-spin-button {
+ -webkit-appearance: none;
+ margin: 0;
+ }
+
+ input[type="number"] {
+ -moz-appearance: textfield; /* Firefox涓鐢ㄤ笂涓嬬澶� */
+ }
+</style>
diff --git a/CanadaMes-ui/src/views/Electrical/Sign.vue b/CanadaMes-ui/src/views/Electrical/Sign.vue
index c96d683..eee5b45 100644
--- a/CanadaMes-ui/src/views/Electrical/Sign.vue
+++ b/CanadaMes-ui/src/views/Electrical/Sign.vue
@@ -3,12 +3,12 @@
<!--闈㈠寘灞戝鑸尯鍩�-->
<el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
<router-link to="/home" tag="el-button" type="text">{{ $t('langHome') }}</router-link>
- <el-button type="text">Electrical</el-button>
- <router-link to="/Electrical/Parameter" tag="el-button" type="text">Parameter</router-link>
- <router-link to="/Electrical/Action" tag="el-button" type="text">Action</router-link>
- <router-link to="/Electrical/Sign" tag="el-button" type="text">Sign</router-link>
- <router-link to="/Electrical/State" tag="el-button" type="text">State</router-link>
- <router-link to="/Electrical/alarm" tag="el-button" type="text">Alarm</router-link>
+ <el-button type="text">{{ $t('Electrical') }}</el-button>
+ <router-link to="/Electrical/Parameter" tag="el-button" type="text">{{ $t('Parameter') }}</router-link>
+ <router-link to="/Electrical/Action" tag="el-button" type="text">{{ $t('Action') }}</router-link>
+ <router-link to="/Electrical/Sign" tag="el-button" type="text">{{ $t('Sign') }}</router-link>
+ <router-link to="/Electrical/State" tag="el-button" type="text">{{ $t('State') }}</router-link>
+ <router-link to="/Electrical/alarm" tag="el-button" type="text">{{ $t('Alarm') }}</router-link>
</el-breadcrumb>
<div>Sign</div>
<div style="padding-right: 30px;display: flex;flex-wrap: wrap;" class="neir">
@@ -26,9 +26,11 @@
</template>
<script >
+import LanguageMixin from '../../lang/LanguageMixin'
let socket;
export default {
name: "Sign",
+ mixins: [LanguageMixin],
data () {
return {
record: {
@@ -198,7 +200,7 @@
let obj = JSON.parse(msg.data);
//this.$set(this.record.params, 0, obj.params[0]);
this.record.params[0] = obj.sig[0];
- for (let a = 0; a <= this.record.params.length; a++) {
+ for (let a = 0; a <= this.record.xyData[0] - 1; a++) {
if (!this.record.xyData[a]) {
this.record.xyData[a] = { name: this.record.canshu[a], value: this.record.params[0][a] };
} else {
diff --git a/CanadaMes-ui/src/views/Electrical/State.vue b/CanadaMes-ui/src/views/Electrical/State.vue
index bd0b977..c9a3310 100644
--- a/CanadaMes-ui/src/views/Electrical/State.vue
+++ b/CanadaMes-ui/src/views/Electrical/State.vue
@@ -3,24 +3,21 @@
<!--闈㈠寘灞戝鑸尯鍩�-->
<el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
<router-link to="/home" tag="el-button" type="text">{{ $t('langHome') }}</router-link>
- <el-button type="text">Electrical</el-button>
- <router-link to="/Electrical/Parameter" tag="el-button" type="text">Parameter</router-link>
- <router-link to="/Electrical/Action" tag="el-button" type="text">Action</router-link>
- <router-link to="/Electrical/Sign" tag="el-button" type="text">Sign</router-link>
- <router-link to="/Electrical/State" tag="el-button" type="text">State</router-link>
- <router-link to="/Electrical/alarm" tag="el-button" type="text">Alarm</router-link>
+ <el-button type="text">{{ $t('Electrical') }}</el-button>
+ <router-link to="/Electrical/Parameter" tag="el-button" type="text">{{ $t('Parameter') }}</router-link>
+ <router-link to="/Electrical/Action" tag="el-button" type="text">{{ $t('Action') }}</router-link>
+ <router-link to="/Electrical/Sign" tag="el-button" type="text">{{ $t('Sign') }}</router-link>
+ <router-link to="/Electrical/State" tag="el-button" type="text">{{ $t('State') }}</router-link>
+ <router-link to="/Electrical/alarm" tag="el-button" type="text">{{ $t('Alarm') }}</router-link>
</el-breadcrumb>
<div>State</div>
<el-form label-width="100px" style="display: flex;flex-wrap: wrap;" :model="messagepack.data">
- <div id="btn_div">
- <el-button type="primary" @click="send()">Distribute</el-button>
- <!-- <button @click="send()">娴嬭瘯鍙戦��</button> -->
- </div>
+
<div class="kuai_div" v-for="item in this.record.xyData" :key="item.name">
<el-input style="width: 280px;" class="in_mc" v-model="item.name"></el-input>
- <el-input v-model="item.value" style="width: 80px;"></el-input>
+ <el-input v-model.number="item.value" style="width: 80px;"></el-input>
</div>
@@ -34,14 +31,15 @@
</template>
<script >
-
+import LanguageMixin from '../../lang/LanguageMixin'
let socket;
export default {
name: "State",
+ mixins: [LanguageMixin],
data () {
return {
record: {
- params: [0, 0, 0, 0, 0, 0, 0, 0, 0,],
+ params: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0,],
xyData: [
{ name: 'D01.State', value: 0 },
{ name: 'D02.State', value: 0 },
@@ -54,18 +52,18 @@
{ name: 'D05.State', value: 0 },
{ name: 'D06.State', value: 0 },
],
- canshu: [
- 'D01.State',
- 'D02.State',
- 'B01.State',
- 'B02.State',
- 'A01.State',
- 'A02.State',
- 'D03.State',
- 'D04.State',
- 'D05.State',
- 'D06.State',
- ],
+ // canshu: [
+ // 'D01.State',
+ // 'D02.State',
+ // 'B01.State',
+ // 'B02.State',
+ // 'A01.State',
+ // 'A02.State',
+ // 'D03.State',
+ // 'D04.State',
+ // 'D05.State',
+ // 'D06.State',
+ // ],
},
@@ -109,14 +107,15 @@
//console.log("鏀跺埌鏁版嵁====" + msg.data);
let obj = JSON.parse(msg.data);
this.record.params[0] = obj.sta[0];
- for (let a = 0; a <= this.record.params.length; a++) {
- //this.record.xyData[a] = [this.record.params[0][a], this.record.canshu[a]];
- this.record.xyData[a] = { name: this.record.canshu[a], value: this.record.params[0][a] };
+ for (let a = 0; a <= this.record.xyData[0].length - 1; a++) {
+ if (!this.record.xyData[a]) {
+ this.record.xyData[a] = { name: this.record.canshu[a], value: this.record.params[0][a] };
+ } else {
+ this.record.xyData[a].value = this.record.params[0][a];
+ }
+
}
this.$forceUpdate();
- console.log(this.record.xyData);
- //console.log(this.record.params[0])
- // console.log(this.records.canshu);
}.bind(this);
//鍏抽棴浜嬩欢
@@ -130,8 +129,12 @@
}
},
send () {
- this.messagepack.data = { taskname: "鍓嶇鍒板悗鍙�" };
- socket?.send(JSON.stringify(this.messagepack)); // 灏嗙粍瑁呭ソ鐨刯son鍙戦�佺粰鏈嶅姟绔紝鐢辨湇鍔$杩涜杞彂
+ this.messagepack.data = this.record.xyData.map((item) => parseInt(item.value)); // 杞崲涓烘暣鏁版暟缁�
+ console.log(this.messagepack);
+ socket?.send(JSON.stringify(this.messagepack));
+ },
+ handleChange (index, value) {
+ this.record.xyData[index].value = value;
}
}
diff --git a/CanadaMes-ui/src/views/Electrical/alarm.vue b/CanadaMes-ui/src/views/Electrical/alarm.vue
index f3dd37c..c96986c 100644
--- a/CanadaMes-ui/src/views/Electrical/alarm.vue
+++ b/CanadaMes-ui/src/views/Electrical/alarm.vue
@@ -3,22 +3,27 @@
<!--闈㈠寘灞戝鑸尯鍩�-->
<el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
<router-link to="/home" tag="el-button" type="text">{{ $t('langHome') }}</router-link>
- <el-button type="text">Electrical</el-button>
- <router-link to="/Electrical/Parameter" tag="el-button" type="text">Parameter</router-link>
- <router-link to="/Electrical/Action" tag="el-button" type="text">Action</router-link>
- <router-link to="/Electrical/Sign" tag="el-button" type="text">Sign</router-link>
- <router-link to="/Electrical/State" tag="el-button" type="text">State</router-link>
- <router-link to="/Electrical/alarm" tag="el-button" type="text">Alarm</router-link>
+ <el-button type="text">{{ $t('Electrical') }}</el-button>
+ <router-link to="/Electrical/Parameter" tag="el-button" type="text">{{ $t('Parameter') }}</router-link>
+ <router-link to="/Electrical/Action" tag="el-button" type="text">{{ $t('Action') }}</router-link>
+ <router-link to="/Electrical/Sign" tag="el-button" type="text">{{ $t('Sign') }}</router-link>
+ <router-link to="/Electrical/State" tag="el-button" type="text">{{ $t('State') }}</router-link>
+ <router-link to="/Electrical/alarm" tag="el-button" type="text">{{ $t('Alarm') }}</router-link>
</el-breadcrumb>
<div>Alarm</div>
- <!-- <el-form label-width="100px" style="display: flex;flex-wrap: wrap;" :model="{ messagepack }">
- <div class="kuai_div" v-for="item in this.record.xyData" :key="item[1]">
- <el-input v-model="item[1]" style="width: 240px;" class="in_mc"></el-input>
- <el-switch v-model="item[0]" active-value="0" inactive-value="1"></el-switch>
- </div>
- </el-form> -->
+ <div class="block">
+ <span class="demonstration">鏃堕棿锛�</span>
+ <el-date-picker v-model="shijian1" type="datetime" placeholder="閫夋嫨鏃ユ湡鏃堕棿" align="right"
+ :picker-options="pickerOptions">
+ </el-date-picker>
+ ~
+ <el-date-picker v-model="shijian2" type="datetime" placeholder="閫夋嫨鏃ユ湡鏃堕棿" align="right"
+ :picker-options="pickerOptions">
+ </el-date-picker>
+ <el-button type="primary" @click="selectTime()">鏌ヨ</el-button>
+ </div>
- <el-table :data="localizedRoles" style="width: 100%;" height="590">
+ <el-table :data="localizedRoles" style="width: 100%;" height="550">
<el-table-column prop="id" label="id" width="80">
</el-table-column>
<el-table-column prop="content" label="content">
@@ -32,7 +37,10 @@
</template>
<script >
-import { setAll } from "../../api/alarm";
+import { setAll, setTime } from "../../api/alarm";
+
+import moment from 'moment';
+//setTime
import LanguageMixin from '../../lang/LanguageMixin'
let socket;
export default {
@@ -47,7 +55,9 @@
},
roles: [],
+
localizedRoles: [],
+
messagepack: {
data: { taskname: "" }
},
@@ -55,15 +65,49 @@
data: "1",
pageSize: 10
},
+ pickerOptions: {
+ shortcuts: [{
+ text: '浠婂ぉ',
+ onClick (picker) {
+ picker.$emit('pick', new Date());
+ }
+ }, {
+ text: '鏄ㄥぉ',
+ onClick (picker) {
+ const date = new Date();
+ date.setTime(date.getTime() - 3600 * 1000 * 24);
+ picker.$emit('pick', date);
+ }
+ }, {
+ text: '涓�鍛ㄥ墠',
+ onClick (picker) {
+ const date = new Date();
+ date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
+ picker.$emit('pick', date);
+ }
+ }],
+ },
+ shijian1: "",
+ shijian2: "",
}
+
+
},
created () {
this.init();
- this.load();
+
+
+ if (this.shijian1 == "" || this.shijian2 == "") {
+ this.load();
+ }
+ else {
+ this.selectTime();
+ }
},
methods: {
+
load () {
setAll().then(res => {
this.roles = res.data.list;
@@ -73,9 +117,25 @@
} else {
this.localizedRoles = [...this.roles];
}
- console.log(this.localizedRoles);
+ //console.log(this.localizedRoles);
+ });
+
+ },
+ selectTime () {
+ let sj1 = moment(this.shijian1).format('YYYY-MM-DD%20HH:mm');
+ let sj2 = moment(this.shijian2).format('YYYY-MM-DD%20HH:mm')
+
+ setTime(sj1, sj2).then(res => {
+ this.roles = res.data.list;
+ const language = this.$i18n.locale;
+ if (language === 'zh-CN') {
+ this.replaceChineseWithEnglish();
+ } else {
+ this.localizedRoles = [...this.roles];
+ }
});
},
+
replaceChineseWithEnglish () {
const translation = this.$t('translation');
this.localizedRoles = this.roles.map(role => ({
@@ -83,6 +143,7 @@
content: translation[role.content] || role.content
}));
},
+
init () {
let viewname = "alarm";
@@ -110,7 +171,12 @@
this.record.params[0] = obj.arm;
//姣忔璇锋眰鏇存柊鏁版嵁
- this.load();
+ if (this.shijian1 == "" || this.shijian2 == "") {
+ this.load();
+ }
+ else {
+ this.selectTime();
+ }
this.$forceUpdate();
}.bind(this);
//鍏抽棴浜嬩欢
diff --git a/CanadaMes-ui/src/views/user/index.vue b/CanadaMes-ui/src/views/user/index.vue
index c91da6e..82dbf5f 100644
--- a/CanadaMes-ui/src/views/user/index.vue
+++ b/CanadaMes-ui/src/views/user/index.vue
@@ -109,8 +109,8 @@
</el-select>
</el-form-item>
- <el-form-item label="瑙掕壊" prop="roleId">
- <el-select filterable v-model="addUserForm.roleId" placeholder="璇烽�夋嫨">
+ <el-form-item :label="$t('role')" prop="roleId">
+ <el-select filterable v-model="addUserForm.roleId" :placeholder="$t('langSelect')" >
<el-option v-for="item in roleList"
:key="item.id"
:value="item.id"
@@ -135,7 +135,7 @@
<el-input v-model="editUserForm.username" disabled></el-input>
</el-form-item>
<el-form-item :label="$t('role')" prop="roleId">
- <el-select filterable v-model="editUserForm.roleId" placeholder="璇烽�夋嫨">
+ <el-select filterable v-model="editUserForm.roleId" :placeholder="$t('langSelect')" >
<el-option v-for="item in roleList"
:key="item.id"
:value="item.id"
@@ -342,7 +342,8 @@
if (!valid) return;
saveOrUpdate(this.editUserForm).then(() => {
- this.$message.success("淇敼鐢ㄦ埛鎴愬姛");
+ const 淇敼鐢ㄦ埛鎴愬姛 = this.$t('淇敼鐢ㄦ埛鎴愬姛');
+ this.$message.success(淇敼鐢ㄦ埛鎴愬姛);
// 闅愯棌娣诲姞鍒嗙被瀵硅瘽妗�
this.editDialogVisible = false;
// 閲嶆柊鑾峰彇鍒嗙被鍒楄〃
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java
index 5e776f9..f4daa38 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java
@@ -1,9 +1,11 @@
package com.example.springboot.component;
+import java.util.ArrayList;
import java.util.List;
import javax.websocket.Session;
+import com.example.springboot.controller.SpianController;
import com.example.springboot.mapper.AlarmMapper;
import cn.hutool.json.JSONArray;
@@ -18,15 +20,45 @@
while (this != null) {
try {
- Thread.sleep(10000);
+ Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
List<Boolean> bitlist = S7control.getinstance().ReadBits("DB2.0.0", 100);
-
List<Short> paramlist = S7control.getinstance().ReadWord("DB100.6", 1);
+
+ //鍒ゆ柇杩涚墖璇锋眰
+ // List<Short> datas1List=S7control.getinstance().ReadWord("DB106.24", 1);
+ // List<Short> datas1ListState=S7control.getinstance().ReadWord("DB106.8", 1);
+ SpianController spianController=new SpianController();
+ List<Short> datas1List1=new ArrayList<>();
+ List<Short> datas1List2=new ArrayList<>();
+ datas1List1.add((short)1);
+ datas1List2.add((short)0);
+ //鑾峰彇prc杩涚墖璇锋眰鏁版嵁
+ boolean exist = datas1List1.contains((short)1);
+ boolean exist1 = datas1List2.contains((short)0);
+ //杩涚墖璇锋眰涓�1鏃�
+ if(exist=true){
+ //褰撹繘鐗囪溅绌洪棽鏃�
+ if(exist=true){
+ List<Short> datas1ListID=S7control.getinstance().ReadWord("DB106.26", 13);
+ //鑾峰彇鐜荤拑id
+ for(Short list1:datas1ListID)
+ spianController.selectAll(list1);
+ }
+ //System.out.println(exist);
+
+ }
+ //鑾峰彇杩涚墖id
+ // List<Short> datas1ListID=S7control.getinstance().ReadWord("DB106.26", 13);
+
+
+
+
+
// 鏌ヨ鏁版嵁搴�
// 鎺ㄩ�佸埌鍓嶇
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter.java
index 601fd7e..d416822 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter.java
@@ -6,76 +6,57 @@
import java.util.List;
public class PlcParameter extends Thread {
- private static final int SEND_INTERVAL = 10000;
- private static final int WRITE_INTERVAL = 100;
-
@Override
-
public void run() {
- try {
- // 鍙戦�佷竴娆℃秷鎭�
- sendMessages();
-
- // 寤惰繜涓�娈垫椂闂�
- Thread.sleep(SEND_INTERVAL);
-
- while (true) {
- // 鍐欏叆PLC
- writeToPlc();
- Thread.sleep(WRITE_INTERVAL);
-
- // 鍙戦�佹秷鎭�
- sendMessages();
- Thread.sleep(SEND_INTERVAL);
+ while (this != null) {
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
}
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
-
- private void sendMessages() {
- WebSocketServer sendwServer = WebSocketServer.sessionMap.get("Parameter");
- if (sendwServer != null) {
List<Short> paramlist = S7control.getinstance().ReadWord("DB100.DBW", 12);
+ List<Short> state = S7control.getinstance().ReadWord("DB103.DBW0", 10);
JSONObject jsonObject = new JSONObject();
-// new short[]{1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0}
- jsonObject.append("params", new short[]{1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0});
- sendwServer.sendMessage(jsonObject.toString());
- }
- }
+ jsonObject.append("params", new short[]{1111,121, 3232, 0, 1, 0, 1, 0, 1, 0, 1, 0});
+ jsonObject.append("state", new short[]{0, 1, 0, 0, 0, 0, 0,0, 0, 0});
+ WebSocketServer sendwServer = WebSocketServer.sessionMap.get("Parameter");
+ if (sendwServer != null) {
+ sendwServer.sendMessage(jsonObject.toString());
+ }
- private void writeToPlc() {
- WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("Parameter");
- if (webSocketServer != null) {
- List<String> messages = webSocketServer.getMessages();
+ WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("Parameter");
+ if (webSocketServer != null) {
+ List<String> messages = webSocketServer.getMessages();
- String addressList = "DB100.DBW0";
+ String addressList = "DB100.DBW0";
- if (!messages.isEmpty()) {
- // 灏嗘渶鍚庝竴涓秷鎭浆鎹负 short 绫诲瀷鐨勫垪琛�
- String lastMessage = messages.get(messages.size() - 1);
- System.out.println("messages锛�" + messages);
- String[] parts = lastMessage.split(",");
- List<Short> messageValues = new ArrayList<>();
- for (String part : parts) {
- try {
- // 浣跨敤姝e垯琛ㄨ揪寮忔竻闄ら潪鏁板瓧瀛楃
- String cleanedPart = part.replaceAll("[^0-9-]", "");
- short value = Short.parseShort(cleanedPart.trim());
- messageValues.add(value);
- } catch (NumberFormatException e) {
- // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
- e.printStackTrace();
+ if (!messages.isEmpty()) {
+ // 灏嗘渶鍚庝竴涓秷鎭浆鎹负 short 绫诲瀷鐨勫垪琛�
+ String lastMessage = messages.get(messages.size() - 1);
+ System.out.println("messages锛�" + messages);
+ String[] parts = lastMessage.split(",");
+ List<Short> messageValues = new ArrayList<>();
+ for (String part : parts) {
+ try {
+ // 浣跨敤姝e垯琛ㄨ揪寮忔竻闄ら潪鏁板瓧瀛楃
+ String cleanedPart = part.replaceAll("[^0-9-]", "");
+ short value = Short.parseShort(cleanedPart.trim());
+ messageValues.add(value);
+ } catch (NumberFormatException e) {
+ // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
+
+ e.printStackTrace();
+ }
}
- }
- // 灏嗘秷鎭�煎啓鍏� PLC
- S7control.getinstance().WriteWord(addressList, messageValues);
- System.out.println("messageValues锛�" + messageValues);
- System.out.println("addressList锛�" + addressList);
- // 娓呯┖娑堟伅鍒楄〃
- webSocketServer.clearMessages();
+ // 灏嗘秷鎭�煎啓鍏� PLC
+ S7control.getinstance().WriteWord(addressList, messageValues);
+ System.out.println("messageValues锛�" + messageValues);
+ System.out.println("addressList锛�" + addressList);
+ // 娓呯┖娑堟伅鍒楄〃
+ webSocketServer.clearMessages();
+ }
}
}
}
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/Plcaction.java b/springboot-vue3/src/main/java/com/example/springboot/component/Plcaction.java
index c6e197c..5e4d59e 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/Plcaction.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/Plcaction.java
@@ -3,97 +3,84 @@
import cn.hutool.json.JSONObject;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
public class Plcaction extends Thread {
- private static final long SEND_INTERVAL = 2000; // 鍙戦�佹秷鎭殑鏃堕棿闂撮殧
- private static final long WRITE_INTERVAL = 100; // 鍐欏叆PLC鐨勬椂闂撮棿闅�
-
@Override
public void run() {
- try {
- // 鍙戦�佷竴娆℃秷鎭�
- sendMessages();
-
- // 寤惰繜涓�娈垫椂闂�
- Thread.sleep(SEND_INTERVAL);
-
- while (true) {
- // 鍐欏叆PLC
- writeToPlc();
- Thread.sleep(WRITE_INTERVAL);
-
- // 鍙戦�佹秷鎭�
- sendMessages();
- Thread.sleep(SEND_INTERVAL);
+ while (this != null) {
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
}
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
+// List<Boolean> paramlist = S7control.getinstance().ReadBits("DB100.DBW", 12);
+////
+// JSONObject jsonObject = new JSONObject();
+// jsonObject.append("params", new short[]{1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0});
- private void sendMessages() {
- WebSocketServer sendwServer = WebSocketServer.sessionMap.get("action");
- if (sendwServer != null) {
+// List<Boolean> paramlist = S7control.getinstance().ReadBits("DB100.DBW", 12);
+ Boolean[] values = {false, true,false, true,false, true,false, true,false, true,false, true,false, true,false, true,false, true,false, true,false, true};
+ List<Boolean> paramlist = new ArrayList<>(Arrays.asList(values));
+ if (paramlist == null) {
- List<Boolean> paramlist = S7control.getinstance().ReadBits("DB100.DBW", 12);
- // new short[]{1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
- // 1, 0}
- JSONObject jsonObject = new JSONObject();
- jsonObject.append("params",
- new short[] { 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0 });
+ } else {
+ short[] params = new short[paramlist.size()];
- sendwServer.sendMessage(jsonObject.toString());
- }
-
- }
-
- private void writeToPlc() {
- WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("action");
- if (webSocketServer != null) {
- List<String> messages = webSocketServer.getMessages();
-
- String addressList = "DB100.DBW0";
-
- if (!messages.isEmpty()) {
- // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
- String lastMessage = messages.get(messages.size() - 1);
- System.out.println("messages锛�" + messages);
- String[] parts = lastMessage.split(",");
- List<Integer> messageValues = new ArrayList<>();
- for (String part : parts) {
- try {
- // 浣跨敤姝e垯琛ㄨ揪寮忔竻闄ら潪鏁板瓧瀛楃
- String cleanedPart = part.replaceAll("[^0-9-]", "");
- Integer value = Integer.parseInt(cleanedPart.trim());
- messageValues.add(value);
- } catch (NumberFormatException e) {
- // 濡傛灉鏃犳硶瑙f瀽涓烘暣鏁扮被鍨嬶紝鍒欏拷鐣ヨ閮ㄥ垎
- e.printStackTrace();
- }
+ for (int i = 0; i < paramlist.size(); i++) {
+ boolean value = paramlist.get(i);
+ params[i] = value ? (short) 1 : (short) 0;
}
-
- // 灏嗘秷鎭�艰浆鎹负甯冨皵鍒楄〃
- List<Boolean> messageBooleans = new ArrayList<>();
- for (Integer value : messageValues) {
- messageBooleans.add(value == 0 ? true : false);
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.append("params", params);
+ WebSocketServer sendwServer = WebSocketServer.sessionMap.get("action");
+ if (sendwServer != null) {
+ sendwServer.sendMessage(jsonObject.toString());
}
+ }
- // 灏嗗竷灏斿垪琛ㄥ啓鍏� PLC
- S7control.getinstance().WriteBit(addressList, messageBooleans);
- System.out.println("messageValues锛�" + messageBooleans);
- System.out.println("addressList锛�" + addressList);
- // 娓呯┖娑堟伅鍒楄〃
- webSocketServer.clearMessages();
+ WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("action");
+ if (webSocketServer != null) {
+
+ List<String> messages = webSocketServer.getMessages();
+
+ String addressList = "DB100.DBW0";
+
+ if (!messages.isEmpty()) {
+ // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+ String lastMessage = messages.get(messages.size() - 1);
+ System.out.println("messages锛�" + messages);
+ String[] parts = lastMessage.split(",");
+ List<Integer> messageValues = new ArrayList<>();
+ for (String part : parts) {
+ try {
+ // 浣跨敤姝e垯琛ㄨ揪寮忔竻闄ら潪鏁板瓧瀛楃
+ String cleanedPart = part.replaceAll("[^0-9-]", "");
+ Integer value = Integer.parseInt(cleanedPart.trim());
+ messageValues.add(value);
+ } catch (NumberFormatException e) {
+ // 濡傛灉鏃犳硶瑙f瀽涓烘暣鏁扮被鍨嬶紝鍒欏拷鐣ヨ閮ㄥ垎
+ e.printStackTrace();
+ }
+ }
+
+ // 灏嗘秷鎭�艰浆鎹负甯冨皵鍒楄〃
+ List<Boolean> messageBooleans = new ArrayList<>();
+ for (Integer value : messageValues) {
+ messageBooleans.add(value == 0 ? true : false);
+ }
+
+ // 灏嗗竷灏斿垪琛ㄥ啓鍏� PLC
+ S7control.getinstance().WriteBit(addressList, messageBooleans);
+ System.out.println("messageValues锛�" + messageBooleans);
+ System.out.println("addressList锛�" + addressList);
+ // 娓呯┖娑堟伅鍒楄〃
+ webSocketServer.clearMessages();
+ }
}
}
}
-
- private List<Boolean> paramList() {
- // 鑾峰彇鍙傛暟鍒楄〃鐨勯�昏緫
-
- return new ArrayList<>(); // 鍋囪杩斿洖绌哄垪琛�
- }
-}
\ No newline at end of file
+}
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java b/springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java
index e90d7a4..01d9ef1 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java
@@ -19,31 +19,22 @@
e.printStackTrace();
}
- List<Short> paramlist = S7control.getinstance().ReadWord("DB100.DBW", 12);
-
- // JSONObject jsonObject = new JSONObject();
- // // jsonObject.append("params", paramlist);
- // jsonObject.append("params", new short[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
- // 11, });
- // WebSocketServer sendwServer = WebSocketServer.sessionMap.get("Parameter");
- // if (sendwServer != null) {
- // sendwServer.sendMessage(jsonObject.toString());
- // }
+ List<Boolean> plclist = S7control.getinstance().ReadBits("DB104.DBx0.0", 40);
JSONObject jsonObject = new JSONObject();
- jsonObject.append("arm",
- new short[] { 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0,
- 1, 0, 1, 0, 1, 0, 1, 0, 1, });
+ jsonObject.append("params", plclist);
WebSocketServer sendwServer = WebSocketServer.sessionMap.get("alarm");
if (sendwServer != null) {
sendwServer.sendMessage(jsonObject.toString());
}
- Short[] shuzu1 = {
- 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0,
- 1, 0, 1, 0, 1, 0, 1, 0, 1,
- };
+ Short[] shuzu1 = plclist.toArray(new Short[0]);
+ // Short[] shuzu1 = {
+ // 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
+ // 1, 0, 1, 0, 0,
+ // 1, 0, 1, 0, 1, 0, 1, 0, 1,
+ // };
String[] shuzu = {
"D01 VFD error",
@@ -96,53 +87,6 @@
// alarmMapper.updatealarm(shuzu[i]);
}
}
-
- // 鍐�
- WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("Parameter");
- if (webSocketServer != null) {
- List<String> messages = webSocketServer.getMessages();
-
- String addressList = "DB100.DBW0";
- // addressList.add("DB100.DBW0");
- // addressList.add("DB100.DBW2");
- // addressList.add("DB100.DBW4");
- // addressList.add("DB100.DBW6");
- // addressList.add("DB100.DBW8");
- // addressList.add("DB100.DBW10");
- // addressList.add("DB100.DBW12");
- // addressList.add("DB100.DBW14");
- // addressList.add("DB100.DBW16");
- // addressList.add("DB100.DBW18");
- // addressList.add("DB100.DBW20");
- // addressList.add("DB100.DBW22");
-
- if (!messages.isEmpty()) {
- // 灏嗘渶鍚庝竴涓秷鎭浆鎹负 short 绫诲瀷鐨勫垪琛�
- String lastMessage = messages.get(messages.size() - 1);
- System.out.println("messages锛�" + messages);
- String[] parts = lastMessage.split(",");
- List<Short> messageValues = new ArrayList<>();
- for (String part : parts) {
- try {
- // 浣跨敤姝e垯琛ㄨ揪寮忔竻闄ら潪鏁板瓧瀛楃
- String cleanedPart = part.replaceAll("[^0-9-]", "");
- short value = Short.parseShort(cleanedPart.trim());
- messageValues.add(value);
- } catch (NumberFormatException e) {
- // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-
- e.printStackTrace();
- }
- }
-
- // 灏嗘秷鎭�煎啓鍏� PLC
- // S7control.getinstance().WriteWord(addressList, messageValues);
- System.out.println("messageValues锛�" + messageValues);
- System.out.println("addressList锛�" + addressList);
- // 娓呯┖娑堟伅鍒楄〃
- webSocketServer.clearMessages();
- }
- }
}
}
-}
+}
\ No newline at end of file
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/Plcsign.java b/springboot-vue3/src/main/java/com/example/springboot/component/Plcsign.java
index 7c9c446..b641602 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/Plcsign.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/Plcsign.java
@@ -15,71 +15,20 @@
e.printStackTrace();
}
- List<Short> paramlist = S7control.getinstance().ReadWord("DB100.DBW", 12);
+ List<Boolean> plclist = S7control.getinstance().ReadBits("DB102.DBX0.0", 58);
- // JSONObject jsonObject = new JSONObject();
- // // jsonObject.append("params", paramlist);
- // jsonObject.append("params", new short[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
- // 11, });
- // WebSocketServer sendwServer = WebSocketServer.sessionMap.get("Parameter");
- // if (sendwServer != null) {
- // sendwServer.sendMessage(jsonObject.toString());
- // }
-
- JSONObject jsonObject3 = new JSONObject();
- jsonObject3.append("sig",
- new short[] { 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
- 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, });
+ JSONObject jsonObject = new JSONObject();
+ // jsonObject3.append("sig",
+ // new short[] { 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,
+ // 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
+ // 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,
+ // });
+ jsonObject.append("sig", plclist);
WebSocketServer sendwServer3 = WebSocketServer.sessionMap.get("Sign");
if (sendwServer3 != null) {
- sendwServer3.sendMessage(jsonObject3.toString());
+ sendwServer3.sendMessage(jsonObject.toString());
}
- WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("Sign");
- if (webSocketServer != null) {
- List<String> messages = webSocketServer.getMessages();
-
- String addressList = "DB100.DBW0";
- // addressList.add("DB100.DBW0");
- // addressList.add("DB100.DBW2");
- // addressList.add("DB100.DBW4");
- // addressList.add("DB100.DBW6");
- // addressList.add("DB100.DBW8");
- // addressList.add("DB100.DBW10");
- // addressList.add("DB100.DBW12");
- // addressList.add("DB100.DBW14");
- // addressList.add("DB100.DBW16");
- // addressList.add("DB100.DBW18");
- // addressList.add("DB100.DBW20");
- // addressList.add("DB100.DBW22");
-
- if (!messages.isEmpty()) {
- // 灏嗘渶鍚庝竴涓秷鎭浆鎹负 short 绫诲瀷鐨勫垪琛�
- String lastMessage = messages.get(messages.size() - 1);
- System.out.println("messages锛�" + messages);
- String[] parts = lastMessage.split(",");
- List<Short> messageValues = new ArrayList<>();
- for (String part : parts) {
- try {
- // 浣跨敤姝e垯琛ㄨ揪寮忔竻闄ら潪鏁板瓧瀛楃
- String cleanedPart = part.replaceAll("[^0-9-]", "");
- short value = Short.parseShort(cleanedPart.trim());
- messageValues.add(value);
- } catch (NumberFormatException e) {
- // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-
- e.printStackTrace();
- }
- }
-
- // 灏嗘秷鎭�煎啓鍏� PLC
- // S7control.getinstance().WriteWord(addressList, messageValues);
- System.out.println("messageValues锛�" + messageValues);
- System.out.println("addressList锛�" + addressList);
- // 娓呯┖娑堟伅鍒楄〃
- webSocketServer.clearMessages();
- }
- }
}
}
}
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/Plcstate.java b/springboot-vue3/src/main/java/com/example/springboot/component/Plcstate.java
index 9596db9..b3556f7 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/Plcstate.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/Plcstate.java
@@ -15,71 +15,17 @@
e.printStackTrace();
}
- List<Short> paramlist = S7control.getinstance().ReadWord("DB100.DBW", 12);
-
- // JSONObject jsonObject = new JSONObject();
- // // jsonObject.append("params", paramlist);
- // jsonObject.append("params", new short[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
- // 11, });
- // WebSocketServer sendwServer = WebSocketServer.sessionMap.get("Parameter");
- // if (sendwServer != null) {
- // sendwServer.sendMessage(jsonObject.toString());
- // }
+ List<Short> plclist = S7control.getinstance().ReadWord("DB103.DBW0", 10);
JSONObject jsonObject = new JSONObject();
- jsonObject.append("sta",
- new short[] { 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0,
- 1, });
+ // jsonObject.append("sta",
+ // new short[] { 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, });
+ jsonObject.append("sta", plclist);
WebSocketServer sendwServer = WebSocketServer.sessionMap.get("State");
if (sendwServer != null) {
sendwServer.sendMessage(jsonObject.toString());
}
- WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("State");
- if (webSocketServer != null) {
- List<String> messages = webSocketServer.getMessages();
-
- String addressList = "DB100.DBW0";
- // addressList.add("DB100.DBW0");
- // addressList.add("DB100.DBW2");
- // addressList.add("DB100.DBW4");
- // addressList.add("DB100.DBW6");
- // addressList.add("DB100.DBW8");
- // addressList.add("DB100.DBW10");
- // addressList.add("DB100.DBW12");
- // addressList.add("DB100.DBW14");
- // addressList.add("DB100.DBW16");
- // addressList.add("DB100.DBW18");
- // addressList.add("DB100.DBW20");
- // addressList.add("DB100.DBW22");
-
- if (!messages.isEmpty()) {
- // 灏嗘渶鍚庝竴涓秷鎭浆鎹负 short 绫诲瀷鐨勫垪琛�
- String lastMessage = messages.get(messages.size() - 1);
- System.out.println("messages锛�" + messages);
- String[] parts = lastMessage.split(",");
- List<Short> messageValues = new ArrayList<>();
- for (String part : parts) {
- try {
- // 浣跨敤姝e垯琛ㄨ揪寮忔竻闄ら潪鏁板瓧瀛楃
- String cleanedPart = part.replaceAll("[^0-9-]", "");
- short value = Short.parseShort(cleanedPart.trim());
- messageValues.add(value);
- } catch (NumberFormatException e) {
- // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-
- e.printStackTrace();
- }
- }
-
- // 灏嗘秷鎭�煎啓鍏� PLC
- // S7control.getinstance().WriteWord(addressList, messageValues);
- System.out.println("messageValues锛�" + messageValues);
- System.out.println("addressList锛�" + addressList);
- // 娓呯┖娑堟伅鍒楄〃
- webSocketServer.clearMessages();
- }
- }
}
}
}
diff --git a/springboot-vue3/src/main/java/com/example/springboot/controller/AlarmController.java b/springboot-vue3/src/main/java/com/example/springboot/controller/AlarmController.java
index 43aeeb4..034beb9 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/controller/AlarmController.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/controller/AlarmController.java
@@ -13,6 +13,7 @@
import com.example.springboot.entity.alarmmg;
import com.example.springboot.mapper.AlarmMapper;
import com.example.springboot.service.AlarmService;
+import com.microsoft.schemas.office.office.STInsetMode;
@RestController
@RequestMapping("/alarm")
@@ -25,10 +26,32 @@
@GetMapping("/load")
public Result selectAll() {
- List<alarmmg> storageCagelist = alarmMapper.selectAll();
+
Map<String, Object> map = new HashMap<>();
+ List<alarmmg> storageCagelist = alarmMapper.selectAll();
map.put("list", storageCagelist);
return Result.success(map);
}
+ @GetMapping("/stTime")
+ public Result selecttime(String shijian1, String shijian2) {
+ System.out.println("++++++");
+ System.out.println(shijian1);
+
+ if (shijian1 != "" || shijian2 != "") {
+ String sj1 = shijian1.replace("#20", " ");
+ String sj2 = shijian2.replace("#20", " ");
+ List<alarmmg> storageCagelist = alarmMapper.selecttime(sj1, sj2);
+ Map<String, Object> map = new HashMap<>();
+ map.put("list", storageCagelist);
+ return Result.success(map);
+ } else {
+ List<alarmmg> storageCagelist = alarmMapper.selectAll();
+ Map<String, Object> map = new HashMap<>();
+ map.put("list", storageCagelist);
+ return Result.success(map);
+ }
+
+ }
+
}
diff --git a/springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java b/springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java
index 4216a59..b7332cb 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java
@@ -77,6 +77,7 @@
}else{
map.put("message2","200");
//璋冪敤浼嶄笂鐗囧嚱鏁�
+
}
return Result.success(map);
}
diff --git a/springboot-vue3/src/main/java/com/example/springboot/controller/SpianController.java b/springboot-vue3/src/main/java/com/example/springboot/controller/SpianController.java
index 0b0e6d2..9a7de54 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/controller/SpianController.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/controller/SpianController.java
@@ -1,6 +1,7 @@
package com.example.springboot.controller;
import com.example.springboot.common.Result;
+import com.example.springboot.component.S7control;
import com.example.springboot.entity.StorageCage;
import com.example.springboot.mapper.SpianMapper;
import com.example.springboot.service.SpianService;
@@ -13,6 +14,7 @@
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
@RestController
@@ -23,88 +25,27 @@
@Autowired
SpianMapper spianMapper;
-
-
@Autowired
SpianService spianservice;
//鍑虹墖浠诲姟
@GetMapping("/all2")
- public Result selectdd(String orderid){
- //鑾峰彇浼樺厛鍑虹墖鐨勪綅缃�
- StorageCage cageout=spianMapper.selectOut(orderid);
- int cage =cageout.getCage(); //鍌ㄥ瓨鍑虹墖浣嶇疆锛岀瀛愭牸瀛愬嚑鍙风幓鐠�
- int cell =cageout.getCell();
- int tier =cageout.getTier();
- double glasswidth=cageout.getGlassWidth();
- //鍒ゆ柇鐜荤拑鍐呭鐗�
- if(tier==2){
- //鍒ゆ柇鐜荤拑鍙洿鎺ュ嚭鐗囨椂
- return Result.success("鎵ц鍑虹墖");
- }
- else{
- //鑾峰彇鏍煎瓙鐨勭幓鐠冩暟閲�
- int state= spianMapper.selectGlassState(cage,cell);
- //鍒ゆ柇鍐呯墖鏄惁闇�瑕佽皟鎷�
- if(state==0){
- return Result.success("鐘舵�佷负0,鐩存帴鍑虹墖");
- }else{
- //鐜荤拑闇�瑕佽皟鎷ㄦ椂锛屽垽鏂睘浜庡摢涓崐鍖虹殑绗煎瓙
- if(cage<6){
- StorageCage cagecell= spianMapper.selectGlassCage(cage,glasswidth,0,6);
- //鑾峰彇璋冩嫧浣嶇疆杩涜璋冩嫧
- return Result.success(cagecell); //璋冩嫧浣嶇疆鐨勫弬鏁板唴瀹�
- //鍒ゆ柇璋冩嫧缁撴潫鍚庡啀娆″嚭鐗�
- }else{
- StorageCage cagecell= spianMapper.selectGlassCage(cage,glasswidth,5,11);
- //鑾峰彇璋冩嫧浣嶇疆杩涜璋冩嫧
- StorageCage ca=cagecell;
- return Result.success(cagecell); //璋冩嫧浣嶇疆鐨勫弬鏁板唴瀹�
- //鍒ゆ柇璋冩嫧缁撴潫鍚庡啀娆″嚭鐗�
-
- }
-
- }
- }
+ public void selectdd(String orderid){
+ SpianService service=new SpianService();
+ service.selectadd(orderid);
}
@GetMapping("/all")
//杩涚墖浠诲姟,浼犺鍗昳d
//鎸夎鍗曚紭鍏堣繘鐗�
- public Result selectAll(String orderid){
- //return spianMapper.selectAll();
- int cage1;
- //String orderid="A001";
- //鑾峰彇璁㈠崟鐩稿叧搴︽渶楂樼殑绗煎瓙鎺掑簭
- List<StorageCage> storageCage=spianMapper.selectAll(orderid);
- for (StorageCage storageCage2 : storageCage) {
- //淇濆瓨璁㈠崟浼樺厛椤哄簭绗煎瓙鍙�
- cage1=storageCage2.getCage();
- //鍒ゆ柇璇ョ瀛愬彿鐩搁偦鏈�澶х殑绌烘牸鏁�
- int cages=spianMapper.selectCage(cage1);
- //鍒ゆ柇閫変腑绗煎瓙鏄惁鏈夌┖鏍�
- StorageCage cages1=spianMapper.selectCage1(cage1);
- //鏈夊悎閫傜┖鏍兼椂杩涚墖
- if(cages>1 &&cages1.getTier()!=null){
- //鎵ц杩涚墖
- return Result.success(cages1);
- }else{
- //杩斿洖涓嶅彲杩涚墖
- }
-
-
- }
- return Result.success("涓嶅彲杩涚墖");
+ public void selectAll(Short glassid){
+ SpianService service=new SpianService();
+ service.selectAll(glassid);
}
- @PostMapping("/save")
- public Result save(@RequestBody StorageCage spian){
- spianservice.Save(spian);
- return Result.success();
- }
-
+
diff --git a/springboot-vue3/src/main/java/com/example/springboot/mapper/AlarmMapper.java b/springboot-vue3/src/main/java/com/example/springboot/mapper/AlarmMapper.java
index 13238e9..c7f9ccc 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/mapper/AlarmMapper.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/mapper/AlarmMapper.java
@@ -8,7 +8,7 @@
@Mapper
public interface AlarmMapper {
- @Select("SELECT * FROM alarmmg")
+ @Select("SELECT * FROM alarmmg where endTime is not null and to_days(timeon)=to_days(now())")
List<alarmmg> selectAll();
@Select("SELECT count(*) FROM alarmmg where endTime is null and content=#{content}")
@@ -19,4 +19,7 @@
@Insert("UPDATE `canadames`.`alarmmg` set endTime= now() where endTime is null and content=#{content}")
void updatealarm(String content);
+
+ @Select("SELECT * FROM alarmmg where timeon between #{sj1} and #{sj2}")
+ List<alarmmg> selecttime(String sj1, String sj2);
}
diff --git a/springboot-vue3/src/main/java/com/example/springboot/mapper/SpianMapper.java b/springboot-vue3/src/main/java/com/example/springboot/mapper/SpianMapper.java
index c8dc1a5..6ee7fbf 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/mapper/SpianMapper.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/mapper/SpianMapper.java
@@ -12,17 +12,17 @@
public interface SpianMapper {
//鍒ゆ柇鐩搁偦绗煎瓙鏄惁鏈夌┖鏍�
- @Select("select COUNT(if(a.state1=0,cell,null))as cell from (select *,max(state)as state1 from storage_cage a GROUP BY cage,cell)as a where (a.cage=#{cage1}-1 or a.cage=#{cage1}+1)and if(#{cage1}<6,a.cage>0 and a.cage<6,a.cage>5) GROUP BY cage ORDER BY cell desc LIMIT 1")
+ @Select("select COUNT(if(a.state1=0,cell,null))as cell,ROUND(id/2)as id from (select *,max(state)as state1 from storage_cage a GROUP BY cage,cell)as a where (a.cage=#{cage1}-1 or a.cage=#{cage1}+1)and if(#{cage1}<6,a.cage>0 and a.cage<6,a.cage>5) GROUP BY cage ORDER BY cell desc LIMIT 1")
int selectCage(int cage1);
//@Select("(select*from storage_cage as a where a.state=0 and cage%2=0 ORDER BY id LIMIT 1)union (select a.* from storage_cage a inner join (select cage,if(shu2=1,shu3,shu5) as gezi from ( select cage, count(case when state1=1 and state2=0 then cell else null end)as shu1, count(case when state1=0 then cell else null end) as shu2, min(case when state1=1 and state2=0 then cell else null end) as shu3, min(case when state1=0 then cell else null end) as shu4, min(case when state1=0 or state2=0 then cell else null end) as shu5 from (select *,max(state) as state1,min(state) as state2 from storage_cage group by cage,cell) as a where cage%2!=0 GROUP BY cage HAVING shu2>1 or (shu2=1 and shu1>0) ) as sss limit 1)as b on a.cage=b.cage and a.cell=b.gezi and a.state=0 order by tier limit 1) ORDER BY id LIMIT 1;")
//鑾峰彇璁㈠崟鍙锋帓搴忕殑绌鸿鍗曠瀛�
@Select("select cage,COUNT(if(order_id=#{glassid},order_id,null))as orderid from storage_cage where (order_id=#{glassid} or ''='') GROUP BY cage ORDER BY orderid desc; ")
- List<StorageCage> selectAll(String glassid);
+ List<StorageCage> selectAll(Short glassid);
//鍒ゆ柇璇ョ瀛愭槸鍚︽湁鍚堥�傚搴︾┖鏍�
- @Select("select COUNT(*),cage,cell,tier from storage_cage where cage=#{cage1} and state=0 and width>=1500 ORDER BY cell,tier")
- StorageCage selectCage1(int cage1);
+ @Select("select COUNT(*),cage,cell,IF(tier=1,0,1)as tier,ROUND(id/2)as id from storage_cage where cage=#{cage1} and state=0 and width>=#{width} ORDER BY cell,tier")
+ StorageCage selectCage1(int cage1,double width);
//@Update("update longzi set glass_id = #{glass_id}, width = #{width}, state = #{state} where cell = #{cell}")
@Update("update longzi set glass_id =123, width =1600, state =1 where cell =24")
@@ -32,15 +32,24 @@
void insert(StorageTask storageTask);
//鍑虹墖浠诲姟鏌ヨ
- @Select("select cage,cell,tier,glasswidth from storage_cage as a where a.order_id=#{orderId} and state=1 order by cage desc,tier desc,cell desc LIMIT 1")
+ @Select("select cage,cell,tier,glasswidth,ROUND(id/2)as id from storage_cage as a where a.order_id=#{orderId} and state=1 order by cage desc,tier desc,cell desc LIMIT 1")
StorageCage selectOut(String orderId);
+
//鍒ゆ柇鍑虹墖涓�1鏃讹紝鏄惁鍙洿鎺ュ嚭鐗�
@Select("select state from storage_cage where cage=#{cage} and cell=#{cell} and tier=2;")
int selectGlassState(int cage,int cell);
+
//鍒ゆ柇璇ヨ皟鎷ㄧ殑绗煎瓙
- @Select("select cage,cell,max(state)as shu from storage_cage where width>=#{width} and cage>#{cage1} and cage<#{cage2} GROUP BY cage,cell HAVING shu=0 order by abs(#{cage} - cage) limit 1;")
+ @Select("select cage,cell,max(state)as shu,ROUND(id/2)as id from storage_cage where width>=#{width} and cage>#{cage1} and cage<#{cage2} GROUP BY cage,cell HAVING shu=0 order by abs(#{cage} - cage) limit 1;")
StorageCage selectGlassCage(int cage,double width,int cage1,int cage2);
-
+
+ //淇敼绗煎瓙淇℃伅(鍑虹墖)
+ @Update("update storage_cage set state=#{state},width=width+#{width},glass_id=#{glassid},order_id=#{orderid},glasswidth=0 where cage=#{cage} and cell=#{cell} and tier=#{tier};")
+ void UpdataGlassCage(String orderid,String glassid,double width,int cage,int cell,int tier,int state);
+
+ //淇敼绗煎瓙淇℃伅(杩涚墖)
+ @Update("update storage_cage set state=#{state},width=width-#{width},glass_id=#{glassid},order_id=#{orderid},glasswidth=#{width} where cage=#{cage} and cell=#{cell} and tier=#{tier};")
+ void UpdataAddCage(String orderid,Short glassid,double width,int cage,int cell,int tier,int state);
// @Insert("insert into user(name, date, address, user_no) values (#{name}, #{date}, #{address}, #{userNo})")
// void insert (Spian spian);
diff --git a/springboot-vue3/src/main/java/com/example/springboot/service/SpianService.java b/springboot-vue3/src/main/java/com/example/springboot/service/SpianService.java
index 4498c05..09c3df4 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/service/SpianService.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/service/SpianService.java
@@ -1,8 +1,14 @@
package com.example.springboot.service;
+import java.util.ArrayList;
+import java.util.List;
+
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.GetMapping;
+import com.example.springboot.common.Result;
+import com.example.springboot.component.S7control;
import com.example.springboot.entity.StorageCage;
import com.example.springboot.mapper.SpianMapper;
@@ -10,12 +16,138 @@
public class SpianService {
@Autowired
private SpianMapper spianMapper;
- public void Save(StorageCage spian){
- if(spian.getId()==null){
- spianMapper.update();
- }else{
- spianMapper.update();
+ @GetMapping("/all2")
+ public Result selectadd(String orderid){
+ //瀹氫箟PRC鏁版嵁浼犻�佹暟缁�
+ List<String> adddresslist=new ArrayList<>();
+ adddresslist.add("DB105.6");//鍑虹墖杞﹁捣濮嬩綅缃�
+ adddresslist.add("DB105.8");//鍑虹墖杞︾洰鏍囦綅缃�
+ adddresslist.add("DB105.10");//鍑虹墖绗肩幓鐠冩暟
+ adddresslist.add("DB105.14");//鍑虹墖杞﹀惎鍔� 1涓哄惎鍔�
+ List<Short> datas=new ArrayList<>();
+ //鑾峰彇浼樺厛鍑虹墖鐨勪綅缃�
+ StorageCage cageout=spianMapper.selectOut(orderid);
+ int cage =cageout.getCage(); //鍌ㄥ瓨鍑虹墖浣嶇疆锛岀瀛愭牸瀛愬嚑鍙风幓鐠�
+ int cell =cageout.getCell();
+ int tier =cageout.getTier();
+ int id=cageout.getId();
+ int ids;
+ double glasswidth=cageout.getGlassWidth();
+ //鍒ゆ柇鐜荤拑鍐呭鐗�
+ if(tier==2){
+ //鍒ゆ柇鐜荤拑鍙洿鎺ュ嚭鐗囨椂
+ //淇敼鏁版嵁搴撶瀛愯〃(鍑虹墖)
+ spianMapper.UpdataGlassCage("","",glasswidth, cage, cell, tier, 0);
+ datas.add((short)id);
+ datas.add((short)1000);
+ datas.add((short)1);
+ datas.add((short)1);
+ S7control.getinstance().WriteWord(adddresslist, datas);
+ return Result.success(datas);
+ }
+ else{
+ //鑾峰彇鏍煎瓙鐨勭幓鐠冩暟閲�
+ int state= spianMapper.selectGlassState(cage,cell);
+ //鍒ゆ柇鍐呯墖鏄惁闇�瑕佽皟鎷�
+ if(state==0){
+ return Result.success("鐘舵�佷负0,鐩存帴鍑虹墖");
+ }else{
+ //鐜荤拑闇�瑕佽皟鎷ㄦ椂锛屽垽鏂睘浜庡摢涓崐鍖虹殑绗煎瓙
+ if(cage<6){
+ StorageCage cagecell= spianMapper.selectGlassCage(cage,glasswidth,0,6);
+ //鑾峰彇璋冩嫧浣嶇疆杩涜璋冩嫧
+ ids=cagecell.getId();//璋冩嫧鐩爣浣岻D
+ //濉叆璋冩嫧鏁版嵁
+ datas.add((short)id);
+ datas.add((short)ids);
+ datas.add((short)2);
+ datas.add((short)1);
+ //浼犺緭mes鏁版嵁,鍧愭爣锛屾暟鎹�
+ S7control.getinstance().WriteWord(adddresslist, datas);
+ //鏇存崲鐜荤拑鐨勭瀛�
+ datas.clear(); // 娓呯┖鏁翠釜鍒楄〃
+ //鍒ゆ柇璋冩嫧缁撴潫鍚庡啀娆″嚭鐗�,濉叆鍑虹墖鏁版嵁
+ datas.add((short)id);
+ datas.add((short)1000);
+ datas.add((short)1);
+ datas.add((short)1);
+ S7control.getinstance().WriteWord(adddresslist, datas);
+ //淇敼鏁版嵁搴撶瀛愯〃(鍑虹墖)
+ spianMapper.UpdataGlassCage("","",glasswidth, cage, cell, tier, 0);
+ return Result.success(cagecell); //璋冩嫧浣嶇疆鐨勫弬鏁板唴瀹�
+
+ }else{
+ StorageCage cagecell= spianMapper.selectGlassCage(cage,glasswidth,5,11);
+ //鑾峰彇璋冩嫧浣嶇疆杩涜璋冩嫧
+ ids=cagecell.getId();//璋冩嫧鐩爣浣岻D
+ //濉叆璋冩嫧鏁版嵁
+ datas.add((short)id);
+ datas.add((short)ids);
+ datas.add((short)2);
+ datas.add((short)1);
+ //浼犺緭mes鏁版嵁,鍧愭爣锛屾暟鎹�
+ S7control.getinstance().WriteWord(adddresslist, datas);
+ datas.clear(); // 娓呯┖鏁翠釜鍒楄〃
+ //鍒ゆ柇璋冩嫧缁撴潫鍚庡啀娆″嚭鐗�
+ //濉叆鍑虹墖鏁版嵁
+ datas.add((short)id);
+ datas.add((short)1000);
+ datas.add((short)1);
+ datas.add((short)1);
+ S7control.getinstance().WriteWord(adddresslist, datas);
+ return Result.success(cagecell); //璋冩嫧浣嶇疆鐨勫弬鏁板唴瀹�
+
+ }
+
+ }
}
+
+}
+
+ @GetMapping("/all")
+ //杩涚墖浠诲姟,浼犺鍗昳d
+ //鎸夎鍗曚紭鍏堣繘鐗�
+ public Result selectAll(Short glassid){
+ //return spianMapper.selectAll();
+ int cage1;
+ int ids;
+ int tier;
+ double widths=1500;
+ List<String> adddresslist=new ArrayList<>();
+ adddresslist.add("DB105.0");//杩涚墖杞﹁捣濮嬩綅缃�
+ adddresslist.add("DB105.2");//杩涚墖杞︾洰鏍囦綅缃�
+ adddresslist.add("DB105.4");//杩涚墖绗肩幓鐠冩暟
+ adddresslist.add("DB105.12");//杩涚墖杞﹀惎鍔� 1涓哄惎鍔�
+ List<Short> datas=new ArrayList<>();
+ //String orderid="A001";
+ //鑾峰彇璁㈠崟鐩稿叧搴︽渶楂樼殑绗煎瓙鎺掑簭
+ List<StorageCage> storageCage=spianMapper.selectAll(glassid);
+ for (StorageCage storageCage2 : storageCage) {
+ //淇濆瓨璁㈠崟浼樺厛椤哄簭绗煎瓙鍙�
+ cage1=storageCage2.getCage();
+ //鍒ゆ柇璇ョ瀛愬彿鐩搁偦鏈�澶х殑绌烘牸鏁�
+ int cages=spianMapper.selectCage(cage1);
+ //鍒ゆ柇閫変腑绗煎瓙鏄惁鏈夊悎閫傚搴︾┖鏍�
+ StorageCage cages1=spianMapper.selectCage1(cage1,widths);
+ ids=cages1.getId();
+ tier=cages1.getTier();
+ //鏈夊悎閫傜┖鏍兼椂杩涚墖
+ if(cages>1 &&cages1.getTier()!=null){
+ //鎵ц杩涚墖
+ datas.add((short)1000);
+ datas.add((short)ids);
+ datas.add((short)tier);
+ datas.add((short)1);
+ S7control.getinstance().WriteWord(adddresslist, datas);
+ //鏁版嵁搴撲慨鏀圭瀛愯〃鏂板涓�鏉$幓鐠�
+ spianMapper.UpdataAddCage("glassid", glassid, widths, cages, ids, tier, 1);//杩樻湭鑾峰彇鐜荤拑id
+ return Result.success(cages1);
+ }
+
+
+ }
+ return Result.success("涓嶅彲杩涚墖");
+
}
}
--
Gitblit v1.8.0