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;
 | |
|         }
 | |
|     }
 | |
| } |