yanjinhui
2026-03-03 1bca4717433ba325894e279096cfd4989ad9445f
添加给任务日志
已修改2个文件
104 ■■■■ 文件已修改
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/StationMangerService.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/RGVTaskExtend.cs 98 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/StationMangerService.cs
@@ -24,6 +24,12 @@
        {
            return BaseDal.QueryFirst(x => x.StationCode == fromLocationCode && x.StationType == StationTypeEnum.StationType_OnlyInbound.ObjToInt());
        }
        /// <summary>
        /// èŽ·å–å‡ºåº“ç«™å°
        /// </summary>
        /// <param name="stationCode"></param>
        /// <returns></returns>
        public Dt_StationManger GetOutStationInfo(string stationCode)
        {
            return BaseDal.QueryFirst(x => x.StationCode == stationCode && x.StationType == StationTypeEnum.StationType_OnlyOutbound.ObjToInt());
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/RGVTaskExtend.cs
@@ -1,4 +1,5 @@
using Newtonsoft.Json;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Math;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -7,6 +8,7 @@
using WIDESEAWCS_Common;
using WIDESEAWCS_Common.LocationEnum;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Core.Helper;
using WIDESEAWCS_DTO;
@@ -27,6 +29,7 @@
        public void SendRGVInTask(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("未找到四向车任务下发接口配置信息!请检查接口配置");
@@ -42,6 +45,7 @@
                    fOURBOTnewMovePodTask.desType = 2;
                    string response = HttpHelper.Post(apiInfo.ApiAddress, fOURBOTnewMovePodTask.Serialize());
                    FOURBOTReturn fOURBOTReturn = response.DeserializeObject<FOURBOTReturn>();
                    content.Data= fOURBOTReturn;
                    if (fOURBOTReturn.returnCode == 0)
                    {
                        string dataJson = fOURBOTReturn.data.ToString();
@@ -56,10 +60,15 @@
                    }
                }
                _taskService.UpdateData(tasks);
                content.OK();
            }
            catch (Exception ex)
            {
                WriteError(nameof(TaskJob), ex.Message, ex);
                content.Error(ex.Message);
            }
            finally
            {
                _trackloginfoService.AddTrackLog(fOURBOTnewMovePodTask, content, "下发四向车新建入库任务", "","");
            }
        }
        #endregion
@@ -71,6 +80,9 @@
        /// <param name="tasks"></param>
        public void IsMoveTask(List<Dt_Task> tasks)
        {
            object requestData = null;  // æ·»åŠ å˜é‡è®°å½•è¯·æ±‚æ•°æ®
            WebResponseContent content =new WebResponseContent();
            try
            {
                Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(GetBlockPodContentDto)) ?? throw new Exception("未找到四向车任务下发接口配置信息!请检查接口配置");
@@ -88,12 +100,20 @@
                        }
                    }
                };
                requestData = request;  // ä¿å­˜è¯·æ±‚数据用于日志
                //content.candidatePodIDs = tasks.Select(x => x.PalletCode).ToList();
                string response = HttpHelper.Post(apiInfo.ApiAddress, request.Serialize());
                FOURBOTReturn fOURBOTReturn = response.DeserializeObject<FOURBOTReturn>();
                content.Data= fOURBOTReturn;
                if (fOURBOTReturn.returnCode == 0)
                {
                    ReturnBlockPodResultDto getBlockPod = fOURBOTReturn.data as ReturnBlockPodResultDto ?? throw new Exception("未获取到阻碍托盘关系数据");
                    //ReturnBlockPodResultDto getBlockPod = fOURBOTReturn.data as ReturnBlockPodResultDto ?? throw new Exception("未获取到阻碍托盘关系数据");
                    var dataJson = fOURBOTReturn.data.ToString();
                    ReturnBlockPodResultDto? getBlockPod = JsonConvert.DeserializeObject<ReturnBlockPodResultDto>(dataJson);
                    if (getBlockPod.Result.Count==0)
                    {
                        throw new Exception("未获取到阻碍托盘关系数据");
                    }
                    foreach (var Result in getBlockPod.Result)
                    {
                        foreach (var item in Result.outPods)
@@ -103,7 +123,7 @@
                            {
                                task.TaskState = (int)TaskStatusEnum.RGV_WaitMoveToExecute;
                                dt_Tasks.Add(task);
                                AddMoveTask(item.blockPods);
                                AddMoveTask(item.blockPods);//添加移库任务
                            }
                            else
                            {
@@ -113,11 +133,16 @@
                        }
                    }
                    _taskService.UpdateData(dt_Tasks);
                    content.OK();
                }
            }
            catch (Exception ex)
            {
                WriteError(nameof(TaskJob), ex.Message, ex);
                content.Error(ex.Message);
            }
            finally
            {
                _trackloginfoService.AddTrackLog(requestData, content, "处理出库任务是否需要移库", "", "");
            }
        }
        #endregion
