using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Reflection; using System.Web; using BLL; using FineUIPro.Web.HSSE.Solution; using Model; using Newtonsoft.Json.Linq; using AspNet = System.Web.UI.WebControls; namespace FineUIPro.Web.CQMS.Solution { public partial class EditConstructSolution : PageBase { #region 定义变量 /// /// 方案审查主键 /// public string ConstructSolutionId { get => (string)ViewState["ConstructSolutionId"]; set => ViewState["ConstructSolutionId"] = value; } /// /// 是否第二次并且不同意的时候 /// public bool isSendTrue { get => (bool)ViewState["isSendTrue"]; set => ViewState["isSendTrue"] = value; } #endregion private static List complianceObligationsCs = new List(); public int ContactImg { get => Convert.ToInt32(ViewState["ContactImg"]); set => ViewState["ContactImg"] = value; } private string[] GetUserNames(string Ids) { string[] arr = Ids.Split(','); var data = Funs.DB.Sys_User.Where(t => arr.Contains(t.UserId)).Select(t => t.UserName).ToList(); if (data.Count > 0) return data.ToArray(); return null; } protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { isSendTrue = false; complianceObligationsCs.Clear(); InitDropDownList(); //加载下拉框 //加载一级审核人员 GetCheckManBindGrid1(); //加载二级审批人员 GetCheckManBindGrid2(); //GetCheckManBindGrid3(); GetCheckManBindGrid4(); //BindZYRole(); //BindAQRole(); //BindSGRole(); ContactImg = 0; txtCompileDate.Text = string.Format("{0:yyyy-MM-dd}", DateTime.Now); ConstructSolutionId = Request.Params["constructSolutionId"]; txtProjectName.Text = ProjectService.GetProjectByProjectId(CurrUser.LoginProjectId).ProjectName; if (!string.IsNullOrWhiteSpace(ConstructSolutionId)) { bindApprove(); #region 初始化表单 HFConstructSolutionId.Text = ConstructSolutionId; var constructSolution = CQMSConstructSolutionService.GetConstructSolutionByConstructSolutionId(ConstructSolutionId); txtCode.Text = constructSolution.Code; if (!string.IsNullOrEmpty(constructSolution.UnitId)) { drpUnit.SelectedValue = constructSolution.UnitId; } if (!string.IsNullOrEmpty(constructSolution.SolutionType)) { drpModelType.SelectedValue = constructSolution.SolutionType; } if (!string.IsNullOrEmpty(constructSolution.SpecialSchemeTypeId) && !string.IsNullOrEmpty(constructSolution.SolutionType)) { drpSpecialType.SelectedValue = constructSolution.SpecialSchemeTypeId; } if (constructSolution.CompileDate != null) { txtCompileDate.Text = string.Format("{0:yyyy-MM-dd}", constructSolution.CompileDate); } if (!string.IsNullOrEmpty(constructSolution.UnitWorkIds) && constructSolution.UnitWorkIds.Length > 0) { txtUnitWork.Values = constructSolution.UnitWorkIds.Split(','); } if (!string.IsNullOrEmpty(constructSolution.CNProfessionalCodes) && constructSolution.CNProfessionalCodes.Length > 0) { txtCNProfessional.Values = constructSolution.CNProfessionalCodes.Split(','); } if (constructSolution.Edition != null) { txtEdition.Text = constructSolution.Edition.ToString(); } txtSolutionName.Text = constructSolution.SolutionName; txtDocContent.Text = HttpUtility.HtmlDecode(constructSolution.Content); #endregion #region 检查树节点 var zyUserIds = CQMSConstructSolutionApproveService.GetUserIdsApprovesBySignType(ConstructSolutionId, "Yi"); if (zyUserIds.Count > 0) { var zyUserIdsStr = string.Join(",", zyUserIds); drpzyUserIds.Values = zyUserIdsStr.Split(','); drpzyUserIds.Texts = GetUserNames(zyUserIdsStr); //SetCheck(trOne, zyUserIds); } var aqUserIds = CQMSConstructSolutionApproveService.GetUserIdsApprovesBySignType(ConstructSolutionId, "Er"); if (aqUserIds.Count > 0) { var aqUserIdsStr = string.Join(",", aqUserIds); drpaqUserIds.Values = aqUserIdsStr.Split(','); drpaqUserIds.Texts = GetUserNames(aqUserIdsStr); //SetCheck(trThree, aqUserIds); } var sgUserIds = CQMSConstructSolutionApproveService.GetUserIdsApprovesBySignType(ConstructSolutionId, "SG"); if (sgUserIds.Count > 0) { var sgUserIdsStr = string.Join(",", sgUserIds); //drpsgUserIds.Values = sgUserIdsStr.Split(','); //drpsgUserIds.Texts = GetUserNames(sgUserIdsStr); //SetCheck(trFive, sgUserIds); } if (!string.IsNullOrEmpty(constructSolution.CsUsers)) { drpCsUsers.Values = constructSolution.CsUsers.Split(','); drpCsUsers.Texts = GetUserNames(constructSolution.CsUsers); } #endregion if (constructSolution.State == Const.CQMSConstructSolution_ReCompile) { txtProjectName.Enabled = false; txtCode.Enabled = false; drpUnit.Enabled = false; drpModelType.Enabled = false; drpSpecialType.Enabled = false; txtCompileDate.Enabled = false; txtSolutionName.Enabled = false; txtCNProfessional.Enabled = false; txtUnitWork.Enabled = false; //ContactImg = -2; //Panel2.Enabled = false; //Panel2.Hidden = true; btnSave.Hidden = true; //txtDocContent.Readonly = true; drpzyUserIds.Enabled = false; drpaqUserIds.Enabled = false; //drpsgUserIds.Enabled = false; drpCsUsers.Enabled = false; txtEdition.Enabled = false; agree.Hidden = true; optio.Hidden = true; #region 重报 zyUserIds = CQMSConstructSolutionApproveService.GetUserIdsApprovesBySignTypeNew(ConstructSolutionId, "Yi"); if (zyUserIds.Count > 0) { var zyUserIdsStr = string.Join(",", zyUserIds); drpzyUserIds.Values = zyUserIdsStr.Split(','); drpzyUserIds.Texts = GetUserNames(zyUserIdsStr); //SetCheck(trOne, zyUserIds); } aqUserIds = CQMSConstructSolutionApproveService.GetUserIdsApprovesBySignTypeNew(ConstructSolutionId, "Er"); if (aqUserIds.Count > 0) { var aqUserIdsStr = string.Join(",", aqUserIds); drpaqUserIds.Values = aqUserIdsStr.Split(','); drpaqUserIds.Texts = GetUserNames(aqUserIdsStr); //SetCheck(trThree, aqUserIds); } sgUserIds = CQMSConstructSolutionApproveService.GetUserIdsApprovesBySignTypeNew(ConstructSolutionId, "SG"); if (sgUserIds.Count > 0) { var sgUserIdsStr = string.Join(",", sgUserIds); //drpsgUserIds.Values = sgUserIdsStr.Split(','); //drpsgUserIds.Texts = GetUserNames(sgUserIdsStr); //SetCheck(trFive, sgUserIds); } #endregion //重报的情况下 //加载 complianceObligationsCs = Funs.DB.Solution_CQMSConstructSolutionApprove_Item.Where(x => x.ConstructSolutionId == ConstructSolutionId) .OrderBy(x => x.SortId).OrderBy(x => x.Proposer).ToList(); if (complianceObligationsCs.Count > 0) { gvOperateComplianceObligations.DataSource = complianceObligationsCs; gvOperateComplianceObligations.DataBind(); } options.Hidden = false; options1.Hidden = false; btnNew.Hidden = true; gvOperateComplianceObligations.AllColumns[0].Hidden = true; gvOperateComplianceObligations.AllColumns[6].Hidden = true; gvOperateComplianceObligations.AllColumns[7].Hidden = true; } if (constructSolution.State == Const.CQMSConstructSolution_Audit || constructSolution.State == Const.CQMSConstructSolution_Audit1) { plApprove2.Hidden = true; txtProjectName.Enabled = false; txtCode.Enabled = false; drpUnit.Enabled = false; drpModelType.Enabled = false; drpSpecialType.Enabled = false; txtCompileDate.Enabled = false; txtSolutionName.Enabled = false; txtCNProfessional.Enabled = false; txtUnitWork.Enabled = false; ContactImg = -2; //Panel2.Enabled = false; //Panel2.Hidden = true; btnSave.Hidden=true; txtDocContent.Readonly=true; drpzyUserIds.Enabled = false; drpaqUserIds.Enabled = false; //drpsgUserIds.Enabled = false; drpCsUsers.Enabled = false; txtEdition.Enabled = false; //1级审批 二级审批,如果填写过Solution_CQMSConstructSolutionApprove_Item的情况 则显示 complianceObligationsCs = Funs.DB.Solution_CQMSConstructSolutionApprove_Item.Where(x => x.ConstructSolutionId == ConstructSolutionId && x.Proposer == CurrUser.UserId).OrderBy(x => x.SortId).ToList(); if (complianceObligationsCs.Count > 0) { isSendTrue = true; options.Hidden = false; options1.Hidden = false; gvOperateComplianceObligations.DataSource = complianceObligationsCs; gvOperateComplianceObligations.DataBind(); gvOperateComplianceObligations.AllColumns[4].Hidden = true; } } ////提交版本人多次修改 //if (constructSolution.CompileMan.Equals(CurrUser.UserId)) //{ // txtProjectName.Enabled = true; // txtCode.Enabled = true; // drpUnit.Enabled = true; // drpModelType.Enabled = true; // drpSpecialType.Enabled = true; // txtCompileDate.Enabled = true; // txtSolutionName.Enabled = true; // txtCNProfessional.Enabled = true; // txtUnitWork.Enabled = true; // ContactImg = 0; // Panel2.Enabled = true; // rblIsAgree.Hidden = true; // rblIsAgree.Required = false; // options.Hidden = true; // txtOptions.Required = false; // optio.Hidden = true; //} // if (drpModelType.SelectedItem.Text == "施工组织设计") drpSpecialType.Enabled = false; } else { agree.Hidden = true; txtEdition.Text = "0"; options.Hidden = true; options1.Hidden = true; optio.Hidden = true; plApprove2.Hidden = true; txtCode.Text = SQLHelper.RunProcNewId2("SpGetNewCode3ByProjectId", "dbo.Solution_CQMSConstructSolution", "Code", CurrUser.LoginProjectId); } AddAttachTab(); } } /// /// 向tab增加 /// private void AddAttachTab() { if (string.IsNullOrEmpty(HFConstructSolutionId.Text)) //新增记录 HFConstructSolutionId.Text = SQLHelper.GetNewID(typeof(Solution_CQMSConstructSolution)); PageContext.RegisterStartupScript(TabStrip1.GetAddTabReference("dynamic_tab2", string.Format( "../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/Solution&menuId={2}", ContactImg, HFConstructSolutionId.Text, Const.CQMSConstructSolutionMenuId), "附件", IconHelper.GetIconUrl(Icon.Attach), false)); // PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/DocManage&menuId={1}", hdDocId.Text, Const.DocManageMenuId))); } private void InitDropDownList() { var unitWork = UnitWorkService.GetUnitWorkLists(CurrUser.LoginProjectId); var unitWorks = from x in unitWork select new { x.UnitWorkId, UnitWorkName = x.UnitWorkCode + "-" + x.UnitWorkName + UnitWorkService.GetProjectType(x.ProjectType) }; gvUnitWork.DataSource = unitWorks; gvUnitWork.DataBind(); var gvCNProfessional = CNProfessionalService.GetList(); gvCNPro.DataSource = gvCNProfessional; gvCNPro.DataBind(); SolutionTempleteTypeService.InitSolutionTempleteDropDownList(drpModelType, false); SpecialSchemeTypeService.InitSpecialSchemeTypeDropDownList(drpSpecialType, false); UnitService.InitUnitByProjectIdUnitTypeDropDownList(drpUnit, CurrUser.LoginProjectId, Const.ProjectUnitType_2, false); } /// /// 审批列表 /// private void bindApprove() { var list = CQMSConstructSolutionApproveService.getListData(ConstructSolutionId); gvApprove.DataSource = list; gvApprove.DataBind(); } public string man(object man) { var appman = string.Empty; if (UserService.GetUserByUserId(man.ToString()) != null) appman = UserService.GetUserByUserId(man.ToString()).UserName; return appman; } private void Save(string saveType) { var constructSolution = new Solution_CQMSConstructSolution(); if (!string.IsNullOrEmpty(ConstructSolutionId)) { constructSolution = CQMSConstructSolutionService.GetConstructSolutionByConstructSolutionId(ConstructSolutionId); } constructSolution.Code = txtCode.Text.Trim(); constructSolution.ProjectId = CurrUser.LoginProjectId; if (drpUnit.SelectedValue != "0") { constructSolution.UnitId = drpUnit.SelectedValue; } if (drpModelType.SelectedValue != "0") { constructSolution.SolutionType = drpModelType.SelectedValue; } if (drpSpecialType.SelectedValue != "0") { constructSolution.SpecialSchemeTypeId = drpSpecialType.SelectedValue; } constructSolution.SolutionName = txtSolutionName.Text.Trim(); if (!string.IsNullOrEmpty(txtCompileDate.Text.Trim())) { constructSolution.CompileDate = Convert.ToDateTime(txtCompileDate.Text.Trim()); } if (txtUnitWork.Values.Length > 0) { constructSolution.UnitWorkIds = string.Join(",", txtUnitWork.Values); } if (txtCNProfessional.Values.Length > 0) { constructSolution.CNProfessionalCodes = string.Join(",", txtCNProfessional.Values); } //抄送人 string sendUserIds = string.Empty; if (!string.IsNullOrEmpty(drpCsUsers.Value)) { sendUserIds = string.Join(",", drpCsUsers.Values); } constructSolution.CsUsers = sendUserIds; constructSolution.Edition = Convert.ToInt32(txtEdition.Text); constructSolution.ConstructSolutionId = HFConstructSolutionId.Text; constructSolution.Content = txtDocContent.Text.Trim(); if (!string.IsNullOrEmpty(ConstructSolutionId)) { CQMSConstructSolutionService.UpdateConstructSolution(constructSolution); if(string.IsNullOrEmpty(constructSolution.State)) { constructSolution.State = Const.CQMSConstructSolution_Compile; } LogService.AddSys_Log(CurrUser, constructSolution.Code, ConstructSolutionId, Const.CQMSConstructSolutionMenuId, "修改施工方案"); } else { constructSolution.CompileMan = CurrUser.UserId; constructSolution.State = Const.CQMSConstructSolution_Compile; CQMSConstructSolutionService.AddConstructSolution(constructSolution); LogService.AddSys_Log(CurrUser, constructSolution.Code, ConstructSolutionId, Const.CQMSConstructSolutionMenuId, "添加施工方案"); } if (constructSolution.State== Const. CQMSConstructSolution_Compile && saveType == "submit") { countersign(constructSolution.ConstructSolutionId); constructSolution.State = Const.CQMSConstructSolution_Audit; CQMSConstructSolutionService.UpdateConstructSolution(constructSolution); var approve = new Solution_CQMSConstructSolutionApprove(); approve.ConstructSolutionId = constructSolution.ConstructSolutionId; approve.ApproveDate = DateTime.Now; approve.ApproveMan = CurrUser.UserId; approve.ApproveType = Const.CQMSConstructSolution_Compile; approve.Edition = Convert.ToInt32(txtEdition.Text); CQMSConstructSolutionApproveService.AddConstructSolutionApprove(approve); } else if (constructSolution.State == Const.CQMSConstructSolution_ReCompile && saveType == "submit") { countersign(constructSolution.ConstructSolutionId); constructSolution.State = Const.CQMSConstructSolution_Audit; CQMSConstructSolutionService.UpdateConstructSolution(constructSolution); var approve = Funs.DB.Solution_CQMSConstructSolutionApprove.Where(x => x.ApproveDate == null && x.ConstructSolutionId == ConstructSolutionId && x.ApproveMan == CurrUser.UserId && x.ApproveType=="0").First(); if (approve!=null) { approve.ApproveDate = DateTime.Now; CQMSConstructSolutionApproveService.UpdateConstructSolutionApprove(approve); TbrOperateComplianceObligationsCSort(); } } //一级审核 else if (constructSolution.State == Const.CQMSConstructSolution_Audit && saveType == "submit") { UpdateApprove("Yi"); } //二级审批 else if (constructSolution.State == Const.CQMSConstructSolution_Audit1 && saveType == "submit") { UpdateApprove("Er"); } } /// /// 修改审批意见 /// private void UpdateApprove(string signType) { var state = ""; if (signType == "Yi") { state = "2"; } else { state = "3"; } var approveList = CQMSConstructSolutionApproveService.GetThisApproveByConstructSolutionId(ConstructSolutionId, state); if (approveList.Any(x => x.ApproveMan.IndexOf(CurrUser.UserId) > -1)) { var approve = approveList.FirstOrDefault(x => x.ApproveMan == CurrUser.UserId); if (approve.ApproveMan == this.CurrUser.UserId) { approve.ApproveDate = DateTime.Now; approve.IsAgree = Convert.ToBoolean(rblIsAgree.SelectedValue); //approve.ApproveIdea = txtOptions.Text.Trim(); approve.Edition = Convert.ToInt32(txtEdition.Text); CQMSConstructSolutionApproveService.UpdateConstructSolutionApprove(approve); //如果第二次审批,并且有不同意的情况下,进行修改 if (isSendTrue) { SprOperateComplianceObligationsCSort(); } //不同意的情况下 审批人增加列表 if (Convert.ToBoolean(rblIsAgree.SelectedValue) == false) { if (isSendTrue) { SprOperateComplianceObligationsCSort(); } else { OperateComplianceObligationsCSort(); } } CheckIsAllAgree(signType); } } } /// /// 判断是否全部同意 /// private void CheckIsAllAgree(string signType) { var edtion = Convert.ToInt32(txtEdition.Text); var constructSolution = CQMSConstructSolutionService.GetConstructSolutionByConstructSolutionId(ConstructSolutionId); //var needApporveCount = allApproves.Where(x => x.ApproveDate == null).Count(); //if (needApporveCount>0) return; //判断是否最后一个审批 //一级审核 if (signType=="Yi") { var allApproves = CQMSConstructSolutionApproveService.GetHandleConstructSolutionApprovesByConstructSolutionId(ConstructSolutionId, constructSolution.Edition == null ? 0 : Convert.ToInt32(constructSolution.Edition)); var count = allApproves.Where(p => p.SignType == "Yi").Count(); //查询一级所有数量 var ycount = allApproves.Where(p =>p.ApproveDate != null && p.IsAgree != null && Convert.ToBoolean(p.IsAgree) && p.SignType=="Yi").Count(); //查询一级审核同意的 var fcount = allApproves.Where(p =>p.ApproveDate != null && p.IsAgree != null && !Convert.ToBoolean(p.IsAgree) && p.SignType == "Yi").Count(); //查询一级审核不同意的 //如果当前已经审核完 if (count == (ycount + fcount)) { //全部同意 if (ycount == count) { //走到下一步,修改施工方案状态为二级审批 var cons = CQMSConstructSolutionService.GetConstructSolutionByConstructSolutionId(ConstructSolutionId); cons.State = Const.CQMSConstructSolution_Audit1; CQMSConstructSolutionService.UpdateConstructSolution(cons); } else { //有不同意的直接打回 var cons = CQMSConstructSolutionService.GetConstructSolutionByConstructSolutionId( ConstructSolutionId); var reApprove = new Solution_CQMSConstructSolutionApprove(); reApprove.ConstructSolutionId = constructSolution.ConstructSolutionId; reApprove.ApproveMan = cons.CompileMan; reApprove.ApproveType = Const.CQMSConstructSolution_ReCompile; edtion++; reApprove.Edition = edtion; CQMSConstructSolutionApproveService.AddConstructSolutionApprove(reApprove); cons.State = Const.CQMSConstructSolution_ReCompile; cons.CompileDate = DateTime.Now; cons.Edition = edtion; constructSolution.State = Const.CQMSConstructSolution_ReCompile; CQMSConstructSolutionService.UpdateConstructSolution(cons); LogService.AddSys_Log(CurrUser, constructSolution.Code, ConstructSolutionId, Const.CQMSConstructSolutionMenuId, "修改施工方案"); } } else { //没有审核完就跳出 return; } } else if (signType=="Er") { var allApproves = CQMSConstructSolutionApproveService.GetHandleConstructSolutionApprovesByConstructSolutionId2(ConstructSolutionId, constructSolution.Edition == null ? 0 : Convert.ToInt32(constructSolution.Edition)); var count = allApproves.Where(p => p.SignType == "Er").Count(); //查询二级所有数量 var ycount = allApproves.Where(p => p.ApproveDate != null && p.IsAgree != null && Convert.ToBoolean(p.IsAgree) && p.SignType == "Er").Count(); //查询二级审核同意的 var fcount = allApproves.Where(p => p.ApproveDate != null && p.IsAgree != null && !Convert.ToBoolean(p.IsAgree) && p.SignType == "Er").Count(); //查询二级审核不同意的 // 如果当前已经审核完 if (count == (ycount + fcount)) { //全部同意 if (ycount == count) { //完成 var cons = CQMSConstructSolutionService.GetConstructSolutionByConstructSolutionId(ConstructSolutionId); cons.State = Const.CQMSConstructSolution_Complete; cons.CompileDate = DateTime.Now; CQMSConstructSolutionService.UpdateConstructSolution(cons); } else { //有不同意的直接打回 var cons = CQMSConstructSolutionService.GetConstructSolutionByConstructSolutionId( ConstructSolutionId); var reApprove = new Solution_CQMSConstructSolutionApprove(); reApprove.ConstructSolutionId = constructSolution.ConstructSolutionId; reApprove.ApproveMan = cons.CompileMan; reApprove.ApproveType = Const.CQMSConstructSolution_ReCompile; edtion++; reApprove.Edition = edtion; CQMSConstructSolutionApproveService.AddConstructSolutionApprove(reApprove); cons.State = Const.CQMSConstructSolution_ReCompile; cons.CompileDate = DateTime.Now; cons.Edition = edtion; constructSolution.State = Const.CQMSConstructSolution_ReCompile; CQMSConstructSolutionService.UpdateConstructSolution(cons); LogService.AddSys_Log(CurrUser, constructSolution.Code, ConstructSolutionId, Const.CQMSConstructSolutionMenuId, "修改施工方案"); } } else { //没有审核完就跳出 return; } } //if (count == allApproves.Count)//全部同意 //{ //} ////有不同意意见,打回重新编制 //if (fcount > 0) //{ //} } /// /// 保存验证 /// /// /// public void validate(string buttonName, string tip) { if (CommonService.GetAllButtonPowerList(CurrUser.LoginProjectId, CurrUser.UserId, Const.CQMSConstructSolutionMenuId, buttonName)) { var err = string.Empty; if (!AttachFileService.Getfile(HFConstructSolutionId.Text, Const.CQMSConstructSolutionMenuId)) err += "请上传附件,"; var list = new List(); //list.Add(trOne); //list.Add(trThree); //list.Add(trFive); var res = false; foreach (var item in list) if (nodesCheckd(item)) { res = true; break; } if (!res) err += "请选择总包会签人员,"; if (!string.IsNullOrWhiteSpace(err)) { err = err.Substring(0, err.LastIndexOf(",")); err += "!"; } if (!string.IsNullOrWhiteSpace(err)) { Alert.ShowInTop(err, MessageBoxIcon.Warning); return; } if (!string.IsNullOrWhiteSpace(ConstructSolutionId)) { //更新时操作 if (tip == "save") EditConstructSol("save"); else EditConstructSol("submit"); } else { if (tip == "save") SaveCQMSConstructSolution("save"); else SaveCQMSConstructSolution("submit"); //添加时操作 } PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); if (tip == "save") { tip = "保存成功!"; } else { tip = "提交成功!"; CQMSConstructSolutionApproveService.PushMessageToNextMan(ConstructSolutionId); } Alert.ShowInTop(tip, MessageBoxIcon.Success); } else { Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); } } #region 添加时候的保存 /// /// 保存方案审查 /// /// 保存类型 private void SaveCQMSConstructSolution(string saveType) { var constructSolution = new Solution_CQMSConstructSolution(); constructSolution.Code = txtCode.Text.Trim(); constructSolution.ProjectId = CurrUser.LoginProjectId; if (drpUnit.SelectedValue != "0") { constructSolution.UnitId = drpUnit.SelectedValue; } if (drpModelType.SelectedValue != "0") { constructSolution.SolutionType = drpModelType.SelectedValue; } if (drpSpecialType.SelectedValue != "0") { constructSolution.SpecialSchemeTypeId = drpSpecialType.SelectedValue; } constructSolution.SolutionName = txtSolutionName.Text.Trim(); if (!string.IsNullOrEmpty(txtCompileDate.Text.Trim())) { constructSolution.CompileDate = Convert.ToDateTime(txtCompileDate.Text.Trim()); } if (txtUnitWork.Values.Length > 0) { constructSolution.UnitWorkIds = string.Join(",", txtUnitWork.Values); } if (txtCNProfessional.Values.Length > 0) { constructSolution.CNProfessionalCodes = string.Join(",", txtCNProfessional.Values); } if (saveType == "submit") { constructSolution.State = Const.CQMSConstructSolution_Audit; } else { constructSolution.State = Const.CQMSConstructSolution_Compile; } constructSolution.CompileMan = CurrUser.UserId; constructSolution.Edition = Convert.ToInt32(txtEdition.Text); constructSolution.ConstructSolutionId = HFConstructSolutionId.Text; constructSolution.Content = txtDocContent.Text.Trim(); if (!string.IsNullOrEmpty(ConstructSolutionId)) { CQMSConstructSolutionService.UpdateConstructSolution(constructSolution); } else { CQMSConstructSolutionService.AddConstructSolution(constructSolution); } if (saveType == "submit") { var approve1 = new Solution_CQMSConstructSolutionApprove(); approve1.ConstructSolutionId = constructSolution.ConstructSolutionId; approve1.ApproveDate = DateTime.Now; approve1.ApproveMan = CurrUser.UserId; approve1.ApproveType = Const.CQMSConstructSolution_Compile; approve1.Edition = Convert.ToInt32(txtEdition.Text); CQMSConstructSolutionApproveService.AddConstructSolutionApprove(approve1); } LogService.AddSys_Log(CurrUser, constructSolution.Code, ConstructSolutionId, Const.CQMSConstructSolutionMenuId, "添加施工方案"); //} //提交 if (saveType == "submit") { countersign(constructSolution.ConstructSolutionId); } LogService.AddSys_Log(CurrUser, constructSolution.Code, ConstructSolutionId, Const.CQMSConstructSolutionMenuId, "编制方案审查"); } #endregion /// /// 删除未选择的代办记录 /// /// private void delSolutionApprove(string constructSolutionId, string man, string signType) { var count = CQMSConstructSolutionApproveService.getListSolutionApproveCount(constructSolutionId, man, signType); if (count > 0) CQMSConstructSolutionApproveService.delSolutionApprove(constructSolutionId, man); } /// /// 会签 /// private void countersign(string constructSolutionId) { var solution = CQMSConstructSolutionService.GetConstructSolutionByConstructSolutionId(ConstructSolutionId); //一级审核人员 foreach (var item in drpzyUserIds.Values) { var approve = new Solution_CQMSConstructSolutionApprove(); approve.ConstructSolutionId = constructSolutionId; approve.ApproveMan = item; approve.ApproveType = Const.CQMSConstructSolution_Audit; approve.SignType = "Yi"; var edtion = Convert.ToInt32(txtEdition.Text); //if (solution != null) edtion++; approve.Edition = edtion; approve.Order = 2; //delSolutionApprove(constructSolutionId, item, "Yi"); CQMSConstructSolutionApproveService.AddConstructSolutionApprove(approve); } //二级审批人员 foreach (var item in drpaqUserIds.Values) { var approve = new Solution_CQMSConstructSolutionApprove(); approve.ConstructSolutionId = constructSolutionId; approve.ApproveMan = item; approve.ApproveType = Const.CQMSConstructSolution_Audit1; approve.SignType = "Er"; var edtion = Convert.ToInt32(txtEdition.Text); // if (solution != null) edtion++; approve.Edition = edtion; approve.Order = 3; //delSolutionApprove(constructSolutionId, item, "Er"); CQMSConstructSolutionApproveService.AddConstructSolutionApprove(approve); } //foreach (var item in drpsgUserIds.Values) //{ // var approve = new Solution_CQMSConstructSolutionApprove(); // approve.ConstructSolutionId = constructSolutionId; // approve.ApproveMan = item; // approve.ApproveType = Const.CQMSConstructSolution_Audit; // approve.SignType = "SG"; // var edtion = Convert.ToInt32(txtEdition.Text); // //if (solution != null) edtion++; // approve.Edition = edtion; // approve.Order = 3; // delSolutionApprove(constructSolutionId, item, "SG"); // CQMSConstructSolutionApproveService.AddConstructSolutionApprove(approve); //} //if (trOne.Nodes[0].Nodes.Count > 0) // foreach (var tn in trOne.Nodes[0].Nodes) // if (tn.Checked) // { // var approve = new Solution_CQMSConstructSolutionApprove(); // approve.ConstructSolutionId = constructSolutionId; // approve.ApproveMan = tn.NodeID; // approve.ApproveType = Const.CQMSConstructSolution_Audit; // approve.SignType = "ZY"; // var edtion = Convert.ToInt32(txtEdition.Text); // //if (solution != null) edtion++; // approve.Edition = edtion; // delSolutionApprove(constructSolutionId, tn.NodeID, "ZY"); // CQMSConstructSolutionApproveService.AddConstructSolutionApprove(approve); // //APICommonService.SendSubscribeMessage(approve.ApproveMan, "施工方案待办理", this.CurrUser.UserName, string.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now)); // } // else // { // delSolutionApprove(constructSolutionId, tn.NodeID, "ZY"); // } //if (trThree.Nodes[0].Nodes.Count > 0) // foreach (var tn in trThree.Nodes[0].Nodes) // if (tn.Checked) // { // var approve = new Solution_CQMSConstructSolutionApprove(); // approve.ConstructSolutionId = constructSolutionId; // approve.ApproveMan = tn.NodeID; // approve.ApproveType = Const.CQMSConstructSolution_Audit; // approve.SignType = "AQ"; // var edtion = Convert.ToInt32(txtEdition.Text); // // if (solution != null) edtion++; // approve.Edition = edtion; // delSolutionApprove(constructSolutionId, tn.NodeID, "AQ"); // CQMSConstructSolutionApproveService.AddConstructSolutionApprove(approve); // //APICommonService.SendSubscribeMessage(approve.ApproveMan, "施工方案待办理", this.CurrUser.UserName, string.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now)); // } // else // { // delSolutionApprove(constructSolutionId, tn.NodeID, "AQ"); // } //if (trFive.Nodes[0].Nodes.Count > 0) // foreach (var tn in trFive.Nodes[0].Nodes) // if (tn.Checked) // { // var approve = new Solution_CQMSConstructSolutionApprove(); // approve.ConstructSolutionId = constructSolutionId; // approve.ApproveMan = tn.NodeID; // approve.ApproveType = Const.CQMSConstructSolution_Audit; // approve.SignType = "SG"; // var edtion = Convert.ToInt32(txtEdition.Text); // // if (solution != null) edtion++; // approve.Edition = edtion; // delSolutionApprove(constructSolutionId, tn.NodeID, "SG"); // CQMSConstructSolutionApproveService.AddConstructSolutionApprove(approve); // // APICommonService.SendSubscribeMessage(approve.ApproveMan, "施工方案待办理", this.CurrUser.UserName, string.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now)); // } // else // { // delSolutionApprove(constructSolutionId, tn.NodeID, "SG"); // } } //protected void imgBtnFile_Click(object sender, EventArgs e) //{ // if (string.IsNullOrEmpty(HFConstructSolutionId.Text)) //新增记录 // HFConstructSolutionId.Text = SQLHelper.GetNewID(typeof(Solution_CQMSConstructSolution)); // PageContext.RegisterStartupScript(WindowAtt.GetShowReference( // string.Format( // "../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/Solution&menuId={2}", // ContactImg, HFConstructSolutionId.Text, Const.CQMSConstructSolutionMenuId))); //} protected void btnapprove_Click(object sender, EventArgs e) { //HFConstructSolutionId.Text var approve = CQMSConstructSolutionApproveService.GetConstructSolutionApproveByApproveMan(HFConstructSolutionId.Text, CurrUser.UserId); if (approve != null) { var approveId = approve.ConstructSolutionApproveId; PageContext.RegisterStartupScript(WindowAtt.GetShowReference( string.Format( "../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/Solution&menuId={2}", 0, approveId, Const.CQMSConstructSolutionMenuId))); } } protected void gvApprove_RowCommand(object sender, GridCommandEventArgs e) { var keys = gvApprove.DataKeys[e.RowIndex]; var fileId = string.Empty; if (keys == null) return; fileId = keys[0].ToString(); PageContext.RegisterStartupScript(WindowAtt.GetShowReference( string.Format( "../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/Solution&menuId={2}", -1, fileId, Const.CQMSConstructSolutionMenuId))); } /// /// 根据施工方案加载专项施工方案 /// /// /// protected void drpModelType_SelectedIndexChanged(object sender, EventArgs e) { if (drpModelType.SelectedValue != Const._Null) { if (drpModelType.SelectedItem.Text == "施工组织设计") { drpSpecialType.Enabled = false; drpSpecialType.SelectedValue = null; drpSpecialType.Required = false; } else { drpSpecialType.Enabled = true; drpSpecialType.Required = true; } } } #region 保存/提交 protected void btnSave_Click(object sender, EventArgs e) { //validate(Const.BtnSave, "save"); if (CommonService.GetAllButtonPowerList(CurrUser.LoginProjectId, CurrUser.UserId, Const.CQMSConstructSolutionMenuId, Const.BtnSave)) { // SaveCQMSConstructSolution("save"); Save("save"); PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); Alert.ShowInTop("保存成功!", MessageBoxIcon.Success); } else { Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); } } protected void btnSubmit_Click(object sender, EventArgs e) { // validate(Const.BtnSubmit, "submmit"); if (!CommonService.GetAllButtonPowerList(CurrUser.LoginProjectId, CurrUser.UserId, Const.CQMSConstructSolutionMenuId, Const.BtnSubmit)) { Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); return; } var err = string.Empty; //if (!AttachFileService.Getfile(HFConstructSolutionId.Text, Const.CQMSConstructSolutionMenuId)) // err += "请上传附件,"; //var list = new List(); //list.Add(trOne); //list.Add(trThree); //list.Add(trFive); //var res = false; //foreach (var item in list) // if (nodesCheckd(item)) // { // res = true; // break; // } //if (!res) err += "请选择总包会签人员,"; if (drpzyUserIds.Values.Length<2) { err += "一级审核人员必须选择施工工程师和HSE工程师,当前小于2人,"; } if (drpaqUserIds.Values.Length < 3) { err += "一二级审批人员必须选择施工经理、HSE经理、质量经理,当前小于3人,"; } //if (string.IsNullOrEmpty(drpzyUserIds.Value)) //{ // err += "请选择总包会签专业工程师,"; //} //if (string.IsNullOrEmpty(drpaqUserIds.Value)) //{ // err += "请选择总包会签HSE组,"; //} //if (string.IsNullOrEmpty(drpsgUserIds.Value)) //{ // err += "请选择总包会签施工经理,"; //} if (!string.IsNullOrWhiteSpace(err)) { err = err.Substring(0, err.LastIndexOf(",")); err += "!"; } if (!string.IsNullOrEmpty(ConstructSolutionId)) { var constructSolution = CQMSConstructSolutionService.GetConstructSolutionByConstructSolutionId(ConstructSolutionId); if (constructSolution.State == Const.CQMSConstructSolution_Audit && Convert.ToBoolean(rblIsAgree.SelectedValue)==false) { if (complianceObligationsCs.Count==0) { err += "不同意的情况下请添加修改意见,"; } } } if (!string.IsNullOrWhiteSpace(err)) { Alert.ShowInTop(err, MessageBoxIcon.Warning); return; } Save("submit"); CQMSConstructSolutionApproveService.PushMessageToNextMan(ConstructSolutionId); PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); Alert.ShowInTop("提交成功!", MessageBoxIcon.Success); } /// /// 编辑时候保存 /// private void EditConstructSol(string saveType) { var constructSolution = new Solution_CQMSConstructSolution(); constructSolution.Code = txtCode.Text.Trim(); constructSolution.ProjectId = CurrUser.LoginProjectId; if (drpUnit.SelectedValue != "0") { constructSolution.UnitId = drpUnit.SelectedValue; } if (drpModelType.SelectedValue != "0") { constructSolution.SolutionType = drpModelType.SelectedValue; } if (drpSpecialType.SelectedValue != "0") { constructSolution.SpecialSchemeTypeId = drpSpecialType.SelectedValue; } constructSolution.SolutionName = txtSolutionName.Text.Trim(); var edtion = Convert.ToInt32(txtEdition.Text); constructSolution.Edition = edtion; if (!string.IsNullOrEmpty(txtCompileDate.Text.Trim())) { constructSolution.CompileDate = Convert.ToDateTime(txtCompileDate.Text.Trim()); } if (txtUnitWork.Values.Length > 0) { constructSolution.UnitWorkIds = string.Join(",", txtUnitWork.Values); } if (txtCNProfessional.Values.Length > 0) { constructSolution.CNProfessionalCodes = string.Join(",", txtCNProfessional.Values); } if (!string.IsNullOrEmpty(ConstructSolutionId)) { constructSolution.ConstructSolutionId = ConstructSolutionId; var constructSolution1 = CQMSConstructSolutionService.GetConstructSolutionByConstructSolutionId(ConstructSolutionId); if (saveType == "submit") { if (CurrUser.UserId != constructSolution1.CompileMan) //办理人不是编制人,提示查看审批信息 { if (constructSolution1.State == Const.CQMSConstructSolution_Audit) { constructSolution.State = constructSolution1.State; } else { constructSolution.State = Const.CQMSConstructSolution_Audit; } } else { countersign(constructSolution.ConstructSolutionId); constructSolution.State = constructSolution1.State; } if (!CurrUser.UserId.Equals(constructSolution1.CompileMan)) { var approve = CQMSConstructSolutionApproveService.GetConstructSoluAppByApproveMan( ConstructSolutionId, CurrUser.UserId, Convert.ToInt32(constructSolution1.Edition)); if (saveType == "submit") { approve.ApproveDate = DateTime.Now; } approve.Edition = Convert.ToInt32(edtion); approve.IsAgree = Convert.ToBoolean(rblIsAgree.SelectedValue); //approve.ApproveIdea = txtOptions.Text.Trim(); CQMSConstructSolutionApproveService.UpdateConstructSolutionApprove(approve); } else { if (saveType == "submit") { if (constructSolution1.State == Const.CQMSConstructSolution_Audit) //==会签状态升级版本 { var reApprove = new Solution_CQMSConstructSolutionApprove(); reApprove.ConstructSolutionId = constructSolution.ConstructSolutionId; reApprove.ApproveDate = DateTime.Now; reApprove.ApproveMan = constructSolution1.CompileMan; reApprove.ApproveType = Const.CQMSConstructSolution_ReCompile; edtion++; reApprove.Edition = edtion; CQMSConstructSolutionApproveService.AddConstructSolutionApprove(reApprove); } else { var approves = CQMSConstructSolutionApproveService.GetConstructSolApproveByApproveMan( ConstructSolutionId, constructSolution1.CompileMan); approves.ApproveDate = DateTime.Now; CQMSConstructSolutionApproveService.UpdateConstructSolutionApprove(approves); } } } } else { constructSolution.State = constructSolution1.State; } //提交时候,更新提交版本 if (CurrUser.UserId.Equals(constructSolution1.CompileMan)) { if (constructSolution1.State != Const.CQMSConstructSolution_Audit) { edtion++; } constructSolution.Edition = Convert.ToInt32(edtion); constructSolution.State = Const.CQMSConstructSolution_Audit; } CQMSConstructSolutionService.UpdateConstructSolution(constructSolution); //判断状态,全部会签同意,则审批完成 if (saveType == "submit") { var allApproves = CQMSConstructSolutionApproveService.GetHandleConstructSolutionApprovesByConstructSolutionId( ConstructSolutionId, constructSolution.Edition == null ? 0 : Convert.ToInt32(constructSolution.Edition)); var count = allApproves.Where(p => p.ApproveDate != null && p.IsAgree != null && Convert.ToBoolean(p.IsAgree)).Count(); //查询会签同意的 var fcount = allApproves.Where(p => p.ApproveDate != null && p.IsAgree != null && !Convert.ToBoolean(p.IsAgree)).Count(); //查询会签不同意的 if (count + fcount == allApproves.Count) { if (count == allApproves.Count) { var cons = CQMSConstructSolutionService.GetConstructSolutionByConstructSolutionId( ConstructSolutionId); cons.State = Const.CQMSConstructSolution_Complete; cons.CompileDate = DateTime.Now; CQMSConstructSolutionService.UpdateConstructSolution(cons); } //有不同意意见,打回重新编制 if (fcount > 0) { var cons = CQMSConstructSolutionService.GetConstructSolutionByConstructSolutionId( ConstructSolutionId); var reApprove = new Solution_CQMSConstructSolutionApprove(); reApprove.ConstructSolutionId = constructSolution.ConstructSolutionId; reApprove.ApproveMan = cons.CompileMan; reApprove.ApproveType = Const.CQMSConstructSolution_ReCompile; edtion++; reApprove.Edition = edtion; CQMSConstructSolutionApproveService.AddConstructSolutionApprove(reApprove); cons.State = Const.CQMSConstructSolution_ReCompile; cons.CompileDate = DateTime.Now; constructSolution.State = Const.CQMSConstructSolution_ReCompile; CQMSConstructSolutionService.UpdateConstructSolution(cons); } } } LogService.AddSys_Log(CurrUser, constructSolution.Code, ConstructSolutionId, Const.CQMSConstructSolutionMenuId, "修改施工方案"); } } #endregion #region 动态加载角色树 /// /// 设置树的节点选择 /// /// /// private void SetCheck(Tree tree, List userIds) { foreach (var tn in tree.Nodes[0].Nodes) { if (userIds.Contains(tn.NodeID)) { tn.Checked = true; //txtCopyMan.Text += tn.Text; } } } /// 加载角色树:动态加载 /// private void BindZYRole() { var rootNode = new TreeNode(); //定义根节点 rootNode.Text = "专业工程师"; rootNode.NodeID = "0"; rootNode.Expanded = true; rootNode.EnableCheckEvent = true; //trOne.Nodes.Add(rootNode); //trOne.EnableCheckBox = true; using (var db = new SGGLDB(Funs.ConnString)) { var userList = from x in db.Sys_User join y in db.Project_ProjectUnit on x.UnitId equals y.UnitId join p in db.Project_ProjectUser on x.UserId equals p.UserId where p.RoleId.Contains(Const.ZBCNEngineer) && y.UnitType == Const.ProjectUnitType_1 && p.ProjectId == CurrUser.LoginProjectId && y.ProjectId == CurrUser.LoginProjectId select x; //var ss = LINQToDataTable(userList); foreach (var u in userList) { var Node = new TreeNode(); Node.Text = u.UserName; Node.NodeID = u.UserId; Node.EnableCheckEvent = true; rootNode.Nodes.Add(Node); } } } /// /// 判断是否有选择 /// /// /// public bool nodesCheckd(Tree node) { var res = false; if (node.Nodes[0].Nodes.Count > 0) foreach (var item in node.Nodes[0].Nodes) if (item.Checked) { res = true; break; } return res; } private void BindAQRole() { var rootNode = new TreeNode(); //定义根节点 rootNode.Text = "HSE组"; rootNode.NodeID = "0"; rootNode.Expanded = true; rootNode.EnableCheckEvent = true; //trThree.Nodes.Add(rootNode); //trThree.EnableCheckBox = true; using (var db = new SGGLDB(Funs.ConnString)) { var userList = from x in db.Sys_User join y in db.Project_ProjectUnit on x.UnitId equals y.UnitId join p in db.Project_ProjectUser on x.UserId equals p.UserId where (p.RoleId.Contains(Const.HSSEManager) || p.RoleId.Contains(Const.HSSEEngineer)) && y.UnitType == Const.ProjectUnitType_1 && p.ProjectId == CurrUser.LoginProjectId && y.ProjectId == CurrUser.LoginProjectId orderby x.UserCode select x; foreach (var u in userList) { var roleNode = new TreeNode(); roleNode.Text = u.UserName; roleNode.NodeID = u.UserId; rootNode.Nodes.Add(roleNode); } } } private void BindSGRole() { var rootNode = new TreeNode(); //定义根节点 rootNode.Text = "施工经理"; rootNode.NodeID = "0"; rootNode.Expanded = true; rootNode.EnableCheckEvent = true; //trFive.Nodes.Add(rootNode); //trFive.EnableCheckBox = true; using (var db = new SGGLDB(Funs.ConnString)) { var userList = from x in db.Sys_User join y in db.Project_ProjectUnit on x.UnitId equals y.UnitId join p in db.Project_ProjectUser on x.UserId equals p.UserId where (p.RoleId.Contains(Const.ConstructionManager) || p.RoleId.Contains(Const.ConstructionAssistantManager)) && y.UnitType == Const.ProjectUnitType_1 && p.ProjectId == CurrUser.LoginProjectId && y.ProjectId == CurrUser.LoginProjectId orderby x.UserCode select x; foreach (var u in userList) { var roleNode = new TreeNode(); roleNode.Text = u.UserName; roleNode.NodeID = u.UserId; rootNode.Nodes.Add(roleNode); } } } #endregion #region 树结构的全选 protected void trOne_NodeCheck(object sender, TreeCheckEventArgs e) { //if (e.Checked) // trOne.CheckAllNodes(e.Node.Nodes); //else // trOne.UncheckAllNodes(e.Node.Nodes); } protected void trTwo_NodeCheck(object sender, TreeCheckEventArgs e) { /*if (e.Checked) { trTwo.CheckAllNodes(e.Node.Nodes); } else { trTwo.UncheckAllNodes(e.Node.Nodes); }*/ } protected void trThree_NodeCheck(object sender, TreeCheckEventArgs e) { //if (e.Checked) // trThree.CheckAllNodes(e.Node.Nodes); //else // trThree.UncheckAllNodes(e.Node.Nodes); } protected void trFour_NodeCheck(object sender, TreeCheckEventArgs e) { /*if (e.Checked) { trFour.CheckAllNodes(e.Node.Nodes); } else { trFour.UncheckAllNodes(e.Node.Nodes); }*/ } protected void trFive_NodeCheck(object sender, TreeCheckEventArgs e) { //if (e.Checked) // trFive.CheckAllNodes(e.Node.Nodes); //else // trFive.UncheckAllNodes(e.Node.Nodes); } protected void trSixe_NodeCheck(object sender, TreeCheckEventArgs e) { /*if (e.Checked) { trSixe.CheckAllNodes(e.Node.Nodes); } else { trSixe.UncheckAllNodes(e.Node.Nodes); }*/ } #endregion #region 加载一级审核人员 private void GetCheckManBindGrid1() { var tb = GetCheckManSource1(); // 1.设置总项数(特别注意:数据库分页一定要设置总记录数RecordCount) Grid1.RecordCount = tb.Rows.Count; // 2.获取当前分页数据 var table = this.GetPagedDataTable(Grid1, tb); // 3.绑定到Grid Grid1.DataSource = table; Grid1.DataBind(); } /// /// 一级审核人员, 施工工程师和HSE工程师 /// /// private DataTable GetCheckManSource1() { string sortField = Grid1.SortField; string sortDirection = Grid1.SortDirection; var userList = (from x in Funs.DB.Sys_User join y in Funs.DB.Project_ProjectUnit on x.UnitId equals y.UnitId join p in Funs.DB.Project_ProjectUser on x.UserId equals p.UserId where (p.RoleId.Contains(Const.ZBCNEngineer)|| p.RoleId.Contains(Const.HSSEEngineer) || p.RoleId.Contains(Const.SGEngineer)) && y.UnitType == Const.ProjectUnitType_1 && p.ProjectId == CurrUser.LoginProjectId && y.ProjectId == CurrUser.LoginProjectId select x); DataTable table2 = LINQToDataTable(userList); DataView view2 = table2.DefaultView; view2.Sort = String.Format("{0} {1}", sortField, sortDirection); string searchKeyword = ttbSearch1.Text.Trim(); if (!String.IsNullOrEmpty(searchKeyword) && ttbSearch1.ShowTrigger1) { view2.RowFilter = String.Format(" UserName LIKE '%{0}%'", searchKeyword); } return view2.ToTable(); } protected void ttbSearch_Trigger1Click1(object sender, EventArgs e) { ttbSearch1.ShowTrigger1 = true; GetCheckManBindGrid1(); } protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { Grid1.PageIndex = e.NewPageIndex; GetCheckManBindGrid1(); } protected void Grid1_Sort(object sender, GridSortEventArgs e) { Grid1.SortDirection = e.SortDirection; Grid1.SortField = e.SortField; GetCheckManBindGrid1(); } protected void ttbSearch_Trigger2Click1(object sender, EventArgs e) { ttbSearch1.ShowTrigger1 = true; GetCheckManBindGrid1(); } #endregion #region 加载二级审批人员 private void GetCheckManBindGrid2() { var tb = GetCheckManSource2(); // 1.设置总项数(特别注意:数据库分页一定要设置总记录数RecordCount) Grid2.RecordCount = tb.Rows.Count; // 2.获取当前分页数据 var table = this.GetPagedDataTable(Grid2, tb); // 3.绑定到Grid Grid2.DataSource = table; Grid2.DataBind(); } /// /// 二级审批人员显示施工经理、HSE经理、质量经理 /// /// private DataTable GetCheckManSource2() { string sortField = Grid2.SortField; string sortDirection = Grid2.SortDirection; var userList = (from x in Funs.DB.Sys_User join y in Funs.DB.Project_ProjectUnit on x.UnitId equals y.UnitId join p in Funs.DB.Project_ProjectUser on x.UserId equals p.UserId where (p.RoleId.Contains(Const.HSSEManager) || p.RoleId.Contains(Const.ConstructionManager) || p.RoleId.Contains(Const.QAManager)) && y.UnitType == Const.ProjectUnitType_1 && p.ProjectId == CurrUser.LoginProjectId && y.ProjectId == CurrUser.LoginProjectId orderby x.UserCode select x); DataTable table2 = LINQToDataTable(userList); DataView view2 = table2.DefaultView; view2.Sort = String.Format("{0} {1}", sortField, sortDirection); string searchKeyword = ttbSearch1.Text.Trim(); if (!String.IsNullOrEmpty(searchKeyword) && ttbSearch1.ShowTrigger1) { view2.RowFilter = String.Format(" UserName LIKE '%{0}%'", searchKeyword); } return view2.ToTable(); } protected void ttbSearch_Trigger1Click2(object sender, EventArgs e) { ttbSearch2.ShowTrigger1 = true; GetCheckManBindGrid2(); } protected void Grid2_PageIndexChange(object sender, GridPageEventArgs e) { Grid2.PageIndex = e.NewPageIndex; GetCheckManBindGrid2(); } protected void Grid2_Sort(object sender, GridSortEventArgs e) { Grid2.SortDirection = e.SortDirection; Grid2.SortField = e.SortField; GetCheckManBindGrid2(); } protected void ttbSearch_Trigger2Click2(object sender, EventArgs e) { ttbSearch2.ShowTrigger1 = true; GetCheckManBindGrid2(); } #endregion #region 加载施工经理 不用 //private void GetCheckManBindGrid3() //{ // var tb = GetCheckManSource3(); // // 1.设置总项数(特别注意:数据库分页一定要设置总记录数RecordCount) // Grid3.RecordCount = tb.Rows.Count; // // 2.获取当前分页数据 // var table = this.GetPagedDataTable(Grid3, tb); // // 3.绑定到Grid // Grid3.DataSource = table; // Grid3.DataBind(); //} //private DataTable GetCheckManSource3() //{ // string sortField = Grid3.SortField; // string sortDirection = Grid3.SortDirection; // var userList = (from x in Funs.DB.Sys_User // join y in Funs.DB.Project_ProjectUnit // on x.UnitId equals y.UnitId // join p in Funs.DB.Project_ProjectUser // on x.UserId equals p.UserId // where (p.RoleId.Contains(Const.ConstructionManager) || // p.RoleId.Contains(Const.ConstructionAssistantManager)) // && y.UnitType == Const.ProjectUnitType_1 && p.ProjectId == CurrUser.LoginProjectId && // y.ProjectId == CurrUser.LoginProjectId // orderby x.UserCode // select x); // DataTable table2 = LINQToDataTable(userList); // DataView view2 = table2.DefaultView; // view2.Sort = String.Format("{0} {1}", sortField, sortDirection); // string searchKeyword = ttbSearch1.Text.Trim(); // if (!String.IsNullOrEmpty(searchKeyword) && ttbSearch1.ShowTrigger1) // { // view2.RowFilter = String.Format(" UserName LIKE '%{0}%'", searchKeyword); // } // return view2.ToTable(); //} //protected void ttbSearch_Trigger1Click3(object sender, EventArgs e) //{ // ttbSearch3.ShowTrigger1 = true; // GetCheckManBindGrid3(); //} //protected void Grid3_PageIndexChange(object sender, GridPageEventArgs e) //{ // Grid3.PageIndex = e.NewPageIndex; // GetCheckManBindGrid3(); //} //protected void Grid3_Sort(object sender, GridSortEventArgs e) //{ // Grid3.SortDirection = e.SortDirection; // Grid3.SortField = e.SortField; // GetCheckManBindGrid3(); //} //protected void ttbSearch_Trigger2Click3(object sender, EventArgs e) //{ // ttbSearch3.ShowTrigger1 = true; // GetCheckManBindGrid3(); //} #endregion #region 加载抄送人员 private void GetCheckManBindGrid4() { var tb = GetCheckManSource4(); // 1.设置总项数(特别注意:数据库分页一定要设置总记录数RecordCount) Grid4.RecordCount = tb.Rows.Count; // 2.获取当前分页数据 var table = this.GetPagedDataTable(Grid4, tb); // 3.绑定到Grid Grid4.DataSource = table; Grid4.DataBind(); } private DataTable GetCheckManSource4() { string sortField = Grid4.SortField; string sortDirection = Grid4.SortDirection; var userList = (from x in Funs.DB.Sys_User join y in Funs.DB.Project_ProjectUnit on x.UnitId equals y.UnitId join p in Funs.DB.Project_ProjectUser on x.UserId equals p.UserId where p.ProjectId == CurrUser.LoginProjectId && y.ProjectId == CurrUser.LoginProjectId orderby x.UserCode select x); DataTable table2 = LINQToDataTable(userList); DataView view2 = table2.DefaultView; view2.Sort = String.Format("{0} {1}", sortField, sortDirection); string searchKeyword = ttbSearch4.Text.Trim(); if (!String.IsNullOrEmpty(searchKeyword) && ttbSearch4.ShowTrigger1) { view2.RowFilter = String.Format(" UserName LIKE '%{0}%'", searchKeyword); } return view2.ToTable(); } protected void ttbSearch_Trigger1Click4(object sender, EventArgs e) { ttbSearch4.ShowTrigger1 = true; GetCheckManBindGrid4(); } protected void Grid4_PageIndexChange(object sender, GridPageEventArgs e) { Grid4.PageIndex = e.NewPageIndex; GetCheckManBindGrid4(); } protected void Grid4_Sort(object sender, GridSortEventArgs e) { Grid4.SortDirection = e.SortDirection; Grid4.SortField = e.SortField; GetCheckManBindGrid4(); } protected void ttbSearch_Trigger2Click4(object sender, EventArgs e) { ttbSearch4.ShowTrigger1 = true; GetCheckManBindGrid4(); } #endregion #region linq结果转换datatable /// /// linq结果转换datatable /// /// /// /// public DataTable LINQToDataTable(IEnumerable varlist) { DataTable dtReturn = new DataTable(); // column names PropertyInfo[] oProps = null; if (varlist == null) return dtReturn; foreach (T rec in varlist) { // Use reflection to get property names, to create table, Only first time, others if (oProps == null) { oProps = ((Type)rec.GetType()).GetProperties(); foreach (PropertyInfo pi in oProps) { Type colType = pi.PropertyType; if ((colType.IsGenericType) && (colType.GetGenericTypeDefinition() == typeof(Nullable<>))) { colType = colType.GetGenericArguments()[0]; } dtReturn.Columns.Add(new DataColumn(pi.Name, colType)); } } DataRow dr = dtReturn.NewRow(); foreach (PropertyInfo pi in oProps) { dr[pi.Name] = pi.GetValue(rec, null) == null ? DBNull.Value : pi.GetValue (rec, null); } dtReturn.Rows.Add(dr); } return dtReturn; } #endregion #region 审批填写表格 /// /// 审批人保存第一次 /// private void OperateComplianceObligationsCSort() { BLL.ComplianceObligationsCService.DeleteSolution_CQMSConstructSolutionApprove_Item(ConstructSolutionId,CurrUser.UserId); jerqueSaveComplianceObligationsCList(); foreach (Model.Solution_CQMSConstructSolutionApprove_Item coc in complianceObligationsCs) { coc.ConstructSolutionId = ConstructSolutionId; BLL.ComplianceObligationsCService.AddSolution_CQMSConstructSolutionApprove_Item(coc); } } /// /// 填报人保存(修改) /// private void TbrOperateComplianceObligationsCSort() { jerqueSaveComplianceObligationsCListTbr(); foreach (Model.Solution_CQMSConstructSolutionApprove_Item coc in complianceObligationsCs) { coc.ConstructSolutionId = ConstructSolutionId; BLL.ComplianceObligationsCService.UpdateSolution_CQMSConstructSolutionApprove_Item(coc); } } /// /// 审批人(修改) /// private void SprOperateComplianceObligationsCSort() { jerqueSaveComplianceObligationsCListSpr(); foreach (Model.Solution_CQMSConstructSolutionApprove_Item coc in complianceObligationsCs) { coc.ConstructSolutionId = ConstructSolutionId; BLL.ComplianceObligationsCService.UpdateSolution_CQMSConstructSolutionApprove_ItemNew(coc); } } protected void btnNew_Click(object sender, EventArgs e) { jerqueSaveComplianceObligationsCList(); Model.Solution_CQMSConstructSolutionApprove_Item complianceObligationsC = new Model.Solution_CQMSConstructSolutionApprove_Item { Id = SQLHelper.GetNewID(typeof(Model.Solution_CQMSConstructSolutionApprove_Item)) }; complianceObligationsCs.Add(complianceObligationsC); this.gvOperateComplianceObligations.DataSource = complianceObligationsCs; this.gvOperateComplianceObligations.DataBind(); } private void jerqueSaveComplianceObligationsCList() { complianceObligationsCs.Clear(); JArray mergedData = gvOperateComplianceObligations.GetMergedData(); foreach (JObject mergedRow in mergedData) { string status = mergedRow.Value("status"); JObject values = mergedRow.Value("values"); int i = mergedRow.Value("index"); var hazardSort = new Model.Solution_CQMSConstructSolutionApprove_Item { Id = this.gvOperateComplianceObligations.Rows[i].DataKeys[0].ToString(), SortId= i+1, Chapter = values.Value("Chapter").ToString(), Amendment = values.Value("Amendment").ToString(), Proposer = CurrUser.UserId, ProposerName= CurrUser.UserName, Modification = values.Value("Modification").ToString(), ReviewerOpinion = values.Value("ReviewerOpinion").ToString(), IsAccept = values.Value("IsAccept").ToString(), }; complianceObligationsCs.Add(hazardSort); } } private void jerqueSaveComplianceObligationsCListTbr() { complianceObligationsCs.Clear(); JArray mergedData = gvOperateComplianceObligations.GetMergedData(); foreach (JObject mergedRow in mergedData) { string status = mergedRow.Value("status"); JObject values = mergedRow.Value("values"); int i = mergedRow.Value("index"); var hazardSort = new Model.Solution_CQMSConstructSolutionApprove_Item { Id = this.gvOperateComplianceObligations.Rows[i].DataKeys[0].ToString(), Modification = values.Value("Modification").ToString(), }; complianceObligationsCs.Add(hazardSort); } } private void jerqueSaveComplianceObligationsCListSpr() { complianceObligationsCs.Clear(); JArray mergedData = gvOperateComplianceObligations.GetMergedData(); foreach (JObject mergedRow in mergedData) { string status = mergedRow.Value("status"); JObject values = mergedRow.Value("values"); int i = mergedRow.Value("index"); var hazardSort = new Model.Solution_CQMSConstructSolutionApprove_Item { Id = this.gvOperateComplianceObligations.Rows[i].DataKeys[0].ToString(), ReviewerOpinion= values.Value("ReviewerOpinion").ToString(), IsAccept = values.Value("IsAccept").ToString(), }; complianceObligationsCs.Add(hazardSort); } } protected void gvOperateComplianceObligations_RowCommand(object sender, GridCommandEventArgs e) { jerqueSaveComplianceObligationsCList(); string rowID = this.gvOperateComplianceObligations.DataKeys[e.RowIndex][0].ToString(); if (e.CommandName == "Delete") { foreach (var item in complianceObligationsCs) { if (item.Id == rowID) { complianceObligationsCs.Remove(item); break; } } gvOperateComplianceObligations.DataSource = complianceObligationsCs; gvOperateComplianceObligations.DataBind(); ShowNotify("删除数据成功!", MessageBoxIcon.Success); } } #endregion /// /// 不同意的情况下显示 /// /// /// protected void radChange(object sender, EventArgs e) { //不同意的情况下 if (rblIsAgree.SelectedValue == "false") { if (isSendTrue) { } else { //显示 options.Hidden = false; options1.Hidden = false; //第一次 gvOperateComplianceObligations.AllColumns[4].Hidden = true; gvOperateComplianceObligations.AllColumns[5].Hidden = true; gvOperateComplianceObligations.AllColumns[6].Hidden = true; gvOperateComplianceObligations.AllColumns[7].Hidden = true; } } else { if (isSendTrue) { } else { //同意的情况下 options.Hidden = true; options1.Hidden = true; } } } } }