yanjinhui
2026-03-31 0128fce75a5e7cc9afc4bd89ce1966eb2231b69f
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/RGVTaskExtend.cs
@@ -1,6 +1,7 @@
using Newtonsoft.Json;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Math;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -51,7 +52,7 @@
                    {
                        string response = HttpHelper.Post(apiInfo.ApiAddress, fOURBOTnewMovePodTask.Serialize());
                        FOURBOTReturn fOURBOTReturn = response.DeserializeObject<FOURBOTReturn>();
                        content.Data = fOURBOTReturn;
                        content.OK(data: fOURBOTReturn);
                        if (fOURBOTReturn.returnCode != 0) throw new Exception(fOURBOTReturn.returnUserMsg);
                        string dataJson = fOURBOTReturn.data.ToString();
@@ -70,7 +71,16 @@
                        task.ExceptionMessage = ex.Message;
                    }
                }
                _taskService.UpdateData(tasks);
                var uptasks = tasks.Where(task => string.IsNullOrEmpty(task.ExceptionMessage)).ToList();
                if (uptasks.Count() > 0) _taskService.UpdateData(uptasks);
                var errortasks = tasks.Where(task => !string.IsNullOrEmpty(task.ExceptionMessage)).ToList();
                if (errortasks.Count() > 0)
                {
                    foreach (var item in errortasks)
                    {
                        _taskService.ErrorTaskFeedback(item, true);
                    }
                }
                content.OK();
            }
            catch (Exception ex)
@@ -113,7 +123,7 @@
                    fOURBOTnewMovePodTask.desNodeID = item.NextAddress;
                    string response = HttpHelper.Post(apiInfo.ApiAddress, fOURBOTnewMovePodTask.Serialize());
                    FOURBOTReturn fOURBOTReturn = response.DeserializeObject<FOURBOTReturn>();
                    content.Data = fOURBOTReturn;
                    content.OK(data: fOURBOTReturn);
                    if (fOURBOTReturn.returnCode == 0)
                    {
                        string dataJson = fOURBOTReturn.data.ToString();
@@ -136,7 +146,7 @@
            }
            finally
            {
                _trackloginfoService.AddTrackLog(fOURBOTnewMovePodTask, content, "下发四向车新建入库任务", "", "");
                _trackloginfoService.AddTrackLog(fOURBOTnewMovePodTask, content, "下发四向车外形检测任务", "", "");
            }
        }
        #endregion
@@ -172,7 +182,7 @@
                //content.candidatePodIDs = tasks.Select(x => x.PalletCode).ToList();
                string response = HttpHelper.Post(apiInfo.ApiAddress, request.Serialize());
                FOURBOTReturn fOURBOTReturn = response.DeserializeObject<FOURBOTReturn>();
                content.Data = fOURBOTReturn;
                content.OK(data: fOURBOTReturn);
                if (fOURBOTReturn.returnCode == 0)
                {
                    //ReturnBlockPodResultDto getBlockPod = fOURBOTReturn.data as ReturnBlockPodResultDto ?? throw new Exception("未获取到阻碍托盘关系数据");
@@ -188,7 +198,12 @@
                        {
                            var task = tasks.First(x => x.PalletCode == item.outPod);
                            if (item.blockPods != null && item.blockPods.Count > 0)
                                item.blockPods = item.blockPods.Except(PalletCodes).ToList();
                            if (item.blockPods != null && item.blockPods.Count > 0)
                            {
                                #region åˆ¤æ–­é˜»ç¢æ‰˜æ˜¯å¦ä¸ºå‡ºåº“任务
                                //var except = item.blockPods.Except(PalletCodes).ToList();
                                #endregion
                                var responseContent = AddMoveTask(item.blockPods, task);//添加移库任务
                                if (!responseContent.Status) task.ExceptionMessage = responseContent.Message;
                                else task.TaskState = (int)TaskStatusEnum.RGV_WaitMoveToExecute;
@@ -266,7 +281,7 @@
                            string response = HttpHelper.Post(apiInfo.ApiAddress, fOURBOTnewMovePodTask.Serialize());
                            var fOURBOTReturn = response.DeserializeObject<FOURBOTReturn>();
                            content.Data = fOURBOTReturn;
                            content.OK(data: fOURBOTReturn);
                            if (fOURBOTReturn.returnCode == 0)
                            {
                                var data = fOURBOTReturn.data.ToString();
@@ -278,12 +293,12 @@
                                locationsToUpdate.Add(rGVLocationInfo);
                                #region é‡Šæ”¾å…¥åº“站台
                                var stationManger = _stationMangerService.GetInStationInfo(item.SourceAddress);
                                if (stationManger != null)
                                {
                                    stationManger.IsOccupied = LocationStatusEnum.Free.ObjToInt();
                                    stationsToUpdate.Add(stationManger);
                                }
                                //var stationManger = _stationMangerService.GetInStationInfo(item.SourceAddress);
                                //if (stationManger != null)
                                //{
                                //    stationManger.IsOccupied = LocationStatusEnum.Free.ObjToInt();
                                //    stationsToUpdate.Add(stationManger);
                                //}
                                content.OK();
                                #endregion
                            }
@@ -386,8 +401,8 @@
                            _taskService.UpdateData(tasksToUpdate);
                        if (locationsToUpdate.Any())
                            _rGVLocationInfoService.UpdateData(locationsToUpdate);
                        if (stationsToUpdate.Any())
                            _stationMangerService.UpdateData(stationsToUpdate);
                        //if (stationsToUpdate.Any())
                        //    _stationMangerService.UpdateData(stationsToUpdate);
                        _unitOfWorkManage.CommitTran();
                    }
@@ -406,7 +421,7 @@
            }
            finally
            {
                _trackloginfoService.AddTrackLog(fOURBOTnewMovePodTask, content, "下发外形检测任务失败", "", "");
                _trackloginfoService.AddTrackLog(fOURBOTnewMovePodTask, content, "下发外形检测成功任务", "", "");
            }
        }
        #endregion
