1
dengjunjie
2026-03-10 0405ca5fd4589200606b5c5a33cadaa0b4dff6b8
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -95,10 +95,12 @@
                    {
                        content = TaskHelpMethods.isOkTaskInfo(task, true, true);
                        if (!content.Status) throw new Exception(content.Message);
                        if (BaseDal.QueryFirst(x => x.WMSTaskNum == task.taskCode || x.PalletCode == task.containerCode) != null)
                        {
                            continue;
                        }
                        if (BaseDal.QueryFirst(x => x.WMSTaskNum == task.taskCode) != null)
                            throw new Exception($"任务号【{task.taskCode}】已存在任务");
                        if (BaseDal.QueryFirst(x => x.PalletCode == task.containerCode) != null)
                            throw new Exception($"托盘号【{task.containerCode}】已存在任务");
                        if (BaseDal.QueryFirst(x => x.SourceAddress == task.fromLocationCode) != null)
                            throw new Exception($"起点位置【{task.containerCode}】已存在任务");
                        switch (item.taskType)
                        {
                            case (int)TaskTypeEnum.MLInbound:
@@ -167,7 +169,7 @@
                #region å‡¯ä¹å£«
                if (isGALAXISTask)
                {
                     KLS = new CancelGALAXISTask
                    KLS = new CancelGALAXISTask
                    {
                        taskId = dt_Task.WMSTaskNum,
                        reportTime = DateTime.Now.ToString()
@@ -180,11 +182,11 @@
                    {
                        //直接移入历史
                        BaseDal.DeleteAndMoveIntoHty(dt_Task, OperateTypeEnum.自动完成);
                         content.OK("取消任务成功", dt_Task);
                        content.OK($"取消{dt_Task.WMSTaskNum}任务成功", dt_Task);
                    }
                    else
                    {
                        content.Error($"任务失败{agvContent.data.returnInfo}");
                        content.Error($"任务{dt_Task.WMSTaskNum}失败{agvContent.data.returnInfo}");
                    }
                }
@@ -193,9 +195,10 @@
                #region å››å‘车
                if (isAGV)
                {
                     cancelSXCTake = new CancelSXCTake
                    cancelSXCTake = new CancelSXCTake
                    {
                        taskID = dt_Task.RGVTaskId
                        taskID = dt_Task.RGVTaskId,
                        withoutRunning = 1
                    };
                    Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(CancelSXCTake));
                    if (apiInfo == null) throw new Exception("未找到四向车AGV任务下发接口配置信息!请检查接口配置");
@@ -205,18 +208,18 @@
                    {
                        //直接移入历史
                        BaseDal.DeleteAndMoveIntoHty(dt_Task, OperateTypeEnum.自动完成);
                         content.OK("取消任务成功", dt_Task);
                        content.OK($"取消{dt_Task.WMSTaskNum}任务成功", dt_Task);
                    }
                    else
                    {
                        content.Error($"任务失败{fOURBOTReturn.data}");
                        content.Error($"任务{dt_Task.WMSTaskNum}失败{fOURBOTReturn.data}");
                    }
                }
                #endregion
                #region æµ·åº·
                if (isHK)
                {
                     cancelHIKROBOTTask = new CancelHIKROBOTTask
                    cancelHIKROBOTTask = new CancelHIKROBOTTask
                    {
                        robotTaskCode = dt_Task.WMSTaskNum,
                        cancelType = "CANCEL"//原软取消,DROP人工介入(原硬取消)
@@ -229,11 +232,11 @@
                    {
                        //直接移入历史
                        BaseDal.DeleteAndMoveIntoHty(dt_Task, OperateTypeEnum.自动完成);
                         content.OK("取消任务成功", dt_Task);
                        content.OK("取消{dt_Task.WMSTaskNum}任务成功", dt_Task);
                    }
                    else
                    {
                         content.Error($"任务失败{hIKROBOTReturn.data}");
                        content.Error($"任务{dt_Task.WMSTaskNum}失败,错误信息:{hIKROBOTReturn.data}");
                    }
                }
@@ -250,17 +253,17 @@
                object logObject = null;
                string deviceName = "";
                if (KLS != null )
                if (KLS != null)
                {
                    logObject = KLS;
                    deviceName = "凯乐士AGV";
                }
                else if (cancelHIKROBOTTask != null )
                else if (cancelHIKROBOTTask != null)
                {
                    logObject = cancelHIKROBOTTask;
                    deviceName = "海康机器人";
                }
                else if (cancelSXCTake != null )
                else if (cancelSXCTake != null)
                {
                    logObject = cancelSXCTake;
                    deviceName = "四向车";
@@ -268,7 +271,7 @@
                if (logObject != null)
                {
                    _trackloginfoService.AddTrackLog(logObject, content, $"取消{deviceName}任务", "", "");
                    _trackloginfoService.AddTrackLog(logObject, content, $"取消{deviceName}任务,", "", "");
                }
            }
            return content;
@@ -309,7 +312,6 @@
                    {
                        taskId = dt_Task.WMSTaskNum,
                        reportTime = DateTime.Now.ToString(),
                        district = dt_Task.Roadway,//任务库区
                        priorityCode = updateTaskPriority.taskPriority,
                    };
                    Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(UpdateGALAXISTaskGrade));
@@ -320,11 +322,11 @@
                    {
                        BaseDal.UpdateData(dt_Task);
                         content.OK("修改任务优先级成功", dt_Task);
                        content.OK($"修改{dt_Task.WMSTaskNum}任务优先级成功", dt_Task);
                    }
                    else
                    {
                         content.Error($"任务失败{agvContent.data.returnInfo}");
                        content.Error($"{dt_Task.WMSTaskNum}任务失败,错误信息:{agvContent.data.returnInfo}");
                    }
                }
                #endregion
@@ -332,23 +334,23 @@
                #region å››å‘车
                if (isAGV)
                {
                     request = new UpdateAgvSXCTake
                    request = new UpdateAgvSXCTake
                    {
                        taskID = dt_Task.RGVTaskId,
                        priority = updateTaskPriority.taskPriority
                    };
                    Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(UpdateAgvSXCTake));
                    if (apiInfo == null) throw new Exception("未找到四向车AGV任务下发接口配置信息!请检查接口配置");
                    if (apiInfo == null) throw new Exception("未找到更新四向车任务优先级接口配置信息!请检查接口配置");
                    string response = HttpHelper.Post(apiInfo.ApiAddress, request.Serialize());
                    FOURBOTReturn fOURBOTReturn = response.DeserializeObject<FOURBOTReturn>();
                    if (fOURBOTReturn.returnCode == 0 && fOURBOTReturn.returnUserMsg == "成功")
                    {
                        BaseDal.UpdateData(dt_Task);
                         content.OK("修改任务优先级成功", dt_Task);
                        content.OK("修改{dt_Task.WMSTaskNum}任务优先级成功", dt_Task);
                    }
                    else
                    {
                         content.Error($"任务失败{fOURBOTReturn.data}");
                        content.Error($"任务{dt_Task.WMSTaskNum}失败,错误信息:{fOURBOTReturn.data}");
                    }
                }
