NC65 单据状态相关类

354 篇文章 101 订阅
文章描述了多个与审批状态相关的Java类,包括IPfRetCheckInfo接口,BillStatusEnum类,ApproveStatus类,以及WFTaskOrInstanceStatus枚举,这些类和接口用于表示审批流程中的不同状态和结果。
摘要由CSDN通过智能技术生成

NC65 单据状态相关类

单据的审批状态 : nc.vo.pub.pf.IPfRetCheckInfo

package nc.vo.pub.pf;

/**
 * 单据的审批状态 列表
 * 
 * @author 樊冠军 2002-10-16
 * @modifier leijun 2008-12 统一单据的审批状态
 */
public interface IPfRetCheckInfo {
	///审批流内部使用的单据状态/
	/**
	 * 自由态
	 */
	public static final int NOSTATE = -1;

	/**
	 * 未通过 态
	 */
	public static final int NOPASS = 0;

	/**
	 * 通过 态
	 */
	public static final int PASSING = 1;

	/**
	 * 进行中 态
	 */
	public static final int GOINGON = 2;

	/**
	 * 提交 态
	 */
	public static final int COMMIT = 3;

}

nc.vo.pub.pf.BillStatusEnum

/***************************************************************\
 *     The skeleton of this class is generated by an automatic *
 * code generator for NC product. It is based on Velocity.     *
\***************************************************************/
package nc.vo.pub.pf;

import nc.md.model.impl.MDEnum;
import nc.md.model.IEnumValue;
	
/**
 * <b> 在此处简要描述此类的功能 </b>
 * <p>
 *     在此处添加此类的描述信息
 * </p>
 * 创建日期:
 * @author 
 * @version NCPrj ??
 */
public class BillStatusEnum extends MDEnum{
	//审批未通过
//	private final static int NOPASS = 0;
	//审批通过
//	private final static int PASS = 1;
	//进行中
//	private final static int ONGOING = 2;
	//提交态
//	private final static int SUBMIT = 3;
	//自由态
//	private final static int NOSTATUS = -1;
	public BillStatusEnum(IEnumValue enumvalue){
		super(enumvalue);
	}
	
	/**
     * 自由
     */
    public static final BillStatusEnum FREE = MDEnum.valueOf(BillStatusEnum.class, Integer.valueOf(IPfRetCheckInfo.NOSTATE));

    /**
     * 已审批
     */
    public static final BillStatusEnum APPROVED = MDEnum.valueOf(BillStatusEnum.class, Integer.valueOf(IPfRetCheckInfo.PASSING));

    /**
     * 提交
     */
    public static final BillStatusEnum COMMIT = MDEnum.valueOf(BillStatusEnum.class, Integer.valueOf(IPfRetCheckInfo.COMMIT));

    /**
     * 正在审批
     */
    public static final BillStatusEnum APPROVING = MDEnum.valueOf(BillStatusEnum.class, Integer.valueOf(IPfRetCheckInfo.GOINGON));

    /**
     * 审批不通过
     */
    public static final BillStatusEnum NOPASS = MDEnum.valueOf(BillStatusEnum.class, Integer.valueOf(IPfRetCheckInfo.NOPASS));
	
	


} 

nc.ui.pubapp.uif2app.actions.pflow.ApproveStatus

package nc.ui.pubapp.uif2app.actions.pflow;

import nc.vo.pub.pf.IPfRetCheckInfo;

public class ApproveStatus {

  /* 审批通过 */
  // public final static int APPROVED = 1;
  public static final int APPROVED = IPfRetCheckInfo.PASSING;

  /* 审批中 */
  // public final static int APPROVING = 2;
  public static final int APPROVING = IPfRetCheckInfo.GOINGON;

  /* 自由 */
  // public final static int FREE = -1;
  public static final int FREE = IPfRetCheckInfo.NOSTATE;

  /* 审批未通过 */
  // public final static int NOPASS = 0;
  public static final int NOPASS = IPfRetCheckInfo.NOPASS;
  
  /* 已提交 态 */
  // public final static int COMMIT = 3;
  public static final int COMMIT = IPfRetCheckInfo.COMMIT;


}

nc.vo.arap.pub.BillEnumCollection

package nc.vo.arap.pub;

/**
 * 交易类型编码(名称) 主表名称(新的) 子表名称(新的) </br> D0(客户应收单) ar_recbill ar_recitem </br> 23D0(供应商应收单) ar_suprecbill ar_suprecitem </br> 23C0(暂沽应收) ar_estirecbill ar_estirecitem </br> 23B0(暂沽回冲应收)
 * ar_estirecbill(重名) ar_estirecitem(重名) </br> D1(供应商应付单) ap_payablebill ap_payableitem </br> 23D1(客户应付单) ap_cuspayablebill ap_cuspayableitem </br> 23C1(暂估应付) ap_estipayablebill ap_estipayableitem
 * </br> 23B1(暂沽回冲应付) ap_estipayablebill(重名)ap_estipayableitem(重名) </br> D2(客户收款单) ar_gatherbill ar_gatheritem </br> 23D2(供应商收款单) ar_supgatherbill ar_supgatheritem </br> D3(供应商付款单) ap_paybill
 * ap_payitem </br> 23D3(客户付款单) ap_cuspaybill ap_cuspayitem </br>
 */
public class BillEnumCollection {
	/**
	 * 节点名称 单据类型 单据名称 借贷方向 借贷数值 </br> 应收管理 F0 应收(客户) (借) 1 </br> F1 应付(供应商) (贷) -1 </br> 应收管理 F2 收款(客户) (贷) -1 </br> F3 付款(供应商) (借) 1 </br> F0S 供应商应收 (借) 1 </br> 应收管理 F1C 客户应付 (贷) -1 </br> F2S 供应商收款单
	 * (贷) -1 </br> 应收管理 F3C 客户付款单 (借) 1 </br> 应收管理 E0 暂估应收单 (借) 1 </br> E1 暂估应付单 (贷) -1 </br>
	 */
	private BillEnumCollection() {
	};

	/**
	 * 方向
	 * 
	 * @author langsc1
	 * 
	 */
	public enum Direction {
		DEBIT(1), /** 借 */
		CREDIT(-1)
		/** 贷 */
		// CHG(3);
		;

		public final Integer VALUE;

		Direction(int status) {
			VALUE = status;
		}

		public static Direction valueOf(Integer value) {
			Direction ret = null;
			switch (value) {
			case -1:
				ret = CREDIT;
				break;
			case 1:
				ret = DEBIT;
				break;

			default:
				break;
			}
			return ret;
		}
	}

	/**
	 * 票据方向
	 * 
	 * 
	 */
	public enum BillDIRECTION {
		DEFAULT("none"), AR("ar"), AP("ap");

		public final String VALUE;

		BillDIRECTION(String status) {
			VALUE = status;
		}

		public String getValue() {
			return VALUE;
		}

		public static BillDIRECTION valueof(String value) {
			BillDIRECTION ret = null;
			if (value.equals(DEFAULT.VALUE))
				ret = DEFAULT;
			else if (value.equals(AR.VALUE))
				ret = AR;
			if (value.equals(AP.VALUE))
				ret = AP;
			return ret;
		}
	}

	/**
	 * 支付状态
	 * 
	 * 
	 */
	public enum PayStatus {
		/** 未处理 */
		DEFAULT(0),
		/**
		 * 未支付
		 */
		UNPayed(1),
		/**
		 * * 支付中
		 */
		Paying(2),
		/**
		 * 支付完成
		 */
		PayFinish(3),
		/**
		 * 支付失败
		 */
		PayFail(4),

		/**
		 * 部分支付完成
		 */
		SomePayFinish(20),
		/**
		 * 未收款
		 */
		UnRecive(5),
		/**
		 * 收款中
		 */
		Reciving(6),
		/**
		 * 收款完成
		 */
		ReciveFinish(7),
		/**
		 * 收款失败
		 */
		ReciveFail(8);
		// DEFAULT(0), SUCESS(1), FAILE(-1), PAYING(2), HAND(3), PARTHAND(4), ACCEPTFAILE(
		// 5), ARAPFAILE(-11), ARAPFING(12), ARAPSUCCED(11);
		public final Integer VALUE;

		PayStatus(int status) {
			VALUE = status;
		}

		public static PayStatus valueof(Integer value) {
			PayStatus ret = null;
			switch (value) {
			case 0:
				ret = DEFAULT;
				break;
			case 1:
				ret = UNPayed;
				break;
			case 2:
				ret = Paying;
				break;
			case 3:
				ret = PayFinish;
				break;
			case 4:
				ret = PayFail;
				break;
			case 5:
				ret = UnRecive;
				break;
			case 6:
				ret = Reciving;
				break;
			case 7:
				ret = ReciveFinish;
				break;
			case 8:
				ret = ReciveFail;
				break;
			case 20:
				ret = SomePayFinish;
				break;

			default:
				break;
			}
			return ret;
		}
	}

