using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using Estsh.Web.Util; using Estsh.Web.Service; using System.Collections; using Estsh.Web.Models; using NPOI.HSSF.UserModel; using System.IO; using System.Data; using System.Text; using System.Xml; /*************************************************************************************************** * * 作者:王勇 * 创建时间:2013.04.15 * 描述:客户订单维护 * * *************************************************************************************************/ namespace Estsh.Core.Web.Controllers { /// /// 客户订单维护 /// public class ProcessOutputController : Controller { private ProcessOutputService service = new ProcessOutputService(); // // GET: /ProcessOutput/ public ActionResult Index() { return View(); } /// /// 获取列表数据 /// /// 菜单名称 /// 分页 /// 排序方式 /// 排序列 /// public ActionResult getProcessOutputListByPage(string part_id, string process_id, string shift_id, string pdline_id, string startDate, string stopDate, Pager pager) { if (string.IsNullOrEmpty(startDate)) { return null; } Hashtable result = new Hashtable(); part_id = InitStr(part_id); process_id = InitStr(process_id); shift_id = InitStr(shift_id); pdline_id = InitStr(pdline_id); DataTable dataHt = this.service.getProcessOutputListByPage(part_id, process_id, shift_id, pdline_id, startDate, stopDate,ref pager); result.Add("rows", DataTypeConvert.NewObject.DataTableToArrayList(dataHt)); result.Add("pager.totalRows", pager.totalRows); //Session["ProcessOutput"] = dataHt["dataList"]; return Json(result); } /// /// 获取下拉列表数据 /// /// public ActionResult getSelectProcessOutput() { Hashtable result = new Hashtable(); ArrayList ProcessOutputList = this.service.getSelectProcessOutput(); result.Add("list", ProcessOutputList); return Json(result, JsonRequestBehavior.AllowGet); } /// /// 保存数据 /// /// public ActionResult saveProcessOutput() { String editType = Request["editType"].ToString(); String part_id = Request["part_id"].ToString(); String cust_order = Request["cust_order"].ToString(); String ship_unit = Request["ship_unit"].ToString(); Hashtable htParams = new Hashtable(); htParams.Add("@part_id", part_id); htParams.Add("@cust_order", cust_order); htParams.Add("@ship_unit", ship_unit); String message = ""; if (editType != null && editType.Trim().Equals("edit")) { try { this.service.updateProcessOutput(htParams); message = "修改成功"; } catch (Exception e) { message = "修改失败!"; } } else { try { this.service.saveProcessOutput(htParams); message = "添加成功"; } catch (Exception e) { message = "添加失败!"; } } Hashtable result = new Hashtable(); result.Add("message", message); return Json(result); } /// /// 查看详情 /// /// /// public ActionResult getProcessOutput(String ProcessOutput_id) { ArrayList ProcessOutputInfo = this.service.getProcessOutput(ProcessOutput_id); Hashtable htProcessOutputInfo = (Hashtable)ProcessOutputInfo[0]; ViewData.Add("part_id", htProcessOutputInfo["part_id"]); ViewData.Add("cust_order", htProcessOutputInfo["cust_order"]); ViewData.Add("ship_unit", htProcessOutputInfo["ship_unit"]); return View("~/Views/ProcessOutputManage/viewProcessOutput.aspx"); } /// /// 编辑 /// /// /// public ActionResult editProcessOutput(String part_id) { ArrayList ProcessOutputInfo = this.service.getProcessOutput(part_id); Hashtable htProcessOutputInfo = (Hashtable)ProcessOutputInfo[0]; ViewData.Add("editType", "edit"); ViewData.Add("part_id", part_id); ViewData.Add("cust_order", htProcessOutputInfo["cust_order"]); ViewData.Add("ship_unit", htProcessOutputInfo["ship_unit"]); return View("~/Views/ProcessOutput/EditProcessOutput.aspx"); } /// /// 删除 /// /// /// public ActionResult deleteProcessOutput(String ids) { int delCount = 0; try { delCount = this.service.deleteProcessOutput(ids); } catch (Exception e) { delCount = -1; } Hashtable result = new Hashtable(); result.Add("status", delCount); return Json(result); } public string InitStr(string str) { string resultStr = string.Empty; if (string.IsNullOrEmpty(str) == false) { string[] strArr = str.Split(','); for (int i = 0; i < strArr.Length; i++) { if (i != 0) { resultStr += ","; } resultStr += string.Format("'{0}'", strArr[i]); } } return resultStr; } /// /// 导出 /// /// /// /// /// /// /// public ActionResult ExportProcessOutput(string part_id, string process_id, string shift_id, string pdline_id, string startDate, string stopDate, int rowCount,int pageIndex) { Pager pager = new Pager(); pager.pageSize = rowCount; pager.pageNo = pageIndex; part_id = InitStr(part_id); process_id = InitStr(process_id); shift_id = InitStr(shift_id); pdline_id = InitStr(pdline_id); DataTable data = this.service.getProcessOutputListByPage(part_id, process_id, shift_id, pdline_id, startDate, stopDate, ref pager); Stream outputStream = Response.OutputStream; string AbsolutePath = Request.UrlReferrer.AbsolutePath; string url = AbsolutePath.Remove(0, Request.ApplicationPath.Length); GridColumnService colService = new GridColumnService(); Models.SysWebGridColumn[] gridItems = colService.GetColumnByUrl(url); HSSFWorkbook workbook = NPOIExcelTools.DataTableToWorkbook(gridItems, data, "即时产能"); //ArrayList arr = data["dataList"] as ArrayList; //HSSFWorkbook workbook = new HSSFWorkbook(); //Stream outputStream = Response.OutputStream; //HSSFSheet sheet = (HSSFSheet)workbook.CreateSheet("即时产能"); //try //{ // if (workbook != null) // { // HSSFRow headRow = (HSSFRow)sheet.CreateRow(0); // headRow.CreateCell(0).SetCellValue("产线"); // headRow.CreateCell(1).SetCellValue("生产日期"); // headRow.CreateCell(2).SetCellValue("零件号"); // headRow.CreateCell(3).SetCellValue("数量"); // headRow.CreateCell(4).SetCellValue("制程"); // headRow.CreateCell(5).SetCellValue("班别"); // headRow.CreateCell(6).SetCellValue("零件描述"); // } // for (int i = 0; i < arr.Count; i++) // { // Hashtable ht = arr[i] as Hashtable; // int row = i + 1; // HSSFRow dataRow = (HSSFRow)sheet.CreateRow(row); // if (ht["pdline_name"] != null && ht["pdline_name"] != DBNull.Value) // dataRow.CreateCell(0).SetCellValue(ht["pdline_name"].ToString()); // if (ht["work_date"] != null && ht["work_date"] != DBNull.Value) // dataRow.CreateCell(1).SetCellValue(ht["work_date"].ToString()); // if (ht["part_no"] != null && ht["part_no"] != DBNull.Value) // dataRow.CreateCell(2).SetCellValue(ht["part_no"].ToString()); // if (ht["output_qty"] != null && ht["output_qty"] != DBNull.Value) // dataRow.CreateCell(3).SetCellValue(ht["output_qty"].ToString()); // if (ht["process_name"] != null && ht["process_name"] != DBNull.Value) // dataRow.CreateCell(4).SetCellValue(ht["process_name"].ToString()); // if (ht["shift_name"] != null && ht["shift_name"] != DBNull.Value) // dataRow.CreateCell(5).SetCellValue(ht["shift_name"].ToString()); // if (ht["part_spec"] != null && ht["part_spec"] != DBNull.Value) // dataRow.CreateCell(6).SetCellValue(ht["part_spec"].ToString()); // } Response.Clear(); workbook.Write(outputStream); Response.Buffer = true; Response.AppendHeader("Content-Disposition", "attachment;filename=即时产能(" + Convert.ToDateTime(startDate).ToString("yyyy-MM-dd") + "至" + Convert.ToDateTime(stopDate).ToString("yyyy-MM-dd") + ").xls"); Response.ContentEncoding = System.Text.Encoding.UTF8; Response.ContentType = "application/vnd.ms-excel"; Response.Flush(); return null; } #if(false) public ActionResult getColumn2D() { StringBuilder result = new StringBuilder(); XmlDocument document = new XmlDocument(); XmlDeclaration declaration = document.CreateXmlDeclaration("1.0", "GBK", "no"); document.AppendChild(declaration); XmlElement root = document.CreateElement("chart"); root.SetAttribute("baseFontSize", "10"); root.SetAttribute("caption", "即时产能"); root.SetAttribute("rotateYAxisName", "0"); root.SetAttribute("showValues", "1"); root.SetAttribute("subcaption", ""); root.SetAttribute("useRoundEdges", "1"); root.SetAttribute("xAxisName", "零件号"); root.SetAttribute("yAxisName", "数量"); if (Session["ProcessOutput"] != null) { ArrayList dataList = Session["ProcessOutput"] as ArrayList; if (dataList.Count > 0) { for (int i = 0; i < dataList.Count; i++) { Hashtable ht = dataList[i] as Hashtable; XmlElement set = document.CreateElement("set"); if (ht["part_no"] != null && ht["part_no"] != DBNull.Value) { set.SetAttribute("label", ht["part_no"].ToString()); } if (ht["output_qty"] != null && ht["output_qty"] != DBNull.Value) { set.SetAttribute("value", ht["output_qty"].ToString()); } set.SetAttribute("color", "009933"); root.AppendChild(set); } } } XmlElement trendlines = document.CreateElement("trendlines"); XmlElement line = document.CreateElement("line"); line.SetAttribute("color", "009933"); line.SetAttribute("displayvalue", ""); line.SetAttribute("startValue", "0"); trendlines.AppendChild(line); root.AppendChild(trendlines); XmlElement styles = document.CreateElement("styles"); styles.AppendChild(document.CreateElement("definition")); styles.AppendChild(document.CreateElement("application")); root.AppendChild(styles); document.AppendChild(root); return Content(document.InnerXml, "text/xml", Encoding.Default); } #endif /// /// 获取产线 /// /// public ActionResult GetPdLine(string q) { Hashtable resault = new Hashtable(); ArrayList pdlineList = service.GetPdline(q); resault.Add("fromList", pdlineList); return Json(resault, JsonRequestBehavior.AllowGet); } /// /// 获取班别 /// /// public ActionResult GetShiftData(string q) { Hashtable resault = new Hashtable(); ArrayList pdlineList = service.GetShiftData(q); resault.Add("fromList", pdlineList); return Json(resault, JsonRequestBehavior.AllowGet); } /// /// 获得制程 /// /// public ActionResult GetProcessData(string q) { Hashtable resault = new Hashtable(); ArrayList pdlineList = service.GetProcessData(q); resault.Add("fromList", pdlineList); return Json(resault, JsonRequestBehavior.AllowGet); } /// /// 获得零件号 /// /// public ActionResult GetPartNo() { Hashtable resault = new Hashtable(); ArrayList pdlineList = service.GetPartNo(); resault.Add("fromList", pdlineList); return Json(resault, JsonRequestBehavior.AllowGet); } } }