From 99004292e20a9e1efa4e3b11b8c319bfd796912c Mon Sep 17 00:00:00 2001 From: cjs <2216046164@qq.com> Date: 星期一, 14 七月 2025 17:24:30 +0800 Subject: [PATCH] 111 --- HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs | 170 ++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 138 insertions(+), 32 deletions(-) diff --git a/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs b/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs index 97110a5..4ec4f6b 100644 --- a/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs +++ b/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs @@ -1105,15 +1105,27 @@ Extend2 = db.Queryable<Location>().Where(a => a.S_CODE == mst.S_END_LOC).First().S_AGV_SITE; if (mst.N_START_LAYER > 1) { - Extend1 = db.Queryable<LocationExt>().Where(a => a.S_LOC_CODE == mst.S_START_LOC && a.N_LAYER == mst.N_START_LAYER).First().S_AGV_SITE; + if(mst.S_TYPE != "鐡跺澂闈炴�浜х┖妗嗗叆搴� && mst.S_TYPE != "鐡跺澂鎺ラ┏浣嶅叆搴� && mst.S_TYPE != "鐡剁洊绌烘墭鍏ュ簱") + { + Extend1 = db.Queryable<LocationExt>().Where(a => a.S_LOC_CODE == mst.S_START_LOC && a.N_LAYER == mst.N_START_LAYER).First().S_AGV_SITE; + } + } if (mst.N_END_LAYER > 1) { Extend2 = db.Queryable<LocationExt>().Where(a => a.S_LOC_CODE == mst.S_END_LOC && a.N_LAYER == mst.N_END_LAYER).First().S_AGV_SITE; } - if(mst.S_TYPE == "鐡跺澂闈炴�浜цˉ婊℃" || mst.S_TYPE == "鐡剁洊闈炴�浜цˉ婊℃" || mst.S_TYPE == "鐡跺澂闈炴�浜цˉ绌烘" || mst.S_TYPE == "鐡剁洊闈炴�浜цˉ绌烘" || mst.S_TYPE == "娉ㄥ鍗充骇婊℃墭涓嬬嚎锛堢摱鍧級") + if(mst.S_TYPE == "鐡跺澂闈炴�浜цˉ婊℃" || mst.S_TYPE == "鐡剁洊闈炴�浜цˉ婊℃澶у寘瑁� || mst.S_TYPE == "鐡跺澂闈炴�浜цˉ绌烘" || mst.S_TYPE == "鐡剁洊闈炴�浜цˉ绌烘" || mst.S_TYPE == "娉ㄥ鍗充骇婊℃墭涓嬬嚎锛堢摱鍧級") { Extend2 = Settings.dXSites.Where(it => it.loc == mst.S_END_LOC).First().site.ToString(); + } + + if(mst.S_TYPE == "鎺ラ┏浣嶅叆搴�) + { + if(mst.S_CNTR_CODE.Split(',').ToList().Count != 2) + { + Extend1 = db.Queryable<LocationExt>().Where(a => a.S_LOC_CODE == mst.S_START_LOC && a.N_LAYER == 1).First().S_AGV_SITE; + } } Extend3 = "0"; @@ -1125,28 +1137,28 @@ //Extend4 = db.Queryable<LinjiangBCPWorkOrder>().Where(a => a.S_WorkNo == workNo).First().S_UsingNow == "N" ? "2" : "1"; //鐡跺澂娉ㄥ鏈虹珯鐐规牴鎹厤缃枃浠惰幏鍙�- if (taskType.Contains("娉ㄥ") && taskType.Contains("鐡跺澂")) - { - var devInfo = Settings.deviceInfos.Where(a => (a.TN_Location.Contains(mst.S_START_LOC) || a.TN_Location.Contains(mst.S_END_LOC)) && a.enable == 1).FirstOrDefault(); - string machine = (devInfo.TN_Location[0] == mst.S_START_LOC || devInfo.TN_Location[0] == mst.S_END_LOC) ? "A" : "B"; - string machineTwo = devInfo.deviceName.Split('-')[1] + machine; - LogHelper.Info($"鏈哄彴锛歿machineTwo}"); - var siteInfo = Settings.pPZSJSites.Where(a => a.siteName == machineTwo && a.enable == 1).FirstOrDefault(); - if (siteInfo != null) - { - if (taskType.Contains("绌烘墭涓婄嚎")) - { - //鏀瑰彉缁堢偣绔欑偣 - Extend2 = siteInfo.site[1]; - } - else - { - //鏀瑰彉璧风偣绔欑偣 - Extend1 = siteInfo.site[0]; - } - } - else LogHelper.Info("閰嶇疆鏂囦欢鏈厤缃摱鍧敞濉戞満绔欑偣"); - } + //if (taskType.Contains("娉ㄥ") && taskType.Contains("鐡跺澂")) + //{ + // var devInfo = Settings.deviceInfos.Where(a => (a.TN_Location.Contains(mst.S_START_LOC) || a.TN_Location.Contains(mst.S_END_LOC)) && a.enable == 1).FirstOrDefault(); + // string machine = (devInfo.TN_Location[0] == mst.S_START_LOC || devInfo.TN_Location[0] == mst.S_END_LOC) ? "A" : "B"; + // string machineTwo = devInfo.deviceName.Split('-')[1] + machine; + // LogHelper.Info($"鏈哄彴锛歿machineTwo}"); + // var siteInfo = Settings.pPZSJSites.Where(a => a.siteName == machineTwo && a.enable == 1).FirstOrDefault(); + // if (siteInfo != null) + // { + // if (taskType.Contains("绌烘墭涓婄嚎")) + // { + // //鏀瑰彉缁堢偣绔欑偣 + // Extend2 = siteInfo.site[1]; + // } + // else + // { + // //鏀瑰彉璧风偣绔欑偣 + // Extend1 = siteInfo.site[0]; + // } + // } + // else LogHelper.Info("閰嶇疆鏂囦欢鏈厤缃摱鍧敞濉戞満绔欑偣"); + //} } Console.WriteLine($"[SendTask]:TaskNo={mst.S_CODE.Trim()},start={Extend1},end={Extend2}"); @@ -1306,6 +1318,11 @@ .ToList(); if (locInfo.Count > 0) { + if(areaName == "鐡跺澂鍗充骇婊℃缂撳瓨") + { + locInfo = locInfo.Where(a => a.N_ROW == 1 || a.N_ROW == 2).ToList(); + } + LogHelper.Info($"鍏ュ簱绠楁硶02:鏌ヨ鍒板彲鍏ヨ揣浣嶇殑鏁伴噺涓猴細{locInfo.Count}"); foreach (var a in locInfo) { @@ -1320,7 +1337,7 @@ var endItemInfo = db.Queryable<CntrItemRel>().Where(b => b.S_CNTR_CODE == endCntrInfo.S_CNTR_CODE).First(); if (endItemInfo != null) { - endItemCode = endItemInfo.S_ITEM_CODE; + endItemCode = endItemInfo.S_ITEM_CODE + endItemInfo.S_BATCH_NO; } } else @@ -1341,7 +1358,7 @@ else { //鏌ヨ鍚庨潰褰撳墠璐т綅鍚庝竴涓�- result = db.Queryable<Location>().Where(b => b.S_AREA_CODE == a.S_AREA_CODE && b.N_ROW > a.N_ROW && b.S_LOCK_STATE == "鏃�).OrderBy(b => b.N_COL).First(); + result = db.Queryable<Location>().Where(b => b.S_AREA_CODE == a.S_AREA_CODE && b.N_ROW == a.N_ROW && b.N_COL > a.N_COL && b.S_LOCK_STATE == "鏃�).OrderBy(b => b.N_COL).First(); } if (result != null) { @@ -1437,6 +1454,10 @@ var locList = db.Queryable<Location>().Where(a => a.S_AREA_CODE == it.areaCode && a.N_CURRENT_NUM > 0).OrderBy(a => a.N_ROW).OrderByDescending(a => a.N_COL).Take(1).PartitionBy(a => a.N_ROW).Includes(a => a.LocCntrRel).ToList(); if (locList.Count > 0) { + if(areaName == "鐡跺澂鍗充骇婊℃缂撳瓨" && string.IsNullOrEmpty(itemCode)) + { + locList = locList.Where(a => a.N_ROW == 3).ToList(); + } LogHelper.Info($"鍑哄簱绠楁硶02:鏌ヨ鍒板彲鍑鸿揣浣嶆暟閲忥細{locList.Count}"); foreach (var a in locList) { @@ -1629,7 +1650,60 @@ { LogHelper.Info($"{endAreaName}鏈厤缃�); } - + if(result == null) + { + if(endAreaName == "缈绘枟鏈哄簱瀛樼┖鎵樹笅绾匡紙鐡跺澂锛�) + { + //鐡跺澂闈炲嵆浜х┖鎵樹笅绾�濡傛灉闈炲嵆浜х┖妗嗗簱鍖烘棤娉曞叆搴擄紝鍒欎笅绾垮埌鐡跺澂鍗充骇婊℃缂撳瓨 4 5 鎺�+ areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂鍗充骇婊℃缂撳瓨" && a.enable == 1).FirstOrDefault(); + if (areaInfo != null) + { + var locList = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && (a.N_ROW == 4 || a.N_ROW == 5) && a.N_CURRENT_NUM == 0).OrderBy(a => a.N_ROW).OrderBy(a => a.N_COL).Take(1).PartitionBy(a => a.N_ROW).ToList(); + if (locList.Count > 0) + { + foreach (var a in locList) + { + var rowInfo = db.Queryable<RowLock>().Where(b => b.S_AREA_CODE == a.S_AREA_CODE && b.S_ROW == a.S_ROW && a.S_LOCK_STATE == "鏃�).First(); + if (rowInfo != null && a.S_LOCK_STATE == "鏃�) + { + result = a; + break; + } + + } + } + } + else + { + LogHelper.Info("鐡跺澂鍗充骇婊℃缂撳瓨鏈厤缃�); + } + } + if(endAreaName == "缈绘枟鏈哄嵆浜х┖鎵樹笅绾匡紙鐡跺澂锛�) + { + //鐡跺澂鍗充骇绌烘墭涓嬬嚎 濡傛灉鍗充骇绌烘搴撳尯鏃犳硶鍏ュ簱锛屽垯涓嬬嚎鍒扮摱鍧嵆浜ф弧妗嗙紦瀛�3 鎺�+ areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂鍗充骇婊℃缂撳瓨" && a.enable == 1).FirstOrDefault(); + if (areaInfo != null) + { + var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_ROW == 3 && a.N_CURRENT_NUM == 0).OrderBy(a => a.N_COL).First(); + if (locInfo != null ) + { + var rowInfo = db.Queryable<RowLock>().Where(b => b.S_AREA_CODE == locInfo.S_AREA_CODE && b.S_ROW == locInfo.S_ROW && locInfo.S_LOCK_STATE == "鏃�).First(); + if (rowInfo != null && locInfo.S_LOCK_STATE == "鏃�) + { + result = locInfo; + } + } + } + else + { + LogHelper.Info("鐡跺澂鍗充骇婊℃缂撳瓨鏈厤缃�); + } + if(result == null) + { + BCPEmptyOut(db, "缈绘枟鏈哄簱瀛樼┖鎵樹笅绾匡紙鐡跺澂锛�); + } + } + } return result; } @@ -1849,7 +1923,7 @@ /// </summary> /// <param name="cntr"></param> /// <returns></returns> - internal static bool BindLocCntr(string loc, string cntr, string itemCode, string batchNo, string deviceName = "", string itemlayer = "") + internal static bool BindLocCntr(string loc, string cntr, string itemCode, string batchNo, string deviceName = "", string itemlayer = "",string itemName = "") { LogHelper.Info($"缁戝畾璐т綅瀹瑰櫒琛�loc:{loc},cntr:{cntr}"); bool result = true; @@ -1880,7 +1954,7 @@ } if (!string.IsNullOrEmpty(itemCode)) { - BindCntrItem(cntrCode, itemCode, batchNo, itemlayer); + BindCntrItem(cntrCode, itemCode, batchNo, itemlayer, itemName); } } } @@ -1896,7 +1970,7 @@ /// <param name="batchNo"></param> /// <param name="qty"></param> /// <returns></returns> - internal static bool BindCntrItem(string trayCode, string itemCode, string batchNo, string itemlayer = "") + internal static bool BindCntrItem(string trayCode, string itemCode, string batchNo, string itemlayer = "",string itemName = "") { LogHelper.Info($"缁戝畾瀹瑰櫒鐗╂枡琛�trayCode:{trayCode}"); var res = false; @@ -1911,8 +1985,8 @@ var info = db.Queryable<CntrItemRel>().Where(a => a.S_CNTR_CODE.Trim() == trayCode.Trim()).First(); if (info == null) { - var cir = new CntrItemRel { S_CNTR_CODE = trayCode, S_BATCH_NO = batchNo, S_ITEM_CODE = itemCode, S_ITEM_MODEL = itemlayer }; - if (db.Insertable<CntrItemRel>(cir).ExecuteCommand() > 0) LogHelper.Info($"瀹瑰櫒鐗╂枡琛ㄧ粦瀹氭垚鍔燂紝鎵樼洏鍙凤細{trayCode},鐗╂枡缂栫爜锛歿itemCode},鐗╂枡灞傛暟锛歿itemlayer}"); + var cir = new CntrItemRel { S_CNTR_CODE = trayCode, S_BATCH_NO = batchNo, S_ITEM_CODE = itemCode, S_ITEM_MODEL = itemlayer,S_ITEM_NAME = itemName }; + if (db.Insertable<CntrItemRel>(cir).ExecuteCommand() > 0) LogHelper.Info($"瀹瑰櫒鐗╂枡琛ㄧ粦瀹氭垚鍔燂紝鎵樼洏鍙凤細{trayCode},鐗╂枡缂栫爜锛歿itemCode},鐗╂枡灞傛暟锛歿itemlayer},鐗╂枡鍚嶇О锛歿itemName}"); } @@ -2394,6 +2468,38 @@ } } + /// <summary> + /// 璁$畻鐡跺澂闈炲嵆浜х┖鎵樿捣鐐�+ /// </summary> + /// <returns></returns> + internal static Location FJCKTLoc() + { + var db = new SqlHelper<object>().GetInstance(); + Location result = null; + //鍦ㄧ摱鍧嵆浜ф弧妗�鏌ヨ 4 5涓ゆ帓鐨勭┖妗�+ var areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂鍗充骇婊℃缂撳瓨" && a.enable == 1).FirstOrDefault(); + if(areaInfo != null) + { + var locList = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && (a.N_ROW == 4 || a.N_ROW == 5) && a.N_CURRENT_NUM > 0).OrderBy(a => a.N_ROW).OrderByDescending(a => a.N_COL).Take(1).PartitionBy(a => a.N_ROW).ToList(); + if(locList.Count > 0) + { + foreach (var a in locList) + { + var rowInfo = db.Queryable<RowLock>().Where(b => b.S_AREA_CODE == a.S_AREA_CODE && b.S_ROW == a.S_ROW && b.S_LOCK_STATE == "鏃�).First(); + if(rowInfo != null && a.S_LOCK_STATE == "鏃�) + { + result = a; + break; + } + } + } + } + if(result == null) + { + result = TaskProcess.BCPInOrOut(db, false, "鐡跺澂搴撳尯", ""); + } + return result; + } } } -- Gitblit v1.9.1