DeviceEffectivesController.cs 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. using Mapster;
  2. using Microsoft.AspNetCore.Mvc;
  3. using Newtonsoft.Json;
  4. using RestSharp;
  5. using WMS.BZModels;
  6. using WMS.BZModels.Dto.PT.PTQuestDB;
  7. using WMS.Info;
  8. namespace WMS.BZWeb.Areas.PTManager.Controllers
  9. {
  10. [Area("PTManager")]
  11. public class DeviceEffectivesController : MvcControllerBase
  12. {
  13. private readonly Dictionary<string, string> DeviceEffectiveUrls;
  14. private readonly IHttpClientFactory _httpClientFactory;
  15. private readonly string _WebUrl = "PTUrls";
  16. public DeviceEffectivesController(Dictionary<string, string> deviceEffectiveUrls, IHttpClientFactory httpClientFactory)
  17. {
  18. DeviceEffectiveUrls = deviceEffectiveUrls;
  19. _httpClientFactory = httpClientFactory;
  20. }
  21. #region 视图功能
  22. public IActionResult Index()
  23. {
  24. return View();
  25. }
  26. public async Task<IActionResult> IndexList()
  27. {
  28. DeviceEffectiveUrls.TryGetValue(_WebUrl, out var url);
  29. ViewBag.BeginTime = DateTime.Now.AddDays(-1).Date;
  30. ViewBag.EndTime = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd") + " 23:59:59";
  31. ViewBag.WebApiUrl = url;
  32. return View();
  33. }
  34. #endregion
  35. public async Task<ActionResult> GetSRMPageList(string pagination, string queryJson)
  36. {
  37. Pagination paginationobj = InitPagination(pagination);
  38. var query = new PTDevRunInfoQueryDto();
  39. if (!string.IsNullOrEmpty(queryJson))
  40. {
  41. query = JsonConvert.DeserializeObject<PTDevRunInfoQueryDto>(queryJson);
  42. }
  43. var dto = paginationobj.Adapt<DeviceEffectiveQueryDto>();
  44. dto.type = (int)DevType.SRM;
  45. dto.stateTime = query.BeginTime.GetValueOrDefault(DateTime.Now.AddDays(-1));
  46. dto.endTime = query.EndTime.GetValueOrDefault(DateTime.Now);
  47. var ret = await GetRestSharpDevRunInfoDataAsync(JsonConvert.SerializeObject(dto), "/api/Wcs/GetDevRunInfo");
  48. var lists = ret != null ? JsonConvert.DeserializeObject<PagedInfo<RunInfo>>(ret) : null;
  49. var jsonData = new
  50. {
  51. rows = lists != null && lists.Result.Any() ? lists.Result : new List<RunInfo>(),
  52. total = lists != null && lists.Result.Any() ? lists.TotalPage : 0,
  53. page = lists != null && lists.Result.Any() ? lists.PageIndex : 1,
  54. records = lists != null && lists.Result.Any() ? lists.TotalNum : 0
  55. };
  56. return Success(jsonData);
  57. }
  58. public async Task<ActionResult> GetRobotPageList(string pagination, string queryJson)
  59. {
  60. Pagination paginationobj = InitPagination(pagination);
  61. var query = new PTDevRunInfoQueryDto();
  62. if (!string.IsNullOrEmpty(queryJson))
  63. {
  64. query = JsonConvert.DeserializeObject<PTDevRunInfoQueryDto>(queryJson);
  65. }
  66. var dto = paginationobj.Adapt<DeviceEffectiveQueryDto>();
  67. dto.type = (int)DevType.Robot;
  68. dto.stateTime = query.BeginTime.GetValueOrDefault(DateTime.Now.AddDays(-1));
  69. dto.endTime = query.EndTime.GetValueOrDefault(DateTime.Now);
  70. //var ret = Task.Run(async () =>
  71. //{
  72. // return await GetRestSharpDevRunInfoDataAsync(JsonConvert.SerializeObject(dto), "/api/Wcs/GetDevRunInfo");
  73. //}).ConfigureAwait(false).GetAwaiter().GetResult();
  74. var ret = await GetRestSharpDevRunInfoDataAsync(JsonConvert.SerializeObject(dto), "/api/Wcs/GetDevRunInfo");
  75. var lists = ret != null ? JsonConvert.DeserializeObject<PagedInfo<RunInfo>>(ret) : null;
  76. var jsonData = new
  77. {
  78. rows = lists != null && lists.Result.Any() ? lists.Result : new List<RunInfo>(),
  79. total = lists != null && lists.Result.Any() ? lists.TotalPage : 0,
  80. page = lists != null && lists.Result.Any() ? lists.PageIndex : 1,
  81. records = lists != null && lists.Result.Any() ? lists.TotalNum : 0
  82. };
  83. return Success(jsonData);
  84. }
  85. public async Task<ActionResult> GetRgvPageList(string pagination, string queryJson)
  86. {
  87. Pagination paginationobj = InitPagination(pagination);
  88. var query = new PTDevRunInfoQueryDto();
  89. if (!string.IsNullOrEmpty(queryJson))
  90. {
  91. query = JsonConvert.DeserializeObject<PTDevRunInfoQueryDto>(queryJson);
  92. }
  93. var dto = paginationobj.Adapt<DeviceEffectiveQueryDto>();
  94. dto.type = (int)DevType.RGV;
  95. dto.stateTime = query.BeginTime.GetValueOrDefault(DateTime.Now.AddDays(-1));
  96. dto.endTime = query.EndTime.GetValueOrDefault(DateTime.Now);
  97. //var ret = Task.Run(async () =>
  98. //{
  99. // return await GetRestSharpDevRunInfoDataAsync(JsonConvert.SerializeObject(dto), "/api/Wcs/GetDevRunInfo");
  100. //}).ConfigureAwait(false).GetAwaiter().GetResult();
  101. var ret = await GetRestSharpDevRunInfoDataAsync(JsonConvert.SerializeObject(dto), "/api/Wcs/GetDevRunInfo");
  102. var lists = ret != null ? JsonConvert.DeserializeObject<PagedInfo<RunInfo>>(ret) : null;
  103. var jsonData = new
  104. {
  105. rows = lists != null && lists.Result.Any() ? lists.Result : new List<RunInfo>(),
  106. total = lists != null && lists.Result.Any() ? lists.TotalPage : 0,
  107. page = lists != null && lists.Result.Any() ? lists.PageIndex : 1,
  108. records = lists != null && lists.Result.Any() ? lists.TotalNum : 0
  109. };
  110. return Success(jsonData);
  111. }
  112. public async Task<ActionResult> GetHJPageList(string pagination, string queryJson)
  113. {
  114. Pagination paginationobj = InitPagination(pagination);
  115. var query = new PTDevRunInfoQueryDto();
  116. if (!string.IsNullOrEmpty(queryJson))
  117. {
  118. query = JsonConvert.DeserializeObject<PTDevRunInfoQueryDto>(queryJson);
  119. }
  120. var dto = paginationobj.Adapt<DeviceEffectiveQueryDto>();
  121. dto.type = (int)DevType.Truss;
  122. dto.stateTime = query.BeginTime.GetValueOrDefault(DateTime.Now.AddDays(-1));
  123. dto.endTime = query.EndTime.GetValueOrDefault(DateTime.Now);
  124. //var ret = Task.Run(async () =>
  125. //{
  126. // return await GetDevRunInfoDataAsync(JsonConvert.SerializeObject(dto), "/api/Wcs/GetDevRunInfo");
  127. //}).ConfigureAwait(false).GetAwaiter().GetResult();
  128. var ret = await GetRestSharpDevRunInfoDataAsync(JsonConvert.SerializeObject(dto), "/api/Wcs/GetDevRunInfo");
  129. var lists = ret != null ? JsonConvert.DeserializeObject<PagedInfo<RunInfo>>(ret) : null;
  130. var jsonData = new
  131. {
  132. rows = lists != null && lists.Result.Any() ? lists.Result : new List<RunInfo>(),
  133. total = lists != null && lists.Result.Any() ? lists.TotalPage : 0,
  134. page = lists != null && lists.Result.Any() ? lists.PageIndex : 1,
  135. records = lists != null && lists.Result.Any() ? lists.TotalNum : 0
  136. };
  137. return Success(jsonData);
  138. }
  139. public async Task<string> GetDevRunInfoDataAsync(string query, string uri)
  140. {
  141. DeviceEffectiveUrls.TryGetValue(_WebUrl, out var url);
  142. //string uri = url + "/api/Wcs/GetDevRunInfo";
  143. var httpClient = _httpClientFactory.CreateClient(_WebUrl);
  144. var request = new HttpRequestMessage(HttpMethod.Get, url + uri);
  145. var content = new StringContent(query, null, "application/json");
  146. request.Content = content;
  147. var response = await httpClient.SendAsync(request);
  148. response.EnsureSuccessStatusCode();
  149. var result = await response.Content.ReadAsStringAsync();
  150. return result;
  151. }
  152. public async Task<string> GetRestSharpDevRunInfoDataAsync(string query, string uri)
  153. {
  154. DeviceEffectiveUrls.TryGetValue(_WebUrl, out var url);
  155. var options = new RestClientOptions(url)
  156. {
  157. MaxTimeout = -1,
  158. };
  159. var client = new RestClient(options);
  160. var request = new RestRequest(uri, Method.Get);
  161. request.AddHeader("Content-Type", "application/json");
  162. var body = query;
  163. request.AddStringBody(body, DataFormat.Json);
  164. RestResponse response = await client.ExecuteAsync(request);
  165. return response.Content;
  166. }
  167. }
  168. }