using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Options; using Ropin.Core.Extensions.Redis; using Ropin.Core.Extensions; using Ropin.Inspection.Api.Common.Options; using Ropin.Inspection.Api.Common.Token; using Ropin.Inspection.Service.Interface; using Ropin.Inspection.Service.SYS.Interface; using Ropin.Inspection.Service; using System.Net.Http; using Ropin.Inspection.Common.Helper; using Microsoft.AspNetCore.Authorization; using Ropin.Inspection.Api.Common; using System.Threading.Tasks; using Ropin.Inspection.Model; using System.Collections.Generic; using System; using Newtonsoft.Json; namespace Ropin.Inspection.Api.Controllers.Base { public class AIController : BaseController { private readonly IHttpClientFactory _httpClientFactory; private readonly AIProjectHelper aIHelper; private readonly ITsysMessageService _TsysMessageService; private readonly IPushMsgService _pushMsgService; public AIController(IHttpClientFactory httpClientFactory, ITsysMessageService tsysMessageService, IPushMsgService pushMsgService) { aIHelper = new AIProjectHelper(httpClientFactory); _TsysMessageService = tsysMessageService; _pushMsgService = pushMsgService; } /// /// AI登录 /// /// [HttpGet("AiLogin")] [AllowAnonymous] public async Task AiLogin() { var token = await aIHelper.GetToken(); return token; } /// /// AI-获取历史报警记录 /// /// [HttpGet("AiHistoricAlmrecord/{Devno}/{Page}/{pageSize}")] [AllowAnonymous] public async Task>> AiHistoricAlmrecord(string Devno,int Page=1,int pageSize=10, long? entityId = null) { var data = await aIHelper.GetHistoricAlmrecord(Devno,Page,pageSize, entityId); return new ApiResult>(data, ReturnCode.Success); } /// /// AI-获取报警处理列表 /// /// [HttpGet("AiAlmDispose/{Devno}/{Page}/{pageSize}")] [AllowAnonymous] public async Task>> AiAlmDispose(string Devno, int Page = 1, int pageSize = 10, long? entityId = null) { var data = await aIHelper.GetAlmDispose(Devno, Page, pageSize, entityId); return new ApiResult>(data, ReturnCode.Success); } /// /// AI-报警数据保存到环保消息表数据 /// /// [HttpGet("AiAlmSaveMessage")] [AllowAnonymous] public async Task AiAlmSaveMessage() { //40124884581189 var data = await aIHelper.GetAlmDispose("", 0, 10, 33379713109829); //var data = await aIHelper.GetHistoricAlmrecord("", 1, 10, 33379713109829); if (data!=null) { foreach (var item in data.Items) { if (item!=null) { var textJson = new { PanoramaId = item.PanoramaId, PanoramaUrl = item.PanoramaUrl, RoiJson = item.RoiJson, NonRoiJson = item.NonRoiJson, DetectionFrameJson = item.DetectionFrameJson }; var datas = JsonConvert.SerializeObject(textJson); MessageFile messageFile = new MessageFile(); messageFile.Text = datas; messageFile.Type = "FILE_TYP_006"; TpushMsgModel model = new TpushMsgModel { C_DevStoreCode = "d705ceb5-7473-4b19-91dd-d3eff223f05b", C_MsgTypeCode = "MSG_TYPE_024", Subject = item.Device_TypeName + "报警", Msg = item.Event_Name, UserName = "AI", UserMobile = "", CreateOn = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), GenerationType = 1, msgStatus = 1, FileList=new List { messageFile } }; bool bol = await _pushMsgService.PushAlarmMsgAsync(model, model.Subject); //if (bol) //{ // bool result= await aIHelper.UpdateAlmIsDelete(item.Id); //} } } } TsysMessageSearchModel searchModel = new TsysMessageSearchModel(); searchModel.IsPagination = true; searchModel.C_MsgTypeCode = "MSG_TYPE_024"; var msgData = await _TsysMessageService.GetConditionAsync(searchModel); return new ApiResult>(msgData, ReturnCode.Success); } } }