From 3609a43ca4d7842a839524dee1baaf4f84bc4801 Mon Sep 17 00:00:00 2001
From: hwh <332078369@qq.com>
Date: 星期一, 02 九月 2024 14:41:02 +0800
Subject: [PATCH] 绑定首页服务状态
---
Admin.NET/WCS.Application/Hub/IPlcHub.cs | 5 +
Web/src/views/device/deviceInfo/index.vue | 150 +++++++++++++++++++++----------------
Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs | 19 +++-
Admin.NET/WCS.Application/Hub/PlcHub.cs | 27 ++++++
4 files changed, 132 insertions(+), 69 deletions(-)
diff --git a/Admin.NET/WCS.Application/Hub/IPlcHub.cs b/Admin.NET/WCS.Application/Hub/IPlcHub.cs
index a026a67..e3a92ab 100644
--- a/Admin.NET/WCS.Application/Hub/IPlcHub.cs
+++ b/Admin.NET/WCS.Application/Hub/IPlcHub.cs
@@ -28,5 +28,10 @@
/// <param name="context"></param>
/// <returns></returns>
Task PublicAlarm(WcsAlarmInfoOutput context);
+ /// <summary>
+ /// 淇敼鏈嶅姟鐘舵��
+ /// </summary>
+ /// <param name="context"></param>
+ Task UpdateService(PLCServiceModel context);
}
}
diff --git a/Admin.NET/WCS.Application/Hub/PlcHub.cs b/Admin.NET/WCS.Application/Hub/PlcHub.cs
index b6dbb86..ba57a75 100644
--- a/Admin.NET/WCS.Application/Hub/PlcHub.cs
+++ b/Admin.NET/WCS.Application/Hub/PlcHub.cs
@@ -34,4 +34,31 @@
//{
// await _plcHubContext.Clients.All.PublicStationStatus(context);
//}
+
+ /// <summary>
+ /// 涓嬪彂鏈嶅姟鐘舵��
+ /// </summary>
+ public async Task UpdateService(PLCServiceModel context)
+ {
+ //杩愯鐘舵��
+ if (context.BoRunningState.HasValue)
+ PLCTaskAction.boRunningState = context.BoRunningState.Value;
+ //鑴辨満妯″紡
+ if (context.BoOffline.HasValue)
+ PLCTaskAction.boOffline = context.BoOffline.Value;
+ //鑷埛鏂�
+ if (context.BoRefresh.HasValue)
+ PLCTaskAction.boRefresh = context.BoRefresh.Value;
+ await _plcHubContext.Clients.All.UpdateService(context);
+ }
}
+public class PLCServiceModel
+{
+ public bool? BoRunningState { get; set; }
+
+
+ public bool? BoOffline { get; set; }
+
+
+ public bool? BoRefresh { get; set; }
+}
\ No newline at end of file
diff --git a/Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs b/Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs
index 9c32c01..6dd80ee 100644
--- a/Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs
+++ b/Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs
@@ -1,4 +1,6 @@
锘�
+using Admin.NET.Core.Service;
+
namespace WCS.Application;
/// <summary>
@@ -8,9 +10,11 @@
public class WcsDeviceService : IDynamicApiController, ITransient
{
private readonly SqlSugarRepository<WcsDevice> _wcsDeviceRep;
- public WcsDeviceService(SqlSugarRepository<WcsDevice> wcsDeviceRep)
+ private readonly SysCacheService _sysCacheService;
+ public WcsDeviceService(SqlSugarRepository<WcsDevice> wcsDeviceRep, SysCacheService sysCacheService)
{
_wcsDeviceRep = wcsDeviceRep;
+ _sysCacheService = sysCacheService;
}
/// <summary>
@@ -202,13 +206,18 @@
.Select<WcsDeviceOutput>((a, b) => new WcsDeviceOutput() { Type = b.Type }, true)
.ToListAsync();
//鑾峰彇璺烘満鐨勭姸鎬�
- var listConn = PLCTaskAction.listPlcConn;
foreach (var modDevice in list)
{
- var modUtil = listConn.FirstOrDefault(s => s != null && s.PlcId == modDevice.PlcId);
- modDevice.Status = modUtil == null ? false : modUtil.Connected;
+ if (_sysCacheService.ExistKey("PlcConn" + modDevice.PlcId))
+ {
+ var cachePlc = _sysCacheService.Get<WcsPlc>("PlcConn" + modDevice.PlcId);
+ modDevice.Status = cachePlc.IsConn;
+ }
+ else
+ {
+ modDevice.Status = false;
+ }
}
-
return list;
}
diff --git a/Web/src/views/device/deviceInfo/index.vue b/Web/src/views/device/deviceInfo/index.vue
index 9bc1d57..3d13bff 100644
--- a/Web/src/views/device/deviceInfo/index.vue
+++ b/Web/src/views/device/deviceInfo/index.vue
@@ -5,27 +5,32 @@
<el-collapse v-model="activeName">
<el-collapse-item title="璁惧鎺у埗" name="1">
<el-card class="box-card" shadow="hover">
- <el-switch v-model="state.boRunningState" active-text="" inactive-text="绋嬪簭鏈嶅姟"></el-switch>
+ <el-switch v-model="state.boRunningState" active-text="" inactive-text="绋嬪簭鏈嶅姟"
+ @change="handleSwitchChange('boRunningState', $event)"></el-switch>
</el-card>
<el-card class="box-card" shadow="hover" style="margin-top: 3px;">
- <el-switch v-model="state.boOffline" active-text="" inactive-text="鑴辨満妯″紡"></el-switch>
+ <el-switch v-model="state.boOffline" active-text="" inactive-text="鑴辨満妯″紡"
+ @change="handleSwitchChange('boOffline', $event)"></el-switch>
</el-card>
<el-card class="box-card" shadow="hover" style="margin-top: 3px;">
- <el-switch v-model="state.boRefresh" active-text="" inactive-text="鑷埛鏂�"></el-switch>
+ <el-switch v-model="state.boRefresh" active-text="" inactive-text="鑷埛鏂�"
+ @change="handleSwitchChange('boRefresh', $event)"></el-switch>
</el-card>
</el-collapse-item>
<el-collapse-item title="鍫嗗灈鏈�" name="2">
<div style="overflow-x: auto;white-space: nowrap;">
<el-card v-for="(stacker, index) in stackers" :key="index" class="box-card" shadow="hover">
- <el-switch v-model="stacker.isConn" :inactive-text="`${stacker.text}`" disabled ></el-switch>
+ <el-switch v-model="stacker.isConn" :inactive-text="`${stacker.text}`"
+ disabled></el-switch>
</el-card>
</div>
</el-collapse-item>
<el-collapse-item title="杈撻�佺嚎" name="3">
<el-card v-for="(conveyor, index) in conveyors" :key="index" class="box-card" shadow="hover">
- <el-switch v-model="conveyor.isConn" :inactive-text="`${conveyor.text}`" disabled ></el-switch>
+ <el-switch v-model="conveyor.isConn" :inactive-text="`${conveyor.text}`"
+ disabled></el-switch>
</el-card>
</el-collapse-item>
</el-collapse>
@@ -65,7 +70,7 @@
</template>
<script lang="ts" setup>
-import { ref, reactive,onMounted } from 'vue';
+import { ref, reactive, onMounted } from 'vue';
import { listStatus } from '/@/api/wcs/wcsPlc';
import { signalR } from './signalR';
@@ -101,7 +106,15 @@
}
console.log(stackers.value[0].isConn)
});
+ signalR.off('UpdateService');
+ signalR.on('UpdateService', (data: any) => {
+ state.value = data;
+ });
});
+const handleSwitchChange = (field: string, value: boolean) => {
+ signalR.invoke('UpdateService',state.value);
+};
+
const activeName = ['1', '2', '3'];
const value1 = ref(false);
@@ -1599,56 +1612,56 @@
{ Id: 202, Code: '', IsShow: 0, IsUse: 2 },
{ Id: 203, Code: '', IsShow: 1, IsUse: 0 },
{ Id: 204, Code: '', IsShow: 0, IsUse: 2 },
- { Id:205 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:206 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:207 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:208 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:209 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:210 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:211 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:212 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:213 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:214 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:215 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:216 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:217 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:218 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:219 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:220 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:221 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:222 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:223 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:224 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:225 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:226 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:227 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:228 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:229 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:230 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:231 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:232 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:233 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:234 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:235 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:236 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:237 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:238 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:239 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:240 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:241 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:242 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:243 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:244 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:245 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:246 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:247 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:248 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:249 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:250 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:251 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:252 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:253 , Code: '', IsShow: 0, IsUse: 3 },
- { Id:254 , Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 205, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 206, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 207, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 208, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 209, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 210, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 211, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 212, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 213, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 214, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 215, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 216, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 217, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 218, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 219, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 220, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 221, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 222, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 223, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 224, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 225, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 226, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 227, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 228, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 229, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 230, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 231, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 232, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 233, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 234, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 235, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 236, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 237, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 238, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 239, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 240, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 241, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 242, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 243, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 244, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 245, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 246, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 247, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 248, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 249, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 250, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 251, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 252, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 253, Code: '', IsShow: 0, IsUse: 3 },
+ { Id: 254, Code: '', IsShow: 0, IsUse: 3 },
{ Id: 255, Code: '', IsShow: 0, IsUse: 3 },
{ Id: 256, Code: '', IsShow: 1, IsUse: 0 },
{ Id: 257, Code: '', IsShow: 1, IsUse: 0 },
@@ -1971,12 +1984,16 @@
.grid-container-line {
display: grid;
- grid-template-columns: repeat(51, 1fr); /* 鑷�傚簲鍒楀 */
- grid-template-rows: 1fr; /* 鑷�傚簲琛岄珮 */
+ grid-template-columns: repeat(51, 1fr);
+ /* 鑷�傚簲鍒楀 */
+ grid-template-rows: 1fr;
+ /* 鑷�傚簲琛岄珮 */
gap: 0;
margin-top: 25px;
- width: 100%; /* 瀹藉害鑷�傚簲 */
- height: 1fr; /* 楂樺害鑷�傚簲 */
+ width: 100%;
+ /* 瀹藉害鑷�傚簲 */
+ height: 1fr;
+ /* 楂樺害鑷�傚簲 */
}
.grid-item-line {
@@ -2053,9 +2070,12 @@
background-color: #9c9c9c;
border: 1px solid #797777;
text-align: center;
- line-height: 1.4vw; /* 琛岄珮 */
- width: 100%; /* 鑷�傚簲瀹藉害 */
- height: 100%; /* 鑷�傚簲楂樺害 */
+ line-height: 1.4vw;
+ /* 琛岄珮 */
+ width: 100%;
+ /* 鑷�傚簲瀹藉害 */
+ height: 100%;
+ /* 鑷�傚簲楂樺害 */
color: #fff;
font-size: 0.7vw;
}
@@ -2069,10 +2089,12 @@
.active2>div {
display: none;
}
+
.active3 {
background-color: #fff;
- border:1px solid red;
+ border: 1px solid red;
}
+
.active3>div {
display: none;
}
--
Gitblit v1.8.0