@@ -445,6 +460,7 @@
                        //FOURBOTnewMovePodTaskResponseData fOURBO = fOURBOTReturn.data as FOURBOTnewMovePodTaskResponseData ?? throw new Exception("未获取到四向车返回的任务ID");
                        string dataJson = fOURBOTReturn.data.ToString();
                        FOURBOTnewMovePodTaskResponseData? fOURBO = JsonConvert.DeserializeObject<FOURBOTnewMovePodTaskResponseData>(dataJson);
                        content.OK(data: fOURBO);
                        if (fOURBO == null || fOURBO.taskID == 0)
                        {
                            throw new Exception($"未获取到四向车返回的任务ID,返回数据:{response}");
@@ -483,7 +499,7 @@
                tasks.ForEach(x =>
                {
                    x.TaskNum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum));
                    x.WMSTaskNum = task.WMSTaskNum;
                    //x.WMSTaskNum = task.WMSTaskNum;
                });
                rGVLocationInfos.ForEach(x =>
                {
@@ -537,7 +553,7 @@
                }
                string response = HttpHelper.Post(apiInfo.ApiAddress, moveBlock.Serialize());
                FOURBOTReturn fOURBOTReturn = response.DeserializeObject<FOURBOTReturn>();
                content.Data = fOURBOTReturn;
                content.OK(data: fOURBOTReturn);
                if (fOURBOTReturn.returnCode == 0)
                {
                    string dataJson = fOURBOTReturn.data.ToString();
@@ -607,8 +623,12 @@
                {
                    i++;
                    var stationManger = _stationMangerService.GetOutStationInfo(item.TargetAddress);
                    //if (stationManger.IsOccupied != LocationStatusEnum.Free.ObjToInt())
                    //{
                    //    item.ExceptionMessage = $"出库站台【{stationManger.StationCode}】被占用";
                    //    continue;
                    //}
                    item.NextAddress = stationManger.StationCode;
                    if (stationManger.IsOccupied != LocationStatusEnum.Free.ObjToInt()) continue;
                    #region ä¸‹å‘出库任务
                    fOURBOTnewMovePodTask.priority = item.Grade;
                    fOURBOTnewMovePodTask.podID = item.PalletCode;
@@ -626,7 +646,7 @@
                    fOURBOTnewMovePodTask.requestID = DateTime.Now.ToString("yyyyMMddHHmmss") + i;
                    string response = HttpHelper.Post(apiInfo.ApiAddress, fOURBOTnewMovePodTask.Serialize());
                    FOURBOTReturn fOURBOTReturn = response.DeserializeObject<FOURBOTReturn>();
                    content.Data = fOURBOTReturn;
                    content.OK(data: fOURBOTReturn);
                    if (fOURBOTReturn.returnCode == 0)
                    {
                        string dataJson = fOURBOTReturn.data.ToString();
@@ -637,8 +657,8 @@
                        }
                        item.RGVTaskId = fOURBO.taskID;
                        item.TaskState = (int)TaskStatusEnum.Execut;
                        stationManger.IsOccupied = LocationStatusEnum.Lock.ObjToInt();
                        _stationMangerService.UpdateData(stationManger);
                        //stationManger.IsOccupied = LocationStatusEnum.Lock.ObjToInt();
                        //_stationMangerService.UpdateData(stationManger);
                    }
                    #endregion
                }