yanjinhui
2026-03-17 23013e13bed1c0b4627db518fc0038cc01cc2c60
´úÂë¹ÜÀí/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,25 +255,34 @@
                #region å››å‘车
                if (isAGV)
                {
                    cancelSXCTake = new CancelSXCTake
                    deviceName = "四向车";
                    if (dt_Task.RGVTaskId==0)
                    {
                        taskID = dt_Task.RGVTaskId,
                        withoutRunning = 1
                    };
                    Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(CancelSXCTake));
                    if (apiInfo == null) throw new Exception("未找到四向车AGV任务下发接口配置信息!请检查接口配置");
                    string response = HttpHelper.Post(apiInfo.ApiAddress, cancelSXCTake.Serialize());
                    FOURBOTReturn fOURBOTReturn = response.DeserializeObject<FOURBOTReturn>();
                    content.OK(data: fOURBOTReturn);
                    if (fOURBOTReturn.returnCode == 0 && fOURBOTReturn.returnUserMsg == "成功")
                    {
                        //直接移入历史
                        BaseDal.DeleteAndMoveIntoHty(dt_Task, OperateTypeEnum.自动完成);
                        BaseDal.DeleteAndMoveIntoHty(dt_Task, OperateTypeEnum.自动删除);
                        content.OK($"取消{dt_Task.WMSTaskNum}任务成功", dt_Task);
                    }
                    else
                    {
                        content.Error($"任务{dt_Task.WMSTaskNum}失败{fOURBOTReturn.data}");
                        cancelSXCTake = new CancelSXCTake
                        {
                            taskID = dt_Task.RGVTaskId,
                            withoutRunning = 1
                        };
                        Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(CancelSXCTake));
                        if (apiInfo == null) throw new Exception("未找到四向车AGV任务下发接口配置信息!请检查接口配置");
                        string response = HttpHelper.Post(apiInfo.ApiAddress, cancelSXCTake.Serialize());
                        FOURBOTReturn fOURBOTReturn = response.DeserializeObject<FOURBOTReturn>();
                        content.OK(data: fOURBOTReturn);
                        if (fOURBOTReturn.returnCode == 0 && fOURBOTReturn.returnUserMsg == "成功")
                        {
                            //直接移入历史
                            BaseDal.DeleteAndMoveIntoHty(dt_Task, OperateTypeEnum.自动完成);
                            content.OK($"取消{dt_Task.WMSTaskNum}任务成功", dt_Task);
                        }
                        else
                        {
                            content.Error($"任务{dt_Task.WMSTaskNum}失败{fOURBOTReturn.data}");
                        }
                    }
                }
                #endregion
@@ -279,6 +290,7 @@
                #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)
        {
              //查找所有任务中包含这个id的
               var  take= BaseDal.QueryData(x => keys.Contains(x.TaskId));
                //我就将这个任务移入历史中
              BaseDal.DeleteAndMoveIntoHty(take, OperateTypeEnum.自动完成);
            return base.DeleteData(keys);
            try
            {
                // æŸ¥æ‰¾æ‰€æœ‰ä»»åŠ¡ä¸­åŒ…å«è¿™ä¸ªid的
                var take = BaseDal.QueryData(x => keys.Contains(x.TaskId));
                // æ‰§è¡Œç§»å…¥åŽ†å²æ“ä½œï¼Œå¹¶æ£€æŸ¥ç»“æžœ
                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);
            }
        }
    }
}