1193 lines
58 KiB
C#
1193 lines
58 KiB
C#
|
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
|
|||
|
}
|
|||
|
}
|