0128fce75a5e7cc9afc4bd89ce1966eb2231b69f..43701568a4a90b3a7a471ac0b34222b1df3efd22
2026-04-02 yanjinhui
1
437015 对比 | 目录
2026-04-02 yanjinhui
优化
952a65 对比 | 目录
2026-04-01 dengjunjie
1
4a574c 对比 | 目录
2026-04-01 dengjunjie
优化WMS下发成品入库任务时,判断终点区域是否有空货位
bf1419 对比 | 目录
已修改13个文件
313 ■■■■ 文件已修改
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/HoistEnum.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/RgvCommand.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/AGV/HIKROBOT/CancelHIKROBOTTask.cs 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_HKLocationInfo.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/HKTaskMethods.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/RGVTaskMethods.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskMethods.cs 108 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TSJJob.cs 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/RGVTaskExtend.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TestJob.cs 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/HoistEnum.cs
@@ -74,5 +74,19 @@
        /// 4楼出库取箱完成
        /// </summary>
        Outboundboxretrievalcompleted,
        /// <summary>
        /// 3楼入库扫码完成信号
        /// </summary>
        RInScanningCompletionSignal,
        /// <summary>
        /// 4楼出库扫码完成信号
        /// </summary>
        ROutScanningCompletionSignal
    }
}
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/RgvCommand.cs
@@ -64,6 +64,19 @@
        /// </summary>
        R_Spare,
        /// <summary>
        /// è¯·æ±‚进入
        /// </summary>
        RequestToEnter,
        /// <summary>
        /// å±è”½ä¸­
        /// </summary>
        Blocking
    }
}
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs
@@ -148,6 +148,20 @@
        [Description("海康AGV搬运完成")]
        HkTransportCompleted,
        /// <summary>
        /// æµ·åº·AGV进入电梯 23
        /// </summary>
        [Description("海康AGV进入电梯")]
        Hkintolift,
        /// <summary>
        /// æµ·åº·AGV离开电梯 24
        /// </summary>
        [Description("海康AGV离开电梯")]
        HKleavelift,
        #endregion
        #region å››å‘车其他任务状态
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs
@@ -102,6 +102,11 @@
        /// </summary>
        [Description("提升机到线边")]
        F03,
        /// <summary>
        /// çº¿è¾¹åˆ°åº“内
        /// </summary>
        [Description("线边到库内")]
        STURR
    }
    public enum TaskInboundTypeEnum
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/AGV/HIKROBOT/CancelHIKROBOTTask.cs
@@ -23,34 +23,34 @@
        /// </summary>
        public string cancelType { get; set; }
        /// <summary>
        /// å›žåº“的载具编号
        /// </summary>
        public string carrierCode { get; set; }
        ///// <summary>
        ///// å›žåº“的载具编号
        ///// </summary>
        //public string carrierCode { get; set; }
        /// <summary>
        /// æœºå™¨äººç¼–号
        /// </summary>
        public string robotCode { get; set; }
        ///// <summary>
        ///// æœºå™¨äººç¼–号
        ///// </summary>
        //public string robotCode { get; set; }
        /// <summary>
        /// å–消原因
        /// </summary>
        public string reason { get; set; }
        ///// <summary>
        ///// å–消原因
        ///// </summary>
        //public string reason { get; set; }
        /// <summary>
        /// è½¯å–消的回库任务类型
        /// </summary>
        public string returnTaskType { get; set; }
        ///// <summary>
        ///// è½¯å–消的回库任务类型
        ///// </summary>
        //public string returnTaskType { get; set; }
        /// <summary>
        /// å›žåº“目标路径
        /// </summary>
        public List<TargetRouteDto> targetRoute { get; set; } = new List<TargetRouteDto>();
        ///// <summary>
        ///// å›žåº“目标路径
        ///// </summary>
        //public List<TargetRouteDto> targetRoute { get; set; } = new List<TargetRouteDto>();
        /// <summary>
        /// è‡ªå®šä¹‰æ‰©å±•字段
        /// </summary>
        public object extra { get; set; }
        ///// <summary>
        ///// è‡ªå®šä¹‰æ‰©å±•字段
        ///// </summary>
        //public object extra { get; set; }
    }
}
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_HKLocationInfo.cs
@@ -75,7 +75,7 @@
        public int Depth {  get; set; }
        /// <summary>
        /// è´§ä½ç±»åž‹
        /// è´§ä½ç±»åž‹ 1大 3小
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDescription = "货位类型")]
        public int LocationType {  get; set; }
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/HKTaskMethods.cs
@@ -266,6 +266,7 @@
                            hIKROBOTTaskSubmit.targetRoute.Add(targetRoute);
                        }
                        break;
                    case TaskTypeEnum.STURR:
                    case TaskTypeEnum.Q1TSJ4:
                        {
                            TargetRouteDto target = new TargetRouteDto()
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/RGVTaskMethods.cs
@@ -38,6 +38,7 @@
                //    if (LocationInfo.LocationStatus != LocationStatusEnum.Free.ObjToInt()) throw new Exception($"终点货位【{taskDTO.toLocationCode}】货位状态不为空货位");
                //}
                #endregion
                var rGVLocationInfo = _rGVLocationInfoService.GetInFreeLocationInfo(taskDTO.toAreaCode.ObjToInt()) ?? throw new Exception($"未找到终点库区【{taskDTO.toAreaCode}】可用空货位!");
                Dt_StationManger stationManger = _stationMangerService.GetInStationInfo(taskDTO.fromLocationCode) ?? throw new Exception($"未找到起点位置【{taskDTO.fromLocationCode}】站台信息!");
                Dt_Task dt_Task = new()
                {
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskMethods.cs
@@ -78,9 +78,15 @@
                    switch (hIKROBOT.extra.values.method)
                    {
                        case "start":
                            if (task.TaskState==(int)TaskStatusEnum.CallingHKtransportation&& task.TaskType == (int)TaskTypeEnum.Move)
                            if (task.TaskState == (int)TaskStatusEnum.CallingHKtransportation && task.TaskType == (int)TaskTypeEnum.Move)
                            {
                                task.TaskState = (int)TaskStatusEnum.HktransportIng;
                            }
                            else if (task.TaskType == (int)TaskTypeEnum.Q3RK|| task.TaskType == (int)TaskTypeEnum.Q3CK)
                            {
                                UpdateStandStatus(task, task.TargetAddress, LocationStatusEnum.Lock);
                                task.TaskState = (int)TaskStatusEnum.Takeing;
                                TaskFeedback(task, 1);
                            }
                            else
                            {
@@ -90,8 +96,17 @@
                            break;
                        case "outbin"://离开起点
                            {
                                  if (task.TaskType == (int)TaskTypeEnum.Q3RK|| task.TaskType == (int)TaskTypeEnum.Q3CK)
                                {
                                    UpdateStandStatus(task, task.TargetAddress, LocationStatusEnum.Free);
                                    task.TaskState = TaskStatusEnum.TakeFinish.ObjToInt();
                                    TaskFeedback(task, 1);
                                }
                                else
                                {
                                    TaskFromCompleted(task, deviceTypeEnum); //任务状体改为3取货完成,更新起点货位状态,并反馈WMS起点完成
                                }
                                ///判断任务是否跟设备有关
                                TaskFromCompleted(task, deviceTypeEnum); //任务状体改为3取货完成,更新起点货位状态,并反馈WMS起点完成
                            }
                            break;
                        case "finish"://离开提升机
@@ -104,7 +119,7 @@
                                    if (device == null) task.ExceptionMessage = "未找到提升机信息";
                                    else
                                    {
                                        DeviceProDTO? deviceProDTO = device.DeviceProDTOs.FirstOrDefault((DeviceProDTO x) => x.DeviceProParamName == HoistEnum.Inboundboxon.ToString());
                                        DeviceProDTO? deviceProDTO = device.DeviceProDTOs.FirstOrDefault((DeviceProDTO x) => x.DeviceProParamName == HoistEnum.Inboundboxon.ToString());//放到位了
                                        if (device.IsConnected)
                                            device.SetValue(HoistEnum.Inboundboxon, 1);
                                        else
@@ -154,16 +169,22 @@
                                }
                                else if (task.TaskType == TaskTypeEnum.Q3RK.ObjToInt() || task.TaskType == TaskTypeEnum.Q3CK.ObjToInt() && task.TaskState == (int)TaskStatusEnum.AGV_ToExecute)
                                {
                                    if (task.TaskType == TaskTypeEnum.Q3RK.ObjToInt())
                                    if (task.TaskType == TaskTypeEnum.Q3RK.ObjToInt()|| task.TaskType == TaskTypeEnum.Q3RK.ObjToInt())
                                    {
                                        //如果是六楼到一楼就写一个信号给1楼plc告诉他我来入库了
                                        var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "F1") as OtherDevice;
                                        if (device == null) task.ExceptionMessage = "未找到质检门信息";
                                        else
                                        {
                                            if (device.IsConnected)
                                                //写以一个出库完成信号
                                                device.SetValue(QualityInspectionCommandEnum.RequestToEnter, false, task.TargetAddress);
                                            else
                                                task.ExceptionMessage = "质检门信息设备连接失败";
                                        }
                                    }
                                    else
                                    {
                                        //这个就写一个复位状态,告诉它我出库了
                                    }
                                }
                            }
                            break;
@@ -175,6 +196,17 @@
                            break;
                        case "wait"://扫码等待
                            {
                                //要先开启扫码信号
                                var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ") as OtherDevice;
                                if (device == null) task.ExceptionMessage = "未找到提升机信息";
                                else
                                {
                                    if (device.IsConnected)
                                        //写以一个出库完成信号
                                        device.SetValue(HoistEnum.Outboundboxretrievalcompleted, 1, task.SourceAddress);
                                    else
                                        task.ExceptionMessage = "提升机信息设备连接失败";
                                }
                                task.TaskState = (int)TaskStatusEnum.CheckPalletCodeing;
                                BaseDal.UpdateData(task);
                            }
@@ -185,12 +217,35 @@
                                {
                                    task.TaskState = TaskStatusEnum.Finish.ObjToInt();
                                    TaskFeedback(task, 2);
                                    BaseDal.DeleteAndMoveIntoHty(task,OperateTypeEnum.自动完成);
                                    BaseDal.DeleteAndMoveIntoHty(task, OperateTypeEnum.自动完成);
                                }
                                else if (task.TaskType == (int)TaskTypeEnum.Q3RK || task.TaskType == (int)TaskTypeEnum.Q3CK)
                                {
                                    task.TaskState = TaskStatusEnum.Finish.ObjToInt();
                                    TaskFeedback(task, 2);
                                    BaseDal.DeleteAndMoveIntoHty(task, OperateTypeEnum.自动完成);
                                }
                                else
                                {
                                    ///判断任务是否跟设备有关
                                    TaskCompleted(task, deviceTypeEnum);
                                }
                            }
                            break;
                        case "intolift": //进入电梯
                            {
                                //六楼到一楼的入库任务
                                if (task.TaskType==(int)TaskTypeEnum.Q3RK)
                                {
                                    task.TaskState = TaskStatusEnum.Hkintolift.ObjToInt();
                                }
                            }
                            break;
                            case "leavelift": //离开电梯
                            {
                                if (task.TaskType == (int)TaskTypeEnum.Q3RK)
                                {
                                    task.TaskState = TaskStatusEnum.HKleavelift.ObjToInt();
                                }
                            }
                            break;
@@ -491,6 +546,34 @@
        }
        #endregion
        #region æ›´æ–°ä¸€æ¥¼ç«™å°çŠ¶æ€
        public WebResponseContent UpdateStandStatus(Dt_Task task,string stationCode,LocationStatusEnum locationStatusEnum)
        {
            try
            {
                Dt_StationManger? stationManger = _stationMangerService.Repository.QueryFirst(x => x.StationCode == task.TargetAddress);
                //stationManger.IsOccupied = LocationStatusEnum.Lock.ObjToInt();
                if (stationManger != null)
                {
                    if (locationStatusEnum == LocationStatusEnum.Free) //如果起点完成就给货位赋值托盘号
                    {
                        stationManger.IsOccupied = LocationStatusEnum.Lock.ObjToInt();
                    }
                    else
                    {
                        stationManger.IsOccupied = LocationStatusEnum.Free.ObjToInt();
                    }
                    _stationMangerService.UpdateData(stationManger);
                }
                return WebResponseContent.Instance.OK();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        #endregion
        #region ä¸ŠæŠ¥WMS
        public WebResponseContent TaskFeedback(Dt_Task dt_Task, int Status)
        {
@@ -509,7 +592,7 @@
                    boundCompleteFeedback.toLocationCode = dt_Task.TargetAddress;
                    boundCompleteFeedback.status = Status;
                    boundCompleteFeedback.custStatus = "";
                    string response = HttpHelper.Post(apiInfo.ApiAddress, boundCompleteFeedback.Serialize());
                    string response = HttpHelper.Post(apiInfo.ApiAddress,boundCompleteFeedback.Serialize());
                    agvContent = response.DeserializeObject<WMSReturn>();
                    content.OK(data: agvContent);
                    if (agvContent.code != 200)
@@ -556,6 +639,7 @@
                    string response = HttpHelper.Post(apiInfo.ApiAddress, boundCompleteFeedback.Serialize());
                    agvContent = response.DeserializeObject<WMSReturn>();
                    content.OK(data: agvContent);
                    content.Message = dt_Task.ExceptionMessage;
                    if (agvContent.code != 200)
                    {
                        dt_Task.ExceptionMessage = agvContent.message;
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -168,6 +168,7 @@
                                break;
                            #endregion
                            #region æµ·åº·AGV
                            case(int)TaskTypeEnum.STURR:
                            case (int)TaskTypeEnum.Q1TSJ4:
                                content = CreateHKNewInTask(task, item.taskType);
                                objects.Add(content.Data);
@@ -183,6 +184,7 @@
                                content = CarryTask(task, item.taskType);
                                objects.Add(content.Data);
                                break;
                            case (int)TaskTypeEnum.F04:
                            case (int)TaskTypeEnum.F02:
                            case (int)TaskTypeEnum.RK3F:
                            case (int)TaskTypeEnum.CK3F:
@@ -237,7 +239,7 @@
                //四向车
                bool isAGV = dt_Task.TaskType == (int)TaskTypeEnum.CPInbound || dt_Task.TaskType == (int)TaskTypeEnum.CPOutbound;
                //海康
                bool isHK = dt_Task.TaskType == (int)TaskTypeEnum.F01 || dt_Task.TaskType == (int)TaskTypeEnum.RK3F || dt_Task.TaskType == (int)TaskTypeEnum.CK3F || dt_Task.TaskType == (int)TaskTypeEnum.Q1TSJ4 || dt_Task.TaskType == (int)TaskTypeEnum.STU0003 || dt_Task.TaskType == (int)TaskTypeEnum.F02 || dt_Task.TaskType == (int)TaskTypeEnum.CHUKU1 || dt_Task.TaskType == (int)TaskTypeEnum.Q3RK || dt_Task.TaskType == (int)TaskTypeEnum.Q3CK;
                bool isHK = dt_Task.TaskType == (int)TaskTypeEnum.F01 || dt_Task.TaskType == (int)TaskTypeEnum.RK3F || dt_Task.TaskType == (int)TaskTypeEnum.CK3F || dt_Task.TaskType == (int)TaskTypeEnum.Q1TSJ4 || dt_Task.TaskType == (int)TaskTypeEnum.STU0003 || dt_Task.TaskType == (int)TaskTypeEnum.F02 || dt_Task.TaskType == (int)TaskTypeEnum.CHUKU1 || dt_Task.TaskType == (int)TaskTypeEnum.Q3RK || dt_Task.TaskType == (int)TaskTypeEnum.Q3CK||dt_Task.TaskType==(int)TaskTypeEnum.STURR;
                //这里将状态改变了198取消任务
                dt_Task.TaskType = TaskStatusEnum.WMSCancel.ObjToInt();
                #region å‡¯ä¹å£«
@@ -316,7 +318,7 @@
                    cancelHIKROBOTTask = new CancelHIKROBOTTask
                    {
                        robotTaskCode = dt_Task.WMSTaskNum,
                        cancelType = "CANCEL"//原软取消,DROP人工介入(原硬取消)
                        cancelType = "DROP"//原软取消,DROP人工介入(原硬取消)
                    };
                    var headers = new Dictionary<string, string>
                    {
@@ -325,7 +327,7 @@
                    Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(CancelHIKROBOTTask));
                    if (apiInfo == null) throw new Exception("未找到四向车AGV任务下发接口配置信息!请检查接口配置");
                    string response = HttpHelper.Post(apiInfo.ApiAddress, cancelHIKROBOTTask.Serialize(),headers:headers);
                    string response = HttpHelper.Post(apiInfo.ApiAddress, cancelHIKROBOTTask.Serialize(),headers: headers);
                    HIKROBOTReturn hIKROBOTReturn = response.DeserializeObject<HIKROBOTReturn>();
                    content.OK(data: hIKROBOTReturn);
                    if (hIKROBOTReturn.code == "SUCCESS" && hIKROBOTReturn.message == "成功")
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TSJJob.cs
@@ -30,7 +30,7 @@
{
    [DisallowConcurrentExecution]
    public class TSJJob : JobBase, IJob
    {
    {
        private readonly ITaskService _taskService;
        private readonly IStationMangerService _stationMangerService;
        public TSJJob(ITaskService taskService, IStationMangerService stationMangerService)
@@ -146,6 +146,15 @@
                                    }
                                    continue;
                                }
                                if (device.GetValue<HoistEnum, short>(HoistEnum.ROutScanningCompletionSignal, task.SourceAddress) != 1)
                                {
                                    if (task.ExceptionMessage != "4楼提升机出口扫码完成信号没有完成")
                                    {
                                        task.ExceptionMessage = "4楼提升机出口扫码完成信号没有完成";
                                        Uptasks.Add(task);
                                    }
                                    continue;
                                }
                            }
                            //然后调用输送线接口,通知输送线有料箱需要入库,任务举行执行
                            var result = _taskService.Hikvisiontaskscontinue(task.WMSTaskNum);
@@ -174,30 +183,37 @@
                        var Barcode = device.SetValue<HoistEnum, short>(HoistEnum.Codereadingtriggered, 1);
                        //检查3楼入库箱号是多少,然后传给wms
                        var BinNumber = device.GetValue<HoistEnum, string>(HoistEnum.Inboxnumber, RK3FTasks.TargetAddress);
                        //根据读到的箱号进行料箱检验,检验通过就触发读码器读取,如果不通过就抛出异常
                        //var Verification = _taskService.MaterialBoxInspection(RK3FTasks.WMSTaskNum, BinNumber.ToString());
                        //if (!Verification.Status)
                        //{
                        //    if (!(RK3FTasks.ExceptionMessage == Verification.Message))
                        //    {
                        //        RK3FTasks.ExceptionMessage = Verification.Message;
                        //        Uptasks.Add(RK3FTasks);
                        //    }
                        //    //料箱验证写好后,需要更改
                        //    RK3FTasks.TargetAddress = Verification.Data.ToString();
                        //}
                        //如果料箱检验成功就写入读码器的值
                        var result = _taskService.Hikvisiontaskscontinue(RK3FTasks.WMSTaskNum, RK3FTasks.TargetAddress);
                        if (result.Status == false)
                        if (device.GetValue<HoistEnum, short>(HoistEnum.RInScanningCompletionSignal, RK3FTasks.TargetAddress ) !=1 )
                        {
                            if (RK3FTasks.ExceptionMessage != result.Message)
                            {
                                RK3FTasks.ExceptionMessage = result.Message;
                                Uptasks.Add(RK3FTasks);
                            }
                            RK3FTasks.ExceptionMessage = "3楼扫码完成信号没有完成";
                        }
                        RK3FTasks.TaskState = (int)TaskStatusEnum.CheckPalletCodeFinish;
                        else //完成就把任务状态改成托盘号确认完成
                        {
                            //根据读到的箱号进行料箱检验,检验通过就触发读码器读取,如果不通过就抛出异常
                            //var Verification = _taskService.MaterialBoxInspection(RK3FTasks.WMSTaskNum, BinNumber.ToString());
                            //if (!Verification.Status)
                            //{
                            //    if (!(RK3FTasks.ExceptionMessage == Verification.Message))
                            //    {
                            //        RK3FTasks.ExceptionMessage = Verification.Message;
                            //        Uptasks.Add(RK3FTasks);
                            //    }
                            //    //料箱验证写好后,需要更改
                            //    RK3FTasks.TargetAddress = Verification.Data.ToString();
                            //}
                            //如果料箱检验成功就写入读码器的值
                            var result = _taskService.Hikvisiontaskscontinue(RK3FTasks.WMSTaskNum, RK3FTasks.TargetAddress);
                            if (result.Status == false)
                            {
                                if (RK3FTasks.ExceptionMessage != result.Message)
                                {
                                    RK3FTasks.ExceptionMessage = result.Message;
                                    Uptasks.Add(RK3FTasks);
                                }
                            }
                            RK3FTasks.TaskState = (int)TaskStatusEnum.CheckPalletCodeFinish;
                        }
                        Uptasks.Add(RK3FTasks);
                    }
                    #endregion
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/RGVTaskExtend.cs
@@ -47,7 +47,7 @@
                        desStationCodes = task.SourceAddress,
                        desType = 5
                    };
                    fOURBOTnewMovePodTask.requestID += i;
                    fOURBOTnewMovePodTask.requestID += task.TaskId;
                    try
                    {
                        string response = HttpHelper.Post(apiInfo.ApiAddress, fOURBOTnewMovePodTask.Serialize());
@@ -643,7 +643,7 @@
                        autoToRest = 1
                    };
                    fOURBOTnewMovePodTask.desType = 5;
                    fOURBOTnewMovePodTask.requestID = DateTime.Now.ToString("yyyyMMddHHmmss") + i;
                    fOURBOTnewMovePodTask.requestID = DateTime.Now.ToString("yyyyMMddHHmmss") + item.TaskId;
                    string response = HttpHelper.Post(apiInfo.ApiAddress, fOURBOTnewMovePodTask.Serialize());
                    FOURBOTReturn fOURBOTReturn = response.DeserializeObject<FOURBOTReturn>();
                    content.OK(data: fOURBOTReturn);
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TestJob.cs
@@ -99,22 +99,31 @@
                    }
                    foreach (var item in AGVtaskList)
                    {
                            var result = _taskService.Hikvisiontaskscontinue(item.WMSTaskNum);
                            if (result.Status == false)
                        //into进入一楼位置的时候,写入进入信号
                        device.SetValue(QualityInspectionCommandEnum.RequestToEnter, true, item.TargetAddress);
                        if (!device.GetValue<QualityInspectionCommandEnum,bool>(QualityInspectionCommandEnum.Blocking)==true)
                        {
                            item.ExceptionMessage = $"{item.TargetAddress}站台光栅不为true(1)!";
                        }
                        var result = _taskService.Hikvisiontaskscontinue(item.WMSTaskNum);
                        if (result.Status == false)
                        {
                            if (item.ExceptionMessage != result.Message)
                            {
                                if (item.ExceptionMessage != result.Message)
                                {
                                item.ExceptionMessage = result.Message;
                                    Uptasks.Add(item);
                                }
                                continue;
                                Uptasks.Add(item);
                            }
                            item.TaskState = (int)TaskStatusEnum.AGV_ToExecute;
                            item.ExceptionMessage = "";
                            Uptasks.Add(item);
                            continue;
                        }
                        item.TaskState = (int)TaskStatusEnum.AGV_ToExecute;
                        item.ExceptionMessage = "";
                        Uptasks.Add(item);
                    }
                    _taskService.UpdateData(Uptasks);
                    WriteInfo(device.DeviceName, "infoLog");