287 lines
10 KiB
C#
287 lines
10 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Linq;
|
|||
|
using System.Data;
|
|||
|
using System.Data.SqlClient;
|
|||
|
using System.Web;
|
|||
|
using System.Web.UI;
|
|||
|
using System.Web.UI.WebControls;
|
|||
|
using BLL;
|
|||
|
|
|||
|
namespace FineUIPro.Web.SysManage
|
|||
|
{
|
|||
|
public partial class MenuFlowOperateEdit : PageBase
|
|||
|
{
|
|||
|
#region 定义项
|
|||
|
/// <summary>
|
|||
|
/// 菜单ID
|
|||
|
/// </summary>
|
|||
|
public string MenuId
|
|||
|
{
|
|||
|
get
|
|||
|
{
|
|||
|
return (string)ViewState["MenuId"];
|
|||
|
}
|
|||
|
set
|
|||
|
{
|
|||
|
ViewState["MenuId"] = value;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 流程ID
|
|||
|
/// </summary>
|
|||
|
public string FlowOperateId
|
|||
|
{
|
|||
|
get
|
|||
|
{
|
|||
|
return (string)ViewState["FlowOperateId"];
|
|||
|
}
|
|||
|
set
|
|||
|
{
|
|||
|
ViewState["FlowOperateId"] = value;
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
#region 加载页面
|
|||
|
/// <summary>
|
|||
|
/// 加载页面
|
|||
|
/// </summary>
|
|||
|
/// <param name="sender"></param>
|
|||
|
/// <param name="e"></param>
|
|||
|
protected void Page_Load(object sender, EventArgs e)
|
|||
|
{
|
|||
|
if (!IsPostBack)
|
|||
|
{
|
|||
|
this.btnClose.OnClientClick = ActiveWindow.GetHideReference();
|
|||
|
this.MenuId = Request.Params["MenuId"];
|
|||
|
this.FlowOperateId = Request.Params["FlowOperateId"];
|
|||
|
this.BindDropDownBox();
|
|||
|
if (!string.IsNullOrEmpty(this.FlowOperateId))
|
|||
|
{
|
|||
|
var menuFlowOperate = MenuFlowOperateService.GetMenuFlowOperateByFlowOperateId(this.FlowOperateId);
|
|||
|
if (menuFlowOperate != null)
|
|||
|
{
|
|||
|
this.txtFlowStep.Text = menuFlowOperate.FlowStep.ToString();
|
|||
|
this.txtGroupNum.Text = menuFlowOperate.GroupNum.ToString();
|
|||
|
this.txtOrderNum.Text = menuFlowOperate.OrderNum.ToString();
|
|||
|
|
|||
|
this.txtAuditFlowName.Text = menuFlowOperate.AuditFlowName;
|
|||
|
if (menuFlowOperate.IsFlowEnd != null)
|
|||
|
{
|
|||
|
this.IsFlowEnd.Checked = Convert.ToBoolean(menuFlowOperate.IsFlowEnd);
|
|||
|
}
|
|||
|
drpRoles.Value = menuFlowOperate.RoleId;
|
|||
|
}
|
|||
|
|
|||
|
this.SetIsFlowEnd();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
this.SetFlowStep();
|
|||
|
}
|
|||
|
//if (LicensePublicService.lisenWorkList.Contains(this.MenuId))
|
|||
|
//{
|
|||
|
// this.txtGroupNum.Hidden = false;
|
|||
|
// this.txtOrderNum.Hidden = false;
|
|||
|
// this.lbTemp.Hidden = false;
|
|||
|
// this.lbTemp.Text = "说明:步骤、组号、组内序号请按照顺序维护,不可断号。";
|
|||
|
//}
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
public void SetFlowStep()
|
|||
|
{
|
|||
|
int maxId = 0;
|
|||
|
string str = "SELECT (ISNULL(MAX(FlowStep),0)+1) FROM Sys_MenuFlowOperate WHERE MenuId='" + this.MenuId + "'";
|
|||
|
maxId = SQLHelper.GetIntValue(str);
|
|||
|
this.txtFlowStep.Text = maxId.ToString();
|
|||
|
this.txtGroupNum.Text = "1";
|
|||
|
this.txtOrderNum.Text = "1";
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 保存按钮
|
|||
|
/// </summary>
|
|||
|
/// <param name="sender"></param>
|
|||
|
/// <param name="e"></param>
|
|||
|
protected void btnSave_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
string mes = checkValues();
|
|||
|
if (!string.IsNullOrEmpty(mes))
|
|||
|
{
|
|||
|
Alert.ShowInParent(mes);
|
|||
|
return;
|
|||
|
}
|
|||
|
Model.Sys_MenuFlowOperate newMenuFlowOperate = new Model.Sys_MenuFlowOperate
|
|||
|
{
|
|||
|
MenuId = this.MenuId,
|
|||
|
FlowStep = Funs.GetNewInt(this.txtFlowStep.Text) ?? 1,
|
|||
|
GroupNum = Funs.GetNewInt(this.txtGroupNum.Text) ?? 1,
|
|||
|
OrderNum = Funs.GetNewInt(this.txtOrderNum.Text) ?? 1,
|
|||
|
AuditFlowName = this.txtAuditFlowName.Text.Trim(),
|
|||
|
};
|
|||
|
|
|||
|
string[] roleIds = drpRoles.Values;
|
|||
|
newMenuFlowOperate.RoleId = this.ConvertRole(roleIds);
|
|||
|
newMenuFlowOperate.IsFlowEnd = this.IsFlowEnd.Checked;
|
|||
|
if (string.IsNullOrEmpty(this.FlowOperateId))
|
|||
|
{
|
|||
|
BLL.MenuFlowOperateService.AddAuditFlow(newMenuFlowOperate);
|
|||
|
BLL.LogService.AddSys_Log(this.CurrUser, newMenuFlowOperate.AuditFlowName, newMenuFlowOperate.FlowOperateId,BLL.Const.SysConstSetMenuId,BLL.Const.BtnAdd);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
newMenuFlowOperate.FlowOperateId = this.FlowOperateId;
|
|||
|
BLL.MenuFlowOperateService.UpdateAuditFlow(newMenuFlowOperate);
|
|||
|
BLL.LogService.AddSys_Log(this.CurrUser, newMenuFlowOperate.AuditFlowName, newMenuFlowOperate.FlowOperateId, BLL.Const.SysConstSetMenuId, BLL.Const.BtnModify);
|
|||
|
}
|
|||
|
|
|||
|
ShowNotify("设置成功!", MessageBoxIcon.Success);
|
|||
|
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 加载角色下拉框
|
|||
|
/// </summary>
|
|||
|
private void BindDropDownBox()
|
|||
|
{
|
|||
|
string strSql = @"SELECT RoleId,RoleName FROM Sys_Role WHERE IsAuditFlow=1 ORDER BY RoleCode";
|
|||
|
DataTable tb = SQLHelper.GetDataTableRunText(strSql, null);
|
|||
|
rbRoles.DataSource = tb;
|
|||
|
this.rbRoles.DataTextField = "RoleName";
|
|||
|
this.rbRoles.DataValueField = "RoleId";
|
|||
|
rbRoles.DataBind();
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 得到角色ID字符串
|
|||
|
/// </summary>
|
|||
|
/// <param name="bigType"></param>
|
|||
|
/// <returns></returns>
|
|||
|
protected string ConvertRole(string[] roleIds)
|
|||
|
{
|
|||
|
string roles = null;
|
|||
|
if (roleIds != null && roleIds.Count() > 0)
|
|||
|
{
|
|||
|
foreach (string roleId in roleIds)
|
|||
|
{
|
|||
|
roles += roleId + ",";
|
|||
|
}
|
|||
|
if (roles != string.Empty)
|
|||
|
{
|
|||
|
roles = roles.Substring(0, roles.Length - 1); ;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return roles;
|
|||
|
}
|
|||
|
|
|||
|
#region 是否审核结束
|
|||
|
/// <summary>
|
|||
|
/// 是否审核结束
|
|||
|
/// </summary>
|
|||
|
/// <param name="sender"></param>
|
|||
|
/// <param name="e"></param>
|
|||
|
protected void IsFlowEnd_CheckedChanged(object sender, CheckedEventArgs e)
|
|||
|
{
|
|||
|
this.SetIsFlowEnd();
|
|||
|
}
|
|||
|
|
|||
|
private void SetIsFlowEnd()
|
|||
|
{
|
|||
|
if (IsFlowEnd.Checked)
|
|||
|
{
|
|||
|
this.drpRoles.Value = null;
|
|||
|
this.drpRoles.Text = string.Empty;
|
|||
|
this.drpRoles.Hidden = true;
|
|||
|
if (string.IsNullOrEmpty(this.txtAuditFlowName.Text))
|
|||
|
{
|
|||
|
this.txtAuditFlowName.Text = "完成";
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
this.drpRoles.Hidden = false;
|
|||
|
var getIsEnd = Funs.DB.Sys_MenuFlowOperate.FirstOrDefault(x => x.FlowOperateId != this.FlowOperateId && x.IsFlowEnd == true);
|
|||
|
if (getIsEnd != null)
|
|||
|
{
|
|||
|
this.IsFlowEnd.Enabled = false;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
protected void txtFlowStep_TextChanged(object sender, EventArgs e)
|
|||
|
{
|
|||
|
int maxId = 0;
|
|||
|
string str = "SELECT (ISNULL(MAX(GroupNum),0)+1) FROM Sys_MenuFlowOperate WHERE MenuId='" + this.MenuId + "' AND FlowStep=" + this.txtFlowStep.Text;
|
|||
|
maxId = SQLHelper.GetIntValue(str);
|
|||
|
this.txtGroupNum.Text = maxId.ToString();
|
|||
|
this.txtOrderNum.Text = "1";
|
|||
|
}
|
|||
|
|
|||
|
protected void txtGroupNum_TextChanged(object sender, EventArgs e)
|
|||
|
{
|
|||
|
int maxId = 0;
|
|||
|
string str = "SELECT (ISNULL(MAX(OrderNum),0)+1) FROM Sys_MenuFlowOperate WHERE MenuId='" + this.MenuId + "' AND FlowStep=" + this.txtFlowStep.Text + " AND GroupNum=" + this.txtGroupNum.Text;
|
|||
|
maxId = SQLHelper.GetIntValue(str);
|
|||
|
this.txtOrderNum.Text = maxId.ToString();
|
|||
|
}
|
|||
|
|
|||
|
protected string checkValues()
|
|||
|
{
|
|||
|
string mes = string.Empty;
|
|||
|
int FlowStep = Funs.GetNewInt(this.txtFlowStep.Text) ?? 1;
|
|||
|
int GroupNum = Funs.GetNewInt(this.txtGroupNum.Text) ?? 1;
|
|||
|
int OrderNum = Funs.GetNewInt(this.txtOrderNum.Text) ?? 1;
|
|||
|
var getFlows = from x in Funs.DB.Sys_MenuFlowOperate where x.MenuId ==this.MenuId select x;
|
|||
|
if (getFlows.Count() > 0)
|
|||
|
{
|
|||
|
if (FlowStep != 1)
|
|||
|
{
|
|||
|
var sort = getFlows.FirstOrDefault(x => x.FlowStep == FlowStep || x.FlowStep == (FlowStep - 1));
|
|||
|
if (sort == null)
|
|||
|
{
|
|||
|
mes += "步骤断号情况,请修改后再保存。";
|
|||
|
}
|
|||
|
}
|
|||
|
if (GroupNum != 1)
|
|||
|
{
|
|||
|
var group = getFlows.FirstOrDefault(x => x.FlowStep == FlowStep && (x.GroupNum == GroupNum || x.GroupNum == (GroupNum - 1)));
|
|||
|
if (group == null)
|
|||
|
{
|
|||
|
mes += "组号断号情况,请修改后再保存。";
|
|||
|
}
|
|||
|
}
|
|||
|
if (OrderNum != 1)
|
|||
|
{
|
|||
|
var order = getFlows.FirstOrDefault(x => x.FlowStep == FlowStep && x.GroupNum == GroupNum && x.OrderNum == (OrderNum-1));
|
|||
|
if (order == null)
|
|||
|
{
|
|||
|
mes += "组内序号断号情况,请修改后再保存。";
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if (FlowStep != 1)
|
|||
|
{
|
|||
|
mes += "步骤需从1开始。";
|
|||
|
}
|
|||
|
if (GroupNum != 1)
|
|||
|
{
|
|||
|
mes += "组号需从1开始。";
|
|||
|
}
|
|||
|
if (OrderNum != 1)
|
|||
|
{
|
|||
|
mes += "组内序号需从1开始。";
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return mes;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|