From 37184b1d1ac000a6ee40e397e2336b213e705902 Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周四, 17 4月 2025 13:08:45 +0800 Subject: [PATCH] 包中只有一块板时,认定为 不齐包 【Editby shaocx,2025-04-01】 --- CC/iWareCC_ASRS/ThreadService/01_BZ01工位(清灰,洗板后工位)/DataProcess_BZ01.cs | 467 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 459 insertions(+), 8 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 20eec66..16a4eb3 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" @@ -11,6 +11,7 @@ using System.Linq; using System.Net.NetworkInformation; using System.Reflection.Emit; +using System.Security.Cryptography.X509Certificates; using System.ServiceModel.Configuration; using System.Text; using System.Threading; @@ -24,6 +25,8 @@ /// </summary> public static class DataProcess_BZ01 { + public static string timingForWait = "";//瀹氭椂鍣紝绛夊緟鏁版嵁 + /// <summary> /// BZ01宸ヤ綅锛堟竻鐏帮紝娲楁澘鍚庡伐浣嶏級 /// </summary> @@ -31,13 +34,15 @@ { var alertMsg = ""; LogType logType = LogType.DataProcess_BZ01; + string lastUpi = "";//鏈�鍚庤褰曠殑UPI鏁版嵁 + while (true) { Thread.Sleep(1000);//浼戠湢2绉掞紝灏嗕紤鐪犲啓鍒板墠闈紝鏄负浜嗕笅闈㈢殑continue鏂规硶鎵ц鍚庝笉鏄剧ず閿欒淇℃伅鐨勬彁绀猴紒锛侊紒銆怑ditBy shaocx,2022-05-24銆� SystemWarningMsg._lbl_alert_DataProcess_BZ01 = string.Empty; try { - if ( SystemValue.isStartedModel)//SystemValue.isAllowRuning_DataProcess_BZ01 && + if (SystemValue.isStartedModel)//SystemValue.isAllowRuning_DataProcess_BZ01 && { if (FormCC.IsAllowRunOutMode == true) { @@ -45,11 +50,17 @@ continue; } + var rgvLocation = StationLocationEnum.BZ01.ToString(); /* * 1銆佷粠鏁版嵁搴撲腑鍒ゆ柇鏄惁榻愬 * 2銆佹牴鎹綈濂楃粨鏋滐紝鎺ㄩ�佺粰PLC */ + if (FormCC.stationView == null) + { + SystemWarningMsg._lbl_alert_DataProcess_BZ01 = $"{rgvLocation.ToString()}-鑾峰彇PLC瀵硅薄涓簄ull"; + continue; + } var obj = FormCC.stationView.R_StationForReadCommList.Where(x => x.StationCode == rgvLocation.ToString()).FirstOrDefault(); if (obj.R_ReqParseData) { @@ -59,13 +70,58 @@ SystemWarningMsg._lbl_alert_DataProcess_BZ01 = $"{rgvLocation.ToString()}-璇锋眰浜嗚В鐮侊紝浣嗘槸缁撴灉鏄┖鐨�,姝ゆ寰幆缁撴潫"; continue; } + + if (lastUpi == result) + { + //瀵绘壘涓婃鐨凚Z01楠岃瘉璁板綍 + using (WmsDBModel wmsDB = new WmsDBModel()) + { + var lastRecord = wmsDB.wms_record_upi_process.Where(x => x.Upi == lastUpi && x.Location == "BZ01").OrderByDescending(x => x.Id).FirstOrDefault(); + if (lastRecord != null) + { + //鍙栨槸鍚� 榻愬寘 + bool my_qitaoReault = false; + if (lastRecord.UpiStatus == (int)UpiStatusEnum.宸查綈鍖�) + { + my_qitaoReault = true; + } + //鎺ㄩ�丳LC + using (StationServiceClient client = new StationServiceClient()) + { + var res = await client.WriteQiTaoInfoAsync((int)EDevice.Station, rgvLocation, my_qitaoReault); + if (!res.result) + { + SystemWarningMsg._lbl_alert_DataProcess_BZ01 = $"{rgvLocation.ToString()}-銆愬崟鐙帹閫丳LC銆戞帹閫侀綈濂楃粨鏋滃け璐�,WriteQiTaoInfoAsync杩斿洖:{res.resMsg}"; + continue; + } + else + { + Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-銆愬崟鐙帹閫丳LC銆戞帹閫侀綈濂楃粨鏋滄垚鍔�,WriteQiTaoInfoAsync锛屽弬鏁�: 绔欑偣{rgvLocation},榻愬缁撴灉:{my_qitaoReault}"); + SystemWarningMsg._lbl_alert_DataProcess_BZ01 = $"{rgvLocation.ToString()}-銆愬崟鐙帹閫丳LC銆戞帹閫侀綈濂楃粨鏋滄垚鍔�"; + continue; + } + } + } + else + { + SystemWarningMsg._lbl_alert_DataProcess_BZ01 = $"{rgvLocation.ToString()}-閲嶅鐨刄PI{result}"; + continue; + } + } + } + //*/ var upiCode = result; - var qitaoReault = false; + + + var qitaoReault = false;//榻愬寘缁撴灉 using (WmsDBModel wmsDB = new WmsDBModel()) { var upiObj = wmsDB.mes_batchOrderUPI_new.Where(x => x.UPI == upiCode).FirstOrDefault(); if (upiObj == null) { + //鍐欏叆鎶ヨ淇℃伅 + await MyExtendHelper.WriteBoolPlcDataForWarning(PlcWarningAddressGloble.Num_BZ01_1); + SystemWarningMsg._lbl_alert_DataProcess_BZ01 = $"{rgvLocation.ToString()},鏍规嵁UPI:{upiCode}娌℃湁鎵惧埌瀵硅薄 "; continue; } @@ -77,6 +133,103 @@ continue; } + //澧炲姞瀵瑰弬鏁伴厤缃殑绠$悊 銆怑ditby shaocx,2024-12-13銆� + var sysConfig = wmsDB.SysConfig.Where(x => x.Code == "LastUpi_BZ01").FirstOrDefault(); + if (sysConfig == null) + { + SystemWarningMsg._lbl_alert_DataProcess_BZ01 = $"娌℃湁鑾峰彇鍒� LastUpi_BZ01鐨勯厤缃俊鎭� "; + continue; + } + var config_value = sysConfig.Value; + if (config_value.IndexOf('|') > -1) + {//鏍煎紡涓� 鍖呭彿|UPI|娆″簭|榻愬寘鐘舵�� + var arr = config_value.Split('|'); + var lastPackageCode = arr[0]; + var lastUpi_BZ01 = arr[1]; + var lastShelf = Convert.ToInt32(arr[2]); + var lastQitaoReault = arr[3]; + + if (upiObj.PackageCode == lastPackageCode) + { + if (upiObj.Shelf == (lastShelf + 1)) + { + //榻愬寘鐘舵�� + if (lastQitaoReault == "榻愬寘") + { + qitaoReault = true; + } + else + { + qitaoReault = false; + } + } + else + {//涓嶉綈鍖� + qitaoReault = false; + } + } + else + {//璇存槑鏄崲浜嗗寘鍙凤紝閲嶆柊楠岃瘉 榻愬寘鐘舵�� + #region 璁$畻鏄惁榻愬寘 + qitaoReault = ValidateQiBao(wmsDB, upiObj); + #endregion + } + } + else + {//琛ㄧず杩樻病鏈夐厤缃� 锛岄噸鏂伴獙璇� 榻愬寘鐘舵�� + #region 璁$畻鏄惁榻愬寘 + qitaoReault = ValidateQiBao(wmsDB, upiObj); + #endregion + } + //鍖呬腑鍙湁涓�鍧楁澘鏃讹紝璁ゅ畾涓� 涓嶉綈鍖� 銆怑ditby shaocx,2025-04-01銆� + var isOnlyOne = MyExtendHelper.IsOnlyOneInPackage(wmsDB, upiObj.UPI); + if (isOnlyOne) + { + qitaoReault = false; + } + + //澧炲姞浼樺寲楠岃瘉 銆怑ditby shaocx,2024-12-16銆� + if (qitaoReault == false) + { + var lastPackageUpi_269 = FormCC.Globle_269_LastPackageUpi; + if (!string.IsNullOrEmpty(lastPackageUpi_269)) + { + var arr = lastPackageUpi_269.Split('|'); + if (upiObj.PackageCode == arr[0]) + {//鏈�鍚庝竴娆″湪269鎵弿鐨勫寘鍙� 璺� 鐜板湪BZ01鐨勫寘鍙蜂竴鑷�,瑕佺瓑寰� + //wait + var isWaitOutTime = Wait269(wmsDB); + if (isWaitOutTime == false) + { + continue; + } + } + else + { + //缁х画寰�涓嬭蛋 + } + } + else + { + //wait + var isWaitOutTime = Wait269(wmsDB); + if (isWaitOutTime == false) + { + continue; + } + } + } + + timingForWait = "";//閲嶇疆鏁版嵁 + if (qitaoReault == false) + { + upiObj.AreaCode = (int)AreaCodeEnum.缂撳瓨鍒嗘嫞鍖�; + } + else + { + upiObj.AreaCode = (int)AreaCodeEnum.鐮佸灈鍖哄煙; + } + /* //鏌ヨ鏄惁榻愬寘 var allList = wmsDB.mes_batchOrderUPI_new.Where(x => x.PackageCode == upiObj.PackageCode).ToList(); var isQiTaoList = allList.Where(x => x.AreaCode == (int)AreaCodeEnum.寰呯紦瀛樺垎鎷e尯 @@ -84,8 +237,6 @@ x.AreaCode == (int)AreaCodeEnum.缂撳瓨鍒嗘嫞鍖� || x.AreaCode == (int)AreaCodeEnum.鐮佸灈鍖哄煙 - || - x.AreaCode == (int)AreaCodeEnum.鏈哄櫒浜哄矝缂撳瓨鍖哄煙 ).ToList(); if (isQiTaoList.Count() != allList.Count()) {//涓嶉綈鍖� @@ -94,10 +245,116 @@ } else {//榻愬寘 - qitaoReault = true; - upiObj.AreaCode = (int)AreaCodeEnum.鐮佸灈鍖哄煙; - } + //杩欓噷鍐嶅鍔犱釜閫昏緫锛屽繀椤绘槸鎸夌収娆″簭杩涘叆鐨勬墠鐪熸鐨勭畻榻愬寘 [Editby shaocx,2024-12-06] + //瀵绘壘鏈寘鍐呯殑鍓嶄竴鍧楁澘鐨勪綅缃� + int queryAreaCode = (int)AreaCodeEnum.寰呯紦瀛樺垎鎷e尯; + var lastUpiLineQueue = wmsDB.mes_upi_linequeue.Where(x => x.PackageCode == upiObj.PackageCode && x.AreaCode == queryAreaCode) + .OrderBy(x => x.Id).FirstOrDefault();//鏌ヨ璇ュ寘闃熷垪鐨勭涓�鍧楁澘 + if (lastUpiLineQueue == null) + {//璇存槑 闃熷垪涓病鏈夎鍖呯殑鏁版嵁 + qitaoReault = false; + upiObj.AreaCode = (int)AreaCodeEnum.缂撳瓨鍒嗘嫞鍖�; + } + else + { + if (lastUpiLineQueue.Shelf != upiObj.Shelf) + { + qitaoReault = false; + upiObj.AreaCode = (int)AreaCodeEnum.缂撳瓨鍒嗘嫞鍖�; + } + else + { + var isJiXuValidate = true; + if (upiObj.Shelf != 1) + { + var qianmianList = allList.Where(x => x.Shelf < upiObj.Shelf).ToList(); + //鐪嬩互鍓嶇殑鏉垮湪鍝噷锛屽繀椤婚兘鍦� 鐮佸灈鍖哄煙 + var yiqianQuyu = AreaCodeEnum.鐮佸灈鍖哄煙; + var count_MD = qianmianList.Where(x => x.AreaCode == (int)yiqianQuyu).Count(); + if (count_MD != qianmianList.Count()) + { + isJiXuValidate = false; + qitaoReault = false; + upiObj.AreaCode = (int)AreaCodeEnum.缂撳瓨鍒嗘嫞鍖�; + } + } + if (isJiXuValidate) + {//鏄惁缁х画楠岃瘉 + //杩橀渶瑕侀獙璇佸湪杩欎簺鍖哄煙涓紝鏄惁姝g‘鎺掗槦锛屽鏋滄病鏈夋纭帓闃燂紝閭d箞灏辫涓轰笉榻愬 銆怑ditby shaocx,2024-12-12銆� + var queueList = wmsDB.mes_upi_linequeue.Where(x => x.PackageCode == upiObj.PackageCode && x.AreaCode == queryAreaCode) + .OrderBy(x => x.Id).ToList(); + var fisrtId = queueList.OrderBy(x => x.Id).First().Id; + var endId = queueList.OrderByDescending(x => x.Id).First().Id; + //缁х画鏌ヨ杩欎釜鏃堕棿娈靛唴鐨勯槦鍒楁暟鎹� + //閲嶅啓璇ラ槦鍒� + queueList = wmsDB.mes_upi_linequeue.Where(x => x.Id >= fisrtId && x.Id <= endId).OrderBy(x => x.Id).ToList(); + var syCount = allList.Where(x => x.Shelf >= upiObj.Shelf).Count(); + if (queueList.Count() != syCount) + { + qitaoReault = false; + upiObj.AreaCode = (int)AreaCodeEnum.缂撳瓨鍒嗘嫞鍖�; + } + else + { + //鍒ゆ柇鏄惁涔卞簭 + bool isLuanXuan = false; + int temp_shelf = 0; + for (int i = 0; i < queueList.Count; i++) + { + if (i == 0) + { + temp_shelf = queueList[i].Shelf; + if (temp_shelf != upiObj.Shelf) + { + qitaoReault = false; + isLuanXuan = true; + upiObj.AreaCode = (int)AreaCodeEnum.缂撳瓨鍒嗘嫞鍖�; + break;//璺冲嚭寰幆 + } + if (queueList[i].Upi != upiObj.UPI) + { + qitaoReault = false; + isLuanXuan = true; + upiObj.AreaCode = (int)AreaCodeEnum.缂撳瓨鍒嗘嫞鍖�; + break;//璺冲嚭寰幆 + } + } + else + { + temp_shelf = temp_shelf + 1; + if (temp_shelf != queueList[i].Shelf) + {//璁や负涔卞簭浜� + qitaoReault = false; + isLuanXuan = true; + upiObj.AreaCode = (int)AreaCodeEnum.缂撳瓨鍒嗘嫞鍖�; + break;//璺冲嚭寰幆 + } + } + } + + if (isLuanXuan == false) + { + qitaoReault = true; + upiObj.AreaCode = (int)AreaCodeEnum.鐮佸灈鍖哄煙; + } + } + } + } + + //娉ㄦ剰锛氳鍒犻櫎璇ラ槦鍒楁暟鎹摝 + wmsDB.mes_upi_linequeue.Remove(lastUpiLineQueue); + } + } + //*/ + //if (qitaoReault == false) { + // //涓存椂 + // SystemWarningMsg._lbl_alert_DataProcess_BZ01 = $"妯℃嫙鍟婂晩锛屾殏鍋滃晩鍟�"; + // continue; + //} + + + lastUpi = upiCode; using (StationServiceClient client = new StationServiceClient()) { var res = await client.WriteQiTaoInfoAsync((int)EDevice.Station, rgvLocation, qitaoReault); @@ -110,6 +367,19 @@ { Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-鎺ㄩ�侀綈濂楃粨鏋滄垚鍔�,WriteQiTaoInfoAsync锛屽弬鏁�: 绔欑偣{rgvLocation},榻愬缁撴灉:{qitaoReault}"); } + } + + var str_qitaoReault = (qitaoReault ? "榻愬寘" : "涓嶉綈鍖�"); + //璁板綍涓嬬粨鏋� + sysConfig.Value = upiObj.PackageCode + "|" + upiObj.UPI + "|" + upiObj.Shelf + "|" + str_qitaoReault; + + //鍒犻櫎璇PI鐨勭紦瀛橀槦鍒楁暟鎹� + int queryAreaCode2 = (int)AreaCodeEnum.寰呯紦瀛樺垎鎷e尯; + var curUpiLineQueue = wmsDB.mes_upi_linequeue.Where(x => x.Upi == upiObj.UPI && x.AreaCode == queryAreaCode2) + .FirstOrDefault(); + if (curUpiLineQueue != null) + { + wmsDB.mes_upi_linequeue.Remove(curUpiLineQueue); } //鏇存柊UPI鐘舵�� @@ -125,17 +395,37 @@ item.UpiStatus = (int)UpiStatusEnum.涓嶉綈鍖�; } } + //鏇存柊鍖呯姸鎬� [Editby shaocx,2024-12-15] + var packageObj = wmsDB.mes_package_gather.Where(x => x.PackageCode == upiObj.PackageCode).FirstOrDefault(); + if (packageObj != null) + { + if (qitaoReault) + { + packageObj.UpiStatus = (int)UpiStatusEnum.宸查綈鍖�; + packageObj.IsQiBao = true; + } + else + { + packageObj.UpiStatus = (int)UpiStatusEnum.涓嶉綈鍖�; + packageObj.IsQiBao = false; + } + } + //鏇存柊 鏈�鍚庝竴娆″湪 BZ_01鐨勭郴缁熷鐞嗙殑鏉夸欢 鏁版嵁 var rbRunMode = wmsDB.wms_rbline_runmode.FirstOrDefault(); + rbRunMode.UPI = upiObj.UPI; rbRunMode.PlanNo = upiObj.PlanNo; rbRunMode.OrderId = upiObj.OrderId; rbRunMode.PackageCode = upiObj.PackageCode; + + WmsRecordUpiProcessHandler.SaveWmsRecordUpiProcess(wmsDB, upiObj, "BZ01", "榻愬寘楠岃瘉:" + str_qitaoReault); wmsDB.SaveChanges(); } } else { + SystemWarningMsg._lbl_alert_DataProcess_BZ01 = $"{rgvLocation.ToString()}-娌℃湁瑕佸鐞嗙殑鏁版嵁"; using (WmsDBModel wmsDB = new WmsDBModel()) { var isAllow = IsAllloRunOutTaskMode(wmsDB, null); @@ -151,6 +441,46 @@ } } + /// <summary> + /// 瓒呮椂楠岃瘉 + /// </summary> + /// <param name="wmsDB"></param> + /// <param name="time"></param> + /// <returns>true:瓒呮椂 false锛氭湭瓒呮椂</returns> + private static bool Wait269(WmsDBModel wmsDB) + { + var bz30Config = wmsDB.SysConfig.Where(x => x.Code == "Wait_269").FirstOrDefault(); + if (bz30Config == null) + { + SystemWarningMsg._lbl_alert_DataProcess_BZ01 = $"娌℃湁閰嶇疆 Wait_269 鍊�"; + return false; + } + int i = 0; + bool right = int.TryParse(bz30Config.Value, out i); + if (right == false) + { + SystemWarningMsg._lbl_alert_DataProcess_BZ01 = $"閰嶇疆 Wait_269 鍊间笉鏄暣鏁�"; + return false; + } + + if (string.IsNullOrEmpty(timingForWait)) + { + timingForWait = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + } + + string time = timingForWait; + //鍦�269鎵弿鐨勬椂闂� + var time_269 = Convert.ToDateTime(time); + TimeSpan ts = DateTime.Now - time_269; + var sec = ts.Seconds; + if (sec >= i) + { + //瓒呮椂 + return true; + } + SystemWarningMsg._lbl_alert_DataProcess_BZ01 = $"閰嶇疆 Wait_269 鍊兼槸{i},褰撳墠闂撮殧鏄瘂sec}绉�,鏈秴鏃躲�傚紑濮嬬瓑寰呮椂闂磠timingForWait}"; + return false; + } /// <summary> /// 鏄惁鍙互鎵ц鍑哄簱妯″紡 @@ -160,8 +490,13 @@ /// <returns></returns> private static bool IsAllloRunOutTaskMode(WmsDBModel wmsDB, mes_batchOrderUPI_new curUpiObj) { + //涓嶅啀鍒ゆ柇 銆怑ditby shaocx,2024-12-14銆� + return false; + + /* //棣栧厛鏌ヨ鏁版嵁搴撲腑鏄惁鏈� 瑕佸嚭搴撶殑鏁版嵁 - var isExistOutTaskForNewCreated = wmsDB.wms_rbline_task.Where(x => x.RbTaskType == (int)RbTaskTypeEnum.鍑哄簱浠诲姟 + var isExistOutTaskForNewCreated = wmsDB.wms_rbline_task.Where(x => + (x.RbTaskType == (int)RbTaskTypeEnum.榻愬寘鍑哄簱浠诲姟 || x.RbTaskType == (int)RbTaskTypeEnum.寮哄埗鍑哄簱浠诲姟) && x.TaskStatus == (int)TaskStatusEnum.鏂板缓 ).Count(); if (isExistOutTaskForNewCreated == 0) @@ -226,7 +561,123 @@ FormCC.IsAllowRunOutMode = true; return true; + + //*/ } + /// <summary> + /// 鍒ゆ柇鏄惁榻愬寘 + /// </summary> + /// <param name="wmsDB"></param> + /// <param name="upiObj"></param> + /// <returns></returns> + private static bool ValidateQiBao(WmsDBModel wmsDB, mes_batchOrderUPI_new upiObj) + { + if (upiObj.Shelf != 1) + { + return false; + } + //鏌ヨ鏄惁榻愬寘 + var allList = wmsDB.mes_batchOrderUPI_new.Where(x => x.PackageCode == upiObj.PackageCode).ToList(); + var isQiTaoList = allList.Where(x => x.AreaCode == (int)AreaCodeEnum.寰呯紦瀛樺垎鎷e尯 + || + x.AreaCode == (int)AreaCodeEnum.鐮佸灈鍖哄煙 + ).ToList(); + if (isQiTaoList.Count() != allList.Count()) + {//涓嶉綈鍖� + return false; + } + else + {//榻愬寘 + //杩欓噷鍐嶅鍔犱釜閫昏緫锛屽繀椤绘槸鎸夌収娆″簭杩涘叆鐨勬墠鐪熸鐨勭畻榻愬寘 [Editby shaocx,2024-12-06] + //瀵绘壘鏈寘鍐呯殑鍓嶄竴鍧楁澘鐨勪綅缃� + int queryAreaCode = (int)AreaCodeEnum.寰呯紦瀛樺垎鎷e尯; + var lastUpiLineQueue = wmsDB.mes_upi_linequeue.Where(x => x.PackageCode == upiObj.PackageCode && x.AreaCode == queryAreaCode) + .OrderBy(x => x.Id).FirstOrDefault();//鏌ヨ璇ュ寘闃熷垪鐨勭涓�鍧楁澘 + if (lastUpiLineQueue == null) + {//璇存槑 闃熷垪涓病鏈夎鍖呯殑鏁版嵁 + return false; + } + else + { + if (lastUpiLineQueue.Shelf != upiObj.Shelf) + { + return false; + } + else + { + var isJiXuValidate = true; + if (upiObj.Shelf != 1) + { + var qianmianList = allList.Where(x => x.Shelf < upiObj.Shelf).ToList(); + //鐪嬩互鍓嶇殑鏉垮湪鍝噷锛屽繀椤婚兘鍦� 鐮佸灈鍖哄煙 + var yiqianQuyu = AreaCodeEnum.鐮佸灈鍖哄煙; + var count_MD = qianmianList.Where(x => x.AreaCode == (int)yiqianQuyu).Count(); + if (count_MD != qianmianList.Count()) + { + isJiXuValidate = false; + return false; + } + } + + if (isJiXuValidate) + {//鏄惁缁х画楠岃瘉 + //杩橀渶瑕侀獙璇佸湪杩欎簺鍖哄煙涓紝鏄惁姝g‘鎺掗槦锛屽鏋滄病鏈夋纭帓闃燂紝閭d箞灏辫涓轰笉榻愬 銆怑ditby shaocx,2024-12-12銆� + var queueList = wmsDB.mes_upi_linequeue.Where(x => x.PackageCode == upiObj.PackageCode && x.AreaCode == queryAreaCode) + .OrderBy(x => x.Id).ToList(); + var fisrtId = queueList.OrderBy(x => x.Id).First().Id; + var endId = queueList.OrderByDescending(x => x.Id).First().Id; + //缁х画鏌ヨ杩欎釜鏃堕棿娈靛唴鐨勯槦鍒楁暟鎹� + //閲嶅啓璇ラ槦鍒� + queueList = wmsDB.mes_upi_linequeue.Where(x => x.Id >= fisrtId && x.Id <= endId).OrderBy(x => x.Id).ToList(); + var syCount = allList.Where(x => x.Shelf >= upiObj.Shelf).Count(); + if (queueList.Count() != syCount) + { + return false; + } + else + { + //鍒ゆ柇鏄惁涔卞簭 + bool isLuanXuan = false; + int temp_shelf = 0; + for (int i = 0; i < queueList.Count; i++) + { + if (i == 0) + { + temp_shelf = queueList[i].Shelf; + if (temp_shelf != upiObj.Shelf) + { + isLuanXuan = true; + return false; + } + if (queueList[i].Upi != upiObj.UPI) + { + isLuanXuan = true; + return false; + } + } + else + { + temp_shelf = temp_shelf + 1; + if (temp_shelf != queueList[i].Shelf) + {//璁や负涔卞簭浜� + isLuanXuan = true; + return false; + } + } + } + + if (isLuanXuan == false) + { + return true; + } + } + } + } + } + } + + return false; + } } } -- Gitblit v1.9.3