using System; using System.Collections; using BP.DA; using BP.En; using BP.En; using BP.Port; using BP.WF.Port; //using BP.ZHZS.Base; namespace BP.WF.Template { /// /// 节点到人员属性 /// public class CCEmpAttr { /// /// 节点 /// public const string FK_Node="FK_Node"; /// /// 到人员 /// public const string FK_Emp="FK_Emp"; } /// /// 节点到人员 /// 节点的到人员有两部分组成. /// 记录了从一个节点到其他的多个节点. /// 也记录了到这个节点的其他的节点. /// public class CCEmp :EntityMM { #region 基本属性 /// ///节点 /// public int FK_Node { get { return this.GetValIntByKey(CCEmpAttr.FK_Node); } set { this.SetValByKey(CCEmpAttr.FK_Node,value); } } /// /// 到人员 /// public string FK_Emp { get { return this.GetValStringByKey(CCEmpAttr.FK_Emp); } set { this.SetValByKey(CCEmpAttr.FK_Emp,value); } } public string FK_EmpT { get { return this.GetValRefTextByKey(CCEmpAttr.FK_Emp); } } #endregion #region 构造方法 /// /// 节点到人员 /// public CCEmp(){} /// /// 重写基类方法 /// public override Map EnMap { get { if (this._enMap != null) return this._enMap; Map map = new Map("WF_CCEmp", "抄送人员"); map.IndexField = CCEmpAttr.FK_Node; map.AddTBIntPK(CCEmpAttr.FK_Node, 0, "节点", true, true); map.AddDDLEntitiesPK(CCEmpAttr.FK_Emp, null, "人员", new Emps(), true); this._enMap = map; return this._enMap; } } #endregion } /// /// 节点到人员 /// public class CCEmps : EntitiesMM { /// /// 他的到人员 /// public Emps HisEmps { get { Emps ens = new Emps(); foreach (CCEmp ns in this) { ens.AddEntity(new Emp(ns.FK_Emp)); } return ens; } } /// /// 他的工作节点 /// public Nodes HisNodes { get { Nodes ens = new Nodes(); foreach (CCEmp ns in this) { ens.AddEntity(new Node(ns.FK_Node)); } return ens; } } /// /// 节点到人员 /// public CCEmps() { } /// /// 节点到人员 /// /// 节点ID public CCEmps(int NodeID) { QueryObject qo = new QueryObject(this); qo.AddWhere(CCEmpAttr.FK_Node, NodeID); qo.DoQuery(); } /// /// 节点到人员 /// /// EmpNo public CCEmps(string EmpNo) { QueryObject qo = new QueryObject(this); qo.AddWhere(CCEmpAttr.FK_Emp, EmpNo); qo.DoQuery(); } /// /// 得到它的 Entity /// public override Entity GetNewEntity { get { return new CCEmp(); } } /// /// 取到一个到人员集合能够访问到的节点s /// /// 到人员集合 /// public Nodes GetHisNodes(Emps sts) { Nodes nds = new Nodes(); Nodes tmp = new Nodes(); foreach (Emp st in sts) { tmp = this.GetHisNodes(st.No); foreach (Node nd in tmp) { if (nds.Contains(nd)) continue; nds.AddEntity(nd); } } return nds; } /// /// 到人员对应的节点 /// /// 到人员编号 /// 节点s public Nodes GetHisNodes(string EmpNo) { QueryObject qo = new QueryObject(this); qo.AddWhere(CCEmpAttr.FK_Emp, EmpNo); qo.DoQuery(); Nodes ens = new Nodes(); foreach (CCEmp en in this) { ens.AddEntity(new Node(en.FK_Node)); } return ens; } /// /// 转向此节点的集合的 Nodes /// /// 此节点的ID /// 转向此节点的集合的Nodes (FromNodes) public Emps GetHisEmps(int nodeID) { QueryObject qo = new QueryObject(this); qo.AddWhere(CCEmpAttr.FK_Node, nodeID); qo.DoQuery(); Emps ens = new Emps(); foreach (CCEmp en in this) { ens.AddEntity(new Emp(en.FK_Emp)); } return ens; } #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((CCEmp)this[i]); } return list; } #endregion 为了适应自动翻译成java的需要,把实体转换成List. } }