	/**
	 * 支付方式
	 * 
	 * 
	 */
	public enum PayWay {
		NONE(0), SETTLE_HAND(3), NETPAY(5), CENTRPAY(10);


		public final Integer VALUE;

		PayWay(int value) {
			VALUE = value;
		}

		public static PayWay valueof(Integer value) {
			PayWay ret = null;
			switch (value) {
			case 0:
				ret = NONE;
				break;
			case 3:
				ret = SETTLE_HAND;
				break;
			case 5:
				ret = NETPAY;
				break;
			case 10:
				ret = CENTRPAY;
				break;

			default:
				break;
			}
			return ret;
		}
	}

	/**
	 * 行类型
	 */
	public enum RowType {
		FILL(0), NOTFILL(1),SWITCHTO(5),AGENCY(21),LOAN(22),CASH(23),AGENT_BUSINESS(24), SELF_BUSSINESS(25);
//                                      代理费           代垫                  保证金           代收代付                                    自收自付
		public final Integer VALUE;

		RowType(int value) {
			VALUE = value;
		}

		public static RowType valueof(Integer value) {
			RowType ret = null;
			switch (value) {
			case 0:
				ret = FILL;
				break;
			case 1:
				ret = NOTFILL;
				break;
			case 5:
				ret = SWITCHTO;
				break;
			case 21:
				ret = AGENCY;
				break;
			case 22:
				ret = LOAN;
				break;
			case 23:
				ret = CASH;
				break;
			case 24:
				ret = AGENT_BUSINESS;
				break;
			case 25:
				ret = SELF_BUSSINESS;
				break;
			default:
				break;
			}
			return ret;
		}
	}

	/**
	 * 结算状态
	 */
	public enum SettlementState {
		DEFAULT(0), TRANSSUCCED(1), TRANSFAIL(-1), TRANSING(2) , SomePayFinish(11);
		// 0 默认
		// 1 转账成功
		// -1 转账失败
		// 2 转账中
		// 11 部分
		public final Integer VALUE;

		SettlementState(int value) {
			VALUE = value;
		}

		public static SettlementState valueof(Integer value) {
			SettlementState ret = null;
			switch (value) {
			case 0:
				ret = DEFAULT;
				break;
			case 1:
				ret = TRANSSUCCED;
				break;
			case -1:
				ret = TRANSFAIL;
				break;
			case 2:
				ret = TRANSING;
				break;
			case 11:
				ret = SomePayFinish;
				break;

			default:
				break;
			}
			return ret;
		}
	}

	/**
	 * 结算类型
	 */
	public enum SettlementType {
		NO(0), HAND(3), NETBANK(5), SETTLECENTER(10);

		public final Integer VALUE;

		SettlementType(int value) {
			VALUE = value;
		}

		public static SettlementType valueof(Integer value) {
			SettlementType ret = null;
			switch (value) {
			case 0:
				ret = NO;
				break;
			case 3:
				ret = HAND;
				break;
			case 5:
				ret = NETBANK;
				break;
			case 10:
				ret = SETTLECENTER;
				break;

			default:
				break;
			}
			return ret;
		}
	}

	/**
	 * 单据来源系统
	 */
	public enum FromSystem {
		AR(0), // 应收系统
		AP(1), // 应付系统
		CMP(2), // 现金管理
		SO(3), // 销售系统
		PO(4), // 采购系统
		FTS(5), // 资金结算
		NET(6), // 网上银行----dap_dapsystem中没有记录,
		CFBM(8), // 集中票据管理
		XTDJ(9), // 协同单据----dap_dapsystem中没有记录
		CDMA(10), // 银行信贷管理
		XBGL(12), // 项目管理----dap_dapsystem中没有记录
		TB(13), // 全面预算
		TO(16), // 内部交易
		WBJHPT(17), // 外部交换平台----dap_dapsystem中没有记录
		ZJJX(18), // 资金计息----dap_dapsystem中没有记录
		IC(19), // 库存管理
		CT(20), // 合同管理
		YS(24), // 运输----dap_dapsystem中没有记录
		PS(7), // 付款排程
		AM(104), // 资产管理
		WSBX(105),// 费用管理(网上报销)----dap_dapsystem中没有记录
		CR09(109);
		// Lease(6);

		public final Integer VALUE;

		FromSystem(int value) {
			VALUE = value;
		}

		public static FromSystem valueof(Integer value) {
			FromSystem ret = null;
			switch (value) {
			case 0:
				ret = AR;
				break;
			case 1:
				ret = AP;
				break;
			case 2:
				ret = CMP;
				break;
			case 3:
				ret = SO;
				break;
			case 4:
				ret = PO;
				break;
			case 5:
				ret = FTS;
				break;
			case 6:
				ret = NET;
				break;
			case 8:
				ret = CFBM;
				break;
			case 9:
				ret = XTDJ;
				break;
			case 10:
				ret = CDMA;
				break;
			case 12:
				ret = XBGL;
				break;
			case 13:
				ret = TB;
				break;
			case 16:
				ret = TO;
				break;
			case 17:
				ret = WBJHPT;
				break;
			case 18:
				ret = ZJJX;
				break;
			case 19:
				ret = IC;
				break;
			case 20:
				ret = CT;
				break;
			case 24:
				ret = YS;
				break;
			case 104:
				ret = AM;
				break;
			case 105:
				ret = WSBX;
				break;
			default:
				break;
			}
			return ret;
		}
	}

	/**
	 * 单据来源系统
	 */
	public enum BillType {
		PURCHASE_ORDER("21"), // 采购合同
		PS_APPLY("36D1"), // 付款申请
		PS_PLANDETAIL("36D7"), // 付款排程
		SALES_ORDER("30"); // 销售订单
		public final String VALUE;

		BillType(String value) {
			VALUE = value;
		}
	}

	/**
	 * 生效标志
	 */
	public enum InureSign {
		/** 未生效 */
		NOINURE(0),
		/** 未生成凭证 */
		NOVOUCHER(5),
		/** 已生效 */
		OKINURE(10);

		public final Integer VALUE;

		InureSign(int value) {
			VALUE = value;
		}

		public static InureSign valueof(Integer value) {
			InureSign ret = null;
			if(null == value){
				ret = NOINURE;
				return ret;
			}
			switch (value) {
			case 0:
				ret = NOINURE;
				break;
			case 5:
				ret = NOVOUCHER;
				break;
			case 10:
				ret = OKINURE;
				break;
			default:
				ret = NOINURE;
				break;
			}
			return ret;
		}
	}

	/**
	 * 往来对象
	 */
	public enum ObjType {
		CUSTOMER(0), PERSON(3), DEP(2), SUPPLIER(1),CUSSUP(8);

		public final Integer VALUE;

		ObjType(int value) {
			VALUE = value;
		}

		public static ObjType valueof(Integer value) {
			ObjType ret = null;
			switch (value) {
			case 0:
				ret = CUSTOMER;
				break;
			case 1:
				ret = SUPPLIER;
				break;
			case 2:
				ret = DEP;
				break;
			case 3:
				ret = PERSON;
				break;
			default:
				break;
			}
			return ret;
		}
	}

	/**
	 * 审核状态
	 */
	public enum CheckState {
		CHECKING(0), CHECKOK(1), CHECKNO(2), RETURN(3);

		public final Integer VALUE;

		CheckState(int value) {
			VALUE = value;
		}

		public static CheckState valueof(Integer value) {
			CheckState ret = null;
			switch (value) {
			case 0:
				ret = CHECKING;
				break;
			case 1:
				ret = CHECKOK;
				break;
			case 2:
				ret = CHECKNO;
				break;
			case 3:
				ret = RETURN;
				break;
			default:
				break;
			}
			return ret;
		}
	}

	/**
	 * 扣税类别
	 */
	public enum TaxType {
		TAXIN(0), TAXOUT(1), NOTAX(2);

		public final Integer VALUE;

		TaxType(int value) {
			VALUE = value;
		}

		public static TaxType valueof(Integer value) {
			TaxType ret = null;
			switch (value) {
			case 0:
				ret = TAXIN;
				break;
			case 1:
				ret = TAXOUT;
				break;
			case 2:
				ret = NOTAX;
				break;
			default:
				break;
			}
			return ret;
		}
	}

	/**
	 * 单据协同标志
	 */
	public enum BillCooperate {
		NOSUER(0), SURE(1);

		public final Integer VALUE;

		BillCooperate(int value) {
			VALUE = value;
		}

