xiazhengtongxue
11 小时以前 75dcfe564467731b993519eb59ce330703ed1d5b
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService/TaskService.Status.cs
@@ -175,4 +175,41 @@
        }
        return null;
    }
    /// <summary>
    /// 根据任务号、当前地址更新任务位置信息
    /// </summary>
    /// <param name="taskNum">任务号</param>
    /// <param name="currentAddress">当前地址</param>
    /// <param name="nextAddress">下一地址</param>
    /// <returns></returns>
    public Dt_Task? UpdatePosition(int taskNum, string currentAddress, string nextAddress)
    {
        try
        {
            if (string.IsNullOrEmpty(currentAddress))
                throw new ArgumentNullException(nameof(currentAddress), "当前地址不能为空");
            Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum && x.CurrentAddress == currentAddress);
            if (task == null) throw new Exception($"未找到该任务信息,任务号:【{taskNum}】");
            string oldCurrentPos = task.CurrentAddress;
            string oldNextPos = task.NextAddress;
            task.CurrentAddress = task.NextAddress;
            task.NextAddress = nextAddress;
            task.ModifyDate = DateTime.Now;
            task.Modifier = "System";
            BaseDal.UpdateData(task);
            _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"系统自动流程,更新当前位置【{oldCurrentPos} ----> {task.CurrentAddress}】和下一位置【{oldNextPos} ----> {task.NextAddress}】");
            return task;
        }
        catch (Exception ex)
        {
            Console.WriteLine($"UpdatePosition 更新任务位置失败,任务号:【{taskNum}】,错误信息:【{ex.Message}】");
        }
        return null;
    }
}