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);
}
}
}
}