| | |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using NewLife.Net; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_DTO.AGV; |
| | | using WIDESEA_IStoragIntegrationServices; |
| | | using WIDESEA_StorageSocketServices; |
| | | |
| | | namespace WIDESEA_WMSServer.Controllers |
| | | { |
| | |
| | | { |
| | | private readonly IHttpContextAccessor _httpContextAccessor; |
| | | private readonly IAGVService _service; |
| | | public static bool Islock = true; // éï¼é²æ¢éå¤è¯·æ± |
| | | |
| | | public AGVController(IAGVService service, IHttpContextAccessor httpContextAccessor) |
| | | { |
| | |
| | | /// <summary> |
| | | /// 请æ±å
¥åºä»»å¡ |
| | | /// </summary> |
| | | /// <param name="TaskNum"></param> |
| | | /// <param name="SourceAddress"></param> |
| | | /// <param name="aGVDTO"></param> |
| | | /// <returns></returns> |
| | | [HttpGet,HttpPost, Route("RequestInTask"), AllowAnonymous] |
| | | public WebResponseContent RequestInTask(string PalletCode, string SourceAddress) |
| | | [HttpGet, HttpPost, Route("RequestInTask"), AllowAnonymous] |
| | | public WebResponseContent RequestInTask([FromBody] AGVDTO aGVDTO) |
| | | { |
| | | return _service.RequestInTask(PalletCode, SourceAddress); |
| | | return _service.RequestInTask(aGVDTO); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// <param name="Status"></param> |
| | | /// <returns></returns> |
| | | [HttpGet, HttpPost, Route("ReceiveAGVRuntimeStatus"), AllowAnonymous] |
| | | public WebResponseContent ReceiveAGVRuntimeStatus(AGVStatus Status) |
| | | public WebResponseContent ReceiveAGVRuntimeStatus([FromBody] AGVStatus Status) |
| | | { |
| | | return _service.ReceiveAGVRuntimeStatus(Status); |
| | | } |
| | |
| | | /// <summary> |
| | | /// AGVä»»å¡å¼å§æç»æ |
| | | /// </summary> |
| | | /// <param name="Status"></param> |
| | | /// <param name="TaskNum"></param> |
| | | /// <param name="aGVDTO"></param> |
| | | /// <returns></returns> |
| | | [HttpGet, HttpPost, Route("AGVStartOrEndJob"), AllowAnonymous] |
| | | public WebResponseContent AGVStartOrEndJob(string Status, int TaskNum) |
| | | public WebResponseContent AGVStartOrEndJob([FromBody] AGVDTO aGVDTO) |
| | | { |
| | | return _service.AGVStartOrEndJob(Status, TaskNum); |
| | | return _service.AGVStartOrEndJob(aGVDTO); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设å¤ç¶æä¸æ¥ |
| | | /// </summary> |
| | | /// <param name="Message"></param> |
| | | /// <param name="PallteCode"></param> |
| | | /// <param name="aGVDTO"></param> |
| | | /// <returns></returns> |
| | | [HttpGet, HttpPost, Route("DeviceErrorResponse"), AllowAnonymous] |
| | | public WebResponseContent DeviceErrorResponse(string Message,int TaskNum) |
| | | public WebResponseContent DeviceErrorResponse([FromBody] AGVDTO aGVDTO) |
| | | { |
| | | return _service.DeviceErrorResponse(Message,TaskNum); |
| | | return _service.DeviceErrorResponse(aGVDTO); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设å¤å¼å¸¸ä¸æ¥ |
| | | /// </summary> |
| | | /// <param name="DTO"></param> |
| | | /// <returns></returns> |
| | | [HttpGet, HttpPost, Route("DeviceWarning"), AllowAnonymous] |
| | | [TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 10 })] // 10ç§èæµ |
| | | public async Task<WebResponseContent> DeviceWarning([FromBody] AGVDTO DTO) |
| | | { |
| | | WebResponseContent responseContent = new WebResponseContent(); |
| | | try |
| | | { |
| | | // 使ç¨çæ£çéç»æ |
| | | if (Islock) |
| | | { |
| | | Islock = false; |
| | | try |
| | | { |
| | | return await Task.Run(()=> _service.DeviceWarning(DTO)); |
| | | } |
| | | finally |
| | | { |
| | | Islock = true; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | return responseContent.Error("请æ±è¿äºé¢ç¹ï¼è¯·ç¨ååè¯"); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | // ä¸éè¦å¨è¿ééæ¾éï¼å 为TryEnteræååä¼å¨finallyä¸éæ¾ |
| | | return responseContent.Error($"设å¤å¼å¸¸ä¸æ¥å¤±è´¥: {ex.Message}"); |
| | | } |
| | | } |
| | | } |
| | | } |