| | |
| | | { |
| | | 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()); |
| | | } |
| | | |
| | | } |
| | |
| | | //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 = "p2p"; |
| | | 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") |
| | | { |
| | | //查出货架编码 |
| | | var db = new SqlHelper<Object>().GetInstance(); |
| | | var locFrameRel = db.Queryable<LocFrameRel>().Where(a => a.S_LOC_CODE == mst.S_START_LOC).First(); |
| | | string tote_id = $"\"tote_id\":\"{locFrameRel.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 + tote_id + task_type + src + dst + extra_info + parmezS+ parmeS + 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 = "picking_ts"; |
| | | 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) |
| | | { |
| | | //更新任务状态 |
| | |
| | | |
| | | 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 |
| | |
| | | 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 |
| | |
| | | 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(); |
| | | |
| | | //找p2a的任务编码 |
| | | var order_name = model.taskList.Find(s=>s.ts_name=="p2a").order_name; |
| | | //创建任务 |
| | | 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, order_name, 1, 1); |
| | | if (!res) |
| | | { |
| | | return new TaskResponse |
| | |
| | | { |
| | | if (tasklist.ts_name == "p2p") |
| | | { |
| | | //先绑定料架和料箱位 |
| | | ContainerHelper.BindLocCntrsXmLj(tasklist.rackPosition, model.rackNumber); |
| | | |
| | | var startloc = db.Queryable<Location>().Where(a => a.S_CODE == tasklist.rackPosition).First(); |
| | | if (startloc == null || startloc.N_LOCK_STATE != 0) |
| | | { |
| | |
| | | |
| | | 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 |