1009 lines
		
	
	
		
			49 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			1009 lines
		
	
	
		
			49 KiB
		
	
	
	
		
			C#
		
	
	
	
| 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)
 | |
|             {
 | |
|                 Toolbar3.Hidden = true;
 | |
|                 this.InitTreeMenu();//加载树
 | |
|                 PageInit();
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         #region 树绑定
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 加载树
 | |
|         /// </summary>
 | |
|         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
 | |
|                        orderby a.Sort, a.PreRunLevel
 | |
|                        select new { a.PreRunId, a.SystemId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName, b.WorkPackCode, a.Sort };
 | |
| 
 | |
|             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)).OrderBy(o => o.Sort).ThenBy(t => t.PreRunLevel);
 | |
|                 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, x.Sort });
 | |
|                     foreach (var item in subList.OrderBy(o => o.Key.Sort))
 | |
|                     {
 | |
|                         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);
 | |
|                                 }
 | |
|                             }
 | |
|                         }
 | |
|                     }
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 绑定下拉框
 | |
|         /// </summary>
 | |
|         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<string>() { 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();
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 点击TreeView
 | |
|         /// </summary>
 | |
|         protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
 | |
|         {
 | |
|             this.BindGrid();
 | |
|         }
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|         #region 数据绑定
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 绑定数据
 | |
|         /// </summary>
 | |
|         public void BindGrid(bool typechange = true)
 | |
|         {
 | |
|             var result = new List<PreRun_SubInspectTermItem>();
 | |
|             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 workPage = Funs.DB.PreRun_WorkPackage.FirstOrDefault(x => x.WorkPackId == workPackId);
 | |
|             if (workPage.SpecialWorkPack == 0)
 | |
|             {
 | |
|                 Toolbar3.Hidden = true;
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 Toolbar3.Hidden = false;
 | |
|             }
 | |
|             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));
 | |
| 
 | |
|                 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";
 | |
|                     }
 | |
|                     if (workPage.WorkPackType == 3)
 | |
|                     {
 | |
|                         ddlWorkPackType.Items.Clear();
 | |
|                         ddlWorkPackType.Items.Insert(0, new ListItem("仪表索引", "3"));
 | |
|                         ddlWorkPackType.SelectedValue = "3";
 | |
|                     }
 | |
|                     //加载数据
 | |
|                     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;
 | |
| 
 | |
|                 labSubcontractor.Hidden = false;
 | |
|                 labSubcontractor.Text = subModel.SubcontractorIsAllPass == null ? "(待确认)" : subModel.SubcontractorIsAllPass == 0 ? "(不通过)" : subModel.SubcontractorIsAllPass == 1 ? "(通过)" : "(待确认)";
 | |
|                 labSubcontractor.CssClass = subModel.SubcontractorIsAllPass == null ? "unconfirm" : subModel.SubcontractorIsAllPass == 0 ? "notpass" : subModel.SubcontractorIsAllPass == 1 ? "pass" : "unconfirm";
 | |
| 
 | |
|                 labContractor.Hidden = false;
 | |
|                 labContractor.Text = subModel.ContractorIsAllPass == null ? "(待确认)" : subModel.ContractorIsAllPass == 0 ? "(不通过)" : subModel.ContractorIsAllPass == 1 ? "(通过)" : "(待确认)";
 | |
|                 labContractor.CssClass = subModel.ContractorIsAllPass == null ? "unconfirm" : subModel.ContractorIsAllPass == 0 ? "notpass" : subModel.ContractorIsAllPass == 1 ? "pass" : "unconfirm";
 | |
| 
 | |
|                 labSupervision.Hidden = false;
 | |
|                 labSupervision.Text = subModel.SupervisionIsAllPass == null ? "(待确认)" : subModel.SupervisionIsAllPass == 0 ? "(不通过)" : subModel.SupervisionIsAllPass == 1 ? "(通过)" : "(待确认)";
 | |
