diff --git a/renren-admin/src/main/java/io/renren/modules/activiti/controller/ActTaskController.java b/renren-admin/src/main/java/io/renren/modules/activiti/controller/ActTaskController.java index d249ebd7..220389d2 100644 --- a/renren-admin/src/main/java/io/renren/modules/activiti/controller/ActTaskController.java +++ b/renren-admin/src/main/java/io/renren/modules/activiti/controller/ActTaskController.java @@ -11,6 +11,8 @@ import io.renren.common.utils.Result; import io.renren.modules.activiti.dto.BatchCompleteDTO; import io.renren.modules.activiti.dto.TaskDTO; import io.renren.modules.activiti.service.ActTaskService; +import io.renren.modules.audit_team.dto.SysAuditTeamDTO; +import io.renren.modules.audit_team.service.SysAuditTeamService; import io.renren.modules.security.user.SecurityUser; import io.renren.modules.security.user.UserDetail; import io.renren.modules.sys.dto.SysUserDTO; @@ -27,6 +29,7 @@ import org.activiti.engine.task.TaskQuery; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; @@ -63,6 +66,11 @@ public class ActTaskController { protected RepositoryService repositoryService; @Autowired protected TaskService taskService; + @Autowired + private SysAuditTeamService sysAuditTeamService; + + @Value("#{new Boolean(${auditteam.enable})}") + private Boolean auditteam; // 是否进行审核组 /** @@ -163,7 +171,8 @@ public class ActTaskController { }) public Result> myToDoTaskNum(@ApiIgnore @RequestParam Map params) { Map result = new LinkedHashMap<>(); - params.put("userId", SecurityUser.getUserId().toString()); + String userId = SecurityUser.getUserId().toString(); + params.put("userId", userId); ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery() .orderByProcessDefinitionId().desc().orderByProcessDefinitionKey().desc(); processDefinitionQuery.latestVersion(); @@ -173,7 +182,28 @@ public class ActTaskController { taskQuery.processDefinitionKey(index.getKey()); // 流程模型key taskQuery.taskAssignee(SecurityUser.getUserId().toString()); taskQuery.active(); - result.put(index.getKey(), taskQuery.count()); + if (auditteam) { // 允许流程审核协作时 + List sysAuditTeamDTOS = sysAuditTeamService.selectByMemberOne(userId); + List groupUserId = sysAuditTeamDTOS + .stream() + .map(index_ -> index_.getMember()) + .filter(Objects::nonNull) + .flatMap(index_ -> index_.stream()) + .map(index_ -> (String) index_.get("id")) + .filter(index_ -> !userId.equals(index_)) // 过滤非本人 + .distinct() + .collect(Collectors.toList()); + long sum = groupUserId.stream().mapToLong(inedx_ -> { + TaskQuery taskQuery_ = taskService.createTaskQuery(); + taskQuery_.processDefinitionKey(index.getKey()); // 流程模型key + taskQuery_.taskAssignee(inedx_); // 协作组审核人 + taskQuery_.active(); + return taskQuery_.count(); + }).sum(); + result.put(index.getKey(), taskQuery.count() + sum); // 加上协作组任务数 + } else { + result.put(index.getKey(), taskQuery.count()); + } }); result.put("meetingroom_book", jdbcTemplate.queryForObject("SELECT COUNT(id) FROM t_meetingroom_book WHERE state = 1;", Long.class)); return new Result>().ok(result);