From 50884f67cc2f622cd9fce212739e07270eb719b5 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周六, 23 11月 2024 15:52:15 +0800
Subject: [PATCH] 22

---
 CC/iWareSql/DataAccess/TaskHandler.cs                                                |   22 +++++++++++
 CC/iWareCC_ASRS/ThreadService/02_BZ39工位(补板后工位)/DataProcess_RobotBuffer_ModeChange.cs |   59 +++++++++++++++++++++--------
 CC/iWareCC_ASRS/FormCC.cs                                                            |    2 
 3 files changed, 65 insertions(+), 18 deletions(-)

diff --git a/CC/iWareCC_ASRS/FormCC.cs b/CC/iWareCC_ASRS/FormCC.cs
index 5f5600d..b23ffc4 100644
--- a/CC/iWareCC_ASRS/FormCC.cs
+++ b/CC/iWareCC_ASRS/FormCC.cs
@@ -237,7 +237,7 @@
 
             new Thread(DeleteData).Start();
 
-            new Thread(LineInSacnResult.HandlerLineInSacnResult).Start();
+            //new Thread(LineInSacnResult.HandlerLineInSacnResult).Start();
 
 
 
diff --git "a/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/DataProcess_RobotBuffer_ModeChange.cs" "b/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/DataProcess_RobotBuffer_ModeChange.cs"
index 082f504..57420bc 100644
--- "a/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/DataProcess_RobotBuffer_ModeChange.cs"
+++ "b/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/DataProcess_RobotBuffer_ModeChange.cs"
@@ -42,30 +42,55 @@
                             using (WmsDBModel wmsDB = new WmsDBModel())
                             {
                                 var rbRunMode = wmsDB.wms_rbline_runmode.FirstOrDefault();
-                                if (rbRunMode.LineRunMode == (int)RbRunModeEnum.鍑哄簱妯″紡)
-                                {
-                                    SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_ModeChange = $"宸茬粡鏄嚭搴撴ā寮忎簡,姝ゆ寰幆缁撴潫";
-                                    continue;
-                                }
-                                rbRunMode.LineRunMode = (int)RbRunModeEnum.鍑哄簱妯″紡;
-                                rbRunMode.LineRunModeName = RbRunModeEnum.鍑哄簱妯″紡.ToString();
-                                rbRunMode.UpdateTime = DateTime.Now;
 
-                                //鎺ㄩ�佺粰PLC鍒囨崲妯″紡
-                                using (StationServiceClient client = new StationServiceClient())
-                                {
-                                    var res = await client.ChangeModeAsync((int)EDevice.Station, (int)RbRunModeEnum.鍑哄簱妯″紡, rgvLocation);
-                                    if (!res.result)
+                                if (TaskHandler.ValidateNoFinishOutTaskForRobotBuffer(wmsDB))
+                                {//涓嶅瓨鍦�
+                                    rbRunMode.LineRunMode = (int)RbRunModeEnum.鍏ュ簱妯″紡;
+                                    rbRunMode.LineRunModeName = RbRunModeEnum.鍏ュ簱妯″紡.ToString();
+                                    rbRunMode.UpdateTime = DateTime.Now;
+
+                                    //鎺ㄩ�佺粰PLC鍒囨崲妯″紡
+                                    using (StationServiceClient client = new StationServiceClient())
                                     {
-                                        SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_ModeChange = $"{rgvLocation.ToString()}-鎺ㄩ�佺粰PLC鍒囨崲妯″紡 澶辫触,ChangeModeAsync 杩斿洖:{res.resMsg}";
+                                        var res = await client.ChangeModeAsync((int)EDevice.Station, (int)RbRunModeEnum.鍏ュ簱妯″紡, rgvLocation);
+                                        if (!res.result)
+                                        {
+                                            SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_ModeChange = $"{rgvLocation.ToString()}-鎺ㄩ�佺粰PLC鍒囨崲妯″紡 澶辫触,ChangeModeAsync 杩斿洖:{res.resMsg}";
+                                            continue;
+                                        }
+                                        else
+                                        {
+                                            Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-鎺ㄩ�佺粰PLC鍒囨崲妯″紡 鎴愬姛,ChangeModeAsync锛屽弬鏁�: 绔欑偣{rgvLocation}");
+                                        }
+                                    }
+                                    FormCC.IsAllowRunOutMode = false;
+                                }
+                                else
+                                {//瀛樺湪
+                                    if (rbRunMode.LineRunMode == (int)RbRunModeEnum.鍑哄簱妯″紡)
+                                    {
+                                        SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_ModeChange = $"宸茬粡鏄嚭搴撴ā寮忎簡,姝ゆ寰幆缁撴潫";
                                         continue;
                                     }
-                                    else
+                                    rbRunMode.LineRunMode = (int)RbRunModeEnum.鍑哄簱妯″紡;
+                                    rbRunMode.LineRunModeName = RbRunModeEnum.鍑哄簱妯″紡.ToString();
+                                    rbRunMode.UpdateTime = DateTime.Now;
+
+                                    //鎺ㄩ�佺粰PLC鍒囨崲妯″紡
+                                    using (StationServiceClient client = new StationServiceClient())
                                     {
-                                        Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-鎺ㄩ�佺粰PLC鍒囨崲妯″紡 鎴愬姛,ChangeModeAsync锛屽弬鏁�: 绔欑偣{rgvLocation}");
+                                        var res = await client.ChangeModeAsync((int)EDevice.Station, (int)RbRunModeEnum.鍑哄簱妯″紡, rgvLocation);
+                                        if (!res.result)
+                                        {
+                                            SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_ModeChange = $"{rgvLocation.ToString()}-鎺ㄩ�佺粰PLC鍒囨崲妯″紡 澶辫触,ChangeModeAsync 杩斿洖:{res.resMsg}";
+                                            continue;
+                                        }
+                                        else
+                                        {
+                                            Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-鎺ㄩ�佺粰PLC鍒囨崲妯″紡 鎴愬姛,ChangeModeAsync锛屽弬鏁�: 绔欑偣{rgvLocation}");
+                                        }
                                     }
                                 }
-
 
                                 wmsDB.SaveChanges();
                             }
diff --git a/CC/iWareSql/DataAccess/TaskHandler.cs b/CC/iWareSql/DataAccess/TaskHandler.cs
index 9a4526a..18ac5e0 100644
--- a/CC/iWareSql/DataAccess/TaskHandler.cs
+++ b/CC/iWareSql/DataAccess/TaskHandler.cs
@@ -36,5 +36,27 @@
         }
 
 
+        /// <summary>
+        /// 楠岃瘉 鏈哄櫒浜虹紦瀛樺矝鏄惁瀛樺湪 鏈粨鏉�  鐨勫嚭搴撲换鍔�
+        /// </summary>
+        /// <param name="wmsDB"></param>
+        /// <returns>true:涓嶅瓨鍦� false锛氬瓨鍦�</returns>
+        public static bool ValidateNoFinishOutTaskForRobotBuffer(WmsDBModel.WmsDBModel wmsDB)
+        {
+            var isExist = wmsDB.wms_rbline_task.Where(x => x.TaskStatus != (int)TaskStatusEnum.宸插畬鎴�
+                && x.TaskStatus != (int)TaskStatusEnum.宸插彇娑�
+                && (
+                   x.RbTaskType == (int)RbTaskTypeEnum.鍑哄簱浠诲姟
+                )
+              ).ToList();
+
+            if (isExist?.Count() > 0)
+            {
+                return false;
+            }
+            return true;
+        }
+
+
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3