using Autofac.Core; using Masuit.Tools; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using System.Threading.Tasks; using WIDESEAWCS_Core; using WIDESEAWCS_Core.BaseController; using WIDESEAWCS_Core.Enums; using WIDESEAWCS_DTO.TaskInfo; using WIDESEAWCS_ISystemServices; using WIDESEAWCS_ITaskInfoService; using WIDESEAWCS_Model.Models; namespace WIDESEAWCS_Server.Controllers.Task { [Route("api/RobotTask")] [ApiController] public class RobotTaskController : ApiBaseController { public RobotTaskController(IRobotTaskService service) : base(service) { } [HttpGet, HttpPost, Route("DeleteRobotTask"), AllowAnonymous] public WebResponseContent DeleteRobotTask(int id) { if (Service.DeleteRobotTask(id)){ return WebResponseContent.Instance.OK(); } return WebResponseContent.Instance.Error(); } // 暂时创建换盘机械手任务 [HttpGet, HttpPost, Route("AddRobotTask"), AllowAnonymous] public WebResponseContent AddRobotTask([FromBody] RobotMoveRequest request) { try { Dt_RobotTask robotTask = new Dt_RobotTask(); robotTask.RobotTaskNum = Random.Shared.StrictNext(); robotTask.RobotRoadway = "换盘机械手"; robotTask.RobotTaskType = 510; robotTask.RobotTaskState = 300; robotTask.RobotTaskTotalNum = 48; robotTask.RobotGrade = 1; robotTask.RobotDispatchertime = DateTime.Now; robotTask.RobotRemark = "人工手动创建"; robotTask.RobotSourceAddressPalletCode = request.robotSourceAddressPalletCode; robotTask.RobotTargetAddressPalletCode = request.robotTargetAddressPalletCode; // 根据方向设置源和目标 switch (request.Forward) { case 1: robotTask.RobotSourceAddress = "1"; robotTask.RobotSourceAddressLineCode = "11010"; robotTask.RobotTargetAddress = "3"; robotTask.RobotTargetAddressLineCode = "2103"; break; case 2: robotTask.RobotSourceAddress = "2"; robotTask.RobotSourceAddressLineCode = "11001"; robotTask.RobotTargetAddress = "4"; robotTask.RobotTargetAddressLineCode = "2101"; break; case 3: robotTask.RobotSourceAddress = "3"; robotTask.RobotSourceAddressLineCode = "2103"; robotTask.RobotTargetAddress = "1"; robotTask.RobotTargetAddressLineCode = "11010"; break; case 4: robotTask.RobotSourceAddress = "4"; robotTask.RobotSourceAddressLineCode = "2101"; robotTask.RobotTargetAddress = "2"; robotTask.RobotTargetAddressLineCode = "11001"; break; default: return WebResponseContent.Instance.Error($"添加机器人任务失败"); } return Service.AddData(robotTask); } catch (Exception ex) { return WebResponseContent.Instance.Error($"添加机器人任务失败: {ex.Message}"); } } } } public class RobotMoveRequest { public int Forward { get; set; } public String robotSourceAddressPalletCode { get; set; } public String robotTargetAddressPalletCode { get; set; } }