@@ -129,6 +154,8 @@
        /// <param name="tasks"></param>
        public void SendCheckShapeingOkTask(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("未找到四向车任务下发接口配置信息!请检查接口配置");
@@ -148,7 +175,7 @@
                            continue;
                        }
                        #endregion
                        var fOURBOTnewMovePodTask = new FOURBOTnewMovePodTask
                        fOURBOTnewMovePodTask = new FOURBOTnewMovePodTask
                        {
                            priority = item.Grade,
                            podID = item.PalletCode,
@@ -162,7 +189,7 @@
                        string response = HttpHelper.Post(apiInfo.ApiAddress, fOURBOTnewMovePodTask.Serialize());
                        var fOURBOTReturn = response.DeserializeObject<FOURBOTReturn>();
                        content.Data = fOURBOTReturn;
                        if (fOURBOTReturn.returnCode == 0)
                        {
                            var data = fOURBOTReturn.data.ToString();
@@ -180,18 +207,21 @@
                                stationManger.IsOccupied = LocationStatusEnum.Free.ObjToInt();
                                stationsToUpdate.Add(stationManger);
                            }
                            content.OK();
                            #endregion
                        }
                        else
                        {
                            item.ExceptionMessage = $"四向车接口返回错误:{fOURBOTReturn.returnMsg}";
                            // è®°å½•失败的任务
                            content.Error($"四向车接口返回错误:{fOURBOTReturn.returnMsg}");
                        }
                    }
                    catch (Exception ex)
                    {
                        item.ExceptionMessage = $"处理任务异常:{ex.Message}";
                        WriteError($"{nameof(TaskJob)}-{item.TaskId}", ex.Message, ex);
                        //WriteError($"{nameof(TaskJob)}-{item.TaskId}", ex.Message, ex);
                        content.Error($"四向车接口返回错误:{ex.Message}");
                    }
                    tasksToUpdate.Add(item);
                } 
@@ -224,6 +254,11 @@
            catch (Exception ex)
            {
                WriteError(nameof(TaskJob), ex.Message, ex);
                content.Error($"下发外形检测任务失败{ex.Message}");
            }
            finally
            {
                _trackloginfoService.AddTrackLog(fOURBOTnewMovePodTask, content, "下发外形检测任务失败", "", "");
            }
        }
        #endregion
@@ -232,6 +267,7 @@
        public void SendCheckShapeingNGTask(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("未找到四向车任务下发接口配置信息!请检查接口配置");
@@ -250,6 +286,7 @@
                    fOURBOTnewMovePodTask.desType = 2;
                    string response = HttpHelper.Post(apiInfo.ApiAddress, fOURBOTnewMovePodTask.Serialize());
                    FOURBOTReturn fOURBOTReturn = response.DeserializeObject<FOURBOTReturn>();
                    content.Data = fOURBOTReturn;
                    if (fOURBOTReturn.returnCode == 0)
                    {
                        //FOURBOTnewMovePodTaskResponseData fOURBO = fOURBOTReturn.data as FOURBOTnewMovePodTaskResponseData ?? throw new Exception("未获取到四向车返回的任务ID");
@@ -264,10 +301,15 @@
                    }
                }
                _taskService.UpdateData(tasks);
                content.OK();
            }
            catch (Exception ex)
            {
                WriteError(nameof(TaskJob), ex.Message, ex);
                content.Error(ex.Message);
            }
            finally
            {
                _trackloginfoService.AddTrackLog(fOURBOTnewMovePodTask, content, "下发外形检测失败任务", "", "");
            }
        }
        #endregion
