/**
* 当前登录人的代办任务 带分页
* @param curUserId
* @return
*/
@SuppressWarnings("unchecked")
public PageModel findCurActivityTask(String curUserId,int pageNo,int pageSize){
PageModel page = new PageModel();
String sql = "select a.assignee_,a.create_,a.execution_id_,a.name_,c.key_,c.string_value_,d.blob_value_,e.* " +
"from JBPM4_TASK a left join JBPM4_EXECUTION b on a.execution_id_ = b.id_ " +
"left join JBPM4_VARIABLE c on a.dbid_ = c.dbid_ " +
"left join JBPM4_LOB d on b.dbid_ = d.deployment_ " +
"left join GDJ_ADMINISTRTIVE e on a.execution_id_ = e.processinstanceid" +
" where a.assignee_ = '"+curUserId+"'";
sql = "select * from JBPM4_TASK where assignee_ = '"+curUserId+"'";
//先得到当前登陆对应的代办事项
sql = "select a.dbid_,a.execution_,a.activity_name_,a.create_,a.execution_id_,a.ASSIGNEE_ from JBPM4_TASK a left join JBPM4_EXECUTION b on a.execution_ = b.DBID_ where a.ASSIGNEE_= '"+curUserId+"'";
try {
page = dao.pageByJdbc(sql, "create_ desc","dbid_", pageNo, pageSize);
} catch (Exception e) {
e.printStackTrace();
}
List res = new ArrayList();
List list = (List)page.getData();
if(!list.isEmpty()){
for(int i = 0 ; i < list.size() ; i ++){
Map map = (Map)list.get(i);
String execution_ = (String)map.get("execution_");
String flowId = (String)map.get("execution_id_");
String flowActivityName = (String)map.get("activity_name_");
CurTaskBean bean = new CurTaskBean();
//得到基础的数据并赋值
bean.setDbid((String)map.get("dbid_"));
bean.setExecution(execution_);
bean.setActivityname(flowActivityName);
bean.setCreate(DateTool.StringToTime((String)map.get("create_")));
bean.setExecutionid(flowId);
bean.setAssignee((String)map.get("ASSIGNEE_"));
//通过流程自动生成的ID查询其他数据
sql = "select key_,string_value_,blob_value_ from JBPM4_VARIABLE a left join JBPM4_LOB b on a.lob_ = b.dbid_ where execution_ = '"+execution_+"'";
List<Map> varList = dao.findByJdbcStr(sql);
if(!varList.isEmpty()){
for(int k = 0 ; k < varList.size() ; k ++){
Map varMap = varList.get(k);
String key_ = (String)varMap.get("key_");
String stringValue = (String)varMap.get("string_value_");
if(key_.equals("title")){
bean.setTitle(key_);
}else if(key_.equals("dealUrl")){
bean.setDealurl(stringValue+"&flowId="+flowId+"&activityName="+getActivityName(flowActivityName));
}else if(key_.equals("Object_Case")){
//得到业务表对象实例
bean.setGdjObject(gdjDao.findByFlowId(flowId));
}
}
}
res.add(bean);
}
}
page.setData(res);
return page;
}