using System; using System.Collections.Generic; using System.Linq; using System.Web; using BLL; using FineUIPro.Web.HSSE.Solution; using Model; 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; } #endregion public int ContactImg { get => Convert.ToInt32(ViewState["ContactImg"]); set => ViewState["ContactImg"] = value; } protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { InitDropDownList(); //加载下拉框 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, "ZY"); if (zyUserIds.Count > 0) { SetCheck(trOne, zyUserIds); } var aqUserIds = CQMSConstructSolutionApproveService.GetUserIdsApprovesBySignType(ConstructSolutionId, "AQ"); if (aqUserIds.Count > 0) { SetCheck(trThree, aqUserIds); } var sgUserIds = CQMSConstructSolutionApproveService.GetUserIdsApprovesBySignType(ConstructSolutionId, "SG"); if (sgUserIds.Count > 0) { SetCheck(trFive, sgUserIds); } #endregion if (constructSolution.State == Const.CQMSConstructSolution_ReCompile) { agree.Hidden = true; options.Hidden = true; optio.Hidden = true; } if (constructSolution.State == Const.CQMSConstructSolution_Audit) { 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; } ////提交版本人多次修改 //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; 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); } 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 = CQMSConstructSolutionApproveService.GetThisApproveByConstructSolutionId(ConstructSolutionId); if (approve.ApproveMan == this.CurrUser.UserId && approve.ApproveType == Const.CQMSConstructSolution_ReCompile) { approve.ApproveDate = DateTime.Now; approve.IsAgree = Convert.ToBoolean(rblIsAgree.SelectedValue); CQMSConstructSolutionApproveService.UpdateConstructSolutionApprove(approve); } } else if (constructSolution.State == Const.CQMSConstructSolution_Audit && saveType == "submit") { UpdateApprove(); } } /// /// 修改审批意见 /// private void UpdateApprove() { var approve = CQMSConstructSolutionApproveService.GetThisApproveByConstructSolutionId(ConstructSolutionId); 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); CheckIsAllAgree(); } } /// /// 判断是否全部同意 /// private void CheckIsAllAgree() { var edtion = Convert.ToInt32(txtEdition.Text); var constructSolution = CQMSConstructSolutionService.GetConstructSolutionByConstructSolutionId(ConstructSolutionId); var allApproves = CQMSConstructSolutionApproveService.GetHandleConstructSolutionApprovesByConstructSolutionId(ConstructSolutionId, constructSolution.Edition == null ? 0 : Convert.ToInt32(constructSolution.Edition)); var needApporveCount = allApproves.Where(x => x.ApproveDate == null).Count(); if (needApporveCount>0) return; //判断是否最后一个审批 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 == 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; cons.Edition= edtion; constructSolution.State = Const.CQMSConstructSolution_ReCompile; CQMSConstructSolutionService.UpdateConstructSolution(cons); LogService.AddSys_Log(CurrUser, constructSolution.Code, ConstructSolutionId, Const.CQMSConstructSolutionMenuId, "修改施工方案"); } } /// /// 保存验证 /// /// /// 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); 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 (!string.IsNullOrWhiteSpace(err)) { err = err.Substring(0, err.LastIndexOf(",")); 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 } }