using System;
using System.Data;
using BP.DA;
using BP.Sys;
using BP.En;
using System.Collections;
using BP.Port;
using BP.WF.Data;
using BP.WF.Port;
using System.Collections.Generic;
using BP.WF.Template.SFlow;
namespace BP.WF.Template
{
///
/// 这里存放每个节点的信息.
///
public class TemplateNode : Entity
{
#region 构造函数
///
/// 节点
///
public TemplateNode() { }
///
/// 重写基类方法
///
public override Map EnMap
{
get
{
if (this._enMap != null)
return this._enMap;
Map map = new Map("WF_Node", "节点");
#region 基本属性.
map.AddTBIntPK(NodeAttr.NodeID, 0, "节点ID", true, true);
map.AddTBString(NodeAttr.Name, null, "名称", true, false, 0, 150, 10);
map.AddTBString(NodeAttr.Tip, null, "操作提示", true, true, 0, 100, 10, false);
map.AddTBInt(NodeAttr.Step, (int)NodeWorkType.Work, "流程步骤", true, false);
map.AddTBString(NodeAttr.Icon, null, "节点ICON图片路径", true, false, 0, 70, 10);
map.AddTBInt(NodeAttr.NodeWorkType, 0, "节点类型", false, false);
map.AddTBString(NodeAttr.FK_Flow, null, "FK_Flow", false, false, 0, 3, 10);
map.AddTBInt(NodeAttr.IsGuestNode, 0, "是否是客户执行节点", false, false);
map.AddTBString(NodeAttr.FlowName, null, "流程名", false, true, 0, 200, 10);
//为铁路局,会签子流程. 增加
map.AddTBInt(NodeAttr.IsSendDraftSubFlow, 0, "是否发送草稿子流程?", false, false);
map.AddTBInt(NodeAttr.IsResetAccepter, 0, "可逆节点时是否重新计算接收人", false, false);
map.AddTBString(NodeAttr.FrmAttr, null, "FrmAttr", false, true, 0, 300, 10);
#endregion 基本属性.
#region 审核组件.
map.AddTBInt(NodeAttr.FWCSta, 0, "审核组件", false, false);
map.AddTBFloat(NodeAttr.FWC_H, 0, "审核组件高度", false, true);
map.AddTBInt(NodeWorkCheckAttr.FWCOrderModel, 0, "协作模式下操作员显示顺序", false, false);
map.AddTBInt(NodeWorkCheckAttr.FWCVer, 0, "审核组件版本", false, false);
map.AddTBInt("FWCAth", 0, "审核附件是否启用", false, false);
map.AddTBString(NodeWorkCheckAttr.CheckField, null, "签批字段", true, false, 0, 50, 10, false);
map.AddTBString(NodeWorkCheckAttr.FWCDefInfo, null, "默认意见", true, false, 0, 50, 10);
#endregion 审核组件.
#region 子流程信息
map.AddTBInt(FrmSubFlowAttr.SFSta, 0, "父子流程组件", false, false);
map.AddTBInt(NodeAttr.SubFlowX, 0, "子流程设计器位置X", false, false);
map.AddTBInt(NodeAttr.SubFlowY, 0, "子流程设计器位置Y", false, false);
#endregion 子流程信息
#region 考核属性.
map.AddTBString(BtnAttr.CHLab, "节点时限", "节点时限", true, false, 0, 50, 10);
map.AddTBInt(BtnAttr.CHRole, 0, "时限规则", true, false);
map.AddTBString(BtnAttr.HelpLab, "帮助提示", "帮助", true, false, 0, 50, 10);
map.AddTBInt(BtnAttr.HelpRole, 0, "帮助提示规则", true, false);
map.AddTBFloat(NodeAttr.TimeLimit, 2, "限期(天)", true, false); //"限期(天)".
// map.AddTBFloat(NodeAttr.TSpanHour, 0, "小时", true, false); //"限期(分钟)".
map.AddTBInt(NodeAttr.TWay, 0, "时间计算方式", true, false); //0=不计算节假日,1=计算节假日.
map.AddTBInt(NodeAttr.TAlertRole, 0, "逾期提醒规则", false, false); //"限期(天)"
map.AddTBInt(NodeAttr.TAlertWay, 0, "逾期提醒方式", false, false); //"限期(天)"
map.AddTBFloat(NodeAttr.WarningDay, 1, "工作预警(天)", true, false); // "警告期限(0不警告)"
map.AddTBInt(NodeAttr.WAlertRole, 0, "预警提醒规则", false, false); //"限期(天)"
map.AddTBInt(NodeAttr.WAlertWay, 0, "预警提醒方式", false, false); //"限期(天)"
map.AddTBFloat(NodeAttr.TCent, 2, "扣分(每延期1小时)", false, false);
map.AddTBInt(NodeAttr.CHWay, 0, "考核方式", false, false); //"限期(天)"
//考核相关.
map.AddTBInt(NodeAttr.IsEval, 0, "是否工作质量考核", true, true);
map.AddTBInt(NodeAttr.OutTimeDeal, 0, "超时处理方式", false, false);
map.AddTBString(NodeAttr.DoOutTime, null, "超时处理内容", true, false, 0, 300, 10, true);
//map.AddTBString(NodeAttr.DoOutTime, null, "超时处理内容", true, false, 0, 300, 10, true);
map.AddTBString(NodeAttr.DoOutTimeCond, null, "执行超时的条件", false, false, 0, 200, 100);
#endregion 考核属性.
map.AddTBString(NodeWorkCheckAttr.FWCNodeName, null, "节点意见名称", true, false, 0, 100, 10);
map.AddTBString(NodeAttr.Doc, null, "描述", true, false, 0, 100, 10);
map.AddBoolean(NodeAttr.IsTask, true, "允许分配工作否?", true, true);
//退回相关.
map.AddTBInt(NodeAttr.ReturnRole, 2, "退回规则", true, true);
map.AddTBString(NodeAttr.ReturnReasonsItems, null, "退回原因", true, false, 0, 50, 10, true);
map.AddTBString(NodeAttr.ReturnAlert, null, "被退回后信息提示", true, false, 0, 50, 10, true);
map.AddBoolean(NodeAttr.ReturnCHEnable, false, "是否启用退回考核规则", true, true);
map.AddTBInt(NodeAttr.ReturnOneNodeRole, 0, "单节点退回规则", true, true);
map.AddTBString(BtnAttr.ReturnField, null, "退回信息填写字段", true, false, 0, 50, 10, true);
map.AddTBInt(NodeAttr.DeliveryWay, 0, "访问规则", true, true);
map.AddTBInt(NodeAttr.IsExpSender, 1, "本节点接收人不允许包含上一步发送人", true, true);
map.AddTBInt(NodeAttr.CancelRole, 0, "撤销规则", true, true);
map.AddTBInt(NodeAttr.CancelDisWhenRead, 0, "对方已读不能撤销", true, true);
map.AddTBInt(NodeAttr.WhenNoWorker, 0, "未找到处理人时", true, true);
map.AddTBString(NodeAttr.DeliveryParas, null, "访问规则设置", true, false, 0, 300, 10);
map.AddTBString(NodeAttr.NodeFrmID, null, "节点表单ID", true, false, 0, 50, 10);
map.AddTBInt(NodeAttr.CCRole, 0, "抄送规则", true, true);
map.AddTBInt(NodeAttr.CCWriteTo, 0, "抄送数据写入规则", true, true);
map.AddTBInt(BtnAttr.DelEnable, 0, "删除规则", true, true);
map.AddTBInt(NodeAttr.SaveModel, 0, "保存模式", true, true);
map.AddTBInt(NodeAttr.IsCanDelFlow, 0, "是否可以删除流程", true, true);
map.AddTBInt(NodeAttr.ThreadKillRole, 0, "子线程删除方式", true, true);
map.AddTBInt(NodeAttr.TodolistModel, 0, "多人处理规则", true, true);
//add.
map.AddTBInt(BtnAttr.HuiQianRole, 0, "会签模式", true, true);
map.AddTBInt(NodeAttr.TeamLeaderConfirmRole, 0, "组长确认规则", true, true);
map.AddTBString(NodeAttr.TeamLeaderConfirmDoc, null, "组长确认设置内容", true, false, 0, 100, 10);
map.AddTBInt(BtnAttr.HuiQianLeaderRole, 0, "组长会签规则", true, true);
map.AddTBInt(BtnAttr.ScripRole, 0, "小纸条规则", true, true);
map.AddTBInt(NodeAttr.USSWorkIDRole, 0, "是否允许子线程接受人员重复(对子线程点有效)?", true, true);
map.AddTBInt(NodeAttr.IsBackTracking, 1, "是否可以在退回后原路返回(只有启用退回功能才有效)", true, true);
map.AddTBInt(NodeAttr.IsBackResetAccepter, 0, "原路返回后是否自动计算接收人", true, true);
map.AddTBInt(BtnAttr.ThreadIsCanDel, 0, "是否可以删除子线程(当前节点已经发送出去的线程,并且当前节点是分流,或者分合流有效,在子线程退回后的操作)?", true, true);
map.AddTBInt(BtnAttr.ThreadIsCanAdd, 0, "是否可以增加子线程(当前节点已经发送出去的线程,并且当前节点是分流,或者分合流有效)?", true, true);
map.AddTBInt(NodeAttr.IsKillEtcThread, 0, "是否允许删除所有的子线程(对于子线程向分流节点退回有效)", true, true);
map.AddTBInt(NodeAttr.IsRM, 1, "是否启用投递路径自动记忆功能?", true, true);
map.AddTBInt(NodeAttr.IsOpenOver, 0, "是否打开即审批?", true, true);
map.AddBoolean(NodeAttr.IsHandOver, false, "是否可以移交", true, true);
map.AddTBDecimal(NodeAttr.PassRate, 100, "通过率", true, true);
map.AddTBInt(NodeAttr.RunModel, 0, "运行模式(对普通节点有效)", true, true);
map.AddTBInt(NodeAttr.BlockModel, 0, "阻塞模式", true, true);
map.AddTBString(NodeAttr.BlockExp, null, "阻塞表达式", true, false, 0, 200, 10);
map.AddTBString(NodeAttr.BlockAlert, null, "被阻塞提示信息", true, false, 0, 100, 10);
map.AddTBInt(NodeAttr.WhoExeIt, 0, "谁执行它", true, true);
map.AddTBInt(NodeAttr.ReadReceipts, 0, "已读回执", true, true);
map.AddTBInt(NodeAttr.CondModel, 0, "方向条件控制规则", true, true);
// 自动跳转.
map.AddTBInt(NodeAttr.AutoJumpRole0, 0, "处理人就是提交人0", false, false);
map.AddTBInt(NodeAttr.AutoJumpRole1, 0, "处理人已经出现过1", false, false);
map.AddTBInt(NodeAttr.AutoJumpRole2, 0, "处理人与上一步相同2", false, false);
map.AddTBString(NodeAttr.AutoJumpExp, null, "表达式", true, false, 0, 200, 10, true);
//@0=上一个节点发送时@1=当前节点工作打开时.
map.AddTBInt(NodeAttr.SkipTime, 0, "执行跳转事件", false, false);
// 批处理规则, 2021.1.20 为福建人寿重构.
// @0=不启用,1=审核组件模式,2=审核分组字段模式,3=自定义url模式.
map.AddTBInt(NodeAttr.BatchRole, 0, "批处理", true, true);
//map.AddTBInt(NodeAttr.BatchListCount, 12, "批处理数量", true, true);
//map.AddTBString(NodeAttr.BatchParas, null, "参数", true, false, 0, 500, 10);
map.AddTBInt(NodeAttr.PrintDocEnable, 0, "打印方式", true, true);
//打印PDF的处理
map.AddTBInt(BtnAttr.PrintPDFModle, 0, "PDF打印规则", true, true);
map.AddTBInt(BtnAttr.PRIEnable, 0, "重要性规则", true, true);
map.AddTBString(BtnAttr.ShuiYinModle, null, "打印水印规则", true, false, 20, 100, 100, true);
//表单相关.
map.AddTBInt(NodeAttr.FormType, 1, "表单类型", false, false);
map.AddTBString(NodeAttr.FormUrl, "http://", "表单URL", true, false, 0, 300, 10);
map.AddTBInt(NodeAttr.TurnToDeal, 0, "转向处理", false, false);
map.AddTBString(NodeAttr.TurnToDealDoc, null, "发送后提示信息", true, false, 0, 200, 10, true);
map.AddTBInt(NodeAttr.NodePosType, 0, "位置", false, false);
map.AddTBString(NodeAttr.HisStas, null, "角色", false, false, 0, 300, 10);
map.AddTBString(NodeAttr.HisDeptStrs, null, "部门", false, false, 0, 600, 10);
map.AddTBString(NodeAttr.HisToNDs, null, "转到的节点", false, false, 0, 80, 10);
map.AddTBString(NodeAttr.HisBillIDs, null, "单据IDs", false, false, 0, 50, 10);
// map.AddTBString(NodeAttr.HisEmps, null, "HisEmps", false, false, 0, 3000, 10);
map.AddTBString(NodeAttr.HisSubFlows, null, "HisSubFlows", false, false, 0, 30, 10);
map.AddTBString(NodeAttr.PTable, null, "物理表", false, false, 0, 100, 10);
map.AddTBString(NodeAttr.GroupStaNDs, null, "角色分组节点", false, false, 0, 200, 10);
map.AddTBInt(NodeAttr.X, 0, "X坐标", false, false);
map.AddTBInt(NodeAttr.Y, 0, "Y坐标", false, false);
map.AddTBString(NodeAttr.FocusField, null, "焦点字段", false, false, 0, 30, 10);
map.AddTBString(NodeAttr.JumpToNodes, null, "可跳转的节点", true, false, 0, 20, 10, true);
map.AddTBInt(NodeAttr.JumpWay, 0, "跳转规则", false, false);
map.AddTBString(NodeAttr.RefOneFrmTreeType, "", "独立表单类型", false, false, 0, 20, 10);//RefOneFrmTree
map.AddTBString(NodeAttr.DoOutTimeCond, null, "执行超时的条件", false, false, 0, 20, 100);
map.AddTBString(NodeAttr.SelfParas, null, "自定义参数(如果太小可以手动扩大)", true, false, 0, 1000, 10);
#region 子流程相关的参数
map.AddTBFloat(FrmSubFlowAttr.SF_H, 300, "高度", true, false);
#endregion 子流程相关的参数
#region 兼容版本.
map.AddTBString(NodeAttr.NodeStations, null, "绑定的岗位", false, false, 0, 100, 100);
map.AddTBString(NodeAttr.NodeStationsT, null, "绑定的岗位t", false, false, 0, 200, 100);
map.AddTBString(NodeAttr.NodeEmps, null, "绑定的人员", false, false, 0, 100, 100);
map.AddTBString(NodeAttr.NodeEmpsT, null, "绑定的人员t", false, false, 0, 200, 100);
map.AddTBString(NodeAttr.NodeDepts, null, "绑定的部门", false, false, 0, 100, 100);
map.AddTBString(NodeAttr.NodeDeptsT, null, "绑定的部门t", false, false, 0, 200, 100);
#endregion 兼容版本.
map.AddTBAtParas(500);
this._enMap = map;
return this._enMap;
}
}
#endregion
}
///
/// 节点集合
///
public class TemplateNodes : EntitiesOID
{
#region 方法
///
/// 得到它的 Entity
///
public override Entity GetNewEntity
{
get
{
return new TemplateNode();
}
}
#endregion
#region 构造方法
///
/// 节点集合
///
public TemplateNodes()
{
}
#endregion
#region 为了适应自动翻译成java的需要,把实体转换成List.
///
/// 转化成 java list,C#不能调用.
///
/// List
public System.Collections.Generic.IList ToJavaList()
{
return (System.Collections.Generic.IList)this;
}
///
/// 转化成list 为了翻译成java的需要
///
/// List
public List Tolist()
{
List list = new List();
for (int i = 0; i < this.Count; i++)
{
list.Add((TemplateNode)this[i]);
}
return list;
}
#endregion 为了适应自动翻译成java的需要,把实体转换成List.
}
}