From 2e435c4920c87c4ffc0ebfa300dc438488ceb74c Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周四, 28 11月 2024 10:29:59 +0800 Subject: [PATCH] 增加 强制出库 --- CC/iWareCC_ASRS/ThreadService/01_BZ01工位(清灰,洗板后工位)/DataProcess_BZ01.cs | 158 ++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 144 insertions(+), 14 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 8c4b728..e2c6727 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; @@ -31,12 +33,18 @@ LogType logType = LogType.DataProcess_BZ01; while (true) { - Thread.Sleep(2000);//浼戠湢2绉掞紝灏嗕紤鐪犲啓鍒板墠闈紝鏄负浜嗕笅闈㈢殑continue鏂规硶鎵ц鍚庝笉鏄剧ず閿欒淇℃伅鐨勬彁绀猴紒锛侊紒銆怑ditBy shaocx,2022-05-24銆� + Thread.Sleep(1000);//浼戠湢2绉掞紝灏嗕紤鐪犲啓鍒板墠闈紝鏄负浜嗕笅闈㈢殑continue鏂规硶鎵ц鍚庝笉鏄剧ず閿欒淇℃伅鐨勬彁绀猴紒锛侊紒銆怑ditBy shaocx,2022-05-24銆� SystemWarningMsg._lbl_alert_DataProcess_BZ01 = string.Empty; try { 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,31 +69,76 @@ 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.缂撳瓨鍒嗘嫞鍖�).ToList(); + var isQiTaoList = allList.Where(x => x.AreaCode == (int)AreaCodeEnum.寰呯紦瀛樺垎鎷e尯 + || + x.AreaCode == (int)AreaCodeEnum.缂撳瓨鍒嗘嫞鍖� + || + x.AreaCode == (int)AreaCodeEnum.鐮佸灈鍖哄煙 + || + x.AreaCode == (int)AreaCodeEnum.鏈哄櫒浜哄矝缂撳瓨鍖哄煙 + ).ToList(); if (isQiTaoList.Count() != allList.Count()) {//涓嶉綈鍖� qitaoReault = false; + upiObj.AreaCode = (int)AreaCodeEnum.缂撳瓨鍒嗘嫞鍖�; } else {//榻愬寘 qitaoReault = true; + upiObj.AreaCode = (int)AreaCodeEnum.鐮佸灈鍖哄煙; } - } - using (StationServiceClient client = new StationServiceClient()) + using (StationServiceClient client = new StationServiceClient()) + { + var res = await client.WriteQiTaoInfoAsync((int)EDevice.Station, rgvLocation, qitaoReault); + if (!res.result) + { + SystemWarningMsg._lbl_alert_DataProcess_BZ01 = $"{rgvLocation.ToString()}-鎺ㄩ�侀綈濂楃粨鏋滃け璐�,WriteQiTaoInfoAsync杩斿洖:{res.resMsg}"; + continue; + } + else + { + Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-鎺ㄩ�侀綈濂楃粨鏋滄垚鍔�,WriteQiTaoInfoAsync锛屽弬鏁�: 绔欑偣{rgvLocation},榻愬缁撴灉:{qitaoReault}"); + } + } + + //鏇存柊UPI鐘舵�� + var upiObjList = wmsDB.mes_batchOrderUPI_new.Where(x => x.UPI == upiCode).ToList(); + foreach (var item in upiObjList) + { + if (qitaoReault) + { + item.UpiStatus = (int)UpiStatusEnum.宸查綈鍖�; + } + else + { + item.UpiStatus = (int)UpiStatusEnum.涓嶉綈鍖�; + } + } + //鏇存柊 鏈�鍚庝竴娆″湪 BZ_01鐨勭郴缁熷鐞嗙殑鏉夸欢 鏁版嵁 + var rbRunMode = wmsDB.wms_rbline_runmode.FirstOrDefault(); + rbRunMode.PlanNo = upiObj.PlanNo; + rbRunMode.OrderId = upiObj.OrderId; + rbRunMode.PackageCode = upiObj.PackageCode; + + wmsDB.SaveChanges(); + } + } + else + { + using (WmsDBModel wmsDB = new WmsDBModel()) { - var res = await client.WriteQiTaoInfoAsync((int)EDevice.Station, rgvLocation, qitaoReault); - if (!res.result) - { - SystemWarningMsg._lbl_alert_DataProcess_BZ01 = $"{rgvLocation.ToString()}-鎺ㄩ�侀綈濂楃粨鏋滃け璐�,WriteQiTaoInfoAsync杩斿洖:{res.resMsg}"; - continue; - } - else - { - Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-鎺ㄩ�侀綈濂楃粨鏋滄垚鍔�,WriteQiTaoInfoAsync锛屽弬鏁�: 绔欑偣{rgvLocation},榻愬缁撴灉:{qitaoReault}"); - } + var isAllow = IsAllloRunOutTaskMode(wmsDB, null); } } } @@ -98,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