@@ -356,7 +358,7 @@
                #region æµ·åº·
                if (isHK)
                {
                     Hkrequest = new HIKROBOTTaskGrade
                    Hkrequest = new HIKROBOTTaskGrade
                    {
                        robotTaskCode = dt_Task.WMSTaskNum,//任务号
                        initPriority = updateTaskPriority.taskPriority//优先级
@@ -368,11 +370,11 @@
                    if (hIKROBOTReturn.code == "SUCCESS0" && hIKROBOTReturn.message == "成功")
                    {
                        BaseDal.UpdateData(dt_Task);
                         content.OK("修改任务优先级成功", dt_Task);
                        content.OK("修改{dt_Task.WMSTaskNum}任务优先级成功", dt_Task);
                    }
                    else
                    {
                         content.Error($"任务失败{hIKROBOTReturn.data}");
                        content.Error($"任务{dt_Task.WMSTaskNum}失败,错误信息{hIKROBOTReturn.data}");
                    }
                }
                #endregion
@@ -387,7 +389,7 @@
                object logObject = null;
                string deviceName = "";
                if (updateGALAXISTaskGrade != null )
                if (updateGALAXISTaskGrade != null)
                {
                    logObject = updateGALAXISTaskGrade;
                    deviceName = "凯乐士AGV";
@@ -397,7 +399,7 @@
                    logObject = Hkrequest;
                    deviceName = "海康机器人";
                }
                else if (request != null )
                else if (request != null)
                {
                    logObject = request;
                    deviceName = "四向车";
@@ -1118,7 +1120,8 @@
                };
                string response = HttpHelper.Post(apiInfo.ApiAddress, fOURBOToccupyStation.Serialize());
                FOURBOTReturn fOURBOTReturn = response.DeserializeObject<FOURBOTReturn>();
                if (fOURBOTReturn.returnCode != 0) throw new Exception(fOURBOTReturn.returnUserMsg);
                if (fOURBOTReturn.returnCode != 0 && fOURBOTReturn.returnUserMsg != $"站点已被占用,(podID={iQC.ContainerCode})")
                    throw new Exception(fOURBOTReturn.returnUserMsg);
                #endregion
                #region åˆ›å»ºå››å‘车任务
@@ -1166,7 +1169,7 @@
                var Agvlocation = _rGVLocationInfoService.Repository.QueryData(x => fOURBOTStorageStatusNotify.storageCode.Contains(x.LocationCode));
                foreach (var item in Agvlocation)
                {
                    item.LocationStatus = (int)(fOURBOTStorageStatusNotify.disable == 0 ? EnableStatusEnum.Normal : EnableStatusEnum.Disable);
                    item.EnableStatus = (int)(fOURBOTStorageStatusNotify.disable == 0 ? EnableStatusEnum.Normal : EnableStatusEnum.Disable);
                }
                _rGVLocationInfoService.UpdateData(Agvlocation);
                return WebResponseContent.Instance.OK();