From 220127ae99220eb9a256c782f9e86e15f8774206 Mon Sep 17 00:00:00 2001
From: wxw <Administrator@DESKTOP-5BIMHQ3>
Date: 星期四, 26 九月 2024 10:06:02 +0800
Subject: [PATCH] 演示模式增加判断分拣码垛有没有绑定任务

---
 Admin.NET/WCS.Application/Hub/PlcHub.cs |   56 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 53 insertions(+), 3 deletions(-)

diff --git a/Admin.NET/WCS.Application/Hub/PlcHub.cs b/Admin.NET/WCS.Application/Hub/PlcHub.cs
index cf77858..bfb6fb8 100644
--- a/Admin.NET/WCS.Application/Hub/PlcHub.cs
+++ b/Admin.NET/WCS.Application/Hub/PlcHub.cs
@@ -1,5 +1,6 @@
 锘縰sing Furion.InstantMessaging;
 using Microsoft.AspNetCore.SignalR;
+using WCS.Application.Entity;
 
 namespace WCS.Application;
 
@@ -11,10 +12,12 @@
 {
     private readonly IHubContext<PlcHub, IPlcHub> _plcHubContext;
     private readonly SysConfigService _sysConfigService;
-    public PlcHub(IHubContext<PlcHub, IPlcHub> plcHubContext, SysConfigService sysConfigService)
+    private readonly SqlSugarRepository<WcsCheckTask> _wcsCheckTaskRep;
+    public PlcHub(IHubContext<PlcHub, IPlcHub> plcHubContext, SysConfigService sysConfigService, SqlSugarRepository<WcsCheckTask> wcsCheckTaskRep)
     {
         _plcHubContext = plcHubContext;
         _sysConfigService = sysConfigService;
+        _wcsCheckTaskRep = wcsCheckTaskRep;
     }
     /// <summary>
     /// 涓嬪彂PLC杩炴帴鐘舵��
@@ -67,13 +70,60 @@
         if (context.BoDemo.HasValue)
         {
             PLCTaskAction.boDemo = context.BoDemo.Value;
-            await _sysConfigService.UpdateConfigValue("sys_demo", context.BoDemo.Value);
+
+            if (PLCTaskAction.boDemo)
+            {
+                //鍒ゆ柇鍒嗘嫞鐮佸灈鏈夋病鏈夌粦瀹氫换鍔�
+                var checkTask = await _wcsCheckTaskRep.Context.Queryable<WcsCheckTask>().Where(w => w.Status == "1").ToListAsync();
+                if (checkTask.Count > 0)
+                {
+                    throw Oops.Oh("鍒嗘嫞鐮佸灈宸茬粦瀹氫换鍔★紝涓嶆敮鎸佸紑鍚紨绀烘ā寮忥紒");
+                }
+            }            
+            //PLC杩炴帴
+            var plcStackeConn = PLCTaskAction.listPlcConn.First(m => m.PlcIP == "10.18.51.120");
+            if (plcStackeConn.Connected)
+            {
+                //鍐欏叆娴佺▼瀛�
+                var ret = plcStackeConn.SetPlcDBValue(PLCDataTypeEnum.Bit, "DB119", "0", PLCTaskAction.boDemo == true ? "1" : "0");
+                if (ret.IsSucceed)
+                {
+                    await _sysConfigService.UpdateConfigValue("sys_demo", context.BoDemo.Value);
+                }
+                else
+                {
+                    PLCTaskAction.boDemo = !PLCTaskAction.boDemo;
+                }
+            }
+            else
+            {
+                PLCTaskAction.boDemo = !PLCTaskAction.boDemo;
+            }
         }
         //婊氱瓛鍙嶈浆
         if (context.BoDrumReversal.HasValue)
         {
             PLCTaskAction.boDrumReversal = context.BoDrumReversal.Value;
-            await _sysConfigService.UpdateConfigValue("sys_DrumReversal", context.BoDrumReversal.Value);
+
+            //PLC杩炴帴
+            var plcStackeConn = PLCTaskAction.listPlcConn.First(m => m.PlcIP == "10.18.51.120");
+            if (plcStackeConn.Connected)
+            {
+                //鍐欏叆娴佺▼瀛�
+                var ret = plcStackeConn.SetPlcDBValue(PLCDataTypeEnum.Bit, "DB119", "0.1", PLCTaskAction.boDemo == true ? "1" : "0");
+                if (ret.IsSucceed)
+                {
+                    await _sysConfigService.UpdateConfigValue("sys_DrumReversal", context.BoDrumReversal.Value);
+                }
+                else
+                {
+                    PLCTaskAction.boDrumReversal = !PLCTaskAction.boDrumReversal;
+                }
+            }
+            else 
+            {
+                PLCTaskAction.boDrumReversal = !PLCTaskAction.boDrumReversal;
+            }
         }
         await _plcHubContext.Clients.All.UpdateService(new PLCServiceModel() { BoRunningState = PLCTaskAction.boRunningState, BoRefresh = PLCTaskAction.boRefresh, BoOffline = PLCTaskAction.boOffline, BoDemo = PLCTaskAction.boDemo, BoDrumReversal = PLCTaskAction.boDrumReversal });
     }

--
Gitblit v1.8.0