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); } } }