using BLL; using Model; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace FineUIPro.Web.TestRun.BeforeTestRun { public partial class SubInspectTerm : PageBase { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.InitTreeMenu();//加载树 PageInit(); } } #region 树绑定 /// /// 加载树 /// private void InitTreeMenu() { this.tvControlItem.Nodes.Clear(); TreeNode rootNode = new TreeNode(); rootNode.Text = "检查表"; rootNode.NodeID = "0"; rootNode.Expanded = true; rootNode.ToolTip = ""; rootNode.EnableClickEvent = true; this.tvControlItem.Nodes.Add(rootNode); var list = from a in Funs.DB.PreRun_SysDevice join b in Funs.DB.PreRun_SubSysWorkPackage on a.PreRunId equals b.SubSystemId join c in Funs.DB.PreRun_WorkPackage on b.WorkPackId equals c.WorkPackId where a.ProjectId == this.CurrUser.LoginProjectId select new { a.PreRunId, a.SystemId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName, b.WorkPackCode }; if (list.Count() > 0) { var subSystemIds = list.Select(x => x.PreRunId).ToList(); var workPackIds = list.Select(x => x.WorkPackId).ToList(); var selectlist = YscInspectItems(workPackIds, subSystemIds); var systemIds = list.Select(x => x.SystemId).ToList(); var syslist = Funs.DB.PreRun_SysDevice.Where(x => systemIds.Contains(x.PreRunId)); foreach (var itemSys in syslist) { TreeNode rootFirstNode = new TreeNode();//定义根节点 rootFirstNode.NodeID = itemSys.PreRunId; rootFirstNode.Text = itemSys.PreRunName; rootFirstNode.ToolTip = itemSys.PreRunName; rootFirstNode.CommandName = ""; rootFirstNode.EnableClickEvent = false; rootFirstNode.EnableExpandEvent = false; rootNode.Nodes.Add(rootFirstNode); rootFirstNode.Expanded = true; var subList = list.Where(g => g.SystemId == itemSys.PreRunId).GroupBy(x => new { x.PreRunId, x.SystemId, x.PreRunCode, x.PreRunName }); foreach (var item in subList) { TreeNode rootUnitNode = new TreeNode();//定义根节点 rootUnitNode.NodeID = item.Key.PreRunId; rootUnitNode.Text = item.Key.PreRunName; rootUnitNode.ToolTip = item.Key.PreRunName; rootUnitNode.CommandName = ""; rootUnitNode.EnableClickEvent = false; rootUnitNode.EnableExpandEvent = false; rootFirstNode.Nodes.Add(rootUnitNode); rootUnitNode.Expanded = true; var worklist = list.Where(a => a.PreRunId == item.Key.PreRunId).GroupBy(x => new { x.WorkPackId, x.WorkPackName, x.WorkPackCode }).ToList(); if (worklist.Count > 0) { foreach (var itemWork in worklist.OrderBy(o => o.Key.WorkPackCode)) { TreeNode newNode = new TreeNode(); newNode.Text = itemWork.Key.WorkPackName; newNode.NodeID = itemWork.Key.WorkPackId + "|" + item.Key.PreRunId; newNode.ToolTip = itemWork.Key.WorkPackName; newNode.CommandName = ""; newNode.Expanded = true; newNode.EnableClickEvent = true; var workselects = selectlist.Where(x => x.SubSystemId == item.Key.PreRunId && x.WorkPackId == itemWork.Key.WorkPackId); if (workselects.Count() > 0) { newNode.EnableExpandEvent = false; rootUnitNode.Nodes.Add(newNode); foreach (var itemSelect in workselects) { TreeNode newNodeSelect = new TreeNode(); newNodeSelect.Text = itemSelect.Code.Length > 10 ? $"{itemSelect.Code.Substring(0, 10)}......" : itemSelect.Code; newNodeSelect.NodeID = itemWork.Key.WorkPackId + "|" + item.Key.PreRunId + "|" + itemSelect.Id; newNodeSelect.ToolTip = itemSelect.Code; newNodeSelect.CommandName = ""; newNodeSelect.EnableClickEvent = true; newNodeSelect.EnableExpandEvent = true; newNode.Nodes.Add(newNodeSelect); newNodeSelect.Expanded = true; } } else { newNode.EnableClickEvent = true; newNode.EnableExpandEvent = true; rootUnitNode.Nodes.Add(newNode); } } } } } } } /// /// 绑定下拉框 /// public void PageInit() { //检查人绑定 var userList = from user in Funs.DB.Sys_User join projectrole in Funs.DB.Project_ProjectUser on user.UserId equals projectrole.UserId where projectrole.ProjectId == this.CurrUser.LoginProjectId select user; var userids = new List() { Const.sysglyId, Const.hfnbdId, Const.sedinId }; var addUserList = Funs.DB.Sys_User.Where(x => userids.Contains(x.UserId)); var users = userList.ToList(); if (addUserList.Count() > 0) { users.AddRange(addUserList); } if (users.Count() > 0) { ddlfbs.DataTextField = "UserName"; ddlfbs.DataValueField = "UserId"; ddlfbs.DataSource = users; ddlfbs.DataBind(); ddlcbs.DataTextField = "UserName"; ddlcbs.DataValueField = "UserId"; ddlcbs.DataSource = users; ddlcbs.DataBind(); ddljl.DataTextField = "UserName"; ddljl.DataValueField = "UserId"; ddljl.DataSource = users; ddljl.DataBind(); ddlyz.DataTextField = "UserName"; ddlyz.DataValueField = "UserId"; ddlyz.DataSource = users; ddlyz.DataBind(); } } /// /// 点击TreeView /// protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) { this.BindGrid(); } #endregion #region 数据绑定 /// /// 绑定数据 /// public void BindGrid(bool typechange = true) { var result = new List(); var workPackId = this.tvControlItem.SelectedNodeID.Split('|')[0]; var subSystemId = this.tvControlItem.SelectedNodeID.Split('|')[1]; var subInspectId = string.Empty; if (this.tvControlItem.SelectedNodeID.Split('|').Length > 2) { subInspectId = this.tvControlItem.SelectedNodeID.Split('|').Last(); } if (typechange) { var propertyTechnologyIds = string.Empty; var selectStr = string.Empty; var inspectItems = Funs.DB.PreRun_SubInspectTerm.Where(x => x.WorkPackId == workPackId && x.SubSystemId == subSystemId).ToList(); if (!string.IsNullOrWhiteSpace(subInspectId)) { var selectItem = inspectItems.FirstOrDefault(x => x.SubInspectId == subInspectId); if (selectItem != null) { selectStr = selectItem.PropertyTechnologyId; } inspectItems.RemoveAll(x => x.SubInspectId == subInspectId); } if (inspectItems.Count > 0) propertyTechnologyIds = string.Join(",", inspectItems.ConvertAll(x => x.PropertyTechnologyId)); var workPage = Funs.DB.PreRun_WorkPackage.FirstOrDefault(x => x.WorkPackId == workPackId); if (workPage != null) { //加载类型 if (workPage.WorkPackType == 0) { ddlWorkPackType.Items.Clear(); ddlWorkPackType.Items.Insert(0, new ListItem("管道", "1")); ddlWorkPackType.Items.Insert(1, new ListItem("设备", "2")); ddlWorkPackType.SelectedValue = "1"; } if (workPage.WorkPackType == 1) { ddlWorkPackType.Items.Clear(); ddlWorkPackType.Items.Insert(0, new ListItem("管道", "1")); ddlWorkPackType.SelectedValue = "1"; } if (workPage.WorkPackType == 2) { ddlWorkPackType.Items.Clear(); ddlWorkPackType.Items.Insert(0, new ListItem("设备", "2")); ddlWorkPackType.SelectedValue = "2"; } //加载数据 PipingBrid(ddlWorkPackType.SelectedValue, subSystemId, propertyTechnologyIds, selectStr); } } //获取子系统 var subSysModel = Funs.DB.PreRun_SysDevice.FirstOrDefault(x => x.PreRunId == subSystemId); //获取主表数据 var workPackType = int.Parse(ddlWorkPackType.SelectedValue); var subModel = Funs.DB.PreRun_SubInspectTerm.FirstOrDefault(x => x.SubInspectId == subInspectId); if (subModel != null) { if (subModel.WorkPackType != null) { ddlWorkPackType.SelectedValue = subModel.WorkPackType.ToString(); ddlWorkPackType.Enabled = false; } ddlfbs.SelectedValue = subModel.Subcontractor; ddlcbs.SelectedValue = subModel.Contractor; ddljl.SelectedValue = subModel.Supervision; ddlyz.SelectedValue = subModel.Owner; } else { ddlfbs.SelectedValue = string.Empty; ddlcbs.SelectedValue = string.Empty; ddljl.SelectedValue = string.Empty; ddlyz.SelectedValue = string.Empty; } var list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.SubInspectId == subInspectId).OrderBy(x => x.Sort).ToList(); if (list.Count > 0) { foreach (var item in list) { var model = new Brid_SubInspectTermItem(); model.SubItemId = item.SubItemId; model.ProjectId = item.ProjectId; model.WorkPackId = item.WorkPackId; model.WorkInspectId = item.WorkInspectId; model.WorkInspectName = item.WorkInspectName; model.InstallationId = subSysModel.InstallationId; model.ProcessesId = subSysModel.ProcessesId; model.SystemId = subSysModel.SystemId; model.SubSystemId = subSysModel.PreRunId; model.InspectedUser = item.InspectedUser; model.InspectionResults = item.InspectionResults; model.InspectionIllustrate = item.InspectionIllustrate; model.Sort = item.Sort; model.isChick = true; result.Add(model); } } //获取预加载的数据 var defaultDatas = Funs.DB.PreRun_WorkInspectTemplate.Where(s => s.WorkPackId == workPackId).OrderBy(x => x.Sort).ToList(); if (defaultDatas.Count > 0) { int index = list.Count + 1; foreach (var item in defaultDatas) { if (list.Count(x => x.WorkInspectName == item.WorkInspectName) == 0) { var model = new Brid_SubInspectTermItem(); model.SubItemId = Guid.NewGuid().ToString(); model.ProjectId = this.CurrUser.LoginProjectId; model.WorkPackId = item.WorkPackId; model.WorkInspectId = item.WorkInspectId; model.WorkInspectName = item.WorkInspectName; model.InstallationId = subSysModel.InstallationId; model.ProcessesId = subSysModel.ProcessesId; model.SystemId = subSysModel.SystemId; model.SubSystemId = subSysModel.PreRunId; model.Sort = index + 1; model.isChick = false; result.Add(model); index++; } } } Grid1.DataSource = result; Grid1.DataBind(); if (result.Count(x => x.isChick) > 0) { //默认选中行 var checkids = result.Where(x => x.isChick).Select(a => a.SubItemId); Grid1.SelectedRowIDArray = checkids.ToArray(); } //检查人绑定 var userList = from user in Funs.DB.Sys_User join projectrole in Funs.DB.Project_ProjectUser on user.UserId equals projectrole.UserId where projectrole.ProjectId == this.CurrUser.LoginProjectId select user; var userids = new List() { Const.sysglyId, Const.hfnbdId, Const.sedinId }; var addUserList = Funs.DB.Sys_User.Where(x => userids.Contains(x.UserId)); var data = userList.ToList(); if (addUserList.Count() > 0) { data.AddRange(addUserList); } DropDownList ddlInspectedUser = Grid1.FindColumn("InspectedUser").FindControl("ddlInspectedUser") as DropDownList; ddlInspectedUser.DataTextField = "UserName"; ddlInspectedUser.DataValueField = "UserId"; ddlInspectedUser.DataSource = data; ddlInspectedUser.DataBind(); } /// /// 排序 /// protected void Grid1_Sort(object sender, GridSortEventArgs e) { Grid1.SortDirection = e.SortDirection; Grid1.SortField = e.SortField; BindGrid(); } /// /// 行按钮事件 /// protected void Grid1_RowCommand(object sender, GridCommandEventArgs e) { if (e.CommandName == "Delete") { string rowID = e.RowID; var model = Funs.DB.PreRun_SubInspectTermItem.FirstOrDefault(p => p.SubItemId == rowID); if (model != null) { Funs.DB.PreRun_SubInspectTermItem.DeleteOnSubmit(model); Funs.DB.SubmitChanges(); BindGrid(); ShowNotify("删除成功!"); } else { var list = gvList(); list.RemoveAll(x => x.SubItemId == rowID); Grid1.DataSource = list; Grid1.DataBind(); ShowNotify("删除成功!"); } } } #endregion /// /// 保存 /// protected void btnSave_Click(object sender, EventArgs e) { try { if (string.IsNullOrWhiteSpace(ddlfbs.SelectedValue)) { ShowNotify("请选择分包商!", MessageBoxIcon.Warning); return; } if (string.IsNullOrWhiteSpace(ddlcbs.SelectedValue)) { ShowNotify("请选择承包商!", MessageBoxIcon.Warning); return; } if (string.IsNullOrWhiteSpace(ddljl.SelectedValue)) { ShowNotify("请选择监理!", MessageBoxIcon.Warning); return; } if (string.IsNullOrWhiteSpace(ddlyz.SelectedValue)) { ShowNotify("请选择业主!", MessageBoxIcon.Warning); return; } if (ddbSysPiping.Values.Length == 0) { ShowNotify("请选择设备!", MessageBoxIcon.Warning); return; } if (Grid1.SelectedRowIndexArray.Length == 0) { ShowNotify("请选择一条数据!", MessageBoxIcon.Warning); return; } var workPackId = this.tvControlItem.SelectedNodeID.Split('|')[0]; var subSystemId = this.tvControlItem.SelectedNodeID.Split('|')[1]; var subInspectId = string.Empty; if (this.tvControlItem.SelectedNodeID.Split('|').Length > 2) { subInspectId = this.tvControlItem.SelectedNodeID.Split('|').Last(); } var workPackType = int.Parse(ddlWorkPackType.SelectedValue); List subTrems = new List(); List subTremItems = new List(); //foreach (var item in ddbSysPiping.Values) //{ var subTrem = Funs.DB.PreRun_SubInspectTerm.FirstOrDefault(x => x.SubInspectId == subInspectId); JArray mergedData = Grid1.GetMergedData(); foreach (JObject mergedRow in mergedData) { string status = mergedRow.Value("status"); JObject values = mergedRow.Value("values"); int i = mergedRow.Value("index"); var subItemId = this.Grid1.Rows[i].DataKeys[0].ToString(); var workInspectId = this.Grid1.Rows[i].DataKeys[1].ToString(); if (!Grid1.SelectedRowIndexArray.Contains(i)) continue; //获取子系统信息 var list = new List(); var subSysModel = Funs.DB.PreRun_SysDevice.FirstOrDefault(x => x.PreRunId == subSystemId); if (subSysModel != null) { //获取子系统工作包检查表,如果不存在则添加 if (subTrem == null) { subTrem = new PreRun_SubInspectTerm(); subTrem.SubInspectId = Guid.NewGuid().ToString(); subTrem.WorkPackId = workPackId; subTrem.ProjectId = this.CurrUser.LoginProjectId; subTrem.InstallationId = subSysModel.InstallationId; subTrem.ProcessesId = subSysModel.ProcessesId; subTrem.SystemId = subSysModel.SystemId; subTrem.SubSystemId = subSysModel.PreRunId; subTrem.Subcontractor = ddlfbs.SelectedValue; subTrem.Contractor = ddlcbs.SelectedValue; subTrem.Supervision = ddljl.SelectedValue; subTrem.Owner = ddlyz.SelectedValue; subTrem.PropertyTechnologyId = string.Join(",", ddbSysPiping.Values); subTrem.WorkPackType = int.Parse(ddlWorkPackType.SelectedValue); subTrem.AddUser = this.CurrUser.UserId; subTrem.AddTime = DateTime.Now; subTrems.Add(subTrem); } else { subTrem.Subcontractor = ddlfbs.SelectedValue; subTrem.Contractor = ddlcbs.SelectedValue; subTrem.Supervision = ddljl.SelectedValue; subTrem.Owner = ddlyz.SelectedValue; Funs.DB.SubmitChanges(); } var model = Funs.DB.PreRun_SubInspectTermItem.FirstOrDefault(x => x.SubInspectId == subInspectId); if (model == null) { model = new PreRun_SubInspectTermItem(); model.TermItemId = Guid.NewGuid().ToString(); model.SubItemId = subItemId; model.SubInspectId = subTrem.SubInspectId; model.WorkPackId = workPackId; model.ProjectId = this.CurrUser.LoginProjectId; model.WorkInspectId = workInspectId; model.WorkInspectName = values.Value("WorkInspectName"); model.InstallationId = subSysModel.InstallationId; model.ProcessesId = subSysModel.ProcessesId; model.SystemId = subSysModel.SystemId; model.SubSystemId = subSysModel.PreRunId; model.InspectedUser = !string.IsNullOrWhiteSpace(values.Value("InspectedUser")) ? values.Value("InspectedUser") : string.Empty; model.Subcontractor = ddlfbs.SelectedValue; model.Contractor = ddlcbs.SelectedValue; model.Supervision = ddljl.SelectedValue; model.Owner = ddlyz.SelectedValue; model.PropertyTechnologyId = string.Join(",", ddbSysPiping.Values); model.WorkPackType = int.Parse(ddlWorkPackType.SelectedValue); model.AddUser = this.CurrUser.UserId; model.AddTime = DateTime.Now; model.Sort = i + 1; subTremItems.Add(model); } else { model.InspectedUser = !string.IsNullOrWhiteSpace(values.Value("InspectedUser")) ? values.Value("InspectedUser") : string.Empty; model.WorkInspectName = values.Value("WorkInspectName"); Funs.DB.SubmitChanges(); } } } Funs.DB.PreRun_SubInspectTerm.InsertAllOnSubmit(subTrems); Funs.DB.PreRun_SubInspectTermItem.InsertAllOnSubmit(subTremItems); Funs.DB.SubmitChanges(); this.InitTreeMenu(); //BindGrid(); ShowNotify("保存成功!"); } catch (Exception ex) { ShowNotify(ex.Message, MessageBoxIcon.Error); } } /// /// 新增 /// protected void btnAdd_Click(object sender, EventArgs e) { var list = gvList(); var workPackId = this.tvControlItem.SelectedNodeID.Split('|')[0]; var subSystemId = this.tvControlItem.SelectedNodeID.Split('|')[1]; //获取子系统 var subSysModel = Funs.DB.PreRun_SysDevice.FirstOrDefault(x => x.PreRunId == subSystemId); if (subSysModel != null) { var model = new PreRun_SubInspectTermItem(); model.SubItemId = Guid.NewGuid().ToString(); model.ProjectId = this.CurrUser.LoginProjectId; model.WorkPackId = workPackId; model.WorkInspectId = string.Empty; model.WorkInspectName = string.Empty; model.InstallationId = subSysModel.InstallationId; model.ProcessesId = subSysModel.ProcessesId; model.SystemId = subSysModel.SystemId; model.SubSystemId = subSysModel.PreRunId; model.Sort = list.Count + 1; list.Add(model); } Grid1.DataSource = list; Grid1.DataBind(); } /// /// 入场人员培训及特种作业报验人数集合 /// private List gvList() { List list = new List(); JArray mergedData = Grid1.GetMergedData(); foreach (JObject mergedRow in mergedData) { string status = mergedRow.Value("status"); JObject values = mergedRow.Value("values"); int i = mergedRow.Value("index"); var subItemId = this.Grid1.Rows[i].DataKeys[0].ToString(); var workInspectId = this.Grid1.Rows[i].DataKeys[1] != null ? this.Grid1.Rows[i].DataKeys[1].ToString() : string.Empty; ; var subInspectId = this.Grid1.Rows[i].DataKeys[2] != null ? this.Grid1.Rows[i].DataKeys[2].ToString() : string.Empty; var workPackId = this.Grid1.Rows[i].DataKeys[3].ToString(); var installationId = this.Grid1.Rows[i].DataKeys[4].ToString(); var processesId = this.Grid1.Rows[i].DataKeys[4].ToString(); var systemId = this.Grid1.Rows[i].DataKeys[4].ToString(); var subSystemId = this.Grid1.Rows[i].DataKeys[4].ToString(); var model = new PreRun_SubInspectTermItem(); model = new PreRun_SubInspectTermItem(); model.SubItemId = subItemId; model.SubInspectId = subInspectId; model.WorkPackId = workPackId; model.ProjectId = this.CurrUser.LoginProjectId; model.WorkInspectId = workInspectId; model.WorkInspectName = values.Value("WorkInspectName"); model.InstallationId = installationId; model.ProcessesId = processesId; model.SystemId = systemId; model.SubSystemId = subSystemId; model.InspectedUser = !string.IsNullOrWhiteSpace(values.Value("InspectedUser")) ? values.Value("InspectedUser") : string.Empty; model.AddUser = this.CurrUser.UserId; model.AddTime = DateTime.Now; model.Sort = i + 1; list.Add(model); } return list; } /// /// 检测结果 /// /// public string Results(object value) { var result = string.Empty; if (value != null) { var intVal = int.Parse(value.ToString()); if (intVal == 1) { result = "通过"; } else if (intVal == 0) { result = "未通过"; } } return result; } /// /// 绑定实体 /// public class Brid_SubInspectTermItem : PreRun_SubInspectTermItem { /// /// 是否选中 /// public bool isChick { get; set; } } /// /// 类型 /// protected void ddlWorkPackType_SelectedIndexChanged(object sender, EventArgs e) { var selectStr = string.Empty; var propertyTechnologyIds = string.Empty; var workPackId = this.tvControlItem.SelectedNodeID.Split('|')[0]; var subSystemId = this.tvControlItem.SelectedNodeID.Split('|')[1]; var subInspectId = string.Empty; if (this.tvControlItem.SelectedNodeID.Split('|').Length > 2) { subInspectId = this.tvControlItem.SelectedNodeID.Split('|').Last(); } var inspectItems = Funs.DB.PreRun_SubInspectTerm.Where(x => x.WorkPackId == workPackId && x.SubSystemId == subSystemId).ToList(); if (!string.IsNullOrWhiteSpace(subInspectId)) { var selectItem = inspectItems.FirstOrDefault(x => x.SubInspectId == subInspectId); if (selectItem != null) { selectStr = selectItem.PropertyTechnologyId; } inspectItems.RemoveAll(x => x.SubInspectId == subInspectId); } if (inspectItems.Count > 0) propertyTechnologyIds = string.Join(",", inspectItems.ConvertAll(x => x.PropertyTechnologyId)); PipingBrid(ddlWorkPackType.SelectedValue, subSystemId, propertyTechnologyIds, selectStr); } /// /// 设备选择 /// protected void ddlSysPiping_SelectedIndexChanged(object sender, EventArgs e) { BindGrid(false); } /// /// 已生成检查表的管道/设备 /// private List YscInspectItems(List workPackIds, List subSystemIds) { List yczData = new List(); var yscInspectItems = Funs.DB.PreRun_SubInspectTerm.Where(x => workPackIds.Contains(x.WorkPackId) && subSystemIds.Contains(x.SubSystemId)).ToList(); if (yscInspectItems.Count > 0) { var selectPtids = string.Join(",", yscInspectItems.ConvertAll(x => x.PropertyTechnologyId)).Split(',').ToList(); var listPros = Funs.DB.PreRun_PropertySysPiping.Where(x => selectPtids.Contains(x.PropertyId)).ToList(); var listTechno = Funs.DB.PreRun_TechnologySysPiping.Where(x => selectPtids.Contains(x.TechnologyId)).ToList(); foreach (var itemYsc in yscInspectItems) { var codeStr = string.Empty; var ids = itemYsc.PropertyTechnologyId.Split(','); var itemPros = listPros.Where(x => ids.Contains(x.PropertyId)).ToList(); if (itemPros.Count > 0) { codeStr = $"管道:{string.Join(",", itemPros.ConvertAll(x => x.PipingCode))}"; yczData.Add(new SelectPropertyTechnology() { Id = itemYsc.SubInspectId, Code = codeStr, WorkPackId = itemYsc.WorkPackId, SubSystemId = itemYsc.SubSystemId }); } var itemTechno = listTechno.Where(x => ids.Contains(x.TechnologyId)).ToList(); if (itemTechno.Count > 0) { codeStr = $"设备:{string.Join(",", itemTechno.ConvertAll(x => x.TagNumber))}"; yczData.Add(new SelectPropertyTechnology() { Id = itemYsc.SubInspectId, Code = codeStr, WorkPackId = itemYsc.WorkPackId, SubSystemId = itemYsc.SubSystemId }); } } } return yczData; } /// /// 管道或设备绑定 /// public void PipingBrid(string WorkPackType, string subSystemId, string propertyTechnologyIds, string selectStr) { var sysPipingData = new List(); if (WorkPackType == "1") { if (string.IsNullOrWhiteSpace(propertyTechnologyIds)) { var sysData = from proper in Funs.DB.PreRun_PropertySysPiping join selectproper in Funs.DB.PreRun_SubPropertySelect on proper.PropertyId equals selectproper.PropertyId where selectproper.SubSystemId == subSystemId select new SelectPropertyTechnology() { Id = proper.PropertyId, Code = $"管道:({proper.PipingCode})" }; sysPipingData = sysData.ToList(); } else { var ids = propertyTechnologyIds.Split(','); var sysData = from proper in Funs.DB.PreRun_PropertySysPiping join selectproper in Funs.DB.PreRun_SubPropertySelect on proper.PropertyId equals selectproper.PropertyId where selectproper.SubSystemId == subSystemId && !ids.Contains(proper.PropertyId) select new SelectPropertyTechnology() { Id = proper.PropertyId, Code = $"管道:({proper.PipingCode})" }; sysPipingData = sysData.ToList(); } if (sysPipingData.Count > 0) { cbSysPiping.DataTextField = "Code"; cbSysPiping.DataValueField = "Id"; cbSysPiping.DataSource = sysPipingData; cbSysPiping.DataBind(); List values = new List(); List texts = new List(); if (!string.IsNullOrWhiteSpace(selectStr)) { var selectIds = selectStr.Split(',').ToList(); var selectData = sysPipingData.Where(x => selectIds.Contains(x.Id)).ToList(); if (selectData.Count() > 0) { values = selectData.ConvertAll(x => x.Id); texts = selectData.ConvertAll(x => x.Code); } } ddbSysPiping.Values = values.ToArray(); ddbSysPiping.Texts = texts.ToArray(); } else { cbSysPiping.Items.Clear(); cbSysPiping.Items.Insert(0, new CheckItem("==无数据==", "")); } } else { if (string.IsNullOrWhiteSpace(propertyTechnologyIds)) { var sysData = from technology in Funs.DB.PreRun_TechnologySysPiping join selecttechnology in Funs.DB.PreRun_SubTechnologySelect on technology.TechnologyId equals selecttechnology.TechnologyId where selecttechnology.SubSystemId == subSystemId select new SelectPropertyTechnology() { Id = technology.TechnologyId, Code = $"设备:({technology.TagNumber})" }; sysPipingData = sysData.ToList(); } else { var ids = propertyTechnologyIds.Split(','); var sysData = from technology in Funs.DB.PreRun_TechnologySysPiping join selecttechnology in Funs.DB.PreRun_SubTechnologySelect on technology.TechnologyId equals selecttechnology.TechnologyId where selecttechnology.SubSystemId == subSystemId && !ids.Contains(technology.TechnologyId) select new SelectPropertyTechnology() { Id = technology.TechnologyId, Code = $"设备:({technology.TagNumber})" }; sysPipingData = sysData.ToList(); } if (sysPipingData.Count() > 0) { cbSysPiping.DataTextField = "Code"; cbSysPiping.DataValueField = "Id"; cbSysPiping.DataSource = sysPipingData; cbSysPiping.DataBind(); List values = new List(); List texts = new List(); if (!string.IsNullOrWhiteSpace(selectStr)) { var selectIds = selectStr.Split(',').ToList(); var selectData = sysPipingData.Where(x => selectIds.Contains(x.Id)).ToList(); if (selectData.Count() > 0) { values = selectData.ConvertAll(x => x.Id); texts = selectData.ConvertAll(x => x.Code); } } ddbSysPiping.Values = values.ToArray(); ddbSysPiping.Texts = texts.ToArray(); } else { cbSysPiping.Items.Clear(); cbSysPiping.Items.Insert(0, new CheckItem("==无数据==", "")); } } } /// /// 子系统选择的管道/设备 /// public class SelectPropertyTechnology { /// /// 主键 /// public string Id { get; set; } /// /// 编码 /// public string Code { get; set; } /// /// 工作包主键 /// public string WorkPackId { get; set; } /// /// 子系统主键 /// public string SubSystemId { get; set; } } } }