|                 labSupervision.CssClass = subModel.SupervisionIsAllPass == null ? "unconfirm" : subModel.SupervisionIsAllPass == 0 ? "notpass" : subModel.SupervisionIsAllPass == 1 ? "pass" : "unconfirm";
 | |
| 
 | |
|                 labOwner.Hidden = false;
 | |
|                 labOwner.Text = subModel.OwnerIsAllPass == null ? "(待确认)" : subModel.OwnerIsAllPass == 0 ? "(不通过)" : subModel.OwnerIsAllPass == 1 ? "(通过)" : "(待确认)";
 | |
|                 labOwner.CssClass = subModel.OwnerIsAllPass == null ? "unconfirm" : subModel.OwnerIsAllPass == 0 ? "notpass" : subModel.OwnerIsAllPass == 1 ? "pass" : "unconfirm";
 | |
| 
 | |
| 
 | |
|                 //if (subModel.SubcontractorIsAllPass == null)
 | |
|                 //{
 | |
|                 //    labSupervision.Text = "(待确认)";
 | |
|                 //    labSupervision.CssClass = "unconfirm";
 | |
|                 //}
 | |
|                 //else if (subModel.SubcontractorIsAllPass == 0)
 | |
|                 //{
 | |
|                 //    labSupervision.Text = "(通过)";
 | |
|                 //    labSupervision.CssClass = "notpass";
 | |
|                 //}
 | |
|                 //else if (subModel.SubcontractorIsAllPass == 1)
 | |
|                 //{
 | |
|                 //    labSupervision.Text = "(不通过)";
 | |
|                 //    labSupervision.CssClass = "pass";
 | |
|                 //}
 | |
| 
 | |
| 
 | |
|             }
 | |
|             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 PreRun_SubInspectTermItem();
 | |
|                     model.TermItemId = item.TermItemId;
 | |
|                     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;
 | |
|                     result.Add(model);
 | |
|                 }
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 //获取预加载的数据
 | |
|                 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)
 | |
|                     {
 | |
|                         var model = new PreRun_SubInspectTermItem();
 | |
|                         model.TermItemId = Guid.NewGuid().ToString();
 | |
|                         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;
 | |
|                         result.Add(model);
 | |
|                         index++;
 | |
|                     }
 | |
|                 }
 | |
|             }
 | |
|             Grid1.DataSource = result;
 | |
|             Grid1.DataBind();
 | |
|             //检查人绑定
 | |
