353 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			353 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using BLL; | |||
|  | using Model; | |||
|  | using Newtonsoft.Json.Linq; | |||
|  | using System; | |||
|  | using System.Collections.Generic; | |||
|  | using System.Linq; | |||
|  | using System.Web; | |||
|  | using System.Web.UI; | |||
|  | using System.Web.UI.WebControls; | |||
|  | 
 | |||
|  | namespace FineUIPro.Web.TestRun.Produce | |||
|  | { | |||
|  |     public partial class SubInspectTerm : PageBase | |||
|  |     { | |||
|  |         protected void Page_Load(object sender, EventArgs e) | |||
|  |         { | |||
|  |             if (!IsPostBack) | |||
|  |             { | |||
|  |                 PageInit(); | |||
|  |                 BindGrid(); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         #region 数据绑定 | |||
|  | 
 | |||
|  |         /// <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) | |||
|  |             { | |||
|  |                 ddlContractor.DataTextField = "UserName"; | |||
|  |                 ddlContractor.DataValueField = "UserId"; | |||
|  |                 ddlContractor.DataSource = users; | |||
|  |                 ddlContractor.DataBind(); | |||
|  | 
 | |||
|  |                 ddlOwner.DataTextField = "UserName"; | |||
|  |                 ddlOwner.DataValueField = "UserId"; | |||
|  |                 ddlOwner.DataSource = users; | |||
|  |                 ddlOwner.DataBind(); | |||
|  | 
 | |||
|  |                 ddlProcessPatent.DataTextField = "UserName"; | |||
|  |                 ddlProcessPatent.DataValueField = "UserId"; | |||
|  |                 ddlProcessPatent.DataSource = users; | |||
|  |                 ddlProcessPatent.DataBind(); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 绑定数据 | |||
|  |         /// </summary> | |||
|  |         public void BindGrid() | |||
|  |         { | |||
|  |             var result = new List<ProduceRun_SubInspectTermItem>(); | |||
|  |             var list = Funs.DB.ProduceRun_SubInspectTermItem.Where(x => x.ProjectId == this.CurrUser.LoginProjectId).OrderBy(x => x.Sort).ToList(); | |||
|  |             if (list.Count > 0) | |||
|  |             { | |||
|  |                 foreach (var item in list) | |||
|  |                 { | |||
|  |                     var model = new ProduceRun_SubInspectTermItem(); | |||
|  |                     model.TermItemId = item.TermItemId; | |||
|  |                     model.ProjectId = item.ProjectId; | |||
|  |                     model.WorkInspectId = item.WorkInspectId; | |||
|  |                     model.WorkInspectName = item.WorkInspectName; | |||
|  |                     model.InspectedUser = item.InspectedUser; | |||
|  |                     model.InspectionResults = item.InspectionResults; | |||
|  |                     model.InspectionIllustrate = item.InspectionIllustrate; | |||
|  |                     model.Sort = item.Sort; | |||
|  |                     result.Add(model); | |||
|  |                 } | |||
|  |             } | |||
|  |             else | |||
|  |             { | |||
|  |                 //获取预加载的数据 | |||
|  |                 var defaultDatas = Funs.DB.ProduceRun_WorkInspectTemplate.OrderBy(x => x.Sort).ToList(); | |||
|  |                 if (defaultDatas.Count > 0) | |||
|  |                 { | |||
|  |                     int index = list.Count + 1; | |||
|  |                     foreach (var item in defaultDatas) | |||
|  |                     { | |||
|  |                         var model = new ProduceRun_SubInspectTermItem(); | |||
|  |                         model.TermItemId = Guid.NewGuid().ToString(); | |||
|  |                         model.ProjectId = this.CurrUser.LoginProjectId; | |||
|  |                         model.WorkInspectId = item.WorkInspectId; | |||
|  |                         model.WorkInspectName = item.WorkInspectName; | |||
|  |                         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.ProduceRun_SubInspectTermItem.FirstOrDefault(p => p.TermItemId == rowID); | |||
|  |                 if (model != null) | |||
|  |                 { | |||
|  |                     if (model.InspectionResults != null) | |||
|  |                     { | |||
|  |                         ShowNotify("已存在检查结果,无法删除!", MessageBoxIcon.Warning); | |||
|  |                         return; | |||
|  |                     } | |||
|  |                     Funs.DB.ProduceRun_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 (string.IsNullOrWhiteSpace(ddlContractor.SelectedValue)) | |||
|  |                 { | |||
|  |                     ShowNotify("请选择承包商!", MessageBoxIcon.Warning); | |||
|  |                     return; | |||
|  |                 } | |||
|  |                 if (string.IsNullOrWhiteSpace(ddlOwner.SelectedValue)) | |||
|  |                 { | |||
|  |                     ShowNotify("请选择业主!", MessageBoxIcon.Warning); | |||
|  |                     return; | |||
|  |                 } | |||
|  |                 if (string.IsNullOrWhiteSpace(ddlProcessPatent.SelectedValue)) | |||
|  |                 { | |||
|  |                     ShowNotify("请选择工艺专利商!", MessageBoxIcon.Warning); | |||
|  |                     return; | |||
|  |                 } | |||
|  |                 List<ProduceRun_SubInspectTerm> subTrems = new List<ProduceRun_SubInspectTerm>(); | |||
|  |                 List<ProduceRun_SubInspectTermItem> subTremItems = new List<ProduceRun_SubInspectTermItem>(); | |||
|  |                 var subTrem = Funs.DB.ProduceRun_SubInspectTerm.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId); | |||
|  |                 var termItems = Funs.DB.ProduceRun_SubInspectTermItem.Where(x => x.ProjectId == this.CurrUser.LoginProjectId).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 workInspectId = this.Grid1.Rows[i].DataKeys[1].ToString(); | |||
|  | 
 | |||
|  |                     //获取子系统信息 | |||
|  |                     var list = new List<ProduceRun_SubInspectTermItem>(); | |||
|  |                     if (subTrem == null) | |||
|  |                     { | |||
|  |                         subTrem = new ProduceRun_SubInspectTerm(); | |||
|  |                         subTrem.SubInspectId = Guid.NewGuid().ToString(); | |||
|  |                         subTrem.ProjectId = this.CurrUser.LoginProjectId; | |||
|  |                         subTrem.Contractor = ddlContractor.SelectedValue; | |||
|  |                         subTrem.Owner = ddlOwner.SelectedValue; | |||
|  |                         subTrem.ProcessPatent = ddlProcessPatent.SelectedValue; | |||
|  |                         subTrem.AddUser = this.CurrUser.UserId; | |||
|  |                         subTrem.AddTime = DateTime.Now; | |||
|  |                         subTrems.Add(subTrem); | |||
|  |                     } | |||
|  |                     else | |||
|  |                     { | |||
|  |                         subTrem.Contractor = ddlContractor.SelectedValue; | |||
|  |                         subTrem.Owner = ddlOwner.SelectedValue; | |||
|  |                         subTrem.ProcessPatent = ddlProcessPatent.SelectedValue; | |||
|  |                         Funs.DB.SubmitChanges(); | |||
|  |                     } | |||
|  |                     var model = Funs.DB.ProduceRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == termItemId); | |||
|  |                     if (model == null) | |||
|  |                     { | |||
|  |                         model = new ProduceRun_SubInspectTermItem(); | |||
|  |                         model.TermItemId = termItemId; | |||
|  |                         model.SubInspectId = subTrem.SubInspectId; | |||
|  |                         model.ProjectId = this.CurrUser.LoginProjectId; | |||
|  |                         model.WorkInspectId = workInspectId; | |||
|  |                         model.WorkInspectName = values.Value<string>("WorkInspectName"); | |||
|  |                         model.InspectedUser = !string.IsNullOrWhiteSpace(values.Value<string>("InspectedUser")) ? values.Value<string>("InspectedUser") : string.Empty; | |||
|  |                         subTrem.Contractor = ddlContractor.SelectedValue; | |||
|  |                         subTrem.Owner = ddlOwner.SelectedValue; | |||
|  |                         subTrem.ProcessPatent = ddlProcessPatent.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.ProduceRun_SubInspectTerm.InsertAllOnSubmit(subTrems); | |||
|  |                 if (subTremItems.Count > 0) Funs.DB.ProduceRun_SubInspectTermItem.InsertAllOnSubmit(subTremItems); | |||
|  |                 Funs.DB.SubmitChanges(); | |||
|  |                 if (Funs.DB.ProduceRun_SubInspectTermItem.Count(x => x.SubInspectId == subTrem.SubInspectId && x.InspectionResults.GetValueOrDefault() != 1) == 0) | |||
|  |                 { | |||
|  |                     subTrem.InspectionIsAllPass = 1; | |||
|  |                 } | |||
|  |                 else | |||
|  |                 { | |||
|  |                     subTrem.InspectionIsAllPass = 0; | |||
|  |                 } | |||
|  |                 Funs.DB.SubmitChanges(); | |||
|  |                 BindGrid(); | |||
|  |                 ShowNotify("保存成功!"); | |||
|  |             } | |||
|  |             catch (Exception ex) | |||
|  |             { | |||
|  |                 ShowNotify(ex.Message, MessageBoxIcon.Error); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 新增 | |||
|  |         /// </summary> | |||
|  |         protected void btnAdd_Click(object sender, EventArgs e) | |||
|  |         { | |||
|  |             var list = gvList(); | |||
|  |             var termItems = Funs.DB.ProduceRun_SubInspectTermItem.Where(x => x.ProjectId == this.CurrUser.LoginProjectId).ToList(); | |||
|  |             if (termItems.Count > 0 && termItems.Count(x => x.InspectionResults == null) == 0) | |||
|  |             { | |||
|  |                 ShowNotify("所有检查项已存在检查结果,无法新增!", MessageBoxIcon.Warning); | |||
|  |                 return; | |||
|  |             } | |||
|  |             var model = new ProduceRun_SubInspectTermItem(); | |||
|  |             model.TermItemId = Guid.NewGuid().ToString(); | |||
|  |             model.ProjectId = this.CurrUser.LoginProjectId; | |||
|  |             model.WorkInspectId = string.Empty; | |||
|  |             model.WorkInspectName = string.Empty; | |||
|  |             model.Sort = list.Count + 1; | |||
|  |             list.Add(model); | |||
|  |             Grid1.DataSource = list; | |||
|  |             Grid1.DataBind(); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 获取集合 | |||
|  |         /// </summary> | |||
|  |         private List<ProduceRun_SubInspectTermItem> gvList() | |||
|  |         { | |||
|  |             List<ProduceRun_SubInspectTermItem> list = new List<ProduceRun_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 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 model = new ProduceRun_SubInspectTermItem(); | |||
|  |                 model.TermItemId = termItemId; | |||
|  |                 model.SubInspectId = subInspectId; | |||
|  |                 model.ProjectId = this.CurrUser.LoginProjectId; | |||
|  |                 model.WorkInspectId = workInspectId; | |||
|  |                 model.WorkInspectName = values.Value<string>("WorkInspectName"); | |||
|  |                 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; | |||
|  |         } | |||
|  |     } | |||
|  | } |