From 8b0d749cfbec8bf0afe71a8956bfeeed6f27cdfc Mon Sep 17 00:00:00 2001
From: chengsc <11752@DESKTOP-DS49RCP>
Date: 星期四, 16 一月 2025 15:32:30 +0800
Subject: [PATCH] Merge branch 'csc'

---
 Admin.NET/WCS.Application/Hub/PlcHub.cs |  118 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 110 insertions(+), 8 deletions(-)

diff --git a/Admin.NET/WCS.Application/Hub/PlcHub.cs b/Admin.NET/WCS.Application/Hub/PlcHub.cs
index bfb6fb8..a7caaa5 100644
--- a/Admin.NET/WCS.Application/Hub/PlcHub.cs
+++ b/Admin.NET/WCS.Application/Hub/PlcHub.cs
@@ -74,12 +74,23 @@
             if (PLCTaskAction.boDemo)
             {
                 //鍒ゆ柇鍒嗘嫞鐮佸灈鏈夋病鏈夌粦瀹氫换鍔�
-                var checkTask = await _wcsCheckTaskRep.Context.Queryable<WcsCheckTask>().Where(w => w.Status == "1").ToListAsync();
+                var checkTask = await _wcsCheckTaskRep.Context.Queryable<WcsCheckTask>().Where(w => w.Status == "1" && w.RoboatType == PLCTypeEnum.RobotPalletizer).ToListAsync();
                 if (checkTask.Count > 0)
                 {
-                    throw Oops.Oh("鍒嗘嫞鐮佸灈宸茬粦瀹氫换鍔★紝涓嶆敮鎸佸紑鍚紨绀烘ā寮忥紒");
+                    PLCTaskAction.boDemo = false;
+                    await _plcHubContext.Clients.All.UpdateService(
+                        new PLCServiceModel()
+                        {
+                            BoRunningState = PLCTaskAction.boRunningState,
+                            BoRefresh = PLCTaskAction.boRefresh,
+                            BoOffline = PLCTaskAction.boOffline,
+                            BoDemo = PLCTaskAction.boDemo,
+                            BoDrumReversal = PLCTaskAction.boDrumReversal,
+                            Error = "鍒嗘嫞鐮佸灈宸茬粦瀹氫换鍔★紝涓嶆敮鎸佸紑鍚紨绀烘ā寮忥紒"
+                        });
+                    return;
                 }
-            }            
+            }
             //PLC杩炴帴
             var plcStackeConn = PLCTaskAction.listPlcConn.First(m => m.PlcIP == "10.18.51.120");
             if (plcStackeConn.Connected)
@@ -88,16 +99,60 @@
                 var ret = plcStackeConn.SetPlcDBValue(PLCDataTypeEnum.Bit, "DB119", "0", PLCTaskAction.boDemo == true ? "1" : "0");
                 if (ret.IsSucceed)
                 {
-                    await _sysConfigService.UpdateConfigValue("sys_demo", context.BoDemo.Value);
+                    if (PLCTaskAction.boDemo)
+                    {
+                        // 鍐欏叆plc鎶撶鍝佺
+                        var rett = plcStackeConn.SetPlcDBValue(PLCDataTypeEnum.Short, "DB111", "0", "1");
+                        if (rett.IsSucceed)
+                        {
+                            await _sysConfigService.UpdateConfigValue("sys_demo", context.BoDemo.Value);
+                        }
+                    }
+                    else 
+                    {
+                        var rett = plcStackeConn.SetPlcDBValue(PLCDataTypeEnum.Short, "DB111", "0", "0");
+                        if (rett.IsSucceed)
+                        {
+                            await _sysConfigService.UpdateConfigValue("sys_demo", context.BoDemo.Value);
+                        }
+                    }                 
                 }
                 else
                 {
                     PLCTaskAction.boDemo = !PLCTaskAction.boDemo;
+
+                    await _plcHubContext.Clients.All.UpdateService(
+                       new PLCServiceModel()
+                       {
+                           BoRunningState = PLCTaskAction.boRunningState,
+                           BoRefresh = PLCTaskAction.boRefresh,
+                           BoOffline = PLCTaskAction.boOffline,
+                           BoDemo = PLCTaskAction.boDemo,
+                           BoDrumReversal = PLCTaskAction.boDrumReversal,
+                           BoOutLock=PLCTaskAction.boOutLock,
+                           BoEnterLock=PLCTaskAction.boEnterLock,
+                           Error = "涓嶱CL浜や簰澶辫触锛屾搷浣滃け璐ワ紒"
+                       });
+                    return;
                 }
             }
             else
             {
                 PLCTaskAction.boDemo = !PLCTaskAction.boDemo;
+
+                await _plcHubContext.Clients.All.UpdateService(
+                   new PLCServiceModel()
+                   {
+                       BoRunningState = PLCTaskAction.boRunningState,
+                       BoRefresh = PLCTaskAction.boRefresh,
+                       BoOffline = PLCTaskAction.boOffline,
+                       BoDemo = PLCTaskAction.boDemo,
+                       BoDrumReversal = PLCTaskAction.boDrumReversal,
+                       BoOutLock = PLCTaskAction.boOutLock,
+                       BoEnterLock = PLCTaskAction.boEnterLock,
+                       Error = "PCL鏈繛鎺ワ紝鎿嶄綔澶辫触锛�"
+                   });
+                return;
             }
         }
         //婊氱瓛鍙嶈浆