|             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<string>() { 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();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 排序
 | |
|         /// </summary>
 | |
|         protected void Grid1_Sort(object sender, GridSortEventArgs e)
 | |
|         {
 | |
|             Grid1.SortDirection = e.SortDirection;
 | |
|             Grid1.SortField = e.SortField;
 | |
|             BindGrid();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 行按钮事件
 | |
|         /// </summary>
 | |
|         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.TermItemId == rowID);
 | |
|                 if (model != null)
 | |
|                 {
 | |
|                     if (model.InspectionResults != null)
 | |
|                     {
 | |
|                         ShowNotify("已存在检查结果,无法删除!", MessageBoxIcon.Warning);
 | |
|                         return;
 | |
|                     }
 | |
|                     Funs.DB.PreRun_SubInspectTermItem.DeleteOnSubmit(model);
 | |
|                     Funs.DB.SubmitChanges();
 | |
|                     BindGrid();
 | |
|                     ShowNotify("删除成功!");
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     var list = gvList();
 | |
|                     list.RemoveAll(x => x.TermItemId == rowID);
 | |
|                     Grid1.DataSource = list;
 | |
|                     Grid1.DataBind();
 | |
|                     ShowNotify("删除成功!");
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 保存
 | |
|         /// </summary>
 | |
|         protected void btnSave_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             try
 | |
|             {
 | |
|                 if (ddbSysPiping.Values.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);
 | |
|                 var subSysModel = Funs.DB.PreRun_SysDevice.FirstOrDefault(x => x.PreRunId == subSystemId);
 | |
|                 var workPackModel = Funs.DB.PreRun_WorkPackage.FirstOrDefault(x => x.WorkPackId == workPackId);
 | |
|                 if (workPackModel.SpecialWorkPack == 0)
 | |
|                 {
 | |
|                     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;
 | |
|                     }
 | |
|                     List<PreRun_SubInspectTerm> subTrems = new List<PreRun_SubInspectTerm>();
 | |
|                     List<PreRun_SubInspectTermItem> subTremItems = new List<PreRun_SubInspectTermItem>();
 | |
|                     var subTrem = Funs.DB.PreRun_SubInspectTerm.FirstOrDefault(x => x.SubInspectId == subInspectId);
 | |
|                     var termItems = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.SubInspectId == subInspectId).ToList();
 | |
|                     if (termItems.Count > 0 && termItems.Count(x => x.InspectionResults == null) == 0)
 | |
|                     {
 | |
|                         ShowNotify("所有检查项已存在检查结果,无法保存!", MessageBoxIcon.Warning);
 | |
|                         return;
 | |
|                     }
 | |
|                     JArray mergedData = Grid1.GetMergedData();
 | |
|                     foreach (JObject mergedRow in mergedData)
 | |
|                     {
 | |
|                         string status = mergedRow.Value<string>("status");
 | |
|                         JObject values = mergedRow.Value<JObject>("values");
 | |
|                         int i = mergedRow.Value<int>("index");
 | |
|                         var termItemId = this.Grid1.Rows[i].DataKeys[0].ToString();
 | |
|                         var subItemId = this.Grid1.Rows[i].DataKeys[1].ToString();
 | |
|                         var workInspectId = this.Grid1.Rows[i].DataKeys[2].ToString();
 | |
| 
 | |
|                         //获取子系统信息
 | |
|                         var list = new List<PreRun_SubInspectTermItem>();
 | |
|                         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.TermItemId == termItemId);
 | |
|                             if (model == null)
 | |
|                             {
 | |
|                                 model = new PreRun_SubInspectTermItem();
 | |
|                                 model.TermItemId = termItemId;
 | |
|                                 model.SubItemId = subItemId;
 | |
|                                 model.SubInspectId = subTrem.SubInspectId;
 | |
|                                 model.WorkPackId = workPackId;
 | |
|                                 model.ProjectId = this.CurrUser.LoginProjectId;
 | |
|                                 model.WorkInspectId = workInspectId;
 | |
|                                 model.WorkInspectName = values.Value<string>("WorkInspectName");
 | |
|                                 model.InstallationId = subSysModel.InstallationId;
 | |
|                                 model.ProcessesId = subSysModel.ProcessesId;
 | |
|                                 model.SystemId = subSysModel.SystemId;
 | |
|                                 model.SubSystemId = subSysModel.PreRunId;
 | |
|                                 model.InspectedUser = !string.IsNullOrWhiteSpace(values.Value<string>("InspectedUser")) ? values.Value<string>("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<string>("InspectedUser")) ? values.Value<string>("InspectedUser") : string.Empty;
 | |
|                                 model.WorkInspectName = values.Value<string>("WorkInspectName");
 | |
|                                 Funs.DB.SubmitChanges();
 | |
|                             }
 | |
|                         }
 | |
|                     }
 | |
| 
 | |
|                     if (subTrems != null) Funs.DB.PreRun_SubInspectTerm.InsertAllOnSubmit(subTrems);
 | |
|                     if (subTremItems.Count > 0) Funs.DB.PreRun_SubInspectTermItem.InsertAllOnSubmit(subTremItems);
 | |
|                     Funs.DB.SubmitChanges();
 | |
|                     if (Funs.DB.PreRun_SubInspectTermItem.Count(x => x.SubInspectId == subTrem.SubInspectId && x.InspectionResults.GetValueOrDefault() != 1) == 0)
 | |
|                     {
 | |
|                         subTrem.InspectionIsAllPass = 1;
 | |
|                     }
 | |
|                     else
 | |
|                     {
 | |
|                         subTrem.InspectionIsAllPass = 0;
 | |
|                     }
 | |
|                     Funs.DB.SubmitChanges();
 | |
|                     this.InitTreeMenu();
 | |
|                     BindGrid();
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     var subTrem = Funs.DB.PreRun_SubInspectTerm.FirstOrDefault(x => x.SubInspectId == subInspectId);
 | |
|                     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.PropertyTechnologyId = string.Join(",", ddbSysPiping.Values);
 | |
|                         subTrem.WorkPackType = int.Parse(ddlWorkPackType.SelectedValue);
 | |
|                         subTrem.InspectionIsAllPass = 1;
 | |
|                         subTrem.IsSiteImplement = 1;
 | |
|                         subTrem.AddUser = this.CurrUser.UserId;
 | |
|                         subTrem.AddTime = DateTime.Now;
 | |
|                         Funs.DB.PreRun_SubInspectTerm.InsertOnSubmit(subTrem);
 | |
|                     }
 | |
