| | |
| | | |
| | | tasks.Add(GetTask(WCSCore.Dispatch)); |
| | | //大件呼叫空箱 |
| | | tasks.Add(GetTask(WMSCore.bigMateriala2a)); |
| | | //tasks.Add(GetTask(WMSCore.bigMateriala2a)); |
| | | |
| | | Task.WaitAll(tasks.ToArray()); |
| | | } |
| | |
| | | if (!TaskProcess.Intercept(task)) |
| | | { |
| | | //使用自定义任务推送 |
| | | TaskProcess.SendGZTask(task); |
| | | //TaskProcess.SendGZTask(task); |
| | | TaskProcess.SendXmTask(task); |
| | | |
| | | } |
| | | |
| | | }); |
| | |
| | | |
| | | public string S_OP_NAME { get; set; } |
| | | public string S_WORKSHOP_NO { get; set; } |
| | | |
| | | //存小米任务号 |
| | | public string S_WORKSHOP_NAME { get; set; } |
| | | //public int N_START_LAYER { get; internal set; } |
| | | //public int N_END_LAYER { get; internal set; } |
| | |
| | | using Newtonsoft.Json.Linq; |
| | | using S7.Net; |
| | | using System.Threading.Tasks; |
| | | using HH.WCS.XiaoMi.LISTA.dispatch; |
| | | using static HH.WCS.XiaoMi.LISTA.dispatch.RcsHelper; |
| | | |
| | | namespace HH.WCS.XiaoMi.process |
| | | { |
| | |
| | | else { result = true; } |
| | | return result; |
| | | } |
| | | //小米推送任务 |
| | | internal static bool SendXmTask(WCSTask mst) |
| | | { |
| | | var result = false; |
| | | var taskState = mst.N_B_STATE; |
| | | if (taskState == 0) |
| | | { |
| | | Console.WriteLine($"任务mst {JsonConvert.SerializeObject(mst)}"); |
| | | LogHelper.Info($"任务mst {JsonConvert.SerializeObject(mst)}", "任务"); |
| | | var startLoc = LocationHelper.GetLoc(mst.S_START_LOC); |
| | | var endLoc = LocationHelper.GetLoc(mst.S_END_LOC); |
| | | if (startLoc != null && endLoc != null) |
| | | { |
| | | string src = $"\"src\":\"{startLoc.S_AGV_SITE}\","; |
| | | string dst = $"\"dst\":\"{endLoc.S_AGV_SITE}\""; |
| | | string carrier_type_id = $"\"carrier_type_id\":\"-99\""; |
| | | 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; |
| | | |
| | | var res = RcsHelper.CreateAntsOrder(model); |
| | | if (res) |
| | | { |
| | | //更新任务状态 |
| | | mst.N_B_STATE = 1; |
| | | //mst.S_EQ_TASK_CODE = res.ToString(); |
| | | WCSHelper.UpdateStatus(mst); |
| | | WCSHelper.UpdateEQNo(mst); |
| | | ////推送成功,修改任务状态 |
| | | //TaskHelper.UpdateStatus(mst, "已推送"); |
| | | ////推送成功,修改国自ID |
| | | //TaskHelper.UpdateGzId(mst, res); |
| | | LogHelper.Info($"任务mst {mst.S_CODE}推送成功", "任务"); |
| | | result = true; |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | else { result = true; } |
| | | return result; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 创建搬运任务 |
| | |
| | | |
| | | |
| | | var res = WCSHelper.CreateTask(taskNo, start.Trim(), end.Trim(), taskType, priority, trayCodes, trayCarryCount, startLayer, endLayer); |
| | | if (res) |
| | | { |
| | | result = true; |
| | | //任务创建成功,起点货位出库锁定,终点货位入库锁定 |
| | | LocationHelper.LockLoc(start, 2); |
| | | LocationHelper.LockLoc(end, 1); |
| | | } |
| | | return result; |
| | | } |
| | | //小米大件 |
| | | public static bool CreateTransportDj(string start, string end, string taskType, string cntrs,string orderName, int startLayer, int endLayer, int trayCarryCount = 1, int priority = 1) |
| | | { |
| | | var result = false; |
| | | var trayCodes = cntrs; |
| | | var taskNo = DateTime.Now.Ticks.ToString(); |
| | | |
| | | |
| | | var res = WCSHelper.CreateTaskDj(taskNo, start.Trim(), end.Trim(), taskType, priority, trayCodes, orderName,trayCarryCount, startLayer, endLayer); |
| | | if (res) |
| | | { |
| | | result = true; |
| | |
| | | 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.CreateTransport(startLoc.S_CODE, endLocStr, model.ts_name, locCntrRel.S_CNTR_CODE, 1, 1); |
| | | var res = TaskProcess.CreateTransportDj(startLoc.S_CODE, endLocStr, model.ts_name, locCntrRel.S_CNTR_CODE, model.order_name, 1, 1); |
| | | if (!res) |
| | | { |
| | | return new TaskResponse |
| | |
| | | { |
| | | LogHelper.Info($"BindCntrItem============="); |
| | | db.BeginTran(); |
| | | var cir = new CntrItemDetail { S_CNTR_CODE = trayCode, S_ITEM_CODE = itemCode, S_ITEM_NAME = itemName, S_BATCH_NO = itemName, F_QTY = num, S_ITEM_SPEC = issueMode }; |
| | | var cir = new CntrItemDetail { S_CNTR_CODE = trayCode, S_ITEM_CODE = itemCode, S_ITEM_NAME = itemName, S_BATCH_NO = BatchNo, F_QTY = num, S_ITEM_SPEC = issueMode }; |
| | | db.Insertable<CntrItemDetail>(cir).ExecuteCommand(); |
| | | db.Ado.CommitTran(); |
| | | res = true; |
| | |
| | | N_SCHEDULE_TYPE = 1, |
| | | N_B_STATE = 0, |
| | | S_B_STATE = WCSTask.GetStateStr(0), |
| | | S_CNTR_CODE = cntrInfo |
| | | //N_START_LAYER = startLayer, |
| | | //N_END_LAYER = endLayer, |
| | | //N_CNTR_COUNT = cntrCount |
| | | |
| | | }; |
| | | |
| | | return CreateTask(TN_Task); |
| | | } |
| | | //小米大件 |
| | | internal static bool CreateTaskDj(string no, string from, string to, string taskType, int pri, string cntrInfo,string orderName, int cntrCount = 1, int startLayer = 1, int endLayer = 1) |
| | | { |
| | | var fromLoc = LocationHelper.GetLocation(from); |
| | | var endLoc = LocationHelper.GetLocation(to); |
| | | WCSTask TN_Task = new WCSTask() |
| | | { |
| | | S_CODE = GenerateTaskNo(), |
| | | S_START_AREA = fromLoc.S_AREA_CODE, |
| | | S_END_AREA = endLoc.S_AREA_CODE, |
| | | S_START_LOC = from, |
| | | S_END_LOC = to, |
| | | S_TYPE = taskType, |
| | | S_OP_CODE = no, |
| | | N_PRIORITY = pri, |
| | | N_SCHEDULE_TYPE = 1, |
| | | N_B_STATE = 0, |
| | | S_B_STATE = WCSTask.GetStateStr(0), |
| | | S_CNTR_CODE = cntrInfo, |
| | | //存小米任务号 |
| | | S_WORKSHOP_NO = orderName |
| | | //N_START_LAYER = startLayer, |
| | | //N_END_LAYER = endLayer, |
| | | //N_CNTR_COUNT = cntrCount |