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