|                     else
 | |
|                     {
 | |
|                         subTrem.PropertyTechnologyId = string.Join(",", ddbSysPiping.Values);
 | |
|                     }
 | |
|                     Funs.DB.SubmitChanges();
 | |
|                     this.InitTreeMenu();
 | |
|                     BindGrid();
 | |
|                 }
 | |
| 
 | |
|                 ShowNotify("保存成功!");
 | |
|             }
 | |
|             catch (Exception ex)
 | |
|             {
 | |
|                 ShowNotify(ex.Message, MessageBoxIcon.Error);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 新增
 | |
|         /// </summary>
 | |
|         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 subInspectId = string.Empty;
 | |
|             if (this.tvControlItem.SelectedNodeID.Split('|').Length > 2)
 | |
|             {
 | |
|                 subInspectId = this.tvControlItem.SelectedNodeID.Split('|').Last();
 | |
|                 var termItems = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.SubInspectId == subInspectId).ToList();
 | |
|                 if (termItems.Count(x => x.InspectionResults == null) == 0)
 | |
|                 {
 | |
|                     ShowNotify("所有检查项已存在检查结果,无法新增!", MessageBoxIcon.Warning);
 | |
|                     return;
 | |
|                 }
 | |
|             }
 | |
|             //获取子系统
 | |
|             var subSysModel = Funs.DB.PreRun_SysDevice.FirstOrDefault(x => x.PreRunId == subSystemId);
 | |
|             if (subSysModel != null)
 | |
