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.BeforeTestRun { public partial class InspectTailTermEdit : PageBase { /// /// 检查表尾项主键 /// public string TailTermId { get { return (string)ViewState["TailTermId"]; } set { ViewState["TailTermId"] = value; } } /// /// 检查项主键 /// public string TermItemId { get { return (string)ViewState["TermItemId"]; } set { ViewState["TermItemId"] = value; } } /// /// 是否查看 /// public bool IsView { get { return (bool)ViewState["IsView"]; } set { ViewState["IsView"] = value; } } /// /// 问题图片是否可编辑 /// 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; //RectifyEditImg = -1; txtTailTermCode.Enabled = false; ddlConstructionUnit.Enabled = false; ddlProblemType.Enabled = false; ddlSubInspectId.Enabled = false; ddlTermItemId.Enabled = false; txtQuestionDesc.Enabled = false; txtRectifyOpinion.Enabled = false; ddlApproveUser.Enabled = false; ddlHandleUser.Enabled = false; } } } /// /// 默认绑定 /// public void PageInit() { QuestionEditImg = 0; //RectifyEditImg = -1; var selectList = new List(); //施工单位 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() { 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.PreRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId); if (model != null) { //项目名称 txtProjectName.Text = model.ProjectName; //巡检编号 txtTailTermCode.Text = model.TailTermCode; //施工单位 ddlConstructionUnit.SelectedValue = model.ConstructionUnit; //问题类别 ddlProblemType.SelectedValue = model.ProblemType.ToString(); //提出人 var inspectModel = users.FirstOrDefault(x => x.UserId == model.InspectUser); if (inspectModel != null) { lblInspectUser.Text = inspectModel.UserName; hidInspectUserId.Text = inspectModel.UserId; } //绑定管道或者设备 var termitemlist = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.InspectionResults == 0 && x.WorkPackType == model.ProblemType).GroupBy(x => new { x.SubInspectId, x.InspectionResults, x.PropertyTechnologyId, x.WorkPackType }); if (termitemlist.Count() > 0) { var ids = string.Join(",", termitemlist.Select(x => x.Key.PropertyTechnologyId)).Split(','); if (ddlProblemType.SelectedValue == "1") { var piplist = Funs.DB.PreRun_PropertySysPiping.Where(x => ids.Contains(x.PropertyId)); foreach (var item in termitemlist) { var pid = item.Key.PropertyTechnologyId.Split(','); var codes = piplist.Where(x => pid.Contains(x.PropertyId)).ToList(); selectList.Add(new SelectPropertyTechnology() { Id = item.Key.SubInspectId, Code = $"管道:{string.Join(",", codes.ConvertAll(x => x.PipingCode))}" }); } } else { var techlist = Funs.DB.PreRun_TechnologySysPiping.Where(x => ids.Contains(x.TechnologyId)); foreach (var item in termitemlist) { var pid = item.Key.PropertyTechnologyId.Split(','); var codes = techlist.Where(x => pid.Contains(x.TechnologyId)).ToList(); selectList.Add(new SelectPropertyTechnology() { Id = item.Key.SubInspectId, Code = $"设备:{string.Join(",", codes.ConvertAll(x => x.TagNumber))}" }); } } if (selectList.Count > 0) { ddlSubInspectId.DataTextField = "Code"; ddlSubInspectId.DataValueField = "Id"; ddlSubInspectId.DataSource = selectList; ddlSubInspectId.DataBind(); } else { ddlSubInspectId.Items.Insert(0, new ListItem("==无数据==", "")); } } //管道/设备 ddlSubInspectId.SelectedValue = model.SubInspectId; //绑定检查项 if (!string.IsNullOrWhiteSpace(ddlSubInspectId.SelectedValue)) { //var TermItemIds = Funs.DB.PreRun_InspectTailTerm.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.TailTermId != this.TailTermId).Select(a => a.TermItemId).ToList(); //var list = new List(); //if (TermItemIds.Count > 0) //{ // list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.InspectionResults == 0 && x.SubInspectId == ddlSubInspectId.SelectedValue && !TermItemIds.Contains(x.TermItemId)).ToList(); //} //else //{ // list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.InspectionResults == 0 && x.SubInspectId == ddlSubInspectId.SelectedValue).ToList(); //} var list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.InspectionResults == 0 && x.SubInspectId == ddlSubInspectId.SelectedValue).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; //RectifyEditImg = -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.PreRun_InspectTailTerm", "TailTermCode", code); } if (!string.IsNullOrWhiteSpace(this.TermItemId)) { var itemTerm = Funs.DB.PreRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == this.TermItemId); if (itemTerm != null) { var workPackType = itemTerm.WorkPackType; if (workPackType == 0) { if (Funs.DB.PreRun_PropertySysPiping.Count(x => x.PropertyId == itemTerm.PropertyTechnologyId) > 0) { workPackType = 1; } else { workPackType = 2; } } ddlProblemType.SelectedValue = workPackType.ToString(); //管道/设备 ddlProblemType_SelectedIndexChanged(null, null); ddlSubInspectId.SelectedValue = itemTerm.SubInspectId; //检查项 ddlSubInspectId_SelectedIndexChanged(null, null); 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"); } } } } /// /// 处理和审批意见绑定 /// 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 PreRun_InspectTermApproveRecords as a inner join PreRun_InspectTailTerm as b on a.TailTermId=b.TailTermId inner join PreRun_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 listStr = new List(); 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("ApproveType") == 0); gvHandle.DataSource = handleTb; gvHandle.DataBind(); //审批意见 var approveTb = tb.AsEnumerable().Where(row => row.Field("ApproveType") == 1); gvApprove.DataSource = approveTb; gvApprove.DataBind(); } #region 按钮 /// /// 保存 /// protected void btnSave_Click(object sender, EventArgs e) { if (string.IsNullOrWhiteSpace(ddlConstructionUnit.SelectedValue)) { ShowNotify("请选择施工单位!", MessageBoxIcon.Warning); return; } if (string.IsNullOrWhiteSpace(ddlProblemType.SelectedValue)) { ShowNotify("请选择问题类别!", MessageBoxIcon.Warning); return; } if (string.IsNullOrWhiteSpace(ddlSubInspectId.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.PreRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId); if (model == null) { isAdd = true; model = new PreRun_InspectTailTerm(); model.TailTermId = this.TailTermId; model.ProjectId = this.CurrUser.LoginProjectId; } model.ProjectName = txtProjectName.Text; model.TailTermCode = txtTailTermCode.Text; model.ConstructionUnit = ddlConstructionUnit.SelectedValue; model.ProblemType = int.Parse(ddlProblemType.SelectedValue); model.SubInspectId = ddlSubInspectId.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.PreRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == model.TermItemId); if (workPack != null) { model.WorkPackId = workPack.WorkPackId; } if (isAdd) { Funs.DB.PreRun_InspectTailTerm.InsertOnSubmit(model); } //判断尾项是否保存 var itemModel = Funs.DB.PreRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == this.TermItemId); if (itemModel != null) itemModel.InspectionResults = 0; Funs.DB.SubmitChanges(); ShowNotify("操作成功!", MessageBoxIcon.Success); PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); } /// /// 保存并提交 /// protected void btnSubmit_Click(object sender, EventArgs e) { if (string.IsNullOrWhiteSpace(ddlConstructionUnit.SelectedValue)) { ShowNotify("请选择施工单位!", MessageBoxIcon.Warning); return; } if (string.IsNullOrWhiteSpace(ddlProblemType.SelectedValue)) { ShowNotify("请选择问题类别!", MessageBoxIcon.Warning); return; } if (string.IsNullOrWhiteSpace(ddlSubInspectId.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.PreRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId); if (model == null) { isAdd = true; model = new PreRun_InspectTailTerm(); model.TailTermId = this.TailTermId; model.ProjectId = this.CurrUser.LoginProjectId; } model.ProjectName = txtProjectName.Text; model.TailTermCode = txtTailTermCode.Text; model.ConstructionUnit = ddlConstructionUnit.SelectedValue; model.ProblemType = int.Parse(ddlProblemType.SelectedValue); model.SubInspectId = ddlSubInspectId.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.PreRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == model.TermItemId); if (workPack != null) { model.WorkPackId = workPack.WorkPackId; } if (isAdd) { Funs.DB.PreRun_InspectTailTerm.InsertOnSubmit(model); } //判断尾项是否保存 var itemModel = Funs.DB.PreRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == this.TermItemId); if (itemModel != null) itemModel.InspectionResults = 0; Funs.DB.SubmitChanges(); ShowNotify("操作成功!", MessageBoxIcon.Success); PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); } /// /// 问题图片 /// 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))); } ///// ///// 整改图片 ///// //protected void imgBtnRectifyFile_Click(object sender, EventArgs e) //{ // PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/CheckControl&menuId={2}", RectifyEditImg, this.TailTermId + "h", Const.InspectTailTerm))); //} #endregion #region 事件 /// /// 问题类别事件 /// protected void ddlProblemType_SelectedIndexChanged(object sender, EventArgs e) { if (!string.IsNullOrWhiteSpace(ddlProblemType.SelectedValue)) { var selectList = new List(); var wtype = int.Parse(ddlProblemType.SelectedValue); //var list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.InspectionResults == 0 && x.WorkPackType == wtype).GroupBy(x => new { x.SubInspectId, x.InspectionResults, x.PropertyTechnologyId, x.WorkPackType }); var list = Funs.DB.PreRun_SubInspectTermItem.Where(x => (x.InspectionResults == 0 && x.WorkPackType == wtype) || x.TermItemId == this.TermItemId).GroupBy(x => new { x.SubInspectId, x.InspectionResults, x.PropertyTechnologyId, x.WorkPackType }); if (list.Count() > 0) { var ids = string.Join(",", list.Select(x => x.Key.PropertyTechnologyId)).Split(','); if (ddlProblemType.SelectedValue == "1") { var piplist = Funs.DB.PreRun_PropertySysPiping.Where(x => ids.Contains(x.PropertyId)).ToList(); foreach (var item in list) { var pid = item.Key.PropertyTechnologyId.Split(','); var codes = piplist.Where(x => pid.Contains(x.PropertyId)).ToList(); selectList.Add(new SelectPropertyTechnology() { Id = item.Key.SubInspectId, Code = $"管道:{string.Join(",", codes.ConvertAll(x => x.PipingCode))}" }); } } else { var techlist = Funs.DB.PreRun_TechnologySysPiping.Where(x => ids.Contains(x.TechnologyId)).ToList(); foreach (var item in list) { var pid = item.Key.PropertyTechnologyId.Split(','); var codes = techlist.Where(x => pid.Contains(x.TechnologyId)).ToList(); selectList.Add(new SelectPropertyTechnology() { Id = item.Key.SubInspectId, Code = $"设备:{string.Join(",", codes.ConvertAll(x => x.TagNumber))}" }); } } if (selectList.Count > 0) { ddlSubInspectId.DataTextField = "Code"; ddlSubInspectId.DataValueField = "Id"; ddlSubInspectId.DataSource = selectList; ddlSubInspectId.DataBind(); } else { ddlSubInspectId.Items.Insert(0, new ListItem("==无数据==", "")); } } else { ddlSubInspectId.DataSource = null; ddlSubInspectId.DataBind(); ddlSubInspectId.Items.Insert(0, new ListItem("==无数据==", "")); ddlTermItemId.DataSource = null; ddlTermItemId.DataBind(); ddlTermItemId.Items.Insert(0, new ListItem("==无数据==", "")); } } } /// /// 管道/设备 /// protected void ddlSubInspectId_SelectedIndexChanged(object sender, EventArgs e) { if (string.IsNullOrWhiteSpace(ddlSubInspectId.SelectedValue)) return; //var TermItemIds = Funs.DB.PreRun_InspectTailTerm.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.TailTermId != this.TailTermId).Select(a => a.TermItemId).ToList(); //var list = new List(); //if (TermItemIds.Count > 0) //{ // list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.InspectionResults == 0 && x.SubInspectId == ddlSubInspectId.SelectedValue && !TermItemIds.Contains(x.TermItemId)).ToList(); //} //else //{ // list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.InspectionResults == 0 && x.SubInspectId == ddlSubInspectId.SelectedValue).ToList(); //} var list = Funs.DB.PreRun_SubInspectTermItem.Where(x => (x.InspectionResults == 0 && x.SubInspectId == ddlSubInspectId.SelectedValue) || x.TermItemId == this.TermItemId).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("==无数据==", "")); } } /// /// 检查项 /// protected void ddlTermItemId_SelectedIndexChanged(object sender, EventArgs e) { var itemTerm = Funs.DB.PreRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == ddlTermItemId.SelectedValue); if (itemTerm != null) { //提出人 var inspectModel = Funs.DB.Sys_User.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"); } } /// /// 关闭 /// protected void WindowAtt_Close(object sender, WindowCloseEventArgs e) { } /// /// 管道/设备 /// public class SelectPropertyTechnology { /// /// 主键 /// public string Id { get; set; } /// /// 编码 /// public string Code { get; set; } /// /// 工作包主键 /// public string WorkPackId { get; set; } /// /// 子系统主键 /// public string SubSystemId { get; set; } } #endregion } }