kazelee
2025-05-12 968d603a08117e7e6707ffe07c6da9c325e36c08
Services/AgvService.cs
@@ -11,6 +11,8 @@
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 {
@@ -55,7 +57,7 @@
        }
        /// <summary>
        /// 执行 AGV 任务,查询不到任务返回 <see langword="false"/>(私有方法,内部调用)
        /// 执行 AGV 任务,查询不到任务返回 <see langword="false"/>
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
@@ -81,7 +83,11 @@
                    TaskHelper.UpdateStatus(TN_Task, "取货完成"); // 任务状态改成取货完成
                    TaskHelper.OperateStatus(TN_Task, 4); // 起点容器货位解绑,解锁起点
                    if (TN_Task.S_TYPE == TaskName.成品胶出库) {
                        var nextOutboundTask = Task.Run(() => {
                            OutboundCore.UpdateTaskState(SpotStateCode.任务执行完成);
                        });
                    }
                    break;
                case AgvStateCode.开始卸货:
@@ -93,6 +99,13 @@
                    break;
                case AgvStateCode.完成:
                    TaskHelper.End(TN_Task); // 任务状态改成结束
                    if (TN_Task.S_TYPE == TaskName.抽检) {
                        var checkCompleteTask = Task.Run(() => {
                            CheckCore.UpdateTaskState(SpotStateCode.任务执行完成);
                        });
                    }
                    break;
                case AgvStateCode.异常:
                    TaskHelper.OperateStatus(TN_Task, 7); // 异常处理
@@ -115,15 +128,17 @@
            ModbusHelper.Relink();
            try {
                var prodLineInfo = AppStart.Settings.Config.ProductionLines[0];
                var prodLineDevice = new ProductionLineDevice(prodLineInfo.PlcIp, prodLineInfo.PlcPort);
                if (!prodLineDevice.LoadDeviceStateOk()) {
                    LogHelper.Info("加载设备信息失败");
                }
                var tn_task = db.Queryable<TN_Task>().First(a => a.S_CODE == model.task_no);
                var tn_task = db.Queryable<TN_Task>().First(a => a.S_CODE == model.TaskNo);
                if (tn_task == null) {
                    LogHelper.Info($"任务号 '{model.task_no}' 不存在");
                    LogHelper.Info($"任务号 '{model.TaskNo}' 不存在");
                }
                // 待修改:补充不同分支AGV判断