You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
469 lines
15 KiB
C#
469 lines
15 KiB
C#
using BP.DA;
|
|
using BP.En;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace BP.WF
|
|
{
|
|
public class WorkOptAttr
|
|
{
|
|
#region 基本属性
|
|
/// <summary>
|
|
/// 状态
|
|
/// </summary>
|
|
public const string NodeID = "NodeID";
|
|
//
|
|
public const string ToNodeID = "ToNodeID";
|
|
/// <summary>
|
|
/// H
|
|
/// </summary>
|
|
public const string WorkID = "WorkID";
|
|
public const string EmpNo = "EmpNo";
|
|
/// <summary>
|
|
/// 发送到人员
|
|
/// </summary>
|
|
public const string SendEmps = "SendEmps";
|
|
/// <summary>
|
|
/// 发送到部门
|
|
/// </summary>
|
|
public const string SendDepts = "SendDepts";
|
|
/// <summary>
|
|
/// 发送到角色.
|
|
/// </summary>
|
|
public const string SendStations = "SendStations";
|
|
/// <summary>
|
|
/// 发送内容
|
|
/// </summary>
|
|
public const string SendNote = "SendNote";
|
|
|
|
/// <summary>
|
|
/// 抄送到人员
|
|
/// </summary>
|
|
public const string CCEmps = "CCEmps";
|
|
/// <summary>
|
|
/// 抄送到部门
|
|
/// </summary>
|
|
public const string CCDepts = "CCDepts";
|
|
/// <summary>
|
|
/// 抄送到角色.
|
|
/// </summary>
|
|
public const string CCStations = "CCStations";
|
|
/// <summary>
|
|
/// 抄送内容
|
|
/// </summary>
|
|
public const string CCNote = "CCNote";
|
|
public const string FlowNo = "FlowNo";
|
|
#endregion
|
|
|
|
public const string Title = "Title";
|
|
public const string NodeName = "NodeName";
|
|
public const string ToNodeName = "ToNodeName";
|
|
public const string TodoEmps = "TodoEmps";
|
|
public const string SenderName = "SenderName";
|
|
public const string SendRDT = "SendRDT";
|
|
public const string SendSDT = "SendSDT";
|
|
/// <summary>
|
|
/// 发起人
|
|
/// </summary>
|
|
public const string StarterName = "StarterName";
|
|
/// <summary>
|
|
/// 发起日期
|
|
/// </summary>
|
|
public const string StartRDT = "StartRDT";
|
|
}
|
|
/// <summary>
|
|
/// 退回轨迹
|
|
/// </summary>
|
|
public class WorkOpt : EntityMyPK
|
|
{
|
|
#region 基本属性
|
|
/// <summary>
|
|
/// 工作ID
|
|
/// </summary>
|
|
public Int64 WorkID
|
|
{
|
|
get
|
|
{
|
|
return this.GetValInt64ByKey(WorkOptAttr.WorkID);
|
|
}
|
|
set
|
|
{
|
|
SetValByKey(WorkOptAttr.WorkID, value);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 退回到节点
|
|
/// </summary>
|
|
public int NodeID
|
|
{
|
|
get
|
|
{
|
|
return this.GetValIntByKey(WorkOptAttr.NodeID);
|
|
}
|
|
set
|
|
{
|
|
SetValByKey(WorkOptAttr.NodeID, value);
|
|
}
|
|
}
|
|
public int ToNodeID
|
|
{
|
|
get
|
|
{
|
|
return this.GetValIntByKey(WorkOptAttr.ToNodeID);
|
|
}
|
|
set
|
|
{
|
|
SetValByKey(WorkOptAttr.ToNodeID, value);
|
|
}
|
|
}
|
|
public string FlowNo
|
|
{
|
|
get
|
|
{
|
|
return this.GetValStrByKey(WorkOptAttr.FlowNo);
|
|
}
|
|
set
|
|
{
|
|
SetValByKey(WorkOptAttr.FlowNo, value);
|
|
}
|
|
}
|
|
public string SendNote
|
|
{
|
|
get
|
|
{
|
|
return this.GetValStrByKey(WorkOptAttr.SendNote);
|
|
}
|
|
set
|
|
{
|
|
SetValByKey(WorkOptAttr.SendNote, value);
|
|
}
|
|
}
|
|
public string EmpNo
|
|
{
|
|
get
|
|
{
|
|
return this.GetValStrByKey(WorkOptAttr.EmpNo);
|
|
}
|
|
set
|
|
{
|
|
SetValByKey(WorkOptAttr.EmpNo, value);
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 退回人
|
|
/// </summary>
|
|
public string SendEmps
|
|
{
|
|
get
|
|
{
|
|
return this.GetValStringByKey(WorkOptAttr.SendEmps);
|
|
}
|
|
set
|
|
{
|
|
SetValByKey(WorkOptAttr.SendEmps, value);
|
|
}
|
|
}
|
|
public string SendDepts
|
|
{
|
|
get
|
|
{
|
|
return this.GetValStringByKey(WorkOptAttr.SendDepts);
|
|
}
|
|
set
|
|
{
|
|
SetValByKey(WorkOptAttr.SendDepts, value);
|
|
}
|
|
}
|
|
public string SendStas
|
|
{
|
|
get
|
|
{
|
|
return this.GetValStringByKey(WorkOptAttr.SendStations);
|
|
}
|
|
set
|
|
{
|
|
SetValByKey(WorkOptAttr.SendStations, value);
|
|
}
|
|
}
|
|
public string CCEmps
|
|
{
|
|
get
|
|
{
|
|
return this.GetValStringByKey(WorkOptAttr.CCEmps);
|
|
}
|
|
set
|
|
{
|
|
SetValByKey(WorkOptAttr.CCEmps, value);
|
|
}
|
|
}
|
|
public string CCDepts
|
|
{
|
|
get
|
|
{
|
|
return this.GetValStringByKey(WorkOptAttr.CCDepts);
|
|
}
|
|
set
|
|
{
|
|
SetValByKey(WorkOptAttr.CCDepts, value);
|
|
}
|
|
}
|
|
public string CCStations
|
|
{
|
|
get
|
|
{
|
|
return this.GetValStringByKey(WorkOptAttr.CCStations);
|
|
}
|
|
set
|
|
{
|
|
SetValByKey(WorkOptAttr.CCStations, value);
|
|
}
|
|
}
|
|
public string CCNote
|
|
{
|
|
get
|
|
{
|
|
return this.GetValStringByKey(WorkOptAttr.CCNote);
|
|
}
|
|
set
|
|
{
|
|
SetValByKey(WorkOptAttr.CCNote, value);
|
|
}
|
|
}
|
|
|
|
public string SendRDT
|
|
{
|
|
get
|
|
{
|
|
return this.GetValStrByKey(WorkOptAttr.SendRDT);
|
|
}
|
|
set
|
|
{
|
|
SetValByKey(WorkOptAttr.SendRDT, value);
|
|
}
|
|
}
|
|
|
|
public string StarterName
|
|
{
|
|
get
|
|
{
|
|
return this.GetValStrByKey(WorkOptAttr.StarterName);
|
|
}
|
|
set
|
|
{
|
|
SetValByKey(WorkOptAttr.StarterName, value);
|
|
}
|
|
}
|
|
public string StartRDT
|
|
{
|
|
get
|
|
{
|
|
return this.GetValStrByKey(WorkOptAttr.StartRDT);
|
|
}
|
|
set
|
|
{
|
|
SetValByKey(WorkOptAttr.StartRDT, value);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 构造函数
|
|
public WorkOpt() { }
|
|
/// <summary>
|
|
/// 退回轨迹
|
|
/// </summary>
|
|
public WorkOpt(string mypk)
|
|
{
|
|
this.MyPK = mypk;
|
|
this.Retrieve();
|
|
}
|
|
/// <summary>
|
|
/// 重写基类方法
|
|
/// </summary>
|
|
public override Map EnMap
|
|
{
|
|
get
|
|
{
|
|
if (this._enMap != null)
|
|
return this._enMap;
|
|
|
|
Map map = new Map("WF_WorkOpt", "工作处理器");
|
|
|
|
map.AddMyPK();
|
|
|
|
map.AddTBInt(WorkOptAttr.WorkID, 0, "工作ID", false, true);
|
|
map.AddTBInt(WorkOptAttr.NodeID, 0, "节点ID", false, true);
|
|
map.AddTBInt(WorkOptAttr.ToNodeID, 0, "到达的节点ID", false, true);
|
|
|
|
map.AddTBString(WorkOptAttr.EmpNo, null, "操作员", true, true, 0, 100, 10);
|
|
map.AddTBString(WorkOptAttr.FlowNo, null, "FlowNo", false, false, 0, 10, 10);
|
|
|
|
|
|
map.AddGroupAttr("发送");
|
|
map.AddTBString(WorkOptAttr.SendEmps, null, "发送到人员", true, true, 0, 500, 10, true);
|
|
map.AddTBString(WorkOptAttr.SendEmps + "T", null, "发送到人员", false, false, 0, 500, 10, true);
|
|
|
|
map.AddTBString(WorkOptAttr.SendDepts, null, "发送到部门", true, true, 0, 500, 10, true);
|
|
map.AddTBString(WorkOptAttr.SendDepts + "T", null, "发送到部门", false, false, 0, 500, 10, true);
|
|
|
|
map.AddTBString(WorkOptAttr.SendStations, null, "发送到角色", true, true, 0, 100, 10, true);
|
|
map.AddTBString(WorkOptAttr.SendStations + "T", null, "发送到角色", false, false, 0, 500, 10, true);
|
|
map.AddTBStringDoc(WorkOptAttr.SendNote, null, "小纸条", true, true, true);
|
|
|
|
map.AddGroupAttr("抄送");
|
|
map.AddTBString(WorkOptAttr.CCEmps, null, "抄送到人员", true, true, 0, 100, 10, true);
|
|
map.AddTBString(WorkOptAttr.CCEmps + "T", null, "抄送到人员", false, false, 0, 500, 10, true);
|
|
|
|
map.AddTBString(WorkOptAttr.CCDepts, null, "抄送到部门", true, true, 0, 100, 10, true);
|
|
map.AddTBString(WorkOptAttr.CCDepts + "T", null, "抄送到部门", false, false, 0, 500, 10, true);
|
|
|
|
map.AddTBString(WorkOptAttr.CCStations, null, "抄送到角色", true, true, 0, 100, 10, true);
|
|
map.AddTBString(WorkOptAttr.CCStations + "T", null, "抄送到部门", false, false, 0, 500, 10, true);
|
|
map.AddTBStringDoc(WorkOptAttr.CCNote, null, "抄送说明", true, true, true);
|
|
|
|
map.AddGroupAttr("工作信息");
|
|
map.AddTBString(WorkOptAttr.Title, null, "标题", true, true, 0, 200, 10, true);
|
|
map.AddTBString(WorkOptAttr.NodeName, null, "当前节点", true, true, 0, 500, 10, false, null);
|
|
map.AddTBString(WorkOptAttr.ToNodeName, null, "到达节点", true, true, 0, 500, 10, false, null);
|
|
|
|
map.AddTBString(WorkOptAttr.StarterName, null, "发起人", true, true, 0, 200, 10, false, null);
|
|
map.AddTBDateTime(WorkOptAttr.StartRDT, null, "发起日期", true, true);
|
|
|
|
map.AddTBInt(WorkOptAttr.ToNodeID, 0, "到达节点ID", false, false);
|
|
|
|
map.AddTBString(WorkOptAttr.TodoEmps, null, "当前处理人", true, true, 0, 200, 10, true);
|
|
map.AddTBString(WorkOptAttr.SenderName, null, "发送人", true, true, 0, 100, 10);
|
|
|
|
map.AddTBString(WorkOptAttr.SendRDT, null, "发送日期", true, true, 0, 100, 10);
|
|
map.AddTBString(WorkOptAttr.SendSDT, null, "限期", true, true, 0, 100, 10);
|
|
map.AddTBInt(WorkOptAttr.WorkID, 0, "工作ID", true, true);
|
|
|
|
this._enMap = map;
|
|
return this._enMap;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
protected override bool beforeUpdateInsertAction()
|
|
{
|
|
if (BP.DA.DataType.IsNullOrEmpty(this.StartRDT) == true)
|
|
{
|
|
this.StarterName = BP.Web.WebUser.DeptName + "\\" + BP.Web.WebUser.Name;
|
|
this.StartRDT = BP.DA.DataType.CurrentDateTime;
|
|
}
|
|
return base.beforeUpdateInsertAction();
|
|
}
|
|
/// <summary>
|
|
/// 获取手动抄送时抄送人信息
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public DataTable GenerCCers()
|
|
{
|
|
DataTable dt = new DataTable();
|
|
dt.Columns.Add(new DataColumn("No", typeof(string)));
|
|
dt.Columns.Add(new DataColumn("Name", typeof(string)));
|
|
|
|
DataTable mydt = new DataTable();
|
|
DataRow dr = null;
|
|
string sql = "";
|
|
//抄送到人员
|
|
if (DataType.IsNullOrEmpty(this.CCEmps) == false)
|
|
{
|
|
string[] empNos = this.CCEmps.Split(',');
|
|
string[] empNames = this.GetValStrByKey(WorkOptAttr.CCEmps + "T").Split(',');
|
|
for (int i = 0; i < empNos.Length; i++)
|
|
{
|
|
dr = dt.NewRow();
|
|
dr["No"] = empNos[i];
|
|
dr["Name"] = empNames[i];
|
|
dt.Rows.Add(dr);
|
|
}
|
|
}
|
|
//抄送到部门
|
|
if (DataType.IsNullOrEmpty(this.CCDepts) == false)
|
|
{
|
|
sql = "SELECT " + BP.Sys.Base.Glo.UserNo + ",Name FROM Port_Emp A, Port_DeptEmp B WHERE A." + BP.Sys.Base.Glo.UserNoWhitOutAS + "= B.FK_Emp AND B.FK_Dept IN(" + BP.Port.Glo.GenerWhereInSQL(this.CCDepts) + ")";
|
|
mydt = DBAccess.RunSQLReturnTable(sql);
|
|
foreach (DataRow mydr in mydt.Rows)
|
|
{
|
|
dr = dt.NewRow();
|
|
dr["No"] = mydr["No"];
|
|
dr["Name"] = mydr["Name"];
|
|
dt.Rows.Add(dr);
|
|
}
|
|
}
|
|
//抄送到岗位
|
|
if (DataType.IsNullOrEmpty(this.CCStations) == false)
|
|
{
|
|
sql = "SELECT " + BP.Sys.Base.Glo.UserNo + ",Name FROM Port_Emp A, Port_DeptEmpStation B WHERE A.No= B.FK_Emp AND B.FK_Station IN("+ BP.Port.Glo.GenerWhereInSQL(this.CCStations) + ")";
|
|
mydt = DBAccess.RunSQLReturnTable(sql);
|
|
foreach (DataRow mydr in mydt.Rows)
|
|
{
|
|
dr = dt.NewRow();
|
|
dr["No"] = mydr["No"];
|
|
dr["Name"] = mydr["Name"];
|
|
dt.Rows.Add(dr);
|
|
}
|
|
}
|
|
//将dt中的重复数据过滤掉
|
|
DataView myDataView = new DataView(dt);
|
|
//此处可加任意数据项组合
|
|
string[] strComuns = { "No", "Name" };
|
|
return myDataView.ToTable(true, strComuns);
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 退回轨迹s
|
|
/// </summary>
|
|
public class WorkOpts : Entities
|
|
{
|
|
#region 构造
|
|
/// <summary>
|
|
/// 退回轨迹s
|
|
/// </summary>
|
|
public WorkOpts()
|
|
{
|
|
}
|
|
/// <summary>
|
|
/// 得到它的 Entity
|
|
/// </summary>
|
|
public override Entity GetNewEntity
|
|
{
|
|
get
|
|
{
|
|
return new WorkOpt();
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 为了适应自动翻译成java的需要,把实体转换成List.
|
|
/// <summary>
|
|
/// 转化成 java list,C#不能调用.
|
|
/// </summary>
|
|
/// <returns>List</returns>
|
|
public System.Collections.Generic.IList<WorkOpt> ToJavaList()
|
|
{
|
|
return (System.Collections.Generic.IList<WorkOpt>)this;
|
|
}
|
|
/// <summary>
|
|
/// 转化成list
|
|
/// </summary>
|
|
/// <returns>List</returns>
|
|
public System.Collections.Generic.List<WorkOpt> Tolist()
|
|
{
|
|
System.Collections.Generic.List<WorkOpt> list = new System.Collections.Generic.List<WorkOpt>();
|
|
for (int i = 0; i < this.Count; i++)
|
|
{
|
|
list.Add((WorkOpt)this[i]);
|
|
}
|
|
return list;
|
|
}
|
|
#endregion 为了适应自动翻译成java的需要,把实体转换成List.
|
|
}
|
|
|
|
}
|