xinjiang/SGGL/FineUIPro.Web/SYHSE/Data_EnvironmentProtectionD...

460 lines
17 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using BLL;
using BLL.Common;
using Model.APIItem.SYHSE;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.OleDb;
using System.IO;
using System.Linq;
using System.Web.UI.WebControls;
namespace FineUIPro.Web.SYHSE
{
public partial class Data_EnvironmentProtectionDataIn : PageBase
{
#region
/// <summary>
/// 上传预设的虚拟路径
/// </summary>
private string initPath = Const.ExcelUrl;
/// <summary>
/// 导入模版文件原始的虚拟路径
/// </summary>
private string initTemplatePath = Const.EnvironmentProtectionDataInTemplateUrl;
/// <summary>
/// 错误集合
/// </summary>
public static List<Model.ErrorInfo> errorInfos = new List<Model.ErrorInfo>();
#endregion
#region
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (errorInfos != null)
{
errorInfos.Clear();
}
}
}
#endregion
#region
/// <summary>
/// 模板下载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void imgbtnUpload_Click(object sender, EventArgs e)
{
string uploadfilepath = Server.MapPath("~/") + initTemplatePath;
string fileName = Path.GetFileName(initTemplatePath);
FileInfo info = new FileInfo(uploadfilepath);
if (info.Exists)
{
long fileSize = info.Length;
Response.Clear();
Response.ContentType = "application/x-zip-compressed";
Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
Response.AddHeader("Content-Length", fileSize.ToString());
Response.TransmitFile(uploadfilepath, 0, fileSize);
Response.Flush();
Response.Close();
}
else
{
ShowNotify("文件不存在!", MessageBoxIcon.Warning);
}
}
#endregion
#region
/// <summary>
/// 审核
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnAudit_Click(object sender, EventArgs e)
{
try
{
if (this.FileExcel.HasFile == false)
{
Alert.ShowInTop("请您选择Excel文件!", MessageBoxIcon.Warning);
return;
}
string IsXls = Path.GetExtension(FileExcel.FileName).ToString().Trim().ToLower();
if (IsXls != ".xls")
{
Alert.ShowInTop("只可以选择Excel文件!", MessageBoxIcon.Warning);
return;
}
if (errorInfos != null)
{
errorInfos.Clear();
}
string rootPath = Server.MapPath("~/");
string initFullPath = rootPath + initPath;
if (!Directory.Exists(initFullPath))
{
Directory.CreateDirectory(initFullPath);
}
this.hdfileName.Text = BLL.Funs.GetNewFileName() + IsXls;
string filePath = initFullPath + this.hdfileName.Text;
FileExcel.PostedFile.SaveAs(filePath);
ImportXlsToData(filePath);
}
catch (Exception ex)
{
Alert.ShowInTop(ex.Message);
}
}
#region Excel提取数据
/// <summary>
/// 从Excel提取数据--》Dataset
/// </summary>
/// <param name="filename">Excel文件路径名</param>
private void ImportXlsToData(string fileName)
{
try
{
//string oleDBConnString = String.Empty;
//oleDBConnString = "Provider=Microsoft.Jet.OLEDB.4.0;";
//oleDBConnString += "Data Source=";
//oleDBConnString += fileName;
//oleDBConnString += ";Extended Properties=Excel 8.0;";
//OleDbConnection oleDBConn = null;
//OleDbDataAdapter oleAdMaster = null;
//DataTable m_tableName = new DataTable();
//DataSet ds = new DataSet();
//oleDBConn = new OleDbConnection(oleDBConnString);
//oleDBConn.Open();
//m_tableName = oleDBConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
//if (m_tableName != null && m_tableName.Rows.Count > 0)
//{
// m_tableName.TableName = m_tableName.Rows[0]["TABLE_NAME"].ToString().Trim();
//}
//string sqlMaster;
//sqlMaster = " SELECT * FROM [" + m_tableName.TableName + "]";
//oleAdMaster = new OleDbDataAdapter(sqlMaster, oleDBConn);
//oleAdMaster.SelectCommand.CommandTimeout = 1200;
//oleAdMaster.Fill(ds, "m_tableName");
//oleAdMaster.Dispose();
//oleDBConn.Close();
//oleDBConn.Dispose();
var dt = NPOIHelper.ExcelToDataTable1(fileName);
AddDatasetToSQL(dt, 11);
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
#endregion
/// <summary>
/// 将Dataset的数据导入数据库
/// </summary>
/// <param name="pds">数据集</param>
/// <param name="Cols">数据集列数</param>
/// <returns></returns>
private bool AddDatasetToSQL(DataTable pds, int Cols)
{
string result = string.Empty;
int ic, ir;
ic = pds.Columns.Count;
if (ic < Cols)
{
throw new Exception("导入Excel格式错误Excel只有" + ic.ToString().Trim() + "列");
}
ir = pds.Rows.Count;
if (pds != null && ir > 0)
{
for (int i = 0; i < ir; i++)
{
if(string.IsNullOrEmpty( pds.Rows[i][0].ToString()))
{
result += (i + 2).ToString() + "," + "监测点位名称" + "," + "此项为必填项!" + "|";
}
if (string.IsNullOrEmpty(pds.Rows[i][1].ToString()))
{
result += (i + 2).ToString() + "," + "监测时间(开始)" + "," + "此项为必填项!" + "|";
try
{
DateTime.Parse(pds.Rows[i][1].ToString());
}catch(Exception ex)
{
result += (i + 2).ToString() + "," + "监测时间(开始)" + "," + "格式不对!" + "|";
}
}
if (string.IsNullOrEmpty(pds.Rows[i][2].ToString()))
{
result += (i + 2).ToString() + "," + "监测时间(结束)" + "," + "此项为必填项!" + "|";
try
{
DateTime.Parse(pds.Rows[i][1].ToString());
}
catch (Exception ex)
{
result += (i + 2).ToString() + "," + "监测时间(结束)" + "," + "格式不对!" + "|";
}
}
if (string.IsNullOrEmpty(pds.Rows[i][3].ToString()))
{
result += (i + 2).ToString() + "," + "项目名称" + "," + "此项为必填项!" + "|";
}
if (string.IsNullOrEmpty(pds.Rows[i][4].ToString()))
{
result += (i + 2).ToString() + "," + "监测值" + "," + "此项为必填项!" + "|";
}
if (string.IsNullOrEmpty(pds.Rows[i][8].ToString()))
{
result += (i + 2).ToString() + "," + "是否达标" + "," + "此项为必填项!" + "|";
}
else if (pds.Rows[i][8].ToString() != "是" && pds.Rows[i][8].ToString() != "否")
{
result += (i + 2).ToString() + "," + "是否停产" + "," + "请填是或否!" + "|";
}
if (string.IsNullOrEmpty(pds.Rows[i][9].ToString()))
{
result += (i + 2).ToString() + "," + "是否停产" + "," + "此项为必填项!" + "|";
}else if ( pds.Rows[i][8].ToString()!="是" && pds.Rows[i][9].ToString() != "否")
{
result += (i + 2).ToString() + "," + "是否停产" + "," + "请填是或否!" + "|";
}
//a++;
}
if (!string.IsNullOrEmpty(result))
{
result = result.Substring(0, result.LastIndexOf("|"));
}
errorInfos.Clear();
if (!string.IsNullOrEmpty(result))
{
string results = result;
List<string> errorInfoList = results.Split('|').ToList();
foreach (var item in errorInfoList)
{
string[] errors = item.Split(',');
Model.ErrorInfo errorInfo = new Model.ErrorInfo();
errorInfo.Row = errors[0];
errorInfo.Column = errors[1];
errorInfo.Reason = errors[2];
errorInfos.Add(errorInfo);
}
if (errorInfos.Count > 0)
{
Grid1.DataSource = errorInfos;
Grid1.DataBind();
}
}
else
{
ShowNotify("审核完成,请点击导入!", MessageBoxIcon.Success);
}
}
else
{
throw new Exception("导入数据为空!");
}
return true;
}
#region
/// <summary>
/// 导入
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSave_Click(object sender, EventArgs e)
{
if (errorInfos.Count <= 0)
{
string rootPath = Server.MapPath("~/");
string initFullPath = rootPath + initPath;
if (!Directory.Exists(initFullPath))
{
Directory.CreateDirectory(initFullPath);
}
string filePath = initFullPath + this.hdfileName.Text;
ImportXlsToData2(filePath);
}
else
{
Alert.ShowInTop("请先将错误数据修正,再重新导入保存!", MessageBoxIcon.Warning);
}
}
#region Excel提取数据
/// <summary>
/// 从Excel提取数据--》Dataset
/// </summary>
/// <param name="filename">Excel文件路径名</param>
private void ImportXlsToData2(string fileName)
{
try
{
//string oleDBConnString = String.Empty;
//oleDBConnString = "Provider=Microsoft.Jet.OLEDB.4.0;";
//oleDBConnString += "Data Source=";
//oleDBConnString += fileName;
//oleDBConnString += ";Extended Properties=Excel 8.0;";
//OleDbConnection oleDBConn = null;
//OleDbDataAdapter oleAdMaster = null;
//DataTable m_tableName = new DataTable();
//DataSet ds = new DataSet();
//oleDBConn = new OleDbConnection(oleDBConnString);
//oleDBConn.Open();
//m_tableName = oleDBConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
//if (m_tableName != null && m_tableName.Rows.Count > 0)
//{
// m_tableName.TableName = m_tableName.Rows[0]["TABLE_NAME"].ToString().Trim();
//}
//string sqlMaster;
//sqlMaster = " SELECT * FROM [" + m_tableName.TableName + "]";
//oleAdMaster = new OleDbDataAdapter(sqlMaster, oleDBConn);
//oleAdMaster.SelectCommand.CommandTimeout = 1200;
//oleAdMaster.Fill(ds, "m_tableName");
//oleAdMaster.Dispose();
//oleDBConn.Close();
//oleDBConn.Dispose();
var dt = NPOIHelper.ExcelToDataTable1(fileName);
AddDatasetToSQL2(dt, 11);
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
/// <summary>
/// 将Dataset的数据导入数据库
/// </summary>
/// <param name="pds">数据集</param>
/// <param name="Cols">数据集列数</param>
/// <returns></returns>
private bool AddDatasetToSQL2(DataTable pds, int Cols)
{
string result = string.Empty;
string dReportID = string.Empty;
string dateStr = string.Empty;
int ic, ir;
ic = pds.Columns.Count;
if (ic < Cols)
{
throw new Exception("导入Excel格式错误Excel只有" + ic.ToString().Trim() + "列");
}
List<Model.SYHSEData_EnvironmentProtection> environmentProtections = new List<Model.SYHSEData_EnvironmentProtection>();
ir = pds.Rows.Count;
if (pds != null && ir > 0)
{
for (int i = 0; i < ir; i++)
{
Model.SYHSEData_EnvironmentProtection protection = new Model.SYHSEData_EnvironmentProtection();
protection.Id = Guid.NewGuid().ToString();
protection.ProjectId = this.CurrUser.LoginProjectId;
protection.DetectionAddress = pds.Rows[i][0].ToString();
protection.DetectionTimeA = DateUtil.ToDateTime(pds.Rows[i][1].ToString());
protection.DetectionTimeZ = DateUtil.ToDateTime(pds.Rows[i][2].ToString());
protection.DetectionProject = pds.Rows[i][3].ToString();
protection.DetectionValue = pds.Rows[i][4].ToString();
protection.StandValue = pds.Rows[i][5].ToString();
protection.AvgFlow = pds.Rows[i][6].ToString() ;
protection.SumFlow = pds.Rows[i][7].ToString();
protection.IsOk = pds.Rows[i][8].ToString();
protection.IsStop = pds.Rows[i][9].ToString();
protection.ReMark = pds.Rows[i][10].ToString();
protection.ShowIndex = i;
environmentProtections.Add(protection);
DataEnvironmentProtectionItem newItem = new DataEnvironmentProtectionItem();
newItem.Id = protection.Id;
newItem.ProjectId = protection.ProjectId;
newItem.UnitId = protection.UnitId;
newItem.CreateMan = protection.CreateMan;
newItem.CreateDate = protection.CreateDate;
newItem.DetectionTimeA = protection.DetectionTimeA;
newItem.DetectionTimeZ = protection.DetectionTimeZ;
newItem.DetectionAddress = protection.DetectionAddress;
newItem.DetectionProject = protection.DetectionProject;
newItem.DetectionValue = protection.DetectionValue;
newItem.StandValue = protection.StandValue;
newItem.AvgFlow = protection.AvgFlow;
newItem.SumFlow = protection.SumFlow;
newItem.IsOk = protection.IsOk;
newItem.IsStop = protection.IsStop;
newItem.ReMark = protection.ReMark;
newItem.Type = protection.Type;
string contenttype = "application/json;charset=utf-8";
string url = ConfigurationManager.AppSettings["QHSE_URL"] + "api/SYHSEData/SaveEnvironmentProtection";
string messages = APIGetHttpService.Http(url, "POST", contenttype, null, JsonConvert.SerializeObject(newItem));
}
Funs.DB.SYHSEData_EnvironmentProtection.InsertAllOnSubmit(environmentProtections);
Funs.DB.SubmitChanges();
ShowNotify("导入成功!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
else
{
throw new Exception("导入数据为空!");
}
return true;
}
#endregion
}
}