@Transactional(readOnly = false) public void delegateMain() { try { // 权限委托 List<TrustRecord> delegateMains = delegateMainManager.getDelegateMainsOnAssign(); for (TrustRecord dm : delegateMains) { com.norteksoft.product.api.entity.User trustee = ApiFactory.getAcsService().getUserByLoginName(dm.getTrustee()); // 受托人 com.norteksoft.product.api.entity.User trustor = ApiFactory.getAcsService().getUserByLoginName(dm.getTrustor()); // 委托人 if (needEfficient(dm)) { ApiFactory.getAcsService() .assignTrustedRole(trustor.getId(), dm.getRoleIds().split(","), trustee.getId()); dm.setState(TrustRecordState.EFFICIENT); delegateMainManager.saveDelegateMain(dm); } if (needEnd(dm)) { ApiFactory.getAcsService() .deleteTrustedRole(trustor.getId(), dm.getRoleIds().split(","), trustee.getId()); dm.setState(TrustRecordState.END); delegateMainManager.saveDelegateMain(dm); } } // 流程委托 List<TrustRecord> workflowDelegateMains = delegateMainManager.getAllStartWorkflowDelegateMain(); for (TrustRecord wfdm : workflowDelegateMains) { if (needEfficient(wfdm)) { wfdm.setState(TrustRecordState.EFFICIENT); delegateMainManager.saveDelegateMain(wfdm); } if (needEnd(wfdm)) { wfdm.setState(TrustRecordState.END); delegateMainManager.saveDelegateMain(wfdm); // 委托结束时取回任务 taskService.recieveDelegateTask(wfdm); } } } catch (Exception e) { log.error("定时委托异常:" + e.getMessage()); } }