yanjinhui
2026-03-31 0128fce75a5e7cc9afc4bd89ce1966eb2231b69f
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/HKTaskExtend.cs
@@ -4,6 +4,8 @@
using System.Reflection.Metadata;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Common;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.Helper;
using WIDESEAWCS_DTO;
@@ -36,6 +38,117 @@
            {
                var content = _taskService.SendHIKROBOTTask(item);
            }
        }
        #endregion
        #region ä¸‹å‘海康1-6楼的AGV任务
        public void SendAGVTask(List<Dt_Task> tasks)
        {
            foreach (var item in tasks)
            {
                if (item.TaskState == (int)TaskTypeEnum.Q3CK)
                {
                    // è°ƒç”¨æŽ¥å£èŽ·å–å°è½¦ä¿¡æ¯
                    var result = _agvcartInfoService.CheckTheCar();
                    // åˆ¤æ–­æ˜¯å¦æœ‰ AA æˆ– FF
                    bool hasAAOrFF = false;
                    if (item.TaskState == (int)TaskTypeEnum.Q3CK)
                    {
                        if (result != null && result.Status)
                        {
                            var dataList = result.Data as List<HIKROBOTQueryData>;
                            if (dataList != null && dataList.Any())
                            {
                                // æ£€æŸ¥è¿”回的 mapCode åˆ—表中是否有 AA
                                hasAAOrFF = dataList.Any(d => d.mapCode == "AA");
                                if (hasAAOrFF)
                                {
                                    var content = _taskService.SendHIKROBOTTask(item);
                                    item.TaskState = (int)TaskStatusEnum.Execut;
                                }
                                else//这里我就要呼叫空车来
                                {
                                    //添加空车运输任务
                                    AddAGVCartInfo(item);
                                    item.TaskState = (int)TaskStatusEnum.WaitingHkAGVMovePosition;
                                }
                            }
                        }
                    }
                    else
                    {
                        if (result != null && result.Status)
                        {
                            if (hasAAOrFF)
                            {
                                var content = _taskService.SendHIKROBOTTask(item);
                                item.TaskState = (int)TaskStatusEnum.Execut;
                            }
                            else//这里我就要呼叫空车来
                            {
                                //添加空车运输任务
                                AddAGVCartInfo(item);
                                item.TaskState = (int)TaskStatusEnum.WaitingHkAGVMovePosition;
                            }
                        }
                    }
                }
            }
            _taskService.UpdateData(tasks);
        }
        #endregion
        #region å¤„理海康agv搬运任务
        public WebResponseContent AddAGVCartInfo(Dt_Task task)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                task.TaskNum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum));
                task.WMSTaskNum = null;
                task.TaskType = (int)TaskTypeEnum.Move;//换层任务
                task.TaskState = (int)TaskStatusEnum.CallingHKtransportation;
                var result = _taskService.SendHIKROBOTTask(task);
                _taskService.AddData(task);
            }
            catch (Exception ex)
            {
                content.Error($"创建失败:{ex.Message}");
            }
            return content;
        }
        #endregion
        #region å¤„理agv待空车搬运任务
        public void SendHKWaitTask()
        {
            try
            {
                List<Dt_Task> reslut = _taskService.Repository.QueryData(x => x.TaskType == (int)TaskTypeEnum.Move);
                if (reslut.Count<0)
                {
                    foreach (var item in reslut)
                    {
                        var content = _taskService.SendHIKROBOTTask(item);
                    }
                    reslut.ForEach(x =>
                    {
                        x.TaskState =(int)TaskStatusEnum.Execut;
                    });
                }
                _taskService.UpdateData(reslut);
            }
            catch (Exception ex)
            {
                WriteError(nameof(TaskJob), ex.Message, ex);
            }
        }
        #endregion
    }