|             {
 | |
|                 var model = new PreRun_SubInspectTermItem();
 | |
|                 model.TermItemId = Guid.NewGuid().ToString();
 | |
|                 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();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 入场人员培训及特种作业报验人数集合
 | |
|         /// </summary>
 | |
|         private List<PreRun_SubInspectTermItem> gvList()
 | |
|         {
 | |
|             List<PreRun_SubInspectTermItem> list = new List<PreRun_SubInspectTermItem>();
 | |
|             JArray mergedData = Grid1.GetMergedData();
 | |
|             foreach (JObject mergedRow in mergedData)
 | |
|             {
 | |
|                 string status = mergedRow.Value<string>("status");
 | |
|                 JObject values = mergedRow.Value<JObject>("values");
 | |
|                 int i = mergedRow.Value<int>("index");
 | |
|                 var termItemId = this.Grid1.Rows[i].DataKeys[0].ToString();
 | |
|                 var subItemId = this.Grid1.Rows[i].DataKeys[1].ToString();
 | |
|                 var workInspectId = this.Grid1.Rows[i].DataKeys[2] != null ? this.Grid1.Rows[i].DataKeys[2].ToString() : string.Empty; ;
 | |
|                 var subInspectId = this.Grid1.Rows[i].DataKeys[3] != null ? this.Grid1.Rows[i].DataKeys[3].ToString() : string.Empty;
 | |
|                 var workPackId = this.Grid1.Rows[i].DataKeys[4].ToString();
 | |
|                 var installationId = this.Grid1.Rows[i].DataKeys[5].ToString();
 | |
|                 var processesId = this.Grid1.Rows[i].DataKeys[6].ToString();
 | |
|                 var systemId = this.Grid1.Rows[i].DataKeys[7].ToString();
 | |
|                 var subSystemId = this.Grid1.Rows[i].DataKeys[8].ToString();
 | |
| 
 | |
|                 var model = new PreRun_SubInspectTermItem();
 | |
|                 model.TermItemId = termItemId;
 | |
|                 model.SubItemId = subItemId;
 | |
|                 model.SubInspectId = subInspectId;
 | |
|                 model.WorkPackId = workPackId;
 | |
|                 model.ProjectId = this.CurrUser.LoginProjectId;
 | |
|                 model.WorkInspectId = workInspectId;
 | |
|                 model.WorkInspectName = values.Value<string>("WorkInspectName");
 | |
|                 model.InstallationId = installationId;
 | |
|                 model.ProcessesId = processesId;
 | |
|                 model.SystemId = systemId;
 | |
|                 model.SubSystemId = subSystemId;
 | |
|                 model.InspectedUser = !string.IsNullOrWhiteSpace(values.Value<string>("InspectedUser")) ? values.Value<string>("InspectedUser") : string.Empty;
 | |
|                 model.AddUser = this.CurrUser.UserId;
 | |
|                 model.AddTime = DateTime.Now;
 | |
|                 model.Sort = i + 1;
 | |
|                 list.Add(model);
 | |
|             }
 | |
|             return list;
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 检测结果
 | |
|         /// </summary>
 | |
|         /// <returns></returns>
 | |
|         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;
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 类型
 | |
|         /// </summary>
 | |
|         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);
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 设备选择
 | |
|         /// </summary>
 | |
|         protected void ddlSysPiping_SelectedIndexChanged(object sender, EventArgs e)
 | |
|         {
 | |
|             BindGrid(false);
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 已生成检查表的管道/设备
 | |
|         /// </summary>
 | |
|         private List<SelectPropertyTechnology> YscInspectItems(List<string> workPackIds, List<string> subSystemIds)
 | |
|         {
 | |
|             List<SelectPropertyTechnology> yczData = new List<SelectPropertyTechnology>();
 | |
|             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();
 | |
|                 var listInstrument = Funs.DB.PreRun_InstrumentSysPiping.Where(x => selectPtids.Contains(x.InstrumentId)).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
 | |
|                         });
 | |
|                     }
 | |
|                     var itemInstrument = listInstrument.Where(x => ids.Contains(x.InstrumentId)).ToList();
 | |
|                     if (itemInstrument.Count > 0)
 | |
|                     {
 | |
|                         codeStr = $"仪表:{string.Join(",", itemInstrument.ConvertAll(x => x.InstrumentTag))}";
 | |
|                         yczData.Add(new SelectPropertyTechnology()
 | |
|                         {
 | |
|                             Id = itemYsc.SubInspectId,
 | |
|                             Code = codeStr,
 | |
|                             WorkPackId = itemYsc.WorkPackId,
 | |
|                             SubSystemId = itemYsc.SubSystemId
 | |
|                         });
 | |
|                     }
 | |
| 
 | |
|                 }
 | |
|             }
 | |
|             return yczData;
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 管道,设备,仪表索引绑定
 | |
|         /// </summary>
 | |
|         public void PipingBrid(string WorkPackType, string subSystemId, string propertyTechnologyIds, string selectStr)
 | |
|         {
 | |
|             var sysPipingData = new List<SelectPropertyTechnology>();
 | |
|             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<string> values = new List<string>();
 | |
|                     List<string> texts = new List<string>();
 | |
|                     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
 | |
|                 {
 | |
|                     ddbSysPiping.Values = null;
 | |
|                     ddbSysPiping.Texts = null;
 | |
|                     cbSysPiping.Items.Clear();
 | |
|                     cbSysPiping.Items.Insert(0, new CheckItem("==无数据==", ""));
 | |
|                 }
 | |
|             }
 | |
