using DOAN.Model.Dto; using DOAN.Model.MES.andon; using DOAN.Service.MES.andon.IService; using DOAN.ServiceCore.Signalr; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.SignalR; namespace DOAN.WebApi.Controllers.MES.andon { /// /// 安灯交互 /// [Route("mes/andonManagement/interaction")] public class AndonInteractionController : BaseController { private IAndonInteractionService _andonInteractionService; private readonly IHubContext _hubContext; public AndonInteractionController(IAndonInteractionService andonInteractionService, IHubContext hubContext) { _andonInteractionService = andonInteractionService; _hubContext = hubContext; } //TODO 获取线别 [HttpGet("get_line")] public IActionResult GetLine() { var response = _andonInteractionService.GetLine(); return SUCCESS(response); } /// /// 呼叫请求 /// /// /// [HttpPost("Call")] public IActionResult CallHandle([FromBody] AndonAskQueryDto query) { if (query == null) { return SUCCESS(null); } AndonFaultRecord record = query.Adapt(); record.ToCreate(HttpContext); var response = _andonInteractionService.CallHandle(record); //TODO 通知到PDA 发消息 _hubContext.Clients.All.SendAsync("Call", query); return SUCCESS(response); } /// /// test手环 http://localhost:7000/mes/andonManagement/interaction/test /// /// [HttpGet("test")] public IActionResult TestWatch() { var response = _andonInteractionService.TestWatch(); return SUCCESS(response); } /// /// 获取待响应的 记录 /// /// [HttpGet("waitingResponse")] public IActionResult WaitingResponse() { var response = _andonInteractionService.WaitingResponse(); return SUCCESS(response); } /// /// 签到 /// /// /// [HttpPost("signin")] public IActionResult SignIn([FromBody] AndonResponseQueryDto response) { if (response == null) { return SUCCESS(null); } AndonFaultRecord record = response.Adapt(); record.ToUpdate(HttpContext); var res = _andonInteractionService.SignIn(record); return SUCCESS(res); } } }