		public static BillCooperate valueof(Integer value) {
			BillCooperate ret = null;
			switch (value) {
			case 0:
				ret = NOSUER;
				break;
			case 1:
				ret = SURE;
				break;
			default:
				break;
			}
			return ret;
		}
	}

	/**
	 * 并账类别
	 */
	public enum Account {
		IN(0), OUT(1);

		public final Integer VALUE;

		Account(int value) {
			VALUE = value;
		}

		public static Account valueof(Integer value) {
			Account ret = null;
			switch (value) {
			case 0:
				ret = IN;
				break;
			case 1:
				ret = OUT;
				break;
			default:
				break;
			}
			return ret;
		}
	}

	public enum BillSatus {
		/** 暂存状态 */
		Tempeorary(-99),
		/** 保存状态 */
		Save(-1),
		/** 已审核 */
		Audit(1),
		/** 删除 */
		Deleted(4),
		/** 挂起 */
		HangUp(6),
		/** 签字状态 */
		Sign(8), UnComfirm(9), Closing(10);
		public final Integer VALUE;

		BillSatus(int value) {
			VALUE = value;
		}

		public static BillSatus valueof(int value) {
			BillSatus ret = null;
			switch (value) {
			case -99:
				ret = Tempeorary;
				break;
			case -1:
				ret = Save;
				break;
			case 1:
				ret = Audit;
				break;
			case 4:
				ret = Deleted;
				break;
			case 6:
				ret = HangUp;
				break;
			case 8:
				ret = Sign;
				break;
			case 9:
				ret = UnComfirm;
				break;
			case 10:
				ret = Closing;
				break;
			default:
				ret = Save;
				break;
			}
			return ret;
		}
	}

	/*
public static BillSatus valueof(int value) {
			BillSatus ret = null;
			switch (value) {
				case -99:
					ret = Tempeorary;
					break;
				case -1:
					ret = Save;
					break;
				case 1:
					ret = Audit;
					break;
				case 2:
					ret = AuditHandling;
					break;
				case 3:
					ret = AuditHandlFail;
					break;
				case 4:
					ret = Deleted;
					break;
				case 6:
					ret = HangUp;
					break;
				case 8:
					ret = Sign;
					break;
				case 9:
					ret = UnComfirm;
					break;
				case 10:
					ret = Closing;
					break;
				default:
					ret = Save;
					break;
			}
			return ret;
		}
	}
	 */

	public enum ApproveStatus {
		/** 自由态 */
		NOSTATE(-1),
		/** 未通过 态 */
		NOPASS(0),
		/** 通过 态 */
		PASSING(1),
		/** 进行中 态 */
		GOINGON(2),
		/** 提交 态 */
		COMMIT(3);
		public final Integer VALUE;

		ApproveStatus(int value) {
			VALUE = value;
		}

		public static ApproveStatus valueof(int value) {
			ApproveStatus ret = null;
			switch (value) {
			case -1:
				ret = NOSTATE;
				break;
			case 0:
				ret = NOPASS;
				break;
			case 1:
				ret = PASSING;
				break;
			case 2:
				ret = GOINGON;
				break;
			case 3:
				ret = COMMIT;
				break;

			default:
				ret = NOSTATE;
				break;
			}
			return ret;
		}
	}

//	/**
//	 * 付款性质 - 改成 预收 / 预付标志
//	 * 
//	 */
//	public enum PreSign {
//		/** 预收标志 */
//		PreRec(1),
//
//		/** 预付标志 */
//		prePay(-1);
//		public final Integer VALUE;
//
//		PreSign(int value) {
//			VALUE = value;
//		}
//
//		public PreSign valueof(int value) {
//			PreSign ret = null;
//			switch (value) {
//			case 1:
//				ret = PreSign.PreRec;
//				break;
//			case -1:
//				ret = PreSign.prePay;
//				break;
//			default:
//				break;
//			}
//			return ret;
//		}
//	}

	/**
	 * 付款性质 - 改成 预收 / 预付标志
	 * 
	 */
	public enum PreSigns {
		/** 应收款/应付款 */
		notPre(0),

		/** 预收款、预付款 */
		isPre(1);
		public final Integer VALUE;

		PreSigns(int value) {
			VALUE = value;
		}

		public PreSigns valueof(int value) {
			PreSigns ret = null;
			switch (value) {
			case 0:
				ret = PreSigns.notPre;
				break;
			case 1:
				ret = PreSigns.isPre;
				break;
			default:
				break;
			}
			return ret;
		}
	}

	/**
	 * 催款语气类别
	 */
	public enum NoticeType {
		ZL(1), YE(2);

		public final Integer VALUE;

		NoticeType(int value) {
			VALUE = value;
		}

		public static NoticeType valueof(Integer value) {
			NoticeType ret = null;
			switch (value) {
			case 1:
				ret = ZL;
				break;
			case 2:
				ret = YE;
				break;
			default:
				break;
			}
			return ret;
		}
	}

	/**
	 * 暂估 回冲标志
	 * 
	 * @author miaohl
	 * 
	 */
	public enum EstiType {
		ESTQR(0), // 暂估确认
		EST(1), // 暂估
		NOTEST(2); // 暂估回冲

		public final Integer VALUE;

		EstiType(int value) {
			VALUE = value;
		}

		public static EstiType valueof(Integer value) {
			EstiType ret = null;
			switch (value) {
			case 0:
				ret = ESTQR;
				break;
			case 1:
				ret = EST;
				break;
			case 2:
				ret = NOTEST;
				break;
			default:
				break;
			}
			return ret;
		}
	}

	public enum CommissionPayStatus {
		// 待承付
		UnCommissionPay(0),
		// 承付中
		CommissionPaying(1),
		// 已承付
		CommissionPaySusscess(2);

		public final Integer VALUE;

		CommissionPayStatus(int status) {
			VALUE = status;
		}
	}

	public enum CommissionPayType {
		// 全额承付
		CommPayALL(0),
		// 全额拒付
		RefuseCommPay(1),
		// 部分承付
		CommPayPartly(2),
		// 强制全额承付
		ForceCommPayALL(3);

		public final Integer VALUE;

		CommissionPayType(int status) {
			VALUE = status;
		}
	}

	public enum BuySellType {
		// 国内销售
		IN_SELL(1),
		// 国内采购
		IN_BUY(2),
		// 出口销售
		OUT_SELL(3),
		// 进口采购
		OUT_BUY(4),
		// 不区分
		DEFAULT_TYPE(5);

		public final Integer VALUE;

		BuySellType(int status) {
			VALUE = status;
		}
	}
	
	public enum VoucherStatus {
		// 未生成凭证=1,已生成凭证=2,凭证已记账=3
		VOUCHER_NOT_GENERATE("1"),VOUCHER_GENERATED("2"),ACCOUNTING_VOUCHER("3");
	
		public final String VALUE;

		VoucherStatus(String status) {
			VALUE = status;
		}
	}
	public enum VerifyStatus {
		// 未核销=1,已核销=2,部分核销=3
		NOT_VERIFY("1"),VERIFIED("2"),PART_VERIFIED("3");
		
		public final String VALUE;
		
		VerifyStatus(String status) {
			VALUE = status;
		}
	}

	// /**
	// * 单据大类
	// *
	// */
	// public enum BillClass {
	// /** 应收 */
	// YS("ys"),
	// /** 应付 */
	// YF("yf"),
	// /** 收款 */
	// SK("sk"),
	// /** 付款 */
	// FK("fk"),
	// /** 暂估应收 */
	// ZS("zs"),
	// /** 暂估应付 */
	// ZF("zf");
	// public final String VALUE;
	//
	// BillClass(String value) {
	// VALUE = value;
	// }
	// }

}

工作流审批结果枚举: nc.vo.pub.workflownote.WFApproveResultType

package nc.vo.pub.workflownote;

/**
 * 工作流审批结果枚举
 * 
 * @author zhouwba
 * 
 */
public enum WFApproveResultType {
	PASS("Y"), 
	NO_PASS("N"), 
	REJECT("R"), 
	ADD_APPROVE("A"),
	
	;
	private String result;

	private WFApproveResultType(String result) {
		this.result = result;
	}

	public String getResult() {
		return result;
	}

	public void setResult(String result) {
		this.result = result;
	}

}

nc.vo.pub.workflownote.WorkflownoteVO

package nc.vo.pub.workflownote;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import nc.message.vo.AttachmentVO;
import nc.message.vo.MessageVO;
import nc.message.vo.NCMessage;
import nc.vo.pub.BusinessException;
import nc.vo.pub.SuperVO;
import nc.vo.pub.lang.UFBoolean;
import nc.vo.pub.lang.UFDateTime;
import nc.vo.pub.pf.WfTaskInfo;
import nc.vo.wfengine.core.parser.XPDLNames;
import nc.vo.wfengine.pub.WorkitemMsgContext;

