dengjunjie
2026-03-10 441e6f4ff70d8702b8842b33941658df13288ce5
优化四向车入库逻辑
已修改3个文件
114 ■■■■ 文件已修改
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/RGVTaskExtend.cs 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskExtend.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -1125,28 +1125,28 @@
                #endregion
                #region åˆ›å»ºå››å‘车任务
                var task = BaseDal.QueryFirst(x => x.PalletCode == iQC.ContainerCode && x.SourceAddress == iQC.StationCode && x.TaskState == (int)TaskStatusEnum.New);
                //var task = BaseDal.QueryFirst(x => x.PalletCode == iQC.ContainerCode && x.SourceAddress == iQC.StationCode && x.TaskState == (int)TaskStatusEnum.New);
                #endregion
                #region å‘¼å«å››å‘车
                apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(FOURBOTnewMovePodTask)) ?? throw new Exception("未找到四向车任务下发接口配置信息!请检查接口配置");
                FOURBOTnewMovePodTask fOURBOTnewMovePodTask = new()
                {
                    priority = task.Grade,
                    podID = task.PalletCode,
                    //desNodeID = task.SourceAddress,
                    desExt = new
                    {
                        unload = 0//是否放下容器,0否1是
                    },
                    desStationCodes = task.SourceAddress,
                    desType = 5
                };
                response = HttpHelper.Post(apiInfo.ApiAddress, fOURBOTnewMovePodTask.Serialize());
                fOURBOTReturn = response.DeserializeObject<FOURBOTReturn>();
                content.Data = fOURBOTReturn;
                if (fOURBOTReturn.returnCode != 0) throw new Exception(fOURBOTReturn.returnUserMsg);
                task.TaskState = (int)TaskStatusEnum.Execut;
                BaseDal.UpdateData(task);
                //apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(FOURBOTnewMovePodTask)) ?? throw new Exception("未找到四向车任务下发接口配置信息!请检查接口配置");
                //FOURBOTnewMovePodTask fOURBOTnewMovePodTask = new()
                //{
                //    priority = task.Grade,
                //    podID = task.PalletCode,
                //    //desNodeID = task.SourceAddress,
                //    desExt = new
                //    {
                //        unload = 0//是否放下容器,0否1是
                //    },
                //    desStationCodes = task.SourceAddress,
                //    desType = 5
                //};
                //response = HttpHelper.Post(apiInfo.ApiAddress, fOURBOTnewMovePodTask.Serialize());
                //fOURBOTReturn = response.DeserializeObject<FOURBOTReturn>();
                //content.Data = fOURBOTReturn;
                //if (fOURBOTReturn.returnCode != 0) throw new Exception(fOURBOTReturn.returnUserMsg);
                //task.TaskState = (int)TaskStatusEnum.Execut;
                //BaseDal.UpdateData(task);
                #endregion
                return WebResponseContent.Instance.OK();
            }
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/RGVTaskExtend.cs
@@ -20,13 +20,75 @@
{
    public partial class TaskJob
    {
        #region ä¸‹å‘四向车入库任务
        /// <summary>
        /// ä¸‹å‘四向车新建入库任务
        /// </summary>
        /// <param name="tasks"></param>
        public void SendRGVInTask(List<Dt_Task> tasks)
        public void SendRGVNewInTask(List<Dt_Task> tasks)
        {
            FOURBOTnewMovePodTask fOURBOTnewMovePodTask = new();
            WebResponseContent content = new WebResponseContent();
            try
            {
                Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(FOURBOTnewMovePodTask)) ?? throw new Exception("未找到四向车任务下发接口配置信息!请检查接口配置");
                int i = 0;
                foreach (var task in tasks)
                {
                    i++;
                    fOURBOTnewMovePodTask = new()
                    {
                        priority = task.Grade,
                        podID = task.PalletCode,
                        desExt = new
                        {
                            unload = 0//是否放下容器,0否1是
                        },
                        desStationCodes = task.SourceAddress,
                        desType = 5
                    };
                    fOURBOTnewMovePodTask.requestID += i;
                    try
                    {
                        string response = HttpHelper.Post(apiInfo.ApiAddress, fOURBOTnewMovePodTask.Serialize());
                        FOURBOTReturn fOURBOTReturn = response.DeserializeObject<FOURBOTReturn>();
                        content.Data = fOURBOTReturn;
                        if (fOURBOTReturn.returnCode != 0) throw new Exception(fOURBOTReturn.returnUserMsg);
                        string dataJson = fOURBOTReturn.data.ToString();
                        FOURBOTnewMovePodTaskResponseData? fOURBO = JsonConvert.DeserializeObject<FOURBOTnewMovePodTaskResponseData>(dataJson);
                        if (fOURBO == null || fOURBO.taskID == 0)
                        {
                            throw new Exception($"未获取到四向车返回的任务ID,返回数据:{response}");
                        }
                        //FOURBOTnewMovePodTaskResponseData fOURBO = fOURBOTReturn.data as FOURBOTnewMovePodTaskResponseData ?? throw new Exception("未获取到四向车返回的任务ID");
                        task.RGVTaskId = fOURBO.taskID;
                        task.ExceptionMessage = "";
                        task.TaskState = (int)TaskStatusEnum.Execut;
                    }
                    catch (Exception ex)
                    {
                        task.ExceptionMessage = ex.Message;
                    }
                }
                _taskService.UpdateData(tasks);
                content.OK();
            }
            catch (Exception ex)
            {
                content.Error(ex.Message);
            }
            finally
            {
                _trackloginfoService.AddTrackLog(fOURBOTnewMovePodTask, content, "下发四向车新建入库任务", "", "");
            }
        }
        #region
        /// <summary>
        /// ä¸‹å‘四向车外形检测任务
        /// </summary>
        /// <param name="tasks"></param>
        public void SendRGVCheckShapeTask(List<Dt_Task> tasks)
        {
            FOURBOTnewMovePodTask fOURBOTnewMovePodTask = new();
            WebResponseContent content = new WebResponseContent();
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskExtend.cs
@@ -23,7 +23,7 @@
            try
            {
                var newTasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskType == (int)TaskTypeEnum.CPInbound && x.TaskState == (int)TaskStatusEnum.WaiCheckShape).ToList();
                if (newTasks.Count > 0) SendRGVInTask(newTasks);
                if (newTasks.Count > 0) SendRGVCheckShapeTask(newTasks);
                newTasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState == (int)TaskStatusEnum.New).ToList();
                if (newTasks.Count > 0)
                {
@@ -33,8 +33,8 @@
                    #endregion
                    #region æŸ¥æ‰¾RGV任务
                    //Tasks = newTasks.Where(x => x.TaskType == (int)TaskTypeEnum.CPInbound).ToList();
                    //if (Tasks.Count > 0) SendRGVInTask(Tasks);
                    Tasks = newTasks.Where(x => x.TaskType == (int)TaskTypeEnum.CPInbound).ToList();
                    if (Tasks.Count > 0) SendRGVNewInTask(Tasks);
                    Tasks = newTasks.Where(x => x.TaskType == (int)TaskTypeEnum.CPOutbound).ToList();
                    if (Tasks.Count > 0) IsMoveTask(Tasks);
                    #endregion