BCDL JBPM流程相关1

--云南电信的有
private Date appDate; //提交审批那一刻的时间
private Date appTime; // 当前流程处理时间
private String appUsers; // 当前流程节点处理人 (当前节点处理人userName 多个则以英文","号分隔 )

--当用户从制单——》复核或者 复核--》到制单的话都要进入
BankAccountDaoImpl changeState

--加载在支付流程中的所有用户名(出纳用户)
public List<String> loadUserNameInProcess() {
StringBuffer hql = new StringBuffer();
hql.append("select tu.actors from TaskUser tu where tu.processTask.process.uniqueCode = :uniqueCode " +
" and tu.processTask.taskName = :taskName");
Query query = this.getSession().createQuery(hql.toString());
query.setString("uniqueCode", Constant.PAY_PROCESS_UNIQUECODE);
query.setString("taskName", Constant.TASK_NAME_ZHIDAN);
List<String> returnValue = query.list();
return returnValue;
}

--复核变慢,支付变慢,执行以下语句。
drop index jbpmtokenvariable;
drop index jbpmtaskinstance;
create index jbpmtokenvariable on JBPM_VARIABLEINSTANCE(TOKENVARIABLEMAP_);
create index jbpmtaskinstance on JBPM_VARIABLEINSTANCE(TASKINSTANCE_);


--流程表相关表,获取 usergroupid
select * from cmcs3_process_user_group;
select * from cmcs3_process p where p.processid = 1001;
select * from cmcs3_process_task_user u where u.usergroupid = 1020;
select * from cmcs3_process_task ;

--得到的是 支付流程对应的 复核节点 的复核人登录名
select u.actors,ug.id from cmcs3_process p,cmcs3_process_user_group ug,cmcs3_process_task_user u,cmcs3_process_task t
where p.processid = ug.processid and ug.id = u.usergroupid and u.processtaskid = t.processtaskid
and t.taskname = '复核' and p.uniquecode = 'ExternalPayments' and ug.id = ?;

-- 肖天晴批量复核
private boolean isCanApproval(String comment, TaskInstanceBean tib, Transition tran) {
if(tib.getTaskInstance().getName().equals("复核") && "同意".equals(comment)) {
return "送审批".equals(tran.getName());
}
return tran.getName().equals(comment + tib.getTaskInstance().getName());
}
tib.getTaskInstance().getName().equals("复核") --此方法和对象可以得到该节点人属于 复核 还是审批
tran.getName() --此方法可以知道用户选择是同意还是拒绝复核,审批

--获取流程组,同时判断是支付流程还是支付异常流程等
Object userGroupId = tib.getTaskInstance().getContextInstance().getVariable("userGroupId");
UserGroup userGroup = ServiceFactory.getInstance().getProcessService().loadUserGroup((Long)userGroupId);
request.setAttribute("isPayments", Constants.PAYMENT_UNIQUECODE.equals(userGroup.getProcess().getUniqueCode()));

--余额调节表的查看流程信息
select * from cmcs3_audit_detail ad;
--先根据账号ID 和对账区间 找到该条记录的 流程ID
--然后就可以像处理支付流程的那条SQL查询就行了

--查余额调节表提交审批走到哪个流程了的思路
先根据 subjectID 和 beginDate 找到这笔单据,然后得到 auditdetailid 和 processinstanceid ,然后根据流程ID得到相关的各个流程的节点信息,
相关SQL如下:
select ad.processinstanceid from cmcs3_audit_detail ad
where ad.subjectid = 1020 order by ad.begindate desc;
and ad.begindate = to_date('2012-01-01','yyyy-mm-dd');

--支付异常流程,先到下表中根据transferbillID 找到相应的 流程ID ,然后就可以像处理支付流程的那条SQL查询就行了
select e.* from cmcs3_transfer_error e

你可能感兴趣的:(jbpm)