/**
 * 审批流任务项VO对象,与pub_workflownote表对应
 * 
 * @author 樊冠军 2002-6-19
 * @modifier 雷军 2005-3-25 NC31该表增加了几个字段
 * @modifier 雷军 2005-10-20 转换为SuperVO
 * @modifier dingxm 2009-06-24 增加处理后通知人字段 observer,以及选择的加签用户字段extApprovers
 * @modifier leijun 2009-9 去掉金额列
 * @modifier yanke1 2012-1-10 去掉签收消息类型
 * @since 6.3 ciphertext CA签名密文
 * 
 */
public class WorkflownoteVO extends SuperVO {
	/**
	 * 
	 */
	private static final long serialVersionUID = -7233326069660645880L;

	/**
	 * 工作项类型-审批
	 */
	public static final String WORKITEM_TYPE_APPROVE = "Z";

	/**
	 * 工作项类型-制单
	 */
	public static final String WORKITEM_TYPE_MAKEBILL = "MAKEBILL";

	/**
	 * 工作项类型-业务消息
	 */
	public static final String WORKITEM_TYPE_BIZ = "BIZ";
	
	public static final String WORKITEM_TYPE_PUSH = "BIZ_PUSH";
	public static final String WORKITEM_TYPE_PULL = "BIZ_PULL";

	/**
	 * 工作项改派后缀标记
	 */
	public static final String WORKITEM_APPOINT_SUFFIX = "_D";

	/**
	 * 加签产生的工作项标记
	 */
	public static final String WORKITEM_ADDAPPROVER_SUFFIX = "_A";

	/**
	 * 业务消息使用pk_billtype表示节点号的前缀标记
	 */
	public static final String BIZ_NODE_PREFIX = "[F]";

	public static final String NCMSG_TYPE_MSGNEEDCHECK = "pfcheckmsg";
	public static final String NCMSG_TYPE_PFBIZMSG = "pfbizmsg";
	public static final String FLOWMSG_NEED_CHECK = "MSG_NEEDCHECK";
	public static final String FLOWMSG_AUTO = "MSG_NOCHECK";
	/**代理人给被代理人的消息*/
	public static final String NCMSG_TYPE_AGNETINFO="agentinfo";

	/** 主键 */
	public String pk_checkflow;

	/** 组织单元主键 */
	public String pk_org;

	/** 集团主键 */
	public String pk_group;

	/** 动作代码,扩展代码 */
	public String actiontype;

	/** 单据主键 */
	public String billid;
	
	public String billVersionPK;

	/** 单据号 */
	public String billno;

	/** 单据类型主键 */
	public String pk_billtype;

	/** 业务类型主键 */
	// public String pk_businesstype;
	/** 批语 */
	public String checknote;

	/** 发送时间 */
	public UFDateTime senddate;

	/** 处理时间 */
	public UFDateTime dealdate;

	/** 是否审批 */
	public String ischeck;

	/** 消息内容 */
	public String messagenote;

	/** 接收删除标记 */
	public UFBoolean receivedeleteflag;

	/** 发送人PK */
	public String senderman;

	/** 审核人PK */
	public String checkman;

	/** 任务项的处理结果 */
	public String approveresult = null;

	// 工作项的处理状态
	public Integer approvestatus;

	// 消息优先级
	public Integer priority = Integer.valueOf(0);

	public String pk_wf_task;

	public UFDateTime ts;

	public Integer dr;

	// 用户对象
	private String userobject;

	// 工作流类型
	private Integer workflow_type;
	
	//CA签名密文
	public String ciphertext;
	
	//被代理人(代理时,出差的用户ID)
	private String agencyuser;

	// //非数据库字段
	/** 发送人名称 */
	public String sendername = null;
	
	/** 发送人名称(当前语种) */
	public String sendernameml = null;

	/** 审核人名称 */
	public String checkname = null;
	
	/** 审核人名称(当前语种) */
	public String checknameml = null;
	
	/** 工作项消息是否推送至手机端 */
	private boolean pushable = false;

	/** 当前活动关联的一些扩展属性 */
	@SuppressWarnings("rawtypes")
	private HashMap relaProperties = new HashMap();

	/** 任务信息 */
	private WfTaskInfo taskInfo;

	private String ismsgbind;

	/* 加签选择的用户 */
	private List<String> extApprovers;

	/* 抄送选择的用户,未保存到表中 */
	private List<String> mailExtCpySenders = new ArrayList<String>();
	/* 信息抄送的用户 */
	private List<String> msgExtCpySenders = new ArrayList<String>();

	/* 工作项处理后 需要通知的用户,主要用于被加签人或者被该派人 处理后通知加签/改派的原始用户 */
	private String observer;

	private boolean anyoneCanApprove = false;

	private List<AttachmentVO> AttachmentSetting;

	/* 与WorkflownoteVO同步生成的NCMessage,见TaskManagerDMO.inserWorkitemOfTask() */
	private NCMessage ncMsg;

	/** 当前待办人是否对流程进行跟踪 */
	private boolean isTrack = false;
	
	private String activityID;
	
	private WorkitemMsgContext msgContext = null;
	
	/**功能节点编码*/
	private String funcode;
	
	/**@since 6.3 */
	private boolean isHideNoPassing =false;
	
	/*自动审批处理时间戳,对dealtime精度的扩充*/
	private String dealtimemillis = null;
	
	public String getDealtimemillis() {
		return dealtimemillis;
	}

	public void setDealtimemillis(String dealtimemillis) {
		this.dealtimemillis = dealtimemillis;
	}

	public String getFuncode() {
		return funcode;
	}

	public void setFuncode(String funcode) {
		this.funcode = funcode;
	}

	public boolean isHideNoPassing() {
		return isHideNoPassing;
	}

	public void setHideNoPassing(boolean isHideNoPassing) {
		this.isHideNoPassing = isHideNoPassing;
	}

	public String getCiphertext() {
		return ciphertext;
	}

	public void setCiphertext(String ciphertext) {
		this.ciphertext = ciphertext;
	}

	public String getActivityID() {
		return activityID;
	}

	public void setActivityID(String activityID) {
		this.activityID = activityID;
	}

	public WorkflownoteVO() {
	}

	public WorkflownoteVO(String newPk_checkflow) {
		// 为主键字段赋值:
		pk_checkflow = newPk_checkflow;
	}

	public String getBillVersionPK() {
		return billVersionPK;
	}

	public void setBillVersionPK(String billVersionPK) {
		this.billVersionPK = billVersionPK;
	}

	public Integer getWorkflow_type() {
		return workflow_type;
	}

	public void setWorkflow_type(Integer workflow_type) {
		this.workflow_type = workflow_type;
	}

	public List<String> getMailExtCpySenders() {
		return mailExtCpySenders;
	}

	public void setMailExtCpySenders(List<String> extCpySenders) {
		this.mailExtCpySenders = extCpySenders;
	}

	public List<String> getMsgExtCpySenders() {
		return msgExtCpySenders;
	}

	public void setMsgExtCpySenders(List<String> extCpySenders) {
		this.msgExtCpySenders = extCpySenders;
	}

	public String getUserobject() {
		return userobject;
	}

	public void setUserobject(String userobject) {
		this.userobject = userobject;
	}

	public String getPk_wf_task() {
		return pk_wf_task;
	}

	public void setPk_wf_task(String pk_wf_task) {
		this.pk_wf_task = pk_wf_task;
	}

	/**
	 * 根类Object的方法,克隆这个VO对象。 创建日期:(2002-6-19)
	 */
	public Object clone() {
		// 复制基类内容并创建新的VO对象:
		Object o = super.clone();
		WorkflownoteVO workflownote = (WorkflownoteVO) o;

		// 你在下面复制本VO对象的所有属性:
		return workflownote;
	}

	public String getApproveresult() {
		return approveresult;
	}

	public void setApproveresult(String approveresult) {
		this.approveresult = approveresult;
	}

	public Integer getApprovestatus() {
		return approvestatus;
	}

	public void setApprovestatus(Integer approvestatus) {
		this.approvestatus = approvestatus;
	}

	public Integer getPriority() {
		return priority;
	}

	public void setPriority(Integer priority) {
		this.priority = priority;
	}

	public String getAgencyuser() {
		return agencyuser;
	}

	public void setAgencyuser(String agencyuser) {
		this.agencyuser = agencyuser;
	}

	/**
	 * 属性m_actiontype的Getter方法。 创建日期:(2002-6-19)
	 * 
	 * @return String
	 */
	public String getActiontype() {
		return actiontype;
	}

