天津投入产出系统后端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

144 lines
4.9 KiB

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Configuration;
using System.Text;
using System.IO;
using System.Reflection;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Html;
using QMFrameWork.Common.Serialization;
using QMFrameWork.Common.ExcelOperation;
using QMAPP.Common.Web.Models;
namespace QMAPP.Common.Web.Controllers
{
/// <summary>
/// 信息输出控制器
/// </summary>
public class MessageOutputController : Controller
{
#region 输出导入数据提示信息
public ActionResult OutputImportMessage(ImportMessageModel model)
{
string fileName = "";
try
{
//获取导入配置信息
SheetInfo mainInfo = new IEExcelHelper().GetMainInfo(model.InfoName);
model.TotalRecordCount = model.ErrorDt.Rows.Count;
//过滤异常数据
for (int i = model.ErrorDt.Rows.Count - 1; i >= 0; i--)
{
if (model.ErrorDt.Rows[i]["InfoError"] == System.DBNull.Value || model.ErrorDt.Rows[i]["InfoError"].ToString() == "")
{
model.ErrorDt.Rows.RemoveAt(i);
}
}
#region 构成异常数据表格
model.TableHtml = "";
model.TableHtml += "<div style=\"overflow-x: auto; overflow-y: auto; height: 100%; width: 100%;\">";
model.TableHtml += "<table id=\"tblError\" style=\"width:100%;border: 1px solid #CCFFFF\" iconCls=\"icon-edit\">";
model.TableHtml += "<thead class=\"datagrid-header\">";
foreach (CellInfo item in mainInfo.ColInfos)
{
model.TableHtml += string.Format("<th field=\"{0}\" nowrap=nowrap class=\"datagrid-header td\" align=\"center\" width=\"120px\">{1}</th>", item.ColumnName, item.ColumnTitle);
}
model.TableHtml += string.Format("<th field=\"InfoError\" nowrap=nowrap class=\"datagrid-header td\" align=\"center\" width=\"120px\">错误信息</th>");
model.TableHtml += "</thead>";
model.TableHtml += "<tbody class=\"datagrid-body_row\">";
for (int i = 0; i < model.ErrorDt.Rows.Count; i++)
{
model.TableHtml += "<tr>";
for (int j = 0; j < model.ErrorDt.Columns.Count; j++)
{
model.TableHtml += string.Format("<td nowrap=nowrap class=\"datagrid-body td\">{0}</td>", model.ErrorDt.Rows[i][model.ErrorDt.Columns[j].ColumnName].ToString());
}
model.TableHtml += "</tr>";
}
model.TableHtml += "</tbody>";
model.TableHtml += "</table>";
model.TableHtml += "</div>";
//model.TableHtml += "<script language=\"javascript\">$('#tblError').datagrid({nowrap:false;});</script>";
#region 生成导出文件
fileName = Guid.NewGuid().ToString() + ".xlsx";
//生成导出文件
QMFrameWork.WebUI.Util.IEFileTool efTool = new QMFrameWork.WebUI.Util.IEFileTool();
byte[] fileContent = efTool.GetExcelFileContent(model.InfoName, fileName, model.ErrorDt);
using (FileStream fs = System.IO.File.Create(QController.PhysicsRootPath + "Temp\\" + fileName))
{
fs.Write(fileContent, 0, fileContent.Length);
}
model.ErrorFile = fileName;
#endregion
model.ErrorDt.Rows.Clear();
model.ErrorDt.Dispose();
#endregion
#region 返回现实视图
ViewResult vr = null;
vr = new ViewResult
{
ViewName = "OutputImportMessage",
MasterName = "AppMaster",
ViewData = new ViewDataDictionary<ImportMessageModel>(model)
};
return vr;
#endregion
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
#region 下载模板
/// <summary>
/// 下载导入模板
/// </summary>
/// <returns></returns>
[HttpPost]
public FilePathResult GetErrorFile()
{
try
{
string path = AppDomain.CurrentDomain.BaseDirectory + "Temp\\";
string fileName = Request.Form["ErrorFile"];
return File(path + fileName, "application/vnd.ms-excel", Url.Encode("错误信息列表.xlsx"));
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
}
}