using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using Estsh.Web.Service; using System.Collections; using System.Data; using System.Text; using Estsh.Web.Util; using System.IO; using NPOI.HSSF.UserModel; namespace Estsh.Core.Web.Controllers { public class ProduceQueryController : Controller { /*************************************************************************************************** * * 作者:张茂忠 * 创建时间:2013.04.22 * 描述:产量查询模块Controller层 * 修改日志: * * * *************************************************************************************************/ private ProduceQueryService service = new ProduceQueryService(); DataTable _dt = null; DataTable _dtDetail = null; public ActionResult Index() { return View(); } /// /// 获取汇总 /// /// public ActionResult GetSummary() { string _where = ""; string type_id = string.Empty; StringBuilder data = new StringBuilder(); if (!string.IsNullOrEmpty(Request["cbTypeName"])) { _where += " and type_id='" + Request["cbTypeName"].ToString() + "'"; type_id = Request["cbTypeName"].ToString(); } if (!string.IsNullOrEmpty(Request["txtStartCarno"]) && !string.IsNullOrEmpty(Request["txtEndCarno"])) { _where += " and a.car_no>= '" + Request["txtStartCarno"].ToString().Trim() + "' and a.car_no<='" + Request["txtEndCarno"].ToString().Trim() + "' "; } if (!string.IsNullOrEmpty(Request["type"])) { string sbustr=string.Empty; String[] str = Request["type"].ToString().Split(','); for (int i = 0; i < str.Length; i++) { sbustr += string.Format("'{0}',", str[i]); } char[] Splitor = { ',' }; sbustr = sbustr.TrimEnd(Splitor); _where += "AND a.type in (" + sbustr + ")"; } if (!string.IsNullOrEmpty(Request["StartTime"]) && !string.IsNullOrEmpty(Request["EndTime"])) { if (!string.IsNullOrEmpty(Request["txtStartCarno"]) && !string.IsNullOrEmpty(Request["txtEndCarno"])) { _where += " and convert(datetime,a.create_ymd) between convert(datetime,'" + Request["StartTime"].ToString() + "') and convert(datetime,'" + Request["EndTime"].ToString() + "') "; } else { _where += " and ((a.out_pdline_ymd = convert(varchar(10),'" + Request["StartTime"].ToString() + "',23) and a.out_pdline_hms >= convert(varchar(10),'" + Request["StartTime"].ToString() + "',108)) "; _where += " or (a.out_pdline_ymd > convert(varchar(10),'" + Request["StartTime"].ToString() + "',23) and a.out_pdline_ymd < convert(varchar(10),'" + Request["EndTime"].ToString() + "',23))"; _where += " or (a.out_pdline_ymd = convert(varchar(10),'" + Request["EndTime"].ToString() + "',23) and a.out_pdline_hms <= convert(varchar(10),'" + Request["EndTime"].ToString() + "',108)))"; } } Hashtable hs = new Hashtable(); DataTable dt = new DataTable(); ArrayList list = service.GetSummary(_where, ref dt); //获取明细 DataTable dtdetail = new DataTable(); ArrayList listDetail = service.GetSummaryDtail(_where, type_id, ref dtdetail); ViewData.Add("users", dt); ViewData.Add("usersDetail", dtdetail); ViewData.Add("type_id", type_id); ViewData.Add("StartCar_no", Request["txtStartCarno"].ToString().Trim()); ViewData.Add("EndCar_no", Request["txtEndCarno"].ToString().Trim()); ViewData.Add("type", Request["type"].ToString()); Session["dt"] = dt; Session["dtdetail"] = dtdetail; return View("~/Views/ProduceQuery/ProduceQuery.aspx"); } public ActionResult exportData() { // 如果没有数据就直接返回 Hashtable resault = new Hashtable(); _dt = (DataTable)Session["dt"]; _dtDetail = (DataTable)Session["dtdetail"]; HSSFWorkbook workbook = new HSSFWorkbook(); Stream outputStream = Response.OutputStream; HSSFSheet sheet = (HSSFSheet)workbook.CreateSheet("汇总信息"); HSSFSheet sheetDetail = (HSSFSheet)workbook.CreateSheet("明细信息"); if (Session["dt"].ToString() != "" || Session["dtdetail"].ToString() != "") { try { if (workbook != null) { HSSFRow headRow = (HSSFRow)sheet.CreateRow(0); headRow.CreateCell(0).SetCellValue("车型"); headRow.CreateCell(1).SetCellValue("配置"); headRow.CreateCell(2).SetCellValue("数量"); HSSFRow headRowDetail = (HSSFRow)sheetDetail.CreateRow(0); headRowDetail.CreateCell(0).SetCellValue("车型"); headRowDetail.CreateCell(1).SetCellValue("总成"); headRowDetail.CreateCell(2).SetCellValue("数量"); headRowDetail.CreateCell(3).SetCellValue("生产类型"); } for (int i = 0; i < _dt.Rows.Count; i++) { int row = i + 1; HSSFRow dataRow = (HSSFRow)sheet.CreateRow(row); dataRow.CreateCell(0).SetCellValue(_dt.Rows[i]["type_name"].ToString()); dataRow.CreateCell(1).SetCellValue(_dt.Rows[i]["model_desc"].ToString()); dataRow.CreateCell(2).SetCellValue(Convert.ToInt32(_dt.Rows[i]["number"])); } for (int i = 0; i < _dtDetail.Rows.Count; i++) { int row = i + 1; HSSFRow dataRow = (HSSFRow)sheetDetail.CreateRow(row); dataRow.CreateCell(0).SetCellValue(_dtDetail.Rows[i]["type_name"].ToString()); dataRow.CreateCell(1).SetCellValue(_dtDetail.Rows[i]["part_no"].ToString()); dataRow.CreateCell(2).SetCellValue(Convert.ToInt32(_dtDetail.Rows[i]["number"])); dataRow.CreateCell(3).SetCellValue(_dtDetail.Rows[i]["type"].ToString()); } Response.Clear(); workbook.Write(outputStream); Response.Buffer = true; Response.AppendHeader("Content-Disposition", "attachment;filename=Excel.xls"); Response.ContentEncoding = System.Text.Encoding.UTF8; Response.ContentType = "application/vnd.ms-excel"; Response.Flush(); } catch (Exception e) { workbook = null; } finally { workbook = null; } } else { workbook.Write(outputStream); Response.Buffer = true; Response.AppendHeader("Content-Disposition", "attachment;filename=Excel.xls"); Response.ContentEncoding = System.Text.Encoding.UTF8; Response.ContentType = "application/vnd.ms-excel"; Response.Flush(); } return null; } /// /// 查询车型 /// /// public ActionResult GetModelType() { Hashtable hs = new Hashtable(); ArrayList list = service.GetModelType(); hs.Add("list", list); return Json(hs, JsonRequestBehavior.AllowGet); } /// /// 查询生产类型 /// /// public ActionResult GetProduceType() { Hashtable hs = new Hashtable(); //ArrayList list = service.GetProduceType(); //hs.Add("list", list); return Json(hs, JsonRequestBehavior.AllowGet); } public ActionResult getDepartmentDropListData() { string path = Request.ApplicationPath; if (path.EndsWith("/")) { path = path.Substring(0, path.Length - 1); } List treeNodes = new List(); DataTable list = service.GetProduceType(); for (int i = 0; i < list.Rows.Count; i++) { TreeNode node = new TreeNode(); node = service.convert(list.Rows[i]["value"].ToString(), list.Rows[i]["key"].ToString(), path); node.parentId = "0"; treeNodes.Add(node); } Hashtable result = new Hashtable(); result.Add("treeNodes", treeNodes); return Json(result, JsonRequestBehavior.AllowGet); } } }