using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using System.Data;
using System.Web;
using WMS.BZModels.Dto.PT.ReportDtos;
using WMS.BZServices.PT;
using WMS.Info;
using WMS.Util;
namespace WMS.BZWeb.Areas.PTManager.Controllers
{
///
/// 统计报表
///
[Area("PTManager")]
public class StatisticsreportController : MvcControllerBase
{
private readonly StatisticsreportService _statistics;
public StatisticsreportController(StatisticsreportService statistics)
{
_statistics = statistics;
}
public IActionResult Index()
{
return View();
}
public IActionResult HourTaskIndex()
{
return View();
}
public IActionResult InOutReport()
{
ViewBag.beginhour = DateTime.Now.Date.ToString("yyyy-MM-dd") + " 00:00:00";
ViewBag.endhour = DateTime.Now.ToString("yyyy-MM-dd") + " 23:59:59";
ViewBag.beginday = DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd") + " 00:00:00";
ViewBag.endday = DateTime.Now.ToString("yyyy-MM-dd") + " 23:59:59";
return View();
}
public ActionResult GetPageList(string pagination, string queryJson)
{
Pagination paginationobj = InitPagination(pagination);
var query = new StatisticsQueryDto();
if (!string.IsNullOrEmpty(queryJson))
{
query = JsonConvert.DeserializeObject(queryJson);
}
var lists = _statistics.GetPageList(paginationobj, query ?? new StatisticsQueryDto());
var jsonData = new
{
rows = lists.Result,
total = lists.TotalPage,
page = lists.PageIndex,
records = lists.TotalNum
};
return Success(jsonData);
}
[HttpPost]
public IActionResult ExportExcel(string fileName, string queryJson, string exportField)
{
var query = new StatisticsQueryDto();
try
{
if (!string.IsNullOrEmpty(queryJson))
{
query = JsonConvert.DeserializeObject(queryJson);
}
}
catch (Exception ex)
{
}
//设置导出格式
ExcelConfig excelconfig = new ExcelConfig();
excelconfig.Title = HttpUtility.UrlDecode(fileName);
excelconfig.TitleFont = "微软雅黑";
excelconfig.TitlePoint = 15;
excelconfig.FileName = HttpUtility.UrlDecode(fileName) + ".xls";
excelconfig.IsAllSizeColumn = true;
excelconfig.ColumnEntity = new List();
List columnList = exportField.ToList();
if (columnList.Count == 0)
{
throw new Exception("未找到表头");
}
//行数据
var lists = _statistics.GetList(query ?? new StatisticsQueryDto());
var dataJson = JsonConvert.SerializeObject(lists);
DataTable rowData = dataJson.ToTable();
//写入Excel表头
Dictionary exportFieldMap = new Dictionary();
if (!string.IsNullOrEmpty(exportField))
{
string[] exportFields = exportField.Split(',');
foreach (var field in exportFields)
{
if (!exportFieldMap.ContainsKey(field))
{
exportFieldMap.Add(field, "1");
}
}
}
foreach (var columnModel in columnList)
{
excelconfig.ColumnEntity.Add(new ColumnModel()
{
// Column =string.IsNullOrEmpty(columnModel.sortname)? columnModel.name: columnModel.sortname,
Column = columnModel.name,
ExcelColumn = columnModel.label,
Alignment = columnModel.align,
Width = columnModel.name.Length
});
}
return File(ExcelHelper.NewExportMemoryStream(rowData, excelconfig), "application/ms-excel", excelconfig.FileName);
}
public ActionResult GetHourTaskPageList(string pagination, string queryJson)
{
Pagination paginationobj = InitPagination(pagination);
var query = new HourTaskQueryDto();
if (!string.IsNullOrEmpty(queryJson))
{
query = JsonConvert.DeserializeObject(queryJson);
}
var lists = _statistics.GetHourTask(paginationobj, query ?? new HourTaskQueryDto());
var jsonData = new
{
rows = lists.Result,
total = lists.TotalPage,
page = lists.PageIndex,
records = lists.TotalNum
};
return Success(jsonData);
}
[HttpPost]
public IActionResult ExportHourTaskExcel(string fileName, string queryJson, string exportField)
{
var query = new HourTaskQueryDto();
try
{
if (!string.IsNullOrEmpty(queryJson))
{
query = JsonConvert.DeserializeObject(queryJson);
}
}
catch (Exception ex)
{
}
//设置导出格式
ExcelConfig excelconfig = new ExcelConfig();
excelconfig.Title = HttpUtility.UrlDecode(fileName);
excelconfig.TitleFont = "微软雅黑";
excelconfig.TitlePoint = 15;
excelconfig.FileName = HttpUtility.UrlDecode(fileName) + ".xls";
excelconfig.IsAllSizeColumn = true;
excelconfig.ColumnEntity = new List();
List columnList = exportField.ToList();
if (columnList.Count == 0)
{
throw new Exception("未找到表头");
}
//行数据
Pagination paginationobj = InitPagination("");
paginationobj.rows = 1000000;
var lists = _statistics.GetHourTask(paginationobj, query ?? new HourTaskQueryDto());
var dataJson = JsonConvert.SerializeObject(lists);
DataTable rowData = dataJson.ToTable();
//写入Excel表头
Dictionary exportFieldMap = new Dictionary();
if (!string.IsNullOrEmpty(exportField))
{
string[] exportFields = exportField.Split(',');
foreach (var field in exportFields)
{
if (!exportFieldMap.ContainsKey(field))
{
exportFieldMap.Add(field, "1");
}
}
}
foreach (var columnModel in columnList)
{
excelconfig.ColumnEntity.Add(new ColumnModel()
{
// Column =string.IsNullOrEmpty(columnModel.sortname)? columnModel.name: columnModel.sortname,
Column = columnModel.name,
ExcelColumn = columnModel.label,
Alignment = columnModel.align,
Width = columnModel.name.Length
});
}
return File(ExcelHelper.NewExportMemoryStream(rowData, excelconfig), "application/ms-excel", excelconfig.FileName);
}
public ActionResult GetInOutReportList(string pagination, string queryJson)
{
Pagination paginationobj = InitPagination(pagination);
var query = new InOutReportQueryDto();
if (!string.IsNullOrEmpty(queryJson))
{
query = JsonConvert.DeserializeObject(queryJson);
}
var lists = _statistics.GetInOutReport(paginationobj, query ?? new InOutReportQueryDto());
var jsonData = new
{
rows = lists.Result,
total = lists.TotalPage,
page = lists.PageIndex,
records = lists.TotalNum
};
return Success(jsonData);
}
[HttpPost]
public IActionResult ExportInOutReportExcel(string fileName, string queryJson, string exportField)
{
var query = new InOutReportQueryDto();
try
{
if (!string.IsNullOrEmpty(queryJson))
{
query = JsonConvert.DeserializeObject(queryJson);
}
}
catch (Exception ex)
{
}
//设置导出格式
ExcelConfig excelconfig = new ExcelConfig();
excelconfig.Title = HttpUtility.UrlDecode(fileName);
excelconfig.TitleFont = "微软雅黑";
excelconfig.TitlePoint = 15;
excelconfig.FileName = HttpUtility.UrlDecode(fileName) + ".xls";
excelconfig.IsAllSizeColumn = true;
excelconfig.ColumnEntity = new List();
List columnList = exportField.ToList();
if (columnList.Count == 0)
{
throw new Exception("未找到表头");
}
//行数据
Pagination paginationobj = InitPagination("");
paginationobj.rows = 1000000;
var lists = _statistics.GetInOutReport(paginationobj, query ?? new InOutReportQueryDto());
var dataJson = JsonConvert.SerializeObject(lists.Result);
DataTable rowData = dataJson.ToTable();
//写入Excel表头
Dictionary exportFieldMap = new Dictionary();
if (!string.IsNullOrEmpty(exportField))
{
string[] exportFields = exportField.Split(',');
foreach (var field in exportFields)
{
if (!exportFieldMap.ContainsKey(field))
{
exportFieldMap.Add(field, "1");
}
}
}
foreach (var columnModel in columnList)
{
excelconfig.ColumnEntity.Add(new ColumnModel()
{
// Column =string.IsNullOrEmpty(columnModel.sortname)? columnModel.name: columnModel.sortname,
Column = columnModel.name,
ExcelColumn = columnModel.label,
Alignment = columnModel.align,
Width = columnModel.name.Length
});
}
return File(ExcelHelper.NewExportMemoryStream(rowData, excelconfig), "application/ms-excel", excelconfig.FileName);
}
}
}