using BLL; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.IO; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using static FineUIPro.Web.CQMS.WBS.Control.DivisionSubProjects; namespace FineUIPro.Web.CQMS.WBS.Control { public partial class DivisionSubProjects : PageBase { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { DataBrid(); } } #region 数据绑定和事件 /// /// 数据绑定 /// public void DataBrid() { string strSql = @"select a.Division,a.ProjectId,a.ParentId,a.DivisionLevel,a.EngineeringCode,a.EngineeringName,a.SubEngineeringCode,a.SubEngineeringName,a.BranchEngineeringCode,a.BranchEngineeringName,a.SubBranchEngineeringName,a.ProEngineeringCode,a.ProEngineeringName,a.ProEngineeringNum,a.Remark,a.AddUser,a.OperateTime,a.Sort from Division_SubProjects as a inner join Base_Project as b on a.ProjectId=b.ProjectId where a.ProjectId=@ProjectId order by a.Sort,a.DivisionLevel asc"; List listStr = new List(); listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); if (!string.IsNullOrEmpty(sEngineeringName.Text.Trim())) { strSql += " and a.EngineeringName=@EngineeringName"; listStr.Add(new SqlParameter("@EngineeringName", this.sEngineeringName.Text.Trim())); } SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); Grid1.DataSource = tb; Grid1.DataBind(); } /// /// 行点击 事件 /// protected void Grid1_RowCommand(object sender, GridCommandEventArgs e) { if (e.CommandName == "Delete") { string rowID = e.RowID; DeleteRowByIDInternal(rowID); DataBrid(); ShowNotify("删除成功!"); } } /// /// 行加载事件 /// protected void Grid1_RowDataBound(object sender, GridRowEventArgs e) { } #endregion #region 按钮 /// /// 搜索 /// protected void btnSearch_Click(object sender, EventArgs e) { DataBrid(); } /// /// 删除 /// protected void btnDelete_Click(object sender, EventArgs e) { if (Grid1.SelectedRowIndexArray.Length == 0) { ShowNotify("至少选择一条数据!"); return; } foreach (int rowIndex in Grid1.SelectedRowIndexArray) { string rowID = Grid1.DataKeys[rowIndex][0].ToString(); DeleteRowByIDInternal(rowID); } DataBrid(); ShowNotify("删除成功!"); } /// /// 新增 /// protected void btnAdd_Click(object sender, EventArgs e) { PageContext.RegisterStartupScript(Window1.GetShowReference($"DivisionSubProjectsEdit.aspx?DivisionId=&ParentId=", "新增")); } /// /// 添加子级 /// protected void btnParentAdd_Click(object sender, EventArgs e) { if (Grid1.SelectedRowIndexArray.Length == 0) { ShowNotify("请选择一条数据!", MessageBoxIcon.Warning); return; } var rowIndex = Grid1.SelectedRowIndex; var rowId = Grid1.DataKeys[rowIndex][0].ToString(); var runLevel = Grid1.DataKeys[rowIndex][2] != null ? Convert.ToInt32(Grid1.DataKeys[rowIndex][2]) : 1; if (runLevel > 5) { ShowNotify("最小节点无子节点!", MessageBoxIcon.Warning); return; } PageContext.RegisterStartupScript(Window1.GetShowReference($"DivisionSubProjectsEdit.aspx?RunId=&ParentId={rowId}", "添加子级")); } /// /// 编辑 /// protected void btnEdit_Click(object sender, EventArgs e) { if (Grid1.SelectedRowIndexArray.Length == 0) { ShowNotify("请选择一条数据!", MessageBoxIcon.Warning); return; } var rowIndex = Grid1.SelectedRowIndex; var rowId = Grid1.DataKeys[rowIndex][0].ToString(); var parentId = Grid1.DataKeys[rowIndex][1] != null ? Grid1.DataKeys[rowIndex][1].ToString() : string.Empty; PageContext.RegisterStartupScript(Window1.GetShowReference($"DivisionSubProjectsEdit.aspx?RunId={rowId}&ParentId={parentId}", "编辑")); } /// /// 关闭 /// protected void Window1_Close(object sender, WindowCloseEventArgs e) { DataBrid(); } /// /// 导入 /// protected void btnImport_Click(object sender, EventArgs e) { try { if (this.fileData.HasFile == false) { ShowNotify("请选择excel文件!", MessageBoxIcon.Warning); return; } string IsXls = Path.GetExtension(this.fileData.FileName).ToString().Trim().ToLower(); if (IsXls != ".xls" && IsXls != ".xlsx") { this.fileData.Reset(); ShowNotify("excel文件类型错误!", MessageBoxIcon.Warning); return; } string rootPath = Server.MapPath("~/"); string initFullPath = rootPath + Const.ExcelUrl; if (!Directory.Exists(initFullPath)) { Directory.CreateDirectory(initFullPath); } //指定上传文件名称 string fileUrl = BLL.Funs.GetNewFileName() + IsXls; //上传文件路径 string filePath = initFullPath + fileUrl; //文件上传服务器 this.fileData.PostedFile.SaveAs(filePath); //文件上传服务器后的名称 string fileName = rootPath + Const.ExcelUrl + fileUrl; //读取Excel DataSet ds = NPOIHelper.ExcelToDataSet(fileName, out string message, false); if (ds == null) { this.fileData.Reset(); ShowNotify("模板错误,请从系统下载正确的模板!", MessageBoxIcon.Warning); return; } if (!string.IsNullOrWhiteSpace(message)) { ShowNotify(message, MessageBoxIcon.Warning); return; } if (ds.Tables[0].Rows.Count > 1) { var fileVerify = VerifyFile(ds); if (!fileVerify) { this.fileData.Reset(); ShowNotify("请获取正确模板!", MessageBoxIcon.Warning); return; } int index = 1; List list = new List(); DivisionSubProjectsDto previousModel = new DivisionSubProjectsDto(); foreach (DataRow item in ds.Tables[0].Rows) { DivisionSubProjectsDto model = new DivisionSubProjectsDto(); if (index == 1) { index++; continue; } if (StrIsNumm(item[10])) { this.fileData.Reset(); ShowNotify($"{index}级别为空!", MessageBoxIcon.Warning); break; } previousModel.Level = int.Parse(item[10].ToString()); previousModel.EngineeringCode = item[0].ToString(); previousModel.EngineeringName = item[1].ToString(); previousModel.SubEngineeringCode = item[2].ToString(); previousModel.SubEngineeringName = item[3].ToString(); previousModel.BranchEngineeringCode = item[4].ToString(); previousModel.BranchEngineeringName = item[5].ToString(); previousModel.SubBranchEngineeringName = item[6].ToString(); previousModel.ProEngineeringCode = item[7].ToString(); previousModel.ProEngineeringName = item[8].ToString(); previousModel.ProEngineeringNum = item[9].ToString(); previousModel.ParentId = ""; ////判断是否为装置 //if (!StrIsNumm(item[0]) && !StrIsNumm(item[1]) && StrIsNumm(item[2]) && StrIsNumm(item[3]) && StrIsNumm(item[4]) && StrIsNumm(item[5]) && StrIsNumm(item[6]) && StrIsNumm(item[7])) //{ // model.InstallationCode = item[0].ToString(); // model.InstallationName = item[1].ToString(); // model.Level = 1; //} ////判断是否为工序 //else if (!StrIsNumm(item[0]) && !StrIsNumm(item[1]) && !StrIsNumm(item[2]) && !StrIsNumm(item[3]) && StrIsNumm(item[4]) && StrIsNumm(item[5]) && StrIsNumm(item[6]) && StrIsNumm(item[7])) //{ // model.InstallationCode = item[0].ToString(); // model.InstallationName = item[1].ToString(); // model.ProcessesCode = item[2].ToString(); // model.ProcessesName = item[3].ToString(); // model.Level = 2; //} ////判断是否为系统 //else if (!StrIsNumm(item[0]) && !StrIsNumm(item[1]) && !StrIsNumm(item[2]) && !StrIsNumm(item[3]) && !StrIsNumm(item[4]) && !StrIsNumm(item[5]) && StrIsNumm(item[6]) && StrIsNumm(item[7])) //{ // model.InstallationCode = item[0].ToString(); // model.InstallationName = item[1].ToString(); // model.ProcessesCode = item[2].ToString(); // model.ProcessesName = item[3].ToString(); // model.SystemCode = item[4].ToString(); // model.SystemName = item[5].ToString(); // model.Level = 3; //} ////判断是否为子系统 //else if (!StrIsNumm(item[0]) && !StrIsNumm(item[1]) && !StrIsNumm(item[2]) && !StrIsNumm(item[3]) && !StrIsNumm(item[4]) && !StrIsNumm(item[5]) && !StrIsNumm(item[6]) && !StrIsNumm(item[7])) //{ // model.InstallationCode = item[0].ToString(); // model.InstallationName = item[1].ToString(); // model.ProcessesCode = item[2].ToString(); // model.ProcessesName = item[3].ToString(); // model.SystemCode = item[4].ToString(); // model.SystemName = item[5].ToString(); // model.SubsystemCode = item[6].ToString(); // model.SubsystemName = item[7].ToString(); // model.Level = 4; //} //else //{ // this.fileData.Reset(); // ShowNotify($"{index}行数据存在错误,数据格式具体见模板说明为空!", MessageBoxIcon.Warning); // break; //} list.Add(model); index++; previousModel = new DivisionSubProjectsDto(); } #region 数据验证 ////验证装置编码 //if (list.Count(x => x.Level == 1) > 0) //{ // var installationCodes = list.Where(x => x.Level == 1).Select(a => a.InstallationCode); // var importCodes = installationCodes.GroupBy(x => x).Where(x => x.Count() > 1).Select(x => x.Key).ToList(); // if (importCodes.Count > 0) // { // this.fileData.Reset(); // ShowNotify($"EXCEL中装置编码{string.Join(",", importCodes)}重复,请调整模板数据!", MessageBoxIcon.Warning); // return; // } // installationCodes = installationCodes.Distinct(); // if (installationCodes.Count() > 0) // { // var existInstallations = Funs.DB.PreRun_SysDevice.Where(a => installationCodes.Contains(a.PreRunCode) && a.PreRunLevel == 1 && a.ProjectId == this.CurrUser.LoginProjectId).ToList(); // if (existInstallations.Count > 0) // { // this.fileData.Reset(); // ShowNotify($"装置编码({string.Join(",", existInstallations.ConvertAll(s => s.PreRunCode))})已存在!", MessageBoxIcon.Warning); // return; // } // } //} ////验证工序编码 //if (list.Count(x => x.Level == 2) > 0) //{ // var processesCodes = list.Where(x => x.Level == 2).Select(a => a.ProcessesCode); // var importCodes = processesCodes.GroupBy(x => x).Where(x => x.Count() > 1).Select(x => x.Key).ToList(); // if (importCodes.Count > 0) // { // this.fileData.Reset(); // ShowNotify($"EXCEL中工序编码{string.Join(",", importCodes)}重复,请调整模板数据!", MessageBoxIcon.Warning); // return; // } // processesCodes = processesCodes.Distinct(); // if (processesCodes.Count() > 0) // { // var existProcessess = Funs.DB.PreRun_SysDevice.Where(a => processesCodes.Contains(a.PreRunCode) && a.PreRunLevel == 2 && a.ProjectId == this.CurrUser.LoginProjectId).ToList(); // if (existProcessess.Count > 0) // { // this.fileData.Reset(); // ShowNotify($"工序编码({string.Join(",", existProcessess.ConvertAll(s => s.PreRunCode))})已存在!", MessageBoxIcon.Warning); // return; // } // } //} ////验证系统编码 //if (list.Count(x => x.Level == 3) > 0) //{ // var systemCodes = list.Where(x => x.Level == 3).Select(a => a.SystemCode); // var importCodes = systemCodes.GroupBy(x => x).Where(x => x.Count() > 1).Select(x => x.Key).ToList(); // if (importCodes.Count > 0) // { // this.fileData.Reset(); // ShowNotify($"EXCEL中系统编码{string.Join(",", importCodes)}重复,请调整模板数据!", MessageBoxIcon.Warning); // return; // } // systemCodes = systemCodes.Distinct().ToList(); // if (systemCodes.Count() > 0) // { // var existSystems = Funs.DB.PreRun_SysDevice.Where(a => systemCodes.Contains(a.PreRunCode) && a.PreRunLevel == 3 && a.ProjectId == this.CurrUser.LoginProjectId).ToList(); // if (existSystems.Count > 0) // { // this.fileData.Reset(); // ShowNotify($"系统编码({string.Join(",", existSystems.ConvertAll(s => s.PreRunCode))})已存在!", MessageBoxIcon.Warning); // return; // } // } //} ////验证子系统编码 //if (list.Count(x => x.Level == 4) > 0) //{ // var subsystemCodes = list.Where(x => x.Level == 4).Select(a => a.SubsystemCode); // var importCodes = subsystemCodes.GroupBy(x => x).Where(x => x.Count() > 1).Select(x => x.Key).ToList(); // if (importCodes.Count > 0) // { // this.fileData.Reset(); // ShowNotify($"EXCEL中子系统编码{string.Join(",", importCodes)}重复,请调整模板数据!", MessageBoxIcon.Warning); // return; // } // subsystemCodes = subsystemCodes.Distinct().ToList(); // if (subsystemCodes.Count() > 0) // { // var existSubsystems = Funs.DB.PreRun_SysDevice.Where(a => subsystemCodes.Contains(a.PreRunCode) && a.PreRunLevel == 4 && a.ProjectId == this.CurrUser.LoginProjectId).ToList(); // if (existSubsystems.Count > 0) // { // this.fileData.Reset(); // ShowNotify($"子系统编码({string.Join(",", existSubsystems.ConvertAll(s => s.PreRunCode))})已存在!", MessageBoxIcon.Warning); // return; // } // } //} #endregion #region 数据处理 //var installationData = new List(); //var processesData = new List(); //var systemData = new List(); ////处理装置 //if (list.Count(x => x.Level == 1) > 0) //{ // list.Where(x => x.Level == 1).ToList().ForEach(a => // { // a.InstallationId = Guid.NewGuid().ToString(); // }); //} ////处理工序 //if (list.Count(x => x.Level == 2) > 0) //{ // var codes = list.ConvertAll(a => a.InstallationCode).Distinct(); // installationData = Funs.DB.PreRun_SysDevice.Where(x => x.PreRunLevel == 1 && codes.Contains(x.PreRunCode)).ToList(); // list.Where(x => x.Level == 2).ToList().ForEach(a => // { // //装置 // if (list.Count(p => p.InstallationCode == a.InstallationCode && p.Level == 1) > 0) // { // a.InstallationId = list.FirstOrDefault(p => p.InstallationCode == a.InstallationCode && p.Level == 1).InstallationId; // } // else if (installationData.Count(p => p.PreRunCode == a.InstallationCode) > 0) // { // a.InstallationId = installationData.FirstOrDefault(p => p.PreRunCode == a.InstallationCode).PreRunId; // } // //上级编码 // a.ParentId = a.InstallationId; // //工序 // a.ProcessesId = Guid.NewGuid().ToString(); // }); //} ////处理系统 //if (list.Count(x => x.Level == 3) > 0) //{ // var codes = list.ConvertAll(a => a.ProcessesCode).Distinct(); // processesData = Funs.DB.PreRun_SysDevice.Where(x => x.PreRunLevel == 2 && codes.Contains(x.PreRunCode)).ToList(); // list.Where(x => x.Level == 3).ToList().ForEach(a => // { // //装置 // if (list.Count(p => p.InstallationCode == a.InstallationCode && p.Level == 1) > 0) // { // a.InstallationId = list.FirstOrDefault(p => p.InstallationCode == a.InstallationCode && p.Level == 1).InstallationId; // } // else if (installationData.Count(p => p.PreRunCode == a.InstallationCode) > 0) // { // a.InstallationId = installationData.FirstOrDefault(p => p.PreRunCode == a.InstallationCode).PreRunId; // } // //工序 // if (list.Count(p => p.ProcessesCode == a.ProcessesCode && p.Level == 2) > 0) // { // a.ProcessesId = list.FirstOrDefault(p => p.ProcessesCode == a.ProcessesCode && p.Level == 2).ProcessesId; // } // else if (processesData.Count(p => p.PreRunCode == a.ProcessesCode) > 0) // { // a.ProcessesId = processesData.FirstOrDefault(p => p.PreRunCode == a.ProcessesCode).PreRunId; // } // //上级编码 // a.ParentId = a.ProcessesId; // //系统 // a.SystemId = Guid.NewGuid().ToString(); // }); //} ////处理子系统 //if (list.Count(x => x.Level == 4) > 0) //{ // var codes = list.ConvertAll(a => a.SystemCode).Distinct(); // systemData = Funs.DB.PreRun_SysDevice.Where(x => x.PreRunLevel == 3 && codes.Contains(x.PreRunCode)).ToList(); // list.Where(x => x.Level == 4).ToList().ForEach(a => // { // //装置 // if (list.Count(p => p.InstallationCode == a.InstallationCode && p.Level == 1) > 0) // { // a.InstallationId = list.FirstOrDefault(p => p.InstallationCode == a.InstallationCode && p.Level == 1).InstallationId; // } // else if (installationData.Count(p => p.PreRunCode == a.InstallationCode) > 0) // { // a.InstallationId = installationData.FirstOrDefault(p => p.PreRunCode == a.InstallationCode).PreRunId; // } // //工序 // if (list.Count(p => p.ProcessesCode == a.ProcessesCode && p.Level == 2) > 0) // { // a.ProcessesId = list.FirstOrDefault(p => p.ProcessesCode == a.ProcessesCode && p.Level == 2).ProcessesId; // } // else if (processesData.Count(p => p.PreRunCode == a.ProcessesCode) > 0) // { // a.ProcessesId = processesData.FirstOrDefault(p => p.PreRunCode == a.ProcessesCode).PreRunId; // } // //系统 // if (list.Count(p => p.SystemCode == a.SystemCode && p.Level == 3) > 0) // { // a.SystemId = list.FirstOrDefault(p => p.SystemCode == a.SystemCode && p.Level == 3).SystemId; // } // else if (systemData.Count(p => p.PreRunCode == a.SystemCode) > 0) // { // a.SystemId = systemData.FirstOrDefault(p => p.PreRunCode == a.SystemCode).PreRunId; // } // //上级编码 // a.ParentId = a.SystemId; // //子系统 // a.SubsystemId = Guid.NewGuid().ToString(); // }); //} #endregion #region 数据入库 //var listData = new List(); //int oneIndex = 1; //int twoIndex = 1; //int threeIndex = 1; //int fourIndex = 1; //foreach (var itemData in list) //{ // var model = new PreRun_SysDevice(); // model.ProjectId = this.CurrUser.LoginProjectId; // model.PreRunLevel = itemData.Level; // if (itemData.Level == 1) // { // model.PreRunId = itemData.InstallationId; // model.PreRunCode = itemData.InstallationCode; // model.PreRunName = itemData.InstallationName; // model.ParentId = itemData.ParentId; // model.AddUser = CurrUser.Account; // model.OperateTime = DateTime.Now; // model.Sort = Funs.DB.PreRun_SysDevice.Count(p => p.ProjectId == CurrUser.LoginProjectId) + oneIndex; // oneIndex++; // } // if (itemData.Level == 2) // { // model.PreRunId = itemData.ProcessesId; // model.ProcessesId = itemData.ProcessesId; // model.PreRunCode = itemData.ProcessesCode; // model.PreRunName = itemData.ProcessesName; // model.InstallationId = itemData.InstallationId; // model.ParentId = itemData.ParentId; // model.AddUser = CurrUser.Account; // model.OperateTime = DateTime.Now; // model.Sort = Funs.DB.PreRun_SysDevice.Count(p => p.ProjectId == CurrUser.LoginProjectId) + twoIndex; // twoIndex++; // } // if (itemData.Level == 3) // { // model.PreRunId = itemData.SystemId; // model.SystemId = itemData.SystemId; // model.PreRunCode = itemData.SystemCode; // model.PreRunName = itemData.SystemName; // model.InstallationId = itemData.InstallationId; // model.ProcessesId = itemData.ProcessesId; // model.ParentId = itemData.ParentId; // model.AddUser = CurrUser.Account; // model.OperateTime = DateTime.Now; // model.Sort = Funs.DB.PreRun_SysDevice.Count(p => p.ProjectId == CurrUser.LoginProjectId) + threeIndex; // threeIndex++; // } // if (itemData.Level == 4) // { // model.PreRunId = itemData.SubsystemId; // model.SubsystemId = itemData.SubsystemId; // model.PreRunCode = itemData.SubsystemCode; // model.PreRunName = itemData.SubsystemName; // model.InstallationId = itemData.InstallationId; // model.ProcessesId = itemData.ProcessesId; // model.SystemId = itemData.SystemId; // model.ParentId = itemData.ParentId; // model.AddUser = CurrUser.Account; // model.OperateTime = DateTime.Now; // model.Sort = Funs.DB.PreRun_SysDevice.Count(p => p.ProjectId == CurrUser.LoginProjectId) + fourIndex; // fourIndex++; // } // listData.Add(model); //} //Funs.DB.PreRun_SysDevice.InsertAllOnSubmit(listData); //Funs.DB.SubmitChanges(); //ShowNotify("导入成功!", MessageBoxIcon.Success); #endregion } else { this.fileData.Reset(); ShowNotify("文件无数据!", MessageBoxIcon.Warning); } DataBrid(); this.fileData.Reset(); } catch (Exception ex) { this.fileData.Reset(); ShowNotify(ex.Message, MessageBoxIcon.Warning); } } /// /// 下载模板 /// 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.WBSDivisionUrl; string filePath = Const.WBSDivisionUrl; 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(); } } /// /// 右击修改 /// protected void btnMenuModify_Click(object sender, EventArgs e) { btnEdit_Click(sender, e); } /// /// 右击新增子级别 /// protected void btnMenuParentAdd_Click(object sender, EventArgs e) { btnParentAdd_Click(sender, e); } #endregion #region 私有方法 /// /// 根据行ID来删除行数据 /// private void DeleteRowByIDInternal(string rowID) { var model = Funs.DB.Division_SubProjects.FirstOrDefault(p => p.DivisionId == rowID); if (model != null) { Funs.DB.Division_SubProjects.DeleteOnSubmit(model); GetDevice(rowID); } Funs.DB.SubmitChanges(); } /// /// 删除 /// private void GetDevice(string id) { var model = Funs.DB.Division_SubProjects.FirstOrDefault(p => p.ParentId == id); if (model != null) { Funs.DB.Division_SubProjects.DeleteOnSubmit(model); GetDevice(model.DivisionId); } } /// /// 验证单位分部分项工程划分模板是否正确 /// /// /// private bool VerifyFile(DataSet ds) { var result = true; if (ds.Tables[0].Rows[1][0].ToString().Contains("单位工程名称")) result = false; if (ds.Tables[0].Rows[1][1].ToString().Contains("子单位工程编码")) result = false; if (ds.Tables[0].Rows[1][2].ToString().Contains("子单位工程名称")) result = false; if (ds.Tables[0].Rows[1][3].ToString().Contains("分部工程编号")) result = false; if (ds.Tables[0].Rows[1][4].ToString().Contains("分部工程名称")) result = false; if (ds.Tables[0].Rows[1][5].ToString().Contains("子分部工程名称")) result = false; if (ds.Tables[0].Rows[1][6].ToString().Contains("分项工程编号")) result = false; if (ds.Tables[0].Rows[1][7].ToString().Contains("分项工程名称")) result = false; if (ds.Tables[0].Rows[1][7].ToString().Contains("分部分项码")) result = false; if (ds.Tables[0].Rows[1][7].ToString().Contains("级别")) result = false; return result; } /// /// 验证datatable某列是否存在重复 /// /// public bool HasRepeatData(DataTable dt, string[] colName) { bool flag = false; DataView myDataView = new DataView(dt); if (myDataView.ToTable(true, colName).Rows.Count < dt.Rows.Count) { flag = true; } return flag; } /// /// 获取某一列的所有值 /// /// 列数据类型 /// 数据表 /// 列名 /// public static List GetColumnValues(DataTable dtSource, string filedName) { return (from r in dtSource.AsEnumerable() select r.Field(filedName)).ToList(); } /// /// 判断是否为空 /// /// public bool StrIsNumm(object value) { bool result = false; if (value == null) result = true; if (string.IsNullOrWhiteSpace(value.ToString())) result = true; return result; } /// /// 单位分部分项工程划分信息 /// public class DivisionSubProjectsDto { /// /// 上级主键 /// public string ParentId { get; set; } /// /// 级别 /// public int Level { get; set; } /// /// 单位工程编码 /// public string EngineeringCode { get; set; } /// /// 单位工程名称 /// public string EngineeringName { get; set; } /// /// 子单位工程编码 /// public string SubEngineeringCode { get; set; } /// /// 子单位工程名称 /// public string SubEngineeringName { get; set; } /// /// 分部工程编号 /// public string BranchEngineeringCode { get; set; } /// /// 分部工程名称 /// public string BranchEngineeringName { get; set; } /// /// 子分部工程名称 /// public string SubBranchEngineeringName { get; set; } /// /// 分项工程编号 /// public string ProEngineeringCode { get; set; } /// /// 分项工程名称 /// public string ProEngineeringName { get; set; } /// /// 分部分项码 /// public string ProEngineeringNum { get; set; } } #endregion } }