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 定义项 /// /// 菜单ID /// public string MenuId { get { return (string)ViewState["MenuId"]; } set { ViewState["MenuId"] = value; } } /// /// 流程ID /// public string FlowOperateId { get { return (string)ViewState["FlowOperateId"]; } set { ViewState["FlowOperateId"] = value; } } #endregion #region 加载页面 /// /// 加载页面 /// /// /// 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"; } /// /// 保存按钮 /// /// /// 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()); } /// /// 加载角色下拉框 /// 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(); } /// /// 得到角色ID字符串 /// /// /// 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 是否审核结束 /// /// 是否审核结束 /// /// /// 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; } } }