Compare commits
2 Commits
cb568fb746
...
5457d15793
Author | SHA1 | Date | |
---|---|---|---|
![]() |
5457d15793 | ||
![]() |
d5892c92d7 |
@ -52,7 +52,7 @@ public class BpmOAImprestController {
|
|||||||
|
|
||||||
BpmOAImprestDO imprest = imprestService.getImprest(id);
|
BpmOAImprestDO imprest = imprestService.getImprest(id);
|
||||||
BpmOAImprestRespVO respVO = BpmOAImprestConvert.INSTANCE.convert(imprest);
|
BpmOAImprestRespVO respVO = BpmOAImprestConvert.INSTANCE.convert(imprest);
|
||||||
if (respVO != null) {
|
if (respVO != null && imprest.getBankId() != null) {
|
||||||
// 获取收款账号信息
|
// 获取收款账号信息
|
||||||
BankRespDTO bankRespDTO = bankApi.getBank(imprest.getBankId()).getCheckedData();
|
BankRespDTO bankRespDTO = bankApi.getBank(imprest.getBankId()).getCheckedData();
|
||||||
if (bankRespDTO != null) {
|
if (bankRespDTO != null) {
|
||||||
|
@ -11,8 +11,6 @@ import io.swagger.v3.oas.annotations.Operation;
|
|||||||
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import jodd.util.StringUtil;
|
import jodd.util.StringUtil;
|
||||||
import org.mapstruct.ap.internal.util.Strings;
|
|
||||||
import org.springframework.util.StringUtils;
|
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
@ -62,13 +60,20 @@ public class BpmOAReimbursementController {
|
|||||||
return success(respVO);
|
return success(respVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
// @GetMapping("/page")
|
@GetMapping("/getByImprest")
|
||||||
// @PreAuthorize("@ss.hasPermission('bpm:oa-reimbursement:query')")
|
@Operation(summary = "获得指定备用金得报销申请")
|
||||||
// @Operation(summary = "获得请假申请分页")
|
@Parameter(name = "imprestId", description = "备用金编号", required = true, example = "1024")
|
||||||
// public CommonResult<PageResult<BpmOALeaveRespVO>> getLeavePage(@Valid BpmOALeavePageReqVO pageVO) {
|
public CommonResult<BpmOAReimbursementRespVO> getReimbursementByImprest(@RequestParam("imprestId") Long imprestId) {
|
||||||
// PageResult<BpmOALeaveDO> pageResult = leaveService.getLeavePage(getLoginUserId(), pageVO);
|
|
||||||
// return success(BpmOALeaveConvert.INSTANCE.convertPage(pageResult));
|
BpmOAReimbursementDO reimbursement = service.getReimbursementByImprest(imprestId);
|
||||||
// }
|
BpmOAReimbursementRespVO respVO = service.convert(reimbursement);
|
||||||
|
if (respVO != null && StringUtil.isNotEmpty(respVO.getProjectNo())) {
|
||||||
|
// 设置项目名称
|
||||||
|
ProjectDTO projectDTO = projectApi.getProject(respVO.getProjectNo()).getCheckedData();
|
||||||
|
respVO.setProjectName(projectDTO.getName());
|
||||||
|
}
|
||||||
|
return success(respVO);
|
||||||
|
}
|
||||||
|
|
||||||
@GetMapping("/getByProcessInstanceId")
|
@GetMapping("/getByProcessInstanceId")
|
||||||
@Operation(summary = "获得报销申请")
|
@Operation(summary = "获得报销申请")
|
||||||
|
@ -122,7 +122,7 @@ public class BpmTaskController {
|
|||||||
@GetMapping("done-page")
|
@GetMapping("done-page")
|
||||||
@Operation(summary = "获取 Done 已办任务分页")
|
@Operation(summary = "获取 Done 已办任务分页")
|
||||||
@PreAuthorize("@ss.hasPermission('bpm:task:query')")
|
@PreAuthorize("@ss.hasPermission('bpm:task:query')")
|
||||||
public CommonResult<PageResult<BpmTaskDonePageItemRespVO>> getDoneTaskPage(@Valid BpmTaskDonePageReqVO pageVO) {
|
public CommonResult<PageResult<BpmTaskDonePageRespVO>> getDoneTaskPage(@Valid BpmTaskDonePageReqVO pageVO) {
|
||||||
return success(taskService.getDoneTaskPage(getLoginUserId(), pageVO));
|
return success(taskService.getDoneTaskPage(getLoginUserId(), pageVO));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,47 @@
|
|||||||
|
package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 流程任务的 Done 已完成的分页项 Response VO")
|
||||||
|
@Data
|
||||||
|
public class BpmTaskDonePageRespVO {
|
||||||
|
|
||||||
|
@Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
@Schema(description = "任务名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
@Schema(description = "结束时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
private LocalDateTime endTime;
|
||||||
|
|
||||||
|
@Schema(description = "任务结果-参见 bpm_process_instance_result", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
|
||||||
|
private Integer result;
|
||||||
|
|
||||||
|
@Schema(description = "审批建议", requiredMode = Schema.RequiredMode.REQUIRED, example = "不请假了!")
|
||||||
|
private String reason;
|
||||||
|
|
||||||
|
@Schema(description = "流程实例编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
|
||||||
|
private String processInstanceId;
|
||||||
|
|
||||||
|
@Schema(description = "流程实例名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
|
||||||
|
private String processInstanceName;
|
||||||
|
|
||||||
|
@Schema(description = "发起人的用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
|
||||||
|
private Long startUserId;
|
||||||
|
|
||||||
|
@Schema(description = "发起人的用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
|
||||||
|
private String startUserNickname;
|
||||||
|
|
||||||
|
@Schema(description = "流程定义的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048")
|
||||||
|
private String processDefinitionId;
|
||||||
|
|
||||||
|
@Schema(description = "被抄送人的用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "100,200")
|
||||||
|
private String ccUserIds;
|
||||||
|
}
|
@ -3,19 +3,21 @@ package cn.iocoder.yudao.module.bpm.dal.mysql.task;
|
|||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmCrmTaskPageReqVO;
|
import cn.iocoder.yudao.framework.mybatis.core.query.MPJLambdaWrapperX;
|
||||||
import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskTodoPageReqVO;
|
import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.*;
|
||||||
import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskTodoPageRespVO;
|
import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmProcessInstanceExtDO;
|
||||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmTaskExtDO;
|
import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmTaskExtDO;
|
||||||
import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum;
|
import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
import org.mapstruct.ap.internal.util.Strings;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface BpmTaskExtMapper extends BaseMapperX<BpmTaskExtDO> {
|
public interface BpmTaskExtMapper extends BaseMapperX<BpmTaskExtDO> {
|
||||||
@ -75,4 +77,31 @@ public interface BpmTaskExtMapper extends BaseMapperX<BpmTaskExtDO> {
|
|||||||
.eq(pageReqVO.getIsTodo(), BpmTaskExtDO::getResult, BpmProcessInstanceResultEnum.PROCESS.getResult())
|
.eq(pageReqVO.getIsTodo(), BpmTaskExtDO::getResult, BpmProcessInstanceResultEnum.PROCESS.getResult())
|
||||||
.in(!pageReqVO.getIsTodo(), BpmTaskExtDO::getResult, approveOrReject));
|
.in(!pageReqVO.getIsTodo(), BpmTaskExtDO::getResult, approveOrReject));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default PageResult<BpmTaskDonePageRespVO> selectDonePage(Long userId, BpmTaskDonePageReqVO pageVO, List<Long> userIds) {
|
||||||
|
|
||||||
|
MPJLambdaWrapperX<BpmTaskExtDO> queryWrapperX = new MPJLambdaWrapperX<BpmTaskExtDO>();
|
||||||
|
queryWrapperX.selectAs(BpmTaskExtDO::getTaskId, BpmTaskDonePageRespVO::getId);
|
||||||
|
queryWrapperX.selectAs(BpmTaskExtDO::getName, BpmTaskDonePageRespVO::getName);
|
||||||
|
queryWrapperX.selectAs(BpmTaskExtDO::getEndTime, BpmTaskDonePageRespVO::getEndTime);
|
||||||
|
queryWrapperX.selectAs(BpmTaskExtDO::getReason, BpmTaskDonePageRespVO::getReason);
|
||||||
|
queryWrapperX.selectAs(BpmTaskExtDO::getResult, BpmTaskDonePageRespVO::getResult);
|
||||||
|
queryWrapperX.selectAs(BpmTaskExtDO::getCreateTime, BpmTaskDonePageRespVO::getCreateTime);
|
||||||
|
queryWrapperX.selectAs(BpmTaskExtDO::getProcessInstanceId, BpmTaskDonePageRespVO::getProcessInstanceId);
|
||||||
|
queryWrapperX.selectAs(BpmProcessInstanceExtDO::getName, BpmTaskDonePageRespVO::getProcessInstanceName);
|
||||||
|
queryWrapperX.selectAs(BpmProcessInstanceExtDO::getStartUserId, BpmTaskDonePageRespVO::getStartUserId);
|
||||||
|
queryWrapperX.selectAs(BpmProcessInstanceExtDO::getProcessDefinitionId, BpmTaskDonePageRespVO::getProcessDefinitionId);
|
||||||
|
queryWrapperX.selectAs(BpmProcessInstanceExtDO::getCcids, BpmTaskDonePageRespVO::getCcUserIds);
|
||||||
|
|
||||||
|
queryWrapperX.innerJoin(BpmProcessInstanceExtDO.class, on -> on
|
||||||
|
.eq(BpmTaskExtDO::getProcessInstanceId, BpmProcessInstanceExtDO::getProcessInstanceId)
|
||||||
|
.in(Objects.nonNull(userIds), BpmProcessInstanceExtDO::getStartUserId, userIds)
|
||||||
|
.eq(Strings.isNotEmpty(pageVO.getName()), BpmProcessInstanceExtDO::getName, pageVO.getName()));
|
||||||
|
queryWrapperX.likeRight(BpmProcessInstanceExtDO::getProcessDefinitionId, "oa_");
|
||||||
|
queryWrapperX.eq(BpmTaskExtDO::getAssigneeUserId, userId);
|
||||||
|
queryWrapperX.betweenIfPresent(BpmTaskExtDO::getCreateTime, pageVO.getCreateTime());
|
||||||
|
queryWrapperX.orderByDesc(BpmTaskExtDO::getEndTime);
|
||||||
|
|
||||||
|
return selectJoinPage(pageVO, BpmTaskDonePageRespVO.class, queryWrapperX);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -60,4 +60,10 @@ public interface BpmOAReimbursementService {
|
|||||||
*/
|
*/
|
||||||
BpmOAReimbursementDO getByProcessInstanceId(String processInstanceId);
|
BpmOAReimbursementDO getByProcessInstanceId(String processInstanceId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得指定备用金得报销申请
|
||||||
|
* @param imprestId 备用金编号
|
||||||
|
* @return 报销申请
|
||||||
|
*/
|
||||||
|
BpmOAReimbursementDO getReimbursementByImprest(Long imprestId);
|
||||||
}
|
}
|
||||||
|
@ -371,4 +371,12 @@ public class BpmOAReimbursementServiceImpl extends BpmOABaseService implements B
|
|||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BpmOAReimbursementDO getReimbursementByImprest(Long imprestId) {
|
||||||
|
|
||||||
|
return reimbursementMapper.selectOne(new LambdaQueryWrapper<BpmOAReimbursementDO>()
|
||||||
|
.eq(BpmOAReimbursementDO::getImprestId, imprestId)
|
||||||
|
.eq(BpmOAReimbursementDO::getResult, BpmProcessInstanceResultEnum.APPROVE.getResult()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -53,7 +53,7 @@ public interface BpmTaskService {
|
|||||||
* @param pageReqVO 分页请求
|
* @param pageReqVO 分页请求
|
||||||
* @return 流程任务分页
|
* @return 流程任务分页
|
||||||
*/
|
*/
|
||||||
PageResult<BpmTaskDonePageItemRespVO> getDoneTaskPage(Long userId, BpmTaskDonePageReqVO pageReqVO);
|
PageResult<BpmTaskDonePageRespVO> getDoneTaskPage(Long userId, BpmTaskDonePageReqVO pageReqVO);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得流程任务 Map
|
* 获得流程任务 Map
|
||||||
|
@ -47,7 +47,6 @@ import org.flowable.task.api.Task;
|
|||||||
import org.flowable.task.api.TaskInfo;
|
import org.flowable.task.api.TaskInfo;
|
||||||
import org.flowable.task.api.TaskQuery;
|
import org.flowable.task.api.TaskQuery;
|
||||||
import org.flowable.task.api.history.HistoricTaskInstance;
|
import org.flowable.task.api.history.HistoricTaskInstance;
|
||||||
import org.flowable.task.api.history.HistoricTaskInstanceQuery;
|
|
||||||
import org.flowable.task.service.impl.persistence.entity.TaskEntity;
|
import org.flowable.task.service.impl.persistence.entity.TaskEntity;
|
||||||
import org.flowable.task.service.impl.persistence.entity.TaskEntityImpl;
|
import org.flowable.task.service.impl.persistence.entity.TaskEntityImpl;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
@ -199,106 +198,131 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<BpmTaskDonePageItemRespVO> getDoneTaskPage(Long userId, BpmTaskDonePageReqVO pageVO) {
|
public PageResult<BpmTaskDonePageRespVO> getDoneTaskPage(Long userId, BpmTaskDonePageReqVO pageVO) {
|
||||||
//查询bpm_task_ext扩展表, 接受人是自己,不是自动审批的任务, 按任务名称分组
|
|
||||||
LambdaQueryWrapperX<BpmTaskExtDO> queryWrapperX = new LambdaQueryWrapperX<>();
|
|
||||||
queryWrapperX.eq(BpmTaskExtDO::getAssigneeUserId, userId);
|
|
||||||
queryWrapperX.ne(BpmTaskExtDO::getReason, BpmConstants.AUTO_APPRAVAL);
|
|
||||||
queryWrapperX.eq(BpmTaskExtDO::getDeleted, false);
|
|
||||||
queryWrapperX.groupBy(BpmTaskExtDO::getName);
|
|
||||||
queryWrapperX.select(BpmTaskExtDO::getName);
|
|
||||||
//只能查询流程标识定义为oa开头的流程
|
|
||||||
queryWrapperX.likeIfPresent(BpmTaskExtDO::getProcessDefinitionId,"oa_");
|
|
||||||
List<BpmTaskExtDO> list = taskExtMapper.selectList(queryWrapperX);
|
|
||||||
List<String> taskNames = list.stream().map(BpmTaskExtDO::getName)
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
|
|
||||||
// 查询已办任务
|
|
||||||
HistoricTaskInstanceQuery taskQuery = historyService.createHistoricTaskInstanceQuery().finished() // 已完成
|
|
||||||
.taskAssignee(String.valueOf(userId)) // 分配给自己
|
|
||||||
.processDefinitionKeyLike("oa_%")
|
|
||||||
.orderByHistoricTaskInstanceEndTime().desc(); // 审批时间倒序
|
|
||||||
if (taskNames != null && !taskNames.isEmpty()) {
|
|
||||||
/**
|
|
||||||
* 条件是: 已被分配的任务的名称分组数据,作为条件查询
|
|
||||||
*/
|
|
||||||
taskQuery.taskNameIn(taskNames);
|
|
||||||
} else {
|
|
||||||
/**
|
|
||||||
* taskNames是空或者没有数据,表示没有任何分配给自己的任务,且分自动审批的任务。
|
|
||||||
* 那么就输出一个不存在的任务名称,可以让数据查询不出来
|
|
||||||
*/
|
|
||||||
taskQuery.taskName("//////");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (StrUtil.isNotBlank(pageVO.getName())) {
|
|
||||||
// taskQuery.taskNameLike("%" + pageVO.getName() + "%");
|
|
||||||
//流程定义的名称
|
|
||||||
taskQuery.processDefinitionName(pageVO.getName());
|
|
||||||
}
|
|
||||||
LocalDateTime[] localDateTimes = pageVO.getCreateTime();
|
|
||||||
if (localDateTimes != null) {
|
|
||||||
if (localDateTimes[0] != null) {
|
|
||||||
taskQuery.taskCreatedAfter(DateUtils.of(localDateTimes[0]));
|
|
||||||
}
|
|
||||||
if (localDateTimes[1] != null) {
|
|
||||||
taskQuery.taskCreatedBefore(DateUtils.of(localDateTimes[1]));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 执行查询
|
|
||||||
List<HistoricTaskInstance> tasks = taskQuery.listPage(PageUtils.getStart(pageVO), pageVO.getPageSize());
|
|
||||||
if (CollUtil.isEmpty(tasks)) {
|
|
||||||
return PageResult.empty(taskQuery.count());
|
|
||||||
}
|
|
||||||
|
|
||||||
// 获得 TaskExtDO Map
|
|
||||||
List<BpmTaskExtDO> bpmTaskExtDOs =
|
|
||||||
taskExtMapper.selectListByTaskIds(convertSet(tasks, HistoricTaskInstance::getId));
|
|
||||||
Map<String, BpmTaskExtDO> bpmTaskExtDOMap = convertMap(bpmTaskExtDOs, BpmTaskExtDO::getTaskId);
|
|
||||||
// // 获得 ProcessInstance Map
|
|
||||||
// Map<String, HistoricProcessInstance> historicProcessInstanceMap =
|
|
||||||
// processInstanceService.getHistoricProcessInstanceMap(
|
|
||||||
// convertSet(tasks, HistoricTaskInstance::getProcessInstanceId));
|
|
||||||
|
|
||||||
// 获得 ProcessInstance
|
|
||||||
List<HistoricProcessInstance> historicProcessInstances = processInstanceService.getHistoricProcessInstances(
|
|
||||||
convertSet(tasks, HistoricTaskInstance::getProcessInstanceId));
|
|
||||||
|
|
||||||
// 判断搜索条件是否选择用户
|
// 判断搜索条件是否选择用户
|
||||||
if (pageVO.getUserId() != null) {
|
List<Long> userIds = null;
|
||||||
// 筛选出 发起人是pageVO.getUserId() 的流程实例
|
if (pageVO.getDeptId() != null) {
|
||||||
historicProcessInstances = historicProcessInstances.stream()
|
|
||||||
.filter(instance -> instance.getStartUserId().equals(pageVO.getUserId().toString()))
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
|
|
||||||
// 同步筛选掉 task记录
|
|
||||||
List<String> processInstanceIds = convertList(historicProcessInstances, HistoricProcessInstance::getId);
|
|
||||||
tasks = tasks.stream().filter(task -> processInstanceIds.contains(task.getProcessInstanceId())).collect(Collectors.toList());
|
|
||||||
}else if (pageVO.getDeptId() != null) {
|
|
||||||
|
|
||||||
List<AdminUserRespDTO> users = adminUserApi.getUserByDeptIdAll(pageVO.getDeptId()).getCheckedData();
|
List<AdminUserRespDTO> users = adminUserApi.getUserByDeptIdAll(pageVO.getDeptId()).getCheckedData();
|
||||||
List<Long> userIds = users.stream().map(AdminUserRespDTO::getId).collect(Collectors.toList());
|
userIds = users.stream().map(AdminUserRespDTO::getId).collect(Collectors.toList());
|
||||||
|
|
||||||
historicProcessInstances = historicProcessInstances.stream()
|
|
||||||
.filter(instance -> userIds.contains(Long.valueOf(instance.getStartUserId())))
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
|
|
||||||
// 同步筛选掉 task记录
|
|
||||||
List<String> processInstanceIds = convertList(historicProcessInstances, HistoricProcessInstance::getId);
|
|
||||||
tasks = tasks.stream().filter(task -> processInstanceIds.contains(task.getProcessInstanceId())).collect(Collectors.toList());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获得 ProcessInstance Map
|
// 获取待办任务
|
||||||
Map<String, HistoricProcessInstance> historicProcessInstanceMap = convertMap(historicProcessInstances, HistoricProcessInstance::getId);
|
PageResult<BpmTaskDonePageRespVO> pageResult = taskExtMapper.selectDonePage(userId, pageVO, userIds);
|
||||||
|
if (CollUtil.isNotEmpty(pageResult.getList())) {
|
||||||
|
|
||||||
|
// 获取用户编号集合
|
||||||
|
Set<Long> startUserIds = convertSet(pageResult.getList(), BpmTaskDonePageRespVO::getStartUserId);
|
||||||
// 获得 User Map
|
// 获得 User Map
|
||||||
Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(
|
Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(startUserIds);
|
||||||
convertSet(historicProcessInstanceMap.values(), instance -> Long.valueOf(instance.getStartUserId())));
|
|
||||||
// 拼接结果
|
pageResult.getList().forEach(item -> {
|
||||||
return new PageResult<>(
|
item.setStartUserNickname(userMap.get(item.getStartUserId()).getNickname());
|
||||||
BpmTaskConvert.INSTANCE.convertList2(tasks, bpmTaskExtDOMap, historicProcessInstanceMap, userMap),
|
});
|
||||||
taskQuery.count());
|
}
|
||||||
|
|
||||||
|
return pageResult;
|
||||||
|
|
||||||
|
// //查询bpm_task_ext扩展表, 接受人是自己,不是自动审批的任务, 按任务名称分组
|
||||||
|
// LambdaQueryWrapperX<BpmTaskExtDO> queryWrapperX = new LambdaQueryWrapperX<>();
|
||||||
|
// queryWrapperX.eq(BpmTaskExtDO::getAssigneeUserId, userId);
|
||||||
|
// queryWrapperX.ne(BpmTaskExtDO::getReason, BpmConstants.AUTO_APPRAVAL);
|
||||||
|
// queryWrapperX.eq(BpmTaskExtDO::getDeleted, false);
|
||||||
|
// queryWrapperX.groupBy(BpmTaskExtDO::getName);
|
||||||
|
// queryWrapperX.select(BpmTaskExtDO::getName);
|
||||||
|
// //只能查询流程标识定义为oa开头的流程
|
||||||
|
// queryWrapperX.likeIfPresent(BpmTaskExtDO::getProcessDefinitionId,"oa_");
|
||||||
|
// List<BpmTaskExtDO> list = taskExtMapper.selectList(queryWrapperX);
|
||||||
|
// List<String> taskNames = list.stream().map(BpmTaskExtDO::getName)
|
||||||
|
// .collect(Collectors.toList());
|
||||||
|
//
|
||||||
|
// // 查询已办任务
|
||||||
|
// HistoricTaskInstanceQuery taskQuery = historyService.createHistoricTaskInstanceQuery().finished() // 已完成
|
||||||
|
// .taskAssignee(String.valueOf(userId)) // 分配给自己
|
||||||
|
// .processDefinitionKeyLike("oa_%")
|
||||||
|
// .orderByHistoricTaskInstanceEndTime().desc(); // 审批时间倒序
|
||||||
|
// if (taskNames != null && !taskNames.isEmpty()) {
|
||||||
|
// /**
|
||||||
|
// * 条件是: 已被分配的任务的名称分组数据,作为条件查询
|
||||||
|
// */
|
||||||
|
// taskQuery.taskNameIn(taskNames);
|
||||||
|
// } else {
|
||||||
|
// /**
|
||||||
|
// * taskNames是空或者没有数据,表示没有任何分配给自己的任务,且分自动审批的任务。
|
||||||
|
// * 那么就输出一个不存在的任务名称,可以让数据查询不出来
|
||||||
|
// */
|
||||||
|
// taskQuery.taskName("//////");
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if (StrUtil.isNotBlank(pageVO.getName())) {
|
||||||
|
//// taskQuery.taskNameLike("%" + pageVO.getName() + "%");
|
||||||
|
// //流程定义的名称
|
||||||
|
// taskQuery.processDefinitionName(pageVO.getName());
|
||||||
|
// }
|
||||||
|
// LocalDateTime[] localDateTimes = pageVO.getCreateTime();
|
||||||
|
// if (localDateTimes != null) {
|
||||||
|
// if (localDateTimes[0] != null) {
|
||||||
|
// taskQuery.taskCreatedAfter(DateUtils.of(localDateTimes[0]));
|
||||||
|
// }
|
||||||
|
// if (localDateTimes[1] != null) {
|
||||||
|
// taskQuery.taskCreatedBefore(DateUtils.of(localDateTimes[1]));
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// // 执行查询
|
||||||
|
// List<HistoricTaskInstance> tasks = taskQuery.listPage(PageUtils.getStart(pageVO), pageVO.getPageSize());
|
||||||
|
// if (CollUtil.isEmpty(tasks)) {
|
||||||
|
// return PageResult.empty(taskQuery.count());
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// // 获得 TaskExtDO Map
|
||||||
|
// List<BpmTaskExtDO> bpmTaskExtDOs =
|
||||||
|
// taskExtMapper.selectListByTaskIds(convertSet(tasks, HistoricTaskInstance::getId));
|
||||||
|
// Map<String, BpmTaskExtDO> bpmTaskExtDOMap = convertMap(bpmTaskExtDOs, BpmTaskExtDO::getTaskId);
|
||||||
|
//// // 获得 ProcessInstance Map
|
||||||
|
//// Map<String, HistoricProcessInstance> historicProcessInstanceMap =
|
||||||
|
//// processInstanceService.getHistoricProcessInstanceMap(
|
||||||
|
//// convertSet(tasks, HistoricTaskInstance::getProcessInstanceId));
|
||||||
|
//
|
||||||
|
// // 获得 ProcessInstance,
|
||||||
|
// List<HistoricProcessInstance> historicProcessInstances = processInstanceService.getHistoricProcessInstances(
|
||||||
|
// convertSet(tasks, HistoricTaskInstance::getProcessInstanceId));
|
||||||
|
//
|
||||||
|
// // 判断搜索条件是否选择用户
|
||||||
|
// if (pageVO.getUserId() != null) {
|
||||||
|
// // 筛选出 发起人是pageVO.getUserId() 的流程实例
|
||||||
|
// historicProcessInstances = historicProcessInstances.stream()
|
||||||
|
// .filter(instance -> instance.getStartUserId().equals(pageVO.getUserId().toString()))
|
||||||
|
// .collect(Collectors.toList());
|
||||||
|
//
|
||||||
|
// // 同步筛选掉 task记录
|
||||||
|
// List<String> processInstanceIds = convertList(historicProcessInstances, HistoricProcessInstance::getId);
|
||||||
|
// tasks = tasks.stream().filter(task -> processInstanceIds.contains(task.getProcessInstanceId())).collect(Collectors.toList());
|
||||||
|
// }else if (pageVO.getDeptId() != null) {
|
||||||
|
//
|
||||||
|
// List<AdminUserRespDTO> users = adminUserApi.getUserByDeptIdAll(pageVO.getDeptId()).getCheckedData();
|
||||||
|
// List<Long> userIds = users.stream().map(AdminUserRespDTO::getId).collect(Collectors.toList());
|
||||||
|
//
|
||||||
|
// historicProcessInstances = historicProcessInstances.stream()
|
||||||
|
// .filter(instance -> userIds.contains(Long.valueOf(instance.getStartUserId())))
|
||||||
|
// .collect(Collectors.toList());
|
||||||
|
//
|
||||||
|
// // 同步筛选掉 task记录
|
||||||
|
// List<String> processInstanceIds = convertList(historicProcessInstances, HistoricProcessInstance::getId);
|
||||||
|
// tasks = tasks.stream().filter(task -> processInstanceIds.contains(task.getProcessInstanceId())).collect(Collectors.toList());
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// // 获得 ProcessInstance Map
|
||||||
|
// Map<String, HistoricProcessInstance> historicProcessInstanceMap = convertMap(historicProcessInstances, HistoricProcessInstance::getId);
|
||||||
|
//
|
||||||
|
// // 获得 User Map
|
||||||
|
// Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(
|
||||||
|
// convertSet(historicProcessInstanceMap.values(), instance -> Long.valueOf(instance.getStartUserId())));
|
||||||
|
// // 拼接结果
|
||||||
|
// return new PageResult<>(
|
||||||
|
// BpmTaskConvert.INSTANCE.convertList2(tasks, bpmTaskExtDOMap, historicProcessInstanceMap, userMap),
|
||||||
|
// taskQuery.count());
|
||||||
|
|
||||||
// // 获得 TaskExtDO Map
|
// // 获得 TaskExtDO Map
|
||||||
// List<BpmTaskExtDO> bpmTaskExtDOsTemp =
|
// List<BpmTaskExtDO> bpmTaskExtDOsTemp =
|
||||||
|
Loading…
Reference in New Issue
Block a user