当前位置:网站首页>Activiti目录(四)查询代办/已办、审核
Activiti目录(四)查询代办/已办、审核
2022-07-06 09:30:00 【爱机车的程序猿】
把Activiti打入你的脑袋,通过查询代办/已办、审核快速打入
目录
一、审核代办/已办
功能 | 思路 |
---|---|
1.查询当前用户 | |
代办 | 2.根据当前用户ID获取待审核任务 |
3.返回待审核任务信息 | |
– | – |
1.查询当前用户 | |
已办 | 2.根据当前用户ID获取历史审核任务 |
3.返回历史审核任务信息 |
/** * 审核列表 * TODO 1:查询用户及权限 * TODO 2:查询用户审核状态 * TODO 3:获取当前用户待办任务流程 * TODO 4:根据任务实例ID查询业务表信息 * TODO 5:返回业务信息 * @return */
public DataGridPojo ingProessList(String applyState,String userId) {
// 当前登录用户信息
// User user = (User) this.session.getAttribute("currentLoginUser");
// Long userId = Long.valueOf(user.getUserId());
// Object userIds1 = runtimeService.getVariable(task.getProcessInstanceId() + "", "userIds1"); //查看variable常量表
List Result = new ArrayList();
if(applyState.equals("待审核")){
// 查看当前用户待审核记录
List<Task> tasks = taskService.createTaskQuery().taskInvolvedUser(userId)
.orderByTaskCreateTime().desc()
.list();// 代办列表
Result = tasks;
}else if(applyState.equals("已审核") || applyState.equals("审核通过")){
// 已办审核记录
List<HistoricTaskInstance> histTaskList = historyService.createHistoricTaskInstanceQuery().taskInvolvedUser(userId)
.orderByHistoricTaskInstanceStartTime().desc()
.list();// 已办列表
// 审核过记录ssss
List<HistoricTaskInstance> histTaskApproveds = histTaskList.stream().filter(h -> "epidemicGroup".equals(h.getName()) && null != h.getEndTime()).collect(Collectors.toList());
Result = applyState.equals("已审核")
? histTaskList : histTaskApproveds;
}
DataGridPojo dataGridPojo = new DataGridPojo();
dataGridPojo.setRows(Result);
return dataGridPojo;
}
二、签收代办(审核)
思路 | |
---|---|
根据流程实例ID和当前用户ID查询流程任务是否存在 | |
存在 | 1.根据当前人员设置审核节点状态 |
2.通过节点状态完成审核任务 | |
– | – |
不存在 | 返回不成功状态码 |
/** * 审核 * @param user 用户信息 * @param apply 业务信息 */
public int aduit(User user,Apply apply){
// 用户ID
if(null == user) return -1;
//查询当前审批节点
Task task = taskService.createTaskQuery().processInstanceId(apply.getProcessInstanceId()).taskInvolvedUser(user.getUserId()+"").singleResult();
int state = -1;
if(null != task) {
//设置流程参数:审批ID
Map<String, Object> args = new HashMap<>();
switch (task.getName()){
case "teacher":
state = Constants.EPIDEMIC_APPLY_STATE_LSSH;
break;
case "academy":
state=Constants.EPIDEMIC_APPLY_STATE_XSCSH;
break;
case "epidemicGroup":
state=Constants.EPIDEMIC_APPLY_STATE_GZXZSH;
break;
}
args.put("applyState", state);//设置流程参数
// 设置审批任务的执行人
taskService.setAssignee(task.getId(),user.getUserId() + "");
try {
//完成审批任务
taskService.complete(task.getId(), args);
} catch (Exception e) {
log.error(e.getMessage());
return -1;
}
}
return state;
}
三、实例代码
代办:
已办:
审核代办:
查代办看是否完成:
查已办是否存在:
边栏推荐
- @RestController、@Controller
- Record the error reason: terminate called after throwing an instance
- DS18B20数字温度计系统设计
- Cartesian tree (modified)
- Cmake error: could not create named generator visual studio 16 2019 solution
- string. How to choose h and string and CString
- [unsolved]7-14 calculation diagram
- Fdog series (I): think about it. It's better to write a chat software. Then start with the imitation QQ registration page.
- ~70 row high
- Solr new core
猜你喜欢
搭建flutter环境入坑集合
LeetCode 1560. The sector with the most passes on the circular track
字节跳动技术面试官现身说法:我最想pick什么样的候选人
Shell_ 03_ environment variable
Use JQ to realize the reverse selection of all and no selection at all - Feng Hao's blog
"One year after graduation, I won ACL best paper"
LeetCode 1020. Number of enclaves
Solve the single thread scheduling problem of intel12 generation core CPU (II)
[unsolved]7-14 calculation diagram
One hundred questions of image processing (11-20)
随机推荐
LeetCode 1566. Repeat the pattern with length m at least k times
Cmake Express
Jedis
Record the error reason: terminate called after throwing an instance
数据传送指令
redux使用说明
Restful style interface design
was unable to send heartbeat
DS18B20数字温度计系统设计
~69 other ways to use icon fonts
Shell_ 07_ Functions and regular expressions
[graduation project] QT from introduction to practice: realize imitation of QQ communication, which is also the last blog post in school.
ByteDance open source Gan model compression framework, saving up to 97.8% of computing power - iccv 2021
Solr word segmentation analysis
服务器端渲染(SSR)和客户端渲染(CSR)的区别
7-6 sum of combinatorial numbers
When it comes to Google i/o, this is how ByteDance is applied to flutter
Business system compatible database oracle/postgresql (opengauss) /mysql Trivia
After the subscript is used to assign a value to the string type, the cout output variable is empty.
J'ai traversé le chemin le plus fou, le circuit cérébral d'un programmeur de saut d'octets