通过代码新增行政组织并快速生成业务单元原创
10人赞赏了该文章
2,021次浏览
编辑于2022年03月01日 11:13:14
通过代码新增行政组织并快速生成业务单元,并赋予生产组织职能
这里是主要代码片段,需要根据自己的需求增加事务以保证数据异常回滚
number可以不设置,因为会调用界面的编码规则;可以根据自己的业务需求设置
组织职能编码要严格按照要求,不能04写成4
这样子实现跟直接创建单据对象保存入库相比有什么好处:代码量十分精简,可以触发界面插件,可以触发业务规则,不用担心未来业务组织单据的功能升级带来的潜在问题
IFormView view = ABillServiceHelper.createAddView("bos_adminorg"); // 编码可以不设置,因为会调用界面的编码规则; view.getModel().setValue("number", number); view.getModel().setValue("name", String.format("%s%s",platType,org.get("name"))); view.getModel().setValue("parent", parentDynamicObject.getPkValue()); OperationResult operationResult = ABillServiceHelper.saveOperate(view); if(!operationResult.isSuccess()){ return ApiResult.fail(getOperationResultErrorInfos(operationResult)); } if(CollectionUtils.isNotEmpty(operationResult.getSuccessPkIds())){ Long orgPkValue = (Long) operationResult.getSuccessPkIds().get(0); String[] views = new String[] { "04", "15"}; List<OrgParam> paramList = new ArrayList<>(); for(String duty : views){ OrgParam orgParam = new OrgParam(); orgParam.setDuty(duty); orgParam.setId(orgPkValue); orgParam.setAutoMoveSubOrg(false); orgParam.setParentId((Long)parentDynamicObject.getPkValue()); paramList.add(orgParam); } // 开始批量增加组织职能 OrgUnitServiceHelper.addDuty(paramList); this.showSaveResult(paramList); }
ABillServiceHelper
具体实现参照:https://club.kdcloud.com/article/137917369896118528
addDuty
kd\bos\org\service\OrgService.class
public void addDuty(List<OrgParam> paramList) { log.info("开始批量增加组织职能"); if (!OrgParamValidator.isOrgParamEmpty(paramList)) { int count = paramList.size(); List<Long> allOrgIds = new ArrayList(count); Iterator var4 = paramList.iterator(); while(var4.hasNext()) { OrgParam orgParam = (OrgParam)var4.next(); allOrgIds.add(orgParam.getId()); } List<Long> orgIds = new ArrayList(count); Iterator var24 = paramList.iterator(); while(true) { if (var24.hasNext()) { OrgParam orgParam = (OrgParam)var24.next(); TXHandle h = TX.required(); Throwable var8 = null; try { try { this.addDuty(orgParam, allOrgIds); orgIds.add(orgParam.getId()); if (orgParam.isSuccess()) { OrgManagerUtils.saveHistory(orgIds); continue; } h.markRollback(); } catch (Exception var20) { orgParam.setSuccess(false); String msg = var20.getMessage() == null ? BaseMessage.getMessage("M00060") : var20.getMessage(); orgParam.setMsg(BaseMessage.getMessage("M00061", new Object[]{msg})); h.markRollback(); continue; } } catch (Throwable var21) { var8 = var21; throw var21; } finally { if (h != null) { if (var8 != null) { try { h.close(); } catch (Throwable var19) { var8.addSuppressed(var19); } } else { h.close(); } } } return; } log.info("结束批量增加组织职能"); return; } } }
showSaveResult
为什么要抛异常:用做事务回滚
/** * 显示保存结果 * @param paramList */ private void showSaveResult(List<OrgParam> paramList) { Iterator var2 = paramList.iterator(); OrgParam orgParam; do { if (!var2.hasNext()) { return; } orgParam = (OrgParam)var2.next(); } while(orgParam.isSuccess()); // 抛异常用做事务回滚 throw new KDBizException(orgParam.getMsg()); }
getOperationResultErrorInfos
实现逻辑参考https://club.kdcloud.com/article/145600166525767936
相关内容
组织职能类型
赞 10
10人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读