|             if (WorkPackType == "2")
 | |
|             {
 | |
|                 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<string> values = new List<string>();
 | |
|                     List<string> texts = new List<string>();
 | |
|                     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
 | |
|                 {
 | |
|                     ddbSysPiping.Values = null;
 | |
|                     ddbSysPiping.Texts = null;
 | |
|                     cbSysPiping.Items.Clear();
 | |
|                     cbSysPiping.Items.Insert(0, new CheckItem("==无数据==", ""));
 | |
|                 }
 | |
|             }
 | |
|             if (WorkPackType == "3")
 | |
|             {
 | |
|                 if (string.IsNullOrWhiteSpace(propertyTechnologyIds))
 | |
|                 {
 | |
|                     var sysData = from instrument in Funs.DB.PreRun_InstrumentSysPiping
 | |
|                                   join selectinstrument in Funs.DB.PreRun_SubInstrumentSelect on instrument.InstrumentId equals selectinstrument.InstrumentId
 | |
|                                   where selectinstrument.SubSystemId == subSystemId
 | |
|                                   select new SelectPropertyTechnology()
 | |
|                                   {
 | |
|                                       Id = instrument.InstrumentId,
 | |
|                                       Code = $"仪表:({instrument.InstrumentTag})"
 | |
|                                   };
 | |
|                     sysPipingData = sysData.ToList();
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     var ids = propertyTechnologyIds.Split(',');
 | |
|                     var sysData = from instrument in Funs.DB.PreRun_InstrumentSysPiping
 | |
|                                   join selectinstrument in Funs.DB.PreRun_SubInstrumentSelect on instrument.InstrumentId equals selectinstrument.InstrumentId
 | |
|                                   where selectinstrument.SubSystemId == subSystemId && !ids.Contains(instrument.InstrumentId)
 | |
|                                   select new SelectPropertyTechnology()
 | |
|                                   {
 | |
|                                       Id = instrument.InstrumentId,
 | |
|                                       Code = $"仪表:({instrument.InstrumentTag})"
 | |
|                                   };
 | |
|                     sysPipingData = sysData.ToList();
 | |
|                 }
 | |
|                 if (sysPipingData.Count() > 0)
 | |
|                 {
 | |
|                     cbSysPiping.DataTextField = "Code";
 | |
|                     cbSysPiping.DataValueField = "Id";
 | |
|                     cbSysPiping.DataSource = sysPipingData;
 | |
|                     cbSysPiping.DataBind();
 | |
|                     List<string> values = new List<string>();
 | |
|                     List<string> texts = new List<string>();
 | |
|                     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
 | |
|                 {
 | |
|                     ddbSysPiping.Values = null;
 | |
|                     ddbSysPiping.Texts = null;
 | |
|                     cbSysPiping.Items.Clear();
 | |
|                     cbSysPiping.Items.Insert(0, new CheckItem("==无数据==", ""));
 | |
|                 }
 | |
|             }
 | |
| 
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 子系统选择的管道/设备
 | |
|         /// </summary>
 | |
|         public class SelectPropertyTechnology
 | |
|         {
 | |
|             /// <summary>
 | |
|             /// 主键
 | |
|             /// </summary>
 | |
|             public string Id { get; set; }
 | |
|             /// <summary>
 | |
|             /// 编码
 | |
|             /// </summary>
 | |
|             public string Code { get; set; }
 | |
|             /// <summary>
 | |
|             /// 工作包主键
 | |
|             /// </summary>
 | |
|             public string WorkPackId { get; set; }
 | |
|             /// <summary>
 | |
|             /// 子系统主键
 | |
|             /// </summary>
 | |
|             public string SubSystemId { get; set; }
 | |
|         }
 | |
|     }
 | |
| } |