123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346 |
- using Mapster;
- using MathNet.Numerics.Statistics;
- using Microsoft.AspNetCore.Mvc;
- using Newtonsoft.Json;
- using RestSharp;
- using WMS.BZModels;
- using WMS.BZModels.Dto.SX.SXQuestDB;
- using WMS.BZServices.SX.SXQuestDB;
- using WMS.Info;
- using WMS.Util;
- namespace WMS.BZWeb.Areas.SXManager.Controllers
- {
- [Area("SXManager")]
- public class DeviceEffectivesController : MvcControllerBase
- {
- private readonly SXDevRunInfoService _SXDevRunInfoService;
- private readonly Dictionary<string, string> DeviceEffectiveUrls;
- private readonly IHttpClientFactory _httpClientFactory;
- private readonly string _WebUrl = "SXUrls";
- public DeviceEffectivesController(SXDevRunInfoService SXDevRunInfoService, Dictionary<string, string> deviceEffectiveUrls, IHttpClientFactory httpClientFactory)
- {
- _SXDevRunInfoService = SXDevRunInfoService;
- 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 SXDevRunInfoQueryDto();
- if (!string.IsNullOrEmpty(queryJson))
- {
- query = JsonConvert.DeserializeObject<SXDevRunInfoQueryDto>(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 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 SXDevRunInfoQueryDto();
- if (!string.IsNullOrEmpty(queryJson))
- {
- query = JsonConvert.DeserializeObject<SXDevRunInfoQueryDto>(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 SXDevRunInfoQueryDto();
- if (!string.IsNullOrEmpty(queryJson))
- {
- query = JsonConvert.DeserializeObject<SXDevRunInfoQueryDto>(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 SXDevRunInfoQueryDto();
- if (!string.IsNullOrEmpty(queryJson))
- {
- query = JsonConvert.DeserializeObject<SXDevRunInfoQueryDto>(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;
- }
- }
- #region
- //public class DeviceEffectivesController : MvcControllerBase
- //{
- // private readonly SXDevAlarmInfoService _sxDevAlarmInfoService;
- // private readonly SXDevRunInfoService _sxDevRunInfoService;
- // public DeviceEffectivesController(SXDevAlarmInfoService sxDevAlarmInfoService, SXDevRunInfoService sxDevRunInfoService)
- // {
- // _sxDevAlarmInfoService = sxDevAlarmInfoService;
- // _sxDevRunInfoService = sxDevRunInfoService;
- // }
- // #region 视图功能
- // public IActionResult Index()
- // {
- // return View();
- // }
- // public IActionResult QIndex()
- // {
- // ViewBag.BeginTime = DateTime.Now.AddDays(-1).Date;
- // ViewBag.EndTime = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd") + " 23:59:59";
- // return View();
- // }
- // public IActionResult IndexList()
- // {
- // ViewBag.BeginTime = DateTime.Now.AddDays(-1).Date;
- // ViewBag.EndTime = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd") + " 23:59:59";
- // return View();
- // }
- // #endregion
- // public ActionResult GetSrmRateData(string queryJson)
- // {
- // var query = new SXDevRunInfoQueryDto() { BeginTime = DateTime.Now.AddHours(-24), EndTime = DateTime.Now, Floor = "1", DevType = DevType.SRM };
- // if (!string.IsNullOrEmpty(queryJson))
- // {
- // query = JsonConvert.DeserializeObject<SXDevRunInfoQueryDto>(queryJson);
- // }
- // var list = _sxDevRunInfoService.GetSRMTimeRateList(query ?? new SXDevRunInfoQueryDto() { BeginTime = DateTime.Now.AddHours(-24), EndTime = DateTime.Now, DevType = DevType.SRM });
- // return Success(list);
- // }
- // public ActionResult GetRobotRateData(string queryJson)
- // {
- // var query = new SXDevRunInfoQueryDto() { BeginTime = DateTime.Now.AddHours(-24), EndTime = DateTime.Now, DevType = DevType.Robot };
- // if (!string.IsNullOrEmpty(queryJson))
- // {
- // query = JsonConvert.DeserializeObject<SXDevRunInfoQueryDto>(queryJson);
- // }
- // var list = _sxDevRunInfoService.GetRobotTimeRateList(query ?? new SXDevRunInfoQueryDto() { BeginTime = DateTime.Now.AddHours(-24), EndTime = DateTime.Now, DevType = DevType.Robot });
- // return Success(list);
- // }
- // public ActionResult GetSRMPageList(string pagination, string queryJson)
- // {
- // Pagination paginationobj = InitPagination(pagination);
- // var query = new SXDevRunInfoQueryDto();
- // if (!string.IsNullOrEmpty(queryJson))
- // {
- // query = JsonConvert.DeserializeObject<SXDevRunInfoQueryDto>(queryJson);
- // }
- // var lists = _sxDevRunInfoService.GetSRMPageList(paginationobj, query ?? new SXDevRunInfoQueryDto() { 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.Result,
- // total = lists.TotalPage,
- // page = lists.PageIndex,
- // records = lists.TotalNum
- // };
- // return Success(jsonData);
- // }
- // public ActionResult GetRobotPageList(string pagination, string queryJson)
- // {
- // Pagination paginationobj = InitPagination(pagination);
- // var query = new SXDevRunInfoQueryDto();
- // if (!string.IsNullOrEmpty(queryJson))
- // {
- // query = JsonConvert.DeserializeObject<SXDevRunInfoQueryDto>(queryJson);
- // }
- // var lists = _sxDevRunInfoService.GetRobotPageList(paginationobj, query ?? new SXDevRunInfoQueryDto() { BeginTime = DateTime.Now.AddHours(-24), EndTime = DateTime.Now, DevType = DevType.Robot });
- // 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.Result,
- // total = lists.TotalPage,
- // page = lists.PageIndex,
- // records = lists.TotalNum
- // };
- // return Success(jsonData);
- // }
- //}
- #endregion
- }
|