Basf_TCC7/HJGL/FineUIPro.Web/WeldingProcess/CheckManage/CheckManageIn.aspx.cs

1193 lines
58 KiB
C#
Raw 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 System;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.IO;
using System.Linq;
using System.Web.UI;
using BLL;
namespace FineUIPro.Web.WeldingProcess.CheckManage
{
public partial class CheckManageIn : PageBase
{
#region
/// <summary>
/// 上传预设的虚拟路径
/// </summary>
private string initPath = Const.ExcelUrl;
/// <summary>
/// 错误集合
/// </summary>
public static string errorInfos = string.Empty;
#endregion
#region
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.hdFileName.Text = string.Empty;
this.hdCheckResult.Text = string.Empty;
errorInfos = string.Empty;
}
}
#endregion
#region
/// <summary>
/// 审核
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnAudit_Click(object sender, EventArgs e)
{
errorInfos = string.Empty;
if (this.fuAttachUrl.HasFile == false)
{
ShowNotify("请选择Excel文件!", MessageBoxIcon.Warning);
return;
}
string IsXls = Path.GetExtension(this.fuAttachUrl.FileName).ToString().Trim().ToLower();
if (IsXls != ".xls" && IsXls != ".xlsx")
{
ShowNotify("只能选择Excel文件!", MessageBoxIcon.Warning);
return;
}
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;
//文件上传服务器
this.fuAttachUrl.PostedFile.SaveAs(filePath);
//文件上传服务器后的名称
string fileName = rootPath + initPath + this.hdFileName.Text;
//读取Excel
DataSet ds = NPOIHelper.ExcelToDataSet(fileName, out errorInfos, true);
//验证Excel读取是否有误
if (!string.IsNullOrEmpty(errorInfos))
{
ShowNotify(errorInfos, MessageBoxIcon.Warning);
return;
}
if (ds.Tables.Count > 0)
{
string result = string.Empty;
var units = from x in Funs.DB.Base_Unit select x;
var area = from x in Funs.DB.Project_WorkArea where x.ProjectId == this.CurrUser.LoginProjectId select x;
//var batchTrusts = from x in Funs.DB.Batch_BatchTrust where x.ProjectId == this.CurrUser.LoginProjectId select x;
var batchTrustItems = from x in Funs.DB.Batch_BatchTrustItem
join y in Funs.DB.Batch_BatchTrust on x.TrustBatchId equals y.TrustBatchId
join z in Funs.DB.Pipeline_WeldJoint on x.WeldJointId equals z.WeldJointId
where y.ProjectId == this.CurrUser.LoginProjectId && x.IsCancelTrust == null
select new { y.TrustBatchCode, z.PipelineId, x.WeldJointId };
var weldJoints = from x in Funs.DB.View_WeldJointInfo where x.ProjectId == this.CurrUser.LoginProjectId select x;
var defects = from x in Funs.DB.Base_Defect select x;
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
var isExitValue = weldJoints.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId
&& x.WorkAreaCode == ds.Tables[0].Rows[i][3].ToString().Trim()
&& x.PipelineCode == ds.Tables[0].Rows[i][4].ToString().Trim()
&& x.WeldJointCode == ds.Tables[0].Rows[i][5].ToString().Trim());
if (isExitValue != null)
{
string col0 = ds.Tables[0].Rows[i][0].ToString().Trim();
string col1 = ds.Tables[0].Rows[i][1].ToString().Trim();
string col2 = ds.Tables[0].Rows[i][2].ToString().Trim();
string col3 = ds.Tables[0].Rows[i][3].ToString().Trim();
string col4 = ds.Tables[0].Rows[i][4].ToString().Trim();
string col5 = ds.Tables[0].Rows[i][5].ToString().Trim();
string col6 = ds.Tables[0].Rows[i][6].ToString().Trim();
string col7 = ds.Tables[0].Rows[i][7].ToString().Trim();
string col8 = ds.Tables[0].Rows[i][8].ToString().Trim();
string col9 = ds.Tables[0].Rows[i][9].ToString().Trim();
string col10 = ds.Tables[0].Rows[i][10].ToString().Trim();
string col11 = ds.Tables[0].Rows[i][11].ToString().Trim();
string col12 = ds.Tables[0].Rows[i][12].ToString().Trim();
if (string.IsNullOrEmpty(col0))
{
result += "第" + (i + 2).ToString() + "行," + "委托单号" + "," + "此项为必填项!" + "|";
}
if (!string.IsNullOrEmpty(col1))
{
try
{
DateTime d = Convert.ToDateTime(col1);
}
catch (Exception)
{
result += "第" + (i + 2).ToString() + "行," + "检测日期" + "," + "[" + col1 + "]错误!" + "|";
}
}
else
{
result += "第" + (i + 2).ToString() + "行," + "检测日期" + "," + "此项为必填项!" + "|";
}
if (!string.IsNullOrEmpty(col2))
{
Model.Base_Unit unit = units.FirstOrDefault(x => x.UnitName == col2);
if (unit == null)
{
result += "第" + (i + 2).ToString() + "行," + "检测单位名称" + "," + "[" + col2 + "]错误!" + "|";
}
}
else
{
result += "第" + (i + 2).ToString() + "行," + "检测单位名称" + "," + "此项为必填项!" + "|";
}
string workAreaId = string.Empty;
if (!string.IsNullOrEmpty(col3))
{
Model.Project_WorkArea workArea = area.FirstOrDefault(x => x.WorkAreaCode == col3);
if (workArea == null)
{
result += "第" + (i + 2).ToString() + "行," + "区域编号" + "," + "[" + col3 + "]不存在!" + "|";
}
else
{
workAreaId = workArea.WorkAreaId;
}
}
else
{
result += "第" + (i + 2).ToString() + "行," + "区域编号" + "," + "此项为必填项!" + "|";
}
string pipelineId = string.Empty;
if (!string.IsNullOrEmpty(col4))
{
Model.View_WeldJointInfo weldJoint = weldJoints.FirstOrDefault(x => x.PipelineCode == col4 && x.WorkAreaId == workAreaId);
if (weldJoint == null)
{
result += "第" + (i + 2).ToString() + "行," + "管线号" + "," + "[" + col4 + "]错误!" + "|";
}
else
{
pipelineId = weldJoint.PipelineId;
}
}
else
{
result += "第" + (i + 2).ToString() + "行," + "管线号" + "," + "此项为必填项!" + "|";
}
string weldJointId = string.Empty;
if (!string.IsNullOrEmpty(col5))
{
//Model.View_WeldJointInfo weldJoint = weldJoints.FirstOrDefault(e => e.PipelineId == pipelineId && e.WeldJointCode == col5);
var weldJoint = from x in Funs.DB.Pipeline_WeldJoint where x.PipelineId == pipelineId && x.WeldJointCode == col5 select x;
if (weldJoint.Count() == 0)
{
result += "第" + (i + 2).ToString() + "行," + "焊口号" + "," + "[" + col5 + "]错误!" + "|";
}
else if (weldJoint.Count() == 1)
{
weldJointId = weldJoint.First().WeldJointId;
}
else
{
result += "第" + (i + 2).ToString() + "行," + "焊口号" + "," + "[" + col5 + "]重复!" + "|";
}
}
else
{
result += "第" + (i + 2).ToString() + "行," + "焊口号" + "," + "此项为必填项!" + "|";
}
var batchTrustItem = batchTrustItems.FirstOrDefault(x => x.TrustBatchCode == col0 && x.PipelineId == pipelineId && x.WeldJointId == weldJointId);
if (batchTrustItem == null)
{
result += "第" + (i + 2).ToString() + "行," + "委托单中不存在对应焊口信息" + "," + "错误!" + "|";
}
if (!string.IsNullOrEmpty(col6))
{
try
{
DateTime d = Convert.ToDateTime(col6);
}
catch (Exception)
{
result += "第" + (i + 2).ToString() + "行," + "报告日期" + "," + "[" + col6 + "]错误!" + "|";
}
}
if (!string.IsNullOrEmpty(col7))
{
try
{
int d = Convert.ToInt32(col7);
}
catch (Exception)
{
result += "第" + (i + 2).ToString() + "行," + "拍片总数" + "," + "[" + col7 + "]错误!" + "|";
}
}
if (!string.IsNullOrEmpty(col8))
{
try
{
int d = Convert.ToInt32(col8);
}
catch (Exception)
{
result += "第" + (i + 2).ToString() + "行," + "合格片数" + "," + "[" + col8 + "]错误!" + "|";
}
}
int totalFilm = Funs.GetNewIntOrZero(col7);
int passFilm = Funs.GetNewIntOrZero(col8);
if (totalFilm < passFilm)
{
result += "第" + (i + 2).ToString() + "行," + "拍片总数不能小于合格片数" + "," + "[" + col8 + "]错误!" + "|";
}
//if (!string.IsNullOrEmpty(col9))
//{
// if (col9 != "" && col9 != "Ⅱ" && col9 != "Ⅲ" && col9 != "Ⅳ" && col9 != "修磨" && col9 != "异物")
// {
// result += "第" + (i + 2).ToString() + "行," + "评定级别" + "," + "[" + col9 + "]错误!" + "|";
// }
//}
if (!string.IsNullOrEmpty(col9))
{
string[] strs = col9.Split(',');
foreach (var str in strs)
{
if (!string.IsNullOrEmpty(str))
{
Model.Base_Defect defect = defects.FirstOrDefault(x => x.DefectName == str);
if (defect == null)
{
result += "第" + (i + 2).ToString() + "行," + "缺陷" + "," + "[" + str + "]错误!" + "|";
}
}
}
}
}
else
{
result += "第" + (i + 2).ToString() + "行焊口信息不存在。";
}
}
if (!string.IsNullOrEmpty(result))
{
if (result.Contains("|"))
{
result = result.Substring(0, result.LastIndexOf("|"));
}
errorInfos = result;
lbResult.Text = result;
//Alert alert = new Alert();
//alert.Message = result;
//alert.Target = Target.Self;
//alert.Show();
}
else
{
errorInfos = string.Empty;
lbResult.Text = "审核数据正确,请点击导入!";
//ShowNotify("审核完成,请点击导入!", MessageBoxIcon.Success);
}
}
}
#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;";
//oleDBConnString = "Provider=Microsoft.ACE.OLEDB.12.0;";
//oleDBConnString += "Data Source=";
//oleDBConnString += fileName;
//oleDBConnString += ";Extended Properties='Excel 12.0;HDR=Yes;'";
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.Fill(ds, "m_tableName");
oleAdMaster.Dispose();
oleDBConn.Close();
oleDBConn.Dispose();
AddDatasetToSQL(ds.Tables[0], 14);
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
#region Dataset的数据导入数据库
/// <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)
{
ShowNotify("导入Excel格式错误Excel只有" + ic.ToString().Trim() + "行", MessageBoxIcon.Warning);
}
ir = pds.Rows.Count;
if (pds != null && ir > 0)
{
var units = from x in Funs.DB.Base_Unit select x;
var area = from x in Funs.DB.Project_WorkArea where x.ProjectId == this.CurrUser.LoginProjectId select x;
//var batchTrusts = from x in Funs.DB.Batch_BatchTrust where x.ProjectId == this.CurrUser.LoginProjectId select x;
var batchTrustItems = from x in Funs.DB.Batch_BatchTrustItem
join y in Funs.DB.Batch_BatchTrust on x.TrustBatchId equals y.TrustBatchId
join z in Funs.DB.Pipeline_WeldJoint on x.WeldJointId equals z.WeldJointId
where y.ProjectId == this.CurrUser.LoginProjectId && x.IsCancelTrust == null
select new { y.TrustBatchCode, z.PipelineId, x.WeldJointId };
var weldJoints = from x in Funs.DB.View_WeldJointInfo where x.ProjectId == this.CurrUser.LoginProjectId select x;
var defects = from x in Funs.DB.Base_Defect select x;
for (int i = 0; i < ir; i++)
{
var isExitValue = weldJoints.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId
&& x.WorkAreaCode== pds.Rows[i][3].ToString().Trim()
&& x.PipelineCode == pds.Rows[i][4].ToString().Trim() && x.WeldJointCode == pds.Rows[i][5].ToString().Trim());
if (isExitValue != null)
{
string col0 = pds.Rows[i][0].ToString().Trim();
string col1 = pds.Rows[i][1].ToString().Trim();
string col2 = pds.Rows[i][2].ToString().Trim();
string col3 = pds.Rows[i][3].ToString().Trim();
string col4 = pds.Rows[i][4].ToString().Trim();
string col5 = pds.Rows[i][5].ToString().Trim();
string col6 = pds.Rows[i][6].ToString().Trim();
string col7 = pds.Rows[i][7].ToString().Trim();
string col8 = pds.Rows[i][8].ToString().Trim();
string col9 = pds.Rows[i][9].ToString().Trim();
string col10 = pds.Rows[i][10].ToString().Trim();
string col11 = pds.Rows[i][11].ToString().Trim();
string col12 = pds.Rows[i][12].ToString().Trim();
string col13 = pds.Rows[i][13].ToString().Trim();
if (string.IsNullOrEmpty(col0))
{
result += "第" + (i + 2).ToString() + "行," + "委托单号" + "," + "此项为必填项!" + "|";
}
if (!string.IsNullOrEmpty(col1))
{
try
{
DateTime d = Convert.ToDateTime(col1);
}
catch (Exception)
{
result += "第" + (i + 2).ToString() + "行," + "检测日期" + "," + "[" + col1 + "]错误!" + "|";
}
}
else
{
result += "第" + (i + 2).ToString() + "行," + "检测日期" + "," + "此项为必填项!" + "|";
}
if (!string.IsNullOrEmpty(col2))
{
Model.Base_Unit unit = units.FirstOrDefault(e => e.UnitName == col2);
if (unit == null)
{
result += "第" + (i + 2).ToString() + "行," + "检测单位名称" + "," + "[" + col2 + "]错误!" + "|";
}
}
else
{
result += "第" + (i + 2).ToString() + "行," + "检测单位名称" + "," + "此项为必填项!" + "|";
}
string workAreaId = string.Empty;
if (!string.IsNullOrEmpty(col3))
{
Model.Project_WorkArea workArea = area.FirstOrDefault(e => e.WorkAreaCode == col3);
if (workArea == null)
{
result += "第" + (i + 2).ToString() + "行," + "区域编号" + "," + "[" + col3 + "]不存在!" + "|";
}
else
{
workAreaId = workArea.WorkAreaId;
}
}
else
{
result += "第" + (i + 2).ToString() + "行," + "区域编号" + "," + "此项为必填项!" + "|";
}
string pipelineId = string.Empty;
if (!string.IsNullOrEmpty(col4))
{
Model.View_WeldJointInfo weldJoint = weldJoints.FirstOrDefault(e => e.PipelineCode == col4 && e.WorkAreaId == workAreaId);
if (weldJoint == null)
{
result += "第" + (i + 2).ToString() + "行," + "管线号" + "," + "[" + col4 + "]错误!" + "|";
}
else
{
pipelineId = weldJoint.PipelineId;
}
}
else
{
result += "第" + (i + 2).ToString() + "行," + "管线号" + "," + "此项为必填项!" + "|";
}
string weldJointId = string.Empty;
if (!string.IsNullOrEmpty(col5))
{
//Model.View_WeldJointInfo weldJoint = weldJoints.FirstOrDefault(e => e.PipelineId == pipelineId && e.WeldJointCode == col5);
var weldJoint = from x in Funs.DB.Pipeline_WeldJoint where x.PipelineId == pipelineId && x.WeldJointCode == col5 select x;
if (weldJoint.Count() == 0)
{
result += "第" + (i + 2).ToString() + "行," + "焊口号" + "," + "[" + col5 + "]错误!" + "|";
}
else if (weldJoint.Count() == 1)
{
weldJointId = weldJoint.First().WeldJointId;
}
else
{
result += "第" + (i + 2).ToString() + "行," + "焊口号" + "," + "[" + col5 + "]重复!" + "|";
}
}
else
{
result += "第" + (i + 2).ToString() + "行," + "焊口号" + "," + "此项为必填项!" + "|";
}
var batchTrustItem = batchTrustItems.FirstOrDefault(x => x.TrustBatchCode == col0 && x.PipelineId == pipelineId && x.WeldJointId == weldJointId);
if (batchTrustItem == null)
{
result += "第" + (i + 2).ToString() + "行," + "委托单中不存在对应焊口信息" + "," + "错误!" + "|";
}
if (!string.IsNullOrEmpty(col6))
{
try
{
DateTime d = Convert.ToDateTime(col6);
}
catch (Exception)
{
result += "第" + (i + 2).ToString() + "行," + "报告日期" + "," + "[" + col6 + "]错误!" + "|";
}
}
if (!string.IsNullOrEmpty(col7))
{
try
{
int d = Convert.ToInt32(col7);
}
catch (Exception)
{
result += "第" + (i + 2).ToString() + "行," + "拍片总数" + "," + "[" + col7 + "]错误!" + "|";
}
}
if (!string.IsNullOrEmpty(col8))
{
try
{
int d = Convert.ToInt32(col8);
}
catch (Exception)
{
result += "第" + (i + 2).ToString() + "行," + "合格片数" + "," + "[" + col8 + "]错误!" + "|";
}
}
int totalFilm = Funs.GetNewIntOrZero(col7);
int passFilm = Funs.GetNewIntOrZero(col8);
if (totalFilm < passFilm)
{
result += "第" + (i + 2).ToString() + "行," + "拍片总数不能小于合格片数" + "," + "[" + col8 + "]错误!" + "|";
}
if (!string.IsNullOrEmpty(col9))
{
if (col9 != "" && col9 != "Ⅱ" && col9 != "Ⅲ" && col9 != "Ⅳ" && col9 != "修磨" && col9 != "异物")
{
result += "第" + (i + 2).ToString() + "行," + "评定级别" + "," + "[" + col9 + "]错误!" + "|";
}
}
if (!string.IsNullOrEmpty(col10))
{
string[] strs = col10.Split(',');
foreach (var str in strs)
{
if (!string.IsNullOrEmpty(str))
{
Model.Base_Defect defect = defects.FirstOrDefault(e => e.DefectName == str);
if (defect == null)
{
result += "第" + (i + 2).ToString() + "行," + "缺陷" + "," + "[" + str + "]错误!" + "|";
}
}
}
}
}
else
{
result += "第" + (i + 2).ToString() + "行焊口信息不存在。";
}
}
if (!string.IsNullOrEmpty(result))
{
if (result.Contains("|"))
{
result = result.Substring(0, result.LastIndexOf("|"));
}
errorInfos = result;
Alert alert = new Alert();
alert.Message = result;
alert.Target = Target.Self;
alert.Show();
}
else
{
errorInfos = string.Empty;
ShowNotify("审核完成,请点击导入!", MessageBoxIcon.Success);
}
}
else
{
ShowNotify("导入数据为空!", MessageBoxIcon.Warning);
}
return true;
}
#endregion
#endregion
#region
/// <summary>
/// 导入
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnImport_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(this.hdFileName.Text))
{
if (errorInfos == string.Empty)
{
string IsXls = Path.GetExtension(this.fuAttachUrl.FileName).ToString().Trim().ToLower();
if (IsXls != ".xls" && IsXls != ".xlsx")
{
ShowNotify("只能选择Excel文件!", MessageBoxIcon.Warning);
return;
}
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;
//文件上传服务器
this.fuAttachUrl.PostedFile.SaveAs(filePath);
//文件上传服务器后的名称
string fileName = rootPath + initPath + this.hdFileName.Text;
//读取Excel
DataSet ds = NPOIHelper.ExcelToDataSet(fileName, out errorInfos, true);
if (ds.Tables.Count > 0)
{
string ndeId = string.Empty;
string trustBatchId = string.Empty;
string detectionTypeId = string.Empty;
string ndeCode = string.Empty;
var units = from x in Funs.DB.Base_Unit select x;
var area = from x in Funs.DB.Project_WorkArea where x.ProjectId == this.CurrUser.LoginProjectId select x;
var batchTrusts = from x in Funs.DB.Batch_BatchTrust where x.ProjectId == this.CurrUser.LoginProjectId select x;
var batchTrustItems = from x in Funs.DB.Batch_BatchTrustItem
join y in Funs.DB.Batch_BatchTrust on x.TrustBatchId equals y.TrustBatchId
join z in Funs.DB.Pipeline_WeldJoint on x.WeldJointId equals z.WeldJointId
where y.ProjectId == this.CurrUser.LoginProjectId && x.IsCancelTrust == null
select new { y.TrustBatchCode, z.PipelineId, x.WeldJointId };
var weldJoints = from x in Funs.DB.View_WeldJointInfo where x.ProjectId == this.CurrUser.LoginProjectId select x;
var defects = from x in Funs.DB.Base_Defect select x;
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
var isExitValue = weldJoints.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId
&& x.WorkAreaCode == ds.Tables[0].Rows[i][3].ToString().Trim()
&& x.PipelineCode == ds.Tables[0].Rows[i][4].ToString().Trim()
&& x.WeldJointCode == ds.Tables[0].Rows[i][5].ToString().Trim());
if (isExitValue != null)
{
string col0 = ds.Tables[0].Rows[i][0].ToString().Trim();
string col1 = ds.Tables[0].Rows[i][1].ToString().Trim();
string col2 = ds.Tables[0].Rows[i][2].ToString().Trim();
string col3 = ds.Tables[0].Rows[i][3].ToString().Trim();
string col4 = ds.Tables[0].Rows[i][4].ToString().Trim();
string col5 = ds.Tables[0].Rows[i][5].ToString().Trim();
string col6 = ds.Tables[0].Rows[i][6].ToString().Trim();
string col7 = ds.Tables[0].Rows[i][7].ToString().Trim();
string col8 = ds.Tables[0].Rows[i][8].ToString().Trim();
string col9 = ds.Tables[0].Rows[i][9].ToString().Trim();
string col10 = ds.Tables[0].Rows[i][10].ToString().Trim();
string col11 = ds.Tables[0].Rows[i][11].ToString().Trim();
string col12 = ds.Tables[0].Rows[i][12].ToString().Trim();
if (ndeCode != col0)
{
Model.View_Batch_NDE oldNDE = Funs.DB.View_Batch_NDE.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.NDECode == col0);
if (oldNDE == null) //对应日探伤流水号记录为空则新增
{
Model.Batch_NDE nde = new Model.Batch_NDE();
nde.NDEID = SQLHelper.GetNewID(typeof(Model.Batch_NDE));
Model.Batch_BatchTrust batchTrust = batchTrusts.FirstOrDefault(x => x.TrustBatchCode == col0);
nde.TrustBatchId = batchTrust.TrustBatchId;
nde.ProjectId = this.CurrUser.LoginProjectId;
nde.UnitId = batchTrust.UnitId;
nde.InstallationId = batchTrust.InstallationId;
Model.Base_Unit unit = units.FirstOrDefault(x => x.UnitName == col2);
nde.NDEUnit = unit.UnitId;
nde.NDECode = col0;
nde.NDEDate = Convert.ToDateTime(col1);
nde.NDEMan = this.CurrUser.UserId;
BLL.Batch_NDEService.AddNDE(nde);
ndeId = nde.NDEID;
trustBatchId = nde.TrustBatchId;
detectionTypeId = batchTrust.DetectionTypeId;
}
else
{
ndeId = oldNDE.NDEID;
trustBatchId = oldNDE.TrustBatchId;
detectionTypeId = oldNDE.DetectionTypeId;
}
}
Model.Batch_NDEItem item = new Model.Batch_NDEItem();
item.NDEID = ndeId;
var batchTrustItem = from x in Funs.DB.Batch_BatchTrustItem
join y in Funs.DB.Batch_BatchTrust on x.TrustBatchId equals y.TrustBatchId
join z in Funs.DB.Pipeline_WeldJoint on x.WeldJointId equals z.WeldJointId
where y.TrustBatchId == trustBatchId && x.WeldJointId == isExitValue.WeldJointId && z.PipelineId == isExitValue.PipelineId
select x;
if (batchTrustItem.Count()>0)
{
var ndeItem = from x in Funs.DB.Batch_NDEItem where x.TrustBatchItemId == batchTrustItem.First().TrustBatchItemId select x;
item.TrustBatchItemId = batchTrustItem.First().TrustBatchItemId;
item.DetectionTypeId = detectionTypeId;
if (!string.IsNullOrEmpty(col12))
{
item.NDEReportNo = col12;
}
else
{
item.NDEReportNo = col0;
}
item.FilmDate = Funs.GetNewDateTime(col1);
item.ReportDate = Funs.GetNewDateTime(col6);
item.TotalFilm = Funs.GetNewInt(col7);
item.PassFilm = Funs.GetNewInt(col8);
if (item.TotalFilm == item.PassFilm)
{
item.CheckResult = "1";
}
else if (item.TotalFilm > item.PassFilm)
{
item.CheckResult = "2";
}
//if (!string.IsNullOrEmpty(col9))
//{
// item.JudgeGrade = col9;
//}
if (!string.IsNullOrEmpty(col9))
{
string checkDefects = string.Empty;
string[] strs = col9.Split(',');
foreach (var str in strs)
{
var defect = defects.FirstOrDefault(x => x.DefectName == str);
if (defect != null)
{
checkDefects += defect.DefectId.ToString() + ",";
}
}
if (!string.IsNullOrEmpty(checkDefects))
{
checkDefects = checkDefects.Substring(0, checkDefects.LastIndexOf(","));
item.CheckDefects = checkDefects;
}
}
item.RepairLocation = col10;
item.NDEReportNo = col11;
item.Remark = col12;
item.SubmitDate = DateTime.Now;
if (ndeItem.Count() == 0)
{
item.NDEItemID = SQLHelper.GetNewID(typeof(Model.Batch_NDEItem));
BLL.Batch_NDEItemService.AddNDEItem(item);
}
else
{
var r = BLL.RepairRecordService.GetRepairRecordByNdeItemId(ndeItem.First().NDEItemID);
// 当没有返修单时可更新
if (r == null)
{
item.NDEItemID = ndeItem.First().NDEItemID;
BLL.Batch_NDEItemService.UpdateNDEItem(item);
}
}
}
}
}
ShowNotify("导入成功!", MessageBoxIcon.Success);
}
else
{
ShowNotify("无记录!", MessageBoxIcon.Warning);
}
}
else
{
ShowNotify("请修正错误数据后再导入!", MessageBoxIcon.Warning);
}
//string rootPath = Server.MapPath("~/");
//ImportXlsToData2(rootPath + initPath + this.hdFileName.Text);
}
else
{
ShowNotify("请先审核要导入的文件!", 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;";
//oleDBConnString = "Provider=Microsoft.ACE.OLEDB.12.0;";
//oleDBConnString += "Data Source=";
//oleDBConnString += fileName;
//oleDBConnString += ";Extended Properties='Excel 12.0;HDR=Yes;'";
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.Fill(ds, "m_tableName");
oleAdMaster.Dispose();
oleDBConn.Close();
oleDBConn.Dispose();
AddDatasetToSQL2(ds.Tables[0], 14);
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
#region Dataset的数据导入数据库
/// <summary>
/// 将Dataset的数据导入数据库
/// </summary>
/// <param name="pds">数据集</param>
/// <param name="Cols">数据集列数</param>
/// <returns></returns>
private bool AddDatasetToSQL2(DataTable pds, int Cols)
{
string ndeId = string.Empty;
string trustBatchId = string.Empty;
string detectionTypeId = string.Empty;
string ndeCode = string.Empty;
int ic, ir;
ic = pds.Columns.Count;
if (ic < Cols)
{
ShowNotify("导入Excel格式错误Excel只有" + ic.ToString().Trim() + "列", MessageBoxIcon.Warning);
}
ir = pds.Rows.Count;
if (pds != null && ir > 0)
{
var units = from x in Funs.DB.Base_Unit select x;
var area = from x in Funs.DB.Project_WorkArea where x.ProjectId == this.CurrUser.LoginProjectId select x;
var batchTrusts = from x in Funs.DB.Batch_BatchTrust where x.ProjectId == this.CurrUser.LoginProjectId select x;
//var batchTrustItems = from x in Funs.DB.View_Batch_BatchTrustItem select x;
var weldJoints = from x in Funs.DB.View_WeldJointInfo where x.ProjectId == this.CurrUser.LoginProjectId select x;
var defects = from x in Funs.DB.Base_Defect select x;
for (int i = 0; i < ir; i++)
{
var isExitValue = weldJoints.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId
&& x.WorkAreaCode == pds.Rows[i][3].ToString().Trim()
&& x.PipelineCode == pds.Rows[i][4].ToString().Trim() && x.WeldJointCode == pds.Rows[i][5].ToString().Trim());
if (isExitValue != null)
{
string col0 = pds.Rows[i][0].ToString();
string col1 = pds.Rows[i][1].ToString();
string col2 = pds.Rows[i][2].ToString();
string col3 = pds.Rows[i][3].ToString();
string col4 = pds.Rows[i][4].ToString();
string col5 = pds.Rows[i][5].ToString();
string col6 = pds.Rows[i][6].ToString();
string col7 = pds.Rows[i][7].ToString();
string col8 = pds.Rows[i][8].ToString();
string col9 = pds.Rows[i][9].ToString();
string col10 = pds.Rows[i][10].ToString();
string col11 = pds.Rows[i][11].ToString();
string col12 = pds.Rows[i][12].ToString();
string col13 = pds.Rows[i][13].ToString();
if (ndeCode != col0)
{
Model.View_Batch_NDE oldNDE = Funs.DB.View_Batch_NDE.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.NDECode == col0);
if (oldNDE == null) //对应日探伤流水号记录为空则新增
{
Model.Batch_NDE nde = new Model.Batch_NDE();
nde.NDEID = SQLHelper.GetNewID(typeof(Model.Batch_NDE));
Model.Batch_BatchTrust batchTrust = batchTrusts.FirstOrDefault(e => e.TrustBatchCode == col0);
nde.TrustBatchId = batchTrust.TrustBatchId;
nde.ProjectId = this.CurrUser.LoginProjectId;
nde.UnitId = batchTrust.UnitId;
nde.InstallationId = batchTrust.InstallationId;
Model.Base_Unit unit = units.FirstOrDefault(x => x.UnitName == col2);
nde.NDEUnit = unit.UnitId;
nde.NDECode = col0;
nde.NDEDate = Convert.ToDateTime(col1);
nde.NDEMan = this.CurrUser.UserId;
BLL.Batch_NDEService.AddNDE(nde);
ndeId = nde.NDEID;
trustBatchId = nde.TrustBatchId;
detectionTypeId = batchTrust.DetectionTypeId;
}
else
{
ndeId = oldNDE.NDEID;
trustBatchId = oldNDE.TrustBatchId;
detectionTypeId = oldNDE.DetectionTypeId;
}
}
Model.Batch_NDEItem item = new Model.Batch_NDEItem();
item.NDEID = ndeId;
var batchTrustItem = from x in Funs.DB.Batch_BatchTrustItem
join y in Funs.DB.Batch_BatchTrust on x.TrustBatchId equals y.TrustBatchId
join z in Funs.DB.Pipeline_WeldJoint on x.WeldJointId equals z.WeldJointId
where y.TrustBatchId == trustBatchId && x.WeldJointId == isExitValue.WeldJointId && z.PipelineId == isExitValue.PipelineId
select x;
if (batchTrustItem != null)
{
var ndeItem = from x in Funs.DB.Batch_NDEItem where x.TrustBatchItemId == batchTrustItem.First().TrustBatchItemId select x;
item.TrustBatchItemId = batchTrustItem.First().TrustBatchItemId;
item.DetectionTypeId = detectionTypeId;
if (!string.IsNullOrEmpty(col12))
{
item.NDEReportNo = col12;
}
else
{
item.NDEReportNo = col0;
}
item.FilmDate = Funs.GetNewDateTime(col1);
item.ReportDate = Funs.GetNewDateTime(col6);
item.TotalFilm = Funs.GetNewInt(col7);
item.PassFilm = Funs.GetNewInt(col8);
if (item.TotalFilm == item.PassFilm)
{
item.CheckResult = "1";
}
else if (item.TotalFilm > item.PassFilm)
{
item.CheckResult = "2";
}
if (!string.IsNullOrEmpty(col9))
{
item.JudgeGrade = col9;
}
if (!string.IsNullOrEmpty(col10))
{
string checkDefects = string.Empty;
string[] strs = col10.Split(',');
foreach (var str in strs)
{
var defect = defects.FirstOrDefault(x => x.DefectName == str);
if (defect != null)
{
checkDefects += defect.DefectId.ToString() + ",";
}
}
if (!string.IsNullOrEmpty(checkDefects))
{
checkDefects = checkDefects.Substring(0, checkDefects.LastIndexOf(","));
item.CheckDefects = checkDefects;
}
}
item.RepairLocation = col11;
item.Remark = col12;
item.SubmitDate = DateTime.Now;
if (ndeItem.Count() == 0)
{
item.NDEItemID = SQLHelper.GetNewID(typeof(Model.Batch_NDEItem));
BLL.Batch_NDEItemService.AddNDEItem(item);
}
else
{
var r = BLL.RepairRecordService.GetRepairRecordByNdeItemId(ndeItem.First().NDEItemID);
// 当没有返修单时可更新
if (r == null)
{
item.NDEItemID = ndeItem.First().NDEItemID;
BLL.Batch_NDEItemService.UpdateNDEItem(item);
}
}
}
}
}
ShowNotify("导入成功!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
else
{
ShowNotify("导入数据为空!", MessageBoxIcon.Warning);
}
return true;
}
#endregion
#endregion
#region
/// <summary>
/// 导出错误提示
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnOut_Click(object sender, EventArgs e)
{
//string strFileName = DateTime.Now.ToString("yyyyMMdd-hhmmss");
//System.Web.HttpContext HC = System.Web.HttpContext.Current;
//HC.Response.Clear();
//HC.Response.Buffer = true;
//HC.Response.ContentEncoding = System.Text.Encoding.UTF8;//设置输出流为简体中文
////---导出为Excel文件
//HC.Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(strFileName, System.Text.Encoding.UTF8) + ".xls");
//HC.Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
//System.IO.StringWriter sw = new System.IO.StringWriter();
//System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw);
//this.gvErrorInfo.RenderControl(htw);
//HC.Response.Write(sw.ToString());
//HC.Response.End();
}
/// <summary>
/// 重载VerifyRenderingInServerForm方法否则运行的时候会出现如下错误提示“类型“GridView”的控件“GridView1”必须放在具有 runat=server 的窗体标记内”
/// </summary>
/// <param name="control"></param>
public override void VerifyRenderingInServerForm(Control control)
{
}
#endregion
#region
/// <summary>
/// 关闭审核弹出窗口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window1_Close(object sender, WindowCloseEventArgs e)
{
//errorInfos.Clear();
//if (Session["errorInfos"] != null)
//{
// this.hdCheckResult.Text = Session["errorInfos"].ToString();
//}
//else
//{
// this.hdCheckResult.Text = string.Empty;
// this.Grid1.Hidden = false;
// this.gvErrorInfo.Hidden = true;
//}
//if (!string.IsNullOrEmpty(this.hdCheckResult.Text.Trim()))
//{
// string result = this.hdCheckResult.Text.Trim();
// List<string> errorInfoList = result.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)
// {
// this.Grid1.Hidden = true;
// this.gvErrorInfo.Hidden = false;
// //this.btnOut.Hidden = false;
// this.gvErrorInfo.DataSource = errorInfos;
// this.gvErrorInfo.DataBind();
// }
//}
}
/// <summary>
/// 关闭导入弹出窗口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window2_Close(object sender, WindowCloseEventArgs e)
{
}
///// <summary>
///// 关闭保存弹出窗口
///// </summary>
///// <param name="sender"></param>
///// <param name="e"></param>
//protected void Window3_Close(object sender, WindowCloseEventArgs e)
//{
// if (Session["persons"] != null)
// {
// persons = Session["persons"] as List<Model.View_DataIn_AccidentCauseReport>;
// }
// if (persons.Count > 0)
// {
// this.Grid1.Visible = true;
// this.Form2.Visible = false;
// this.Grid1.DataSource = persons;
// this.Grid1.DataBind();
// }
//}
#endregion
#region
/// <summary>
/// 下载模板按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnDownLoad_Click(object sender, EventArgs e)
{
PageContext.RegisterStartupScript(Confirm.GetShowReference("确定下载导入模板吗?", String.Empty, MessageBoxIcon.Question, PageManager1.GetCustomEventReference(false, "Confirm_OK"), PageManager1.GetCustomEventReference("Confirm_Cancel")));
}
/// <summary>
/// 下载导入模板
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void PageManager1_CustomEvent(object sender, CustomEventArgs e)
{
if (e.EventArgument == "Confirm_OK")
{
string rootPath = Server.MapPath("~/");
string uploadfilepath = rootPath + Const.HJGL_CheckInTemplateUrl;
string filePath = Const.HJGL_CheckInTemplateUrl;
string fileName = Path.GetFileName(filePath);
FileInfo info = new FileInfo(uploadfilepath);
long fileSize = info.Length;
Response.ClearContent();
Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
Response.ContentType = "excel/plain";
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.AddHeader("Content-Length", fileSize.ToString().Trim());
Response.TransmitFile(uploadfilepath, 0, fileSize);
Response.End();
}
}
#endregion
}
}