123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229 |
- using Mapster;
- using Microsoft.AspNetCore.Mvc;
- using Newtonsoft.Json;
- using RestSharp;
- using System.Net.Http;
- using WMS.BZModels;
- using WMS.BZModels.Dto.FJ.FJQuestDB;
- using WMS.BZServices.FJ.FJQuestDB;
- using WMS.Info;
- namespace WMS.BZWeb.Areas.FJManager.Controllers
- {
- [Area("FJManager")]
- public class DeviceEffectivesController : MvcControllerBase
- {
- private readonly FJDevRunInfoService _fjDevRunInfoService;
- private readonly Dictionary<string, string> DeviceEffectiveUrls;
- private readonly IHttpClientFactory _httpClientFactory;
- private readonly string _WebUrl = "FJUrls";
- public DeviceEffectivesController(FJDevRunInfoService fjDevRunInfoService, Dictionary<string, string> deviceEffectiveUrls, IHttpClientFactory httpClientFactory)
- {
- _fjDevRunInfoService = fjDevRunInfoService;
- DeviceEffectiveUrls = deviceEffectiveUrls;
- _httpClientFactory = httpClientFactory;
-
- }
- #region 视图功能
- public IActionResult Index()
- {
- return View();
- }
- public async Task< IActionResult> IndexList()
- {
- DeviceEffectiveUrls.TryGetValue(_WebUrl, out var url);
- ViewBag.BeginTime = DateTime.Now.AddDays(-1).Date;
- ViewBag.EndTime = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd") + " 23:59:59";
- ViewBag.WebApiUrl = url;
- return View();
- }
- #endregion
- public async Task<ActionResult> GetSRMPageList(string pagination, string queryJson)
- {
- Pagination paginationobj = InitPagination(pagination);
- var query = new FJDevRunInfoQueryDto();
- if (!string.IsNullOrEmpty(queryJson))
- {
- query = JsonConvert.DeserializeObject<FJDevRunInfoQueryDto>(queryJson);
- }
- var dto = paginationobj.Adapt<DeviceEffectiveQueryDto>();
- dto.type = (int)DevType.SRM;
- dto.stateTime = query.BeginTime.GetValueOrDefault(DateTime.Now.AddDays(-1));
- dto.endTime = query.EndTime.GetValueOrDefault(DateTime.Now);
- //var ret = Task.Run(async () =>
- //{
- // return await GetRestSharpDevRunInfoDataAsync(JsonConvert.SerializeObject(dto) , "/api/Wcs/GetDevRunInfo");
- //}).ConfigureAwait(false).GetAwaiter().GetResult();
- var ret = await GetRestSharpDevRunInfoDataAsync(JsonConvert.SerializeObject(dto), "/api/Wcs/GetDevRunInfo");
- var lists = ret != null ? JsonConvert.DeserializeObject<PagedInfo<RunInfo>>(ret) : null;
- //var lists = _fjDevRunInfoService.GetSRMPageList(paginationobj, query ?? new FJDevRunInfoQueryDto() { BeginTime = DateTime.Now.AddHours(-24), EndTime = DateTime.Now, DevType = DevType.SRM });
- //lists.Extra.TryGetValue("total", out var total);
- //var dectotal = Convert.ToDecimal(total);
- //var totalmodel = new RunListModel()
- //{
- // Code = "合计:",
- // OutDepot = lists.Result.Sum(s => s.OutDepot),
- // EnterDepot = lists.Result.Sum(s => s.EnterDepot),
- // TransferDepot = lists.Result.Sum(s => s.TransferDepot),
- // Free = lists.Result.Sum(s => s.Free),
- // Manual = lists.Result.Sum(s => s.Manual),
- // Automatic = lists.Result.Sum(s => s.Automatic),
- // Alarm = lists.Result.Sum(s => s.Alarm),
- // Working = lists.Result.Sum(s => s.Working),
- //};
- //totalmodel.State[0] = dectotal > 0 ? Math.Round((decimal)totalmodel.Free / dectotal * 100, 2) : 0;
- //totalmodel.State[1] = dectotal > 0 ? Math.Round((decimal)totalmodel.Manual / dectotal * 100, 2) : 0;
- //totalmodel.State[2] = dectotal > 0 ? Math.Round((decimal)totalmodel.Automatic / dectotal * 100, 2) : 0;
- //totalmodel.State[3] = dectotal > 0 ? Math.Round((decimal)totalmodel.Alarm / dectotal * 100, 2) : 0;
- //totalmodel.State[4] = dectotal > 0 ? Math.Round((decimal)totalmodel.Working / dectotal * 100, 2) : 0;
- //lists.Result.Add(totalmodel);
- var jsonData = new
- {
- rows = lists != null && lists.Result.Any() ? lists.Result : new List<RunInfo>(),
- total = lists != null && lists.Result.Any() ? lists.TotalPage : 0,
- page = lists != null && lists.Result.Any() ? lists.PageIndex : 1,
- records = lists != null && lists.Result.Any() ? lists.TotalNum : 0
- };
- return Success(jsonData);
- }
- public async Task<ActionResult> GetRobotPageList(string pagination, string queryJson)
- {
- Pagination paginationobj = InitPagination(pagination);
- var query = new FJDevRunInfoQueryDto();
- if (!string.IsNullOrEmpty(queryJson))
- {
- query = JsonConvert.DeserializeObject<FJDevRunInfoQueryDto>(queryJson);
- }
- var dto = paginationobj.Adapt<DeviceEffectiveQueryDto>();
- dto.type = (int)DevType.Robot;
- dto.stateTime = query.BeginTime.GetValueOrDefault(DateTime.Now.AddDays(-1));
- dto.endTime = query.EndTime.GetValueOrDefault(DateTime.Now);
- //var ret = Task.Run(async () =>
- //{
- // return await GetRestSharpDevRunInfoDataAsync(JsonConvert.SerializeObject(dto), "/api/Wcs/GetDevRunInfo");
- //}).ConfigureAwait(false).GetAwaiter().GetResult();
- var ret = await GetRestSharpDevRunInfoDataAsync(JsonConvert.SerializeObject(dto), "/api/Wcs/GetDevRunInfo");
- var lists = ret != null ? JsonConvert.DeserializeObject<PagedInfo<RunInfo>>(ret) : null;
- var jsonData = new
- {
- rows = lists != null && lists.Result.Any() ? lists.Result : new List<RunInfo>(),
- total = lists != null && lists.Result.Any() ? lists.TotalPage : 0,
- page = lists != null && lists.Result.Any() ? lists.PageIndex : 1,
- records = lists != null && lists.Result.Any() ? lists.TotalNum : 0
- };
- return Success(jsonData);
- }
- public async Task<ActionResult> GetRgvPageList(string pagination, string queryJson)
- {
- Pagination paginationobj = InitPagination(pagination);
- var query = new FJDevRunInfoQueryDto();
- if (!string.IsNullOrEmpty(queryJson))
- {
- query = JsonConvert.DeserializeObject<FJDevRunInfoQueryDto>(queryJson);
- }
- var dto = paginationobj.Adapt<DeviceEffectiveQueryDto>();
- dto.type = (int)DevType.RGV;
- dto.stateTime = query.BeginTime.GetValueOrDefault(DateTime.Now.AddDays(-1));
- dto.endTime = query.EndTime.GetValueOrDefault(DateTime.Now);
- //var ret = Task.Run(async () =>
- //{
- // return await GetRestSharpDevRunInfoDataAsync(JsonConvert.SerializeObject(dto), "/api/Wcs/GetDevRunInfo");
- //}).ConfigureAwait(false).GetAwaiter().GetResult();
- var ret = await GetRestSharpDevRunInfoDataAsync(JsonConvert.SerializeObject(dto), "/api/Wcs/GetDevRunInfo");
- var lists = ret != null ? JsonConvert.DeserializeObject<PagedInfo<RunInfo>>(ret) : null;
- var jsonData = new
- {
- rows = lists != null && lists.Result.Any() ? lists.Result : new List<RunInfo>(),
- total = lists != null && lists.Result.Any() ? lists.TotalPage : 0,
- page = lists != null && lists.Result.Any() ? lists.PageIndex : 1,
- records = lists != null && lists.Result.Any() ? lists.TotalNum : 0
- };
- return Success(jsonData);
- }
- public async Task<ActionResult> GetHJPageList(string pagination, string queryJson)
- {
- Pagination paginationobj = InitPagination(pagination);
- var query = new FJDevRunInfoQueryDto();
- if (!string.IsNullOrEmpty(queryJson))
- {
- query = JsonConvert.DeserializeObject<FJDevRunInfoQueryDto>(queryJson);
- }
- var dto = paginationobj.Adapt<DeviceEffectiveQueryDto>();
- dto.type = (int)DevType.Truss;
- dto.stateTime = query.BeginTime.GetValueOrDefault(DateTime.Now.AddDays(-1));
- dto.endTime = query.EndTime.GetValueOrDefault(DateTime.Now);
- //var ret = Task.Run(async () =>
- //{
- // return await GetDevRunInfoDataAsync(JsonConvert.SerializeObject(dto), "/api/Wcs/GetDevRunInfo");
- //}).ConfigureAwait(false).GetAwaiter().GetResult();
- var ret = await GetRestSharpDevRunInfoDataAsync(JsonConvert.SerializeObject(dto), "/api/Wcs/GetDevRunInfo");
- var lists = ret != null ? JsonConvert.DeserializeObject<PagedInfo<RunInfo>>(ret) : null;
- var jsonData = new
- {
- rows = lists != null && lists.Result.Any() ? lists.Result : new List<RunInfo>(),
- total = lists != null && lists.Result.Any() ? lists.TotalPage : 0,
- page = lists != null && lists.Result.Any() ? lists.PageIndex : 1,
- records = lists != null && lists.Result.Any() ? lists.TotalNum : 0
- };
- return Success(jsonData);
- }
- public async Task<string> GetDevRunInfoDataAsync(string query, string uri)
- {
- DeviceEffectiveUrls.TryGetValue(_WebUrl, out var url);
- //string uri = url + "/api/Wcs/GetDevRunInfo";
- var httpClient = _httpClientFactory.CreateClient(_WebUrl);
- var request = new HttpRequestMessage(HttpMethod.Get, url + uri);
- var content = new StringContent(query, null, "application/json");
-
- request.Content = content;
- var response = await httpClient.SendAsync(request);
- response.EnsureSuccessStatusCode();
- var result = await response.Content.ReadAsStringAsync();
- return result;
- }
- public async Task<string> GetRestSharpDevRunInfoDataAsync(string query, string uri)
- {
- DeviceEffectiveUrls.TryGetValue(_WebUrl, out var url);
- var options = new RestClientOptions(url)
- {
- MaxTimeout = -1,
- };
- var client = new RestClient(options);
- var request = new RestRequest(uri, Method.Get);
- request.AddHeader("Content-Type", "application/json");
- var body = query;
- request.AddStringBody(body, DataFormat.Json);
- RestResponse response = await client.ExecuteAsync(request);
- return response.Content ;
- }
- }
- }
|