@@ -118,27 +173,74 @@
                 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,
+                           BoOutLock=PLCTaskAction.boOutLock,
+                           BoEnterLock=PLCTaskAction.boEnterLock,
+                           Error = "涓嶱CL浜や簰澶辫触锛屾搷浣滃け璐ワ紒"
+                       });
+                    return;
                 }
             }
-            else 
+            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,
+                       BoOutLock = PLCTaskAction.boOutLock,
+                       BoEnterLock = PLCTaskAction.boEnterLock,
+                       Error = "PCL鏈繛鎺ワ紝鎿嶄綔澶辫触锛�"
+                   });
+                return;
             }
         }
-        await _plcHubContext.Clients.All.UpdateService(new PLCServiceModel() { BoRunningState = PLCTaskAction.boRunningState, BoRefresh = PLCTaskAction.boRefresh, BoOffline = PLCTaskAction.boOffline, BoDemo = PLCTaskAction.boDemo, BoDrumReversal = PLCTaskAction.boDrumReversal });
+        //鍑哄簱閿佸畾
+        if (context.BoOutLock.HasValue)
+        {
+            PLCTaskAction.boOutLock = context.BoOutLock.Value;
+            await _sysConfigService.UpdateConfigValue("sys_BoOutLock", context.BoOutLock.Value);
+        }
+        //鍏ュ簱閿佸畾
+        if (context.BoEnterLock.HasValue)
+        {
+            PLCTaskAction.boEnterLock = context.BoEnterLock.Value;
+            await _sysConfigService.UpdateConfigValue("sys_BoEnterLock", context.BoEnterLock.Value);
+        }
+        await _plcHubContext.Clients.All.UpdateService(new PLCServiceModel() { BoRunningState = PLCTaskAction.boRunningState, BoRefresh = PLCTaskAction.boRefresh, BoOffline = PLCTaskAction.boOffline, BoDemo = PLCTaskAction.boDemo, BoDrumReversal = PLCTaskAction.boDrumReversal, BoOutLock = PLCTaskAction.boOutLock, BoEnterLock = PLCTaskAction.boEnterLock });
     }
 }
 public class PLCServiceModel
 {
     public bool? BoRunningState { get; set; }
 
-
     public bool? BoOffline { get; set; }
-
 
     public bool? BoRefresh { get; set; }
 
     public bool? BoDemo { get; set; }
 
     public bool? BoDrumReversal { get; set; }
+
+    public bool? BoOutLock { get; set; }
+
+    public bool? BoEnterLock { get; set; }
+
+    /// <summary>
+    /// 閿欒淇℃伅
+    /// </summary>
+    public string Error { get; set; }
 }
\ No newline at end of file

--
Gitblit v1.8.0