kazelee
2025-05-15 1af49bdb3cdaa44a7e44ebdc843fb8180596365f
Services/AgvService.cs
@@ -1,28 +1,26 @@
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;
@@ -35,7 +33,7 @@
                        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;
                        }
@@ -62,19 +60,19 @@
        /// <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, "开始取货"); // 任务状态改成开始取货
@@ -100,7 +98,7 @@
                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.任务执行完成);
                        });
@@ -114,14 +112,12 @@
            }
            // 将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();
@@ -136,9 +132,9 @@
                    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判断