Bos 服务端常用代码(推荐)
来源:互联网 发布:大数据人工智能培训 编辑:程序博客网 时间:2024/05/16 11:07
/** * 重写提交方法 这里的参数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 抛出基本业务异常 */@Overrideprotected 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);}