您的位置:首页 > 编程语言

Bos 服务端常用代码(推荐)

2012-08-30 09:43 260 查看
/**
     * 重写提交方法  这里的参数IObjectValue model 强制转化为QuaItemModuleInfo 就可以了
     */
	protected IObjectPK _submit(Context ctx, IObjectValue model)
			throws BOSException, EASBizException {
		AuditNoticeInfo info=(AuditNoticeInfo)model;
		if(!BillState.Save.equals(info.getState())){
			throw new EASBizException(new NumericExceptionSubItem("003","只有编制中状态的单据才能提交!"));
		}	
		return super._submit(ctx, model);
	}
	
	/**
	 * 重写保存、修改方法,model强制转化为QuaItemModuleInfo
	 * 
	 */
	protected IObjectPK _save(Context ctx, IObjectValue model)
			throws BOSException, EASBizException {
		AuditNoticeInfo info=(AuditNoticeInfo)model;
		if(! BillState.Save.equals(info.getState())){
			throw new EASBizException(new NumericExceptionSubItem("002","只有〖编制中〗状态的单据才能修改!"));
		}
		return super._save(ctx, model);
	}
	
	/**
	 * 重写删除方法,需要注意的是这里的参数是 ctx,pk而不是model,这里我们首先需要通过工厂类得到一个
	 * IQuaItemModule对象,然后调用方法得到存放元数据的类
	 */
	protected void _delete(Context ctx, IObjectPK pk) throws BOSException,
			EASBizException {
		AuditNoticeInfo info=(AuditNoticeInfo) this._getValue(ctx, pk);
		if(! BillState.Save.equals(info.getState())){
			throw new EASBizException(new NumericExceptionSubItem("002","〖"+info.getState()+"〗状态的单据不能删除!"));
		}
		super._delete(ctx, pk);
	}
	
	
	/**
	 * 审核方法,服务端代码,继承过来重写这个方法
	 * @Param ctx
	 * @Param billId
	 * @param isPass
	 * @throws 抛出基本业务异常
	 */
	@Override
	protected void _audit(Context ctx, BOSUuid billID, boolean isPass)
			throws BOSException, EASBizException {
    	if(billID==null)
    		return;
    	//通过billId获得那个主键pk 
		ObjectUuidPK pk = new ObjectUuidPK(billID);
		AuditNoticeInfo info=(AuditNoticeInfo)this._getValue(ctx, pk);
		if(BillState.Save.equals(info.getState())||BillState.Auditing.equals(info.getState())){
	    	ContextHelperSrv srv = new ContextHelperSrv(ctx);
	    	info.setAuditor(srv.getCurrentUser());
	    	if(isPass){
	    		info.setState(BillState.AuditPass);
	    	}else{
	    		info.setState(BillState.AuditUnPass);
	    	}
			this._update(ctx, pk, info);
		}else {
    		throw new EASBizException(new NumericExceptionSubItem("001","只有编制中或审批中的状态才可以审核"));
    	}

		
	}
	
	
	
	protected IObjectPK _addnew(Context ctx, IObjectValue model)
			throws BOSException, EASBizException {
		return super._addnew(ctx, model);
	}

	/**
	 * 反审核
	 */
	protected void _unAudit(Context ctx, BOSUuid billID) throws BOSException,
			EASBizException {
    	if(billID==null)
    		return;
    	//通过billId获得那个主键pk 
		ObjectUuidPK pk = new ObjectUuidPK(billID);
		AuditNoticeInfo info=(AuditNoticeInfo)this._getValue(ctx, pk);
    	if(!BillState.AuditPass.equals(info.getState())&&
    			!BillState.AuditUnPass.equals(info.getState()))
    	{
    		throw new EASBizException(new NumericExceptionSubItem("002","只有审核后的状态才可以反审核"));
    	}
    	ContextHelperSrv srv = new ContextHelperSrv(ctx);
    	info.setAuditor(null);
    	info.setState(BillState.Save);
    	this._update(ctx, pk, info);
		
	}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: