update - 调整审批任务中,我发起的/待我审批/我已审批完成的接口内部逻辑,并切换查询运行实例表至历史实例表
This commit is contained in:
parent
4e1da1fdb7
commit
edecba9f05
@ -1,9 +1,10 @@
|
||||
package cn.axzo.workflow.core.service;
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.request.task.BpmTaskAuditDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.task.BpmTaskTodoBpmPageDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.task.BpmTaskTodoPageSearchDTO;
|
||||
import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
|
||||
import cn.axzo.workflow.core.service.dto.response.task.BpmTaskTodoPageItemRespVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.task.BpmTaskDonePageItemVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.task.BpmTaskTodoPageItemVO;
|
||||
import org.flowable.form.api.FormInfo;
|
||||
import org.flowable.task.api.Task;
|
||||
import org.flowable.task.api.history.HistoricTaskInstance;
|
||||
@ -14,14 +15,14 @@ public interface BpmTaskService {
|
||||
|
||||
/**
|
||||
* 待审核列表
|
||||
* */
|
||||
BpmPageResult<BpmTaskTodoPageItemRespVO> getTodoTaskPage(BpmTaskTodoBpmPageDTO taskTodoPageDTO);
|
||||
*/
|
||||
BpmPageResult<BpmTaskTodoPageItemVO> getTodoTaskPage(BpmTaskTodoPageSearchDTO dto);
|
||||
|
||||
/**
|
||||
* 已完成的审批列表
|
||||
*
|
||||
* @return*/
|
||||
BpmPageResult<BpmTaskTodoPageItemRespVO> getDoneTaskPage(BpmTaskTodoBpmPageDTO taskDonePageD);
|
||||
BpmPageResult<BpmTaskDonePageItemVO> getDoneTaskPage(BpmTaskTodoPageSearchDTO dto);
|
||||
|
||||
/**
|
||||
* 同意
|
||||
|
||||
@ -1,10 +1,6 @@
|
||||
package cn.axzo.workflow.core.service.converter;
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.response.task.BpmTaskDonePageItemRespVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.task.BpmTaskTodoPageItemRespVO;
|
||||
import org.flowable.common.engine.impl.db.SuspensionState;
|
||||
import org.flowable.task.api.Task;
|
||||
import org.flowable.task.api.history.HistoricTaskInstance;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
public class BpmTaskConvert {
|
||||
@ -49,21 +45,21 @@ public class BpmTaskConvert {
|
||||
// });
|
||||
// }
|
||||
|
||||
public static BpmTaskDonePageItemRespVO convert2(HistoricTaskInstance bean) {
|
||||
if (bean == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
BpmTaskDonePageItemRespVO bpmTaskDonePageItemRespVO = new BpmTaskDonePageItemRespVO();
|
||||
bpmTaskDonePageItemRespVO.setId(bean.getId());
|
||||
bpmTaskDonePageItemRespVO.setName(bean.getName());
|
||||
bpmTaskDonePageItemRespVO.setClaimTime(bean.getClaimTime());
|
||||
bpmTaskDonePageItemRespVO.setCreateTime(bean.getCreateTime());
|
||||
bpmTaskDonePageItemRespVO.setEndTime(bean.getEndTime());
|
||||
bpmTaskDonePageItemRespVO.setDurationInMillis(bean.getDurationInMillis());
|
||||
|
||||
return bpmTaskDonePageItemRespVO;
|
||||
}
|
||||
// public static BpmTaskDoneTodoPageItemVO convert2(HistoricTaskInstance bean) {
|
||||
// if (bean == null) {
|
||||
// return null;
|
||||
// }
|
||||
//
|
||||
// BpmTaskDoneTodoPageItemVO bpmTaskDonePageItemRespVO = new BpmTaskDoneTodoPageItemVO();
|
||||
// bpmTaskDonePageItemRespVO.setId(bean.getId());
|
||||
// bpmTaskDonePageItemRespVO.setName(bean.getName());
|
||||
// bpmTaskDonePageItemRespVO.setClaimTime(bean.getClaimTime());
|
||||
// bpmTaskDonePageItemRespVO.setCreateTime(bean.getCreateTime());
|
||||
// bpmTaskDonePageItemRespVO.setEndTime(bean.getEndTime());
|
||||
// bpmTaskDonePageItemRespVO.setDurationInMillis(bean.getDurationInMillis());
|
||||
//
|
||||
// return bpmTaskDonePageItemRespVO;
|
||||
// }
|
||||
|
||||
BpmTaskConvert INSTANCE = Mappers.getMapper(BpmTaskConvert.class);
|
||||
|
||||
@ -89,21 +85,21 @@ public class BpmTaskConvert {
|
||||
// }
|
||||
|
||||
|
||||
public static BpmTaskTodoPageItemRespVO convert1(Task bean) {
|
||||
if (bean == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
BpmTaskTodoPageItemRespVO bpmTaskTodoPageItemRespVO = new BpmTaskTodoPageItemRespVO();
|
||||
|
||||
bpmTaskTodoPageItemRespVO.setSuspensionState(convertSuspendedToSuspensionState(bean.isSuspended()));
|
||||
bpmTaskTodoPageItemRespVO.setId( bean.getId() );
|
||||
bpmTaskTodoPageItemRespVO.setName( bean.getName() );
|
||||
bpmTaskTodoPageItemRespVO.setClaimTime( bean.getClaimTime() );
|
||||
bpmTaskTodoPageItemRespVO.setCreateTime( bean.getCreateTime() );
|
||||
|
||||
return bpmTaskTodoPageItemRespVO;
|
||||
}
|
||||
// public static BpmTaskTodoPageItemVO convert1(Task bean) {
|
||||
// if (bean == null) {
|
||||
// return null;
|
||||
// }
|
||||
//
|
||||
// BpmTaskTodoPageItemVO bpmTaskTodoPageItemRespVO = new BpmTaskTodoPageItemVO();
|
||||
//
|
||||
// bpmTaskTodoPageItemRespVO.setSuspensionState(convertSuspendedToSuspensionState(bean.isSuspended()));
|
||||
// bpmTaskTodoPageItemRespVO.setId( bean.getId() );
|
||||
// bpmTaskTodoPageItemRespVO.setName( bean.getName() );
|
||||
// bpmTaskTodoPageItemRespVO.setClaimTime( bean.getClaimTime() );
|
||||
// bpmTaskTodoPageItemRespVO.setCreateTime( bean.getCreateTime() );
|
||||
//
|
||||
// return bpmTaskTodoPageItemRespVO;
|
||||
// }
|
||||
|
||||
public static Integer convertSuspendedToSuspensionState(boolean suspended) {
|
||||
return suspended ? SuspensionState.SUSPENDED.getStateCode() :
|
||||
|
||||
@ -0,0 +1,65 @@
|
||||
package cn.axzo.workflow.core.service.converter;
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.response.task.BpmTaskDonePageItemVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.task.BpmTaskTodoPageItemVO;
|
||||
import org.flowable.engine.history.HistoricProcessInstance;
|
||||
import org.flowable.task.api.history.HistoricTaskInstance;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import static org.mapstruct.NullValueCheckStrategy.ALWAYS;
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @author wangli
|
||||
* @sine 2023/7/26 23:37
|
||||
*/
|
||||
@Mapper(
|
||||
componentModel = "spring",
|
||||
nullValueCheckStrategy = ALWAYS,
|
||||
imports = Arrays.class
|
||||
)
|
||||
|
||||
public interface BpmTaskDonePageItemConverter extends EntityConverter<BpmTaskDonePageItemVO, HistoricTaskInstance> {
|
||||
|
||||
BpmTaskTodoPageItemConverter todoConverter = Mappers.getMapper(BpmTaskTodoPageItemConverter.class);
|
||||
|
||||
@Override
|
||||
default BpmTaskDonePageItemVO toVo(HistoricTaskInstance entity) {
|
||||
BpmTaskTodoPageItemVO todo = todoConverter.toVo(entity);
|
||||
BpmTaskDonePageItemVO vo = new BpmTaskDonePageItemVO();
|
||||
BeanUtils.copyProperties(todo, vo);
|
||||
vo.setEndTime(entity.getEndTime());
|
||||
vo.setDurationInMillis(entity.getDurationInMillis());
|
||||
vo.setComment(entity.getDeleteReason());
|
||||
return vo;
|
||||
}
|
||||
|
||||
default List<BpmTaskDonePageItemVO> toVos(List<HistoricTaskInstance> tasks,
|
||||
Map<String, HistoricProcessInstance> historicProcessInstanceMap) {
|
||||
if (tasks.isEmpty()) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
List<BpmTaskDonePageItemVO> vos = new ArrayList<>();
|
||||
tasks.forEach(i -> {
|
||||
BpmTaskDonePageItemVO vo = toVo(i);
|
||||
HistoricProcessInstance instance = historicProcessInstanceMap.getOrDefault(i.getProcessInstanceId(), null);
|
||||
if (Objects.nonNull(instance)) {
|
||||
vo.setProcessInstanceId(instance.getId());
|
||||
vo.setProcessInstanceName(instance.getName());
|
||||
vo.setBusinessKey(instance.getBusinessKey());
|
||||
vo.setStartUserId(instance.getStartUserId());
|
||||
vo.setStartTime(instance.getStartTime());
|
||||
vo.setProcessInstanceEndTime(instance.getEndTime());
|
||||
vos.add(vo);
|
||||
}
|
||||
});
|
||||
return vos;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,56 @@
|
||||
package cn.axzo.workflow.core.service.converter;
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.response.task.BpmTaskTodoPageItemVO;
|
||||
import org.flowable.engine.runtime.ProcessInstance;
|
||||
import org.flowable.task.api.history.HistoricTaskInstance;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import static org.mapstruct.NullValueCheckStrategy.ALWAYS;
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @author wangli
|
||||
* @sine 2023/7/26 23:00
|
||||
*/
|
||||
@Mapper(
|
||||
componentModel = "spring",
|
||||
nullValueCheckStrategy = ALWAYS,
|
||||
imports = Arrays.class
|
||||
)
|
||||
public interface BpmTaskTodoPageItemConverter extends EntityConverter<BpmTaskTodoPageItemVO, HistoricTaskInstance> {
|
||||
|
||||
@Mapping(target = "id", source = "id")
|
||||
@Mapping(target = "taskName", source = "name")
|
||||
@Mapping(target = "category", source = "category")
|
||||
@Mapping(target = "claimTime", source = "createTime")
|
||||
@Mapping(target = "owner", source = "owner")
|
||||
@Mapping(target = "assignee", source = "assignee")
|
||||
@Mapping(target = "formKey", source = "formKey")
|
||||
@Override
|
||||
BpmTaskTodoPageItemVO toVo(HistoricTaskInstance entity);
|
||||
|
||||
default List<BpmTaskTodoPageItemVO> toVos(List<HistoricTaskInstance> tasks,
|
||||
Map<String, ProcessInstance> processInstanceMap) {
|
||||
if (tasks.isEmpty()) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
List<BpmTaskTodoPageItemVO> vos = new ArrayList<>();
|
||||
tasks.forEach(i -> {
|
||||
BpmTaskTodoPageItemVO vo = toVo(i);
|
||||
ProcessInstance instance = processInstanceMap.getOrDefault(i.getProcessInstanceId(), null);
|
||||
if (Objects.nonNull(instance)) {
|
||||
vo.setProcessInstanceId(instance.getProcessInstanceId());
|
||||
vo.setProcessInstanceName(instance.getName());
|
||||
vo.setBusinessKey(instance.getBusinessKey());
|
||||
vo.setStartUserId(instance.getStartUserId());
|
||||
vo.setStartTime(instance.getStartTime());
|
||||
vos.add(vo);
|
||||
}
|
||||
});
|
||||
return vos;
|
||||
}
|
||||
}
|
||||
@ -12,7 +12,7 @@ import java.util.Date;
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class BpmTaskTodoBpmPageDTO extends BpmPageParam {
|
||||
public class BpmTaskTodoPageSearchDTO extends BpmPageParam {
|
||||
|
||||
@ApiModelProperty(value = "用户ID,唯一标识", example = "1")
|
||||
private String userId;
|
||||
@ -1,5 +1,6 @@
|
||||
package cn.axzo.workflow.core.service.dto.response.task;
|
||||
|
||||
import cn.axzo.workflow.core.common.enums.BpmProcessInstanceResultEnum;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
@ -12,15 +13,20 @@ import java.util.Date;
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class BpmTaskDonePageItemRespVO extends BpmTaskTodoPageItemRespVO{
|
||||
public class BpmTaskDonePageItemVO extends BpmTaskTodoPageItemVO {
|
||||
|
||||
@ApiModelProperty(value = "结束时间", required = true)
|
||||
@ApiModelProperty(value = "审批任务结束时间", required = true)
|
||||
private Date endTime;
|
||||
|
||||
@ApiModelProperty(value = "持续时间", required = true, example = "1000")
|
||||
private Long durationInMillis;
|
||||
|
||||
@ApiModelProperty(value = "任务结果", required = true, notes = "参见 bpm_process_instance_result", example = "2")
|
||||
private Integer result;
|
||||
@ApiModelProperty(value = "任务结果", required = true, notes = "参见 BpmProcessInstanceResultEnum", example = "2")
|
||||
private BpmProcessInstanceResultEnum result;
|
||||
|
||||
@ApiModelProperty(value = "审批建议", required = true, example = "不请假了!")
|
||||
private String comment;
|
||||
|
||||
@ApiModelProperty(value = "流程实例结束时间")
|
||||
private Date processInstanceEndTime;
|
||||
}
|
||||
@ -1,34 +0,0 @@
|
||||
package cn.axzo.workflow.core.service.dto.response.task;
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.response.process.BpmProcessInstanceVO;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@ApiModel("管理后台 - 流程任务的 Running 进行中的分页项 Response VO")
|
||||
public class BpmTaskTodoPageItemRespVO {
|
||||
|
||||
@ApiModelProperty(value = "任务编号", required = true, example = "1024")
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "任务名字", required = true, example = "芋道")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty(value = "接收时间", required = true)
|
||||
private Date claimTime;
|
||||
|
||||
@ApiModelProperty(value = "创建时间", required = true)
|
||||
private Date createTime;
|
||||
|
||||
@ApiModelProperty(value = "激活状态", required = true, example = "1", notes = "参见 SuspensionState 枚举")
|
||||
private Integer suspensionState;
|
||||
|
||||
/**
|
||||
* 所属流程实例
|
||||
*/
|
||||
private BpmProcessInstanceVO processInstance;
|
||||
|
||||
}
|
||||
@ -0,0 +1,52 @@
|
||||
package cn.axzo.workflow.core.service.dto.response.task;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@ApiModel("管理后台 - 流程任务的 Running 进行中的分页项 Response VO")
|
||||
public class BpmTaskTodoPageItemVO {
|
||||
|
||||
@ApiModelProperty(value = "任务编号", required = true, example = "1024")
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "任务名字", required = true, example = "芋道")
|
||||
private String taskName;
|
||||
|
||||
@ApiModelProperty(value = "分类")
|
||||
private String category;
|
||||
|
||||
@ApiModelProperty(value = "审批任务接收时间", required = true)
|
||||
private Date claimTime;
|
||||
|
||||
@ApiModelProperty(value = "任务所属人", hidden = true)
|
||||
private String owner;
|
||||
|
||||
@ApiModelProperty(value = "任务审批人")
|
||||
private String assignee;
|
||||
|
||||
@ApiModelProperty(value = "激活状态", required = true, example = "1", notes = "参见 SuspensionState 枚举")
|
||||
private Boolean suspensionState;
|
||||
|
||||
@ApiModelProperty(value = "当前任务关联的表单 key")
|
||||
private String formKey;
|
||||
|
||||
@ApiModelProperty(value = "流程实例 ID")
|
||||
private String processInstanceId;
|
||||
|
||||
@ApiModelProperty(value = "流程实例名称")
|
||||
private String processInstanceName;
|
||||
|
||||
@ApiModelProperty(value = "业务 key")
|
||||
private String businessKey;
|
||||
|
||||
@ApiModelProperty(value = "流程发起人")
|
||||
private String startUserId;
|
||||
|
||||
@ApiModelProperty(value = "工作流实例创建时间", required = true)
|
||||
private Date startTime;
|
||||
|
||||
}
|
||||
@ -51,8 +51,6 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
|
||||
private RepositoryService repositoryService;
|
||||
@Autowired
|
||||
private RuntimeService runtimeService;
|
||||
// @Autowired
|
||||
// private BpmProcessInstanceExtMapper processInstanceExtMapper;
|
||||
@Autowired
|
||||
@Lazy // 解决循环依赖
|
||||
private BpmTaskServiceImpl taskService;
|
||||
@ -408,6 +406,7 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
|
||||
// processInstanceExtMapper.updateByProcessInstanceId(processInstanceExtDO);
|
||||
// }
|
||||
|
||||
@Override
|
||||
public void deleteProcessInstance(String id, String reason, BpmProcessInstanceResultEnum resultEnum) {
|
||||
log.info("当前线程: {}", Thread.currentThread().getName());
|
||||
runtimeService.updateBusinessStatus(id, resultEnum.getStatus());
|
||||
|
||||
@ -5,10 +5,13 @@ import cn.axzo.workflow.core.common.enums.BpmProcessInstanceResultEnum;
|
||||
import cn.axzo.workflow.core.common.exception.WorkflowEngineException;
|
||||
import cn.axzo.workflow.core.common.utils.BpmCollectionUtils;
|
||||
import cn.axzo.workflow.core.service.BpmTaskService;
|
||||
import cn.axzo.workflow.core.service.converter.BpmTaskDonePageItemConverter;
|
||||
import cn.axzo.workflow.core.service.converter.BpmTaskTodoPageItemConverter;
|
||||
import cn.axzo.workflow.core.service.dto.request.task.BpmTaskAuditDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.task.BpmTaskTodoBpmPageDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.task.BpmTaskTodoPageSearchDTO;
|
||||
import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
|
||||
import cn.axzo.workflow.core.service.dto.response.task.BpmTaskTodoPageItemRespVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.task.BpmTaskDonePageItemVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.task.BpmTaskTodoPageItemVO;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@ -25,6 +28,7 @@ import org.flowable.task.api.history.HistoricTaskInstance;
|
||||
import org.flowable.task.api.history.HistoricTaskInstanceQuery;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
@ -49,81 +53,60 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
||||
private RepositoryService repositoryService;
|
||||
@Resource
|
||||
private BpmProcessInstanceServiceImpl processInstanceService;
|
||||
@Resource
|
||||
private BpmTaskTodoPageItemConverter todoPageItemConverter;
|
||||
@Resource
|
||||
private BpmTaskDonePageItemConverter donePageItemConverter;
|
||||
// @Resource
|
||||
// private BpmTaskExtMapper taskExtMapper;
|
||||
// @Resource
|
||||
// private BpmProcessInstanceExtMapper bpmProcessInstanceExtMapper;
|
||||
|
||||
@Override
|
||||
public BpmPageResult<BpmTaskTodoPageItemRespVO> getTodoTaskPage(BpmTaskTodoBpmPageDTO taskTodoPageDTO) {
|
||||
// BpmProcessInstanceExtDO one = null;
|
||||
|
||||
// 查询待办任务
|
||||
TaskQuery taskQuery = taskService.createTaskQuery()
|
||||
.taskAssignee(taskTodoPageDTO.getUserId()) // 分配给自己
|
||||
.orderByTaskCreateTime().desc(); // 创建时间倒序
|
||||
if (org.springframework.util.StringUtils.hasLength(taskTodoPageDTO.getCategories())) {
|
||||
List<String> categorys = Arrays.stream(taskTodoPageDTO.getCategories().split(","))
|
||||
public BpmPageResult<BpmTaskTodoPageItemVO> getTodoTaskPage(BpmTaskTodoPageSearchDTO dto) {
|
||||
HistoricTaskInstanceQuery query = historyService.createHistoricTaskInstanceQuery()
|
||||
.unfinished()
|
||||
.taskAssignee(dto.getUserId()) // 分配给自己
|
||||
.taskTenantId(dto.getTenantId())
|
||||
.orderByTaskCreateTime()
|
||||
.desc();
|
||||
if (StringUtils.hasLength(dto.getCategories())) {
|
||||
List<String> categories = Arrays.stream(dto.getCategories().split(","))
|
||||
.map(String::trim).collect(Collectors.toList());
|
||||
taskQuery.processCategoryIn(categorys);
|
||||
query.processCategoryIn(categories);
|
||||
}
|
||||
if (StrUtil.isNotBlank(taskTodoPageDTO.getName())) {
|
||||
taskQuery.taskNameLike("%" + taskTodoPageDTO.getName() + "%");
|
||||
if (StrUtil.isNotBlank(dto.getName())) {
|
||||
query.taskNameLike("%" + dto.getName() + "%");
|
||||
}
|
||||
if (taskTodoPageDTO.getBeginCreateTime() != null) {
|
||||
taskQuery.taskCreatedAfter(taskTodoPageDTO.getBeginCreateTime());
|
||||
if (Objects.nonNull(dto.getBeginCreateTime()) && Objects.nonNull(dto.getEndCreateTime())) {
|
||||
query.taskCreatedBefore(dto.getEndCreateTime());
|
||||
query.taskCreatedAfter(dto.getBeginCreateTime());
|
||||
}
|
||||
if (taskTodoPageDTO.getEndCreateTime() != null) {
|
||||
taskQuery.taskCreatedBefore(taskTodoPageDTO.getEndCreateTime());
|
||||
}
|
||||
// if (Objects.nonNull(one)) {
|
||||
// taskQuery.processInstanceId(one.getProcessInstanceId());
|
||||
// }
|
||||
// 执行查询
|
||||
|
||||
List<Task> tasks = taskQuery.listPage((taskTodoPageDTO.getPageNo() - 1) * taskTodoPageDTO.getPageSize(),
|
||||
taskTodoPageDTO.getPageSize());
|
||||
List<HistoricTaskInstance> tasks = query.listPage((dto.getPageNo() - 1) * dto.getPageSize(),
|
||||
dto.getPageSize());
|
||||
if (CollUtil.isEmpty(tasks)) {
|
||||
return BpmPageResult.empty();
|
||||
}
|
||||
|
||||
Set<String> processInstanceIds = convertSet(tasks, Task::getProcessInstanceId);
|
||||
Set<String> processInstanceIds = convertSet(tasks, HistoricTaskInstance::getProcessInstanceId);
|
||||
|
||||
// 获得 ProcessInstance Map
|
||||
Map<String, ProcessInstance> processInstanceMap = processInstanceService.getProcessInstanceMap(
|
||||
processInstanceIds);
|
||||
// 拼接结果
|
||||
// List<BpmTaskTodoPageItemRespVO> bpmTaskTodoPageItemRespVOS = BpmTaskConvert.convertList1(
|
||||
// tasks, processInstanceMap);
|
||||
|
||||
// Map<String, BpmProcessInstanceExtDO> instanceExtMap = convertMap(
|
||||
// bpmProcessInstanceExtMapper.selectList(
|
||||
// new LambdaQueryWrapper<BpmProcessInstanceExtDO>().in(
|
||||
// BpmProcessInstanceExtDO::getProcessInstanceId, processInstanceIds)),
|
||||
// BpmProcessInstanceExtDO::getProcessInstanceId, Function.identity(), (s, t) -> s);
|
||||
|
||||
// 设置发起人姓名
|
||||
// bpmTaskTodoPageItemRespVOS.forEach(vo -> {
|
||||
// BpmTaskTodoPageItemRespVO.ProcessInstance processInstance = vo.getProcessInstance();
|
||||
// BpmProcessInstanceExtDO instanceExtDO = instanceExtMap.get(processInstance.getId());
|
||||
// if (Objects.nonNull(instanceExtDO)) {
|
||||
// processInstance.setCustomProInstId(instanceExtDO.getCustomProInstId());
|
||||
// processInstance.setCategory(instanceExtDO.getCategory());
|
||||
// processInstance.setStartUserName(instanceExtDO.getStartUserName());
|
||||
// processInstance.setStartTime(instanceExtDO.getCreateAt());
|
||||
// }
|
||||
// });
|
||||
// return new BpmPageResult<>(bpmTaskTodoPageItemRespVOS, taskQuery.count());
|
||||
return BpmPageResult.empty();
|
||||
List<BpmTaskTodoPageItemVO> vos = todoPageItemConverter.toVos(tasks, processInstanceMap);
|
||||
return new BpmPageResult<>(vos, query.count());
|
||||
}
|
||||
|
||||
@Override
|
||||
public BpmPageResult<BpmTaskTodoPageItemRespVO> getDoneTaskPage(BpmTaskTodoBpmPageDTO dto) {
|
||||
|
||||
public BpmPageResult<BpmTaskDonePageItemVO> getDoneTaskPage(BpmTaskTodoPageSearchDTO dto) {
|
||||
// 查询已办任务
|
||||
HistoricTaskInstanceQuery query = historyService.createHistoricTaskInstanceQuery()
|
||||
.finished() // 已完成
|
||||
.taskAssignee(dto.getUserId()) // 分配给自己
|
||||
.orderByHistoricTaskInstanceEndTime().desc(); // 审批时间倒序
|
||||
.taskTenantId(dto.getTenantId())
|
||||
.orderByHistoricTaskInstanceEndTime()
|
||||
.desc(); // 审批时间倒序
|
||||
if (StrUtil.isNotBlank(dto.getName())) {
|
||||
query.taskNameLike("%" + dto.getName() + "%");
|
||||
}
|
||||
@ -137,49 +120,24 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
||||
query.taskCreatedBefore(dto.getEndCreateTime());
|
||||
}
|
||||
if (StringUtils.hasLength(dto.getCategories())) {
|
||||
List<String> categories =
|
||||
Arrays.stream(dto.getCategories().split(",")).map(String::trim).collect(Collectors.toList());
|
||||
List<String> categories = Arrays.stream(dto.getCategories().split(","))
|
||||
.map(String::trim).collect(Collectors.toList());
|
||||
query.processCategoryIn(categories);
|
||||
}
|
||||
// 执行查询
|
||||
List<HistoricTaskInstance> tasks =
|
||||
query.listPage((dto.getPageNo() - 1) * dto.getPageSize(),
|
||||
dto.getPageSize());
|
||||
if (CollUtil.isEmpty(tasks)) {
|
||||
return BpmPageResult.empty(query.count());
|
||||
if (CollectionUtils.isEmpty(tasks)) {
|
||||
return BpmPageResult.empty();
|
||||
}
|
||||
|
||||
// 获得 TaskExtDO Map
|
||||
// List<TaskExtDO> bpmTaskExtDOs = taskExtMapper.selectListByTaskIds(
|
||||
// convertSet(tasks, HistoricTaskInstance::getId));
|
||||
// Map<String, TaskExtDO> bpmTaskExtDOMap = convertMap(bpmTaskExtDOs, TaskExtDO::getTaskId);
|
||||
// 获得 ProcessInstance Map
|
||||
Set<String> processInstanceIds = convertSet(tasks, HistoricTaskInstance::getProcessInstanceId);
|
||||
Map<String, HistoricProcessInstance> historicProcessInstanceMap =
|
||||
processInstanceService.getHistoricProcessInstanceMap(
|
||||
processInstanceIds);
|
||||
|
||||
// 拼接数据
|
||||
// List<BpmTaskDonePageItemRespVO> bpmTaskDonePageItemRespVOS = BpmTaskConvert.convertList2(
|
||||
// tasks, bpmTaskExtDOMap, historicProcessInstanceMap);
|
||||
//
|
||||
// Map<String, BpmProcessInstanceExtDO> instanceExtMap = convertMap(
|
||||
// bpmProcessInstanceExtMapper.selectList(
|
||||
// new LambdaQueryWrapper<BpmProcessInstanceExtDO>().in(
|
||||
// BpmProcessInstanceExtDO::getProcessInstanceId, processInstanceIds)),
|
||||
// BpmProcessInstanceExtDO::getProcessInstanceId, Function.identity(), (s, t) -> s);
|
||||
//
|
||||
// // 设置发起人姓名
|
||||
// bpmTaskDonePageItemRespVOS.forEach(vo -> {
|
||||
// BpmTaskTodoPageItemRespVO.ProcessInstance processInstance = vo.getProcessInstance();
|
||||
// BpmProcessInstanceExtDO instanceExtDO = instanceExtMap.get(processInstance.getId());
|
||||
// processInstance.setCustomProInstId(instanceExtDO.getCustomProInstId());
|
||||
// processInstance.setCategory(instanceExtDO.getCategory());
|
||||
// processInstance.setStartUserName(instanceExtDO.getStartUserName());
|
||||
// processInstance.setStartTime(instanceExtDO.getCreateAt());
|
||||
// });
|
||||
// return new BpmPageResult(bpmTaskDonePageItemRespVOS, query.count());
|
||||
return null;
|
||||
List<BpmTaskDonePageItemVO> vos = donePageItemConverter.toVos(tasks, historicProcessInstanceMap);
|
||||
return new BpmPageResult<>(vos, query.count());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -2,9 +2,10 @@ package cn.axzo.workflow.server.controller.web;
|
||||
|
||||
import cn.axzo.workflow.core.service.BpmTaskService;
|
||||
import cn.axzo.workflow.core.service.dto.request.task.BpmTaskAuditDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.task.BpmTaskTodoBpmPageDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.task.BpmTaskTodoPageSearchDTO;
|
||||
import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
|
||||
import cn.axzo.workflow.core.service.dto.response.task.BpmTaskTodoPageItemRespVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.task.BpmTaskDonePageItemVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.task.BpmTaskTodoPageItemVO;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.flowable.form.api.FormInfo;
|
||||
@ -30,20 +31,18 @@ public class BpmTaskController {
|
||||
* 待审核列表
|
||||
*/
|
||||
@GetMapping("/page/todo")
|
||||
public CommonResponse<BpmPageResult<BpmTaskTodoPageItemRespVO>> getTodoTaskPage(@RequestBody BpmTaskTodoBpmPageDTO dto) {
|
||||
public CommonResponse<BpmPageResult<BpmTaskTodoPageItemVO>> getTodoTaskPage(@RequestBody BpmTaskTodoPageSearchDTO dto) {
|
||||
log.info("待审核列表 getTodoTaskPage===>>>参数:{}", dto);
|
||||
BpmPageResult<BpmTaskTodoPageItemRespVO> result = bpmTaskService.getTodoTaskPage(dto);
|
||||
return CommonResponse.success(result);
|
||||
return CommonResponse.success(bpmTaskService.getTodoTaskPage(dto));
|
||||
}
|
||||
|
||||
/**
|
||||
* 已完成的审批列表
|
||||
*/
|
||||
@GetMapping("/page/done")
|
||||
public CommonResponse<BpmPageResult<BpmTaskTodoPageItemRespVO>> getDoneTaskPage(@RequestBody BpmTaskTodoBpmPageDTO dto) {
|
||||
public CommonResponse<BpmPageResult<BpmTaskDonePageItemVO>> getDoneTaskPage(@RequestBody BpmTaskTodoPageSearchDTO dto) {
|
||||
log.info("已完成的审批列表 getDoneTaskPage===>>>参数:{}", dto);
|
||||
BpmPageResult<BpmTaskTodoPageItemRespVO> result = bpmTaskService.getDoneTaskPage(dto);
|
||||
return CommonResponse.success(result);
|
||||
return CommonResponse.success(bpmTaskService.getDoneTaskPage(dto));
|
||||
}
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user