AIController.cs 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. using Microsoft.AspNetCore.Http;
  2. using Microsoft.AspNetCore.Mvc;
  3. using Microsoft.Extensions.Options;
  4. using Ropin.Core.Extensions.Redis;
  5. using Ropin.Core.Extensions;
  6. using Ropin.Inspection.Api.Common.Options;
  7. using Ropin.Inspection.Api.Common.Token;
  8. using Ropin.Inspection.Service.Interface;
  9. using Ropin.Inspection.Service.SYS.Interface;
  10. using Ropin.Inspection.Service;
  11. using System.Net.Http;
  12. using Ropin.Inspection.Common.Helper;
  13. using Microsoft.AspNetCore.Authorization;
  14. using Ropin.Inspection.Api.Common;
  15. using System.Threading.Tasks;
  16. using Ropin.Inspection.Model;
  17. using System.Collections.Generic;
  18. using System;
  19. using Newtonsoft.Json;
  20. using Microsoft.AspNetCore.Identity;
  21. namespace Ropin.Inspection.Api.Controllers.Base
  22. {
  23. public class AIController : BaseController
  24. {
  25. private readonly IHttpClientFactory _httpClientFactory;
  26. private readonly AIProjectHelper aIHelper;
  27. private readonly ITsysMessageService _TsysMessageService;
  28. private readonly IPushMsgService _pushMsgService;
  29. public AIController(IHttpClientFactory httpClientFactory, ITsysMessageService tsysMessageService, IPushMsgService pushMsgService)
  30. {
  31. aIHelper = new AIProjectHelper(httpClientFactory);
  32. _TsysMessageService = tsysMessageService;
  33. _pushMsgService = pushMsgService;
  34. }
  35. /// <summary>
  36. /// AI登录
  37. /// </summary>
  38. /// <returns></returns>
  39. [HttpGet("AiLogin")]
  40. [AllowAnonymous]
  41. public async Task<AILoginOutput> AiLogin()
  42. {
  43. var token = await aIHelper.GetToken();
  44. return token;
  45. }
  46. /// <summary>
  47. /// AI-获取历史报警记录
  48. /// </summary>
  49. /// <returns></returns>
  50. [HttpGet("AiHistoricAlmrecord/{Devno}/{Page}/{pageSize}")]
  51. [AllowAnonymous]
  52. public async Task<ApiResult<AISqlSugarPagedList<AlmRecordOutput>>> AiHistoricAlmrecord(string Devno,int Page=1,int pageSize=10, long? entityId = null)
  53. {
  54. var data = await aIHelper.GetHistoricAlmrecord(Devno,Page,pageSize, entityId);
  55. return new ApiResult<AISqlSugarPagedList<AlmRecordOutput>>(data, ReturnCode.Success);
  56. }
  57. /// <summary>
  58. /// AI-获取报警处理列表
  59. /// </summary>
  60. /// <returns></returns>
  61. [HttpGet("AiAlmDispose/{Devno}/{Page}/{pageSize}")]
  62. [AllowAnonymous]
  63. public async Task<ApiResult<AISqlSugarPagedList<AlmRecordOutput>>> AiAlmDispose(string Devno, int Page = 1, int pageSize = 10, long? entityId = null)
  64. {
  65. var data = await aIHelper.GetAlmDispose(Devno, Page, pageSize, entityId);
  66. return new ApiResult<AISqlSugarPagedList<AlmRecordOutput>>(data, ReturnCode.Success);
  67. }
  68. /// <summary>
  69. /// AI-报警数据保存到环保消息表数据
  70. /// </summary>
  71. /// <returns></returns>
  72. [HttpGet("AiAlmSaveMessage")]
  73. [AllowAnonymous]
  74. public async Task<ApiResult> AiAlmSaveMessage()
  75. {
  76. //40124884581189;33379713109829
  77. var data = await aIHelper.GetAlmDispose("", 1, 100, 40124884581189);
  78. //var data = await aIHelper.GetHistoricAlmrecord("", 7, 10, 33379713109829);
  79. if (data!=null)
  80. {
  81. foreach (var item in data.Items)
  82. {
  83. if (item!=null)
  84. {
  85. var textJson = new
  86. {
  87. PanoramaId = item.PanoramaId,
  88. PanoramaUrl = item.PanoramaUrl,
  89. RoiJson = item.RoiJson,
  90. NonRoiJson = item.NonRoiJson,
  91. DetectionFrameJson = item.DetectionFrameJson
  92. };
  93. var datas = JsonConvert.SerializeObject(textJson);
  94. MessageFile messageFile = new MessageFile();
  95. messageFile.Text = datas;
  96. messageFile.Type = "FILE_TYP_006";
  97. TpushMsgModel model = new TpushMsgModel
  98. {
  99. C_DevStoreCode = "d705ceb5-7473-4b19-91dd-d3eff223f05b",
  100. C_MsgTypeCode = "MSG_TYPE_024",
  101. Subject = item.Device_TypeName + "报警",
  102. Msg = item.Event_Name??item.Event_Code,
  103. UserName = "AI",
  104. UserMobile = "",
  105. CreateOn = item.StartTime?.ToString("yyyy-MM-dd HH:mm:ss"),
  106. GenerationType = 1,
  107. msgStatus = 1,
  108. FileList=new List<MessageFile> { messageFile }
  109. };
  110. bool bol = await _pushMsgService.PushAlarmMsgAsync(model, model.Subject);
  111. if (bol)
  112. {
  113. DateTime updTime = DateTime.Now;
  114. var updData = new
  115. {
  116. Id = item.Id,
  117. ConfrimContent = "环保测试数据,自动确认",
  118. Mistake = false,
  119. Confirmed = true,
  120. ConfirmTime = updTime,
  121. ConfirmUserName = "环保同步程序",
  122. Closed = true,
  123. CloseContent = "环保测试数据,自动关闭",
  124. EndTime = updTime,
  125. CloseUserName = "环保同步程序"
  126. };
  127. var dataStr = JsonConvert.SerializeObject(updData);
  128. bool result = await aIHelper.UpdateAlm(dataStr);
  129. //bool result = await aIHelper.UpdateAlmIsDelete(item.Id);
  130. }
  131. }
  132. }
  133. }
  134. //TsysMessageSearchModel searchModel = new TsysMessageSearchModel();
  135. //searchModel.IsPagination = true;
  136. //searchModel.C_MsgTypeCode = "MSG_TYPE_024";
  137. //var msgData = await _TsysMessageService.GetConditionAsync(searchModel);
  138. return new ApiResult(ReturnCode.Success);
  139. }
  140. }
  141. }