420 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			420 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using BLL; | |||
|  | using Model; | |||
|  | 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.TestRunManage | |||
|  | { | |||
|  |     public partial class InspectTailTermEdit : PageBase | |||
|  |     { | |||
|  |         /// <summary> | |||
|  |         /// 检查表尾项主键 | |||
|  |         /// </summary> | |||
|  |         public string TailTermId | |||
|  |         { | |||
|  |             get { return (string)ViewState["TailTermId"]; } | |||
|  |             set { ViewState["TailTermId"] = value; } | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 检查项主键 | |||
|  |         /// </summary> | |||
|  |         public string TermItemId | |||
|  |         { | |||
|  |             get { return (string)ViewState["TermItemId"]; } | |||
|  |             set { ViewState["TermItemId"] = value; } | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 是否查看 | |||
|  |         /// </summary> | |||
|  |         public bool IsView | |||
|  |         { | |||
|  |             get { return (bool)ViewState["IsView"]; } | |||
|  |             set { ViewState["IsView"] = value; } | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 问题图片是否可编辑 | |||
|  |         /// </summary> | |||
|  |         public int QuestionEditImg | |||
|  |         { | |||
|  |             get { return (int)ViewState["QuestionEditImg"]; } | |||
|  |             set { ViewState["QuestionEditImg"] = value; } | |||
|  |         } | |||
|  | 
 | |||
|  |         protected void Page_Load(object sender, EventArgs e) | |||
|  |         { | |||
|  |             if (!IsPostBack) | |||
|  |             { | |||
|  |                 this.TailTermId = Request["TailTermId"]; | |||
|  |                 this.TermItemId = Request["TermItemId"]; | |||
|  |                 //是否查看 | |||
|  |                 this.IsView = string.IsNullOrWhiteSpace(Request["IsView"]) ? false : bool.Parse(Request["IsView"]); | |||
|  |                 //数据绑定 | |||
|  |                 PageInit(); | |||
|  |                 //处理和审批意见绑定 | |||
|  |                 gvRecordBrid(); | |||
|  |                 //判断是否查看 | |||
|  |                 if (IsView) | |||
|  |                 { | |||
|  |                     btnSave.Hidden = true; | |||
|  |                     btnSubmit.Hidden = true; | |||
|  |                     QuestionEditImg = -1; | |||
|  |                     txtTailTermCode.Enabled = false; | |||
|  |                     ddlConstructionUnit.Enabled = false; | |||
|  |                     ddlTermItemId.Enabled = false; | |||
|  |                     txtQuestionDesc.Enabled = false; | |||
|  |                     txtRectifyOpinion.Enabled = false; | |||
|  |                     ddlApproveUser.Enabled = false; | |||
|  |                     ddlHandleUser.Enabled = false; | |||
|  |                 } | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 默认绑定 | |||
|  |         /// </summary> | |||
|  |         public void PageInit() | |||
|  |         { | |||
|  |             QuestionEditImg = 0; | |||
|  |             //施工单位 | |||
|  |             UnitService.InitUnitByProjectIdUnitTypeDropDownList(ddlConstructionUnit, this.CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_2, false); | |||
|  |             //检查人绑定 | |||
|  |             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) | |||
|  |             { | |||
|  |                 //处理人 | |||
|  |                 ddlHandleUser.DataTextField = "UserName"; | |||
|  |                 ddlHandleUser.DataValueField = "UserId"; | |||
|  |                 ddlHandleUser.DataSource = users; | |||
|  |                 ddlHandleUser.DataBind(); | |||
|  |                 ddlHandleUser.SelectedValue = this.CurrUser.UserId; | |||
|  |                 //审核人 | |||
|  |                 ddlApproveUser.DataTextField = "UserName"; | |||
|  |                 ddlApproveUser.DataValueField = "UserId"; | |||
|  |                 ddlApproveUser.DataSource = users; | |||
|  |                 ddlApproveUser.DataBind(); | |||
|  |                 ddlApproveUser.SelectedValue = this.CurrUser.UserId; | |||
|  |             } | |||
|  |             var model = Funs.DB.TestRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId); | |||
|  |             if (model != null) | |||
|  |             { | |||
|  |                 //项目名称 | |||
|  |                 txtProjectName.Text = model.ProjectName; | |||
|  |                 //巡检编号 | |||
|  |                 txtTailTermCode.Text = model.TailTermCode; | |||
|  |                 //施工单位 | |||
|  |                 ddlConstructionUnit.SelectedValue = model.ConstructionUnit; | |||
|  |                 //提出人 | |||
|  |                 var inspectModel = users.FirstOrDefault(x => x.UserId == model.InspectUser); | |||
|  |                 if (inspectModel != null) | |||
|  |                 { | |||
|  |                     lblInspectUser.Text = inspectModel.UserName; | |||
|  |                     hidInspectUserId.Text = inspectModel.UserId; | |||
|  |                 } | |||
|  |                 //绑定检查项 | |||
|  |                 var data = from a in Funs.DB.TestRun_TermItemInspectedUser | |||
|  |                            join b in Funs.DB.TestRun_SubInspectTermItem on a.TermItemId equals b.TermItemId | |||
|  |                            where a.InspectionResults == 0 && a.InspectedUser == this.CurrUser.UserId | |||
|  |                            group new { b.WorkInspectName, b.TermItemId } by new { b.WorkInspectName, b.TermItemId } into gt | |||
|  |                            select new | |||
|  |                            { | |||
|  |                                gt.Key.WorkInspectName, | |||
|  |                                gt.Key.TermItemId | |||
|  |                            }; | |||
|  |                 var list = data.ToList(); | |||
|  |                 if (list.Count() > 0) | |||
|  |                 { | |||
|  |                     ddlTermItemId.DataTextField = "WorkInspectName"; | |||
|  |                     ddlTermItemId.DataValueField = "TermItemId"; | |||
|  |                     ddlTermItemId.DataSource = list; | |||
|  |                     ddlTermItemId.DataBind(); | |||
|  |                 } | |||
|  |                 //检查项 | |||
|  |                 ddlTermItemId.SelectedValue = model.TermItemId; | |||
|  |                 //问题描述 | |||
|  |                 txtQuestionDesc.Text = model.QuestionDesc; | |||
|  |                 //整改意见 | |||
|  |                 txtRectifyOpinion.Text = model.RectifyOpinion; | |||
|  |                 //提出时间 | |||
|  |                 lblRectifyTime.Text = model.RectifyTime != null ? model.RectifyTime.Value.ToString("yyyy-MM-dd") : string.Empty; | |||
|  |                 //处理人 | |||
|  |                 ddlHandleUser.SelectedValue = model.HandleUser; | |||
|  |                 //审核人 | |||
|  |                 ddlApproveUser.SelectedValue = model.ApproveUser; | |||
|  |                 //整改完成日期 | |||
|  |                 txtAdjustCompleteTime.Text = model.AdjustCompleteTime != null ? model.AdjustCompleteTime.Value.ToString("yyyy-MM-dd") : string.Empty; | |||
|  |                 if (model.ApproveState > 1) | |||
|  |                 { | |||
|  |                     QuestionEditImg = -1; | |||
|  |                 } | |||
|  |             } | |||
|  |             else | |||
|  |             { | |||
|  |                 this.TailTermId = Guid.NewGuid().ToString(); | |||
|  |                 var projectModel = Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectId == this.CurrUser.LoginProjectId); | |||
|  |                 if (projectModel != null) | |||
|  |                 { | |||
|  |                     txtProjectName.Text = projectModel.ProjectName; | |||
|  |                     string code = projectModel.ProjectCode + "-06-CM03-XJ-"; | |||
|  |                     txtTailTermCode.Text = SQLHelper.RunProcNewId("SpGetNewCode5", "dbo.TestRun_InspectTailTerm", "TailTermCode", code); | |||
|  |                 } | |||
|  |                 if (!string.IsNullOrWhiteSpace(this.TermItemId)) | |||
|  |                 { | |||
|  |                     var data = from a in Funs.DB.TestRun_TermItemInspectedUser | |||
|  |                                join b in Funs.DB.TestRun_SubInspectTermItem on a.TermItemId equals b.TermItemId | |||
|  |                                where a.InspectedUser == this.CurrUser.UserId && b.TermItemId == this.TermItemId | |||
|  |                                select new { a.InspectedUser, b.TermItemId }; | |||
|  |                     var itemTerm = data.FirstOrDefault(); | |||
|  |                     if (itemTerm != null) | |||
|  |                     { | |||
|  |                         //加载检查项 | |||
|  |                         var itemdata = from a in Funs.DB.TestRun_TermItemInspectedUser | |||
|  |                                        join b in Funs.DB.TestRun_SubInspectTermItem on a.TermItemId equals b.TermItemId | |||
|  |                                        where (a.InspectionResults == 0 || a.TermItemId == this.TermItemId) && a.InspectedUser == this.CurrUser.UserId | |||
|  |                                        select new { a.TermItemId, b.WorkInspectName }; | |||
|  |                         var list = itemdata.ToList(); | |||
|  |                         ddlTermItemId.Items.Clear(); | |||
|  |                         if (list.Count() > 0) | |||
|  |                         { | |||
|  |                             ddlTermItemId.DataTextField = "WorkInspectName"; | |||
|  |                             ddlTermItemId.DataValueField = "TermItemId"; | |||
|  |                             ddlTermItemId.DataSource = list; | |||
|  |                             ddlTermItemId.DataBind(); | |||
|  |                         } | |||
|  |                         else | |||
|  |                         { | |||
|  |                             ddlTermItemId.Items.Insert(0, new ListItem("==无数据==", "")); | |||
|  |                         } | |||
|  | 
 | |||
|  |                         //检查项 | |||
|  |                         ddlTermItemId.SelectedValue = itemTerm.TermItemId; | |||
|  |                         //提出人 | |||
|  |                         var inspectModel = users.FirstOrDefault(x => x.UserId == itemTerm.InspectedUser); | |||
|  |                         if (inspectModel != null) | |||
|  |                         { | |||
|  |                             lblInspectUser.Text = inspectModel.UserName; | |||
|  |                             hidInspectUserId.Text = inspectModel.UserId; | |||
|  |                         } | |||
|  |                         //提出时间 | |||
|  |                         lblRectifyTime.Text = DateTime.Now.ToString("yyyy-MM-dd"); | |||
|  |                     } | |||
|  |                 } | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 处理和审批意见绑定 | |||
|  |         /// </summary> | |||
|  |         public void gvRecordBrid() | |||
|  |         { | |||
|  |             string strSql = @"select a.InspectTermId,a.ApproveOpinion,a.ApproveTime,a.ApproveType,a.ApproveState,(case a.ApproveType when 0 then (case a.ApproveState when 0 then '处理退回' when 1 then '处理通过' else '' end) else (case a.ApproveState when 0 then '审批退回' when 1 then '审批通过' else '' end) end) as ApproveStateName,b.ConstructionUnit,d.UnitName as ConstructionUnitName,a.AddUser,a.AddTime from TestRun_InspectTermApproveRecords as a inner join TestRun_InspectTailTerm as b on a.TailTermId=b.TailTermId inner join TestRun_SubInspectTermItem as c on c.TermItemId=a.TermItemId inner join Base_Unit as d on d.UnitId=b.ConstructionUnit where 1=1 and a.ProjectId=@ProjectId and a.TailTermId=@TailTermId "; | |||
|  |             List<SqlParameter> listStr = new List<SqlParameter>(); | |||
|  |             listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); | |||
|  |             listStr.Add(new SqlParameter("@TailTermId", this.TailTermId)); | |||
|  |             strSql += " order by a.AddTime asc"; | |||
|  |             SqlParameter[] parameter = listStr.ToArray(); | |||
|  |             DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); | |||
|  |             //处理意见 | |||
|  |             var handleTb = tb.AsEnumerable().Where(row => row.Field<int>("ApproveType") == 0); | |||
|  |             gvHandle.DataSource = handleTb; | |||
|  |             gvHandle.DataBind(); | |||
|  |             //审批意见 | |||
|  |             var approveTb = tb.AsEnumerable().Where(row => row.Field<int>("ApproveType") == 1); | |||
|  |             gvApprove.DataSource = approveTb; | |||
|  |             gvApprove.DataBind(); | |||
|  |         } | |||
|  | 
 | |||
|  |         #region 按钮 | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 保存 | |||
|  |         /// </summary> | |||
|  |         protected void btnSave_Click(object sender, EventArgs e) | |||
|  |         { | |||
|  |             if (string.IsNullOrWhiteSpace(ddlConstructionUnit.SelectedValue)) | |||
|  |             { | |||
|  |                 ShowNotify("请选择施工单位!", MessageBoxIcon.Warning); | |||
|  |                 return; | |||
|  |             } | |||
|  |             if (string.IsNullOrWhiteSpace(ddlTermItemId.SelectedValue)) | |||
|  |             { | |||
|  |                 ShowNotify("请选择检查项!", MessageBoxIcon.Warning); | |||
|  |                 return; | |||
|  |             } | |||
|  |             if (string.IsNullOrWhiteSpace(ddlHandleUser.SelectedValue)) | |||
|  |             { | |||
|  |                 ShowNotify("请选择处理人!", MessageBoxIcon.Warning); | |||
|  |                 return; | |||
|  |             } | |||
|  |             if (string.IsNullOrWhiteSpace(ddlApproveUser.SelectedValue)) | |||
|  |             { | |||
|  |                 ShowNotify("请选择审核人!", MessageBoxIcon.Warning); | |||
|  |                 return; | |||
|  |             } | |||
|  |             var isAdd = false; | |||
|  |             var model = Funs.DB.TestRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId); | |||
|  |             if (model == null) | |||
|  |             { | |||
|  |                 isAdd = true; | |||
|  |                 model = new TestRun_InspectTailTerm(); | |||
|  |                 model.TailTermId = this.TailTermId; | |||
|  |                 model.ProjectId = this.CurrUser.LoginProjectId; | |||
|  |             } | |||
|  |             model.ProjectName = txtProjectName.Text; | |||
|  |             model.TailTermCode = txtTailTermCode.Text; | |||
|  |             model.ConstructionUnit = ddlConstructionUnit.SelectedValue; | |||
|  |             model.TermItemId = ddlTermItemId.SelectedValue; | |||
|  |             model.QuestionDesc = txtQuestionDesc.Text.Trim(); | |||
|  |             model.RectifyOpinion = txtRectifyOpinion.Text.Trim(); | |||
|  |             model.RectifyTime = DateTime.Parse(lblRectifyTime.Text); | |||
|  |             model.InspectUser = hidInspectUserId.Text; | |||
|  |             model.HandleUser = ddlHandleUser.SelectedValue; | |||
|  |             model.ApproveUser = ddlApproveUser.SelectedValue; | |||
|  |             model.AdjustCompleteTime = DateTime.Parse(txtAdjustCompleteTime.Text); | |||
|  |             model.ApproveState = 0; | |||
|  |             model.AddUser = this.CurrUser.LoginProjectId; | |||
|  |             model.AddTime = DateTime.Now; | |||
|  |             var workPack = Funs.DB.TestRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == model.TermItemId); | |||
|  |             if (workPack != null) | |||
|  |             { | |||
|  |                 model.WorkPackId = workPack.WorkPackId; | |||
|  |             } | |||
|  |             if (isAdd) | |||
|  |             { | |||
|  |                 Funs.DB.TestRun_InspectTailTerm.InsertOnSubmit(model); | |||
|  |             } | |||
|  |             //判断尾项是否保存 | |||
|  |             var itemModel = Funs.DB.TestRun_TermItemInspectedUser.FirstOrDefault(x => x.TermItemId == this.TermItemId && x.InspectedUser == this.CurrUser.UserId); | |||
|  |             if (itemModel != null) itemModel.InspectionResults = 0; | |||
|  |             Funs.DB.SubmitChanges(); | |||
|  |             ShowNotify("操作成功!", MessageBoxIcon.Success); | |||
|  |             PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 保存并提交 | |||
|  |         /// </summary> | |||
|  |         protected void btnSubmit_Click(object sender, EventArgs e) | |||
|  |         { | |||
|  |             if (string.IsNullOrWhiteSpace(ddlConstructionUnit.SelectedValue)) | |||
|  |             { | |||
|  |                 ShowNotify("请选择施工单位!", MessageBoxIcon.Warning); | |||
|  |                 return; | |||
|  |             } | |||
|  |             if (string.IsNullOrWhiteSpace(ddlTermItemId.SelectedValue)) | |||
|  |             { | |||
|  |                 ShowNotify("请选择检查项!", MessageBoxIcon.Warning); | |||
|  |                 return; | |||
|  |             } | |||
|  |             if (string.IsNullOrWhiteSpace(ddlHandleUser.SelectedValue)) | |||
|  |             { | |||
|  |                 ShowNotify("请选择处理人!", MessageBoxIcon.Warning); | |||
|  |                 return; | |||
|  |             } | |||
|  |             if (string.IsNullOrWhiteSpace(ddlApproveUser.SelectedValue)) | |||
|  |             { | |||
|  |                 ShowNotify("请选择审核人!", MessageBoxIcon.Warning); | |||
|  |                 return; | |||
|  |             } | |||
|  |             var isAdd = false; | |||
|  |             var model = Funs.DB.TestRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId); | |||
|  |             if (model == null) | |||
|  |             { | |||
|  |                 isAdd = true; | |||
|  |                 model = new TestRun_InspectTailTerm(); | |||
|  |                 model.TailTermId = this.TailTermId; | |||
|  |                 model.ProjectId = this.CurrUser.LoginProjectId; | |||
|  |             } | |||
|  |             model.ProjectName = txtProjectName.Text; | |||
|  |             model.TailTermCode = txtTailTermCode.Text; | |||
|  |             model.ConstructionUnit = ddlConstructionUnit.SelectedValue; | |||
|  |             model.TermItemId = ddlTermItemId.SelectedValue; | |||
|  |             model.QuestionDesc = txtQuestionDesc.Text.Trim(); | |||
|  |             model.RectifyOpinion = txtRectifyOpinion.Text.Trim(); | |||
|  |             model.RectifyTime = DateTime.Parse(lblRectifyTime.Text); | |||
|  |             model.InspectUser = hidInspectUserId.Text; | |||
|  |             model.HandleUser = ddlHandleUser.SelectedValue; | |||
|  |             model.ApproveUser = ddlApproveUser.SelectedValue; | |||
|  |             model.AdjustCompleteTime = DateTime.Parse(txtAdjustCompleteTime.Text); | |||
|  |             model.ApproveState = 1; | |||
|  |             model.AddUser = this.CurrUser.LoginProjectId; | |||
|  |             model.AddTime = DateTime.Now; | |||
|  |             var workPack = Funs.DB.TestRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == model.TermItemId); | |||
|  |             if (workPack != null) | |||
|  |             { | |||
|  |                 model.WorkPackId = workPack.WorkPackId; | |||
|  |             } | |||
|  |             if (isAdd) | |||
|  |             { | |||
|  |                 Funs.DB.TestRun_InspectTailTerm.InsertOnSubmit(model); | |||
|  |             } | |||
|  |             //判断尾项是否保存 | |||
|  |             var itemModel = Funs.DB.TestRun_TermItemInspectedUser.FirstOrDefault(x => x.TermItemId == this.TermItemId && x.InspectedUser == this.CurrUser.UserId); | |||
|  |             if (itemModel != null) itemModel.InspectionResults = 0; | |||
|  |             Funs.DB.SubmitChanges(); | |||
|  |             ShowNotify("操作成功!", MessageBoxIcon.Success); | |||
|  |             PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 问题图片 | |||
|  |         /// </summary> | |||
|  |         protected void imgBtnQuestionFile_Click(object sender, EventArgs e) | |||
|  |         { | |||
|  |             PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/CheckControl&menuId={2}", QuestionEditImg, this.TailTermId + "q", Const.InspectTailTerm))); | |||
|  |         } | |||
|  | 
 | |||
|  |         #endregion | |||
|  | 
 | |||
|  |         #region 事件 | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 检查项 | |||
|  |         /// </summary> | |||
|  |         protected void ddlTermItemId_SelectedIndexChanged(object sender, EventArgs e) | |||
|  |         { | |||
|  |             var itemUserTerm = Funs.DB.TestRun_TermItemInspectedUser.FirstOrDefault(x => x.TermItemId == ddlTermItemId.SelectedValue); | |||
|  |             if (itemUserTerm != null) | |||
|  |             { | |||
|  |                 //提出人 | |||
|  |                 var inspectModel = Funs.DB.Sys_User.FirstOrDefault(x => x.UserId == itemUserTerm.InspectedUser); | |||
|  |                 if (inspectModel != null) | |||
|  |                 { | |||
|  |                     lblInspectUser.Text = inspectModel.UserName; | |||
|  |                     hidInspectUserId.Text = inspectModel.UserId; | |||
|  |                 } | |||
|  |                 //提出时间 | |||
|  |                 lblRectifyTime.Text = DateTime.Now.ToString("yyyy-MM-dd"); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 关闭 | |||
|  |         /// </summary> | |||
|  |         protected void WindowAtt_Close(object sender, WindowCloseEventArgs e) | |||
|  |         { | |||
|  | 
 | |||
|  |         } | |||
|  | 
 | |||
|  |         #endregion | |||
|  |     } | |||
|  | } |