From 44007a5e9ef385346d7ae0e107b9f983109ee479 Mon Sep 17 00:00:00 2001 From: zxx <Zxx@HanInfo> Date: 星期五, 11 七月 2025 11:33:37 +0800 Subject: [PATCH] 1 --- HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/api/WmsController.cs | 16 ++-- HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/process/TaskProcess.cs | 146 ++++++++++++++++++++++++------------ HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/ContainerHelper.cs | 29 ++++++ HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/LocationHelper.cs | 37 --------- HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/dispatch/RcsHelper.cs | 3 5 files changed, 133 insertions(+), 98 deletions(-) diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/api/WmsController.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/api/WmsController.cs index a13cca6..3dc0b70 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/api/WmsController.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/api/WmsController.cs @@ -33,14 +33,14 @@ } - //[HttpPost] - //public TaskResponse smallMaterial(smallMaterial model) - //{ - // LogHelper.Info("smallMaterial 鍙傛暟锛� + JsonConvert.SerializeObject(model), "WMSAPI"); - // var res = TaskProcess.smallMaterial(model); - // LogHelper.Info("smallMaterial 杩斿洖锛� + JsonConvert.SerializeObject(res), "WMSAPI"); - // return res; - //} + [HttpPost] + public TaskResponse smallMaterial(smallMaterial model) + { + LogHelper.Info("smallMaterial 鍙傛暟锛� + JsonConvert.SerializeObject(model), "WMSAPI"); + var res = TaskProcess.smallMaterial(model); + LogHelper.Info("smallMaterial 杩斿洖锛� + JsonConvert.SerializeObject(res), "WMSAPI"); + return res; + } } } diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/dispatch/RcsHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/dispatch/RcsHelper.cs index af3780d..6c0fb63 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/dispatch/RcsHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/dispatch/RcsHelper.cs @@ -205,7 +205,8 @@ /// <summary> /// 璁㈠崟鍙傛暟 /// </summary> - public PickingParasModel parameters { get; set; } + //public PickingParasModel parameters { get; set; } + public string parameters { get; set; } /// <summary> /// 璁㈠崟TS鍚嶅瓧 diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/process/TaskProcess.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/process/TaskProcess.cs index ca10fbc..9e8811a 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/process/TaskProcess.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/process/TaskProcess.cs @@ -48,32 +48,14 @@ { Console.WriteLine($"浠诲姟{mst.S_CODE} 璐т綅{mst.S_START_LOC}鍙栬揣瀹屾垚锛岃捣鐐硅В缁戝鍣▄mst.S_CNTR_CODE}"); LogHelper.Info($"浠诲姟{mst.S_CODE} 璐т綅{mst.S_START_LOC}鍙栬揣瀹屾垚锛岃捣鐐硅В缁戝鍣▄mst.S_CNTR_CODE}"); - if (mst.S_FRAME_CODE != null) - { - LocationHelper.UnBindingLocHj(mst.S_START_LOC, mst.S_FRAME_CODE); + LocationHelper.UnBindingLoc(mst.S_START_LOC, mst.S_CNTR_CODE.Split(',').ToList()); - } - else - { - LocationHelper.UnBindingLoc(mst.S_START_LOC, mst.S_CNTR_CODE.Split(',').ToList()); - - } } else { Console.WriteLine($"浠诲姟{mst.S_CODE} 璐т綅{mst.S_END_LOC}鍗歌揣瀹屾垚锛岀粓鐐圭粦瀹氬鍣▄mst.S_CNTR_CODE}"); LogHelper.Info($"浠诲姟{mst.S_CODE} 璐т綅{mst.S_END_LOC}鍗歌揣瀹屾垚锛岀粓鐐圭粦瀹氬鍣▄mst.S_CNTR_CODE}"); - //濡傛灉璐ф灦鏈夊�鍒欑粦璐ф灦 - if (mst.S_FRAME_CODE != null) - { - LocationHelper.BindingLocHj(mst.S_END_LOC, mst.S_FRAME_CODE); - - } - else - { - LocationHelper.BindingLoc(mst.S_END_LOC, mst.S_CNTR_CODE.Split(',').ToList()); - - } + LocationHelper.BindingLoc(mst.S_END_LOC, mst.S_CNTR_CODE.Split(',').ToList()); } } @@ -389,26 +371,89 @@ //var endLoc = LocationHelper.GetLoc(mst.S_END_LOC); if (mst.S_START_LOC != null && mst.S_END_LOC != null) { - string src = $"\"src\":\"{mst.S_START_LOC}\","; - string dst = $"\"dst\":\"{mst.S_END_LOC}\","; - string carrier_type_id = $"\"carrier_type_id\":\"1\""; - string parmeS = "{"; - string parmeD = "}"; - string parme = parmeS + src + dst + carrier_type_id + parmeD; + bool res = false; + if (mst.S_TYPE == "澶т欢") + { + string src = $"\"src\":\"{mst.S_START_LOC}\","; + string dst = $"\"dst\":\"{mst.S_END_LOC}\","; + string carrier_type_id = $"\"carrier_type_id\":\"1\""; + string parmeS = "{"; + string parmeD = "}"; + string parme = parmeS + src + dst + carrier_type_id + parmeD; - LogHelper.Info($"鎺ㄩ�浠诲姟鍙傛暟{parme}", "浠诲姟"); - AntsTaskModel model = new AntsTaskModel(); - model.order_name = mst.S_CODE; - model.priority = 1; - model.dead_line = DateTime.Now.ToString(); - model.ts_name = mst.S_TYPE; - model.parameters = parme; - //model.parameters = new AntsParasModel { - // src = mst.S_START_LOC, - // dst = mst.S_END_LOC, - // carrier_type_id="-99" - //}; - var res = RcsHelper.CreateAntsOrder(model); + LogHelper.Info($"鎺ㄩ�浠诲姟鍙傛暟{parme}", "浠诲姟"); + AntsTaskModel model = new AntsTaskModel(); + model.order_name = mst.S_CODE; + model.priority = 1; + model.dead_line = DateTime.Now.ToString(); + model.ts_name = mst.S_TYPE; + model.parameters = parme; + //model.parameters = new AntsParasModel { + // src = mst.S_START_LOC, + // dst = mst.S_END_LOC, + // carrier_type_id="-99" + //}; + res = RcsHelper.CreateAntsOrder(model); + } + else if (mst.S_TYPE == "灏忎欢閫氱敤杞﹀瀷") + { + string src = $"\"src\":\"{mst.S_START_LOC}\","; + string dst = $"\"dst\":\"{mst.S_END_LOC}\","; + string car_type = $"\"car_type\":\"1\","; + string src_ort = $"\"src_ort\":\"-1\","; + string dst_ort = $"\"dst_ort\":\"-1\""; + string parmeS = "{"; + string parmeD = "}"; + string parme = parmeS + src + dst + car_type + src_ort + dst_ort + parmeD; + + LogHelper.Info($"鎺ㄩ�浠诲姟鍙傛暟{parme}", "浠诲姟"); + + PickingTaskModel model = new PickingTaskModel(); + model.order_name = mst.S_CODE; + model.priority = "1"; + model.dead_line = DateTime.Now.ToString(); + model.ts_name = mst.S_TYPE; + model.parameters = parme; + //model.parameters = new AntsParasModel { + // src = mst.S_START_LOC, + // dst = mst.S_END_LOC, + // carrier_type_id="-99" + //}; + res = RcsHelper.CreatePickingOrder(model); + } + else if (mst.S_TYPE == "inbound") + { + string tote_id = $"\"tote_id\":\"{mst.S_FRAME_CODE}\","; + string task_type = $"\"task_type\":\"{mst.S_TYPE}\","; + string src = $"\"src\":\"{mst.S_START_LOC}\","; + string dst = $"\"dst\":\"{mst.S_END_LOC}\","; + + string extra_info = $"\"extra_info\":"; + string layer = $"\"layer\":[1,2,3,4],"; + string put = $"\"put\":true"; + string parmeS = "{"; + string parmeD = "}"; + string parmezS = "["; + string parmezD = "]"; + string parme = parmeS + src + dst + extra_info + parmeS + parmezS + layer + put + parmeD + parmezD + parmeD; + + LogHelper.Info($"鎺ㄩ�浠诲姟鍙傛暟{parme}", "浠诲姟"); + + PickingTaskModel model = new PickingTaskModel(); + model.order_name = mst.S_CODE; + model.priority = "1"; + model.dead_line = DateTime.Now.ToString(); + model.ts_name = mst.S_TYPE; + model.parameters = parme; + //model.parameters = new AntsParasModel { + // src = mst.S_START_LOC, + // dst = mst.S_END_LOC, + // carrier_type_id="-99" + //}; + res = RcsHelper.CreatePickingOrder(model); + } + + if (res) { //鏇存柊浠诲姟鐘舵� @@ -1038,8 +1083,8 @@ var locCntrRel = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == startLoc.S_CODE).First(); //鍒涘缓浠诲姟 - LogHelper.Info($"鍒涘缓浠诲姟 璧风偣:{startLoc.S_CODE}缁堢偣:{endLocStr}", model.ts_name); - var res = TaskProcess.CreateTransportDj(startLoc.S_CODE, endLocStr, model.ts_name, locCntrRel.S_CNTR_CODE, model.order_name, 1, 1); + LogHelper.Info($"鍒涘缓浠诲姟 璧风偣:{startLoc.S_CODE}缁堢偣:{endLocStr}", "澶т欢"); + var res = TaskProcess.CreateTransportDj(startLoc.S_CODE, endLocStr, "澶т欢", locCntrRel.S_CNTR_CODE, model.order_name, 1, 1); if (!res) { return new TaskResponse @@ -1091,9 +1136,7 @@ string Message = null; //鎷嗗垎鎴愪袱鏉′换鍔★紝涓�潯鏄枡鏋跺埌鎸囧畾鐨勭紦瀛樺尯锛屼簩鏄枡鏋朵笂鐨勬墭鐩樺埌鎸囧畾鐨勫伐浣嶏紙灏忕背wcs浼狅級涓�澶�- var startFrame = db.Queryable<LocFrameRel>().Where(a => a.S_LOC_CODE == model.taskList[0].parameters.src).First(); - - var startLoc = db.Queryable<Location>().Where(a => a.S_CODE == startFrame.S_FRAME_CODE).First(); + var startLoc = db.Queryable<Location>().Where(a => a.S_CODE == model.taskList[0].parameters.src).First(); if (startLoc == null || startLoc.N_LOCK_STATE != 0) { return new TaskResponse @@ -1104,11 +1147,11 @@ var endLoc = TaskProcess.InWorkTransport(model.shippingRoute); if (endLoc != null) { - //鍒涘缓鍒扮紦瀛樺尯浠诲姟 - var locCntrRel = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == startLoc.S_CODE).First(); + ////鍒涘缓鍒扮紦瀛樺尯浠诲姟 + //var locCntrRel = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == startLoc.S_CODE).First(); //鍒涘缓浠诲姟 - LogHelper.Info($"鍒涘缓浠诲姟 璧风偣:{startLoc.S_CODE}缁堢偣:{endLoc.S_CODE}", "鏂欐灦鍒扮紦瀛樺尯"); - var res = TaskProcess.CreateTransportHj(startLoc.S_CODE, endLoc.S_CODE, "鏂欐灦鍒扮紦瀛樺尯", locCntrRel.S_FRAME_CODE, 1, 1); + LogHelper.Info($"鍒涘缓浠诲姟 璧风偣:{startLoc.S_CODE}缁堢偣:{endLoc.S_CODE}", "灏忎欢閫氱敤杞﹀瀷"); + var res = TaskProcess.CreateTransportDj(startLoc.S_CODE, endLoc.S_CODE, "灏忎欢閫氱敤杞﹀瀷", model.rackNumber, "", 1, 1); if (!res) { return new TaskResponse @@ -1122,6 +1165,9 @@ { if (tasklist.ts_name == "p2p") { + //鍏堢粦瀹氭枡鏋跺拰鏂欑浣�+ ContainerHelper.BindLocCntrsXmLj(tasklist.parameters.src, model.rackNumber); + var startloc = db.Queryable<Location>().Where(a => a.S_CODE == tasklist.rackPosition).First(); if (startloc == null || startloc.N_LOCK_STATE != 0) { @@ -1139,8 +1185,8 @@ var locCntrRel = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == startloc.S_CODE).First(); //鍒涘缓浠诲姟 - LogHelper.Info($"鍒涘缓浠诲姟 璧风偣:{startloc.S_CODE}缁堢偣:{endlocstr}", tasklist.ts_name); - var res = TaskProcess.CreateTransportDj(startloc.S_CODE, endlocstr, tasklist.ts_name, locCntrRel.S_CNTR_CODE, tasklist.order_name, 1, 1); + LogHelper.Info($"鍒涘缓浠诲姟 璧风偣:{startloc.S_CODE}缁堢偣:{endlocstr}", "inbound"); + var res = TaskProcess.CreateTransportDj(startloc.S_CODE, endlocstr, "inbound", locCntrRel.S_CNTR_CODE, tasklist.order_name, 1, 1); if (!res) { return new TaskResponse diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/ContainerHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/ContainerHelper.cs index fbf7996..d350e92 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/ContainerHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/ContainerHelper.cs @@ -558,8 +558,8 @@ string cntrCode = list[i]; if (db.Queryable<LocCntrRel>().Count(a => a.S_CNTR_CODE.Trim() == cntrCode) == 0) { - var cir = new LocCntrRel { S_LOC_CODE = loc, S_CNTR_CODE = cntrCode}; - var con = new Container { S_CODE = cntrCode,N_DETAIL_COUNT = 1,C_FULL="2" };//榛樿婊�涓诲姩缁戝畾鏈嶅姟鐢�+ var cir = new LocCntrRel { S_LOC_CODE = loc, S_CNTR_CODE = cntrCode }; + var con = new Container { S_CODE = cntrCode, N_DETAIL_COUNT = 1, C_FULL = "2" };//榛樿婊�涓诲姩缁戝畾鏈嶅姟鐢� db.Insertable<LocCntrRel>(cir).ExecuteCommand(); db.Insertable<Container>(con).ExecuteCommand(); if (!string.IsNullOrEmpty(itemCode)) @@ -612,11 +612,34 @@ return result; } /// <summary> + /// 灏忕背 缁戝畾鏂欐灦鍜屾枡绠变綅 + /// </summary> + /// <param name="cntr"></param> + /// <returns></returns> + internal static bool BindLocCntrsXmLj(string loc, string frame) + { + bool result = true; + var db = new SqlHelper<object>().GetInstance(); + + if (!string.IsNullOrEmpty(frame)) + { + string cntrCode = frame; + if (db.Queryable<LocFrameRel>().Count(a => a.S_LOC_CODE.Trim() == loc&& a.S_FRAME_CODE.Trim() == frame) == 0) + { + var cir = new LocFrameRel { S_LOC_CODE = loc, S_FRAME_CODE = frame }; + db.Insertable<LocFrameRel>(cir).ExecuteCommand(); + } + } + return result; + } + + + /// <summary> /// 缁戝畾璐т綅瀹瑰櫒琛� /// </summary> /// <param name="cntr"></param> /// <returns></returns> - internal static bool BindLocCntrs(string loc, string cntr, string itemCode, string itemName,int S_CK) + internal static bool BindLocCntrs(string loc, string cntr, string itemCode, string itemName, int S_CK) { bool result = true; List<string> list = new List<string>(cntr.Split(',')); diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/LocationHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/LocationHelper.cs index 07d6121..a46b499 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/LocationHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/LocationHelper.cs @@ -469,42 +469,7 @@ } return res; } - /// <summary> - /// 璐т綅缁戝畾璐ф灦 灏忕背 - /// </summary> - /// <param name="loc"></param> - /// <param name="cntrs"></param> - /// <returns></returns> - public static bool BindingLocHj(string loc, string frame) - { - var res = false; - var db = new SqlHelper<object>().GetInstance(); - var location = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == loc).First(); - try - { - var lcrList = db.Queryable<LocCntrRel>().Includes(a => a.Container).Where(a => a.S_LOC_CODE.Trim() == loc).ToList(); - db.BeginTran(); - int count = 0; - if (lcrList.Count(b => b.S_CNTR_CODE.Trim() == frame) == 0) - { - db.Insertable<LocCntrRel>(new LocCntrRel { S_LOC_CODE = loc, S_FRAME_CODE = frame }).ExecuteCommand(); - count++; - } - location.N_CURRENT_NUM = lcrList.Count + count; - location.N_LOCK_STATE = 0; - location.S_LOCK_STATE = "鏃�; - db.Updateable(location).UpdateColumns(it => new { it.N_CURRENT_NUM, it.S_LOCK_STATE, it.N_LOCK_STATE }).ExecuteCommand(); - - db.CommitTran(); - res = true; - } - catch (Exception ex) - { - Console.WriteLine(ex.Message); - db.RollbackTran(); - } - return res; - } + /// <summary> /// 鍒ゆ柇閫昏緫搴撳尯鏄惁鏈夊彲鐢ㄨ揣浣� /// </summary> -- Gitblit v1.9.1