using BLL;
using FineUIPro.Web.HSSE.License;
using Model;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace FineUIPro.Web.ProjectData
{
public partial class PreProjectApply : PageBase
{
///
/// 主键
///
public string Id
{
get
{
return (string)ViewState["Id"];
}
set
{
ViewState["Id"] = value;
}
}
///
/// 项目名称
///
public string ProjectName
{
get
{
return (string)ViewState["ProjectName"];
}
set
{
ViewState["ProjectName"] = value;
}
}
///
/// 加载页面
///
///
///
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.btnClose.OnClientClick = ActiveWindow.GetHideReference();
UnitService.InitBranchUnitDropDownList(this.drpUnit, true, true);
BindGrid();
var now = DateTime.Now;
this.Id = Request.QueryString["Id"];
this.ProjectName = Request.QueryString["ProjectName"];
if (!string.IsNullOrEmpty(this.Id))
{
var model = BLL.PreProjectApplyService.GetPreProjectApplyById(this.Id);
if (model != null)
{
//申请信息
this.drpUnit.SelectedValue = model.UnitId;
this.txtProjectName.Text = model.ProjectName.ToString();
//this.rblApplyType.SelectedValue = model.ApplyType.ToString();
this.txtApplyDescription.Text = model.ApplyDescription.ToString();
this.txtApplyUserName.Text = model.ApplyUserName.ToString();
this.txtApplyDate.Text = string.Format("{0:yyyy-MM-dd}", model.ApplyDate);
//审批信息
this.drpApprover.Value = model.ApproverUserId;
this.drpApprover.Text = model.ApproverUserName;
if (model.ApprovalDate != null)
{
this.txtApprovalDate.Text = string.Format("{0:yyyy-MM-dd}", model.ApprovalDate);
}
if (model.State == 0)
{//待审核
this.drpUnit.Readonly = true;
this.txtProjectName.Readonly = true;
this.txtApplyDescription.Readonly = true;
this.txtApplyDate.Readonly = true;
this.drpApprover.Readonly = true;
this.txtApplyDate.Readonly = true;
bool isAuditer = model.ApproverUserId == this.CurrUser.UserId || this.CurrUser.UserId == Const.hfnbdId || this.CurrUser.UserId == Const.sysglyId;
if (isAuditer)
{
this.btnApproval.Hidden = false;
this.btnSave.Hidden = true;
this.Audit.Hidden = false;
this.AuditDesc.Hidden = false;
this.rblState.SelectedValue = "1";
this.txtApprovalDate.Text = string.Format("{0:yyyy-MM-dd}", now);
}
else
{
this.btnApproval.Hidden = true;
this.btnSave.Hidden = false;
this.Audit.Hidden = true;
this.AuditDesc.Hidden = true;
this.Toolbar1.Hidden = true;
}
}
else
{ //已审核
this.Audit.Hidden = false;
this.AuditDesc.Hidden = false;
this.Toolbar1.Hidden = true;
this.rblState.SelectedValue = model.State.ToString();
this.txtApprovalDescription.Text = model.ApprovalDescription.ToString();
}
//if (!string.IsNullOrWhiteSpace(model.ApproverUserId))
//{
// //this.cbNext.SelectedValue = "1";
// bool isAuditer = model.ApproverUserId == this.CurrUser.UserId || this.CurrUser.UserId == Const.hfnbdId || this.CurrUser.UserId == Const.sysglyId;
// if (model.State == 0)
// {
// if (isAuditer)
// {
// this.Audit.Hidden = false;
// this.rblState.SelectedValue = "1";
// }
// else
// {
// this.Toolbar1.Hidden = true;
// }
// }
// else
// {
// this.Toolbar1.Hidden = true;
// }
//}
}
}
else
{
this.btnApproval.Hidden = true;
this.txtApprovalDate.Hidden = true;
if (!string.IsNullOrWhiteSpace(ProjectName.Trim()))
{
this.txtProjectName.Text = ProjectName.Trim();
}
this.txtApplyUserName.Text = this.CurrUser.UserName;
this.txtApplyDate.Text = string.Format("{0:yyyy-MM-dd}", now);
//this.txtApprovalDate.Text = string.Format("{0:yyyy-MM-dd}", now);
}
}
}
#region 人员下拉框绑定数据
///
/// 绑定数据
///
private void BindGrid()
{
string unitId = CommonService.GetThisUnitId();
string strSql = @"SELECT UserId,UserName,UserCode,role.RoleName"
+ @" FROM Sys_User AS users LEFT JOIN Sys_Role AS role ON users.RoleId= role.RoleId"
+ @" WHERE users.IsPost=1 AND role.IsAuditFlow=1 AND users.IsOffice =1 AND UnitId ='" + unitId + "'";
List listStr = new List();
if (!string.IsNullOrEmpty(this.txtUserName.Text.Trim()))
{
strSql += " AND (UserName LIKE @Name OR UserCode LIKE @Name OR role.RoleName LIKE @Name)";
listStr.Add(new SqlParameter("@Name", "%" + this.txtUserName.Text.Trim() + "%"));
}
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
Grid1.RecordCount = tb.Rows.Count;
var table = this.GetPagedDataTable(Grid1, tb);
Grid1.DataSource = table;
Grid1.DataBind();
}
#region 查询
///
/// 下拉框查询
///
///
///
protected void TextBox_TextChanged(object sender, EventArgs e)
{
this.drpApprover.Values = null;
this.BindGrid();
}
#endregion
#endregion
///
/// 保存数据
///
///
///
protected void btnSave_Click(object sender, EventArgs e)
{
string unitId = this.drpUnit.SelectedValue;
string unitName = this.drpUnit.SelectedText;
string projectName = this.txtProjectName.Text.Trim();
//string applyType = this.rblApplyType.SelectedValue;
string applyType = "预立项";
string applyDescription = this.txtApplyDescription.Text.Trim();
string approverUserId = this.drpApprover.Value;
string approverUserName = this.drpApprover.Text;
if (string.IsNullOrWhiteSpace(unitId) || unitId == BLL.Const._Null)
{
Alert.ShowInTop("请选择所属单位!", MessageBoxIcon.Warning);
return;
}
if (string.IsNullOrWhiteSpace(projectName))
{
Alert.ShowInTop("请输入项目名称!", MessageBoxIcon.Warning);
return;
}
if (string.IsNullOrWhiteSpace(applyDescription))
{
Alert.ShowInTop("请输入申请说明!", MessageBoxIcon.Warning);
return;
}
if (string.IsNullOrWhiteSpace(approverUserId))
{
Alert.ShowInTop("请选择审批人!", MessageBoxIcon.Warning);
return;
}
var project = ProjectService.GetProjectByProjectName(projectName);
if (project != null)
{
Alert.ShowInTop($"系统中已存在同名项目,{project.ProjectName}({project.ProjectCode}),无需申请!", MessageBoxIcon.Warning);
return;
}
var applyPro = PreProjectApplyService.GetPreProjectApplyByProjectName(projectName);
if (applyPro != null)
{
string auditStr = applyPro.State == 1 ? $"审核已通过,可以直接新增同名项目" : applyPro.State == 2 ? $"不通过[{applyPro.ApprovalDescription}]" : "待审核";
Alert.ShowInTop($"{projectName},{applyPro.ApplyUserName}于{applyPro.ApplyDate.ToString("yyyy-MM-dd")}已申请过。{auditStr};审核人:{applyPro.ApproverUserName}!", MessageBoxIcon.Warning);
return;
}
DataGovernance_PreProjectApply apply = new DataGovernance_PreProjectApply();
apply.Id = SQLHelper.GetNewID(typeof(Model.DataGovernance_PreProjectApply));
apply.UnitId = unitId;
apply.UnitName = unitName;
apply.ProjectName = projectName;
apply.ApplyType = applyType;
apply.ApplyDescription = applyDescription;
apply.ApplyUserId = this.CurrUser.UserId;
apply.ApplyUserName = this.CurrUser.UserName;
apply.ApplyDate = DateTime.Now;
apply.State = 0;//申请状态(0:待审核,1:通过,2:不通过)
apply.ApproverUserId = approverUserId;
apply.ApproverUserName = approverUserName;
PreProjectApplyService.AddPreProjectApply(apply);
ShowNotify("申请成功!", MessageBoxIcon.Success);
// 2. 关闭本窗体,然后回发父窗体
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
///
/// 不通过必填审核说明
///
///
///
protected void rblState_SelectedIndexChanged(object sender, EventArgs e)
{
string state = this.rblState.SelectedValue;
if (state == "2" )
{
this.txtApprovalDescription.Required = true;
this.txtApprovalDescription.ShowRedStar = true;
}
else
{
this.txtApprovalDescription.Required = false;
this.txtApprovalDescription.ShowRedStar = false;
}
}
///
/// 审批
///
///
///
protected void btnApproval_Click(object sender, EventArgs e)
{
string state = this.rblState.SelectedValue;
string approvalDescription = this.txtApprovalDescription.Text.Trim();
if (string.IsNullOrWhiteSpace(state))
{
Alert.ShowInTop("请选择审核结果!", MessageBoxIcon.Warning);
return;
}
if (!string.IsNullOrWhiteSpace(this.Id))
{
DataGovernance_PreProjectApply apply = new DataGovernance_PreProjectApply();
apply.Id = this.Id;
apply.State = int.Parse(state);
apply.ApprovalDescription = approvalDescription;
apply.ApproverUserId = this.CurrUser.UserId;
apply.ApproverUserName = this.CurrUser.UserName;
apply.ApprovalDate = DateTime.Now;
PreProjectApplyService.ApprovalPreProjectApply(apply);
}
ShowNotify("审核成功!", MessageBoxIcon.Success);
// 2. 关闭本窗体,然后回发父窗体
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
}
}