yanjinhui
2026-03-17 23013e13bed1c0b4627db518fc0038cc01cc2c60
优化移库任务
已修改3个文件
80 ■■■■■ 文件已修改
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/RGV/FOURBOT/CancelSXCTake.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskMethods.cs 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/RGV/FOURBOT/CancelSXCTake.cs
@@ -13,10 +13,10 @@
        /// </summary>
        public int taskID { get; set; }
        /// <summary>
        /// å–消原因
        /// </summary>
        public string reason { get; set; }= "NoNeed";
        ///// <summary>
        ///// å–消原因
        ///// </summary>
        //public string reason { get; set; }= "NoNeed";
        /// <summary>
@@ -28,7 +28,7 @@
        /// <summary>
        /// 0默认取消,1已经开始执行,则不取消
        /// </summary>
        public int withoutRunning { get; set; } = 0;
        public int withoutRunning { get; set; } = 1;
    }
}
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskMethods.cs
@@ -137,11 +137,12 @@
                                    fromStationCode = task.SourceAddress,
                                    toLocationCode = task.TargetAddress
                                };
                                Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(WMSInOutBoundCompleteFeedback));
                                Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(WMSMoveLocationFeedback));
                                WMSReturn agvContent = null;
                                if (apiInfo == null) task.ExceptionMessage = "未找到出入库完成反馈WMS接口配置信息!请检查接口配置";
                                if (apiInfo == null) task.ExceptionMessage = "未找到移库完成反馈WMS接口配置信息!请检查接口配置";
                                else
                                {
                                    task.TaskState = TaskStatusEnum.Finish.ObjToInt();
                                    string response = HttpHelper.Post(apiInfo.ApiAddress, wMSMoveLocationFeedback.Serialize());
                                    agvContent = response.DeserializeObject<WMSReturn>();
                                    content.OK(data: agvContent);
@@ -150,6 +151,8 @@
                                        task.ExceptionMessage = agvContent.message;
                                        content.Error(agvContent.message);
                                    }
                                    UpdateLocationStatus(task.TargetAddress, task.PalletCode, deviceTypeEnum, LocationStatusEnum.InStock);
                                    BaseDal.DeleteAndMoveIntoHty(task, OperateTypeEnum.自动完成);
                                }
                            }
                            else if (task.TaskType == (int)TaskTypeEnum.CPInbound && task.TaskState == (int)TaskStatusEnum.TakeFinish)
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -209,9 +209,10 @@
            var KLS = new CancelGALAXISTask();
            CancelHIKROBOTTask cancelHIKROBOTTask = new CancelHIKROBOTTask();
            CancelSXCTake cancelSXCTake = new CancelSXCTake();
            var deviceName = "";
            try
            {
                Dt_Task dt_Task = BaseDal.QueryFirst(x => x.WMSTaskNum == wMSCancelTask.TaskCode);
                Dt_Task dt_Task = BaseDal.QueryFirst(x => x.WMSTaskNum == wMSCancelTask.TaskCode&&x.TaskType!=TaskTypeEnum.CPMoveInventory.ObjToInt());
                if (dt_Task == null) throw new Exception("未查询到任务号相关任务");
                // åˆ¤æ–­å½“前任务是否为凯乐士任务
@@ -226,6 +227,7 @@
                #region å‡¯ä¹å£«
                if (isGALAXISTask)
                {
                    deviceName= "凯乐士AGV";
                    KLS = new CancelGALAXISTask
                    {
                        taskId = dt_Task.WMSTaskNum,
@@ -253,6 +255,14 @@
                #region å››å‘车
                if (isAGV)
                {
                    deviceName = "四向车";
                    if (dt_Task.RGVTaskId==0)
                    {
                        BaseDal.DeleteAndMoveIntoHty(dt_Task, OperateTypeEnum.自动删除);
                        content.OK($"取消{dt_Task.WMSTaskNum}任务成功", dt_Task);
                    }
                    else
                    {
                    cancelSXCTake = new CancelSXCTake
                    {
                        taskID = dt_Task.RGVTaskId,
@@ -274,11 +284,13 @@
                        content.Error($"任务{dt_Task.WMSTaskNum}失败{fOURBOTReturn.data}");
                    }
                }
                }
                #endregion
                #region æµ·åº·
                if (isHK)
                {
                    deviceName = "海康机器人";
                    cancelHIKROBOTTask = new CancelHIKROBOTTask
                    {
                        robotTaskCode = dt_Task.WMSTaskNum,
@@ -310,30 +322,7 @@
            }
            finally
            {
                // åœ¨ finally ä¸­åˆ¤æ–­å“ªä¸ªå¯¹è±¡è¢«èµ‹å€¼äº†
                object logObject = null;
                string deviceName = "";
                if (KLS != null)
                {
                    logObject = KLS;
                    deviceName = "凯乐士AGV";
                }
                else if (cancelHIKROBOTTask != null)
                {
                    logObject = cancelHIKROBOTTask;
                    deviceName = "海康机器人";
                }
                else if (cancelSXCTake != null)
                {
                    logObject = cancelSXCTake;
                    deviceName = "四向车";
                }
                if (logObject != null)
                {
                    _trackloginfoService.AddTrackLog(logObject, content, $"取消{deviceName}任务,", "", "");
                }
                _trackloginfoService.AddTrackLog(wMSCancelTask, content, $"取消{deviceName}任务,", "", "");
            }
            return content;
        }
@@ -1319,12 +1308,30 @@
        public override WebResponseContent DeleteData(object[] keys)
        {
            try
            {
              //查找所有任务中包含这个id的
               var  take= BaseDal.QueryData(x => keys.Contains(x.TaskId));
                //我就将这个任务移入历史中
              BaseDal.DeleteAndMoveIntoHty(take, OperateTypeEnum.自动完成);
            return base.DeleteData(keys);
                // æ‰§è¡Œç§»å…¥åŽ†å²æ“ä½œï¼Œå¹¶æ£€æŸ¥ç»“æžœ
                bool moveResult = BaseDal.DeleteAndMoveIntoHty(take, OperateTypeEnum.人工删除);
                if (!moveResult)
                {
                    // ç§»å…¥åŽ†å²å¤±è´¥ï¼Œè¿”å›žé”™è¯¯ä¿¡æ¯
                    return WebResponseContent.Instance.Error("移入历史记录失败");
        }
                return WebResponseContent.Instance.OK("删除成功,数据已移入历史");
            }
            catch (Exception ex)
            {
                // è®°å½•异常日志
                // Logger.Error(ex.Message);
                return WebResponseContent.Instance.Error("删除失败:" + ex.Message);
            }
        }
    }
}