@@ -322,10 +364,12 @@
        #region ä¸‹å‘四向车批量移库任务
        public void SendMoveTasks(List<Dt_Task> tasks)
        {
            try
            {
            WebResponseContent content = new WebResponseContent();
                List<Dt_Task> dt_Tasks = new List<Dt_Task>();
                List<MoveBlockPodContentDto> moveBlocks = new List<MoveBlockPodContentDto>();
            try
            {
                Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(MoveBlockPodContentDto)) ?? throw new Exception("未找到四向车批量搬运阻碍托任务接口配置信息!请检查接口配置");
                foreach (var item in tasks)
                {
@@ -338,23 +382,37 @@
                }
                string response = HttpHelper.Post(apiInfo.ApiAddress, moveBlocks.Serialize());
                FOURBOTReturn fOURBOTReturn = response.DeserializeObject<FOURBOTReturn>();
                content.Data = fOURBOTReturn;
                if (fOURBOTReturn.returnCode == 0)
                {
                    MoveBlockPodsDataDto moveBlockPodsData = fOURBOTReturn.data as MoveBlockPodsDataDto ?? throw new Exception("未获取到四向车批量搬运阻碍托返回的任务ID");
                    string dataJson = fOURBOTReturn.data.ToString();
                    //MoveBlockPodsDataDto moveBlockPodsData = fOURBOTReturn.data as MoveBlockPodsDataDto ?? throw new Exception("未获取到四向车批量搬运阻碍托返回的任务ID");
                    MoveBlockPodsDataDto? moveBlockPodsData = JsonConvert.DeserializeObject<MoveBlockPodsDataDto>(dataJson);
                    if (moveBlockPodsData == null || moveBlockPodsData.succList.Count == 0)
                    {
                        throw new Exception($"未获取到四向车返回的任务ID,返回数据:{response}");
                    }
                    foreach (var item in moveBlockPodsData.succList)
                    {
                        if (item.taskID == 0)
                            continue;  // è·³è¿‡æ— æ•ˆçš„任务ID
                        var task = tasks.First(x => x.PalletCode == item.podID);
                        task.RGVTaskId = item.taskID;
                        task.TaskState = TaskStatusEnum.RGV_MoveTaskSend.ObjToInt();
                        dt_Tasks.Add(task);
                    }
                    _taskService.UpdateData(dt_Tasks);
                    content.OK();
                }
            }
            catch (Exception ex)
            {
                WriteError(nameof(TaskJob), ex.Message, ex);
                content.Error(ex.Message);
            }
            finally
            {
                _trackloginfoService.AddTrackLog(moveBlocks, content, "下发四向车批量移库任务", "", "");
            }
        }
        #endregion
@@ -366,8 +424,11 @@
            {
                foreach (var item in tasks)
                {
                    if (_taskService.Repository.QueryFirst(x => x.Roadway == item.Roadway && x.TaskType == (int)TaskTypeEnum.CPMoveInventory) == null)
                    var takes = _taskService.Repository.QueryFirst(x => x.Roadway == item.Roadway && x.TaskType == (int)TaskTypeEnum.CPMoveInventory);
                    if (takes == null)
                    {
                        item.TaskState = (int)TaskStatusEnum.RGV_WaitSend;
                    }
                }
                _taskService.UpdateData(tasks);
            }
@@ -381,9 +442,10 @@
        #region ä¸‹å‘出库任务
        public void SendOutTask(List<Dt_Task> tasks)
        {
            FOURBOTnewMovePodTask fOURBOTnewMovePodTask = new();
            WebResponseContent content = new WebResponseContent();
            try
            {
                FOURBOTnewMovePodTask fOURBOTnewMovePodTask = new();
                Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(FOURBOTnewMovePodTask)) ?? throw new Exception("未找到四向车任务下发接口配置信息!请检查接口配置");
                foreach (var item in tasks)
                {
@@ -400,6 +462,7 @@
                    fOURBOTnewMovePodTask.desType = 2;
                    string response = HttpHelper.Post(apiInfo.ApiAddress, fOURBOTnewMovePodTask.Serialize());
                    FOURBOTReturn fOURBOTReturn = response.DeserializeObject<FOURBOTReturn>();
                    content.Data= fOURBOTReturn;
                    if (fOURBOTReturn.returnCode == 0)
                    {
                        string dataJson = fOURBOTReturn.data.ToString();
@@ -416,10 +479,15 @@
                    #endregion
                }
                _taskService.UpdateData(tasks);
                content.OK();
            }
            catch (Exception ex)
            {
                WriteError(nameof(TaskJob), ex.Message, ex);
                content.Error(ex.Message);
            }
            finally
            {
                _trackloginfoService.AddTrackLog(fOURBOTnewMovePodTask, content, "下发四向车出库任务", "", "");
            }
        }
        #endregion