using Microsoft.AspNetCore.Mvc;
using NPOI.SS.Formula.Functions;
using WMS.BZModels.Dto;
using WMS.BZServices.KLHC;
using WMS.Info;
namespace WMS.BZWeb.Areas.KLHCManager.Controllers
{
[Area("KLHCManager")]
public class AdminDesktopHomeController : MvcControllerBase
{
private readonly AdminDesktopHomeService _adminDesktopHomeService;
public AdminDesktopHomeController(AdminDesktopHomeService adminDesktopHomeService)
{
_adminDesktopHomeService = adminDesktopHomeService;
}
///
/// 今日出入库统计
///
///
public ActionResult GetTodayTaskInOutPie(string bctime, string warehouse)
{
if (string.IsNullOrWhiteSpace(bctime))
{
bctime = "1";
}
var start = new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, 8, 0, 0);
var end = start.AddDays(1);
switch (bctime)
{
case "1":
end = start.AddHours(12);
break;
case "2":
start = new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, 20, 0, 0);
end = start.AddHours(12);
break;
}
var dto = _adminDesktopHomeService.GetTodayTaskInOutPie(start, end, warehouse);
return Success(dto);
}
///
/// 近七天任务动态
///
///
public ActionResult Get7daysTaskBar(string warehouse)
{
var dto = _adminDesktopHomeService.Get7daysTaskBar(DateTime.Now.AddDays(-6), DateTime.Now.AddDays(1), warehouse);
return Success(dto);
}
public ActionResult GettodaysHourTask(string warehouse)
{
var dto = _adminDesktopHomeService.GettodaysHourTask(DateTime.Now, DateTime.Now, warehouse);
return Success(dto);
}
public ActionResult GetHourTask(string warehouse)
{
var dto = _adminDesktopHomeService.GetHourTask(DateTime.Now.AddDays(-1), DateTime.Now, warehouse);
return Success(dto);
}
public ActionResult GetTaskGoodsTypes(string bctime, string warehouse)
{
if (string.IsNullOrWhiteSpace(bctime))
{
bctime = "1";
}
var start = new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, 8, 0, 0);
var end = start.AddDays(1);
switch (bctime)
{
case "1":
end = start.AddHours(12);
break;
case "2":
start = new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, 20, 0, 0);
end = start.AddHours(12);
break;
}
var dto = _adminDesktopHomeService.GetTaskGoodsTypes(start, end, warehouse);
return Success(dto);
}
public ActionResult GetMatWeightCategory(string warehouse)
{
var dto = _adminDesktopHomeService.GetMatWeightCategory(warehouse);
return Success(dto);
}
public ActionResult GetDailyStatistics(string bctime,string begintime,string endtime)
{
var start = new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, 8, 0, 0);
var end = start.AddDays(1);
if (string.IsNullOrEmpty(begintime) || string.IsNullOrEmpty(endtime))
{
if (string.IsNullOrWhiteSpace(bctime))
{
bctime = "1";
}
switch (bctime)
{
case "1":
end = start.AddHours(12);
break;
case "2":
start = new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, 20, 0, 0);
end = start.AddHours(12);
break;
}
}
else
{
if (!DateTime.TryParse(begintime, out start))
{
start = DateTime.Parse(DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd") + " 08:00:00") ;
}
else
{
start =DateTime.Parse( begintime);
}
if (!DateTime.TryParse(endtime, out end))
{
end= DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " 08:00:00") ;
}
else
{
end = DateTime.Parse(endtime);
}
}
var lists = _adminDesktopHomeService.GetDailyStatistics(InitPagination(""), start, end);
lists.Result.Add( new DailyStatisticsDto
{
WarehouseName = "合计",
TrussNorthQty = lists.Result.Sum(o=>o.TrussNorthQty),
TrussSouthQty = lists.Result.Sum(o => o.TrussSouthQty),
CircularSouthQty = lists.Result.Sum(o => o.CircularSouthQty),
CircularNorthQty = lists.Result.Sum(o => o.CircularNorthQty),
DailySummary = lists.Result.Sum(o => o.DailySummary),
FullNormalQty = lists.Result.Sum(o => o.FullNormalQty),
EmptyAbnormalQty = lists.Result.Sum(o => o.EmptyAbnormalQty),
EmptyAutomaticQty = lists.Result.Sum(o => o.EmptyAutomaticQty),
EmptyWarehouseQty = lists.Result.Sum(o => o.EmptyWarehouseQty),
});
var jsonData = new
{
rows = lists.Result,
total = lists.TotalPage,
page = lists.PageIndex,
records = lists.TotalNum
};
return Success(jsonData);
}
}
}