	/**
	 * 属性m_billid的Getter方法。 创建日期:(2002-6-19)
	 * 
	 * @return String
	 */
	public String getBillid() {
		return billid;
	}

	/**
	 * 属性m_billno的Getter方法。 创建日期:(2002-6-19)
	 * 
	 * @return String
	 */
	public String getBillno() {
		return billno;
	}

	/**
	 * 属性m_checkman的Getter方法。 创建日期:(2002-6-19)
	 * 
	 * @return String
	 */
	public String getCheckman() {
		return checkman;
	}

	/**
	 * 此处插入方法说明。 创建日期:(2002-6-21 15:23:02)
	 * 
	 * @return java.lang.String
	 */
	public java.lang.String getCheckname() {
		return checkname;
	}

	/**
	 * 属性m_checknote的Getter方法。 创建日期:(2002-6-19)
	 * 
	 * @return String
	 */
	public String getChecknote() {
		return checknote;
	}

	/**
	 * 属性m_dealdate的Getter方法。 创建日期:(2002-6-19)
	 * 
	 * @return UFDateTime
	 */
	public UFDateTime getDealdate() {
		return dealdate;
	}

	/**
	 * 属性m_dr的Getter方法。 创建日期:(2002-6-19)
	 * 
	 * @return Integer
	 */
	public Integer getDr() {
		return dr;
	}

	/**
	 * 返回数值对象的显示名称。 创建日期:(2002-6-19)
	 * 
	 * @return java.lang.String 返回数值对象的显示名称。
	 */
	public String getEntityName() {

		return "Workflownote";
	}

	/**
	 * 属性m_ischeck的Getter方法。 创建日期:(2002-6-19)
	 * 
	 * @return String
	 */
	public String getIscheck() {
		return ischeck;
	}

	/**
	 * 属性m_messagenote的Getter方法。 创建日期:(2002-6-19)
	 * 
	 * @return String
	 */
	public String getMessagenote() {
		return messagenote;
	}

	/**
	 * 属性m_pk_billtype的Getter方法。 创建日期:(2002-6-19)
	 * 
	 * @return String
	 */
	public String getPk_billtype() {
		return pk_billtype;
	}

	/**
	 * 属性m_pk_checkflow的Getter方法。 创建日期:(2002-6-19)
	 * 
	 * @return String
	 */
	public String getPk_checkflow() {
		return pk_checkflow;
	}

	/**
	 * 属性m_pk_corp的Getter方法。 创建日期:(2002-6-19)
	 * 
	 * @return String
	 */
	public String getPk_org() {
		return pk_org;
	}

	/**
	 * 返回对象标识,用来唯一定位对象。 创建日期:(2002-6-19)
	 * 
	 * @return String
	 */
	public String getPrimaryKey() {

		return pk_checkflow;
	}

	/**
	 * 属性m_receivedeleteflag的Getter方法。 创建日期:(2002-6-19)
	 * 
	 * @return UFBoolean
	 */
	public UFBoolean getReceivedeleteflag() {
		return receivedeleteflag;
	}

	/**
	 * 属性m_senddate的Getter方法。 创建日期:(2002-6-19)
	 * 
	 * @return UFDateTime
	 */
	public UFDateTime getSenddate() {
		return senddate;
	}

	/**
	 * 属性m_senderman的Getter方法。 创建日期:(2002-6-19)
	 * 
	 * @return String
	 */
	public String getSenderman() {
		return senderman;
	}

	/**
	 * 此处插入方法说明。 创建日期:(2002-6-21 15:22:49)
	 * 
	 * @return java.lang.String
	 */
	public java.lang.String getSendername() {
		return sendername;
	}

	/**
	 * 属性m_ts的Getter方法。 创建日期:(2002-6-19)
	 * 
	 * @return UFDateTime
	 */
	public UFDateTime getTs() {
		return ts;
	}

	/**
	 * 属性m_actiontype的setter方法。 创建日期:(2002-6-19)
	 * 
	 * @param newM_actiontype
	 *            String
	 */
	public void setActiontype(String newActiontype) {

		actiontype = newActiontype;
	}

	/**
	 * 属性m_billid的setter方法。 创建日期:(2002-6-19)
	 * 
	 * @param newM_billid
	 *            String
	 */
	public void setBillid(String newBillid) {

		billid = newBillid;
	}

	/**
	 * 属性m_billno的setter方法。 创建日期:(2002-6-19)
	 * 
	 * @param newM_billno
	 *            String
	 */
	public void setBillno(String newBillno) {

		billno = newBillno;
	}

	/**
	 * 属性m_checkman的setter方法。 创建日期:(2002-6-19)
	 * 
	 * @param newM_checkman
	 *            String
	 */
	public void setCheckman(String newCheckman) {

		checkman = newCheckman;
	}

	/**
	 * 此处插入方法说明。 创建日期:(2002-6-21 15:23:02)
	 * 
	 * @param newCheckName
	 *            java.lang.String
	 */
	public void setCheckname(java.lang.String newCheckName) {
		checkname = newCheckName;
	}

	/**
	 * 属性m_checknote的setter方法。 创建日期:(2002-6-19)
	 * 
	 * @param newM_checknote
	 *            String
	 */
	public void setChecknote(String newChecknote) {

		checknote = newChecknote;
	}

	/**
	 * 属性m_dealdate的setter方法。 创建日期:(2002-6-19)
	 * 
	 * @param newM_dealdate
	 *            UFDateTime
	 */
	public void setDealdate(UFDateTime newDealdate) {

		dealdate = newDealdate;
	}

	/**
	 * 属性m_dr的setter方法。 创建日期:(2002-6-19)
	 * 
	 * @param newM_dr
	 *            Integer
	 */
	public void setDr(Integer newDr) {

		dr = newDr;
	}

	/**
	 * 属性m_ischeck的setter方法。 创建日期:(2002-6-19)
	 * 
	 * @param newM_ischeck
	 *            String
	 */
	public void setIscheck(String newIscheck) {

		ischeck = newIscheck;
	}

	/**
	 * 属性m_messagenote的setter方法。 创建日期:(2002-6-19)
	 * 
	 * @param newM_messagenote
	 *            String
	 */
	public void setMessagenote(String newMessagenote) {

		messagenote = newMessagenote;
	}

	/**
	 * 属性m_pk_billtype的setter方法。 创建日期:(2002-6-19)
	 * 
	 * @param newM_pk_billtype
	 *            String
	 */
	public void setPk_billtype(String newPk_billtype) {

		pk_billtype = newPk_billtype;
	}

	/**
	 * 属性m_pk_checkflow的setter方法。 创建日期:(2002-6-19)
	 * 
	 * @param newM_pk_checkflow
	 *            String
	 */
	public void setPk_checkflow(String newPk_checkflow) {

		pk_checkflow = newPk_checkflow;
	}

	/**
	 * 属性m_pk_corp的setter方法。 创建日期:(2002-6-19)
	 * 
	 * @param newM_pk_corp
	 *            String
	 */
	public void setPk_org(String newPk_org) {

		pk_org = newPk_org;
	}

	/**
	 * 设置对象标识,用来唯一定位对象。 创建日期:(2002-6-19)
	 * 
	 * @param pk_checkflow
	 *            String
	 */
	public void setPrimaryKey(String newPk_checkflow) {

		pk_checkflow = newPk_checkflow;
	}

	/**
	 * 属性m_receivedeleteflag的setter方法。 创建日期:(2002-6-19)
	 * 
	 * @param newM_receivedeleteflag
	 *            UFBoolean
	 */
	public void setReceivedeleteflag(UFBoolean newReceivedeleteflag) {

		receivedeleteflag = newReceivedeleteflag;
	}

	/**
	 * 属性m_senddate的setter方法。 创建日期:(2002-6-19)
	 * 
	 * @param newM_senddate
	 *            UFDateTime
	 */
	public void setSenddate(UFDateTime newSenddate) {

		senddate = newSenddate;
	}

	/**
	 * 属性m_senderman的setter方法。 创建日期:(2002-6-19)
	 * 
	 * @param newM_senderman
	 *            String
	 */
	public void setSenderman(String newSenderman) {

		senderman = newSenderman;
	}

	/**
	 * 此处插入方法说明。 创建日期:(2002-6-21 15:22:49)
	 * 
	 * @param newSenderName
	 *            java.lang.String
	 */
	public void setSendername(java.lang.String newSenderName) {
		sendername = newSenderName;
	}

	/**
	 * 属性m_ts的setter方法。 创建日期:(2002-6-19)
	 * 
	 * @param newM_ts
	 *            UFDateTime
	 */
	public void setTs(UFDateTime newTs) {

		ts = newTs;
	}

