459 lines
21 KiB
C#
459 lines
21 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.Data;
|
||
using System.Data.OleDb;
|
||
using System.Data.SqlClient;
|
||
using System.IO;
|
||
using System.Linq;
|
||
using System.Web;
|
||
using System.Web.UI;
|
||
using System.Web.UI.WebControls;
|
||
using BLL;
|
||
namespace FineUIPro.Web.HJGL.DataIn
|
||
{
|
||
public partial class PipeLineIn : PageBase
|
||
{
|
||
/// <summary>
|
||
/// 导入管线的管线ID
|
||
/// </summary>
|
||
public string ISO_IDStr
|
||
{
|
||
get
|
||
{
|
||
return (string)ViewState["ISO_IDStr"];
|
||
}
|
||
set
|
||
{
|
||
ViewState["ISO_IDStr"] = value;
|
||
}
|
||
}
|
||
protected void Page_Load(object sender, EventArgs e)
|
||
{
|
||
if (!IsPostBack)
|
||
{
|
||
ISO_IDStr = string.Empty;
|
||
BindGrid();
|
||
}
|
||
}
|
||
private void BindGrid()
|
||
{
|
||
string sqlStr = @"SELECT i.ISO_ID, i.BSU_ID,i.ProjectId,i.SER_ID,ser.SER_Name AS SERName,i.ISO_IsoNo,i.ISO_Insulator,i.STE_ID,st.STE_Code AS STECode,
|
||
exe.ExecStandardName AS ISO_Executive,i.ISO_Modifier,i.ISO_ModifyDate,i.ISO_Creator,i.ISO_CreateDate,i.ISO_Dia,i.ISO_Sch,
|
||
i.ISO_DesignPress,i.ISO_DesignTemperature,i.ISO_TestPress,i.ISO_TestTemperature,ic.ISC_IsoName AS IDName,i.ISO_Remark,i.MaterialStandardId,
|
||
i.PressureTestPackageNo,i.OperatingPressure,i.OperatingTemperature,i.PipeLineClass,i.PipeLineLength,i.LeakageTest,i.TestCategoryNum,
|
||
ms.MaterialStandardCode FROM dbo.HJGL_PW_IsoInfo i LEFT OUTER JOIN
|
||
dbo.HJGL_BS_Service ser ON ser.SER_ID=i.SER_ID LEFT OUTER JOIN
|
||
dbo.HJGL_BS_Steel st ON st.STE_ID=i.STE_ID LEFT OUTER JOIN
|
||
dbo.HJGL_BS_IsoClass ic ON ic.ISC_ID=i.ISC_ID LEFT OUTER JOIN
|
||
dbo.HJGL_BS_ExecStandard exe ON exe.ExecStandardId=i.ISO_Executive LEFT OUTER JOIN
|
||
dbo.HJGL_BS_MaterialStandard ms ON ms.MaterialStandardId = i.MaterialStandardId";
|
||
List<SqlParameter> listStr = new List<SqlParameter>();
|
||
sqlStr += " where CHARINDEX(i.ISO_ID,@ISO_ID)>0";
|
||
listStr.Add(new SqlParameter("@ISO_ID", ISO_IDStr));
|
||
SqlParameter[] parameter = listStr.ToArray();
|
||
DataTable tb = SQLHelper.GetDataTableRunText(sqlStr, parameter);
|
||
|
||
// 2.获取当前分页数据
|
||
//var table = this.GetPagedDataTable(Grid1, tb1);
|
||
Grid1.RecordCount = tb.Rows.Count;
|
||
tb = GetFilteredTable(Grid1.FilteredData, tb);
|
||
var table = this.GetPagedDataTable(Grid1, tb);
|
||
Grid1.DataSource = table;
|
||
Grid1.DataBind();
|
||
}
|
||
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
|
||
{
|
||
Grid1.PageIndex = e.NewPageIndex;
|
||
BindGrid();
|
||
}
|
||
|
||
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
|
||
{
|
||
Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
|
||
BindGrid();
|
||
}
|
||
|
||
protected void imgbtnImport_Click(object sender, EventArgs e)
|
||
{
|
||
if (GetButtonPower(Const.BtnIn))
|
||
{
|
||
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文件");
|
||
return;
|
||
}
|
||
string rootPath = Server.MapPath("~/");
|
||
string initFullPath = rootPath + Const.ExcelUrl;
|
||
if (!Directory.Exists(initFullPath))
|
||
{
|
||
Directory.CreateDirectory(initFullPath);
|
||
}
|
||
string fileUrl = initFullPath + BLL.Funs.GetNewFileName() + IsXls;
|
||
this.FileExcel.PostedFile.SaveAs(fileUrl);
|
||
|
||
string oleDBConnString = String.Empty;
|
||
oleDBConnString = "Provider=Microsoft.Jet.OLEDB.4.0;";
|
||
oleDBConnString += "Data Source=";
|
||
oleDBConnString += fileUrl;
|
||
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 = 3600;
|
||
oleAdMaster.Fill(ds, "m_tableName");
|
||
oleAdMaster.Dispose();
|
||
oleDBConn.Close();
|
||
oleDBConn.Dispose();
|
||
this.AddDatasetToSQL(ds.Tables[0]);
|
||
if (!string.IsNullOrEmpty(fileUrl) && System.IO.File.Exists(fileUrl))
|
||
{
|
||
System.IO.File.Delete(fileUrl);//删除上传的XLS文件
|
||
}
|
||
|
||
this.FileExcel.Reset();
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
ShowNotify(ex.Message, MessageBoxIcon.Warning);
|
||
return;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
ShowNotify("您没有这个权限,请与管理员联系!");
|
||
}
|
||
|
||
}
|
||
|
||
|
||
#region 将Dataset的数据导入数据库
|
||
/// <summary>
|
||
/// 将Dataset的数据导入数据库
|
||
/// </summary>
|
||
/// <param name="pds">数据集</param>
|
||
/// <param name="Cols">数据集列数</param>
|
||
/// <returns></returns>
|
||
private void AddDatasetToSQL(DataTable pds)
|
||
{
|
||
string errorInfos = string.Empty;
|
||
if (pds != null && pds.Rows.Count > 0)
|
||
{
|
||
int ir = pds.Rows.Count;
|
||
for (int i = 0; i < ir; i++)
|
||
{
|
||
string result = string.Empty;
|
||
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();//操作温度
|
||
string col14 = pds.Rows[i][14].ToString().Trim();//泄露性试验
|
||
string col15 = pds.Rows[i][15].ToString().Trim();//设计压力
|
||
string col16 = pds.Rows[i][16].ToString().Trim();//设计温度
|
||
string col17 = pds.Rows[i][17].ToString().Trim();//耐压试验
|
||
string col18 = pds.Rows[i][18].ToString().Trim();//外径
|
||
string col19 = pds.Rows[i][19].ToString().Trim();//壁厚
|
||
string col20 = pds.Rows[i][20].ToString().Trim();//管线长度
|
||
string col21 = pds.Rows[i][21].ToString().Trim();//检测类别序号
|
||
string col22 = pds.Rows[i][22].ToString().Trim();//备注
|
||
Model.HJGL_PW_IsoInfo NewIsoInfo = new Model.HJGL_PW_IsoInfo();
|
||
var getUnit = Funs.DB.Base_Unit.FirstOrDefault(x => x.UnitName == col0);
|
||
var getProject = Funs.DB.Base_Project.FirstOrDefault(x => x.ProjectCode == col1);
|
||
var getPipeLineClass = Funs.DB.HJGL_BS_IsoClass.FirstOrDefault(x => x.ISC_IsoName == col3);//管道等级
|
||
var getExecStandard = Funs.DB.HJGL_BS_ExecStandard.FirstOrDefault(x => x.ExecStandardName == col4);//执行标准
|
||
var getSteel = Funs.DB.HJGL_BS_Steel.FirstOrDefault(x => x.STE_Code == col5);//材质
|
||
var getMaterialStandard = Funs.DB.HJGL_BS_MaterialStandard.FirstOrDefault(x => x.MaterialStandardCode == col6);//材质标准
|
||
var getService = Funs.DB.HJGL_BS_Service.FirstOrDefault(x => x.SER_Name == col7);//介质
|
||
var PipeLineClass = BLL.DropListService.HJGL_PipeLineClassItem().FirstOrDefault(x => x.Value == col9);//管道类别
|
||
Model.HJGL_PW_IsoInfo iso = new Model.HJGL_PW_IsoInfo();
|
||
if (getUnit == null)
|
||
{
|
||
if (string.IsNullOrEmpty(col0))
|
||
{
|
||
result += "第" + (i + 2).ToString() + "行," + "单位不能为空" + "|";
|
||
}
|
||
else
|
||
{
|
||
result += "第" + (i + 2).ToString() + "行," + "该单位不存在" + "|";
|
||
}
|
||
}
|
||
if (getProject == null)
|
||
{
|
||
if (string.IsNullOrEmpty(col1))
|
||
{
|
||
result += "第" + (i + 2).ToString() + "行," + "项目号不能为空" + "|";
|
||
}
|
||
else
|
||
{
|
||
result += "第" + (i + 2).ToString() + "行," + "该项目不存在" + "|";
|
||
}
|
||
}
|
||
if (string.IsNullOrEmpty(col2))
|
||
{
|
||
result += "第" + (i + 2).ToString() + "行," + "单线图号不能为空" + "|";
|
||
}
|
||
if (getPipeLineClass == null)
|
||
{
|
||
if (string.IsNullOrEmpty(col3))
|
||
{
|
||
result += "第" + (i + 2).ToString() + "行," + "管道等级不能为空" + "|";
|
||
}
|
||
else
|
||
{
|
||
result += "第" + (i + 2).ToString() + "行," + "该管道等级不存在" + "|";
|
||
}
|
||
}
|
||
if (getExecStandard == null)
|
||
{
|
||
if (string.IsNullOrEmpty(col4))
|
||
{
|
||
result += "第" + (i + 2).ToString() + "行," + "执行标准不能为空" + "|";
|
||
}
|
||
else
|
||
{
|
||
result += "第" + (i + 2).ToString() + "行," + "该执行标准不存在" + "|";
|
||
}
|
||
}
|
||
if (getSteel == null)
|
||
{
|
||
if (string.IsNullOrEmpty(col5))
|
||
{
|
||
result += "第" + (i + 2).ToString() + "行," + "材质不能为空" + "|";
|
||
}
|
||
else
|
||
{
|
||
result += "第" + (i + 2).ToString() + "行," + "该材质不存在" + "|";
|
||
}
|
||
}
|
||
if (getService == null)
|
||
{
|
||
if (string.IsNullOrEmpty(col7))
|
||
{
|
||
result += "第" + (i + 2).ToString() + "行," + "介质不能为空" + "|";
|
||
}
|
||
else
|
||
{
|
||
result += "第" + (i + 2).ToString() + "行," + "该介质不存在" + "|";
|
||
}
|
||
}
|
||
if (!string.IsNullOrEmpty(col15))
|
||
{
|
||
try
|
||
{
|
||
var DesignPress = Funs.GetNewDecimal(col15);
|
||
iso.ISO_DesignPress = DesignPress;
|
||
}
|
||
catch (Exception)
|
||
{
|
||
result += "第" + (i + 2).ToString() + "行," + "设计压力格式输入有误" + "|";
|
||
}
|
||
}
|
||
if (!string.IsNullOrEmpty(col16))
|
||
{
|
||
try
|
||
{
|
||
var DesignTemperature = Funs.GetNewDecimal(col16);
|
||
iso.ISO_DesignTemperature = DesignTemperature;
|
||
}
|
||
catch (Exception)
|
||
{
|
||
result += "第" + (i + 2).ToString() + "行," + "设计温度格式输入有误" + "|";
|
||
}
|
||
}
|
||
if (!string.IsNullOrEmpty(col17))
|
||
{
|
||
try
|
||
{
|
||
var TestPress = Funs.GetNewDecimal(col17);
|
||
iso.ISO_TestPress = TestPress;
|
||
}
|
||
catch (Exception)
|
||
{
|
||
result += "第" + (i + 2).ToString() + "行," + "耐压试验格式输入有误" + "|";
|
||
}
|
||
}
|
||
if (!string.IsNullOrEmpty(col18))
|
||
{
|
||
try
|
||
{
|
||
var Dia = Funs.GetNewDecimal(col18);
|
||
iso.ISO_Dia = Dia;
|
||
}
|
||
catch (Exception)
|
||
{
|
||
result += "第" + (i + 2).ToString() + "行," + "外径格式输入有误" + "|";
|
||
}
|
||
}
|
||
if (!string.IsNullOrEmpty(col19))
|
||
{
|
||
try
|
||
{
|
||
var Sch = Funs.GetNewDecimal(col19);
|
||
iso.ISO_Sch = Sch;
|
||
}
|
||
catch (Exception)
|
||
{
|
||
result += "第" + (i + 2).ToString() + "行," + "壁厚格式输入有误" + "|";
|
||
}
|
||
}
|
||
if (!string.IsNullOrEmpty(col20))
|
||
{
|
||
try
|
||
{
|
||
var PipeLineLength = Funs.GetNewDecimal(col20);
|
||
iso.PipeLineLength = PipeLineLength;
|
||
}
|
||
catch (Exception)
|
||
{
|
||
result += "第" + (i + 2).ToString() + "行," + "管线长度格式输入有误" + "|";
|
||
}
|
||
}
|
||
if (string.IsNullOrEmpty(result))
|
||
{
|
||
|
||
iso.ProjectId = getProject.ProjectId;
|
||
iso.BSU_ID = getUnit.UnitId;
|
||
iso.ISO_Executive = getExecStandard.ExecStandardId;
|
||
iso.ISC_ID = getPipeLineClass.ISC_ID;
|
||
iso.STE_ID = getSteel.STE_ID;
|
||
iso.SER_ID = getService.SER_ID;
|
||
if (getMaterialStandard != null)
|
||
{
|
||
iso.MaterialStandardId = getMaterialStandard.MaterialStandardId;
|
||
}
|
||
if (PipeLineClass != null)
|
||
{
|
||
iso.PipeLineClass = PipeLineClass.Value;
|
||
}
|
||
iso.PressureTestPackageNo = col8;
|
||
iso.ISO_Paint = col10;
|
||
iso.ISO_Insulator = col11;
|
||
iso.OperatingPressure = col12;
|
||
iso.OperatingTemperature = col13;
|
||
iso.LeakageTest = col14;
|
||
iso.TestCategoryNum = col21;
|
||
iso.ISO_Remark = col22;
|
||
var getIsoInfo = Funs.DB.HJGL_PW_IsoInfo.FirstOrDefault(x =>x.BSU_ID==getUnit.UnitId && x.ProjectId==getProject.ProjectId && x.ISO_IsoNo == col2);
|
||
if (getIsoInfo == null)
|
||
{
|
||
iso.ISO_IsoNo = col2;
|
||
iso.ISO_ID = SQLHelper.GetNewID(typeof(Model.HJGL_PW_IsoInfo));
|
||
BLL.HJGL_PW_IsoInfoService.AddIsoInfo(iso);
|
||
ISO_IDStr += Funs.DB.HJGL_PW_IsoInfo.FirstOrDefault(x => x.BSU_ID == getUnit.UnitId && x.ProjectId == getProject.ProjectId && x.ISO_IsoNo == col2).ISO_ID + ",";//获取当前导入的管线ID(绑定列表时用)
|
||
}
|
||
else
|
||
{
|
||
result += "第" + (i + 2).ToString() + "行," + "该工艺管线已存在" + "|";
|
||
}
|
||
}
|
||
errorInfos += result;
|
||
}
|
||
if (!string.IsNullOrEmpty(ISO_IDStr))
|
||
{
|
||
ISO_IDStr = ISO_IDStr.Substring(0, ISO_IDStr.LastIndexOf(","));
|
||
}
|
||
this.BindGrid();
|
||
if (!string.IsNullOrEmpty(errorInfos))
|
||
{
|
||
errorInfos = "未成功数据:" + errorInfos.Substring(0, errorInfos.LastIndexOf("|"));
|
||
Alert.ShowInParent("数据已导入!" + errorInfos, MessageBoxIcon.Warning);
|
||
}
|
||
else
|
||
{
|
||
ShowNotify("数据导入成功!", MessageBoxIcon.Success);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
ShowNotify("导入数据为空!", MessageBoxIcon.Success);
|
||
return;
|
||
}
|
||
}
|
||
#endregion
|
||
protected void imgbtnUpload_Click(object sender, EventArgs e)
|
||
{
|
||
string uploadfilepath = Server.MapPath("~/") + BLL.Const.PiprLineInTemplateUrl;
|
||
string fileName = Path.GetFileName(BLL.Const.PiprLineInTemplateUrl);
|
||
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);
|
||
}
|
||
}
|
||
|
||
protected void btnMenuDelete_Click(object sender, EventArgs e)
|
||
{
|
||
if (GetButtonPower(Const.BtnDelete))
|
||
{
|
||
if (Grid1.SelectedRowIndexArray.Length > 0)
|
||
{
|
||
foreach (int rowIndex in Grid1.SelectedRowIndexArray)
|
||
{
|
||
string rowID = Grid1.DataKeys[rowIndex][0].ToString();
|
||
var IsoIn = BLL.HJGL_PW_IsoInfoService.GetIsoInfoByIsoInfoId(rowID);
|
||
if (IsoIn != null)
|
||
{
|
||
BLL.HJGL_PW_IsoInfoService.DeleteIsoInfo(rowID);
|
||
ShowNotify("删除数据成功!(表格数据已重新绑定)");
|
||
}
|
||
}
|
||
}
|
||
BindGrid();
|
||
}
|
||
else
|
||
{
|
||
ShowNotify("您没有这个权限,请与管理员联系!");
|
||
}
|
||
}
|
||
#region 判断按钮权限
|
||
/// <summary>
|
||
/// 获取按钮权限
|
||
/// </summary>
|
||
/// <param name="button"></param>
|
||
/// <returns></returns>
|
||
private bool GetButtonPower(string button)
|
||
{
|
||
return BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.PipeLineInMenuId, button);
|
||
}
|
||
#endregion
|
||
}
|
||
} |