using System; using System.Data; using BP.DA; using BP.En; using BP.WF; using BP.Port; using BP.En; using System.Collections.Generic; using BP.Web; namespace BP.WF { /// /// 工作人员集合 /// public class GenerWorkerListAttr { #region 基本属性 /// /// 工作节点 /// public const string WorkID = "WorkID"; /// /// 处罚单据编号 /// public const string FK_Node = "FK_Node"; /// /// 流程 /// public const string FK_Flow = "FK_Flow"; /// /// 征管软件是不是罚款 /// public const string FK_Emp = "FK_Emp"; /// /// 使用的部门 /// public const string FK_Dept = "FK_Dept"; /// /// 部门名称 /// public const string DeptName = "DeptName"; /// /// 应该完成时间 /// public const string SDT = "SDT"; /// /// 警告日期 /// public const string DTOfWarning = "DTOfWarning"; /// /// 记录时间 /// public const string RDT = "RDT"; /// /// 完成时间 /// public const string CDT = "CDT"; /// /// 是否可用 /// public const string IsEnable = "IsEnable"; /// /// IsPass /// public const string IsPass = "IsPass"; /// /// 流程ID /// public const string FID = "FID"; /// /// 人员名称 /// public const string EmpName = "EmpName"; /// /// 节点名称 /// public const string NodeName = "NodeName"; /// /// 发送人 /// public const string Sender = "Sender"; /// /// 谁执行它? /// public const string WhoExeIt = "WhoExeIt"; /// /// 优先级 /// public const string PRI = "PRI"; /// /// 是否读取? /// public const string IsRead = "IsRead"; /// /// 催办次数 /// public const string PressTimes = "PressTimes"; /// /// 备注 /// public const string Tag = "Tag"; /// /// 参数 /// public const string Paras = "Paras"; /// /// 挂起时间 /// public const string DTOfHungup = "DTOfHungup"; /// /// 解除挂起时间 /// public const string DTOfUnHungup = "DTOfUnHungup"; /// /// 挂起次数 /// public const string HungupTimes = "HungupTimes"; /// /// 外部用户编号 /// public const string GuestNo = "GuestNo"; /// /// 外部用户名称 /// public const string GuestName = "GuestName"; #endregion /// /// 分组标记 /// public const string GroupMark = "GroupMark"; /// /// 表单IDs /// public const string FrmIDs = "FrmIDs"; /// /// 是否会签? /// public const string IsHuiQian = "IsHuiQian"; /// /// 顺序号 /// public const string Idx = "Idx"; /// /// 岗位编号 /// public const string StaNo = "StaNo"; } /// /// 工作者列表 /// public class GenerWorkerList : Entity { #region 参数属性. /// /// 是否会签 /// public bool ItIsHuiQian { get { return this.GetParaBoolen(GenerWorkerListAttr.IsHuiQian); } set { this.SetPara(GenerWorkerListAttr.IsHuiQian, value); } } /// /// 分组标记 /// public string GroupMark { get { return this.GetParaString(GenerWorkerListAttr.GroupMark); } set { this.SetPara(GenerWorkerListAttr.GroupMark, value); } } /// /// 表单ID(对于动态表单树有效.) /// public string FrmIDs { get { return this.GetParaString(GenerWorkerListAttr.FrmIDs); } set { this.SetPara(GenerWorkerListAttr.FrmIDs, value); } } #endregion 参数属性. #region 基本属性 /// /// 谁来执行它 /// public int WhoExeIt { get { return this.GetValIntByKey(GenerWorkerListAttr.WhoExeIt); } set { SetValByKey(GenerWorkerListAttr.WhoExeIt, value); } } public int PressTimes { get { return this.GetParaInt(GenerWorkerListAttr.PressTimes); } set { SetPara(GenerWorkerListAttr.PressTimes, value); } } /// /// 优先级 /// public int PRI { get { return this.GetValIntByKey(GenerWorkerListAttr.PRI); } set { SetValByKey(GenerWorkerListAttr.PRI, value); } } /// /// Idx /// public int Idx { get { return this.GetValIntByKey(GenerWorkerListAttr.Idx); } set { SetValByKey(GenerWorkerListAttr.Idx, value); } } /// /// WorkID /// public override string PK { get { return "WorkID,FK_Emp,FK_Node"; } } /// /// 是否可用(在分配工作时有效) /// public bool ItIsEnable { get { return this.GetValBooleanByKey(GenerWorkerListAttr.IsEnable); } set { this.SetValByKey(GenerWorkerListAttr.IsEnable, value); } } /// /// 是否通过(对审核的会签节点有效) /// public bool ItIsPass { get { return this.GetValBooleanByKey(GenerWorkerListAttr.IsPass); } set { this.SetValByKey(GenerWorkerListAttr.IsPass, value); } } /// /// 0=未处理. /// 1=已经通过. /// -2= 标志该节点是干流程人员处理的节点,目的为了让分流节点的人员可以看到待办. /// public int PassInt { get { return this.GetValIntByKey(GenerWorkerListAttr.IsPass); } set { this.SetValByKey(GenerWorkerListAttr.IsPass,value); } } public bool ItIsRead { get { return this.GetValBooleanByKey(GenerWorkerListAttr.IsRead); } set { this.SetValByKey(GenerWorkerListAttr.IsRead, value); } } /// /// WorkID /// public Int64 WorkID { get { return this.GetValInt64ByKey(GenerWorkerListAttr.WorkID); } set { this.SetValByKey(GenerWorkerListAttr.WorkID, value); } } /// /// Node /// public int NodeID { get { return this.GetValIntByKey(GenerWorkerListAttr.FK_Node); } set { this.SetValByKey(GenerWorkerListAttr.FK_Node, value); } } /// /// 部门名称 /// public string DeptName { get { return this.GetParaString(GenerWorkerListAttr.DeptName); } set { this.SetPara(GenerWorkerListAttr.DeptName, value); } } public string StaName { get { return this.GetParaString("StaName"); } set { this.SetPara("StaName", value); } } public string DeptNo { get { return this.GetValStrByKey(GenerWorkerListAttr.FK_Dept); } set { this.SetValByKey(GenerWorkerListAttr.FK_Dept, value); } } /// /// 发送人 /// public string Sender { get { return this.GetValStrByKey(GenerWorkerListAttr.Sender); } set { this.SetValByKey(GenerWorkerListAttr.Sender, value); } } /// /// 节点名称 /// public string NodeName { get { return this.GetValStrByKey(GenerWorkerListAttr.NodeName); } set { this.SetValByKey(GenerWorkerListAttr.NodeName, value); } } /// /// 流程ID /// public Int64 FID { get { return this.GetValInt64ByKey(GenerWorkerListAttr.FID); } set { this.SetValByKey(GenerWorkerListAttr.FID, value); } } /// /// 工作人员 /// public Emp HisEmp { get { return new Emp(this.EmpNo); } } /// /// 发送日期 /// public string RDT { get { return this.GetValStringByKey(GenerWorkerListAttr.RDT); } set { //this.SetValByKey(GenerWorkerListAttr.RDT, value); this.SetValByKey(GenerWorkerListAttr.RDT, DataType.CurrentDateTimess); } } /// /// 完成时间 /// public string CDT { get { return this.GetValStringByKey(GenerWorkerListAttr.CDT); } set { this.SetValByKey(GenerWorkerListAttr.CDT, value); } } /// /// 应该完成日期 /// public string SDT { get { return this.GetValStringByKey(GenerWorkerListAttr.SDT); } set { this.SetValByKey(GenerWorkerListAttr.SDT, value); } } /// /// 警告日期 /// public string DTOfWarning { get { return this.GetValStringByKey(GenerWorkerListAttr.DTOfWarning); } set { this.SetValByKey(GenerWorkerListAttr.DTOfWarning, value); } } /// /// 人员 /// public string EmpNo { get { return this.GetValStringByKey(GenerWorkerListAttr.FK_Emp); } set { this.SetValByKey(GenerWorkerListAttr.FK_Emp, value); } } /// /// 人员名称 /// public string EmpName { get { return this.GetValStrByKey(GenerWorkerListAttr.EmpName); } set { this.SetValByKey(GenerWorkerListAttr.EmpName, value); } } /// /// 流程编号 /// public string FlowNo { get { return this.GetValStringByKey(GenerWorkerListAttr.FK_Flow); } set { this.SetValByKey(GenerWorkerListAttr.FK_Flow, value); } } public string GuestNo { get { return this.GetValStringByKey(GenerWorkerListAttr.GuestNo); } set { this.SetValByKey(GenerWorkerListAttr.GuestNo, value); } } public string GuestName { get { return this.GetValStringByKey(GenerWorkerListAttr.GuestName); } set { this.SetValByKey(GenerWorkerListAttr.GuestName, value); } } #endregion #region 挂起属性 /// /// 挂起时间 /// public string DTOfHungup { get { return this.GetValStringByKey(GenerWorkerListAttr.DTOfHungup); } set { this.SetValByKey(GenerWorkerListAttr.DTOfHungup, value); } } /// /// 解除挂起时间 /// public string DTOfUnHungup { get { return this.GetValStringByKey(GenerWorkerListAttr.DTOfUnHungup); } set { this.SetValByKey(GenerWorkerListAttr.DTOfUnHungup, value); } } /// /// 挂起次数 /// public int HungupTimes { get { return this.GetParaInt(GenerWorkerListAttr.HungupTimes); } set { this.SetPara(GenerWorkerListAttr.HungupTimes, value); } } #endregion #region 构造函数 /// /// 主键 /// public override string PKField { get { return "WorkID,FK_Emp,FK_Node"; } } /// /// 工作者 /// public GenerWorkerList() { } public GenerWorkerList(Int64 workid, int nodeID, string empNo) { this.WorkID = workid; this.NodeID = nodeID; this.EmpNo = empNo; this.Retrieve(); } /// /// 重写基类方法 /// public override Map EnMap { get { if (this._enMap != null) return this._enMap; Map map = new Map("WF_GenerWorkerlist", "工作者"); map.IndexField = GenerWorkerListAttr.WorkID; //三个主键: WorkID,FK_Emp,FK_Node map.AddTBIntPK(GenerWorkerListAttr.WorkID, 0, "工作ID", true, true); map.AddTBStringPK(GenerWorkerListAttr.FK_Emp, null, "人员", true, false, 0, 100, 100); map.AddTBIntPK(GenerWorkerListAttr.FK_Node, 0, "节点ID", true, false); //干流程WorkID. map.AddTBInt(GenerWorkerListAttr.FID, 0, "流程ID", true, false); map.AddTBString(GenerWorkerListAttr.EmpName, null, "人员名称", true, false, 0, 30, 100); map.AddTBString(GenerWorkerListAttr.NodeName, null, "节点名称", true, false, 0, 100, 100); map.AddTBString(GenerWorkerListAttr.FK_Flow, null, "流程", true, false, 0, 5, 100); //为tianyu集团,处理工作的岗位编号. map.AddTBString(GenerWorkerListAttr.StaNo, null, "岗位编号", true, false, 0, 100, 100); //为tianyu集团,处理工作的部门编号. map.AddTBString(GenerWorkerListAttr.FK_Dept, null, "部门", true, false, 0, 100, 100); //如果是流程属性来控制的就按流程属性来计算。 map.AddTBDateTime(GenerWorkerListAttr.SDT, "应完成日期", false, false); map.AddTBDateTime(GenerWorkerListAttr.DTOfWarning, "警告日期", false, false); map.AddTBDateTime(GenerWorkerListAttr.RDT, "记录时间(接受工作日期)", false, false); //完成日期. map.AddTBDateTime(GenerWorkerListAttr.CDT, "完成时间", false, false); //用于分配工作. map.AddTBInt(GenerWorkerListAttr.IsEnable, 1, "是否可用", true, true); //add for 上海 2012-11-30 map.AddTBInt(GenerWorkerListAttr.IsRead, 0, "是否读取", true, true); //是否通过? 0=未通过 1=已经完成 , xxx标识其他状态. map.AddTBInt(GenerWorkerListAttr.IsPass, 0, "是否通过(对合流节点有效)", false, false); // 谁执行它? 0=手工执行,1=机器执行。2=混合执行. map.AddTBInt(GenerWorkerListAttr.WhoExeIt, 0, "谁执行它", false, false); //发送人. 2011-11-12 为天津用户增加。 map.AddTBString(GenerWorkerListAttr.Sender, null, "发送人", true, false, 0, 200, 100); //优先级,2012-06-15 为青岛用户增加。 map.AddTBInt(GenerWorkFlowAttr.PRI, 1, "优先级", true, true); // 挂起 map.AddTBDateTime(GenerWorkerListAttr.DTOfHungup,null, "挂起时间", false, false); map.AddTBDateTime(GenerWorkerListAttr.DTOfUnHungup,null, "预计解除挂起时间", false, false); //外部用户. 203-08-30 map.AddTBString(GenerWorkerListAttr.GuestNo, null, "外部用户编号", true, false, 0, 30, 100); map.AddTBString(GenerWorkerListAttr.GuestName, null, "外部用户名称", true, false, 0, 100, 100); map.AddTBInt(GenerWorkerListAttr.Idx, 1, "Idx", true, true); //参数标记 2014-04-05. map.AddTBAtParas(4000); this._enMap = map; return this._enMap; } } #endregion #region 重写基类的方法. protected override bool beforeInsert() { if (this.FID != 0) { if (this.FID == this.WorkID) this.FID = 0; } if (this.EmpNo.Equals("Guest")) { this.EmpName = BP.Web.GuestUser.Name; this.GuestName = this.EmpName; this.GuestNo = BP.Web.GuestUser.No; } if (DataType.IsNullOrEmpty(this.DeptNo)) this.DeptNo = WebUser.DeptNo; if (DataType.IsNullOrEmpty(this.DeptName)) this.DeptName = WebUser.DeptName; //增加记录日期. this.SetValByKey(GenerWorkerListAttr.RDT, DataType.CurrentDateTimess); return base.beforeInsert(); } protected override bool beforeUpdate() { if (DataType.IsNullOrEmpty(this.DeptNo)) this.DeptNo = WebUser.DeptNo; if (DataType.IsNullOrEmpty(this.DeptName)) this.DeptName = WebUser.DeptName; return base.beforeUpdate(); } #endregion 重写基类的方法. } /// /// 工作人员集合 /// public class GenerWorkerLists : Entities { #region 方法 /// /// 得到它的 Entity /// public override Entity GetNewEntity { get { return new GenerWorkerList(); } } /// /// GenerWorkerList /// public GenerWorkerLists() { } public GenerWorkerLists(Int64 workId) { QueryObject qo = new QueryObject(this); qo.AddWhere(GenerWorkerListAttr.WorkID, workId); qo.addOrderBy(GenerWorkerListAttr.RDT); qo.DoQuery(); return; } /// /// /// /// /// public GenerWorkerLists(Int64 workId, int nodeId) { QueryObject qo = new QueryObject(this); qo.AddWhere(GenerWorkerListAttr.WorkID, workId); qo.addAnd(); qo.AddWhere(GenerWorkerListAttr.FK_Node, nodeId); qo.DoQuery(); return; } public GenerWorkerLists(Int64 workId, int nodeId,string FK_Emp) { QueryObject qo = new QueryObject(this); qo.AddWhere(GenerWorkerListAttr.WorkID, workId); qo.addAnd(); qo.AddWhere(GenerWorkerListAttr.FK_Node, nodeId); qo.addAnd(); qo.AddWhere(GenerWorkerListAttr.FK_Emp, FK_Emp); qo.DoQuery(); return; } /// /// 构造工作人员集合 /// /// 工作ID /// 节点ID /// 是否包含为分配的人员 public GenerWorkerLists(Int64 workId, int nodeId, bool isWithEmpExts) { QueryObject qo = new QueryObject(this); qo.addLeftBracket(); qo.AddWhere(GenerWorkerListAttr.WorkID, workId); qo.addOr(); qo.AddWhere(GenerWorkerListAttr.FID, workId); qo.addRightBracket(); qo.addAnd(); qo.AddWhere(GenerWorkerListAttr.FK_Node, nodeId); int i = qo.DoQuery(); if (isWithEmpExts == false) return; if (i == 0) throw new Exception("@系统错误,工作人员丢失请与管理员联系。NodeID=" + nodeId + " WorkID=" + workId); RememberMe rm = new RememberMe(); rm.EmpNo = BP.Web.WebUser.No; rm.NodeID = nodeId; if (rm.RetrieveFromDBSources() == 0) return; GenerWorkerList wl = (GenerWorkerList)this[0]; string[] myEmpStrs = rm.Emps.Split('@'); foreach (string emp in myEmpStrs) { if (emp==null || emp=="") continue; if (this.GetCountByKey(GenerWorkerListAttr.FK_Emp, emp) >= 1) continue; GenerWorkerList mywl = new GenerWorkerList(); mywl.Copy(wl); mywl.ItIsEnable = false; mywl.EmpNo = emp; WF.Port.WFEmp myEmp = new BP.WF.Port.WFEmp(emp); mywl.EmpName = myEmp.Name; try { mywl.Insert(); } catch { mywl.Update(); continue; } this.AddEntity(mywl); } return; } /// /// 工作者 /// /// 工作者ID /// 流程编号 public GenerWorkerLists(Int64 workId, string flowNo) { if (workId == 0) return; Flow fl = new Flow(flowNo); QueryObject qo = new QueryObject(this); qo.AddWhere(GenerWorkerListAttr.WorkID, workId); qo.addAnd(); qo.AddWhere(GenerWorkerListAttr.FK_Flow, flowNo); qo.DoQuery(); } #endregion #region 为了适应自动翻译成java的需要,把实体转换成List. /// /// 转化成 java list,C#不能调用. /// /// List public System.Collections.Generic.IList ToJavaList() { return (System.Collections.Generic.IList)this; } /// /// 转化成list 为了翻译成java的需要 /// /// 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((BP.WF.GenerWorkerList)this[i]); } return list; } #endregion 为了适应自动翻译成java的需要,把实体转换成List. } }