	public String getParentPKFieldName() {
		return null;
	}

	public String getPKFieldName() {
		return "pk_checkflow";
	}

	public String getTableName() {
		return "pub_workflownote";
	}

	/**
	 * 得到当前活动相关的流程属性,目前有 <li>XPDLNames.WORKFLOW_GADGET - 单据组件及其实参 <li>
	 * XPDLNames.EDITABLE_PROPERTIES - 可编辑属性 <li>XPDLNames.ENABLE_BUTTON - 可用按钮
	 * 
	 * @return
	 */
	public HashMap getRelaProperties() {
		return relaProperties;
	}

	public WfTaskInfo getTaskInfo() {
		if (taskInfo == null) {
			taskInfo = new WfTaskInfo();
		}
		return taskInfo;
	}

	public void setTaskInfo(WfTaskInfo taskInfo) {
		this.taskInfo = taskInfo;
	}

	public List<String> getExtApprovers() {
		return extApprovers;
	}

	public void setExtApprovers(List<String> extApprovers) {
		this.extApprovers = extApprovers;
	}

	public String getObserver() {
		return observer;
	}

	public void setObserver(String observer) {
		this.observer = observer;
	}

	public String getIsmsgbind() {
		return ismsgbind;
	}

	public void setIsmsgbind(String ismsgbind) {
		this.ismsgbind = ismsgbind;
	}

	public String getPk_group() {
		return pk_group;
	}

	public void setPk_group(String pk_group) {
		this.pk_group = pk_group;
	}

	public boolean isAnyoneCanApprove() {
		return anyoneCanApprove;
	}

	public void setAnyoneCanApprove(boolean anyoneCanApprove) {
		this.anyoneCanApprove = anyoneCanApprove;
	}

	public List getApplicationArgs() {
		return (List) getRelaProperties().get(XPDLNames.APPLICATION_ARGS);
	}

	public List<AttachmentVO> getAttachmentSetting() {
		return AttachmentSetting;
	}

	public void setAttachmentSetting(List<AttachmentVO> attch) {
		AttachmentSetting = attch;
	}

	public boolean isTrack() {
		return isTrack;
	}

	public void setTrack(boolean isTrack) {
		this.isTrack = isTrack;
	}

	public NCMessage getNcMsg() throws BusinessException {
		try {
			if (ncMsg == null) {
				ncMsg = new NCMessage();
			}
			if (ncMsg.getMessage() == null) {
				ncMsg.setMessage(new MessageVO());
			}
			
			return (NCMessage) ncMsg.clone();
		} catch (CloneNotSupportedException e) {
			throw new BusinessException(e);
		}
	
	}

	public void setNcMsg(NCMessage ncMsg) {
		this.ncMsg = ncMsg;
	}

	public String getSendernameml() {
		return sendernameml;
	}

	public void setSendernameml(String sendernameml) {
		this.sendernameml = sendernameml;
	}

	public String getChecknameml() {
		return checknameml;
	}

	public void setChecknameml(String checknameml) {
		this.checknameml = checknameml;
	}

	public boolean isPushable() {
		return pushable;
	}

	public void setPushable(boolean pushable) {
		this.pushable = pushable;
	}

	public WorkitemMsgContext getMsgContext() {
		return msgContext;
	}

	public void setMsgContext(WorkitemMsgContext msgContext) {
		this.msgContext = msgContext;
	}

}

nc.vo.wfengine.pub.WFTask

package nc.vo.wfengine.pub;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.StringTokenizer;
import java.util.Vector;

import nc.bs.logging.Logger;
import nc.vo.ml.NCLangRes4VoTransl;
import nc.vo.pf.term.ApproveTermConfig;
import nc.vo.pf.term.IApproveTerm;
import nc.vo.pub.AggregatedValueObject;
import nc.vo.pub.lang.UFBoolean;
import nc.vo.pub.lang.UFDateTime;
import nc.vo.pub.workflownote.WorkflownoteVO;

/**
 * 流程引擎中的任务管理器使用的任务实体
 * 
 * @author wzhy created on 2004-3-15
 * 
 * @author yanke1 2013-1-6 为WFTask添加了IMappingMeta
 * @author yanke1 2013-4-2 autocomplete字段在库中为char(1)类型。在postgresql下会出现java类型与数据库类型不匹配的问题
 * 因此2013-4-2由yanke1修改为UFBoolean类型
 * 同时在v61-v63的升级类中,加入了修改pub_wf_task表的isautocomplete字段值的功能。'0'会被修改为'N', '1'会被修改为'Y'
 * @see WFTaskMappingMeta
 */
public class WFTask implements Serializable, Cloneable {
	private static final long serialVersionUID = 1111L;
	
	public final static WFTaskMappingMeta mappingMeta = new WFTaskMappingMeta();
	
	// 单人-抢占
	public static final int ProcessMode_Single_Race = -1;

	// 单人-会签(单人默认处理模式为会签)
	public static final int ProcessMode_Single_Together = 0;

	// 会签
	public static final int ProcessMode_Together = 1;

	// 抢占
	public static final int ProcessMode_Race = 2;

	// 会签和指派
	public static final int ProcessMode_Together_Assign = 3;

	// 抢占和指派
	public static final int ProcessMode_Race_Assign = 4;

	// 定制,不受流程里定义的参与者限定,如通过脚本由函数取得操作人.
	public static final int ProcessMode_Custom = 5;

	// 活动指派人全局数据ID的连接符
	public static final String ACTIVITY_AssignJoin = "J";

	public static final String ACTIVITY_AssignFix = "Assign";

	// 转移指派全局数据ID的连接符
	public static final String TRANSITION_AssignJoin = "T";

	public static final String TRANSITION_AssignFix = "Assign";
	
	
	
	public static final String APPROVERESULT_PASS = "Y";		// 批准
	public static final String APPROVERESULT_NOPASS = "N";		// 不批准	
	public static final String APPROVERESULT_REJECT = "R";		// 驳回
	public static final String APPROVERESULT_TRANSFER = "T";	// 加签
	
	
	/******************数据库字段***************/
	private String activityInstancePK;		// 活动实例的PK
	private String activityID;				// 消息引用的活动定义ID
	private String wfProcessDefPK;			// 流程定义PK
	private String wfProcessInstancePK;		// 流程实例的PK
	private int status;						// 任务状态
	private String approveResult;			// 审批结果
	private int taskType;					// 任务类型
	private UFDateTime createTime;			// 创建时间
	private UFDateTime modifyTime;			// 修改时间
	private UFBoolean autoCompleted = UFBoolean.FALSE;
	private int participantProcessMode; 	// 参与者,可以是抢占(当中一个人做就可以完成)方式处理任务,也可以是会签(所有人都做)方式处理任务.
	private String participantProcessModeValue;	// 审批环节是否完成的阈值
	private String participantProcessPassingThreshold; 	// 审批环节完成后,审批结果为通过的阈值(达不到此阈值则结果为不通过)
	private String rejectTacheActivityID;	// 驳回环节的活动id
	private String taskPK;					// 主键
	/******************数据库字段***************/
	
	
	
	
	/******************非数据库字段***************/
	/* 是否为加签操作 @dingxm+ 2009-05-25 */
	private boolean addApprover;

	/* 是否为改派操作 @dingxm+ 2009-05-25 */
	private boolean appoint;

	// 工作流类型
	private int workflowType;

	// 消息的主题
	private String topic;

	// 实际操作人PK,根据定义实际执行的人,比如某岗位具体的人,定制的人.
	private String operator;

	private String participantType;

	// 参与者所属组织PK,一般为集团或公司PK
	private String participantBelongOrg;

	private String participantID;

	// 参与者的限定模式
	private String participantFilterMode;

	// 被审批的单据
	private String billNO;

	private String billID;
	
	private String billversionPK;

	private String billType;

	private String pk_org;

	// private String activityName;

	/**** 不存在于数据库中的属性 ****/
	// 通过功能处理后的工作流相关数据.
	private Object outObject;

	// 输入到功能开始时的相关数据.
	private Object inObject; // 消息此时的状态,比如(是否完成等)

	// 是否驳回至第一个活动
	private boolean backToFirstActivity;

	private String jumpToActivity;

	// 指派后继活动的审批人
	private HashMap<String, Vector> assignNextOperators;

	// 指派后继转移
	private HashMap<String, Vector> assignNextTransition;

	// 流程间相关数据交换
	public static String Tranfer_ProcessRelevantData = "processRelevantData";

	// 传递的信息
	private HashMap tranferInfo;

	// Task所应用的功能ID.
	private String applicationID;

	// 指派时指定的人
	private Vector assignOperators;

	// 最后一个操作人,会签时,消息要以最后一个操作人的名义发出
	// private String lastOperator;

