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