using System;
using System.IO;
using System.Collections;
using System.Data;
using System.Text;
using BP.DA;
using BP.Sys;
using BP.Port;
using BP.En;
using BP.WF.Template;
using BP.Difference;
using BP.Web;
using BP.WF.Template.SFlow;
using BP.WF.Template.CCEn;
using BP.WF.Template.Frm;
namespace BP.WF
{
///
/// 流程
/// 记录了流程的信息.
/// 流程的编号,名称,建立时间.
///
public class TemplateFlow : BP.En.EntityNoName
{
#region 构造方法
///
/// 流程
///
public TemplateFlow()
{
this.No = "";
}
///
/// 重写基类方法
///
public override Map EnMap
{
get
{
if (this._enMap != null)
return this._enMap;
Map map = new Map("WF_Flow", "流程");
//取消了缓存.
map.DepositaryOfEntity = Depositary.Application;
map.CodeStruct = "3";
map.AddTBStringPK(FlowAttr.No, null, "编号", true, true, 1, 4, 3);
map.AddTBString(FlowAttr.Name, null, "名称", true, false, 0, 200, 10);
map.AddTBString(FlowAttr.FK_FlowSort, null, "流程类别", true, false, 0, 35, 10);
// map.AddDDLEntities(FlowAttr.FK_FlowSort, "01", "流程类别", new FlowSorts(), false);
map.AddTBString(FlowAttr.SysType, null, "系统类别", true, false, 0, 3, 10);
map.AddTBInt(FlowAttr.FlowRunWay, 0, "运行方式", false, false);
map.AddTBInt(FlowAttr.WorkModel, 0, "WorkModel", false, false);
map.AddTBString(FlowAttr.RunObj, null, "运行内容", true, false, 0, 500, 10);
map.AddTBString(FlowAttr.Note, null, "备注", true, false, 0, 300, 10);
map.AddTBString(FlowAttr.RunSQL, null, "流程结束执行后执行的SQL", true, false, 0, 500, 10);
map.AddTBInt(FlowAttr.NumOfBill, 0, "是否有单据", false, false);
map.AddTBInt(FlowAttr.NumOfDtl, 0, "NumOfDtl", false, false);
map.AddTBInt(FlowAttr.FlowAppType, 0, "流程类型", false, false);
map.AddTBInt(FlowAttr.ChartType, 1, "节点图形类型", false, false);
//map.AddTBInt(FlowAttr.IsFrmEnable, 0, "是否显示表单", true, true);
map.AddTBInt(FlowAttr.IsTruckEnable, 1, "是否显示轨迹图", true, true);
map.AddTBInt(FlowAttr.IsTimeBaseEnable, 1, "是否显示时间轴", true, true);
map.AddTBInt(FlowAttr.IsTableEnable, 1, "是否显示时间表", true, true);
//map.AddTBInt(FlowAttr.IsOPEnable, 0, "是否显示操作", true, true);
map.AddTBInt(FlowAttr.TrackOrderBy, 0, "排序方式", true, true);
map.AddTBInt(FlowAttr.SubFlowShowType, 0, "子流程轨迹图显示模式", true, true);
// map.AddBoolean(FlowAttr.IsOK, true, "是否启用", true, true);
map.AddTBInt(FlowAttr.IsCanStart, 1, "可以独立启动否?", true, true);
map.AddTBInt(FlowAttr.IsStartInMobile, 1, "是否可以在手机里发起?", true, true);
//(启用后,ccflow就会为已知道的节点填充处理人到WF_SelectAccper)
map.AddTBInt(FlowAttr.IsFullSA, 0, "是否自动计算未来的处理人?", false, false);
map.AddTBInt(FlowAttr.IsMD5, 0, "IsMD5", false, false);
//Hongyan
map.AddTBInt(FlowAttr.IsEnableDBVer, 0, "是否是启用数据版本控制", false, false);
map.AddTBInt(FlowAttr.Idx, 0, "显示顺序号(在发起列表中)", true, false);
map.AddTBInt(FlowAttr.SDTOfFlowRole, 0, "流程计划完成日期计算规则", true, false);
map.AddTBString(FlowAttr.SDTOfFlowRoleSQL, null, "流程计划完成日期计算规则SQL", false, false, 0, 200, 10);
// add 2013-01-01.
map.AddTBString(FlowAttr.PTable, null, "流程数据存储主表", true, false, 0, 50, 10);
// add 2019.11.07
map.AddTBString(FlowAttr.FrmUrl, null, "表单Url", true, false, 0, 150, 10, true);
// 草稿规则 "@0=无(不设草稿)@1=保存到待办@2=保存到草稿箱"
map.AddTBInt(FlowAttr.Draft, 0, "草稿规则", true, false);
// add 2013-02-05.
map.AddTBString(FlowAttr.TitleRole, null, "标题生成规则", true, false, 0, 90, 10, true);
map.AddTBString(FlowAttr.TitleRoleNodes, null, "生成标题的节点", true, false, 0, 300, 10, true);
// add 2013-02-14
map.AddTBString(FlowAttr.FlowMark, null, "流程标记", true, false, 0, 50, 10);
map.AddTBString(FlowAttr.FlowEventEntity, null, "FlowEventEntity", true, false, 0, 100, 10, true);
map.AddTBInt(FlowAttr.GuestFlowRole, 0, "是否是客户参与流程?", true, false);
map.AddTBString(FlowAttr.BillNoFormat, null, "单据编号格式", true, false, 0, 50, 10, true);
//部门权限控制类型,此属性在报表中控制的.
map.AddTBInt(FlowAttr.DRCtrlType, 0, "部门查询权限控制方式", true, false);
//运行主机. 这个流程运行在那个子系统的主机上.
map.AddTBInt(FlowAttr.IsToParentNextNode, 0, "子流程运行到该节点时,让父流程自动运行到下一步", false, false);
#region 流程启动限制
map.AddTBInt(FlowAttr.StartLimitRole, 0, "启动限制规则", true, false);
map.AddTBString(FlowAttr.StartLimitPara, null, "规则内容", true, false, 0, 500, 10, true);
map.AddTBString(FlowAttr.StartLimitAlert, null, "限制提示", true, false, 0, 500, 10, false);
map.AddTBInt(FlowAttr.StartLimitWhen, 0, "提示时间", true, false);
#endregion 流程启动限制
#region 导航方式。
map.AddTBInt(FlowAttr.StartGuideWay, 0, "前置导航方式", false, false);
map.AddTBString(FlowAttr.StartGuideLink, null, "右侧的连接", true, false, 0, 200, 10, true);
map.AddTBString(FlowAttr.StartGuideLab, null, "连接标签", true, false, 0, 200, 10, true);
map.AddTBString(FlowAttr.StartGuidePara1, null, "参数1", true, false, 0, 500, 10, true);
map.AddTBString(FlowAttr.StartGuidePara2, null, "参数2", true, false, 0, 500, 10, true);
map.AddTBString(FlowAttr.StartGuidePara3, null, "参数3", true, false, 0, 500, 10, true);
map.AddTBInt(FlowAttr.IsResetData, 0, "是否启用数据重置按钮?", true, false);
// map.AddTBInt(FlowAttr.IsImpHistory, 0, "是否启用导入历史数据按钮?", true, false);
map.AddTBInt(FlowAttr.IsLoadPriData, 0, "是否导入上一个数据?", true, false);
#endregion 导航方式。
map.AddTBInt(FlowAttr.IsDBTemplate, 0, "是否启用数据模版?", true, false);
//批量发起 add 2013-12-27.
map.AddTBInt(FlowAttr.IsBatchStart, 0, "是否可以批量发起", true, false);
map.AddTBString(FlowAttr.BatchStartFields, null, "批量发起字段(用逗号分开)", true, false, 0, 200, 10, true);
//map.AddTBInt(FlowAttr.IsAutoSendSubFlowOver, 0, "(当前节点为子流程时)是否检查所有子流程完成后父流程自动发送", true, true);
map.AddTBString(FlowAttr.Ver, null, "版本号", true, true, 0, 20, 10);
map.AddTBString(FlowAttr.OrgNo, null, "OrgNo", true, true, 0, 50, 10);
map.AddTBDateTime(FlowAttr.CreateDate, null, "创建日期", true, true); //@hongyan.
map.AddTBString(FlowAttr.Creater, null, "创建人", true, true, 0, 100, 10, true);
// 改造参数类型.
map.AddTBInt(FlowAttr.DevModelType, 0, "设计模式", false, false);
map.AddTBString(FlowAttr.DevModelPara, null, "设计模式参数", false, false, 0, 50, 10, false);
// map.AddTBString(FlowAttr.Domain, null, "Domain", true, true, 0, 50, 10);
//参数.
map.AddTBAtParas(1000);
#region 数据同步方案
//数据同步方式.
map.AddTBInt(FlowAttr.DataDTSWay, (int)DataDTSWay.None, "同步方式", true, true);
map.AddTBString(FlowAttr.DTSDBSrc, null, "数据源", true, false, 0, 200, 100, false);
map.AddTBString(FlowAttr.DTSBTable, null, "业务表名", true, false, 0, 200, 100, false);
map.AddTBString(FlowAttr.DTSBTablePK, null, "业务表主键", false, false, 0, 32, 10);
map.AddTBString(FlowAttr.DTSSpecNodes, null, "同步字段", false, false, 0, 4000, 10);
map.AddTBInt(FlowAttr.DTSTime, (int)FlowDTSTime.AllNodeSend, "执行同步时间点", true, true);
map.AddTBString(FlowAttr.DTSFields, null, "要同步的字段s,中间用逗号分开.", false, false, 0, 900, 100, false);
#endregion 数据同步方案
this._enMap = map;
return this._enMap;
}
}
#endregion
}
///
/// 流程集合
///
public class TemplateFlows : EntitiesNoName
{
#region 构造方法
///
/// 工作流程
///
public TemplateFlows() { }
///
/// 得到它的 Entity
///
public override Entity GetNewEntity
{
get
{
return new TemplateFlow();
}
}
#endregion 构造方法
#region 为了适应自动翻译成java的需要,把实体转换成List.
///
/// 转化成 java list,C#不能调用.
///
/// List
public System.Collections.Generic.IList ToJavaList()
{
return (System.Collections.Generic.IList)this;
}
///
/// 转化成 list
///
/// List
public System.Collections.Generic.List Tolist()
{
System.Collections.Generic.List list = new System.Collections.Generic.List();
for (int i = 0; i < this.Count; i++)
{
list.Add((TemplateFlow)this[i]);
}
return list;
}
#endregion 为了适应自动翻译成java的需要,把实体转换成List.
}
}