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;
 | |
|         }
 | |
|     }
 | |
| } |