using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Collections; using Estsh.Web.Service; using Estsh.Web.Util; using NPOI.HSSF.UserModel; using System.IO; using System.Data; namespace Estsh.Core.Web.Controllers { public class OutGoingQueryController : Controller { OutGoingQueryService service = new OutGoingQueryService(); // // GET: /OutGoingQuery/ public ActionResult Index() { return View(); } public ActionResult GetCountType(Pager pager, string startTime, string endTime) { if (string.IsNullOrEmpty(startTime) && string.IsNullOrEmpty(endTime)) { return null; } Hashtable result = new Hashtable(); DataTable dt = service.GetCountType(ref pager, startTime, endTime); ArrayList arrList = DataTypeConvert.NewObject.DataTableToArrayList(dt); result.Add("rows", arrList); result.Add("pager.totalRows", pager.totalRows); return Json(result, JsonRequestBehavior.AllowGet); } public ActionResult GetCountModel(Pager pager, string startTime, string endTime) { if (string.IsNullOrEmpty(startTime) && string.IsNullOrEmpty(endTime)) { return null; } Hashtable result = new Hashtable(); DataTable dt = service.GetCountModel(ref pager, startTime, endTime); ArrayList arrList = DataTypeConvert.NewObject.DataTableToArrayList(dt); result.Add("rows", arrList); result.Add("pager.totalRows", pager.totalRows); return Json(result, JsonRequestBehavior.AllowGet); } public ActionResult GetCountByModel(Pager pager, string startTime, string endTime) { if (string.IsNullOrEmpty(startTime) && string.IsNullOrEmpty(endTime)) { return null; } Hashtable result = new Hashtable(); DataTable dt = service.GetCountByModel(ref pager, startTime, endTime); ArrayList arrList = DataTypeConvert.NewObject.DataTableToArrayList(dt); result.Add("rows", arrList); result.Add("pager.totalRows", pager.totalRows); return Json(result, JsonRequestBehavior.AllowGet); } public ActionResult GetCountByPN(Pager pager, string startTime, string endTime) { if (string.IsNullOrEmpty(startTime) && string.IsNullOrEmpty(endTime)) { return null; } Hashtable result = new Hashtable(); DataTable dt = service.GetCountByPN(ref pager, startTime, endTime); ArrayList arrList = DataTypeConvert.NewObject.DataTableToArrayList(dt); result.Add("rows", arrList); result.Add("pager.totalRows", pager.totalRows); return Json(result, JsonRequestBehavior.AllowGet); } public ActionResult GetOutGoingDeail(Pager pager, string startTime, string endTime) { if (string.IsNullOrEmpty(startTime) && string.IsNullOrEmpty(endTime)) { return null; } Hashtable result = new Hashtable(); DataTable dt = service.GetOutGoingDeail(ref pager, startTime, endTime); ArrayList arrList = DataTypeConvert.NewObject.DataTableToArrayList(dt); result.Add("rows", arrList); result.Add("pager.totalRows", pager.totalRows); return Json(result, JsonRequestBehavior.AllowGet); } public ActionResult ExportData(string startTime, string endTime) { Pager pager = new Pager(); pager.pageNo = 1; pager.pageSize = int.MaxValue; DataTable countType = service.GetCountType(ref pager, startTime, endTime); DataTable countModel = service.GetCountModel(ref pager, startTime, endTime); DataTable countByModel = service.GetCountByModel(ref pager, startTime, endTime); DataTable countByPN = service.GetCountByPN(ref pager, startTime, endTime); DataTable outGoingDeail = service.GetOutGoingDeail(ref pager, startTime, endTime); string AbsolutePath = Request.UrlReferrer.AbsolutePath; string url = AbsolutePath.Remove(0, Request.ApplicationPath.Length); GridColumnService colService = new GridColumnService(); Models.SysWebGridColumn[] countTypeGridItems = colService.GetColumnByUrl(url, "汇总车型");//汇总车型GtidColumn Models.SysWebGridColumn[] countModelGridItems = colService.GetColumnByUrl(url, "汇总配置");//汇总配置GtidColumn Models.SysWebGridColumn[] countByModelGridItems = colService.GetColumnByUrl(url, "按配置汇总总成");//按配置汇总总成GtidColumn Models.SysWebGridColumn[] countByPNGridItems = colService.GetColumnByUrl(url, "按零件号汇总总成");//按零件号汇总总成GtidColumn Models.SysWebGridColumn[] outGoingDeailGridItems = colService.GetColumnByUrl(url, "发运明细");//按零件号汇总总成GtidColumn if (countType.Rows.Count >= 65535) { Response.Write(""); return null; } HSSFWorkbook workbook = NPOIExcelTools.DataTableToWorkbook(countTypeGridItems, countType, "汇总车型");//将汇总表转换为Workbook if (countModel.Rows.Count >= 65535) { Response.Write(""); return null; } NPOIExcelTools.AddSheet(workbook, countModelGridItems, countModel, "汇总配置"); if (countByModel.Rows.Count >= 65535) { Response.Write(""); return null; } NPOIExcelTools.AddSheet(workbook, countByModelGridItems, countByModel, "按配置汇总总成"); if (countByPN.Rows.Count >= 65535) { Response.Write(""); return null; } NPOIExcelTools.AddSheet(workbook, countByPNGridItems, countByPN, "按零件号汇总总成"); if (outGoingDeail.Rows.Count >= 65535) { Response.Write(""); return null; } NPOIExcelTools.AddSheet(workbook, outGoingDeailGridItems, outGoingDeail, "发运明细"); Stream outputStream = Response.OutputStream; Response.Clear(); workbook.Write(outputStream); Response.Buffer = true; Response.AppendHeader("Content-Disposition", "attachment;filename= 上托盘扫描查询.xls"); Response.ContentEncoding = System.Text.Encoding.UTF8; Response.ContentType = "application/vnd.ms-excel"; Response.Flush(); return null; } } }