update 工作中心代码(未完成)

This commit is contained in:
lijiarao
2023-10-17 18:23:52 +08:00
parent 300eec132c
commit 2069decf44
22 changed files with 408 additions and 105 deletions
@@ -1,16 +1,16 @@
package com.jero.modules.activiti.controller;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.DictPoint;
import com.jero.common.constant.enums.LanguageEnum;
import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.MessageUtils;
import com.jero.modules.activiti.entity.ProcessAll;
import com.jero.modules.activiti.entity.ProcessModelNode;
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
import com.jero.modules.activiti.entity.ProcessNode;
import com.jero.modules.activiti.service.*;
import com.jero.modules.laws.common.constant.ResultCommon;
@@ -28,7 +28,6 @@ import org.activiti.engine.task.TaskQuery;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
@@ -63,13 +62,15 @@ public class ActivitiController {
private ProcessNodeLinkService processNodeLinkService;
@Resource
private ProcessAllService processAllService;
@Resource
private ProcessApprovalRecordService processApprovalRecordService;
@ApiOperation(value="启动流程")
@PostMapping("/start")
public Result<Map<String, String>> start(@RequestBody Map<String,Object> map) {
String key = map.get("key").toString();
String prcName = map.get("prcName").toString();
String prcNum = map.get("prcNum").toString();
String prcMes = map.get("prcMes").toString();
Date dueTime = (Date) map.get("dueTime");
// 1、创建ProcessEngine
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
@@ -80,12 +81,12 @@ public class ActivitiController {
ProcessInstance processInstance = runtimeService
.startProcessInstanceByKey(key, map);
String processInstanceId = processInstance.getId();
//更新流程总表
//根据流程实例id更新流程总表
ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId);
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
process.setCreateUserId(loginUser.getId());
process.setPrcName(prcName);
process.setPrcNum(prcNum);
process.setPrcMes(prcMes);
process.setDueTime(dueTime);
process.setProjectId("业务id");
processAllService.updateById(process);
@@ -108,16 +109,19 @@ public class ActivitiController {
public Result<List<Map<String, String>>> testFindPersonalTaskList(@RequestParam(value = "assignee") String assignee,
@RequestParam(value = "processKey") String processKey,
@RequestParam(value = "group") String group) {
// 根据流程key 和 任务负责人 查询任务
//根据流程key 和 任务负责人 查询任务
TaskQuery taskQuery = taskService.createTaskQuery();
if (StringUtils.isNotBlank(assignee)) {
taskQuery.taskAssignee(assignee);//只查询该任务负责人的任务
//只查询该任务负责人的任务
taskQuery.taskAssignee(assignee);
}
if (StringUtils.isNotBlank(group)) {
taskQuery.taskCandidateGroup(group);//只查询该组的任务
//只查询该组的任务
taskQuery.taskCandidateGroup(group);
}
if (StringUtils.isNotBlank(processKey)) {
taskQuery.processDefinitionKey(processKey); //流程Key
//流程Key
taskQuery.processDefinitionKey(processKey);
}
List<Task> list = taskQuery.list();
List<Map<String, String>> result = new ArrayList<>();
@@ -127,7 +131,6 @@ public class ActivitiController {
map.put("任务id", task.getId());
map.put("任务负责人:", task.getAssignee());
map.put("任务名称:", task.getName());
//map.put("任务名称:", task.get);
result.add(map);
}
return Result.OK(result);
@@ -138,6 +141,10 @@ public class ActivitiController {
public Result<Object> complete(@RequestBody Map<String,Object> map) {
//todo 判断当前节点,执行不同的操作
String taskId = map.get("taskId").toString();
Integer commitFlag = Integer.valueOf(map.get("commitFlag").toString());
String commitText = map.get("commitText").toString();
String commitFile = map.get("commitFile").toString();
Task task=taskService.createTaskQuery() // 创建任务查询
.taskId(taskId) // 根据任务id查询
@@ -145,18 +152,17 @@ public class ActivitiController {
String taskName = task.getName();
if ("填写基本信息,在线编辑,分发其他起草人".equals(taskName)){
// todo
}else if ("其他起草人线下填写,上传".equals(taskName)){
// todo
}
//Map<String, Object> vars = new HashMap<>();
//List<String> otherDrafterList = new ArrayList<>();
//otherDrafterList.add("zhangsan");
//otherDrafterList.add("lisi");
//otherDrafterList.add("wangwu");
//vars.put("leaderList", otherDrafterList);
//Map<String, Object> map = new HashMap<>();
//map.put("status", 2);
//更新审批表为完成,填充数据
ProcessApprovalRecord approvalRecord = processApprovalRecordService.getByTaskId(taskId);
approvalRecord.setCommitFlag(commitFlag);
approvalRecord.setCommitText(commitText);
approvalRecord.setCommitFile(commitFile);
approvalRecord.setFinishFlag(YesOrNoEnum.YES.getInteger());
approvalRecord.setEndTime(new Date());
processApprovalRecordService.updateById(approvalRecord);
//审批节点
taskService.complete(taskId, map);
return Result.OK();
}
@@ -205,7 +211,6 @@ public class ActivitiController {
}
@ApiOperation(value="签收任务")
@PostMapping("/claim")
public Result<Object> claim(@RequestBody Map<String,Object> map) {
@@ -216,19 +221,14 @@ public class ActivitiController {
}
/**
* 加签
*
* @param taskId
* @param loginName
* @return
*/
@ApiOperation(value="加签/委托")
@GetMapping("/delegateTask")
public Result<Object> delegateTask(@RequestParam(value = "taskId") String taskId,
@RequestParam(value = "loginName") String loginName) {
taskService.delegateTask(taskId, loginName);
@RequestParam(value = "userId") String userId) {
taskService.delegateTask(taskId, userId);
return Result.OK();
}
@@ -1,9 +1,30 @@
package com.jero.modules.activiti.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.Result;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.activiti.entity.ProcessAll;
import com.jero.modules.activiti.service.ProcessAllService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.task.Task;
import org.activiti.engine.task.TaskQuery;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jetbrains.annotations.NotNull;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author liJiaRao
@@ -15,4 +36,81 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/workCenter")
public class WorkCenterController {
@Resource
private ProcessAllService processAllService;
@ApiOperation(value = "查询待办流程列表")
@GetMapping("/getTodoList")
public Result<IPage<ProcessAll>> getTodoList(ProcessAll processAll,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<ProcessAll> queryWrapper = getProcessAllQueryWrapper(processAll);
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String userId = loginUser.getId();
queryWrapper.eq("par.user_id",userId);
queryWrapper.eq("par.finish_flag",0);
Page<ProcessAll> page = new Page<>(pageNo, pageSize);
IPage<ProcessAll> todoList = processAllService.getTodoList(page, queryWrapper);
return Result.OK(todoList);
}
@ApiOperation(value = "查询已办流程列表")
@GetMapping("/getCompletedList")
public Result<?> getCompletedList(ProcessAll processAll,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<ProcessAll> queryWrapper = getProcessAllQueryWrapper(processAll);
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String userId = loginUser.getId();
queryWrapper.eq("par.user_id",userId);
queryWrapper.eq("par.finish_flag",1);
Page<ProcessAll> page = new Page<>(pageNo, pageSize);
IPage<ProcessAll> completedList = processAllService.getCompletedList(page, queryWrapper);
return Result.OK(completedList);
}
@ApiOperation(value = "查询已发流程列表")
@GetMapping("/getSentList")
public Result<?> getSentList(ProcessAll processAll,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<ProcessAll> queryWrapper = getProcessAllQueryWrapper(processAll);
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String userId = loginUser.getId();
queryWrapper.eq("pa.user_id",userId);
Page<ProcessAll> page = new Page<>(pageNo, pageSize);
IPage<ProcessAll> sentList = processAllService.getSentList(page, queryWrapper);
return Result.OK(sentList);
}
@NotNull
private QueryWrapper<ProcessAll> getProcessAllQueryWrapper(ProcessAll processAll) {
String prcName = processAll.getPrcName();
String prcNum = processAll.getPrcNum();
Integer prcType = processAll.getPrcType();
Integer prcStatus = processAll.getPrcStatus();
QueryWrapper<ProcessAll> queryWrapper = new QueryWrapper<>();
queryWrapper.like(StringUtils.isNotBlank(prcName), "pa.prc_name", "%" + prcName + "%");
queryWrapper.like(StringUtils.isNotBlank(prcNum), "pa.prc_num", "%" + prcNum + "%");
queryWrapper.eq(prcType != null, "pa.prc_type", prcType);
queryWrapper.eq(prcStatus != null, "pa.prc_status", prcStatus);
return queryWrapper;
}
@ApiOperation(value = "撤销流程")
@PostMapping("/delete")
public Result<?> delete(@RequestBody Map<String, String> map) {
String processInstanceId = map.get("processInstanceId");
processAllService.delete(processInstanceId);
return Result.OK();
}
}