	// 备注
	private String note;

	// 发送人
	private String senderman;

	// 工作项VO
	private WorkflownoteVO worknoteVO;

	// 是否弃审产生的任务,弃审产生的任务不能自动审批通过,至少要保留当前操作员的任务
	private boolean isWithdrawGenerated = false;

	private String runnerid;

	private ArrayList<String> refmsgids;

	private AggregatedValueObject billvo;

	private WorkitemMsgContext context = null;
	
	private boolean isSubmit2RjectTache= false;

	public String getBillversionPK() {
		return billversionPK;
	}

	public void setBillversionPK(String billversionPK) {
		this.billversionPK = billversionPK;
	}

	public boolean isSubmit2RjectTache() {
		return isSubmit2RjectTache;
	}

	public void setSubmit2RjectTache(boolean isSubmit2RjectTache) {
		this.isSubmit2RjectTache = isSubmit2RjectTache;
	}

	public String getRejectTacheActivityID() {
		return rejectTacheActivityID;
	}

	public void setRejectTacheActivityID(String rejectTacheActivityID) {
		this.rejectTacheActivityID = rejectTacheActivityID;
	}

	public String getParticipantFilterMode() {
		return participantFilterMode;
	}

	public void setParticipantFilterMode(String participantFilterMode) {
		this.participantFilterMode = participantFilterMode;
	}

	public Object getInObject() {
		return inObject;
	}

	public void setInObject(Object inObject) {
		this.inObject = inObject;
	}

	public int getStatus() {
		return status;
	}

	public String getTaskPK() {
		return taskPK;
	}

	public String getWfProcessDefPK() {
		return wfProcessDefPK;
	}

	public String getWfProcessInstancePK() {
		return wfProcessInstancePK;
	}

	public void setStatus(int status) {
		this.status = status;
	}

	public void setTaskPK(String taskPK) {
		this.taskPK = taskPK;
	}

	public void setWfProcessDefPK(String wfDefPK) {
		this.wfProcessDefPK = wfDefPK;
	}

	public void setWfProcessInstancePK(String piPK) {
		this.wfProcessInstancePK = piPK;
	}

	public String getTopic() {
		return topic;
	}

	public void setTopic(String topic) {
		this.topic = topic;
	}

	public String getNote() {
		return note;
	}

	public void setNote(String note) {
		this.note = note;
	}

	public Object getOutObject() {
		return outObject;
	}

	public void setOutObject(Object outObject) {
		this.outObject = outObject;
	}

	public String getOperator() {
		return operator;
	}

	public void setOperator(String operator) {
		this.operator = operator;
	}

	public String getParticipantType() {
		return participantType;
	}

	public String getActivityInstancePK() {
		return activityInstancePK;
	}

	public String getActivityID() {
		return activityID;
	}

	public void setParticipantType(String participantType) {
		this.participantType = participantType;
	}

	public void setActivityInstancePK(String aiPK) {
		this.activityInstancePK = aiPK;
	}

	public void setActivityID(String activityID) {
		this.activityID = activityID;
	}

	public boolean invalidate() {
		if (activityID == null || participantID == null
				|| participantType == null) {
			return false;
		} else {
			return true;
		}
	}

	public String getParticipantID() {
		return participantID;
	}

	public void setParticipantID(String participantID) {
		this.participantID = participantID;
	}

	public int getParticipantProcessMode() {
		return participantProcessMode;
	}

	public void setParticipantProcessMode(int participantProcessMode) {
		this.participantProcessMode = participantProcessMode;
	}

	public String getParticipantProcessModeValue() {
		return participantProcessModeValue;
	}

	public void setParticipantProcessModeValue(
			String participantProcessModeValue) {
		this.participantProcessModeValue = participantProcessModeValue;
	}
	
	public String getParticipantProcessPassingThreshold() {
		return participantProcessPassingThreshold;
	}

	public void setParticipantProcessPassingThreshold(String participantProcessPassingThreshold) {
		this.participantProcessPassingThreshold = participantProcessPassingThreshold;
	}

	public String getApplicationID() {
		return applicationID;
	}

	public int getWorkflowType() {
		return workflowType;
	}

	public void setWorkflowType(int workflowType) {
		this.workflowType = workflowType;
	}

	public int getTaskType() {
		return taskType;
	}

	public UFDateTime getCreateTime() {
		return createTime;
	}

	public UFDateTime getModifyTime() {
		return modifyTime;
	}

	public Vector getAssignOperators() {
		return assignOperators;
	}

	public String getApproveResult() {
		return approveResult;
	}

	public HashMap getTranferInfo() {
		return tranferInfo;
	}

	public String getBillNO() {
		return billNO;
	}

	public String getPk_org() {
		return pk_org;
	}

	public String getBillType() {
		return billType;
	}

	public String getBillID() {
		return billID;
	}

	public boolean isBackToFirstActivity() {
		return backToFirstActivity;
	}

	private HashMap getAssignNextOperators() {
		if (assignNextOperators == null) {
			assignNextOperators = new HashMap();
		}
		return assignNextOperators;
	}

	private HashMap getAssignNextTransition() {
		if (assignNextTransition == null) {
			assignNextTransition = new HashMap();
		}
		return assignNextTransition;
	}

	public String getSenderman() {
		return senderman;
	}

	public WorkflownoteVO getWorknoteVO() {
		return worknoteVO;
	}

	public Iterator<String> getAssignNextOperatorsKeys() {
		if (assignNextOperators == null) {
			return null;
		}
		return assignNextOperators.keySet().iterator();
	}

	public Vector getAssignNextOperators(String actAssignId) {
		if (assignNextOperators == null) {
			return new Vector();
		}
		return (Vector) assignNextOperators.get(actAssignId);
	}

	public void setAssignNextOperators(String actAssignId, Vector vecOperators) {
		getAssignNextOperators().put(actAssignId, vecOperators);
	}

	public void setAssignNextTransition(String transAssignId, Vector vecTransID) {
		getAssignNextTransition().put(transAssignId, vecTransID);
	}

	public Iterator<String> getAssignNextTransitionKeys() {
		if (assignNextTransition == null) {
			return null;
		}
		return assignNextTransition.keySet().iterator();
	}

	public Vector getAssignNextTransition(String transAssignId) {
		if (assignNextTransition == null) {
			return new Vector();
		}
		return (Vector) assignNextTransition.get(transAssignId);
	}

	public void setApplicationID(String applicationID) {
		this.applicationID = applicationID;
	}

	public WFTask copy() {
		try {
			return (WFTask) this.clone();
		} catch (Exception e) {
			throw new RuntimeException(e.getMessage(), e);
		}
	}

	public void setTaskType(int taskType) {
		this.taskType = taskType;
	}

	public void setCreateTime(UFDateTime createTime) {
		this.createTime = createTime;
	}

	public void setModifyTime(UFDateTime modifyTime) {
		this.modifyTime = modifyTime;
	}

	public void setAssignOperators(Vector assignOperators) {
		this.assignOperators = assignOperators;
	}

	public void setBillNO(String billNO) {
		this.billNO = billNO;
	}

	public void setApproveResult(String approveResult) {
		this.approveResult = approveResult;
	}

	public void setTranferInfo(HashMap tranferInfo) {
		this.tranferInfo = tranferInfo;
	}

	public void setPk_org(String pk_org) {
		this.pk_org = pk_org;
	}

	public void setBillType(String billType) {
		this.billType = billType;
	}

	public void setBillID(String billID) {
		this.billID = billID;
	}

	public void setBackToFirstActivity(boolean backToFirstActivity) {
		this.backToFirstActivity = backToFirstActivity;
	}

	public void setSenderman(String senderman) {
		this.senderman = senderman;
	}

	public void setWorknoteVO(WorkflownoteVO workflowVO) {
		this.worknoteVO = workflowVO;
	}

	/**
	 * clone task XXX:业务数据只复制引用。
	 */
	public Object clone() {
		Object o = null;
		try {
			o = super.clone();
			WFTask task = (WFTask) o;
			task.setInObject(getInObject());
			task.setOutObject(getOutObject());
		} catch (Exception ex) {
			Logger.error("Task克隆异常:" + ex.getMessage(), ex);
		}
		return o;
	}

	public String toString() {
		String str = NCLangRes4VoTransl.getNCLangRes().getStrByID(
				"pfworkflow",
				"WFTask-000000",
				null,
				new String[] {
						this.getClass().getName(),
						String.valueOf(getTaskType()),
						WfTaskOrInstanceStatus.fromIntValue(getStatus())
								.toString(), getTaskPK() })/*
															 * {0}@类型为 { 1},状态为
															 * { 2},PK为 {3}
															 */;
		if (topic != null) {
			str = topic;
		}
		if (note != null) {
			str = str + "......." + note;
		}
		return str;
	}

