| | |
| | | using System; |
| | | using System.Threading.Tasks; |
| | | |
| | | using HH.WCS.Mobox3.DSZSH.Consts; |
| | | using HH.WCS.Mobox3.DSZSH.Devices; |
| | | using HH.WCS.Mobox3.DSZSH.Helpers; |
| | | using HH.WCS.Mobox3.DSZSH.Helpers.Model; |
| | | using HH.WCS.Mobox3.DSZSH.Models; |
| | | using HH.WCS.Mobox3.DSZSH.Helper; |
| | | using HH.WCS.Mobox3.DSZSH.ServiceCore; |
| | | |
| | | using Newtonsoft.Json; |
| | | |
| | | using static HH.WCS.Mobox3.DSZSH.Dtos.Request.AgvRequest; |
| | | using static HH.WCS.Mobox3.DSZSH.Dtos.Response.AgvResponse; |
| | | using System.Threading.Tasks; |
| | | using HH.WCS.Mobox3.DSZSH.ServiceCore; |
| | | |
| | | namespace HH.WCS.Mobox3.DSZSH.Services { |
| | | public class AgvService { |
| | | public static ReturnResult OperateAgvTaskStatus(AgvTaskState model) { |
| | | var result = new ReturnResult(); |
| | | try { |
| | | switch (model.State) { |
| | | switch (model.state) { |
| | | case 1023: |
| | | break; |
| | | case 1025: |
| | | |
| | | break; |
| | | case 1012: |
| | | break; |
| | |
| | | if (!AgvTaskProcessOk(model)) { |
| | | // 执行不OK,说明没有找到任务 |
| | | result.ResultCode = 1; |
| | | result.ResultMsg = $"根据Model.No未找到对应的任务,{model.TaskNo}"; |
| | | result.ResultMsg = $"根据Model.No未找到对应的任务,{model.task_no}"; |
| | | LogHelper.Info(result.ResultMsg, "API"); |
| | | return result; |
| | | } |
| | |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | private static bool AgvTaskProcessOk(AgvTaskState model) { |
| | | var TN_Task = TaskHelper.GetTask(model.TaskNo); // 根据当前model编号查询任务 |
| | | var TN_Task = TaskHelper.GetTask(model.task_no); // 根据当前model编号查询任务 |
| | | if (TN_Task == null) { return false; } |
| | | |
| | | if (model.State > 7) { |
| | | if (model.state > 7) { |
| | | //安全请求等 |
| | | TaskHelper.OperateReq(model.TaskNo, model.State, model.ForkliftNo, model.ext_data); |
| | | TaskHelper.OperateReq(model.task_no, model.state, model.forklift_no, model.ext_data); |
| | | return true; |
| | | } |
| | | |
| | | // AGV 任务 134562(7) 状态处理 |
| | | switch (model.State) { |
| | | switch (model.state) { |
| | | case AgvStateCode.执行: |
| | | TaskHelper.Begin(TN_Task, model.ForkliftNo); // 已推送的任务的状态改成执行 |
| | | TaskHelper.Begin(TN_Task, model.forklift_no); // 已推送的任务的状态改成执行 |
| | | break; |
| | | case AgvStateCode.开始取货: |
| | | TaskHelper.UpdateStatus(TN_Task, "开始取货"); // 任务状态改成开始取货 |
| | |
| | | case AgvStateCode.完成: |
| | | TaskHelper.End(TN_Task); // 任务状态改成结束 |
| | | |
| | | if (TN_Task.S_TYPE == TaskName.抽检) { |
| | | if (TN_Task.S_TYPE == TaskName.抽检_出库) { |
| | | var checkCompleteTask = Task.Run(() => { |
| | | CheckCore.UpdateTaskState(SpotStateCode.任务执行完成); |
| | | }); |
| | |
| | | } |
| | | |
| | | // 将AGV执行状态,加入TN_Task_Action表中 |
| | | TaskHelper.AddActionRecord(model.TaskNo, model.State, model.ForkliftNo, model.ext_data); |
| | | TaskHelper.AddActionRecord(model.task_no, model.state, model.forklift_no, model.ext_data); |
| | | //调用第三方接口(如果有)TaskProcess.ReportStatus,添加任务动作关系表 |
| | | |
| | | return true; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | public static ReturnResult SafetyInteraction(SafetyInteractionInfo model) { |
| | | var gzResult = new ReturnResult(); |
| | | var db = DbHelper.GetDbClient(); |
| | |
| | | LogHelper.Info("加载设备信息失败"); |
| | | } |
| | | |
| | | var tn_task = db.Queryable<TN_Task>().First(a => a.S_CODE == model.TaskNo); |
| | | var tn_task = db.Queryable<TN_Task>().First(a => a.S_CODE == model.task_no); |
| | | if (tn_task == null) { |
| | | LogHelper.Info($"任务号 '{model.TaskNo}' 不存在"); |
| | | LogHelper.Info($"任务号 '{model.task_no}' 不存在"); |
| | | } |
| | | |
| | | // 待修改:补充不同分支AGV判断 |