SGGL_HBAZ/SGGL/FineUIPro.Web/HJGL/CheckManage/CheckManageDataIn.aspx.cs

1113 lines
53 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 BLL;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.IO;
using System.Linq;
using System.Web.UI.WebControls;
namespace FineUIPro.Web.HJGL.WeldingManage
{
public partial class CheckManageDataIn : PageBase
{
#region
/// <summary>
/// 检测方法
/// </summary>
public string DetectionTypeId
{
get
{
return (string)ViewState["DetectionTypeId"];
}
set
{
ViewState["DetectionTypeId"] = value;
}
}
/// <summary>
/// 检测方法代号
/// </summary>
public string DetectionTypeCode
{
get
{
return (string)ViewState["DetectionTypeCode"];
}
set
{
ViewState["DetectionTypeCode"] = value;
}
}
/// <summary>
/// 上传预设的虚拟路径
/// </summary>
private string initPath = Const.ExcelUrl;
/// <summary>
/// 导入模版文件原始的虚拟路径
/// </summary>
private string initTemplatePath = string.Empty;
/// <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)
{
this.DetectionTypeId = Request.Params["detectionTypeId"];
if (!string.IsNullOrEmpty(this.DetectionTypeId))
{
var deectionType = BLL.Base_DetectionTypeService.GetDetectionTypeByDetectionTypeId(this.DetectionTypeId);
if (deectionType != null)
{
this.DetectionTypeCode = deectionType.DetectionTypeCode;
}
}
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)
{
var detectionType = BLL.Base_DetectionTypeService.GetDetectionTypeByDetectionTypeId(this.DetectionTypeId);
if (detectionType != null)
{
if (detectionType.DetectionTypeCode == "RT")
{
initTemplatePath = Const.RTCheckManageDataInTemplateUrl;
}
else if (detectionType.DetectionTypeCode == "PT")
{
initTemplatePath = Const.PTCheckManageDataInTemplateUrl;
}
}
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();
if (this.DetectionTypeCode == "RT")
{
AddDatasetToSQL(ds.Tables[0], 35);
}
else if (this.DetectionTypeCode == "PT")
{
AddDatasetToSQL(ds.Tables[0], 34);
}
}
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() + "列");
}
//委托单位
var trustUnits = from x in Funs.DB.Project_ProjectUnit
join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId
where x.ProjectId == this.CurrUser.LoginProjectId //&& x.UnitType == "2"
select y;
//装置
var installations = from x in Funs.DB.Project_Installation
where x.ProjectId == this.CurrUser.LoginProjectId
select x;
//区域
var workareas = from x in Funs.DB.ProjectData_WorkArea
where x.ProjectId == this.CurrUser.LoginProjectId
select x;
//委托
var trusts = from x in Funs.DB.CH_Trust
where x.ProjectId == this.CurrUser.LoginProjectId
select x;
//管线
var isoInfos = from x in Funs.DB.PW_IsoInfo
where x.ProjectId == this.CurrUser.LoginProjectId
select x;
//焊口
var jointInfos = from x in Funs.DB.PW_JointInfo where x.ProjectId == this.CurrUser.LoginProjectId select x;
//焊工号
var welders = from x in Funs.DB.BS_Welder where x.ProjectId == this.CurrUser.LoginProjectId select x;
//材质
var materials = from x in Funs.DB.Base_Material select x;
//检测比例
var detectionRates = from x in Funs.DB.Base_DetectionRate select x;
//焊接方法
var weldingMotheds = from x in Funs.DB.Base_WeldingMethod select x;
//坡口形式
var grooveTypes = from x in Funs.DB.Base_GrooveType select x;
ir = pds.Rows.Count;
if (pds != null && ir > 0)
{
for (int i = 0; i < ir; i++)
{
//string unitId = string.Empty;
string installationId = string.Empty;
string workareaId = string.Empty;
string isoid = string.Empty;
if (string.IsNullOrEmpty(pds.Rows[i][0].ToString().Trim()))
{
result += (i + 2).ToString() + "," + "委托单位" + "," + "此项为必填项!" + "|";
}
else
{
var unit = trustUnits.FirstOrDefault(e => e.UnitName == pds.Rows[i][0].ToString().Trim());
if (unit == null)
{
result += (i + 2).ToString() + "," + "委托单位[" + pds.Rows[i][0].ToString().Trim() + "],不存在|";
}
//else
//{
// unitId = unit.UnitId;
//}
}
if (string.IsNullOrEmpty(pds.Rows[i][1].ToString()))
{
result += (i + 2).ToString() + "," + "承包单位" + "," + "此项为必填项!" + "|";
}
if (string.IsNullOrEmpty(pds.Rows[i][2].ToString().Trim()))
{
result += (i + 2).ToString() + "," + "单元/装置名称" + "," + "此项为必填项!" + "|";
}
else
{
var installation = installations.FirstOrDefault(e => e.InstallationName == pds.Rows[i][2].ToString().Trim());
if (installation == null)
{
result += (i + 2).ToString() + "," + "单元/装置名称[" + pds.Rows[i][2].ToString().Trim() + "],不存在|";
}
else
{
installationId = installation.InstallationId;
}
}
if (string.IsNullOrEmpty(pds.Rows[i][3].ToString().Trim()))
{
result += (i + 2).ToString() + "," + "区号" + "," + "此项为必填项!" + "|";
}
else
{
var workarea = workareas.FirstOrDefault(e => e.InstallationId == installationId && e.WorkAreaCode == pds.Rows[i][3].ToString().Trim());
if (workarea == null)
{
result += (i + 2).ToString() + "," + "区号[" + pds.Rows[i][3].ToString().Trim() + "],该装置下不存在|";
}
else
{
workareaId = workarea.WorkAreaId;
}
}
if (string.IsNullOrEmpty(pds.Rows[i][4].ToString().Trim()))
{
result += (i + 2).ToString() + "," + "委托编号" + "," + "此项为必填项!" + "|";
}
else
{
var trust = trusts.FirstOrDefault(e => e.CH_TrustCode == pds.Rows[i][4].ToString().Trim());
if (trust == null)
{
result += (i + 2).ToString() + "," + "委托编号[" + pds.Rows[i][4].ToString().Trim() + "],不存在|";
}
}
if (string.IsNullOrEmpty(pds.Rows[i][5].ToString()))
{
result += (i + 2).ToString() + "," + "委托日期" + "," + "此项为必填项!" + "|";
}
else
{
try
{
}
catch (Exception)
{
result += (i + 2).ToString() + "," + "委托日期" + "," + "格式不正确!" + "|";
}
}
if (string.IsNullOrEmpty(pds.Rows[i][6].ToString()))
{
result += (i + 2).ToString() + "," + "检件名称" + "," + "此项为必填项!" + "|";
}
if (this.DetectionTypeCode == "RT")
{
//if (string.IsNullOrEmpty(pds.Rows[i][7].ToString()))
//{
// result += (i + 2).ToString() + "," + "检测批号" + "," + "此项为必填项!" + "|";
//}
if (string.IsNullOrEmpty(pds.Rows[i][8].ToString().Trim()))
{
result += (i + 2).ToString() + "," + "检件编号(管线号)" + "," + "此项为必填项!" + "|";
}
else
{
var iso = isoInfos.FirstOrDefault(e => e.WorkAreaId == workareaId && e.ISO_IsoNo == pds.Rows[i][8].ToString().Trim());
if (iso == null)
{
result += (i + 2).ToString() + "," + "检件编号(管线号)[" + pds.Rows[i][8].ToString().Trim() + "],该区域下不存在|";
}
else
{
isoid = iso.ISO_ID;
}
}
if (string.IsNullOrEmpty(pds.Rows[i][9].ToString().Trim()))
{
result += (i + 2).ToString() + "," + "焊口号" + "," + "此项为必填项!" + "|";
}
else
{
var joint = jointInfos.FirstOrDefault(e => e.ISO_ID == isoid && e.JOT_JointNo == pds.Rows[i][9].ToString().Trim());
if (joint == null)
{
result += (i + 2).ToString() + "," + "焊口号[" + pds.Rows[i][9].ToString().Trim() + "],该管线下不存在|";
}
}
if (string.IsNullOrEmpty(pds.Rows[i][10].ToString().Trim()))
{
result += (i + 2).ToString() + "," + "焊工号" + "," + "此项为必填项!" + "|";
}
else
{
var welder = welders.FirstOrDefault(e => e.WED_Code == pds.Rows[i][11].ToString().Trim());
if (welder == null)
{
result += (i + 2).ToString() + "," + "焊工号[" + pds.Rows[i][11].ToString().Trim() + "],不存在|";
}
}
if (string.IsNullOrEmpty(pds.Rows[i][12].ToString()))
{
result += (i + 2).ToString() + "," + "检件规格" + "," + "此项为必填项!" + "|";
}
if (string.IsNullOrEmpty(pds.Rows[i][13].ToString().Trim()))
{
result += (i + 2).ToString() + "," + "检件材质" + "," + "此项为必填项!" + "|";
}
else
{
var material = materials.FirstOrDefault(e => e.MaterialCode == pds.Rows[i][13].ToString().Trim());
if (material == null)
{
result += (i + 2).ToString() + "," + "检件材质[" + pds.Rows[i][13].ToString().Trim() + "],不存在|";
}
}
if (string.IsNullOrEmpty(pds.Rows[i][14].ToString().Trim()))
{
result += (i + 2).ToString() + "," + "比例(%" + "," + "此项为必填项!" + "|";
}
else
{
var rate = detectionRates.FirstOrDefault(e => e.DetectionRate == pds.Rows[i][14].ToString());
if (rate == null)
{
result += (i + 2).ToString() + "," + "比例(%[" + pds.Rows[i][14].ToString().Trim() + "],不存在|";
}
}
if (string.IsNullOrEmpty(pds.Rows[i][15].ToString()))
{
result += (i + 2).ToString() + "," + "合格级别" + "," + "此项为必填项!" + "|";
}
//if (string.IsNullOrEmpty(pds.Rows[i][15].ToString()))
//{
// result += (i + 2).ToString() + "," + "焊口数" + "," + "此项为必填项!" + "|";
//}
if (string.IsNullOrEmpty(pds.Rows[i][17].ToString()))
{
result += (i + 2).ToString() + "," + "拍片性质" + "," + "此项为必填项!" + "|";
}
if (string.IsNullOrEmpty(pds.Rows[i][18].ToString()))
{
result += (i + 2).ToString() + "," + "片位号" + "," + "此项为必填项!" + "|";
}
//if (string.IsNullOrEmpty(pds.Rows[i][18].ToString()))
//{
// result += (i + 2).ToString() + "," + "缺陷性质" + "," + "此项为必填项!" + "|";
//}
//if (string.IsNullOrEmpty(pds.Rows[i][19].ToString()))
//{
// result += (i + 2).ToString() + "," + "缺陷定量" + "," + "此项为必填项!" + "|";
//}
//if (string.IsNullOrEmpty(pds.Rows[i][20].ToString()))
//{
// result += (i + 2).ToString() + "," + "评定级别" + "," + "此项为必填项!" + "|";
//}
if (string.IsNullOrEmpty(pds.Rows[i][22].ToString()))
{
result += (i + 2).ToString() + "," + "是否合格" + "," + "此项为必填项!" + "|";
}
//if (string.IsNullOrEmpty(pds.Rows[i][22].ToString()))
//{
// result += (i + 2).ToString() + "," + "备注" + "," + "此项为必填项!" + "|";
//}
if (string.IsNullOrEmpty(pds.Rows[i][24].ToString()))
{
result += (i + 2).ToString() + "," + "拍片日期" + "," + "此项为必填项!" + "|";
}
//if (string.IsNullOrEmpty(pds.Rows[i][24].ToString()))
//{
// result += (i + 2).ToString() + "," + "拍片人" + "," + "此项为必填项!" + "|";
//}
//if (string.IsNullOrEmpty(pds.Rows[i][25].ToString()))
//{
// result += (i + 2).ToString() + "," + "源种类" + "," + "此项为必填项!" + "|";
//}
//if (string.IsNullOrEmpty(pds.Rows[i][26].ToString()))
//{
// result += (i + 2).ToString() + "," + "底片规格" + "," + "此项为必填项!" + "|";
//}
//if (string.IsNullOrEmpty(pds.Rows[i][27].ToString()))
//{
// result += (i + 2).ToString() + "," + "结果单编号" + "," + "此项为必填项!" + "|";
//}
//if (string.IsNullOrEmpty(pds.Rows[i][28].ToString()))
//{
// result += (i + 2).ToString() + "," + "结果单日期" + "," + "此项为必填项!" + "|";
//}
//if (string.IsNullOrEmpty(pds.Rows[i][29].ToString()))
//{
// result += (i + 2).ToString() + "," + "报告编号" + "," + "此项为必填项!" + "|";
//}
//if (string.IsNullOrEmpty(pds.Rows[i][30].ToString()))
//{
// result += (i + 2).ToString() + "," + "报告日期" + "," + "此项为必填项!" + "|";
//}
//if (string.IsNullOrEmpty(pds.Rows[i][31].ToString()))
//{
// result += (i + 2).ToString() + "," + "合格数量" + "," + "此项为必填项!" + "|";
//}
//if (string.IsNullOrEmpty(pds.Rows[i][32].ToString()))
//{
// result += (i + 2).ToString() + "," + "不合格数" + "," + "此项为必填项!" + "|";
//}
if (string.IsNullOrEmpty(pds.Rows[i][34].ToString().Trim()))
{
result += (i + 2).ToString() + "," + "焊接方法" + "," + "此项为必填项!" + "|";
}
else
{
var weldthoed = weldingMotheds.FirstOrDefault(e => e.WeldingMethodCode == pds.Rows[i][34].ToString().Trim());
if (weldthoed == null)
{
result += (i + 2).ToString() + "," + "焊接方法[" + pds.Rows[i][34].ToString().Trim() + "],不存在|";
}
}
}
else if (this.DetectionTypeCode == "PT")
{
if (string.IsNullOrEmpty(pds.Rows[i][9].ToString().Trim()))
{
result += (i + 2).ToString() + "," + "检件编号(管线号)" + "," + "此项为必填项!" + "|";
}
else
{
var iso = isoInfos.FirstOrDefault(e => e.WorkAreaId == workareaId && e.ISO_IsoNo == pds.Rows[i][9].ToString().Trim());
if (iso == null)
{
result += (i + 2).ToString() + "," + "检件编号(管线号)[" + pds.Rows[i][9].ToString().Trim() + "],该区域下不存在|";
}
else
{
isoid = iso.ISO_ID;
}
}
if (string.IsNullOrEmpty(pds.Rows[i][10].ToString().Trim()))
{
result += (i + 2).ToString() + "," + "焊口号" + "," + "此项为必填项!" + "|";
}
else
{
var joint = jointInfos.FirstOrDefault(e => e.ISO_ID == isoid && e.JOT_JointNo == pds.Rows[i][10].ToString().Trim());
if (joint == null)
{
result += (i + 2).ToString() + "," + "焊口号[" + pds.Rows[i][10].ToString().Trim() + "],该管线下不存在|";
}
}
if (string.IsNullOrEmpty(pds.Rows[i][12].ToString().Trim()))
{
result += (i + 2).ToString() + "," + "焊工号" + "," + "此项为必填项!" + "|";
}
else
{
var welder = welders.FirstOrDefault(e => e.WED_Code == pds.Rows[i][12].ToString().Trim());
if (welder == null)
{
result += (i + 2).ToString() + "," + "焊工号[" + pds.Rows[i][12].ToString().Trim() + "],不存在|";
}
}
if (string.IsNullOrEmpty(pds.Rows[i][14].ToString().Trim()))
{
result += (i + 2).ToString() + "," + "检件材质" + "," + "此项为必填项!" + "|";
}
else
{
var material = materials.FirstOrDefault(e => e.MaterialCode == pds.Rows[i][14].ToString().Trim());
if (material == null)
{
result += (i + 2).ToString() + "," + "检件材质[" + pds.Rows[i][14].ToString().Trim() + "],不存在|";
}
}
if (string.IsNullOrEmpty(pds.Rows[i][15].ToString().Trim()))
{
result += (i + 2).ToString() + "," + "比例(%" + "," + "此项为必填项!" + "|";
}
else
{
var rate = detectionRates.FirstOrDefault(e => e.DetectionRate == pds.Rows[i][15].ToString());
if (rate == null)
{
result += (i + 2).ToString() + "," + "比例(%[" + pds.Rows[i][15].ToString().Trim() + "],不存在|";
}
}
if (string.IsNullOrEmpty(pds.Rows[i][16].ToString().Trim()))
{
result += (i + 2).ToString() + "," + "焊接方法" + "," + "此项为必填项!" + "|";
}
else
{
var weldthoed = weldingMotheds.FirstOrDefault(e => e.WeldingMethodCode == pds.Rows[i][16].ToString().Trim());
if (weldthoed == null)
{
result += (i + 2).ToString() + "," + "焊接方法[" + pds.Rows[i][16].ToString().Trim() + "],不存在|";
}
}
if (!string.IsNullOrEmpty(pds.Rows[i][17].ToString().Trim()))
{
var groove = grooveTypes.FirstOrDefault(e => e.GrooveTypeCode == pds.Rows[i][17].ToString().Trim());
if (groove == null)
{
result += (i + 2).ToString() + "," + "坡口形式[" + pds.Rows[i][17].ToString().Trim() + "],不存在|";
}
}
if (string.IsNullOrEmpty(pds.Rows[i][28].ToString().Trim()))
{
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();
if (this.DetectionTypeCode == "RT")
{
AddDatasetToSQL2(ds.Tables[0], 35);
}
else if (this.DetectionTypeCode == "PT")
{
AddDatasetToSQL2(ds.Tables[0], 34);
}
}
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.CH_CheckStatic> checkStaticList = new List<Model.CH_CheckStatic>();
//委托单位
var trustUnits = from x in Funs.DB.Project_ProjectUnit
join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId
where x.ProjectId == this.CurrUser.LoginProjectId //&& x.UnitType == "2"
select y;
//装置
var installations = from x in Funs.DB.Project_Installation
where x.ProjectId == this.CurrUser.LoginProjectId
select x;
//区域
var workareas = from x in Funs.DB.ProjectData_WorkArea
where x.ProjectId == this.CurrUser.LoginProjectId
select x;
//委托
var trusts = from x in Funs.DB.CH_Trust
where x.ProjectId == this.CurrUser.LoginProjectId
select x;
//管线
var isoInfos = from x in Funs.DB.PW_IsoInfo
where x.ProjectId == this.CurrUser.LoginProjectId
select x;
//焊口
var jointInfos = from x in Funs.DB.PW_JointInfo where x.ProjectId == this.CurrUser.LoginProjectId select x;
//焊工号
var welders = from x in Funs.DB.BS_Welder where x.ProjectId == this.CurrUser.LoginProjectId select x;
//材质
var materials = from x in Funs.DB.Base_Material select x;
//检测比例
var detectionRates = from x in Funs.DB.Base_DetectionRate select x;
//焊接方法
var weldingMotheds = from x in Funs.DB.Base_WeldingMethod select x;
//坡口形式
var grooveTypes = from x in Funs.DB.Base_GrooveType select x;
ir = pds.Rows.Count;
if (pds != null && ir > 0)
{
for (int i = 0; i < ir; i++)
{
string row8 = string.Empty;
string row9 = string.Empty;
string row10 = string.Empty;
string row11 = string.Empty;
string row12 = string.Empty;
string row13 = string.Empty;
string row14 = string.Empty;
string row15 = string.Empty;
string row16 = string.Empty;
string row17 = string.Empty;
string row18 = string.Empty;
string row19 = string.Empty;
string row20 = string.Empty;
string row21 = string.Empty;
string row22 = string.Empty;
string row23 = string.Empty;
string row24 = string.Empty;
string row25 = string.Empty;
string row26 = string.Empty;
string row27 = string.Empty;
string row28 = string.Empty;
string row29 = string.Empty;
string row30 = string.Empty;
string row31 = string.Empty;
string row32 = string.Empty;
string row33 = string.Empty;
string row34 = string.Empty;
string row0= pds.Rows[i][0].ToString().Trim();//委托单位
string row1 = pds.Rows[i][1].ToString().Trim();//承包单位
string row2 = pds.Rows[i][2].ToString().Trim();//单元/装置名称
string row3 = pds.Rows[i][3].ToString().Trim();//区号
string row4 = pds.Rows[i][4].ToString().Trim();// 委托编号
string row5 = pds.Rows[i][5].ToString().Trim();//委托日期
string row6 = pds.Rows[i][6].ToString().Trim();//检件名称
string row7 = pds.Rows[i][7].ToString().Trim();//检测批号
if (this.DetectionTypeCode == "RT")
{
row8 = pds.Rows[i][8].ToString().Trim();//检件编号(管线号)
row9 = pds.Rows[i][9].ToString().Trim();//焊口号
row10 = pds.Rows[i][10].ToString().Trim();//焊口标志
row11 = pds.Rows[i][11].ToString().Trim();//焊工号
row12 = pds.Rows[i][12].ToString().Trim();//检件规格
row13 = pds.Rows[i][13].ToString().Trim();//检件材质
row14 = pds.Rows[i][14].ToString().Trim();//比例(%
row15 = pds.Rows[i][15].ToString().Trim();//合格级别
row16 = pds.Rows[i][16].ToString().Trim();//焊口数
row17= pds.Rows[i][17].ToString().Trim();//拍片性质
row18 = pds.Rows[i][18].ToString().Trim();//片位号
row19 = pds.Rows[i][19].ToString().Trim();//缺陷性质
row20 = pds.Rows[i][20].ToString().Trim();//缺陷定量
row21 = pds.Rows[i][21].ToString().Trim();//评定级别
row22 = pds.Rows[i][22].ToString().Trim();//是否合格
row23 = pds.Rows[i][23].ToString().Trim();//备注
row24 = pds.Rows[i][24].ToString().Trim();//拍片日期
row25 = pds.Rows[i][25].ToString().Trim();//拍片人
row26 = pds.Rows[i][26].ToString().Trim();//源种类
row27 = pds.Rows[i][27].ToString().Trim();//底片规格
row28 = pds.Rows[i][28].ToString().Trim();//结果单编号
row29 = pds.Rows[i][29].ToString().Trim();//结果单日期
row30 = pds.Rows[i][30].ToString().Trim();//报告编号
row31 = pds.Rows[i][31].ToString().Trim();//报告日期
row32 = pds.Rows[i][32].ToString().Trim();//合格数量
row33 = pds.Rows[i][33].ToString().Trim();//不合格数
row34 = pds.Rows[i][34].ToString().Trim();//焊接方法
}
else if (this.DetectionTypeCode=="PT")
{
row8 = pds.Rows[i][8].ToString().Trim();//检测时机
row9 = pds.Rows[i][9].ToString().Trim();//检件编号(管线号)
row10 = pds.Rows[i][10].ToString().Trim();//焊口号
row11 = pds.Rows[i][11].ToString().Trim();//焊口标志
row12 = pds.Rows[i][12].ToString().Trim();//焊工号
row13 = pds.Rows[i][13].ToString().Trim();//检件规格
row14 = pds.Rows[i][14].ToString().Trim();//检件材质
row15 = pds.Rows[i][15].ToString().Trim();//比例(%
row16 = pds.Rows[i][16].ToString().Trim();//焊接方法
row17 = pds.Rows[i][17].ToString().Trim();//坡口形式
row18 = pds.Rows[i][18].ToString().Trim();//级别
row19 = pds.Rows[i][19].ToString().Trim();//工艺卡序号
row20 = pds.Rows[i][20].ToString().Trim();//工作量米
row21 = pds.Rows[i][21].ToString().Trim();//工作量道
row22 = pds.Rows[i][22].ToString().Trim();//检测日期
row23 = pds.Rows[i][23].ToString().Trim();//检测面
row24 = pds.Rows[i][24].ToString().Trim();//检测人
row25 = pds.Rows[i][25].ToString().Trim();//缺陷情况或缺陷示意图编号
row26 = pds.Rows[i][26].ToString().Trim();//评定级别
row27 = pds.Rows[i][27].ToString().Trim();//结果
row28 = pds.Rows[i][28].ToString().Trim();//结果单编号
row29 = pds.Rows[i][29].ToString().Trim();//结果单日期
row30 = pds.Rows[i][30].ToString().Trim();//报告编号
row31 = pds.Rows[i][31].ToString().Trim();//报告日期
row32 = pds.Rows[i][32].ToString().Trim();//工作量
row33 = pds.Rows[i][33].ToString().Trim();//工程进度款
}
Model.CH_CheckStatic checkStatic = new Model.CH_CheckStatic();
checkStatic.CheckStaticId = Guid.NewGuid().ToString();
checkStatic.ProjectId = this.CurrUser.LoginProjectId;
checkStatic.ProjectName = BLL.ProjectService.GetProjectNameByProjectId(this.CurrUser.LoginProjectId);
checkStatic.DetectionTypeCode = this.DetectionTypeCode;
checkStatic.CreateDate = DateTime.Now;
var trustUnit = trustUnits.FirstOrDefault(e => e.UnitName == row0);//委托单位
if (trustUnit != null)
{
checkStatic.TrustUnitId = trustUnit.UnitId;
checkStatic.TrustUnitName = trustUnit.UnitName;
}
checkStatic.UnitName= row1;//承包单位
var unit = BLL.UnitService.getUnitByUnitName(row1);
if (unit != null)
{
checkStatic.UnidId = unit.UnitId;
}
//单元/装置名称
var insta = installations.FirstOrDefault(e => e.InstallationName == row2);
if (insta!=null)
{
checkStatic.InstallationName = row2;
checkStatic.Installation_ID = insta.InstallationId;
}
//区域
var workarea = workareas.FirstOrDefault(e => e.WorkAreaCode == row3);
if (workarea!=null)
{
checkStatic.WorkAreaCode = row3;
checkStatic.WorkAreaId = workarea.WorkAreaId;
}
var trust = trusts.FirstOrDefault(e => e.CH_TrustCode == row4);
if (trust != null)
{
checkStatic.CH_TrustCode = row4;
checkStatic.CH_TrustID = trust.CH_TrustID;
if (!string.IsNullOrEmpty(row5))
{
checkStatic.Trust_Date = Funs.GetNewDateTime(row5);
}
else
{
checkStatic.Trust_Date = trust.CH_TrustDate;
}
}
checkStatic.ItemName = row6;//检件名称
checkStatic.BatchNum = row7;//检测批号
if (this.DetectionTypeCode == "RT")
{
var iso = isoInfos.FirstOrDefault(e => e.ISO_IsoNo == row8);
if (iso != null)
{
checkStatic.ISO_IsoNo = row8;
checkStatic.ISO_ID = iso.ISO_ID;
}
var joint = jointInfos.FirstOrDefault(e => e.JOT_JointNo == row9);
if (joint != null)
{
checkStatic.JOT_JointNo = row9;
checkStatic.JOT_ID = joint.JOT_ID;
}
checkStatic.JointNoFlag = row10;//焊口标志
var welder = welders.FirstOrDefault(e => e.WED_Code == row11);
if (welder != null)
{
checkStatic.WED_ID = welder.WED_ID;
checkStatic.WED_Code = row11;
}
checkStatic.JOT_JointDesc = row12;//检件规格
//检件材质
var material = materials.FirstOrDefault(e => e.MaterialCode == row13);
if (material != null)
{
checkStatic.MaterialId = material.MaterialId;
checkStatic.MaterialCode = row13;
}
//比例(%
var rate = detectionRates.FirstOrDefault(e => e.DetectionRate == row14);
if (rate != null)
{
checkStatic.DetectionRateId = rate.DetectionRateId;
checkStatic.DetectionRateCode = row14;
}
checkStatic.QualificationLevel = row15;//合格级别
checkStatic.JointCount = Funs.GetNewInt(row16);//焊口数
checkStatic.FilmingNature = row17;//拍片性质
checkStatic.FilmNum = row18;//片位号
checkStatic.DefectType = row19;//缺陷性质
checkStatic.DefectNum = row20;//缺陷定量
checkStatic.EvaluateLevel = row21;//评定级别
checkStatic.CheckResult = row22;//是否合格
checkStatic.Remark = row23;//备注
checkStatic.CheckDate = Funs.GetNewDateTime(row24);//拍片日期
checkStatic.FilmMan = row25;//拍片人
checkStatic.SourceCategory = row26;//源种类
checkStatic.FilmSpecifications = row27;//底片规格
checkStatic.CheckResultNum = row28;//结果单编号
checkStatic.CheckResultDate = Funs.GetNewDateTime(row29);//结果单日期
checkStatic.ReportNo = row30;//报告编号
if (!string.IsNullOrEmpty(row31))
{
checkStatic.ReportDate = Funs.GetNewDateTime(row31);//报告日期
}
else
{
checkStatic.ReportDate = DateTime.Now;
}
checkStatic.PassCount = Funs.GetNewInt(row32);//合格数量
checkStatic.NoPassCount = Funs.GetNewInt(row33);//不合格数
//焊接方法
var weldingMethod = weldingMotheds.FirstOrDefault(e => e.WeldingMethodCode == row34);
if (weldingMethod != null)
{
checkStatic.WME_ID = weldingMethod.WeldingMethodId;
checkStatic.WeldingMethodCode = row34;
}
}
else if (this.DetectionTypeCode=="PT")
{
checkStatic.DetectionTime = row8;
var iso = isoInfos.FirstOrDefault(e => e.ISO_IsoNo == row9);
if (iso != null)
{
checkStatic.ISO_IsoNo = row9;
checkStatic.ISO_ID = iso.ISO_ID;
}
var joint = jointInfos.FirstOrDefault(e => e.JOT_JointNo == row10);
if (joint != null)
{
checkStatic.JOT_JointNo = row10;
checkStatic.JOT_ID = joint.JOT_ID;
}
checkStatic.JointNoFlag = row11;//焊口号标志
var welder = welders.FirstOrDefault(e => e.WED_Code == row12);
if (welder != null)
{
checkStatic.WED_ID = welder.WED_ID;
checkStatic.WED_Code = row12;
}
checkStatic.JOT_JointDesc = row13;//检件规格
//检件材质
var material = materials.FirstOrDefault(e => e.MaterialCode == row14);
if (material != null)
{
checkStatic.MaterialId = material.MaterialId;
checkStatic.MaterialCode = row14;
}
//比例(%
var rate = detectionRates.FirstOrDefault(e => e.DetectionRate == row15);
if (rate != null)
{
checkStatic.DetectionRateId = rate.DetectionRateId;
checkStatic.DetectionRateCode = row15;
}
//焊接方法
var weldingMethod = weldingMotheds.FirstOrDefault(e => e.WeldingMethodCode == row16);
if (weldingMethod != null)
{
checkStatic.WME_ID = weldingMethod.WeldingMethodId;
checkStatic.WeldingMethodCode = row16;
}
//坡口形式
var grooveType = grooveTypes.FirstOrDefault(e => e.GrooveTypeCode == row17);
if (grooveType!=null)
{
checkStatic.GrooveTypeId = grooveType.GrooveTypeId;
checkStatic.GrooveTypeCode = row17;
}
checkStatic.QualificationLevel = row18;//级别
checkStatic.ProcessCardNum = row19;//工艺卡序号
checkStatic.WorkMeter = row20;//工作量米
checkStatic.WorkloadTrack = row21;//工作量道
checkStatic.CheckDate = Funs.GetNewDateTime(row22);//检测日期
checkStatic.DetectionSurface = row23;//检测面
checkStatic.FilmMan = row24;//检测人
checkStatic.DefectCode = row25;//缺陷情况或缺陷示意图编号
checkStatic.EvaluateLevel = row26;//评定级别
checkStatic.CheckResult = row27;//结果
checkStatic.CheckResultNum = row28;//结果单编号
checkStatic.CheckResultDate = Funs.GetNewDateTime(row29);//结果单日期
checkStatic.ReportNo = row30;//报告编号
if (!string.IsNullOrEmpty(row31))
{
checkStatic.ReportDate = Funs.GetNewDateTime(row31);//报告日期
}
else
{
checkStatic.ReportDate = DateTime.Now;
}
checkStatic.Workloads = row32;//工作量
checkStatic.ProgressMoney = row33;//工程进度款
}
checkStaticList.Add(checkStatic);
}
Funs.DB.CH_CheckStatic.InsertAllOnSubmit(checkStaticList);
Funs.DB.SubmitChanges();
ShowNotify("导入成功!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
else
{
throw new Exception("导入数据为空!");
}
return true;
}
#endregion
}
}