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 数据绑定 /// /// 绑定下拉框 /// 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) { 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(); } } /// /// 绑定数据 /// public void BindGrid() { var result = new List(); 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() { 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.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 /// /// 保存 /// 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 subTrems = new List(); List subTremItems = new List(); 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("status"); JObject values = mergedRow.Value("values"); int i = mergedRow.Value("index"); var termItemId = this.Grid1.Rows[i].DataKeys[0].ToString(); var workInspectId = this.Grid1.Rows[i].DataKeys[1].ToString(); //获取子系统信息 var list = new List(); 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("WorkInspectName"); model.InspectedUser = !string.IsNullOrWhiteSpace(values.Value("InspectedUser")) ? values.Value("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("InspectedUser")) ? values.Value("InspectedUser") : string.Empty; model.WorkInspectName = values.Value("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); } } /// /// 新增 /// 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(); } /// /// 获取集合 /// 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 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("WorkInspectName"); 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; } } }