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