wangxinhui
2 天以前 2c889b38311883ceb703c4e0034c798fdaa2e21c
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGV/ZH_AGVController.cs
@@ -46,22 +46,22 @@
            {
                var task = _taskRepository.QueryFirst(x => secureApplyModel.TaskCode == x.AgvTaskNum);
                if (task == null) throw new Exception("未找到任务");
                if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt())
                {
                    var content = TakeRequest(task.CurrentAddress);
                    //if (!content.Status)
                    //{
                    //    throw new Exception(content.Message);
                    //}
                }
                else
                {
                    var content = PutRequest(task.NextAddress, task.PalletType);
                    //if (!content.Status)
                    //{
                    //    throw new Exception(content.Message);
                    //}
                }
                //if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt())
                //{
                //    var content = TakeRequest(task.CurrentAddress);
                //    //if (!content.Status)
                //    //{
                //    //    throw new Exception(content.Message);
                //    //}
                //}
                //else
                //{
                //    var content = PutRequest(task.NextAddress, task.PalletType);
                //    //if (!content.Status)
                //    //{
                //    //    throw new Exception(content.Message);
                //    //}
                //}
                task.TaskState = TaskStatusEnum.AGV_WaitToExecute.ObjToInt();
                var up = _taskRepository.UpdateData(task);
                agvResponseContent.Code = up ? "0" : "1";
@@ -98,10 +98,15 @@
                        agvResponseContent.Message = requestZH.Status ? "成功" : "失败";
                        return agvResponseContent;
                    case "outbin"://出库根据这个信号判断取货完成
                        if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt())
                        if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
                        {
                            var content = TakeFinish(task.CurrentAddress);
                            if (!content.Status) throw new Exception(content.Message);
                            if (!content.Status)
                            {
                                task.TaskState = TaskStatusEnum.AGV_TakeError.ObjToInt();
                                _taskRepository.UpdateData(task);
                                throw new Exception(content.Message);
                            }
                            task.TaskState = TaskStatusEnum.AGV_Finish.ObjToInt();
                            var up = _taskRepository.DeleteAndMoveIntoHty(task, OperateTypeEnum.自动完成);
                            _taskService.TaskCompleted(task.TaskNum);
@@ -112,16 +117,16 @@
                        break;
                    case "getSafetySignal"://安全信号申请
                        {
                            if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt())
                            {
                                var content = TakeRequest(task.CurrentAddress);
                                //if (!content.Status) throw new Exception(content.Message);
                            }
                            else
                            {
                                var content = PutRequest(task.NextAddress, task.PalletType);
                                //if (!content.Status) throw new Exception(content.Message);
                            }
                            //if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
                            //{
                            //    var content = TakeRequest(task.CurrentAddress);
                            //    //if (!content.Status) throw new Exception(content.Message);
                            //}
                            //else
                            //{
                            //    var content = PutRequest(task.NextAddress, task.PalletType);
                            //    //if (!content.Status) throw new Exception(content.Message);
                            //}
                            task.TaskState = TaskStatusEnum.AGV_WaitToExecute.ObjToInt();
                            var up = _taskRepository.UpdateData(task);
                            agvResponseContent.Code = up ? "0" : "1";
@@ -132,11 +137,16 @@
                        if (task.TaskType != TaskTypeEnum.Outbound.ObjToInt())
                        {
                            var content = PutFinish(task.NextAddress);
                            if (!content.Status) throw new Exception(content.Message);
                            if (!content.Status)
                            {
                                task.TaskState = TaskStatusEnum.AGV_PutError.ObjToInt();
                                _taskRepository.UpdateData(task);
                                throw new Exception(content.Message);
                            }
                            Dt_StationManger dt_Station = _stationMangerRepository.QueryFirst(x => x.AGVStationCode == task.NextAddress);
                            if (dt_Station == null)
                            {
                                throw new Exception($"{task.NextAddress}AGV站台未定义");
                                throw new Exception($"{task.NextAddress}站台未定义");
                            }
                            task.CurrentAddress = dt_Station.StationCode;
                            task.NextAddress = "";
@@ -334,5 +344,32 @@
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
        //阻焊仓出库任务空储位异常手动重发AGV任务
        [HttpPost, HttpGet,Route("AgvZHTaskResend"),AllowAnonymous]
        public WebResponseContent AgvZHTaskResend(int taskNum)
        {
            try
            {
                Dt_Task task = _taskRepository.QueryFirst(x => x.TaskNum == taskNum);
                if (task == null)
                {
                    return WebResponseContent.Instance.Error("未找到相关任务信息");
                }
                if (task.TaskState == TaskStatusEnum.Exception.ObjToInt() && task.DeviceCode == "AGV_ZH")
                {
                    _taskService.UpdateTask(task, TaskStatusEnum.AGV_Execute);
                }
                else
                {
                    return WebResponseContent.Instance.Error("任务设备编号不正确或任务状态非空储位异常");
                }
                return WebResponseContent.Instance.OK();
            }
            catch(Exception ex)
            {
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
    }
}