using BLL;
using MiniExcelLibs;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
namespace FineUIPro.Web.HJGL.WeldingManage
{
public partial class PipelineListPDMSIn : PageBase
{
#region 定义变量
///
/// 上传预设的虚拟路径
///
private string initPath = Const.ExcelUrl;
///
/// 安装组件集合
///
public static List PipelineList = new List();
///
/// 错误集合
///
public static string errorInfos = string.Empty;
///
/// 导入数据分类(管线)
///
public static string DataClassification = "Pipeline";
public enum ButtonState { Check = 0, Import = 1, Save = 2 }
public static int State;
#endregion
#region 加载
///
/// 加载页面
///
///
///
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.hdFileName.Text = string.Empty;
State = (int)ButtonState.Check;
if (PipelineList != null)
{
PipelineList.Clear();
}
errorInfos = string.Empty;
lbVersion.Text = BLL.HJGL_DesignBasisDataImportService.GetNowVersionByUnitWorkId(Request.Params["UnitWorkId"], DataClassification).ToString();
BindGrid2();
}
}
#endregion
void BindGrid2()
{
string strSql = @" select Import.DesignBasisDataImportId
,Import.ProjectId
,Import.UnitWorkId
,(Case Import.ImportType when '0' then '补充导入'
when '1' then '更新导入' end) as ImportType
,Import.FileName
,Import.FilePath
,Import.DataClassification
,Import.FileType
,Import.FileSize
,Import.FileId
,Import.Version
,Import.Remark
,Import.CreateMan
,Import.CreateDate
, Users.PersonName
from HJGL_DesignBasisDataImport as Import
left join Person_Persons as Users on Users.PersonId=Import.CreateMan
where Import.UnitWorkId=@UnitWorkId and Import.ProjectId=@ProjectId and Import.DataClassification=@DataClassification
order by Import.CreateDate";
List listStr = new List();
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
listStr.Add(new SqlParameter("@UnitWorkId", Request.Params["UnitWorkId"]));
listStr.Add(new SqlParameter("@DataClassification", DataClassification));
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
// 2.获取当前分页数据
//var table = this.GetPagedDataTable(Grid1, tb1);
Grid2.RecordCount = tb.Rows.Count;
tb = GetFilteredTable(Grid2.FilteredData, tb);
var table = this.GetPagedDataTable(Grid2, tb);
Grid2.DataSource = table;
Grid2.DataBind();
drpVersion.DataSource = BLL.HJGL_DesignBasisDataImportService.GetListVersionByUnitWorkId(Request.Params["UnitWorkId"], DataClassification);
drpVersion.DataBind();
}
#region 审核
///
/// 审核
///
///
///
protected void btnAudit_Click(object sender, EventArgs e)
{
try
{
if (this.fuAttachUrl.HasFile == false)
{
ShowNotify("请您选择Excel文件!", MessageBoxIcon.Warning);
return;
}
string IsXls = Path.GetExtension(this.fuAttachUrl.FileName).ToString().Trim().ToLower();
if (IsXls != ".xlsx")
{
ShowNotify("只可以选择Excel文件!", MessageBoxIcon.Warning);
return;
}
if (PipelineList != null)
{
PipelineList.Clear();
}
if (!string.IsNullOrEmpty(errorInfos))
{
errorInfos = string.Empty;
}
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);
ImportXlsToData(rootPath + initPath + this.hdFileName.Text);
}
catch (Exception ex)
{
ShowNotify("'" + ex.Message + "'", MessageBoxIcon.Warning);
}
}
#region 读Excel提取数据
///
/// 从Excel提取数据--》Dataset
///
/// Excel文件路径名
private void ImportXlsToData(string fileName)
{
//支持.xls和.xlsx,即包括office2010等版本的 HDR=Yes代表第一行是标题,不是数据;
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.Fill(ds, "m_tableName");
//oleAdMaster.Dispose();
//oleDBConn.Close();
//oleDBConn.Dispose();
var ds = MiniExcel.QueryAsDataTable(fileName, useHeaderRow: true);
var reposedata = AddDatasetToSQL(ds, 27);
if (reposedata.code==1)
{
State = (int)ButtonState.Import;
ShowNotify("审核完成请点击导入");
}
else
{
ShowNotify(reposedata.message);
}
}
catch (Exception exc)
{
Response.Write(exc);
//return null;
// return dt;
}
//finally
//{
// conn.Close();
// conn.Dispose();
//}
}
#endregion
#region 将Dataset的数据导入数据库
///
/// 将Dataset的数据导入数据库
///
/// 数据集
/// 数据集行数
///
private Model.ResponeData AddDatasetToSQL(DataTable pds, int Cols)
{
Model.ResponeData responeData = new Model.ResponeData();
string result = string.Empty;
int ic, ir;
//pds = BLL.Funs.FilterBlankLines(pds);
ic = pds.Columns.Count;
ir = pds.Rows.Count;
if (ic < Cols)
{
responeData.code = 0;
responeData.message = "导入Excel格式错误!Excel只有" + ic.ToString().Trim() + "列";
return responeData;
//ShowNotify("导入Excel格式错误!Excel只有" + ic.ToString().Trim() + "列", MessageBoxIcon.Warning);
//return false;
}
if (pds != null && ir > 0)
{
var getPipeline = from x in Funs.DB.View_HJGL_WeldJoint where x.ProjectId == this.CurrUser.LoginProjectId select x;
var getMedium = from x in Funs.DB.Base_Medium where x.ProjectId == this.CurrUser.LoginProjectId select x;//介质
var getPipeLineClass = from x in Funs.DB.Base_PipingClass where x.ProjectId == this.CurrUser.LoginProjectId select x;//管道等级
var getDetectionRate = from x in Funs.DB.Base_DetectionRate select x;//探伤比例
var getDetectionType = from x in Funs.DB.Base_DetectionType select x;//探伤类型
var getPressurePipingClass = from x in Funs.DB.Base_PressurePipingClass select x;//压力管道级别
var getTestMedium = from x in Funs.DB.Base_TestMedium where x.TestType == "1" select x;//压力试验介质
var getLeakMedium = from x in Funs.DB.Base_TestMedium where x.TestType == "2" select x;//泄露性试验介质
var getPurgeMethod = from x in Funs.DB.Base_PurgeMethod select x;
var getMaterial = from x in Funs.DB.Base_Material select x;
var getWeldType = from x in Funs.DB.Base_WeldType select x;
//var getComponents = from x in Funs.DB.Base_Components where x.ProjeceId == this.CurrUser.LoginProjectId select x;
for (int i = 0; i < ir; i++)
{
Model.View_HJGL_WeldJoint pipeline = new Model.View_HJGL_WeldJoint();
//pipeline.PipelineId = SQLHelper.GetNewID();
Model.WBS_UnitWork unitWork = BLL.UnitWorkService.GetUnitWorkByUnitWorkId(Request.Params["UnitWorkId"]);
if (unitWork != null)
{
pipeline.UnitWorkId = Request.Params["UnitWorkId"];
pipeline.UnitId = unitWork.UnitId;
}
string col0 = pds.Rows[i][0].ToString();
string pipeLineId = string.Empty;
if (string.IsNullOrEmpty(col0))
{
result += "第" + (i + 2).ToString() + "行," + "管线号" + "," + "此项为必填项!" + "|";
}
else
{
pipeline.PipelineCode = col0;
//var oldPipeline = getPipeline.FirstOrDefault(x => x.PipelineCode == col0 && x.UnitWorkId == Request.Params["UnitWorkId"]);
//if (oldPipeline != null)
//{
// pipeLineId = oldPipeline.PipelineId;
// pipeline.PipelineId = oldPipeline.PipelineId;
//}
//else
//{
// pipeLineId = SQLHelper.GetNewID();
// pipeline.PipelineId = pipeLineId;
//}
}
pipeline.SingleNumber = pds.Rows[i][1].ToString();
pipeline.SingleName = pds.Rows[i][2].ToString();
string col3 = pds.Rows[i][3].ToString();
if (string.IsNullOrEmpty(col3))
{
result += "第" + (i + 2).ToString() + "行," + "介质名称" + "," + "此项为必填项!" + "|";
}
else
{
var Medium = getMedium.FirstOrDefault(x => x.MediumName == col3);
if (Medium == null)
{
result += "第" + (i + 2).ToString() + "行," + "该介质不存在!" + "|";
}
else
{
pipeline.MediumId = Medium.MediumId;
pipeline.MediumName = col3;
}
}
string col4 = pds.Rows[i][4].ToString();
if (string.IsNullOrEmpty(col4))
{
result += "第" + (i + 2).ToString() + "行," + "管道等级" + "," + "此项为必填项!" + "|";
}
else
{
var PipeLineClass = getPipeLineClass.FirstOrDefault(x => x.PipingClassCode == col4);
if (PipeLineClass == null)
{
result += "第" + (i + 2).ToString() + "行," + "该管道等级不存在!" + "|";
}
else
{
pipeline.PipingClassId = PipeLineClass.PipingClassId;
pipeline.PipingClassCode = col4;
}
}
string col5 = pds.Rows[i][5].ToString();
if (!string.IsNullOrEmpty(col5))
{
var DetectionRate = getDetectionRate.FirstOrDefault(x => x.DetectionRateValue.ToString() == col5.Replace("%", "") || x.DetectionRateCode == col5);
if (DetectionRate == null)
{
result += "第" + (i + 2).ToString() + "行," + "该探伤比例不存在!" + "|";
}
else
{
pipeline.DetectionRateId = DetectionRate.DetectionRateId;
pipeline.DetectionRateCode = col5;
}
}
else
{
result += "第" + (i + 2).ToString() + "行," + "探伤比例" + "," + "此项为必填项!" + "|";
}
string col6 = pds.Rows[i][6].ToString();
if (!string.IsNullOrEmpty(col6))
{
string[] types = col6.ToString().Split(',');
foreach (string t in types)
{
var type = getDetectionType.FirstOrDefault(x => x.DetectionTypeCode == t);
if (type == null)
{
result += "第" + (i + 2).ToString() + "行," + "探伤类型【" + t + "】不存在!" + "|";
}
else
{
pipeline.DetectionType += type.DetectionTypeId + "|";
}
}
if (!string.IsNullOrEmpty(pipeline.DetectionType))
{
pipeline.DetectionType = pipeline.DetectionType.Substring(0, pipeline.DetectionType.Length - 1);
pipeline.DetectionTypeStr = col6;
}
}
else
{
result += "第" + (i + 2).ToString() + "行," + "探伤类型" + "," + "此项为必填项!" + "|";
}
string col7 = pds.Rows[i][7].ToString();
if (!string.IsNullOrEmpty(col7))
{
pipeline.DesignTemperature = col7;
}
string col8 = pds.Rows[i][8].ToString();
if (!string.IsNullOrEmpty(col8))
{
pipeline.DesignPress = col8;
}
string col9 = pds.Rows[i][9].ToString();
if (!string.IsNullOrEmpty(col9))
{
var TestMedium = getTestMedium.FirstOrDefault(x => x.MediumName == col9);
if (TestMedium == null)
{
result += "第" + (i + 2).ToString() + "行," + "该压力试验介质不存在!" + "|";
}
else
{
pipeline.TestMedium = TestMedium.TestMediumId;
pipeline.TestMediumName = col9;
}
}
string col10 = pds.Rows[i][10].ToString();
if (!string.IsNullOrEmpty(col10))
{
pipeline.TestPressure = col10;
}
string col11 = pds.Rows[i][11].ToString();
if (!string.IsNullOrEmpty(col11))
{
var PressurePipingClass = getPressurePipingClass.FirstOrDefault(x => x.PressurePipingClassCode == col11);
if (PressurePipingClass == null)
{
result += "第" + (i + 2).ToString() + "行," + "该压力管道级别不存在!" + "|";
}
else
{
pipeline.PressurePipingClassId = PressurePipingClass.PressurePipingClassId;
pipeline.PressurePipingClassCode = col11;
}
}
string col12 = pds.Rows[i][12].ToString();
if (!string.IsNullOrEmpty(col12))
{
try
{
var PipeLenth = Funs.GetNewDecimal(col12);
pipeline.PipeLenth = PipeLenth;
}
catch (Exception)
{
result += "第" + (i + 2).ToString() + "行," + "管线长度(m)格式输入有误" + "|";
}
}
string col13 = pds.Rows[i][13].ToString();
if (!string.IsNullOrEmpty(col13))
{
var LeakMedium = getLeakMedium.FirstOrDefault(x => x.MediumName == col13);
if (LeakMedium == null)
{
result += "第" + (i + 2).ToString() + "行," + "该泄露试验介质不存在!" + "|";
}
else
{
pipeline.LeakMedium = LeakMedium.TestMediumId;
pipeline.LeakMediumName = col13;
}
}
string col14 = pds.Rows[i][14].ToString();
if (!string.IsNullOrEmpty(col14))
{
pipeline.LeakPressure = col14;
}
string col15 = pds.Rows[i][15].ToString();
if (!string.IsNullOrEmpty(col15))
{
var PurgeMethod = getPurgeMethod.FirstOrDefault(x => x.PurgeMethodCode == col15);
if (PurgeMethod == null)
{
result += "第" + (i + 2).ToString() + "行," + "该吹洗要求不存在!" + "|";
}
else
{
pipeline.PCMedium = PurgeMethod.PurgeMethodId;
pipeline.PurgeMethodCode = col15;
}
}
string col16 = pds.Rows[i][16].ToString();
if (!string.IsNullOrEmpty(col16))
{
pipeline.VacuumPressure = col16;
}
string col17 = pds.Rows[i][17].ToString();
if (!string.IsNullOrEmpty(col17))
{
var material = getMaterial.FirstOrDefault(x => x.MaterialCode == col17);
if (material == null)
{
result += "第" + (i + 2).ToString() + "行," + "该材质不存在!" + "|";
}
else
{
pipeline.MaterialId = material.MaterialId;
pipeline.PipeMaterialCode = col17;
}
}
pipeline.Remark = pds.Rows[i][18].ToString();
// 以下是焊口信息
string col19 = pds.Rows[i][19].ToString();
if (string.IsNullOrEmpty(col19))
{
result += "第" + (i + 2).ToString() + "行," + "焊口号" + "," + "此项为必填项!" + "|";
}
else
{
//var oldWeldJoint = getPipeline.FirstOrDefault(x => x.PipelineId == pipeLineId && x.WeldJointCode == col19);
//if (oldWeldJoint != null)
//{
// pipeline.WeldJointId = oldWeldJoint.WeldJointId;
//}
//else
//{
// pipeline.WeldJointId = SQLHelper.GetNewID();
//}
pipeline.WeldJointCode = col19;
}
string col20 = pds.Rows[i][20].ToString();
if (!string.IsNullOrEmpty(col20))
{
var material = getMaterial.FirstOrDefault(x => x.MaterialCode == col20);
if (material == null)
{
result += "第" + (i + 2).ToString() + "行," + "该材质1不存在!" + "|";
}
else
{
pipeline.Material1Id = material.MaterialId;
pipeline.Material1Code = col20;
}
}
else
{
result += "第" + (i + 2).ToString() + "行," + "材质1" + "," + "此项为必填项!" + "|";
}
string col21 = pds.Rows[i][21].ToString();
if (!string.IsNullOrEmpty(col21))
{
var material = getMaterial.FirstOrDefault(x => x.MaterialCode == col21);
if (material == null)
{
result += "第" + (i + 2).ToString() + "行," + "该材质2不存在!" + "|";
}
else
{
pipeline.Material2Id = material.MaterialId;
pipeline.Material2Code = col21;
}
}
else
{
result += "第" + (i + 2).ToString() + "行," + "材质2" + "," + "此项为必填项!" + "|";
}
string col22 = pds.Rows[i][22].ToString().Replace("Φ", "");
if (!string.IsNullOrEmpty(col22))
{
try
{
decimal Dia = Convert.ToDecimal(col22);
pipeline.Dia = Dia;
//var inch = BLL.Base_DNCompareService.GetSizeByDia(Dia);
//if (inch != null)
//{
// pipeline.Size = inch;
//}
}
catch (Exception)
{
result += "第" + (i + 2).ToString() + "行," + "外径格式输入有误" + "|";
}
}
else
{
result += "第" + (i + 2).ToString() + "行," + "外径" + "," + "此项为必填项!" + "|";
}
string col23 = pds.Rows[i][23].ToString();
if (!string.IsNullOrEmpty(col23))
{
try
{
decimal Size = Convert.ToDecimal(col23);
pipeline.Size = Size;
}
catch (Exception)
{
result += "第" + (i + 2).ToString() + "行," + "达因格式输入有误" + "|";
}
}
else
{
result += "第" + (i + 2).ToString() + "行," + "达因" + "," + "此项为必填项!" + "|";
}
string col24 = pds.Rows[i][24].ToString();
if (!string.IsNullOrEmpty(col24))
{
try
{
var Thickness = Convert.ToDecimal(col24);
pipeline.Thickness = Thickness;
//是否根据壁厚计算达因
//Model.Project_Sys_Set thicknessSet = BLL.Project_SysSetService.GetSysSetBySetId("7", this.CurrUser.LoginProjectId);
//if (thicknessSet != null && thicknessSet.IsAuto == true)
//{
// if (pipeline.Size != null)
// {
// pipeline.Size = Convert.ToDecimal(BLL.WeldJointService.GetSizeByThickness(pipeline.Size, Thickness));
// }
//}
}
catch (Exception)
{
result += "第" + (i + 2).ToString() + "行," + "壁厚格式输入有误" + "|";
}
}
else
{
result += "第" + (i + 2).ToString() + "行," + "壁厚" + "," + "此项为必填项!" + "|";
}
pipeline.Specification = "Φ" + (pipeline.Dia ?? 0).ToString() + "*" + (pipeline.Thickness ?? 0).ToString();
string col25 = pds.Rows[i][25].ToString();
if (!string.IsNullOrEmpty(col25))
{
var weldType = getWeldType.FirstOrDefault(x => x.WeldTypeCode == col25);
if (weldType == null)
{
result += "第" + (i + 2).ToString() + "行," + "该焊缝类型不存在!" + "|";
}
else
{
pipeline.WeldTypeId = weldType.WeldTypeId;
pipeline.WeldTypeCode = col25;
if (col25.Contains("B"))
{
if (col6.Contains("RT"))
{
Model.Base_DetectionType rt = BLL.Base_DetectionTypeService.GetDetectionTypeIdByDetectionTypeCode("RT");
if (rt != null)
{
pipeline.DetectionTypeId = rt.DetectionTypeId;
}
}
else
{
Model.Base_DetectionType ut = BLL.Base_DetectionTypeService.GetDetectionTypeIdByDetectionTypeCode("UT");
if (ut != null)
{
pipeline.DetectionTypeId = ut.DetectionTypeId;
}
}
}
else
{
if (col6.Contains("MT"))
{
Model.Base_DetectionType mt = BLL.Base_DetectionTypeService.GetDetectionTypeIdByDetectionTypeCode("MT");
if (mt != null)
{
pipeline.DetectionTypeId = mt.DetectionTypeId;
}
}
else
{
Model.Base_DetectionType pt = BLL.Base_DetectionTypeService.GetDetectionTypeIdByDetectionTypeCode("PT");
if (pt != null)
{
pipeline.DetectionTypeId = pt.DetectionTypeId;
}
}
}
}
}
else
{
result += "第" + (i + 2).ToString() + "行," + "焊缝类型" + "," + "此项为必填项!" + "|";
}
string col26 = pds.Rows[i][26].ToString();
if (!string.IsNullOrEmpty(col26))
{
var JointAttribute = BLL.DropListService.HJGL_JointAttribute();
var q = JointAttribute.Where(x => x.Value == col26);
if (q==null )
{
result += "第" + (i + 2).ToString() + "行," + "该焊口属性不存在!" + "|";
}
else
{
pipeline.JointAttribute = col26;
}
}
else
{
result += "第" + (i + 2).ToString() + "行," + "焊口属性" + "," + "此项为必填项!" + "|";
}
if (!string.IsNullOrEmpty(pipeline.PipelineCode) && !string.IsNullOrEmpty(pipeline.WeldJointCode))
{
PipelineList.Add(pipeline);
}
}
if (!string.IsNullOrEmpty(result))
{
PipelineList.Clear();
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
{
responeData.code = 0;
responeData.message = "导入数据为空!";
//ShowNotify("导入数据为空!", MessageBoxIcon.Warning);
}
return responeData;
}
#endregion
#endregion
#region 导入
///
/// 导入
///
///
///
protected void btnImport_Click(object sender, EventArgs e)
{
if (State != (int)ButtonState.Import)
{
ShowNotify("请先审核");
return;
}
if (string.IsNullOrEmpty(errorInfos))
{
if (!string.IsNullOrEmpty(this.hdFileName.Text))
{
if (PipelineList.Count > 0)
{
this.Grid1.Hidden = false;
this.Grid1.DataSource = PipelineList;
this.Grid1.DataBind();
Grid1.RecordCount = PipelineList.Count;
State = (int)ButtonState.Save;
}
}
else
{
ShowNotify("请先审核要导入的文件!", MessageBoxIcon.Warning);
}
}
else
{
ShowNotify("请先将错误数据修正,再重新导入提交!", MessageBoxIcon.Warning);
}
}
#endregion
#region 提交
///
/// 提交
///
///
///
protected void btnSave_Click(object sender, EventArgs e)
{
if (State != (int)ButtonState.Save)
{
ShowNotify("请先审核/导入");
return;
}
if (string.IsNullOrEmpty(errorInfos))
{
string rootPath = Server.MapPath("~/");
string oldefilePath = rootPath+initPath + this.hdFileName.Text;
string unitworkId = Request.Params["UnitWorkId"];
string filePath = rootPath+ Const.DesignBasisDataImportPath + this.hdFileName.Text;
if (oldefilePath != string.Empty && System.IO.File.Exists(oldefilePath))
{
if (!Directory.Exists(rootPath + Const.DesignBasisDataImportPath))
{
Directory.CreateDirectory(rootPath + Const.DesignBasisDataImportPath);
}
File.Move(oldefilePath, filePath);
//System.IO.File.Delete(oldefilePath);//删除上传的XLS文件
}
string FileName = this.fuAttachUrl.FileName;
if (DrpType.SelectedValue == "1")//更新导入
{
BLL.PipelineMatService.DeletePipeLineMatByUnitWorkId(unitworkId);//删除原有管线对应材料
BLL.WeldJointService.DeleteWeldJointByUnitWorkId(unitworkId);////删除原有管线对应焊口
BLL.PipelineService.DeletePipelineByUnitworkId(unitworkId);//删除原有管线
AddView_HJGL_WeldJoint(PipelineList);//导入数据
Model .HJGL_DesignBasisDataImport hJGL_DesignBasisDataImport = new Model .HJGL_DesignBasisDataImport();
hJGL_DesignBasisDataImport.DesignBasisDataImportId= SQLHelper.GetNewID();
hJGL_DesignBasisDataImport.ProjectId = this.CurrUser.LoginProjectId;
hJGL_DesignBasisDataImport.UnitWorkId = unitworkId;
hJGL_DesignBasisDataImport.ImportType = "1";
hJGL_DesignBasisDataImport.DataClassification = DataClassification;
hJGL_DesignBasisDataImport.FileName = FileName;
hJGL_DesignBasisDataImport.FilePath = filePath.Replace(rootPath, "");
hJGL_DesignBasisDataImport.FileType = BLL.HJGL_DesignBasisDataImportService.GetFileType(FileName);
hJGL_DesignBasisDataImport.Version = BLL.HJGL_DesignBasisDataImportService.GetNewVersionByUnitWorkId(unitworkId,DataClassification);
hJGL_DesignBasisDataImport.Remark = txtRemark.Text;
hJGL_DesignBasisDataImport.CreateMan = this.CurrUser.PersonId;
hJGL_DesignBasisDataImport.CreateDate = DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss");
BLL.HJGL_DesignBasisDataImportService.AddHJGL_DesignBasisDataImport(hJGL_DesignBasisDataImport);
BLL.HJGL_DesignBasisDataImportVerSionLogService.UpdateVersion(this.CurrUser.LoginProjectId, unitworkId, (decimal)hJGL_DesignBasisDataImport.Version, DataClassification);
}
else //补充导入
{
AddView_HJGL_WeldJoint(PipelineList);
Model.HJGL_DesignBasisDataImport hJGL_DesignBasisDataImport = new Model.HJGL_DesignBasisDataImport();
hJGL_DesignBasisDataImport.DesignBasisDataImportId = SQLHelper.GetNewID();
hJGL_DesignBasisDataImport.ProjectId = this.CurrUser.LoginProjectId;
hJGL_DesignBasisDataImport.UnitWorkId = unitworkId;
hJGL_DesignBasisDataImport.ImportType = "0";
hJGL_DesignBasisDataImport.DataClassification = DataClassification;
hJGL_DesignBasisDataImport.FileName = FileName;
hJGL_DesignBasisDataImport.FilePath = filePath.Replace(rootPath, ""); ;
hJGL_DesignBasisDataImport.FileType = BLL.HJGL_DesignBasisDataImportService.GetFileType(FileName);
hJGL_DesignBasisDataImport.Version = BLL.HJGL_DesignBasisDataImportService.GetNowVersionByUnitWorkId(unitworkId, DataClassification);
hJGL_DesignBasisDataImport.Remark = txtRemark.Text;
hJGL_DesignBasisDataImport.CreateMan = this.CurrUser.PersonId;
hJGL_DesignBasisDataImport.CreateDate = DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss");
BLL.HJGL_DesignBasisDataImportService.AddHJGL_DesignBasisDataImport(hJGL_DesignBasisDataImport);
BLL.HJGL_DesignBasisDataImportVerSionLogService.UpdateVersion(this.CurrUser.LoginProjectId, unitworkId, (decimal)hJGL_DesignBasisDataImport.Version, DataClassification);
}
ShowNotify("导入成功!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
else
{
ShowNotify("请先将错误数据修正,再重新导入提交!", MessageBoxIcon.Warning);
}
}
public void AddView_HJGL_WeldJoint(List PipelineList)
{
var getPipeline = from x in Funs.DB.View_HJGL_WeldJoint where x.ProjectId == this.CurrUser.LoginProjectId select x;
for (int i = 0; i < PipelineList.Count(); i++)
{
var pipeLineId = string.Empty;
var WeldJointId = string.Empty;
Model.HJGL_Pipeline pipeline = new Model.HJGL_Pipeline();
pipeline.PipelineId = PipelineList[i].PipelineId;
pipeline.ProjectId = this.CurrUser.LoginProjectId;
pipeline.UnitId = PipelineList[i].UnitId;
pipeline.UnitWorkId = PipelineList[i].UnitWorkId;
pipeline.PipelineCode = PipelineList[i].PipelineCode;
pipeline.SingleName = PipelineList[i].SingleName;
pipeline.SingleNumber = PipelineList[i].SingleNumber;
pipeline.MediumId = PipelineList[i].MediumId;
pipeline.PipingClassId = PipelineList[i].PipingClassId;
pipeline.DetectionRateId = PipelineList[i].DetectionRateId;
pipeline.DetectionType = PipelineList[i].DetectionType;
pipeline.DesignPress = PipelineList[i].DesignPress;
pipeline.DesignTemperature = PipelineList[i].DesignTemperature;
pipeline.TestMedium = PipelineList[i].TestMedium;
pipeline.TestPressure = PipelineList[i].TestPressure;
pipeline.PressurePipingClassId = PipelineList[i].PressurePipingClassId;
pipeline.PipeLenth = PipelineList[i].PipeLenth;
pipeline.LeakMedium = PipelineList[i].LeakMedium;
pipeline.LeakPressure = PipelineList[i].LeakPressure;
pipeline.VacuumPressure = PipelineList[i].VacuumPressure;
pipeline.PCMedium = PipelineList[i].PCMedium;
pipeline.MaterialId = PipelineList[i].MaterialId;
pipeline.Remark = PipelineList[i].Remark;
var isExistPipelineCode = Funs.DB.HJGL_Pipeline.FirstOrDefault(x => x.PipelineCode == pipeline.PipelineCode && x.UnitWorkId == Request.Params["UnitWorkId"]);
if (isExistPipelineCode != null) // 更新管线
{
pipeLineId = isExistPipelineCode.PipelineId;
pipeline.PipelineId = isExistPipelineCode.PipelineId;
BLL.PipelineService.UpdatePipeline(pipeline);
}
else // 增加管线
{
pipeLineId = SQLHelper.GetNewID();
pipeline.PipelineId = pipeLineId;
BLL.PipelineService.AddPipeline(pipeline);
}
Model.HJGL_WeldJoint weldJoint = new Model.HJGL_WeldJoint();
// weldJoint.WeldJointId = PipelineList[i].WeldJointId;
weldJoint.PipelineId = pipeLineId;
weldJoint.WeldJointCode = PipelineList[i].WeldJointCode;
weldJoint.PipelineCode = PipelineList[i].PipelineCode;
weldJoint.Material1Id = PipelineList[i].Material1Id;
weldJoint.Material2Id = PipelineList[i].Material2Id;
weldJoint.Dia = PipelineList[i].Dia;
weldJoint.Size = PipelineList[i].Size;
weldJoint.Thickness = PipelineList[i].Thickness;
weldJoint.Specification = PipelineList[i].Specification;
weldJoint.WeldTypeId = PipelineList[i].WeldTypeId;
weldJoint.DetectionTypeId = PipelineList[i].DetectionTypeId;
weldJoint.JointAttribute = PipelineList[i].JointAttribute;
weldJoint.ProjectId= this.CurrUser.LoginProjectId;
var isExistJot = Funs.DB.HJGL_WeldJoint.FirstOrDefault(x => x.PipelineId == pipeLineId && x.WeldJointCode == PipelineList[i].WeldJointCode);
if (isExistJot != null) // 更新焊口
{
weldJoint.WeldJointId = isExistJot.WeldJointId;
BLL.WeldJointService.UpdateWeldJoint(weldJoint);
}
else // 增加焊口
{
weldJoint.WeldJointId=SQLHelper.GetNewID();
BLL.WeldJointService.AddWeldJoint(weldJoint);
}
}
}
#endregion
///
/// 恢复版本
///
///
///
private void RestoreVersion(string unitworkId, decimal version)
{
var model = BLL.HJGL_DesignBasisDataImportService.GetDataByUnitWorkIdAndVersion(unitworkId, version, DataClassification);
if (model != null && model.Count > 0)
{
foreach (var item in model)
{
string rootPath = Server.MapPath("~/");
// initFullPath = rootPath + initPath;
string filePath = rootPath + item.FilePath;
ImportXlsToData(filePath);
BLL.PipelineMatService.DeletePipeLineMatByUnitWorkId(unitworkId);//删除原有管线对应材料
BLL.WeldJointService.DeleteWeldJointByUnitWorkId(unitworkId);////删除原有管线对应焊口
BLL.PipelineService.DeletePipelineByUnitworkId(unitworkId);//删除原有管线
AddView_HJGL_WeldJoint(PipelineList);//导入数据
PipelineList.Clear();
}
BLL.HJGL_DesignBasisDataImportVerSionLogService.UpdateVersion(this.CurrUser.LoginProjectId, unitworkId, version, DataClassification);
ShowNotify("恢复成功!");
}
}
protected void btnRestore_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(drpVersion.SelectedValue))
{
ShowNotify("请选择版本");
}
else
{
PageContext.RegisterStartupScript(Confirm.GetShowReference("确定恢复至该版本吗?", String.Empty, MessageBoxIcon.Question, PageManager1.GetCustomEventReference(false, "Confirm_Restore"), PageManager1.GetCustomEventReference("Confirm_Cancel")));
}
}
#region 下载模板
///
/// 下载模板按钮
///
///
///
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")));
}
///
/// 下载导入模板
///
///
///
protected void PageManager1_CustomEvent(object sender, CustomEventArgs e)
{
if (e.EventArgument == "Confirm_OK")
{
string rootPath = Server.MapPath("~/");
string uploadfilepath = rootPath + Const.PDMSPipelineTemplateUrl;
string filePath = Const.PDMSPipelineTemplateUrl;
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();
}
else if (e.EventArgument == "Confirm_Restore")
{
var unitworkid = Request.Params["UnitWorkId"];
decimal version = decimal.Parse(drpVersion.SelectedValue);
RestoreVersion(unitworkid, version);
}
}
#endregion
protected string ConvertDetectionType(object detectionType)
{
string detectionName = string.Empty;
if (detectionType != null)
{
string[] types = detectionType.ToString().Split('|');
foreach (string t in types)
{
var type = BLL.Base_DetectionTypeService.GetDetectionTypeByDetectionTypeId(t);
if (type != null)
{
detectionName += type.DetectionTypeCode + ",";
}
}
}
if (detectionName != string.Empty)
{
return detectionName.Substring(0, detectionName.Length - 1);
}
else
{
return "";
}
}
#region 分页选择下拉改变事件
///
/// 分页选择下拉改变事件
///
///
///
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
{
Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
this.Grid1.DataSource = PipelineList;
this.Grid1.DataBind();
Grid1.RecordCount = PipelineList.Count;
}
#endregion
}
}