From 4de1b4fcd9b116573dc5c9ac98747f14c90d1ba3 Mon Sep 17 00:00:00 2001 From: hudong <Administrator@PC-20250329JZUF> Date: 星期一, 26 五月 2025 08:53:01 +0800 Subject: [PATCH] 更新wsdl文件名称 --- process/TaskProcess.cs | 456 ++++++++++++++++++++++++++++++++------------------------ 1 files changed, 259 insertions(+), 197 deletions(-) diff --git a/process/TaskProcess.cs b/process/TaskProcess.cs index 2df9515..7a7e1ba 100644 --- a/process/TaskProcess.cs +++ b/process/TaskProcess.cs @@ -80,211 +80,273 @@ /// <param name="forkliftNo">杞﹀彿</param> /// <param name="extData">閲嶉噺</param> /// <param name="Ext1">楂樺害</param> - internal static void OperateReq(WCSTask TN_Task, int state, string forkliftNo, string extData,string Ext1) + internal static void OperateReq(WCSTask TN_Task, int state, string forkliftNo, string extData) { if (state == 1002)//淇″彿 { - LogHelper.Info($"绉伴噸鍒嗛厤鍏ュ簱缁堢偣璐т綅楂樺害閲嶉噺{extData}锛岄珮搴Ext1}"); - var db = new SqlHelper<object>().GetInstance(); - var WMStask= db.Queryable<WMSTask>().Where(s=>s.S_CODE==TN_Task.S_OP_CODE).First(); - if (WMStask==null) - { - LogHelper.Info($"鏈壘鍒版浠诲姟瀵瑰簲鐨勪綔涓�); - } - try - { - Location result = null; - //var TN_Task = WCSHelper.GetTask(no); - //鍒ゆ柇褰撳墠瀹瑰櫒涓烘墭鐩樿繕鏄枡妗�- //鎵樼洏鍙兘鏀惧湪1-2灞�鏂欑3-9灞� - //鑾峰彇闆嗗悎 - var locklist = db.Queryable<Location>(); - - - if (TN_Task.S_CNTR_CODE.Substring(0, 2) == "TP")//鎵樼洏 - { - var endlist = locklist - .Where(it => it.N_CURRENT_NUM < it.N_CAPACITY && it.N_LAYER < 3 && it.S_AREA_CODE == "HJQ") - .OrderBy(it => it.N_COL) - .PartitionBy(it => it.N_ROW) - .PartitionBy(it => it.N_LAYER) - .Take(1) - .ToList(); - foreach (var item in endlist) - { - LogHelper.Info($"閲嶉噺{decimal.Parse(extData)}"); - //澶т簬800kg - if (decimal.Parse(extData) > 800) - { - LogHelper.Info($"楂樺害{decimal.Parse(Ext1)}"); - //楂樺害澶т簬1050mm 鍙斁鍦ㄧ涓�眰 - if (decimal.Parse(Ext1) <= 1050) - { - var lockinfo = locklist.Where(it => it.N_LOCK_STATE != 0 && it.N_LOCK_STATE != 0 && it.N_ROW == item.N_ROW - && it.N_LAYER == 1).First(); - if (lockinfo == null) - { - result = item; - break; - } - else { - LogHelper.Info($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); - throw new Exception($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); - } - } - else - { - LogHelper.Info($"楂樺害{decimal.Parse(Ext1)}杩囬珮 鑱旂郴浜哄伐澶勭悊"); - throw new Exception($"楂樺害{decimal.Parse(Ext1)}杩囬珮 鑱旂郴浜哄伐澶勭悊"); - - } - - } - else//涓嶈秴閲�鍗�涓嶈秴杩�00kg - { - //楂樺害<450mm 2-9灞�- if (decimal.Parse(Ext1) < 450) - { - var lockinfo = locklist.Where(it => it.N_LOCK_STATE != 0 && it.N_ROW == item.N_ROW - && it.N_LAYER == 2).First(); - if (lockinfo == null) - { - result = item; - - break; - } - else { - LogHelper.Info($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); - throw new Exception($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); - } - } - else if (decimal.Parse(Ext1) >= 450 && decimal.Parse(Ext1) < 1050) - { - var lockinfo = locklist.Where(it => it.N_LOCK_STATE != 0 && it.N_ROW == item.N_ROW - && it.N_LAYER >= 1 && it.N_LAYER <= 2).First(); - if (lockinfo == null) - { - result = item; - - - db.Updateable<WMSTask>(TN_Task).UpdateColumns(a => new { a.S_END_LOC, a.S_END_AREA, a.S_END_WH }).ExecuteCommand(); - - break; - } - else - { - LogHelper.Info($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); - throw new Exception($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); - } - } - else - { - LogHelper.Info($"鎵樼洏楂樺害{decimal.Parse(Ext1)}杩囬珮 鑱旂郴浜哄伐澶勭悊"); - throw new Exception($"鎵樼洏楂樺害{decimal.Parse(Ext1)}杩囬珮 鑱旂郴浜哄伐澶勭悊"); - - } - } - } - } - else - { //瀹瑰櫒涓烘枡绠�鍒欐斁鍒�-9灞�- - var endlist = locklist - .Where(it => it.N_CURRENT_NUM < it.N_CAPACITY && it.N_LAYER >=3&&it.S_AREA_CODE== "HJQ") - .OrderBy(it => it.N_COL) - .PartitionBy(it => it.N_ROW) - .PartitionBy(it => it.N_LAYER) - .Take(1) - .ToList(); - foreach (var item in endlist) - { - LogHelper.Info($"閲嶉噺{decimal.Parse(extData)}"); - //澶т簬800kg - if (decimal.Parse(extData) > 800) - { - LogHelper.Info($"鏂欑閲嶉噺瓒呰繃800kg"); - throw new Exception($"鏂欑閲嶉噺瓒呰繃800kg"); - } - else - { - if (decimal.Parse(Ext1) < 1050) - { - var lockinfo = locklist.Where(it => it.N_LOCK_STATE != 0 && it.N_LOCK_STATE != 0 && it.S_AREA_CODE == item.S_AREA_CODE && it.N_ROW == item.N_ROW - && it.N_LAYER >= 3 && it.N_LAYER <= 9).First(); - if (lockinfo == null) - { - result = item; - TN_Task.S_END_LOC = item.S_CODE; - db.Updateable<WMSTask>(TN_Task).UpdateColumns(a => new { a.S_END_LOC }).ExecuteCommand(); - - break; - } - else { - LogHelper.Info($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); - throw new Exception($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); - } - } - else - { - LogHelper.Info($"鏂欑楂樺害 {decimal.Parse(Ext1)} 杩囬珮 鑱旂郴浜哄伐澶勭悊"); - throw new Exception($"鏂欑楂樺害 {decimal.Parse(Ext1)} 杩囬珮 鑱旂郴浜哄伐澶勭悊"); - } - } - } - } - - - if (result==null) - { - LogHelper.Info($"灏忚溅鍥炶皟鏈壘鍒板彲鐢ㄥ簱浣�); - throw new Exception($"灏忚溅鍥炶皟鏈壘鍒板彲鐢ㄥ簱浣�); - } - TN_Task.S_END_LOC = result.S_CODE; - TN_Task.S_END_AREA = result.S_AREA_CODE; - TN_Task.S_END_WH = result.S_WH_CODE; - - db.Updateable<WCSTask>(TN_Task).UpdateColumns(a => new { a.S_END_LOC, a.S_END_AREA, a.S_END_WH }).ExecuteCommand(); - WMStask.S_END_LOC = result.S_CODE; - WMStask.S_END_AREA = result.S_AREA_CODE; - WMStask.S_END_WH = result.S_WH_CODE; - - db.Updateable<WMSTask>(WMStask).UpdateColumns(a => new { a.S_END_LOC, a.S_END_AREA, a.S_END_WH }).ExecuteCommand(); - - //璇锋眰鍗歌揣锛�- var dic = new Dictionary<string, string>(); - dic.Add("No", TN_Task.S_CODE); - dic.Add("ParamNo", "2"); - dic.Add("Param1", TN_Task.S_END_LOC); - - - var res = NDC.ChangeOrder(dic); - LogHelper.Info($"淇敼缁堢偣璐т綅"+ JsonConvert.SerializeObject(res)); - if (res.Res.ErrCode != -1) - { - var dics = new Dictionary<string, string>(); - dics.Add("No", TN_Task.S_CODE); - dics.Add("ParamNo", "6"); - dics.Add("Param1", "2"); - var ss= NDC.ChangeOrder(dics); - LogHelper.Info($"灏忚溅鍓嶅線鏂板簱浣� + JsonConvert.SerializeObject(ss)); - LocationHelper.BindingLoc(TN_Task.S_END_LOC, TN_Task.S_CNTR_CODE.Split(',').ToList()); - } - db.CommitTran(); - } - catch (Exception) - { - db.RollbackTran(); - throw; - } - - } - if (state == 1103) + else if (state == 2000)//淇″彿 + { + var db = new SqlHelper<object>().GetInstance(); + TN_Task.S_EQ_TASK_CODE = extData;//楂樺害 + db.Updateable<WCSTask>(TN_Task).UpdateColumns(a => new { a.S_EQ_TASK_CODE }).ExecuteCommand(); + db.CommitTran(); + if (!string.IsNullOrEmpty(TN_Task.S_STATE_PRE) && !string.IsNullOrEmpty(TN_Task.S_EQ_TASK_CODE)) + { + weight(TN_Task); + } + + + + } + else if (state == 2001)//淇″彿 + { + var db = new SqlHelper<object>().GetInstance(); + TN_Task.S_STATE_PRE = extData;//楂樺害 + db.Updateable<WCSTask>(TN_Task).UpdateColumns(a => new { a.S_STATE_PRE }).ExecuteCommand(); + db.CommitTran(); + if (!string.IsNullOrEmpty(TN_Task.S_STATE_PRE) && !string.IsNullOrEmpty(TN_Task.S_EQ_TASK_CODE)) + { + weight(TN_Task); + } + + } + + if (state == 1103) { //澶ч搧妗嗗弶璧颁互鍚庨�鐭ワ紝鎴戜滑瑕侀�鐭ヨ緭閫佺嚎 } } + + + + internal static void weight(WCSTask TN_Task) + { + + + if (!string.IsNullOrEmpty(TN_Task.S_STATE_PRE) && !string.IsNullOrEmpty(TN_Task.S_EQ_TASK_CODE)) + { + string extData = TN_Task.S_STATE_PRE; + string Ext1 = TN_Task.S_EQ_TASK_CODE; + LogHelper.Info($"绉伴噸鍒嗛厤鍏ュ簱缁堢偣璐т綅楂樺害閲嶉噺{extData}锛岄珮搴Ext1},瀹瑰櫒{TN_Task.S_CNTR_CODE}"); + var db = new SqlHelper<object>().GetInstance(); + var WMStask = db.Queryable<WMSTask>().Where(s => s.S_CODE == TN_Task.S_OP_CODE).First(); + if (WMStask == null) + { + LogHelper.Info($"鏈壘鍒版浠诲姟瀵瑰簲鐨勪綔涓�); + } + try + { + Location result = null; + //var TN_Task = WCSHelper.GetTask(no); + //鍒ゆ柇褰撳墠瀹瑰櫒涓烘墭鐩樿繕鏄枡妗�+ //鎵樼洏鍙兘鏀惧湪1-2灞�鏂欑3-9灞�+ + //鑾峰彇闆嗗悎 + var locklist = db.Queryable<Location>(); + + + if (TN_Task.S_CNTR_CODE.Substring(0, 2) == "TP")//鎵樼洏 + { + var endlist = locklist + .Where(it => it.N_CURRENT_NUM < it.N_CAPACITY && it.N_LAYER < 3 && it.N_LOCK_STATE ==0 && it.S_AREA_CODE == "HJQ") + .OrderBy(it => it.N_COL) + .PartitionBy(it => it.N_ROW) + .PartitionBy(it => it.N_LAYER) + .Take(1) + .ToList(); + foreach (var item in endlist) + { + LogHelper.Info($"閲嶉噺{decimal.Parse(extData)}"); + //澶т簬800kg + if (decimal.Parse(extData) > 1) + { + LogHelper.Info($"楂樺害{Ext1}"); + //楂樺害澶т簬1050mm 鍙斁鍦ㄧ涓�眰 + if (decimal.Parse(Ext1) <=3) + { + var lockinfo = locklist.Where(it => it.N_LOCK_STATE != 0 && it.N_LOCK_STATE != 0 && it.N_ROW == item.N_ROW + && it.N_LAYER == 1).First(); + if (lockinfo == null) + { + result = item; + break; + } + else + { + LogHelper.Info($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); + //throw new Exception($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); + } + } + else + { + LogHelper.Info($"楂樺害{decimal.Parse(Ext1)}杩囬珮 鑱旂郴浜哄伐澶勭悊"); + throw new Exception($"楂樺害{decimal.Parse(Ext1)}杩囬珮 鑱旂郴浜哄伐澶勭悊"); + + } + + } + else//涓嶈秴閲�鍗�涓嶈秴杩�00kg + { + //楂樺害<450mm 2-9灞�+ if (decimal.Parse(Ext1) < 2) + { + LogHelper.Info($"楂樺害<450mm 2-9灞�); + var lockinfo = locklist.Where(it => it.N_LOCK_STATE != 0 && it.N_ROW == item.N_ROW + && it.N_LAYER == 2).First(); + if (lockinfo == null) + { + result = item; + + break; + } + else + { + LogHelper.Info($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); + //throw new Exception($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); + } + } + else if (decimal.Parse(Ext1) >= 2 && decimal.Parse(Ext1) < 4) + { + var lockinfo = locklist.Where(it => it.N_LOCK_STATE != 0 && it.N_ROW == item.N_ROW + && it.N_LAYER >= 1 && it.N_LAYER <= 2).First(); + if (lockinfo == null) + { + result = item; + + + db.Updateable<WMSTask>(TN_Task).UpdateColumns(a => new { a.S_END_LOC, a.S_END_AREA, a.S_END_WH }).ExecuteCommand(); + + break; + } + else + { + LogHelper.Info($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); + //throw new Exception($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); + } + } + else + { + LogHelper.Info($"鎵樼洏楂樺害{decimal.Parse(Ext1)}杩囬珮 鑱旂郴浜哄伐澶勭悊"); + throw new Exception($"鎵樼洏楂樺害{decimal.Parse(Ext1)}杩囬珮 鑱旂郴浜哄伐澶勭悊"); + + } + } + } + } + else + { //瀹瑰櫒涓烘枡绠�鍒欐斁鍒�-9灞�+ + var endlist = locklist + .Where(it => it.N_CURRENT_NUM < it.N_CAPACITY && it.N_LAYER >= 3 && it.N_LOCK_STATE == 0 && it.S_AREA_CODE == "HJQ") + .OrderBy(it => it.N_COL) + .PartitionBy(it => it.N_ROW) + .PartitionBy(it => it.N_LAYER) + .Take(1) + .ToList(); + foreach (var item in endlist) + { + LogHelper.Info($"閲嶉噺{decimal.Parse(extData)}"); + //澶т簬800kg + if (decimal.Parse(extData) > 1) + { + LogHelper.Info($"鏂欑閲嶉噺瓒呰繃800kg"); + throw new Exception($"鏂欑閲嶉噺瓒呰繃800kg"); + } + else + { + if (decimal.Parse(Ext1) < 4) + { + var lockinfo = locklist.Where(it => it.N_LOCK_STATE != 0 && it.N_LOCK_STATE != 0 && it.S_AREA_CODE == item.S_AREA_CODE && it.N_ROW == item.N_ROW + && it.N_LAYER >= 3 && it.N_LAYER <= 9).First(); + if (lockinfo == null) + { + result = item; + TN_Task.S_END_LOC = item.S_CODE; + db.Updateable<WMSTask>(TN_Task).UpdateColumns(a => new { a.S_END_LOC }).ExecuteCommand(); + + break; + } + else + { + LogHelper.Info($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); + throw new Exception($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); + } + } + else + { + LogHelper.Info($"鏂欑楂樺害 {decimal.Parse(Ext1)} 杩囬珮 鑱旂郴浜哄伐澶勭悊"); + throw new Exception($"鏂欑楂樺害 {decimal.Parse(Ext1)} 杩囬珮 鑱旂郴浜哄伐澶勭悊"); + } + } + } + } + + + if (result == null) + { + LogHelper.Info($"灏忚溅鍥炶皟鏈壘鍒板彲鐢ㄥ簱浣�); + throw new Exception($"灏忚溅鍥炶皟鏈壘鍒板彲鐢ㄥ簱浣�); + } + TN_Task.S_END_LOC = result.S_CODE; + TN_Task.S_END_AREA = result.S_AREA_CODE; + TN_Task.S_END_WH = result.S_WH_CODE; + + db.Updateable<WCSTask>(TN_Task).UpdateColumns(a => new { a.S_END_LOC, a.S_END_AREA, a.S_END_WH }).ExecuteCommand(); + WMStask.S_END_LOC = result.S_CODE; + WMStask.S_END_AREA = result.S_AREA_CODE; + WMStask.S_END_WH = result.S_WH_CODE; + + db.Updateable<WMSTask>(WMStask).UpdateColumns(a => new { a.S_END_LOC, a.S_END_AREA, a.S_END_WH }).ExecuteCommand(); + var S_AGV_SITE = ""; + if (TN_Task.N_ERR==1)//鍓嶇Щ杞�+ { + //鍓嶇Щ杞�+ S_AGV_SITE = LocationHelper.GetAgvSite(TN_Task.S_END_LOC); + } + else //鍫嗗灈杞�+ { + + //鍫嗗灈杞�+ S_AGV_SITE = db.Queryable<TN_Location_Ext>().Where(a => a.S_LOC_CODE == TN_Task.S_END_LOC).First()?.S_AGV_SITE; + } + var dic = new Dictionary<string, string>(); + dic.Add("No", TN_Task.S_CODE); + dic.Add("ParamNo", "3"); + dic.Add("Param1", S_AGV_SITE); + //dic.Add("Pri", TN_Task.N_PRIORITY.ToString()); + //dic.Add("No", TN_Task.S_CODE.Trim()); + //dic.Add("From", TN_Task.S_START_LOC); + //dic.Add("To", TN_Task.S_END_LOC); + //dic.Add("Func", "0"); + //dic.Add("Data", "512"); + //dic.Add("FRow", "0"); + + var res = NDC.ChangeOrder(dic); + LogHelper.Info($"淇敼缁堢偣璐т綅" + JsonConvert.SerializeObject(res)); + if (res.Res.ErrCode != -1) + { + var dics = new Dictionary<string, string>(); + dics.Add("No", TN_Task.S_CODE); + dics.Add("ParamNo", "6"); + dics.Add("Param1", "2"); + var ss = NDC.ChangeOrder(dics); + LogHelper.Info($"灏忚溅鍓嶅線鏂板簱浣� + JsonConvert.SerializeObject(ss)); + LocationHelper.BindingLoc(TN_Task.S_END_LOC, TN_Task.S_CNTR_CODE.Split(',').ToList()); + LocationHelper.LockLoc(TN_Task.S_END_LOC,1); + } + db.CommitTran(); + } + catch (Exception) + { + db.RollbackTran(); + throw; + } + } + + } + internal static void UpdateAgvNo(WCSTask mst, string forkliftNo) { @@ -555,7 +617,7 @@ dic1.Add("Func", "0"); if (mst.S_TYPE.Contains("鍏ュ簱")) { - dic1.Add("Data", "0x200"); + dic1.Add("Data", "512"); } else { -- Gitblit v1.9.1