From af548b2e59c0bc1bec3ffbfca0dbc7d121ba633e Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周日, 15 12月 2024 12:52:56 +0800
Subject: [PATCH] 333
---
CC/iWareCC_ASRS/ThreadService/01_BZ01工位(清灰,洗板后工位)/DataProcess_BZ01.cs | 481 +++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 463 insertions(+), 18 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..9136880 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;
@@ -29,19 +31,32 @@
{
var alertMsg = "";
LogType logType = LogType.DataProcess_BZ01;
+ string lastUpi = "";//鏈�鍚庤褰曠殑UPI鏁版嵁
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 (SystemValue.isStartedModel)//SystemValue.isAllowRuning_DataProcess_BZ01 &&
{
+ if (FormCC.IsAllowRunOutMode == true)
+ {
+ SystemWarningMsg._lbl_alert_DataProcess_BZ01 = $"姝e湪骞插嚭搴撴ā寮忥紝姝ゆ柟娉曟殏鍋溿�傘�� ";
+ 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)
{
@@ -51,41 +66,273 @@
SystemWarningMsg._lbl_alert_DataProcess_BZ01 = $"{rgvLocation.ToString()}-璇锋眰浜嗚В鐮侊紝浣嗘槸缁撴灉鏄┖鐨�,姝ゆ寰幆缁撴潫";
continue;
}
+ if (lastUpi == result)
+ {
+ SystemWarningMsg._lbl_alert_DataProcess_BZ01 = $"{rgvLocation.ToString()}-閲嶅鐨刄PI{result}";
+ continue;
+ }
var upiCode = result;
- var qitaoReault = false;
+ lastUpi = upiCode;
+
+ 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;
}
+
+ var isAllow = IsAllloRunOutTaskMode(wmsDB, upiObj);
+ if (isAllow)
+ {
+ SystemWarningMsg._lbl_alert_DataProcess_BZ01 = $"{rgvLocation.ToString()},鍒ゆ柇瑕佹墽琛屽嚭搴撴ā寮忎簡锛屾鏂规硶鏆傚仠銆傘�� ";
+ 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
+ }
+
+ 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.缂撳瓨鍒嗘嫞鍖�).ToList();
+ var isQiTaoList = allList.Where(x => x.AreaCode == (int)AreaCodeEnum.寰呯紦瀛樺垎鎷e尯
+ ||
+ x.AreaCode == (int)AreaCodeEnum.缂撳瓨鍒嗘嫞鍖�
+ ||
+ x.AreaCode == (int)AreaCodeEnum.鐮佸灈鍖哄煙
+ ).ToList();
if (isQiTaoList.Count() != allList.Count())
{//涓嶉綈鍖�
qitaoReault = false;
+ upiObj.AreaCode = (int)AreaCodeEnum.缂撳瓨鍒嗘嫞鍖�;
}
else
{//榻愬寘
- qitaoReault = true;
- }
- }
+ //杩欓噷鍐嶅鍔犱釜閫昏緫锛屽繀椤绘槸鎸夌収娆″簭杩涘叆鐨勬墠鐪熸鐨勭畻榻愬寘 [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.缂撳瓨鍒嗘嫞鍖�;
+ }
+ }
- using (StationServiceClient client = new StationServiceClient())
+ 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;
+ //}
+
+ 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}");
+ }
+ }
+
+ 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鐘舵��
+ 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.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 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 +345,203 @@
}
}
+
+ /// <summary>
+ /// 鏄惁鍙互鎵ц鍑哄簱妯″紡
+ /// </summary>
+ /// <param name="wmsDB"></param>
+ /// <param name="curUpiObj"></param>
+ /// <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.榻愬寘鍑哄簱浠诲姟 || 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;
+
+ //*/
+ }
+
+ /// <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