From 76fc40d4f1e0dbd15383c0f3e29fd8bcb6dcff2a Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周五, 22 11月 2024 19:01:50 +0800
Subject: [PATCH] 2

---
 CC/iWareCC_ASRS/ThreadService/01_BZ01工位(清灰,洗板后工位)/DataProcess_BZ01.cs |  102 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 100 insertions(+), 2 deletions(-)

diff --git "a/CC/iWareCC_ASRS/ThreadService/01_BZ01\345\267\245\344\275\215\357\274\210\346\270\205\347\201\260\357\274\214\346\264\227\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/DataProcess_BZ01.cs" "b/CC/iWareCC_ASRS/ThreadService/01_BZ01\345\267\245\344\275\215\357\274\210\346\270\205\347\201\260\357\274\214\346\264\227\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/DataProcess_BZ01.cs"
index b99875d..35bfcd7 100644
--- "a/CC/iWareCC_ASRS/ThreadService/01_BZ01\345\267\245\344\275\215\357\274\210\346\270\205\347\201\260\357\274\214\346\264\227\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/DataProcess_BZ01.cs"
+++ "b/CC/iWareCC_ASRS/ThreadService/01_BZ01\345\267\245\344\275\215\357\274\210\346\270\205\347\201\260\357\274\214\346\264\227\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/DataProcess_BZ01.cs"
@@ -9,6 +9,8 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Net.NetworkInformation;
+using System.Reflection.Emit;
 using System.ServiceModel.Configuration;
 using System.Text;
 using System.Threading;
@@ -37,6 +39,12 @@
                 {
                     if (SystemValue.isAllowRuning_DataProcess_BZ01 && SystemValue.isStartedModel)
                     {
+                        if (FormCC.IsAllowRunOutMode == true)
+                        {
+                            SystemWarningMsg._lbl_alert_DataProcess_BZ01 = $"姝e湪骞插嚭搴撴ā寮忥紝姝ゆ柟娉曟殏鍋溿�傘�� ";
+                            continue;
+                        }
+
                         var rgvLocation = StationLocationEnum.BZ01.ToString();
                         /*
                          * 1銆佷粠鏁版嵁搴撲腑鍒ゆ柇鏄惁榻愬
@@ -61,6 +69,14 @@
                                     SystemWarningMsg._lbl_alert_DataProcess_BZ01 = $"{rgvLocation.ToString()},鏍规嵁UPI:{upiCode}娌℃湁鎵惧埌瀵硅薄 ";
                                     continue;
                                 }
+
+                                var isAllow = IsAllloRunOutTaskMode(wmsDB, upiObj);
+                                if (isAllow)
+                                {
+                                    SystemWarningMsg._lbl_alert_DataProcess_BZ01 = $"{rgvLocation.ToString()},鍒ゆ柇瑕佹墽琛屽嚭搴撴ā寮忎簡锛屾鏂规硶鏆傚仠銆傘�� ";
+                                    continue;
+                                }
+
                                 //鏌ヨ鏄惁榻愬寘
                                 var allList = wmsDB.mes_batchOrderUPI_new.Where(x => x.PackageCode == upiObj.PackageCode).ToList();
                                 var isQiTaoList = allList.Where(x => x.AreaCode == (int)AreaCodeEnum.寰呯紦瀛樺垎鎷e尯
@@ -117,8 +133,13 @@
 
                                 wmsDB.SaveChanges();
                             }
-
-
+                        }
+                        else
+                        {
+                            using (WmsDBModel wmsDB = new WmsDBModel())
+                            {
+                                var isAllow = IsAllloRunOutTaskMode(wmsDB, null);
+                            }
                         }
                     }
                 }
@@ -130,5 +151,82 @@
             }
         }
 
+
+        /// <summary>
+        /// 鏄惁鍙互鎵ц鍑哄簱妯″紡
+        /// </summary>
+        /// <param name="wmsDB"></param>
+        /// <param name="curUpiObj"></param>
+        /// <returns></returns>
+        private static bool IsAllloRunOutTaskMode(WmsDBModel wmsDB, mes_batchOrderUPI_new curUpiObj)
+        {
+            //棣栧厛鏌ヨ鏁版嵁搴撲腑鏄惁鏈� 瑕佸嚭搴撶殑鏁版嵁
+            var isExistOutTaskForNewCreated = wmsDB.wms_rbline_task.Where(x => x.RbTaskType == (int)RbTaskTypeEnum.鍑哄簱浠诲姟
+               && x.TaskStatus == (int)TaskStatusEnum.鏂板缓
+              ).Count();
+            if (isExistOutTaskForNewCreated == 0)
+            {
+                FormCC.IsAllowRunOutMode = false;
+                return false;//涓嶈兘鎵ц 鍑哄簱妯″紡
+            }
+
+            var rbRunMode = wmsDB.wms_rbline_runmode.FirstOrDefault();
+            var lastUpi = rbRunMode.UPI;
+            var lastPackageCode = rbRunMode.PackageCode;
+
+            if (curUpiObj == null)
+            {//琛ㄧず姝ゆ椂鏃犳柊鏉胯繃鏉�
+                if (!string.IsNullOrEmpty(lastUpi))
+                {
+                    var lastObj = wmsDB.mes_batchOrderUPI_new.Where(x => x.UPI == lastUpi).FirstOrDefault();
+                    if (lastObj.UpiStatus == (int)UpiStatusEnum.涓嶉綈鍖� || lastObj.UpiStatus == (int)UpiStatusEnum.鍒濆)
+                    {//琛ㄧず鏈�鍚庤繃鍘荤殑鏉挎槸涓嶉綈鍖呯殑鏉�
+                        //鍙互杩愯鎵ц 鍑哄簱妯″紡
+                    }
+                    else
+                    {//琛ㄧず鏈�鍚庤繃鍘荤殑鏉挎槸榻愬寘鐨勬澘
+                        //瑕佺户缁垽鏂悗闈� 寰呭垎鎷e尯鍩熻繕瀛樺湪鐩稿悓鍖呯殑鏉挎暟鎹悧
+                        var isExistSamePackageCode = wmsDB.mes_batchOrderUPI_new.Where(x => x.PackageCode == lastPackageCode
+                                && x.AreaCode == (int)AreaCodeEnum.寰呯紦瀛樺垎鎷e尯).Count();
+                        if (isExistSamePackageCode > 0)
+                        {
+                            FormCC.IsAllowRunOutMode = false;
+                            return false;//涓嶈兘鎵ц 鍑哄簱妯″紡
+                        }
+                        else
+                        {
+                            //鍙互杩愯鎵ц 鍑哄簱妯″紡
+                        }
+                    }
+                }
+                else
+                {
+                    //鍙互杩愯鎵ц 鍑哄簱妯″紡
+                }
+            }
+            else
+            {//琛ㄧず姝ゆ椂鏈夋柊鏉胯繃鏉�
+                if (!string.IsNullOrEmpty(lastUpi))
+                {
+                    if (lastPackageCode == curUpiObj.PackageCode)
+                    {
+                        FormCC.IsAllowRunOutMode = false;
+                        return false;//涓嶈兘鎵ц 鍑哄簱妯″紡
+                    }
+                    else
+                    {//鏂板寘杩囨潵浜�
+                        //鍙互杩愯鎵ц 鍑哄簱妯″紡
+                    }
+                }
+                else
+                {
+                    //鍙互杩愯鎵ц 鍑哄簱妯″紡
+                }
+            }
+
+            FormCC.IsAllowRunOutMode = true;
+            return true;
+        }
+
     }
 }

--
Gitblit v1.9.3