using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web.Mvc; using QMAPP.MESReport.Web.Models.LineQTY; using QMAPP.Common.Web.Controllers; using QMFrameWork.WebUI.Attribute; using QMFrameWork.Data; using QMAPP.Entity; using QMAPP.ServicesAgent; using QMAPP.MESReport.Entity.LineQTY; using QMFrameWork.WebUI.QMEChart; using QMFrameWork.WebUI.QMEChart.Data; using QMAPP.MESReport.Web.Models; using System.Text; using QMFrameWork.Common.ExcelOperation; using QMFrameWork.Log; using ExcelOperationHelper = QMAPP.MESReport.Web.Common.ExcelOperationHelper; namespace QMAPP.MESReport.Web.Controllers { /// /// 废品率统计--报废原因统计-报废趋势统计 /// 周晓东 /// 20180425 /// public class WasteRateCountController : QController { #region 废品率统计-柱状图 public ActionResult WasteRateCountView() { QTYCompletionRateVModel seachModel = new QTYCompletionRateVModel(); seachModel.START_DATE = DateTime.Now.Date.AddDays(-30).ToString("yyyy-MM-dd HH:mm:ss"); seachModel.END_DATE = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); return View(seachModel); } #region 表 /// /// 异步刷新TABLE /// /// /// public ActionResult GetTable(string WORKCENTER_CODE, string START_DATE, string END_DATE) { ServiceAgent wcfAgent = this.GetServiceAgent(); RepairRateCountDModel condition = new RepairRateCountDModel(); condition.WORKCENTER_CODE = WORKCENTER_CODE; condition.START_DATE = START_DATE; condition.END_DATE = END_DATE; //返修结果-报废 condition.MENDRESULT = "2"; List nli = new List(); try { #region wcf服务统一接口 var dataResult = wcfAgent.InvokeServiceFunction>>("RepairRateCountBLL_GetAllList", condition); nli = dataResult.Result; #endregion } catch (Exception ex) { throw ex; } string sss = GetHTMLStr(nli, WORKCENTER_CODE); return Json(sss); } /// /// 拼接字符串 /// /// public string GetHTMLStr(List nli, string WORKCENTER_CODE) { StringBuilder html = new StringBuilder(); if (nli == null || nli.Count == 0) { return "没有数据"; } var workcenter = ""; if (!string.IsNullOrEmpty(WORKCENTER_CODE)) { if (WORKCENTER_CODE == "0") { workcenter = "注塑"; } if (WORKCENTER_CODE == "1") { workcenter = "门板"; } if (WORKCENTER_CODE == "2") { workcenter = "仪表板"; } } //拼接表头 html.Append("" + workcenter + ""); foreach (RepairRateCountDModel item in nli) { //if (html.ToString().Contains(item.MATERIAL_SHORT)) //{ // continue; //} html.Append(""); html.Append(item.MATERIAL_SHORT); html.Append(""); } html.Append(""); //拼接第一行 html.Append("报废"); foreach (RepairRateCountDModel item in nli) { //if (html.ToString().Contains(item.MATERIAL_SHORT)) //{ // continue; //} html.Append(""); html.Append(item.QTY); html.Append(""); } html.Append(""); //拼接第二行 html.Append("生产"); foreach (RepairRateCountDModel item in nli) { //if (html.ToString().Contains(item.MATERIAL_SHORT)) //{ // continue; //} html.Append(""); html.Append(item.COMPLETE_QTY); html.Append(""); } html.Append(""); //Dictionary> dls = new Dictionary>(); ////对结果集分类 //foreach (RepairRateCountDModel item in nli) //{ // if (dls.Keys.Contains(item.MATERIAL_NAME + item.MATERIAL_SHORT )) // { // //则添加到KEY下 // dls[item.MATERIAL_NAME + item.MATERIAL_SHORT ].Add(item); // continue; // } // else // { // //新建key // List li = new List(); // li.Add(item); // dls.Add(item.MATERIAL_NAME + item.MATERIAL_SHORT , li); // } //} ////拼接主体数据 //foreach (List item in dls.Values) //{ // html.Append(""); // html.Append("废品率"); // html.Append(""); // foreach (RepairRateCountDModel itit in item) // { // html.Append(""); // html.Append((Convert.ToDouble(itit.NOK_QTY)*100/Convert.ToDouble(itit.QTY)).ToString("0.00")+"%"); // html.Append(""); // } // html.Append(""); //} return html.ToString(); } #endregion #region 图 [HandleException] public ActionResult GetEchartDataBar1() { RepairRateCountVModel seachModel = null; DataPage page = null; ServiceAgent wcfAgent = this.GetServiceAgent(); RepairRateCountDModel condition = null; List nli = new List(); try { //获取查询对象 seachModel = GetModel(); //获取前台分页设置信息 page = this.GetDataPage(seachModel); condition = CopyToModel(seachModel); //返修结果-报废 condition.MENDRESULT = "2"; #region wcf服务统一接口 var dataResult = wcfAgent.InvokeServiceFunction>>("RepairRateCountBLL_GetAllList", condition); nli = dataResult.Result; #endregion } catch (Exception ex) { throw ex; } //return Content(strOption); var workcenter = ""; if (!string.IsNullOrEmpty(condition.WORKCENTER_CODE)) { if (condition.WORKCENTER_CODE == "0") { workcenter = "注塑"; } if (condition.WORKCENTER_CODE == "1") { workcenter = "门板"; } if (condition.WORKCENTER_CODE == "2") { workcenter = "仪表板"; } } return Content(setOptionRepair(nli, workcenter + "报废数量", workcenter + "生产数量")); } public string setOptionRepair(List nli, string name1, string name2) { #region 源数据定义 string jihua = "", wancheng = "", wclv = "", riqi = "", dou = ""; bool first = true; if (nli == null || nli.Count == 0) { jihua += "''"; wancheng += "''"; wclv += "''"; riqi += "''"; } else { //jihua += "'',"; //wancheng += "'',"; //wclv += "'',"; //riqi += "'',"; foreach (RepairRateCountDModel item in nli) { //jihua=生成数量QTY,wancheng=返修数量COMPLETE_QTY。 借用 jihua += dou + "'" + item.QTY + "'"; wancheng += dou + "'" + item.COMPLETE_QTY + "'"; double fenmu = 1; if (!string.IsNullOrEmpty(item.COMPLETE_QTY) && item.COMPLETE_QTY != "0") { fenmu = Convert.ToDouble(item.COMPLETE_QTY); } double fenzi = 0; if (!string.IsNullOrEmpty(item.QTY)) { fenzi = Convert.ToDouble(item.QTY); } wclv += dou + "'" + (fenzi / fenmu * 100).ToString("0") + "'"; riqi += dou + "'" + item.MATERIAL_SHORT + "'"; if (first) { first = false; dou = ","; } } //jihua += ",''"; //wancheng += ",''"; //wclv += ",''"; //riqi += ",''"; } string strOption = @"{ noDataLoadingOption: { text: '无数据', effect: 'bubble', effectOption: { effect: { n: 0 } } }, dataZoom : { show : true, realtime : true, start : 0, end : 100 }, grid: { y2: 80 }, tooltip: { trigger: 'axis' }, toolbox: { show: false, feature: { mark: { show: true }, dataView: { show: true, readOnly: false }, magicType: { show: true, type: ['line', 'bar'] }, restore: { show: true }, saveAsImage: { show: true } } }, calculable: true, legend: { data: ['" + name1 + @"', '" + name2 + @"'] }, xAxis: [ { type: 'category', axisLabel : { //坐标轴刻度标签的相关设置。 interval:'auto', rotate:10 }, data: [" + riqi + @"] } ], yAxis: [ { type: 'value', name: '件', axisLabel: { formatter: '{value}' } }, { type: 'value', // name: '百分比', // axisLabel: { // formatter: '{value} %' // } scale: true, name: '百分比', max: 100, min: 0, boundaryGap: [" + wclv + @"] } ], series: [ { name: '" + name1 + @"', type: 'bar', data: [" + jihua + @"] }, { name: '" + name2 + @"', type: 'bar', data: [" + wancheng + @"] }, { name: '报废率', type: 'line', yAxisIndex: 1, data: [" + wclv + @"], itemStyle: { normal: { label: { show: true}} } } ] }"; #endregion return strOption; } #endregion #region 导出图片 [HttpPost] [HandleException] public ActionResult ExportBanCi() { string imgSend = Request.Form["hiChartImg"]; imgSend = imgSend.Replace(" ", "+"); string[] contents = imgSend.Split(','); imgSend = contents[1]; byte[] content = Convert.FromBase64String(imgSend); System.Web.Mvc.FileContentResult result = null; result = new System.Web.Mvc.FileContentResult(content, "application/png"); result.FileDownloadName = System.Web.HttpUtility.UrlEncode("报废统计.png", System.Text.Encoding.UTF8); return result; } #endregion #region 导出excel /// /// 导出excel /// /// 结果 [HandleException] public ActionResult ExportExcel() { QTYCompletionRateVModel seachModel = null; QTYCompletionRateDModel condition = null; DataTable exportDt = new DataTable(); string selectKey = Request["selectKey"]; ServiceAgent wcfAgent = this.GetServiceAgent(); try { //获取查询对象 seachModel = GetModel(); condition = CopyToModel(seachModel); //返修结果-报废 condition.MENDRESULT = "2"; //获取数据 var dataResult = wcfAgent.InvokeServiceFunction>("RepairRateCountBLL_GetExportData", condition); //通过返回dataResult判断 if (dataResult.Ex != null) { throw dataResult.Ex; } else if (dataResult.IsSuccess) { exportDt = dataResult.Result; } else { SetMessage(dataResult.Msg); return View(true); } //根据所选信息进行导出 if (!String.IsNullOrEmpty(selectKey)) { DataView dv = new DataView(exportDt); string strWhere = ""; string[] list = selectKey.Split(":".ToCharArray()); foreach (string ID in list) { strWhere += " PID='" + ID + "' or"; } if (strWhere != "") { strWhere = strWhere.Remove((strWhere.Length - 2), 2); } dv.RowFilter = strWhere; exportDt = dv.ToTable(); } //导出 IEExcelHelper ieExcelHelper = new IEExcelHelper(); var sheetInfo = ieExcelHelper.GetMainInfo("WasteRateCountExp"); var fileName = System.Guid.NewGuid().ToString() + ".xlsx"; ieExcelHelper.ExportExcel(sheetInfo, exportDt, Common.ExcelOperationHelper.GetTempPath() + fileName, true); return Content(fileName); } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo { ErrorInfo = ex, Info = "导出excel", Tag = "废品率" }); SetMessage("导出excel失败"); return View(true); } } /// /// 导出文件 /// /// public ActionResult ExportFile() { String filePath = Common.ExcelOperationHelper.GetTempPath(); String fileName = Request["FileName"]; ExcelOperationHelper.FileDownload(Response, filePath + fileName, "废品率.xlsx"); return Content(""); } #endregion #endregion #region 废品原因统计--饼状图 public ActionResult MenderReasonCountView() { RepairRateCountVModel seachModel = new RepairRateCountVModel(); seachModel.START_DATE = DateTime.Now.Date.AddDays(-30).ToString("yyyy-MM-dd HH:mm:ss"); seachModel.END_DATE = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); return View(seachModel); } #region 表 /// /// 异步刷新TABLE /// /// /// public ActionResult GetTableReason(string MaterialCode, string WORKCENTER_CODE, string MaterialName, string START_DATE, string END_DATE) { ServiceAgent wcfAgent = this.GetServiceAgent(); RepairRateCountDModel condition = new RepairRateCountDModel(); var materialName = MaterialName; condition.MaterialCode = MaterialCode; condition.WORKCENTER_CODE = WORKCENTER_CODE; condition.MaterialName = MaterialName; condition.START_DATE = START_DATE; condition.END_DATE = END_DATE; //报废原因 condition.SelectMender = "0"; List nli = new List(); try { #region wcf服务统一接口 var dataResult = wcfAgent.InvokeServiceFunction>>("RepairRateCountBLL_GetMenderReason", condition); nli = dataResult.Result; #endregion } catch (Exception ex) { throw ex; } string sss = GetHTMLStrReason(nli, materialName); return Json(sss); } /// /// 拼接字符串 /// /// public string GetHTMLStrReason(List nli, string materialName) { StringBuilder html = new StringBuilder(); if (nli == null || nli.Count == 0) { return "没有数据"; } //拼接表头 //html.Append(""); html.Append(""); foreach (RepairRateCountDModel item in nli) { html.Append(""); html.Append(item.DEFECTVALUE); html.Append(""); } html.Append(""); //拼接第一行 //html.Append("" + materialName + ""); html.Append(""); foreach (RepairRateCountDModel item in nli) { html.Append(""); html.Append(item.MENDNUMBER); html.Append(""); } html.Append(""); return html.ToString(); } #endregion #region 图 [HandleException] public ActionResult GetEchartDataPie1() { RepairRateCountVModel seachModel = null; DataPage page = null; ServiceAgent wcfAgent = this.GetServiceAgent(); RepairRateCountDModel condition = null; List nli = new List(); var MaterialName = ""; try { //获取查询对象 seachModel = GetModel(); if (string.IsNullOrEmpty(seachModel.WORKCENTER_CODE)) { //return Content(""); } else { //获取前台分页设置信息 page = this.GetDataPage(seachModel); condition = CopyToModel(seachModel); MaterialName = seachModel.MaterialName; condition.WORKCENTER_CODE = seachModel.WORKCENTER_CODE; condition.MaterialName = seachModel.MaterialName; //报废原因 condition.SelectMender = "0"; #region wcf服务统一接口 var dataResult = wcfAgent.InvokeServiceFunction>>( "RepairRateCountBLL_GetMenderReason", condition); nli = dataResult.Result; #endregion } } catch (Exception ex) { throw ex; } #region 源数据定义 //生成数据 List dataList = new List(); foreach (var repairRateCountDModel in nli) { dataList.Add(new TestEChartModel() { Value = repairRateCountDModel.MENDNUMBER, TypeValue = repairRateCountDModel.DEFECTVALUE }); } //dataList.Add(new TestEChartModel() { Value = "335", TypeValue = "直接访问" }); //dataList.Add(new TestEChartModel() { Value = "320", TypeValue = "邮件营销" }); //dataList.Add(new TestEChartModel() { Value = "310", TypeValue = "联盟广告" }); //dataList.Add(new TestEChartModel() { Value = "135", TypeValue = "视频广告" }); //dataList.Add(new TestEChartModel() { Value = "1548", TypeValue = "搜索引擎" }); #endregion #region 默认设置 QMEChartPie chartPie = new QMEChartPie() { PieType = "pie1" }; //if (nli == null || nli.Count == 0) //{ // dataList.Add(new TestEChartModel() { Value = "", TypeValue = "" }); // chartPie.DataList = dataList; // chartPie.PieData = QMEChartHelper.CovertDataToPieData(chartPie); // return Content(QMEChartHelper.QMECHelper(chartPie)); //} //设置数据源 chartPie.DataList = dataList; #region 设置标题 //标题有则显示。不设置为不显示标题 chartPie.Title = new QMECTitle(); chartPie.Title.Text = "缺陷统计"; //chartPie.Title.Subtext = MaterialName; chartPie.Title.X = "center";//对齐方式 #endregion #region Tooltip提示窗口设置 //是否显示ToolTip设置使用默认值初始化图形 chartPie.HaveTooltip = true; #endregion #region Legend图例设置 //是否生成Legend,不设置使用系统默认值 chartPie.HaveLegend = true; chartPie.LegendField = "TypeValue"; #endregion #region Toolbox工具栏设置 //是否生成ToolBox,不设置使用系统默认值 chartPie.HaveToolBox = false; #endregion //是否启用拖拽重计算特性 chartPie.Calculable = false; #region 设置Serie显示标题 chartPie.SerieName = "缺陷类型"; //chartPie.SerieName = "访问来源"; #endregion #region 生成图表所需要数据格式 //转换数据格式,值字段 chartPie.ValueField = "Value"; chartPie.PieData = QMEChartHelper.CovertDataToPieData(chartPie); #endregion return Content(QMEChartHelper.QMECHelper(chartPie)); //return Content(""); #endregion #region 自定义创建图表 //QMEChartPie chartPie = new QMEChartPie() { PieType = "pie1" }; //#region 设置标题 //chartPie.Title = new QMECTitle(); //chartPie.Title.Text = "某站点用户访问来源"; //chartPie.Title.Subtext = "纯属虚构"; //chartPie.Title.X = "center";//对齐方式 //#endregion //#region Tooltip提示窗口设置 //chartPie.HaveTooltip = true; //chartPie.Tooltip = new QMECTooltip(); //chartPie.Tooltip.Trigger = "item"; //chartPie.Tooltip.Formatter = "'{a}
{b} : {c} ({d}%)'"; //#endregion //#region Legend图例设置 //chartPie.HaveLegend = true; //chartPie.Legend = new QMECLegend() { Data = new List() }; //chartPie.Legend.Orient = "vertical"; //chartPie.Legend.X = "left"; //chartPie.Legend.Data.Add("直接访问"); //chartPie.Legend.Data.Add("邮件营销"); //chartPie.Legend.Data.Add("联盟广告"); //chartPie.Legend.Data.Add("视频广告"); //chartPie.Legend.Data.Add("搜索引擎"); //#endregion //#region Toolbox工具栏设置 //chartPie.HaveToolBox = true; //chartPie.Toolbox = new QMECToolbox() { Feature = new QMECFeature() { Mark = new QMECMark(), MagicType = new QMECMagicType() { Type = new List(), Option = new QMECOption() { Funnel = new QMECFunnel() } }, Restore = new QMECRestore(), SaveAsImage = new QMECSaveAsImage() } }; //chartPie.Toolbox.Show = true; //chartPie.Toolbox.Feature.Mark.Show = true; //chartPie.Toolbox.Feature.MagicType.Show = true; //chartPie.Toolbox.Feature.MagicType.Type.Add("pie"); //chartPie.Toolbox.Feature.MagicType.Type.Add("funnel"); //chartPie.Toolbox.Feature.MagicType.Option.Funnel.X = "25%"; //chartPie.Toolbox.Feature.MagicType.Option.Funnel.Width = "50%"; //chartPie.Toolbox.Feature.MagicType.Option.Funnel.FunnelAlign = "left"; //chartPie.Toolbox.Feature.MagicType.Option.Funnel.Max = "1548"; //chartPie.Toolbox.Feature.Restore.Show = true; //chartPie.Toolbox.Feature.SaveAsImage.Show = true; //#endregion //chartPie.Calculable = true; //#region 生成图表所需要数据格式 //chartPie.Serie = new QMECSerie(); //chartPie.Serie.PieData = "Auto"; //chartPie.Serie.Name = "访问来源"; //chartPie.Serie.Radius = "55%"; //chartPie.Serie.Type = "pie"; //chartPie.Serie.Center_X = "50%"; //chartPie.Serie.Center_Y = "60%"; //chartPie.Serie.Center = "Auto"; //List pieData = new List(); //pieData.Add(new QMECPieData() { Value = "335", Name = "直接访问" }); //pieData.Add(new QMECPieData() { Value = "310", Name = "邮件营销" }); //pieData.Add(new QMECPieData() { Value = "234", Name = "联盟广告" }); //pieData.Add(new QMECPieData() { Value = "135", Name = "视频广告" }); //pieData.Add(new QMECPieData() { Value = "1548", Name = "搜索引擎" }); //chartPie.PieData = pieData; //#endregion //return Content(QMAPP.Common.Web.QMEChart.QMEChartHelper.QMECHelper(chartPie)); #endregion } #endregion #region 导出excel /// /// 导出excel /// /// 结果 [HandleException] public ActionResult ExportExcelReason() { RepairRateCountVModel seachModel = null; RepairRateCountDModel condition = null; DataTable exportDt = new DataTable(); string selectKey = Request["selectKey"]; ServiceAgent wcfAgent = this.GetServiceAgent(); try { //获取查询对象 seachModel = GetModel(); condition = CopyToModel(seachModel); //报废原因 condition.SelectMender = "1"; //获取数据 var dataResult = wcfAgent.InvokeServiceFunction>("RepairRateCountBLL_GetExportDataReason", condition); //通过返回dataResult判断 if (dataResult.Ex != null) { throw dataResult.Ex; } else if (dataResult.IsSuccess) { exportDt = dataResult.Result; } else { SetMessage(dataResult.Msg); return View(true); } //根据所选信息进行导出 if (!String.IsNullOrEmpty(selectKey)) { DataView dv = new DataView(exportDt); string strWhere = ""; string[] list = selectKey.Split(":".ToCharArray()); foreach (string ID in list) { strWhere += " PID='" + ID + "' or"; } if (strWhere != "") { strWhere = strWhere.Remove((strWhere.Length - 2), 2); } dv.RowFilter = strWhere; exportDt = dv.ToTable(); } //导出 IEExcelHelper ieExcelHelper = new IEExcelHelper(); var sheetInfo = ieExcelHelper.GetMainInfo("MenderReasonCountExp"); var fileName = System.Guid.NewGuid().ToString() + ".xlsx"; ieExcelHelper.ExportExcel(sheetInfo, exportDt, Common.ExcelOperationHelper.GetTempPath() + fileName, true); return Content(fileName); } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo { ErrorInfo = ex, Info = "导出excel", Tag = "缺陷统计" }); SetMessage("导出excel失败"); return View(true); } } /// /// 导出文件 /// /// public ActionResult ExportFileReason() { String filePath = Common.ExcelOperationHelper.GetTempPath(); String fileName = Request["FileName"]; ExcelOperationHelper.FileDownload(Response, filePath + fileName, "缺陷统计.xlsx"); return Content(""); } #endregion #endregion #region 废品原因统计--饼状图 public ActionResult MenderTrendCountView() { RepairRateCountVModel seachModel = new RepairRateCountVModel(); seachModel.START_DATE = DateTime.Now.Date.AddDays(-30).ToString("yyyy-MM-dd HH:mm:ss"); seachModel.END_DATE = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); return View(seachModel); } #region 表 /// /// 异步刷新TABLE /// /// /// public ActionResult GetTableTrend(string MaterialCode, string MaterialName, string START_DATE, string END_DATE) { ServiceAgent wcfAgent = this.GetServiceAgent(); RepairRateCountDModel condition = new RepairRateCountDModel(); var materialName = MaterialName; condition.MaterialCode = MaterialCode; condition.START_DATE = START_DATE; condition.END_DATE = END_DATE; //报废趋势 condition.SelectMender = "1"; List nli = new List(); try { #region wcf服务统一接口 var dataResult = wcfAgent.InvokeServiceFunction>>("RepairRateCountBLL_GetMenderReason", condition); nli = dataResult.Result; #endregion } catch (Exception ex) { throw ex; } string sss = GetHTMLStrTrend(nli, materialName); return Json(sss); } /// /// 拼接字符串 /// /// public string GetHTMLStrTrend(List nli, string materialName) { StringBuilder html = new StringBuilder(); if (nli == null || nli.Count == 0) { return "没有数据"; } //拼接表头 //html.Append(""); html.Append(""); foreach (RepairRateCountDModel item in nli) { html.Append(""); html.Append(item.CREATEDATE); html.Append(""); } html.Append(""); //拼接第一行 //html.Append("" + materialName + ""); html.Append(""); foreach (RepairRateCountDModel item in nli) { html.Append(""); html.Append(item.MENDNUMBER); html.Append(""); } html.Append(""); return html.ToString(); } #endregion #region 图 [HandleException] public ActionResult GetEchartDataBar2() { RepairRateCountVModel seachModel = null; DataPage page = null; ServiceAgent wcfAgent = this.GetServiceAgent(); RepairRateCountDModel condition = null; List nli = new List(); var MaterialName = ""; try { //获取查询对象 seachModel = GetModel(); if (string.IsNullOrEmpty(seachModel.MaterialCode)) { //return Content(""); } else { //获取前台分页设置信息 page = this.GetDataPage(seachModel); condition = CopyToModel(seachModel); MaterialName = seachModel.MaterialName; //报废趋势 condition.SelectMender = "1"; #region wcf服务统一接口 var dataResult = wcfAgent.InvokeServiceFunction>>( "RepairRateCountBLL_GetMenderReason", condition); nli = dataResult.Result; } #endregion } catch (Exception ex) { throw ex; } string XZ = "", num = "", dou = ""; bool first = true; foreach (var item in nli) { XZ += dou + "'" + item.CREATEDATE + "'"; num += dou + "'" + item.MENDNUMBER + "'"; //tday += dou + "'" + DLEq[item][0].TDAY + timetype + item + "'"; if (first) { first = false; dou = ","; } } #region 源数据定义 string strOption = @"{ noDataLoadingOption: { text: '无数据', effect: 'bubble', effectOption: { effect: { n: 0 } } }, tooltip: { trigger: 'axis' }, toolbox: { show: false, feature: { mark: { show: true }, dataView: { show: true, readOnly: false }, magicType: { show: true, type: ['line', 'bar'] }, restore: { show: true }, saveAsImage: { show: true } } }, calculable: true, legend: { data: ['报废数量'] }, xAxis: [ { type: 'category', axisLabel : { //坐标轴刻度标签的相关设置。 interval:'auto', rotate:20 }, data: [" + XZ + @"] } ], yAxis: [ { type: 'value', name: '件', axisLabel: { formatter: '{value}' } } ], series: [ { name: '报废数量', type: 'bar', data: [" + num + @"] } ] }"; #endregion return Content(strOption); } #endregion #region 导出excel /// /// 导出excel /// /// 结果 [HandleException] public ActionResult ExportExcelTrend() { RepairRateCountVModel seachModel = null; RepairRateCountDModel condition = null; DataTable exportDt = new DataTable(); string selectKey = Request["selectKey"]; ServiceAgent wcfAgent = this.GetServiceAgent(); try { //获取查询对象 seachModel = GetModel(); condition = CopyToModel(seachModel); //报废趋势 condition.SelectMender = "1"; //获取数据 var dataResult = wcfAgent.InvokeServiceFunction>("RepairRateCountBLL_GetExportDataReason", condition); //通过返回dataResult判断 if (dataResult.Ex != null) { throw dataResult.Ex; } else if (dataResult.IsSuccess) { exportDt = dataResult.Result; } else { SetMessage(dataResult.Msg); return View(true); } //根据所选信息进行导出 if (!String.IsNullOrEmpty(selectKey)) { DataView dv = new DataView(exportDt); string strWhere = ""; string[] list = selectKey.Split(":".ToCharArray()); foreach (string ID in list) { strWhere += " PID='" + ID + "' or"; } if (strWhere != "") { strWhere = strWhere.Remove((strWhere.Length - 2), 2); } dv.RowFilter = strWhere; exportDt = dv.ToTable(); } //导出 IEExcelHelper ieExcelHelper = new IEExcelHelper(); var sheetInfo = ieExcelHelper.GetMainInfo("MenderTrendCountExp"); var fileName = System.Guid.NewGuid().ToString() + ".xlsx"; ieExcelHelper.ExportExcel(sheetInfo, exportDt, Common.ExcelOperationHelper.GetTempPath() + fileName, true); return Content(fileName); } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo { ErrorInfo = ex, Info = "导出excel", Tag = "报废趋势" }); SetMessage("导出excel失败"); return View(true); } } /// /// 导出文件 /// /// public ActionResult ExportFileTrend() { String filePath = Common.ExcelOperationHelper.GetTempPath(); String fileName = Request["FileName"]; ExcelOperationHelper.FileDownload(Response, filePath + fileName, "报废趋势.xlsx"); return Content(""); } #endregion #endregion } }