using Lskj.Business;
using Lskj.Business.Impl;
using Lskj.Control;
using Lskj.Control.Model;
using Lskj.Model;
using Lskj.Util;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Lskj.PubUserTomodule.AuditPermissionControls
{
public partial class StepPage2 : UserControl
{
private string mMenuCode;
public BaseflowTypeModel SelectBaseflowTypeModel;
public BillflowTypeModel SelectBillflowTypeModel;
///
/// 选中的流转步骤
///
public StepItem2 SeletStepItem2Obj;
///
/// 判断第二页是否有操作权限
///
public bool SerpPage2Power;
///
/// 是基础模块true 还是单据
///
public bool isBasis;
public StepPage2()
{
InitializeComponent();
this.labelTextEdit1.TextEdit.EditValueChanged += new EventHandler(OnUserEditValueChanged);
this.labelComboxEdit1.TextEdit.EditValueChanged += new EventHandler(OnDepEditValueChanged);
GridDragMemo dragGrid = new GridDragMemo(this.gridView, this.txtEdit);
GridDragMemo dragGrid2 = new GridDragMemo(this.gridView2, this.txtEdit);
dragGrid.OnDragComplete += new GridFragMemoEditCompleteEventHandler(OnDragGridCompleted);
dragGrid2.OnDragComplete += new GridFragMemoEditCompleteEventHandler(OnDragGridCompleted);
}
#region 公共方法
///
/// 说明:初始化界面控件
/// 创建人:龚宇超
/// 创建日期:2019-06-21
/// 修改人:
/// 修改日期:o
/// 修改备注:
/// 版本:1.0
///
public void InitializeControl(string menuCode, bool Basis)
{
this.isBasis = Basis;
this.mMenuCode = menuCode;
this.InitializeStepFlow();
this.InitializeUsers();
this.InitializeDeps();
}
///
/// 说明:添加流转类别
/// 创建人:龚宇超
/// 创建日期:2019-06-24
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
public void AddFlowTypeItem(string typeName)
{
if (isBasis)
{
BaseflowTypeModel model = new BaseflowTypeModel
{
typeCode = mMenuCode,
typekey = Guid.NewGuid().ToString().ToLower(),
billType = WorkFlowBaseImpl.GetBaseFlowBaseType(),
billTypeName = typeName
};
try
{
// 保存
if (WorkFlowBaseImpl.SaveBaseFlowType(model))
{
// 重排列表
InitializeStepFlow();
}
}
catch (Exception ex)
{
throw;
// MessageUtil.Show("保存失败!" + ex.Message);
}
}
else
{
BillflowTypeModel model = new BillflowTypeModel
{
typeCode = mMenuCode,
typekey = Guid.NewGuid().ToString().ToLower(),
billType = WorkFlowBillImpl.GetBillFlowBillType(),
billTypeName = typeName
};
try
{
// 保存
if (WorkFlowBillImpl.SaveBillFlowType(model))
{
// 重排列表
InitializeStepFlow();
}
}
catch (Exception ex)
{
throw;
//MessageUtil.Show("保存失败!" + ex.Message);
}
}
}
///
/// 说明:更新流转步骤数据
/// 创建人:龚宇超
/// 创建日期:2019-06-25
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
public void UpdateBaseFlowType()
{
if (this.VerifyNull())
{
// 获取基本数据
BaseflowTypeModel model = this.SelectBaseflowTypeModel;
model.billTypeName = this.ltestepGroup.EditText;
model.operUser = this.txtEdit.EditValue + "";
bool result = WorkFlowBaseImpl.UpdateBaseFlowType(model);
if (result)
{
this.SeletStepItem2Obj.TitleLabelObj.Text = this.SeletStepItem2Obj.TabIndex + "、" + model.billTypeName;
this.SelectBaseflowTypeModel = model;
}
MessageUtil.Show(result ? "保存成功!" : "保存失败!");
}
}
///
/// 说明:更新流转步骤数据
/// 创建人:龚宇超
/// 创建日期:2019-06-25
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
public void UpdateBillFlowType()
{
if (this.VerifyNull())
{
// 获取基本数据
BillflowTypeModel model = this.SelectBillflowTypeModel;
model.billTypeName = this.ltestepGroup.EditText;
model.operUser = this.txtEdit.EditValue + "";
bool result = WorkFlowBillImpl.UpdateBillFlowType(model);
if (result)
{
this.SeletStepItem2Obj.TitleLabelObj.Text = this.SeletStepItem2Obj.TabIndex + "、" + model.billTypeName;
this.SelectBillflowTypeModel = model;
}
MessageUtil.Show(result ? "保存成功!" : "保存失败!");
}
}
#endregion
#region 私有方法
///
/// 说明:初始化小类设置
/// 创建人:龚宇超
/// 创建日期:2019-06-24
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
public void InitializeStepFlow()
{
this.PlStep2Container.Controls.Clear();
DataTable table = isBasis ? WorkFlowBaseImpl.GetBaseFlowType(mMenuCode) : WorkFlowBillImpl.GetBillFlowType(mMenuCode);
if (table.Rows.Count == 0)
{
this.panelControl1.Visible = false;
return;
}
this.panelControl1.Visible = true;
for (int i = table.Rows.Count; i > 0; i--)
{
DataRow rowItem = table.Rows[i - 1];
if (isBasis)
{
BaseflowTypeModel model = new BaseflowTypeModel(rowItem);
// 设置面板值
if (i == 1)
{
this.SelectBaseflowTypeModel = model;
this.SetFlowTypeItem(model);
}
this.PlStep2Container.Controls.Add(this.InitStepFlowTypeItem(model, i));
}
else
{
BillflowTypeModel model = new BillflowTypeModel(rowItem);
// 设置面板值
if (i == 1)
{
this.SelectBillflowTypeModel = model;
this.SetFlowTypeItem(model);
}
this.PlStep2Container.Controls.Add(this.InitStepFlowTypeItem(model, i));
}
}
}
///
/// 说明:
/// 创建人:龚宇超
/// 创建日期:2019-06-24
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
private void InitializeUsers()
{
DataTable table = isBasis ? WorkFlowBaseImpl.GetWorkFlowUsers("", "") : WorkFlowBillImpl.GetWorkFlowUsers("", "");
this.gridControl.DataSource = table;
DataTable Roletable = isBasis ? WorkFlowBaseImpl.GetWorkFlowRole("") : WorkFlowBillImpl.GetWorkFlowRole("");
this.gridControl.DataSource = table;
this.gridControl1.DataSource = Roletable;
//GridDragMemo dragGrid = new GridDragMemo(this.gridView, this.txtEdit);
//GridDragMemo dragGrid2 = new GridDragMemo(this.gridView2, this.txtEdit);
//dragGrid.OnDragComplete += new GridFragMemoEditCompleteEventHandler(OnDragGridCompleted);
//dragGrid2.OnDragComplete += new GridFragMemoEditCompleteEventHandler(OnDragGridCompleted);
}
///
/// 说明:初始化部门数据
/// 创建人:龚宇超
/// 创建日期:2019-06-24
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
private void InitializeDeps()
{
DataTable table = isBasis ? WorkFlowBaseImpl.GetDeps() : WorkFlowBillImpl.GetDeps();
this.labelComboxEdit1.ValueMember = "departmentid";
this.labelComboxEdit1.ValueField = "departmentid";
this.labelComboxEdit1.TextField = "departmentname";
this.labelComboxEdit1.SetDataSource(table);
}
///
/// 说明:设置面板值
/// 创建人:龚宇超
/// 创建日期:2019-06-24
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The model.
private void SetFlowTypeItem(BaseflowTypeModel model)
{
if (model != null)
{
this.ltestepGroup.EditText = model.billTypeName;
this.txtEdit.EditValue = model.operUser;
this.SelectBaseflowTypeModel = model;
}
}
///
/// 说明:设置面板值
/// 创建人:龚宇超
/// 创建日期:2019-06-24
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The model.
private void SetFlowTypeItem(BillflowTypeModel model)
{
if (model != null)
{
this.ltestepGroup.EditText = model.billTypeName;
this.txtEdit.EditValue = model.operUser;
this.SelectBillflowTypeModel = model;
}
}
///
/// 说明:初始化小类设置
/// 创建人:龚宇超
/// 创建日期:2019-06-24
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
private StepItem2 InitStepFlowTypeItem(BillflowTypeModel model, int pos)
{
StepItem2 item = new StepItem2();
item.TitleLabelObj.Text = pos + "、" + model.billTypeName;
if (SerpPage2Power)
{
item.DeletePabelObj.Enabled = false;
}
item.DeletePabelObj.Click += new EventHandler(OnDeletePabelObjClick);
item.DeletePabelObj.Tag = model;
item.Dock = DockStyle.Top;
item.Tag = item.TitleLabelObj.Tag = model;
item.SetHoverEvent(OnTitleLabelObjClick);
item.TabIndex = pos;
if (pos == 1)
{
SeletStepItem2Obj = item;
item.SetDefaultSelectItem(item);
}
return item;
}
///
/// 说明:初始化小类设置
/// 创建人:龚宇超
/// 创建日期:2019-06-24
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
private StepItem2 InitStepFlowTypeItem(BaseflowTypeModel model, int pos)
{
StepItem2 item = new StepItem2();
item.TitleLabelObj.Text = pos + "、" + model.billTypeName;
if (SerpPage2Power)
{
item.DeletePabelObj.Enabled = false;
}
item.DeletePabelObj.Click += new EventHandler(OnDeletePabelObjClick);
item.DeletePabelObj.Tag = model;
item.Dock = DockStyle.Top;
item.Tag = item.TitleLabelObj.Tag = model;
item.SetHoverEvent(OnTitleLabelObjClick);
item.TabIndex = pos;
if (pos == 1)
{
SeletStepItem2Obj = item;
item.SetDefaultSelectItem(item);
}
return item;
}
///
/// 说明:验证数据合法性
/// 创建人:龚宇超
/// 创建日期:2017-11-06
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// true if XXXX, false otherwise.
public bool VerifyNull()
{
foreach (System.Windows.Forms.Control item in groupBox1.Controls)
{
if (item is LabelTextEdit)
{
LabelTextEdit textEdit = item as LabelTextEdit;
if (string.IsNullOrEmpty(textEdit.EditText) && textEdit.Required)
{
textEdit.Focus();
MessageUtil.Show(textEdit.LabelText + "不能为空!");
return false;
}
}
}
return true;
}
#endregion
#region 事件相关
///
/// 说明:删除流转分类
/// 创建人:龚宇超
/// 创建日期:2019-06-21
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The sender.
/// The instance containing the event data.
void OnDeletePabelObjClick(object sender, EventArgs e)
{
if (isBasis)
{
Panel deletePanel = sender as Panel;
if (deletePanel != null && deletePanel.Tag != null)
{
BaseflowTypeModel model = deletePanel.Tag as BaseflowTypeModel;
if (MessageUtil.Show("删除审批方案将同步删除方案步骤相关数据\r\n是否删除?", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
// 验证删除存储过程
string tipMsg = string.Empty;
if (BaseImpl.deleteFlow(3, mMenuCode, model.typeCode, model.id, out tipMsg) == 1)
{
MessageUtil.Show("删除成功!");
// 重排列表
InitializeStepFlow();
}
else
{
MessageUtil.Show(tipMsg);
}
}
}
}
else
{
Panel deletePanel = sender as Panel;
if (deletePanel != null && deletePanel.Tag != null)
{
BillflowTypeModel model = deletePanel.Tag as BillflowTypeModel;
if (MessageUtil.Show("删除审批方案将同步删除方案步骤相关数据\r\n是否删除?", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
try
{
// 验证删除存储过程
string tipMsg = string.Empty;
if (BaseImpl.deleteFlow(4, mMenuCode, model.typeCode, model.id, out tipMsg) == 1)
{
MessageUtil.Show("删除成功!");
// 重排列表
InitializeStepFlow();
}
else
{
MessageUtil.Show(tipMsg);
}
}
catch (Exception ex)
{
throw;
//MessageUtil.Show("删除失败:\r\n" + ex.Message);
}
}
}
}
}
///
/// 说明:点击流转步骤加载数据
/// 创建人:龚宇超
/// 创建日期:2019-06-21
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The sender.
/// The instance containing the event data.
///
void OnTitleLabelObjClick(StepItem2 before, StepItem2 after)
{
if (isBasis)
{
BaseflowTypeModel model = after.Tag as BaseflowTypeModel;
this.SeletStepItem2Obj = after;
this.SetFlowTypeItem(model);
}
else {
BillflowTypeModel model = after.Tag as BillflowTypeModel;
this.SeletStepItem2Obj = after;
this.SetFlowTypeItem(model);
}
}
///
/// 说明:部门下拉框值改变后
/// 创建人:龚宇超
/// 创建日期:2019-06-24
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The sender.
/// The instance containing the event data.
void OnDepEditValueChanged(object sender, EventArgs e)
{
string depid = this.labelComboxEdit1.EditValue;
string mf = this.labelTextEdit1.EditText;
DataTable table = isBasis?WorkFlowBaseImpl.GetWorkFlowUsers(depid, mf) : WorkFlowBillImpl.GetWorkFlowUsers(depid, mf);
DataTable Roletable = isBasis ? WorkFlowBaseImpl.GetWorkFlowRole(mf): WorkFlowBillImpl.GetWorkFlowRole(mf);
this.gridControl.DataSource = table;
this.gridControl1.DataSource = Roletable;
}
///
/// 说明:用户值改变后
/// 创建人:龚宇超
/// 创建日期:2019-06-24
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The sender.
/// The instance containing the event data.
void OnUserEditValueChanged(object sender, EventArgs e)
{
string depid = this.labelComboxEdit1.EditValue;
string mf = this.labelTextEdit1.EditText;
DataTable table = WorkFlowBaseImpl.GetWorkFlowUsers(depid, mf);
DataTable Roletable = WorkFlowBaseImpl.GetWorkFlowRole(mf);
this.gridControl.DataSource = table;
this.gridControl1.DataSource = Roletable;
}
///
/// 说明:表格拖拽完成
/// 创建人:龚宇超
/// 创建日期:2017-11-14
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The sender.
/// The e.
protected void OnDragGridCompleted(object sender, GridDragMemoArgs e)
{
if (e.GridViewSelectRows == null || e.GridViewSelectRows.Length == 0) return;
try
{
string userNames = string.Empty;
if (e.SourceGridViewObj.Name == "gridView")
{
foreach (DataRow item in e.GridViewSelectRows)
{
userNames += item["employeename"] + ",";
}
}
else if (e.SourceGridViewObj.Name == "gridView2")
{
foreach (DataRow item in e.GridViewSelectRows)
{
userNames += "{&" + item["roleName"] + "&},";
}
//userNames = PowerImpl.getAllPersonnel(userNames);
//if (userNames.Equals(",")) userNames = "";
}
//List namesList = new List((this.txtEdit.EditValue + "").Split(','));
//foreach (string item in userNames.Split(','))
//{
// if (!namesList.Exists(t => t.Equals(item)))
// {
// this.txtEdit.EditValue += item + ",";
// }
//}
this.txtEdit.EditValue += userNames;
}
catch (Exception ex)
{
string Message = ErrorMessage.PromptErrorMessage(ex);
MessageUtil.Show(Message, ex.Message);
LogHelper.Instance.WriteError(ex);
//MessageUtil.Show(ResourceKeys.OperFault);
}
}
#endregion
}
}