From e3ee006de3ccd8940ad2a600c03675cd2ac5e2cb Mon Sep 17 00:00:00 2001 From: lss <2538410689@qq.com> Date: 星期五, 27 六月 2025 17:38:42 +0800 Subject: [PATCH] 合肥佳通优化 --- HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs | 614 +++++++++++++++++++++++++++--------------------------- 1 files changed, 307 insertions(+), 307 deletions(-) diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs index bd476cd..d0fc15a 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs @@ -118,8 +118,8 @@ #endregion - Location endloc = new Location(); - Location startloc = new Location(); + Location endloc = null; + Location startloc = null; lock (_lockCreateTask) { if (taskData.taskType == 1) //鍑哄簱娴佺▼锛岄�杩囩墿鏂欐満鍙拌绠楃嚎杈硅揣浣�@@ -770,6 +770,7 @@ } + public static object _Putin = new object(); /// <summary> /// 鍏ュ钩搴� /// </summary> @@ -799,166 +800,169 @@ string areacode = ""; try { - - #region 鍏ュ簱妫�煡鎵樼洏鐗╂枡琛ㄦ湁鏃犳暟鎹�- var cntritem = db.Queryable<CntrItemDetail>().Where(a => a.S_CNTR_CODE.Trim() == model.Rfid).First(); - if (cntritem == null) + lock (_Putin) { - result.code = "1"; - result.msg = $"鍒涘缓浠诲姟澶辫触锛屾墭鐩�{model.Rfid}鏃犵粦瀹氱墿鏂欐暟鎹�; - LogHelper.Info($"ItemBack锛歿result.msg}"); - AddErrorInfo("鎵樼洏缁戝畾鐗╂枡鏁版嵁涓虹┖", result.msg, Source); - return result; - } - #endregion - - #region 鍒ゆ柇鎵樼洏缁戝畾璐т綅鏄惁鍜屼笅鍙戠粦瀹氳捣鐐圭浉鍚�濡傛灉娌$粦瀹氭墭鐩樺垯缁戝畾鎵樼洏 - var CntrLoc = db.Queryable<LocCntrRel>().Where(a => a.S_CNTR_CODE.Trim() == model.Rfid).First(); - if (CntrLoc != null) - { - if (CntrLoc.S_LOC_CODE != Start) + #region 鍏ュ簱妫�煡鎵樼洏鐗╂枡琛ㄦ湁鏃犳暟鎹�+ var cntritem = db.Queryable<CntrItemDetail>().Where(a => a.S_CNTR_CODE.Trim() == model.Rfid).First(); + if (cntritem == null) { - result.code = "1"; - result.msg = $"鍒涘缓浠诲姟澶辫触锛屾墭鐩�{model.Rfid}缁戝畾浣嶇疆涓嶆槸璧风偣锛歿Start}"; + result.msg = $"鍒涘缓浠诲姟澶辫触锛屾墭鐩�{model.Rfid}鏃犵粦瀹氱墿鏂欐暟鎹�; LogHelper.Info($"ItemBack锛歿result.msg}"); - AddErrorInfo("鎵樼洏缁戝畾浣嶇疆涓嶅悓", result.msg, Source); + AddErrorInfo("鎵樼洏缁戝畾鐗╂枡鏁版嵁涓虹┖", result.msg, Source); return result; } - } - else - { - LocationHelper.BindingLoc(Start, new List<string> { model.Rfid }); - //LogHelper.Info($"ItemBack锛氬垱寤轰换鍔″け璐ワ紝鎵樼洏:{model.Rfid}鏈壘鍒扮粦瀹氳揣浣�); - //result.code = "1"; - //result.msg = $"鍒涘缓浠诲姟澶辫触锛屾墭鐩�{model.Rfid}鏈壘鍒扮粦瀹氳揣浣�; - //AddErrorInfo("鏌ユ壘鎵樼洏璐т綅澶辫触", result.msg); - //return result; - } - // Console.WriteLine("鏌ヨ璐т綅缁戝畾鍏崇郴"); - //鍒ゆ柇鎵樼洏涓庤揣浣嶆槸鍚︽湁缁戝畾鍏崇郴锛屽鏋滄病鏈夊垯杩涜缁戝畾 - // var cntrloc = db.Queryable<LocCntrRel>().Where(a => a.S_CNTR_CODE.Trim() == model.Rfid).First(); - // Console.WriteLine($"鑾峰彇缁戝畾鍏崇郴:{JsonConvert.SerializeObject(cntrloc)}"); - //if (cntrloc == null) - //{ - // // Console.WriteLine("缁戝畾鎵樼洏"); - // List<string> cntrs = new List<string>() { model.Rfid }; + #endregion - // LocationHelper.BindingLoc(Start, cntrs); - //} - //else - //{ - - // if (cntrloc.S_LOC_CODE != Start) - // { - - // LogHelper.Info($"Putin==>鎵樼洏:{model.Rfid}宸插拰璐т綅{cntrloc.S_LOC_CODE}鏈夌粦瀹氬叧绯�); - // result.code = "1"; - // result.msg = $"鎵樼洏:{model.Rfid}宸插拰璐т綅{cntrloc.S_LOC_CODE}鏈夌粦瀹氬叧绯�; - // } - - //} - #endregion - - #region 鏍规嵁璧风偣璐т綅鐨勪粨搴撶紪鐮�鑾峰彇骞冲簱缂栫爜,骞惰绠楀叆搴撹揣浣�- string End = ""; - var startloc = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == Start).First(); - if (startloc != null) - { - //鏍规嵁浠撳簱 璁$畻搴撳尯 - var whcode = Settings.wareLoc.Where(a => a.AreaCode == startloc.S_WH_CODE).FirstOrDefault(); - if (whcode != null) + #region 鍒ゆ柇鎵樼洏缁戝畾璐т綅鏄惁鍜屼笅鍙戠粦瀹氳捣鐐圭浉鍚�濡傛灉娌$粦瀹氭墭鐩樺垯缁戝畾鎵樼洏 + var CntrLoc = db.Queryable<LocCntrRel>().Where(a => a.S_CNTR_CODE.Trim() == model.Rfid).First(); + if (CntrLoc != null) { - areacode = whcode.PMK; + if (CntrLoc.S_LOC_CODE != Start) + { + + result.code = "1"; + result.msg = $"鍒涘缓浠诲姟澶辫触锛屾墭鐩�{model.Rfid}缁戝畾浣嶇疆涓嶆槸璧风偣锛歿Start}"; + LogHelper.Info($"ItemBack锛歿result.msg}"); + AddErrorInfo("鎵樼洏缁戝畾浣嶇疆涓嶅悓", result.msg, Source); + return result; + } } else { + LocationHelper.BindingLoc(Start, new List<string> { model.Rfid }); + //LogHelper.Info($"ItemBack锛氬垱寤轰换鍔″け璐ワ紝鎵樼洏:{model.Rfid}鏈壘鍒扮粦瀹氳揣浣�); + //result.code = "1"; + //result.msg = $"鍒涘缓浠诲姟澶辫触锛屾墭鐩�{model.Rfid}鏈壘鍒扮粦瀹氳揣浣�; + //AddErrorInfo("鏌ユ壘鎵樼洏璐т綅澶辫触", result.msg); + //return result; + } + // Console.WriteLine("鏌ヨ璐т綅缁戝畾鍏崇郴"); + //鍒ゆ柇鎵樼洏涓庤揣浣嶆槸鍚︽湁缁戝畾鍏崇郴锛屽鏋滄病鏈夊垯杩涜缁戝畾 + // var cntrloc = db.Queryable<LocCntrRel>().Where(a => a.S_CNTR_CODE.Trim() == model.Rfid).First(); + // Console.WriteLine($"鑾峰彇缁戝畾鍏崇郴:{JsonConvert.SerializeObject(cntrloc)}"); + //if (cntrloc == null) + //{ + // // Console.WriteLine("缁戝畾鎵樼洏"); + // List<string> cntrs = new List<string>() { model.Rfid }; + + // LocationHelper.BindingLoc(Start, cntrs); + //} + //else + //{ + + // if (cntrloc.S_LOC_CODE != Start) + // { + + // LogHelper.Info($"Putin==>鎵樼洏:{model.Rfid}宸插拰璐т綅{cntrloc.S_LOC_CODE}鏈夌粦瀹氬叧绯�); + // result.code = "1"; + // result.msg = $"鎵樼洏:{model.Rfid}宸插拰璐т綅{cntrloc.S_LOC_CODE}鏈夌粦瀹氬叧绯�; + // } + + //} + #endregion + + #region 鏍规嵁璧风偣璐т綅鐨勪粨搴撶紪鐮�鑾峰彇骞冲簱缂栫爜,骞惰绠楀叆搴撹揣浣�+ string End = ""; + var startloc = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == Start).First(); + if (startloc != null) + { + //鏍规嵁浠撳簱 璁$畻搴撳尯 + var whcode = Settings.wareLoc.Where(a => a.AreaCode == startloc.S_WH_CODE).FirstOrDefault(); + if (whcode != null) + { + areacode = whcode.PMK; + } + else + { + result.code = "1"; + result.msg = $"鏍规嵁璧风偣浠撳簱缂栫爜锛歿startloc.S_WH_CODE}鏈壘鍒板搴旈厤缃枃浠�; + LogHelper.Info($"Putin==> {result.msg}"); + AddErrorInfo("鏌ユ壘搴撳尯澶辫触", result.msg, Source); + return result; + } + + + loc = StorageCompute(itemcode, areacode); + + if (loc != null) + { + End = loc.S_CODE; + } + else + { + + result.code = "1"; + result.msg = $"搴撳尯:{areacode}鏃犲彲鐢ㄨ揣浣�; + LogHelper.Info($"Putin==> {result.msg}"); + AddErrorInfo("鏌ユ壘搴撳尯澶辫触", result.msg, Source); + return result; + } + } + else + { + result.code = "1"; - result.msg = $"鏍规嵁璧风偣浠撳簱缂栫爜锛歿startloc.S_WH_CODE}鏈壘鍒板搴旈厤缃枃浠�; + result.msg = $"浠诲姟璧风偣:{Start}鎵句笉鍒板搴旇揣浣嶏紝璇锋鏌ヨ揣浣嶈〃"; LogHelper.Info($"Putin==> {result.msg}"); - AddErrorInfo("鏌ユ壘搴撳尯澶辫触", result.msg, Source); + AddErrorInfo("鏌ユ壘璐т綅澶辫触", result.msg, Source); return result; } + #endregion - - loc = StorageCompute(itemcode, areacode); - - if (loc != null) + #region 鍒涘缓浠诲姟 + if (!string.IsNullOrEmpty(Start) && !string.IsNullOrEmpty(End)) { - End = loc.S_CODE; - } - else - { - - result.code = "1"; - result.msg = $"搴撳尯:{areacode}鏃犲彲鐢ㄨ揣浣�; - LogHelper.Info($"Putin==> {result.msg}"); - AddErrorInfo("鏌ユ壘搴撳尯澶辫触", result.msg, Source); - return result; - } - } - else - { - - result.code = "1"; - result.msg = $"浠诲姟璧风偣:{Start}鎵句笉鍒板搴旇揣浣嶏紝璇锋鏌ヨ揣浣嶈〃"; - LogHelper.Info($"Putin==> {result.msg}"); - AddErrorInfo("鏌ユ壘璐т綅澶辫触", result.msg, Source); - return result; - } - #endregion - - #region 鍒涘缓浠诲姟 - if (!string.IsNullOrEmpty(Start) && !string.IsNullOrEmpty(End)) - { - if (startloc.N_LOCK_STATE != 0) - { - result.code = "1"; - result.msg = $"鍒涘缓浠诲姟澶辫触锛岃捣鐐�{Start}鏈夐攣"; - AddErrorInfo("璐т綅鏈夐攣", result.msg, Source); - return result; - } - //鍒涘缓wcs浠诲姟 - var wcsTask = new WCSTask - { - S_CODE = WCSHelper.GenerateTaskNo(), - S_TYPE = "鍏ュ钩搴�, - S_EQ_NO = model.TaskNumber, - S_START_LOC = Start, - S_END_LOC = End, - S_START_WH = startloc.S_WH_CODE, - S_START_AREA = startloc.S_AREA_CODE, - S_END_WH = loc.S_WH_CODE, - S_END_AREA = loc.S_AREA_CODE, - N_CNTR_COUNT = 1, - N_SCHEDULE_TYPE = 1, - S_CNTR_CODE = model.Rfid, - N_START_LAYER = 1, - N_END_LAYER = 1, - Z_TYPE = n_type - }; - LogHelper.Info("鍒涘缓鍏ュ钩搴撲换鍔★細" + JsonConvert.SerializeObject(wcsTask)); - if (WCSHelper.CreateTask(wcsTask)) - { - //LocationHelper.LockLoc(Start, 2); - //LocationHelper.LockLoc(End, 1); - LogHelper.Info("鍒涘缓浠诲姟鎴愬姛"); + if (startloc.N_LOCK_STATE != 0) + { + result.code = "1"; + result.msg = $"鍒涘缓浠诲姟澶辫触锛岃捣鐐�{Start}鏈夐攣"; + AddErrorInfo("璐т綅鏈夐攣", result.msg, Source); + return result; + } + //鍒涘缓wcs浠诲姟 + var wcsTask = new WCSTask + { + S_CODE = WCSHelper.GenerateTaskNo(), + S_TYPE = "鍏ュ钩搴�, + S_EQ_NO = model.TaskNumber, + S_START_LOC = Start, + S_END_LOC = End, + S_START_WH = startloc.S_WH_CODE, + S_START_AREA = startloc.S_AREA_CODE, + S_END_WH = loc.S_WH_CODE, + S_END_AREA = loc.S_AREA_CODE, + N_CNTR_COUNT = 1, + N_SCHEDULE_TYPE = 1, + S_CNTR_CODE = model.Rfid, + N_START_LAYER = 1, + N_END_LAYER = 1, + Z_TYPE = n_type + }; + LogHelper.Info("鍒涘缓鍏ュ钩搴撲换鍔★細" + JsonConvert.SerializeObject(wcsTask)); + if (WCSHelper.CreateTask(wcsTask)) + { + //LocationHelper.LockLoc(Start, 2); + //LocationHelper.LockLoc(End, 1); + LogHelper.Info("鍒涘缓浠诲姟鎴愬姛"); + } + else + { + result.code = "1"; + result.msg = $"浠诲姟鍒涘缓澶辫触"; + AddErrorInfo("浠诲姟鍒涘缓澶辫触", result.msg, Source); + return result; + } } else { result.code = "1"; - result.msg = $"浠诲姟鍒涘缓澶辫触"; - AddErrorInfo("浠诲姟鍒涘缓澶辫触", result.msg, Source); + result.msg = "鍒涘缓浠诲姟澶辫触锛屾湭鎵惧埌瀵瑰簲鐨勫彇璐х偣鎴栧嵏璐х偣"; return result; } + #endregion + } - else - { - result.code = "1"; - result.msg = "鍒涘缓浠诲姟澶辫触锛屾湭鎵惧埌瀵瑰簲鐨勫彇璐х偣鎴栧嵏璐х偣"; - return result; - } - #endregion return result; } @@ -971,6 +975,7 @@ } } + public static object _PutOut = new object(); /// <summary> /// 鍑哄钩搴� /// </summary> @@ -997,7 +1002,6 @@ string Start = ""; string End = ""; string CntrCode = ""; - string itemcode = model.PartNumber; string cntrType = ""; string areacode = ""; @@ -1005,152 +1009,155 @@ #endregion try { - - #region 鏍规嵁鐗╂枡缂栫爜瑙勫垯 璁$畻鍑哄簱搴撳尯 - //绮夋枡浠庡钩搴撳嚭搴擄紝鍏朵粬鐗╂枡闇�浠庢殏瀛樺尯鍑哄簱 - var locJt = db.Queryable<Location>().Where(a => a.S_AREA_CODE == model.WorkCenter).First(); - if (locJt == null) + lock (_PutOut) { - result.code = "1"; - result.msg = $"鏍规嵁鏈哄彴缂栫爜锛歿model.WorkCenter}鏈壘鍒板搴旇揣浣�; - LogHelper.Info($"Putin==> {result.msg}"); - AddErrorInfo("鏌ユ壘搴撳尯澶辫触", result.msg, Source); - return result; - } - //鏍规嵁浠撳簱 璁$畻搴撳尯 - var whcode = Settings.wareLoc.Where(a => a.AreaCode == locJt.S_WH_CODE).FirstOrDefault(); - if (whcode != null) - { - if (model.PartNumber.StartsWith("4X")) + #region 鏍规嵁鐗╂枡缂栫爜瑙勫垯 璁$畻鍑哄簱搴撳尯 + //绮夋枡浠庡钩搴撳嚭搴擄紝鍏朵粬鐗╂枡闇�浠庢殏瀛樺尯鍑哄簱 + var locJt = db.Queryable<Location>().Where(a => a.S_AREA_CODE == model.WorkCenter).First(); + if (locJt == null) { - areacode = whcode.PMK; - cntrType = "PM"; + result.code = "1"; + result.msg = $"鏍规嵁鏈哄彴缂栫爜锛歿model.WorkCenter}鏈壘鍒板搴旇揣浣�; + LogHelper.Info($"Putin==> {result.msg}"); + AddErrorInfo("鏌ユ壘搴撳尯澶辫触", result.msg, Source); + return result; } - else if (model.PartNumber.StartsWith("32")) + //鏍规嵁浠撳簱 璁$畻搴撳尯 + var whcode = Settings.wareLoc.Where(a => a.AreaCode == locJt.S_WH_CODE).FirstOrDefault(); + if (whcode != null) { - areacode = whcode.ZCW2; - } - else - { - if (model.PartNumber.StartsWith("3")) + if (model.PartNumber.StartsWith("4X")) { - cntrType = "RC"; - areacode = whcode.ZCW; + areacode = whcode.PMK; + cntrType = "PM"; + } + else if (model.PartNumber.StartsWith("32")) + { + areacode = whcode.ZCW2; } else { + if (model.PartNumber.StartsWith("3")) + { + cntrType = "RC"; + areacode = whcode.ZCW; + } + else + { - result.code = "1"; - result.msg = $"鍒涘缓浠诲姟澶辫触锛岀墿鏂欏彿{model.PartNumber}涓嶅睘浜庤瀹氱墿鏂�; - LogHelper.Info($"ItemBack锛歿result.msg}"); - AddErrorInfo("鐗╂枡缂栫爜鏍煎紡閿欒", result.msg, Source); - return result; + result.code = "1"; + result.msg = $"鍒涘缓浠诲姟澶辫触锛岀墿鏂欏彿{model.PartNumber}涓嶅睘浜庤瀹氱墿鏂�; + LogHelper.Info($"ItemBack锛歿result.msg}"); + AddErrorInfo("鐗╂枡缂栫爜鏍煎紡閿欒", result.msg, Source); + return result; + } } - } - } - else - { - result.code = "1"; - result.msg = $"鏍规嵁缁堢偣搴撳尯浠撳簱缂栫爜锛歿locJt.S_WH_CODE}鏈壘鍒板搴旈厤缃枃浠�; - LogHelper.Info($"Putin==> {result.msg}"); - AddErrorInfo("鏌ユ壘搴撳尯澶辫触", result.msg, Source); - return result; - } - #endregion - - #region 鏍规嵁鐗╂枡缂栫爜璁$畻鍑哄簱璐т綅锛岄�寰�嚎杈逛綅缃�- var Endloc = new Location(); - //鏍规嵁鐗╂枡缂栫爜璁$畻鍑哄簱璐т綅 - var loc = airlift(areacode, itemcode, model.PartLevel); - if (loc != null) - { - Start = loc.S_CODE; - //鏍规嵁鍑哄簱璐т綅鎵惧埌缁戝畾鎵樼洏锛岃幏鍙栧叆鏈哄彴璐т綅 - var CntrRel = LocationHelper.GetLocCntrRel(loc.S_CODE).FirstOrDefault(); - CntrCode = CntrRel.S_CNTR_CODE; - Endloc = Computeloc(CntrCode, model.WorkCenter, cntrType); - if (Endloc != null) - { - End = Endloc.S_CODE; } else { result.code = "1"; - result.msg = $"Computeloc==銆嬫牴鎹満鍙扮紪鐮侊細{model.WorkCenter},宸ヨ绫诲瀷锛歿cntrType} 鏈壘鍒扮┖璐т綅鏁版嵁锛岃妫�煡璐т綅琛�; + result.msg = $"鏍规嵁缁堢偣搴撳尯浠撳簱缂栫爜锛歿locJt.S_WH_CODE}鏈壘鍒板搴旈厤缃枃浠�; + LogHelper.Info($"Putin==> {result.msg}"); + AddErrorInfo("鏌ユ壘搴撳尯澶辫触", result.msg, Source); + return result; + } + #endregion + + #region 鏍规嵁鐗╂枡缂栫爜璁$畻鍑哄簱璐т綅锛岄�寰�嚎杈逛綅缃�+ Location Endloc = null; + //鏍规嵁鐗╂枡缂栫爜璁$畻鍑哄簱璐т綅 + var loc = airlift(areacode, itemcode, model.PartLevel); + if (loc != null) + { + Start = loc.S_CODE; + //鏍规嵁鍑哄簱璐т綅鎵惧埌缁戝畾鎵樼洏锛岃幏鍙栧叆鏈哄彴璐т綅 + var CntrRel = LocationHelper.GetLocCntrRel(loc.S_CODE).FirstOrDefault(); + CntrCode = CntrRel.S_CNTR_CODE; + Endloc = Computeloc(CntrCode, model.WorkCenter, cntrType); + if (Endloc != null) + { + End = Endloc.S_CODE; + } + else + { + result.code = "1"; + result.msg = $"Computeloc==銆嬫牴鎹満鍙扮紪鐮侊細{model.WorkCenter},宸ヨ绫诲瀷锛歿cntrType} 鏈壘鍒扮┖璐т綅鏁版嵁锛岃妫�煡璐т綅琛�; + LogHelper.Info($"ItemBack锛歿result.msg}"); + AddErrorInfo("鏌ユ壘搴撳尯澶辫触", result.msg, Source); + return result; + } + } + else + { + + result.code = "1"; + result.msg = $"浠诲姟鐗╂枡:{itemcode}鎵句笉鍒板搴斿簱瀛�; LogHelper.Info($"ItemBack锛歿result.msg}"); AddErrorInfo("鏌ユ壘搴撳尯澶辫触", result.msg, Source); return result; } - } - else - { + #endregion - result.code = "1"; - result.msg = $"浠诲姟鐗╂枡:{itemcode}鎵句笉鍒板搴斿簱瀛�; - LogHelper.Info($"ItemBack锛歿result.msg}"); - AddErrorInfo("鏌ユ壘搴撳尯澶辫触", result.msg, Source); - return result; - } - #endregion + #region 浠诲姟鍒涘缓 + if (string.IsNullOrEmpty(Start)) + { + result.code = "1"; + result.msg = "鍒涘缓浠诲姟澶辫触锛屾湭鎵惧埌瀵瑰簲鐨勫彇璐х偣"; + return result; + } + if (string.IsNullOrEmpty(End)) + { + result.code = "1"; + result.msg = "鍒涘缓浠诲姟澶辫触锛屾湭鎵惧埌瀵瑰簲鐨勫嵏璐х偣"; + return result; + } + if (loc.N_LOCK_STATE != 0) + { + result.code = "1"; + result.msg = $"鍒涘缓浠诲姟澶辫触锛岃捣鐐箋Start}鏈夐攣"; + AddErrorInfo("璐т綅鏈夐攣", result.msg, Source); + return result; + } + //鍒涘缓wcs浠诲姟 + var wcsTask = new WCSTask + { + S_CODE = WCSHelper.GenerateTaskNo(), + S_TYPE = "鍑哄钩搴�, + S_EQ_NO = model.TaskNumber, + S_START_LOC = Start, + S_END_LOC = End, + S_START_WH = loc.S_WH_CODE, + S_START_AREA = loc.S_AREA_CODE, + S_END_WH = Endloc.S_WH_CODE, + S_END_AREA = Endloc.S_AREA_CODE, + N_CNTR_COUNT = 1, + N_SCHEDULE_TYPE = 1, + S_CNTR_CODE = CntrCode, + N_START_LAYER = 1, + N_END_LAYER = 1, + Z_TYPE = n_type - #region 浠诲姟鍒涘缓 - if (string.IsNullOrEmpty(Start)) - { - result.code = "1"; - result.msg = "鍒涘缓浠诲姟澶辫触锛屾湭鎵惧埌瀵瑰簲鐨勫彇璐х偣"; - return result; - } - if (string.IsNullOrEmpty(End)) - { - result.code = "1"; - result.msg = "鍒涘缓浠诲姟澶辫触锛屾湭鎵惧埌瀵瑰簲鐨勫嵏璐х偣"; - return result; - } - if (loc.N_LOCK_STATE != 0) - { - result.code = "1"; - result.msg = $"鍒涘缓浠诲姟澶辫触锛岃捣鐐箋Start}鏈夐攣"; - AddErrorInfo("璐т綅鏈夐攣", result.msg, Source); - return result; - } - //鍒涘缓wcs浠诲姟 - var wcsTask = new WCSTask - { - S_CODE = WCSHelper.GenerateTaskNo(), - S_TYPE = "鍑哄钩搴�, - S_EQ_NO = model.TaskNumber, - S_START_LOC = Start, - S_END_LOC = End, - S_START_WH = loc.S_WH_CODE, - S_START_AREA = loc.S_AREA_CODE, - S_END_WH = Endloc.S_WH_CODE, - S_END_AREA = Endloc.S_AREA_CODE, - N_CNTR_COUNT = 1, - N_SCHEDULE_TYPE = 1, - S_CNTR_CODE = CntrCode, - N_START_LAYER = 1, - N_END_LAYER = 1, - Z_TYPE = n_type + }; + LogHelper.Info("鍒涘缓鍑哄钩搴撲换鍔★細" + JsonConvert.SerializeObject(wcsTask)); + if (WCSHelper.CreateTask(wcsTask)) + { + LogHelper.Info("鍒涘缓浠诲姟鎴愬姛"); + //LocationHelper.LockLoc(Start, 2); + //LocationHelper.LockLoc(End, 1); + } + else + { + result.code = "1"; + result.msg = $"浠诲姟鍒涘缓澶辫触"; + AddErrorInfo("浠诲姟鍒涘缓澶辫触", result.msg, Source); + return result; + } - }; - LogHelper.Info("鍒涘缓鍑哄钩搴撲换鍔★細" + JsonConvert.SerializeObject(wcsTask)); - if (WCSHelper.CreateTask(wcsTask)) - { - LogHelper.Info("鍒涘缓浠诲姟鎴愬姛"); - //LocationHelper.LockLoc(Start, 2); - //LocationHelper.LockLoc(End, 1); - } - else - { - result.code = "1"; - result.msg = $"浠诲姟鍒涘缓澶辫触"; - AddErrorInfo("浠诲姟鍒涘缓澶辫触", result.msg, Source); + #endregion + return result; } - #endregion - - return result; } catch (Exception ex) { @@ -1185,9 +1192,8 @@ string Start = model.InitialLocation; string itemcode = ""; int endlayer = 1; - Location loc = new Location(); + Location loc = null; string areacode = ""; - WCSTask mst = new WCSTask(); List<WCSTask> msts = new List<WCSTask>(); #endregion @@ -1318,6 +1324,14 @@ #endregion //鍥炲簱璐т綅璁$畻搴撳尯璐т綅 + if (string.IsNullOrEmpty(areacode)) + { + result.code = "1"; + result.msg = $"璧风偣璐т綅{startloc.S_CODE}鏃犳硶鎵惧埌鍥炲簱搴撳尯锛岃妫�煡璧风偣璐т綅"; + LogHelper.Info($" {result.msg}"); + AddErrorInfo("鏌ユ壘搴撳尯澶辫触", result.msg, Source); + return result; + } loc = StorageCompute(itemcode, areacode); if (loc == null) { @@ -1344,7 +1358,6 @@ } else { - result.code = "1"; result.msg = $"Empty==> 浠诲姟璧风偣:{Start}鎵句笉鍒板搴旇揣浣嶏紝璇锋鏌ヨ揣浣嶈〃"; LogHelper.Info($"{result.msg}"); @@ -1402,7 +1415,7 @@ else { result.code = "1"; - result.msg = $"浠诲姟鍒涘缓澶辫触"; + result.msg = $"浠诲姟鍒涘缓澶辫触锛岃妫�煡璧风偣璐т綅鐘舵�鍚庨噸鏂颁笅鍙�; AddErrorInfo("浠诲姟鍒涘缓澶辫触", result.msg, Source); return result; } @@ -1454,7 +1467,7 @@ string areacode = ""; string cntrcode = ""; - Location startloc = new Location(); + Location startloc = null; // startloc = LocationHelper.GetLocByAreacode(areacode, model.CarrierType); #endregion @@ -1462,8 +1475,6 @@ { lock (_lockcallfixture) { - - #region 鏍规嵁浠撳簱缂栫爜鍒ゆ柇搴撳尯 骞惰绠楀嚭搴撹揣浣� var endloc = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == End).First(); //鏍规嵁浠撳簱 璁$畻搴撳尯 @@ -1627,9 +1638,8 @@ string Start = model.InitialLocation; string End = ""; string itemcode = model.PartNumber; - Location loc = new Location(); + Location loc = null; string areacode = ""; - WCSTask mst = new WCSTask(); List<WCSTask> msts = new List<WCSTask>(); #endregion @@ -2383,58 +2393,48 @@ var db = new SqlHelper<object>().GetInstance(); try { - var location = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == loc).First(); - if (location != null) + lock (_lockCreateItem) { - var loccntr = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE.Trim() == loc).ToList(); - if (loccntr.Count > 0) + var location = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == loc).First(); + if (location != null) { - foreach (var item in loccntr) + var loccntr = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE.Trim() == loc).ToList(); + if (loccntr.Count > 0) { - string cntrcode = item.S_CNTR_CODE; - LocationHelper.UnBindingLoc(loc, new List<string>() { cntrcode }); - var CntrItem = db.Queryable<CntrItemDetail>().Where(a => a.S_CNTR_CODE.Trim() == cntrcode).First(); - if (CntrItem != null) + + var cntrcodes = loccntr.Select(a => a.S_CNTR_CODE.Trim()).ToList(); + if (LocationHelper.Clear(loc, cntrcodes)) { - db.Deleteable<Container>().Where(it => it.S_CODE == item.S_CNTR_CODE).ExecuteCommand(); - // db.Deleteable<LocCntrRel>().Where(it => it.S_LOC_CODE.Trim() == loc).ExecuteCommand(); - if (db.Deleteable<CntrItemDetail>().Where(it => it.S_CNTR_CODE == cntrcode).ExecuteCommand() > 0) - { - LogHelper.Info($"ClearLoc 搴撲綅娓呴櫎鎴愬姛"); - } - else - { - LogHelper.Info($"ClearLoc 搴撲綅娓呴櫎澶辫触"); - result.code = "1"; - result.msg = "搴撲綅娓呴櫎澶辫触"; - AddErrorInfo("搴撲綅娓呴櫎澶辫触", result.msg, Source); - return result; - } + LogHelper.Info($"ClearLoc 搴撲綅娓呴櫎鎴愬姛"); } else { - LogHelper.Info($"搴撳尯娓呯┖=銆嬫墭鐩�{cntrcode}鏃犵墿鏂欐暟鎹�); - + LogHelper.Info($"ClearLoc 搴撲綅娓呴櫎澶辫触"); + result.code = "1"; + result.msg = "搴撲綅娓呴櫎澶辫触"; + AddErrorInfo("搴撲綅娓呴櫎澶辫触", result.msg, Source); + return result; } + + } + else + { + result.code = "1"; + result.msg = $" ClearLoc 璐т綅{loc}鏃犳墭鐩樿揣浣嶇粦瀹氬叧绯�; + AddErrorInfo("搴撲綅娓呴櫎澶辫触", result.msg, Source); + return result; + } } + else { result.code = "1"; - result.msg = $" ClearLoc 璐т綅{loc}鏃犳墭鐩樿揣浣嶇粦瀹氬叧绯�; - AddErrorInfo("搴撲綅娓呴櫎澶辫触", result.msg, Source); + result.msg = $"鏍规嵁璐т綅:{loc}鎵句笉鍒拌揣浣嶅叧绯�; + AddErrorInfo("璐т綅涓虹┖", result.msg, Source); return result; - } - - } - else - { - result.code = "1"; - result.msg = $"鏍规嵁璐т綅:{loc}鎵句笉鍒拌揣浣嶅叧绯�; - AddErrorInfo("璐т綅涓虹┖", result.msg, Source); - return result; } } catch (Exception ex) @@ -2716,7 +2716,7 @@ /// <returns></returns> internal static Location Computeloc(string cntrcode, string jtcode, string cntrType) { - Location End = new Location(); + Location End = null; var db = new SqlHelper<object>().GetInstance(); -- Gitblit v1.9.1