	public String[] parseOperators(String operators) {
		/** @todo 解析字符串 */
		StringTokenizer st = new StringTokenizer(operators, ",");
		String[] result = new String[st.countTokens()];
		int i = 0;
		while (st.hasMoreTokens()) {
			result[i] = st.nextToken();
			i++;
		}
		return result;
	}

	/**
	 * 获得多语化的审批结果
	 * 
	 * @param result
	 */
	public static String resolveApproveResult(Object result) {
		if (APPROVERESULT_PASS.equals(result)) {
			return ApproveTermConfig.getInstance().getText(IApproveTerm.PASS);
		} else if (APPROVERESULT_NOPASS.equals(result)) {
			return ApproveTermConfig.getInstance().getText(IApproveTerm.NO_PASS);
		} else if (APPROVERESULT_REJECT.equals(result)) {
			return ApproveTermConfig.getInstance().getText(IApproveTerm.REJECT);
		} else if (APPROVERESULT_TRANSFER.equals(result)) {
			return ApproveTermConfig.getInstance().getText(IApproveTerm.TRANSFER);
		} else {
			return result == null ? "" : result.toString();
		}
	}

	public static String getActAssignID(String processDefID,
			String activityDefID) {
		return processDefID + ACTIVITY_AssignJoin + activityDefID
				+ ACTIVITY_AssignFix;
	}

	public static String getTransAssignID(String processDefID, String transDefID) {
		return processDefID + TRANSITION_AssignJoin + transDefID
				+ TRANSITION_AssignFix;
	}

	/**
	 * 获得多语化的审批状况
	 * 
	 * @param iStatus
	 * @param isMakebill
	 *            是否为修单工作项
	 * @param isCheckMsg
	 */
	public static String resolveApproveStatus(int iStatus, boolean isMakebill) {
		String obj = null;
		if (iStatus == WfTaskOrInstanceStatus.Finished.getIntValue()) {
			if (isMakebill) {
				obj = NCLangRes4VoTransl.getNCLangRes().getStrByID("pfworkflow", "UPPpfworkflow-000011")/* 已修单 */;
			} else {
				obj = NCLangRes4VoTransl.getNCLangRes().getStrByID("pfworkflow", "UPPpfworkflow-000198")/*
																										 * @
																										 * res
																										 * "已审批"
																										 */;
			}
		} else if (iStatus == WfTaskOrInstanceStatus.Inefficient.getIntValue()) {
			obj = NCLangRes4VoTransl.getNCLangRes().getStrByID("common", "UC001-0000005")/*
																						 * @
																						 * res
																						 * "作废"
																						 */;
		} else if (iStatus == WfTaskOrInstanceStatus.Started.getIntValue()) {
			obj = NCLangRes4VoTransl.getNCLangRes().getStrByID("pfworkflow", "UPPpfworkflow-000199")/*
																									 * @
																									 * res
																									 * "未审批"
																									 */;
		} else {
			obj = "";
		}
		return obj;
	}

	/**
	 * 获得多语化的工作流工作项状况
	 * 
	 * @param iStatus
	 * @param isMakebill
	 *            是否为修单工作项
	 */
	public static String resolveWorkflowitemStatus(int iStatus,
			boolean isMakebill) {
		String obj = null;
		if (iStatus == WfTaskOrInstanceStatus.Finished.getIntValue()) {
			obj = isMakebill ? NCLangRes4VoTransl.getNCLangRes().getStrByID(
					"pfworkflow", "UPPpfworkflow-000011")/* 已修单 */
			: NCLangRes4VoTransl.getNCLangRes().getStrByID("pfworkflow",
					"UPPpfworkflow-000223")/* 已处理 */;
		} else if (iStatus == WfTaskOrInstanceStatus.Inefficient.getIntValue()) {
			obj = NCLangRes4VoTransl.getNCLangRes().getStrByID("common",
					"UC001-0000005")/* @res "作废" */;
		} else if (iStatus == WfTaskOrInstanceStatus.Started.getIntValue()) {
			obj = NCLangRes4VoTransl.getNCLangRes().getStrByID("pfworkflow",
					"UPPpfworkflow-000222")/* 未处理 */;
		} else {
			obj = "";
		}
		return obj;
	}

	public String getParticipantBelongOrg() {
		return participantBelongOrg;
	}

	public void setParticipantBelongOrg(String participantBelongOrg) {
		this.participantBelongOrg = participantBelongOrg;
	}

	public void setAutoCompleted(UFBoolean b) {
		this.autoCompleted = b;
	}

	public UFBoolean getAutoCompleted() {
		return autoCompleted;
	}

	public boolean isAddApprover() {
		return addApprover;
	}

	public void setAddApprover(boolean addApprover) {
		this.addApprover = addApprover;
	}

	public boolean isAppoint() {
		return appoint;
	}

	public void setAppoint(boolean appoint) {
		this.appoint = appoint;
	}

	public ArrayList<String> getRefmsgids() {
		return refmsgids;
	}

	public void setRefmsgids(ArrayList<String> refmsgids) {
		this.refmsgids = refmsgids;
	}

	public String getRunnerid() {
		return runnerid;
	}

	public void setRunnerid(String runnerid) {
		this.runnerid = runnerid;
	}

	public String getJumpToActivity() {
		return jumpToActivity;
	}

	public void setJumpToActivity(String jumpToActivity) {
		this.jumpToActivity = jumpToActivity;
	}

	public boolean isWithdrawGenerated() {
		return isWithdrawGenerated;
	}

	public void setWithdrawGenerated(boolean isWithdrawGenerated) {
		this.isWithdrawGenerated = isWithdrawGenerated;
	}

	public WorkitemMsgContext getContext() {
		return context;
	}

	public void setContext(WorkitemMsgContext context) {
		this.context = context;
	}

	// 单用户审批时getParticipantID被消息占用备份,减少代码修改
	private String approveAgent = null;

	public String getApproveAgent() {
		return approveAgent;
	}

	public void setApproveAgent(String _agent) {
		approveAgent = _agent;
	}

}

流程引擎使用的任务或实例状态枚举:nc.vo.wfengine.pub.WfTaskOrInstanceStatus

package nc.vo.wfengine.pub;

import nc.vo.ml.NCLangRes4VoTransl;

/**
 * 流程引擎使用的任务或实例状态枚举
 * 
 * @author leijun 2009-9
 * @since 6.0
 * @modifier yanke1 2011-5-31 i18n
 */
public enum WfTaskOrInstanceStatus {
	/** 启动(运行中) */
	Started(0),
	/** 完成 */
	Finished(1),
	/** 挂起(暂停) */
	Suspended(2),
	/** 终止 */
	Terminated(3),
	/** 无效(作废) */
	Inefficient(4);

	// 枚举的整型值
	private int intValue;

	/**
	 * 枚举的构造方法
	 * 
	 * @param intValue
	 */
	private WfTaskOrInstanceStatus(int intValue) {
		this.intValue = intValue;
	}

	public int getIntValue() {
		return this.intValue;
	}

	/**
	 * 得到未完成任务的状态集
	 */
	public static String getUnfinishedStatusSet() {
		return Started.getIntValue() + "," + Suspended.getIntValue();
	}

	public static WfTaskOrInstanceStatus fromIntValue(int intValue) {
		switch (intValue) {
		// XXX:必须保证与枚举值一致
		case 0:
			return Started;
		case 1:
			return Finished;
		case 2:
			return Suspended;
		case 3:
			return Terminated;
		case 4:
			return Inefficient;
		default:
			break;
		}
		return null;
	}

	public String toString() {
		switch (getIntValue()) {
		// XXX:必须保证与枚举值一致
		case 0:
			return NCLangRes4VoTransl.getNCLangRes().getStrByID("pfworkflow",
					"UPPpfworkflow-000805") /* @res "运行中" */;
		case 1:
			return NCLangRes4VoTransl.getNCLangRes().getStrByID("pfworkflow",
					"UPPpfworkflow-000806") /* @res "已完成" */;
		case 2:
			return NCLangRes4VoTransl.getNCLangRes().getStrByID("pfworkflow",
					"UPPpfworkflow-000807") /* @res "已挂起" */;
		case 3:
			return NCLangRes4VoTransl.getNCLangRes().getStrByID("pfworkflow",
					"UPPpfworkflow-000808") /* @res "已终止" */;
		case 4:
			return NCLangRes4VoTransl.getNCLangRes().getStrByID("pfworkflow",
					"UPPpfworkflow-000809") /* @res "无效(作废)" */;
		default:
			break;
		}
		return "UnknownStatus";
	}
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值