using BLL; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; namespace FineUIPro.Web.PHTGL.BiddingManagement { public partial class BidDocumentsReviewDetail : PageBase { #region 定义属性 /// /// 合同ID /// public string BidDocumentsReviewId { get { return (string)ViewState["BidDocumentsReviewId"]; } set { ViewState["BidDocumentsReviewId"] = value; } } /// /// 最末的审批节点 /// public int EndApproveType { get { return (int)ViewState["EndApproveType"]; } set { ViewState["EndApproveType"] = value; } } /// /// 审批人字典 /// public Dictionary Dic_ApproveMan { get { return (Dictionary)ViewState["Dic_ApproveMan"]; } set { ViewState["Dic_ApproveMan"] = value; } } public List ApproveManModels { get { return (List)Session["ApproveManModels"]; } set { Session["ApproveManModels"] = value; } } public Model.PHTGL_Approve pHTGL_Approve { get { return (Model.PHTGL_Approve)Session["pHTGL_Approve"]; } set { Session["pHTGL_Approve"] = value; } } #endregion protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { BidDocumentsReviewId = Request.Params["BidDocumentsReviewId"]; EndApproveType = 5; // this.btnClose.OnClientClick = ActiveWindow.GetHideRefreshReference(); //获取招标实施计划基本信息 var _Bid = PHTGL_BidDocumentsReviewService.GetPHTGL_BidDocumentsReviewById(BidDocumentsReviewId); var _ActionPlanFormation = BLL.PHTGL_ActionPlanFormationService.GetPHTGL_ActionPlanFormationById(_Bid.ActionPlanID); //获取审批人字典 Dic_ApproveMan = PHTGL_BidDocumentsReviewService.Get_DicApproveman(_Bid.ProjectId, _Bid.BidDocumentsReviewId); ApproveManModels = PHTGL_BidDocumentsReviewService.GetApproveManModels(_Bid.ProjectId, _Bid.BidDocumentsReviewId); //获取当前登录人审批信息 pHTGL_Approve = BLL.PHTGL_ApproveService.GetPHTGL_ApproveByUserId(BidDocumentsReviewId, this.CurrUser.PersonId); this.txtProjectCode.Text = _ActionPlanFormation.EPCCode; this.txtProjectName.Text = _ActionPlanFormation.ProjectShortName; this.txtCreateUser.Text = BLL.Person_PersonsService.GetPersonsNameById(_Bid.CreateUser); if (PHTGL_ApproveService.IsApproveMan(BidDocumentsReviewId, this.CurrUser.PersonId)) { BindGrid(); } else if (this.CurrUser.PersonId == Const.sysglyId || this.CurrUser.PersonId == Const.hfnbdId) { BindGrid(); } else if (_Bid.CreateUser == this.CurrUser.PersonId) { BindGrid(); } if (pHTGL_Approve != null) { btnAgree.Enabled = true; btnDisgree.Enabled = true; } if (_Bid.State == Const.ContractReview_Refuse) { btnAgree.Enabled = false; btnDisgree.Enabled = false; } } } /// /// 数据绑定 /// private void BindGrid() { string strSql = @" select u.PersonName as ApproveMan, App.ApproveDate, (CASE App.IsAgree WHEN '1' THEN '不同意' WHEN '2' THEN '同意' END) AS IsAgree, App.ApproveIdea, App.ApproveId, App.ApproveType from PHTGL_Approve as App" + @" left join Person_Persons AS U ON U.PersonId = App.ApproveMan WHERE 1=1 and App.IsAgree <>0 and app.ContractId= @ContractId order by convert(datetime ,App.ApproveDate) "; List listStr = new List(); listStr.Add(new SqlParameter("@ContractId", BidDocumentsReviewId)); SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); //Grid1.RecordCount = tb.Rows.Count; //var table = this.GetPagedDataTable(Grid1, tb); Grid1.DataSource = tb; Grid1.DataBind(); } protected void btnAttachUrl_Click(object sender, EventArgs e) { PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("~/AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/BidDocumentsAttachUrl&menuId={1}", this.BidDocumentsReviewId, BLL.Const.BidDocumentsReviewIdMenuid))); } /// /// 判断是否所以会签人员都已经同意 /// /// private bool IsCountersignerAllAgree() { bool IsNext = false; string strsql = "select count(*) from PHTGL_Approve where State='0' and ApproveMan !='' and ContractId='" + pHTGL_Approve.ContractId + "'"; DataTable tb = SQLHelper.RunSqlGetTable(strsql); if (tb != null && tb.Rows.Count > 0) { if (tb.Rows[0][0].ToString() == "0") { IsNext = true; } } return IsNext; } #region 分页 排序 /// /// 改变索引事件 /// /// /// protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { BindGrid(); } protected void btnAgree_Click(object sender, EventArgs e) { var number = ApproveManModels.Find(x => x.Rolename == pHTGL_Approve.ApproveType).Number; if (number <= 2) { CountersignerSave(true); OAWebSevice.DoneRequest(pHTGL_Approve.ApproveId); } else { ApprovemanSave(true); OAWebSevice.DoneRequest(pHTGL_Approve.ApproveId); } OAWebSevice.Pushoa(); } protected void btnDisgree_Click(object sender, EventArgs e) { var number = ApproveManModels.Find(x => x.Rolename == pHTGL_Approve.ApproveType).Number; if (number <= 2) { CountersignerSave(false); OAWebSevice.DoneRequest(pHTGL_Approve.ApproveId); OAWebSevice.Pushoa_Creater(pHTGL_Approve.ApproveId); } else { ApprovemanSave(false); OAWebSevice.DoneRequest(pHTGL_Approve.ApproveId); OAWebSevice.Pushoa_Creater(pHTGL_Approve.ApproveId); } } protected void btnSave_Click(object sender, EventArgs e) { } /// /// 会签人员保存 /// void CountersignerSave(bool IsAgree) { pHTGL_Approve.ApproveDate = Funs.GetNewDateTimeOrNow("").ToString(); pHTGL_Approve.State = 1; pHTGL_Approve.IsAgree = IsAgree ? 2 : 1; string txtIdea = ""; if (IsAgree) { txtIdea = "同意"; } else { txtIdea = "不同意"; } pHTGL_Approve.ApproveIdea = txtApproveIdea.Text.Trim() == "" ? txtIdea : txtApproveIdea.Text; BLL.PHTGL_ApproveService.UpdatePHTGL_Approve(pHTGL_Approve); ChangeState(Const.ContractReviewing); if (IsAgree) { if (IsCountersignerAllAgree()) { Model.PHTGL_Approve _Approve = new Model.PHTGL_Approve(); //_Approve.ApproveId = SQLHelper.GetNewID(typeof(Model.PHTGL_Approve)); _Approve.ContractId = pHTGL_Approve.ContractId; _Approve.ApproveMan = ApproveManModels.Find(e => e.Number == 3).userid; _Approve.ApproveDate = ""; _Approve.State = 0; _Approve.IsAgree = 0; _Approve.ApproveIdea = ""; _Approve.ApproveType = ApproveManModels.Find(e => e.Number == 3).Rolename; _Approve.IsPushOa = 0; _Approve.ApproveForm = PHTGL_ApproveService.BidDocumentsReview; var IsExitmodel = PHTGL_ApproveService.GetPHTGL_ApproveByContractIdAndType(_Approve.ContractId, _Approve.ApproveType); if (IsExitmodel == null) { _Approve.ApproveId = SQLHelper.GetNewID(typeof(Model.PHTGL_Approve)); BLL.PHTGL_ApproveService.AddPHTGL_Approve(_Approve); } else { _Approve.ApproveId = IsExitmodel.ApproveId; BLL.PHTGL_ApproveService.UpdatePHTGL_Approve(_Approve); } ChangeState(Const.ContractReviewing); } } else { ChangeState(Const.ContractReview_Refuse); var model = PHTGL_ApproveService.GetPHTGL_ApproveByContractId(pHTGL_Approve.ContractId); if (model != null) { for (int i = 0; i < model.Count; i++) { Model.PHTGL_Approve _Approve = model[i]; _Approve.State = 1; _Approve.IsAgree = 1; _Approve.ApproveIdea = "其他会签人员已经拒绝"; PHTGL_ApproveService.UpdatePHTGL_Approve(_Approve); OAWebSevice.DoneRequest(_Approve.ApproveId); } } } ShowNotify("审批成功!", MessageBoxIcon.Success); if (!string.IsNullOrEmpty(Request.Params["PHTUrl"])) { PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference()); PageContext.RegisterStartupScript("closeActiveTab();"); } else { PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference()); } } void ApprovemanSave(bool IsAgree) { pHTGL_Approve.ApproveDate = Funs.GetNewDateTimeOrNow("").ToString(); pHTGL_Approve.State = 1; //pHTGL_Approve.IsAgree = Convert.ToInt32(CBIsAgree.SelectedValueArray[0]); pHTGL_Approve.IsAgree = IsAgree ? 2 : 1; string txtIdea = ""; if (IsAgree) { txtIdea = "同意"; } else { txtIdea = "不同意"; } pHTGL_Approve.ApproveIdea = txtApproveIdea.Text.Trim() == "" ? txtIdea : txtApproveIdea.Text; BLL.PHTGL_ApproveService.UpdatePHTGL_Approve(pHTGL_Approve); int thisApproveTypeNumber = ApproveManModels.Find(e => e.Rolename == pHTGL_Approve.ApproveType).Number; int nextApproveType = thisApproveTypeNumber + 1; if (IsAgree) { if (thisApproveTypeNumber < EndApproveType) { Model.PHTGL_Approve _Approve = new Model.PHTGL_Approve(); _Approve.ContractId = pHTGL_Approve.ContractId; _Approve.ApproveMan = ApproveManModels.Find(e => e.Number == nextApproveType).userid; _Approve.ApproveDate = ""; _Approve.State = 0; _Approve.IsAgree = 0; _Approve.ApproveIdea = ""; _Approve.ApproveType = ApproveManModels.Find(e => e.Number == nextApproveType).Rolename; _Approve.IsPushOa = 0; _Approve.ApproveForm = PHTGL_ApproveService.BidDocumentsReview; var IsExitmodel = PHTGL_ApproveService.GetPHTGL_ApproveByContractIdAndType(_Approve.ContractId, _Approve.ApproveType); if (IsExitmodel == null) { _Approve.ApproveId = SQLHelper.GetNewID(typeof(Model.PHTGL_Approve)); BLL.PHTGL_ApproveService.AddPHTGL_Approve(_Approve); } else { _Approve.ApproveId = IsExitmodel.ApproveId; BLL.PHTGL_ApproveService.UpdatePHTGL_Approve(_Approve); } ChangeState(Const.ContractReviewing); } else { var Bid = PHTGL_BidDocumentsReviewService.GetPHTGL_BidDocumentsReviewById(BidDocumentsReviewId); Model.PHTGL_BidApproveUserReview newtable = new Model.PHTGL_BidApproveUserReview(); newtable.ApproveUserReviewID = SQLHelper.GetNewID(typeof(Model.PHTGL_BidApproveUserReview)); newtable.BidDocumentsReviewId = BidDocumentsReviewId; newtable.ProjectId = Bid.ProjectId; newtable.ActionPlanID = Bid.ActionPlanID; newtable.State = Const.ContractCreating; PHTGL_BidApproveUserReviewService.AddPHTGL_BidApproveUserReview(newtable); ChangeState(Const.ContractReview_Complete); } } else { ChangeState(Const.ContractReview_Refuse); } ShowNotify("提交成功,流程转入下一节点!", MessageBoxIcon.Success); if (!string.IsNullOrEmpty(Request.Params["PHTUrl"])) { PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference()); PageContext.RegisterStartupScript("closeActiveTab();"); } else { PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference()); } } /// /// 改变审批流状态 /// /// private void ChangeState(int state) { var _Bid = PHTGL_BidDocumentsReviewService.GetPHTGL_BidDocumentsReviewById(BidDocumentsReviewId); _Bid.State = state; PHTGL_BidDocumentsReviewService.UpdatePHTGL_BidDocumentsReview(_Bid); } /// /// 排序 /// /// /// protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e) { BindGrid(); } #endregion } }