using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Data.Objects;
using Estsh.Web.Service;
using Estsh.Web.Util;
using System.Collections;
using NPOI.HSSF.UserModel;
using System.Globalization;
using System.IO;
using Estsh.Web.Models;
using IRemoteObject;
using ApServerProvider;
namespace Estsh.Core.Web.Controllers
{
public class ReworkReportController : Controller
{
ReworkReportService service = new ReworkReportService();
//
// GET: /ReworkReport/
public ActionResult Index()
{
return View();
}
public ActionResult GetModelTypeList()
{
Hashtable ht = new Hashtable();
DataTable dt = service.GetModelTypeList();
if (dt != null)
{
ArrayList arrList = DataTypeConvert.NewObject.DataTableToArrayList(dt);
ht.Add("list", arrList);
}
return Json(ht, JsonRequestBehavior.AllowGet);
}
public ActionResult GetBarCode(Pager pager, string txtSerialNumber, DateTime startDate, DateTime stopDate, string cmbTypeName, string cmbCurrStatus)
{
DataTable dt = this.service.GetBarCode(ref pager, txtSerialNumber, startDate, stopDate, cmbTypeName, cmbCurrStatus);
Hashtable result = new Hashtable();
ArrayList dataList = DataTypeConvert.NewObject.DataTableToArrayList(dt);
result.Add("rows", dataList);
result.Add("pager.totalRows", pager.totalRows);
return Json(result);
}
///
/// 维修明细
///
/// 条码
///
public ActionResult GetRepairDetials(Pager pager, string txtSerialNumber, DateTime startDate, DateTime stopDate)
{
DataTable dt = service.GetRepairDetials(ref pager, txtSerialNumber, startDate, stopDate);
Hashtable result = new Hashtable();
ArrayList dataList = DataTypeConvert.NewObject.DataTableToArrayList(dt);
result.Add("rows", dataList);
result.Add("pager.totalRows", pager.totalRows);
return Json(result);
}
///
/// 关键零件
///
///
///
public ActionResult GetKeyPart(Pager pager, string txtSerialNumber, DateTime startDate, DateTime stopDate)
{
DataTable dt = service.GetKeyPart(ref pager, txtSerialNumber, startDate, stopDate);
Hashtable result = new Hashtable();
ArrayList dataList = DataTypeConvert.NewObject.DataTableToArrayList(dt);
result.Add("rows", dataList);
result.Add("pager.totalRows", pager.totalRows);
return Json(result);
}
///
/// 非关键零件
///
///
///
public ActionResult GetNotKeyPart(Pager pager, string txtSerialNumber, DateTime startDate, DateTime stopDate)
{
DataTable dt = service.GetNotKeyPart(ref pager, txtSerialNumber, startDate, stopDate);
Hashtable result = new Hashtable();
ArrayList dataList = DataTypeConvert.NewObject.DataTableToArrayList(dt);
result.Add("rows", dataList);
result.Add("pager.totalRows", pager.totalRows);
return Json(result);
}
///
/// 关键数据
///
///
///
public ActionResult GetKeyData(Pager pager, string txtSerialNumber, DateTime startDate, DateTime stopDate)
{
DataTable dt = service.GetKeyData(ref pager, txtSerialNumber, startDate, stopDate);
Hashtable result = new Hashtable();
ArrayList dataList = DataTypeConvert.NewObject.DataTableToArrayList(dt);
result.Add("rows", dataList);
result.Add("pager.totalRows", pager.totalRows);
return Json(result);
}
///
/// 电功能检测
///
///
///
public ActionResult GetCheck(Pager pager, string txtSerialNumber, DateTime startDate, DateTime stopDate)
{
DataTable dt = service.GetCheck(ref pager, txtSerialNumber, startDate, stopDate);
Hashtable result = new Hashtable();
ArrayList dataList = DataTypeConvert.NewObject.DataTableToArrayList(dt);
result.Add("rows", dataList);
result.Add("pager.totalRows", pager.totalRows);
return Json(result);
}
///
/// 关键零件
///
///
///
public ActionResult GetKeyParts(Pager pager, string txtSerialNumber, DateTime startDate, DateTime stopDate)
{
DataTable dt = service.GetKeyParts(ref pager, txtSerialNumber, startDate, stopDate);
Hashtable result = new Hashtable();
ArrayList dataList = DataTypeConvert.NewObject.DataTableToArrayList(dt);
result.Add("rows", dataList);
result.Add("pager.totalRows", pager.totalRows);
return Json(result);
}
///
/// 导出
///
///
///
///
///
///
///
///
public ActionResult exportData(int rowCount, string txtSerialNumber, DateTime startDate, DateTime stopDate, string cmbTypeName, string cmbCurrStatus)
{
Pager pager = new Pager();
pager.pageSize = rowCount;
DataTable barCodeTable = this.service.GetBarCode(ref pager, txtSerialNumber, startDate, stopDate, cmbTypeName, cmbCurrStatus);
DataTable repairDetials = this.service.GetRepairDetials(ref pager, txtSerialNumber, startDate, stopDate);
DataTable keyPart = service.GetKeyPart(ref pager, txtSerialNumber, startDate, stopDate);
DataTable notKeyPart = service.GetNotKeyPart(ref pager, txtSerialNumber, startDate, stopDate);
DataTable keyData = service.GetKeyData(ref pager, txtSerialNumber, startDate, stopDate);
DataTable checkData = service.GetCheck(ref pager, txtSerialNumber, startDate, stopDate);
DataTable keyParts = service.GetKeyParts(ref pager, txtSerialNumber, startDate, stopDate);
Stream outputStream = Response.OutputStream;
string AbsolutePath = Request.UrlReferrer.AbsolutePath;
string url = AbsolutePath.Remove(0, Request.ApplicationPath.Length);
GridColumnService colService = new GridColumnService();
Models.SysWebGridColumn[] mainGridColumn = colService.GetColumnByUrl(url, "maingrid");
Models.SysWebGridColumn[] repairColumn = colService.GetColumnByUrl(url, "维修明细");
Models.SysWebGridColumn[] keyPartColumn = colService.GetColumnByUrl(url, "关键零件更换");
// Models.SysWebGridColumn[] notKeyPartColumn = colService.GetColumnByUrl(url, "非关键零件更换");
Models.SysWebGridColumn[] keyDataColumn = colService.GetColumnByUrl(url, "关键数据");
Models.SysWebGridColumn[] checkDataColumn = colService.GetColumnByUrl(url, "电功能检测");
Models.SysWebGridColumn[] keyPartsColumn = colService.GetColumnByUrl(url, "关键零件");
HSSFWorkbook workbook = NPOIExcelTools.DataTableToWorkbook(mainGridColumn,barCodeTable, "条码");//将汇总表转换为Workbook
NPOIExcelTools.AddSheet(workbook, repairColumn, repairDetials, "维修明细");//添加明细Sheet
NPOIExcelTools.AddSheet(workbook, keyPartColumn, keyPart, "关键零件更换");//添加明细Sheet
// NPOIExcelTools.AddSheet(workbook, notKeyPartColumn, notKeyPart, "非关键零件更换");//添加明细Sheet
NPOIExcelTools.AddSheet(workbook, keyDataColumn, keyData, "关键数据");//添加明细Sheet
NPOIExcelTools.AddSheet(workbook, checkDataColumn, checkData, "电功能检测");//添加明细Sheet
NPOIExcelTools.AddSheet(workbook, keyPartsColumn, keyParts, "关键零件");//添加明细Sheet
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;
}
}
}