using HslCommunication.WebSocket; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; using WIDESEA_Core; using WIDESEA_Core.BaseController; using WIDESEA_Core.Helper; using WIDESEA_IApprovalService; using WIDESEA_ICheckRepository; using WIDESEA_Model.Models; namespace WIDESEA_WMSServer.Controllers.Approval { [Route("api/[controller]")] [ApiController] public class ApprovalTaskController : ApiBaseController { private readonly ICheckOrderRepository _checkOrderRepository; private readonly WebSocketServer _webSocketServer; public ApprovalTaskController(IApprovalTaskService service, ICheckOrderRepository checkOrderRepository, WebSocketServer webSocketServer) : base(service) { _checkOrderRepository = checkOrderRepository; _webSocketServer = webSocketServer; } /// /// 同意审批 /// /// /// [HttpGet, HttpPost, Route("AuditAgree")] public WebResponseContent AuditAgree(int sourceKey) { return Service.AuditAgree(sourceKey); } /// /// 驳回审批 /// /// /// [HttpGet, HttpPost, Route("AuditReject")] public WebResponseContent AuditReject(int sourceKey) { return Service.AuditReject(sourceKey); } /// /// 推送测试 /// /// [HttpGet, HttpPost, Route("PushTest"), AllowAnonymous] public WebResponseContent PushTest() { try { List checkOrders = _checkOrderRepository.Db.Queryable().Includes(x => x.Details).ToList(); foreach (var checkOrder in checkOrders) { object obj = new { title = "IQC质检结果审批", formData = checkOrder, tableData = checkOrder.Details, message = "推送测试信息体", date = DateTime.Now.ToString(), }; JsonSerializerSettings settings = new JsonSerializerSettings() { ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver() }; _webSocketServer.PublishAllClientPayload(JsonConvert.SerializeObject(obj, settings)); } return WebResponseContent.Instance.OK(); } catch (Exception ex) { return WebResponseContent.Instance.Error(ex.Message); } } } }