单据开发-业务单据后台Bean代码(GUI端)
1人赞赏了该文章
583次浏览
编辑于2022年04月22日 13:22:08
关注公众号获取更多金蝶EAS开发方面的内容
因论坛版权要求,部分图片无法显示,可以直接方位微信公众号链接
https://mp.weixin.qq.com/s/iK0Mx3wu3BW6ZG-58r5-ig
本篇文档主要介绍实体所对应的后台能Bean的常用方法
01
关于后台Bean的说明
1、常用的实体(.entity)和功能(.facade)文件发布成功后,都会在相应的路径下面生成对应的bean文件,文件名称统一为:实体名/功能名+ControllerBean
2、前端调用后台bean的方法通常为
实体名/功能名Factory.getRemoteInstance().方法名
3、后台bean中调用其他实体/功能的后台方法通常为
实体名/功能名Factory.getLocalInstance(ctx).方法名
02
保存
/** * 保存 */ protected IObjectPK _save(Context ctx, IObjectValue model) throws BOSException, EASBizException { //保存前 return super._save(ctx, model); }
03
删除
/** * 删除 */ protected void _delete(Context ctx, IObjectPK pk) throws BOSException, EASBizException { //删除前判断单据ID 是否被引用 String isDelete = FMIsqlFacadeFactory.getLocalInstance(ctx).wholeSearchs(pk.toString()); if(!BaseUtil.isEmpty(isDelete)){ throw new EASBizException(new NumericExceptionSubItem("21","单据已被引用,禁止删除!")); //抛出异常,前台报错提示 } super._delete(ctx, pk); }
04
提交
/** * 提交 */ protected IObjectPK _submit(Context ctx, IObjectValue model) throws BOSException, EASBizException { //保存前 ExpenseBillInfo info= (ExpenseBillInfo)model;//获取单据对象 if(billStateEnum.AUDIT.equals(info.getBillState())){ //判断已审核的单据禁止重复提交 throw new EASBizException(new NumericExceptionSubItem("21","已审核数据不允许提交!")); } //此处可以写一些验证逻辑,如报销金额不能大于借款金额等 // info.setBillState(billStateEnum.SUBMIT);// 更新单据状态为已提交 //这里不需要手动调用 update 来更新状态, 因为super._submit中会自动调用 return super._submit(ctx, model); }
05
审核
/** * 审核 */ protected void _passAudit(Context ctx, IObjectPK pk, IObjectValue model) throws EASBizException, BOSException { ExpenseBillInfo info= (ExpenseBillInfo)model;//获取单据对象 info.setAuditTime(new Date()); //设置审批时间 info.setAuditor((UserInfo) ctx.get("UserInfo")); //设置审批人 info.setBillState(billStateEnum.AUDIT); //设置状态为已审批 update(ctx, pk, info);//更新单据对象 //此处可以写一下其他业务逻辑,例如更新其他单据的状态,例如反写其他单据的金额等等 }
06
反审核
/** * 反审核 */ protected void _unpassAudit(Context ctx, IObjectPK pk, IObjectValue model) throws EASBizException, BOSException { ExpenseBillInfo info= (ExpenseBillInfo)model;//获取单据对象 info.setAuditTime(null); //设置审批时间 info.setAuditor(null); //设置审批人 info.setBillState(billStateEnum.SAVE); //设置状态为已审批 update(ctx, pk, info);//更新单据对象 }
07
审批中
/** * 设置审批中(自定义方法) * 注:主要在流程中调用,设置单据状态为审批中 */ public void setAuditing(Context ctx, String pk) throws BOSException { try { ExpenseBillInfo info = getExpenseBillInfo(ctx, new ObjectUuidPK(pk)); // 通过ID获取单据对象 info.setBillState(billStateEnum.AUDITING); //设置状态为已审批 update(ctx, new ObjectUuidPK(pk), info); //更新单据对象 } catch (EASBizException e) { e.printStackTrace(); } }
本文转载自:微信公众号
作者:黑白
原文链接:https://mp.weixin.qq.com/s/iK0Mx3wu3BW6ZG-58r5-ig
赞 1
1人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读