add 添加当前登录人单据列表,添加单据状态

This commit is contained in:
gssong 2023-06-23 16:03:07 +08:00
parent f0133aaba7
commit a953008087
7 changed files with 114 additions and 9 deletions

View File

@ -52,6 +52,24 @@ public enum BusinessStatusEnum {
*/ */
private final String desc; private final String desc;
/**
* 获取业务状态
*
* @param status 状态
*/
public static String getEumByStatus(String status) {
if (StringUtils.isBlank(status)) {
return null;
}
for (BusinessStatusEnum statusEnum : BusinessStatusEnum.values()) {
if (statusEnum.getStatus().equals(status)) {
return statusEnum.getDesc();
}
}
return null;
}
/** /**
* 启动流程校验 * 启动流程校验
* *

View File

@ -116,4 +116,14 @@ public class ActProcessInstanceController extends BaseController {
public R<Void> cancelProcessApply(@NotBlank(message = "流程实例id不能为空") @PathVariable String processInstanceId) { public R<Void> cancelProcessApply(@NotBlank(message = "流程实例id不能为空") @PathVariable String processInstanceId) {
return toAjax(iActProcessInstanceService.cancelProcessApply(processInstanceId)); return toAjax(iActProcessInstanceService.cancelProcessApply(processInstanceId));
} }
/**
* 分页查询当前登录人单据
*
* @param processInstanceBo 参数
*/
@GetMapping("/getCurrentSubmitByPage")
public TableDataInfo<ProcessInstanceVo> getCurrentSubmitByPage(ProcessInstanceBo processInstanceBo) {
return iActProcessInstanceService.getCurrentSubmitByPage(processInstanceBo);
}
} }

View File

@ -76,4 +76,14 @@ public class ProcessInstanceVo implements Serializable {
* 启动人id * 启动人id
*/ */
private String startUserId; private String startUserId;
/**
* 流程状态
*/
private String businessStatus;
/**
* 流程状态
*/
private String businessStatusName;
} }

View File

@ -96,4 +96,14 @@ public class TaskVo {
* 认领时间 * 认领时间
*/ */
private Date claimTime; private Date claimTime;
/**
* 流程状态
*/
private String businessStatus;
/**
* 流程状态
*/
private String businessStatusName;
} }

View File

@ -77,4 +77,12 @@ public interface IActProcessInstanceService {
* @return 结果 * @return 结果
*/ */
boolean cancelProcessApply(String processInstanceId); boolean cancelProcessApply(String processInstanceId);
/**
* 分页查询当前登录人单据
*
* @param processInstanceBo 参数
* @return 结果
*/
TableDataInfo<ProcessInstanceVo> getCurrentSubmitByPage(ProcessInstanceBo processInstanceBo);
} }

View File

@ -97,6 +97,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService
for (ProcessInstance processInstance : processInstances) { for (ProcessInstance processInstance : processInstances) {
ProcessInstanceVo processInstanceVo = BeanUtil.toBean(processInstance, ProcessInstanceVo.class); ProcessInstanceVo processInstanceVo = BeanUtil.toBean(processInstance, ProcessInstanceVo.class);
processInstanceVo.setIsSuspended(processInstance.isSuspended()); processInstanceVo.setIsSuspended(processInstance.isSuspended());
processInstanceVo.setBusinessStatusName(BusinessStatusEnum.getEumByStatus(processInstance.getBusinessStatus()));
list.add(processInstanceVo); list.add(processInstanceVo);
} }
long count = query.count(); long count = query.count();
@ -125,7 +126,9 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService
} }
List<HistoricProcessInstance> historicProcessInstances = query.listPage(processInstanceBo.getPageNum(), processInstanceBo.getPageSize()); List<HistoricProcessInstance> historicProcessInstances = query.listPage(processInstanceBo.getPageNum(), processInstanceBo.getPageSize());
for (HistoricProcessInstance historicProcessInstance : historicProcessInstances) { for (HistoricProcessInstance historicProcessInstance : historicProcessInstances) {
list.add(BeanUtil.toBean(historicProcessInstance, ProcessInstanceVo.class)); ProcessInstanceVo processInstanceVo = BeanUtil.toBean(historicProcessInstance, ProcessInstanceVo.class);
processInstanceVo.setBusinessStatusName(BusinessStatusEnum.getEumByStatus(historicProcessInstance.getBusinessStatus()));
list.add(processInstanceVo);
} }
long count = query.count(); long count = query.count();
return new TableDataInfo<>(list, count); return new TableDataInfo<>(list, count);
@ -246,8 +249,10 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService
//翻译人员名称 //翻译人员名称
if (CollUtil.isNotEmpty(actHistoryInfoVoList)) { if (CollUtil.isNotEmpty(actHistoryInfoVoList)) {
actHistoryInfoVoList.forEach(e -> { actHistoryInfoVoList.forEach(e -> {
if (StringUtils.isNotBlank(e.getAssignee())) {
SysUserVo sysUserVo = iSysUserService.selectUserById(Long.valueOf(e.getAssignee())); SysUserVo sysUserVo = iSysUserService.selectUserById(Long.valueOf(e.getAssignee()));
e.setNickName(ObjectUtil.isNotEmpty(sysUserVo) ? sysUserVo.getNickName() : ""); e.setNickName(ObjectUtil.isNotEmpty(sysUserVo) ? sysUserVo.getNickName() : "");
}
}); });
} }
List<ActHistoryInfoVo> nodeInfoList = new ArrayList<>(); List<ActHistoryInfoVo> nodeInfoList = new ArrayList<>();
@ -436,4 +441,31 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService
throw new ServiceException("撤销失败:" + e.getMessage()); throw new ServiceException("撤销失败:" + e.getMessage());
} }
} }
/**
* 分页查询当前登录人单据
*
* @param processInstanceBo 参数
*/
@Override
public TableDataInfo<ProcessInstanceVo> getCurrentSubmitByPage(ProcessInstanceBo processInstanceBo) {
List<ProcessInstanceVo> list = new ArrayList<>();
HistoricProcessInstanceQuery query = historyService.createHistoricProcessInstanceQuery();
query.processInstanceTenantId(TenantHelper.getTenantId());
query.startedBy(processInstanceBo.getStartUserId());
if (StringUtils.isNotBlank(processInstanceBo.getName())) {
query.processInstanceNameLikeIgnoreCase("%" + processInstanceBo.getName() + "%");
}
if (StringUtils.isNotBlank(processInstanceBo.getBusinessKey())) {
query.processInstanceBusinessKey(processInstanceBo.getBusinessKey());
}
List<HistoricProcessInstance> historicProcessInstanceList = query.listPage(processInstanceBo.getPageNum(), processInstanceBo.getPageSize());
for (HistoricProcessInstance processInstance : historicProcessInstanceList) {
ProcessInstanceVo processInstanceVo = BeanUtil.toBean(processInstance, ProcessInstanceVo.class);
processInstanceVo.setBusinessStatusName(BusinessStatusEnum.getEumByStatus(processInstance.getBusinessStatus()));
list.add(processInstanceVo);
}
long count = query.count();
return new TableDataInfo<>(list, count);
}
} }

View File

@ -32,10 +32,7 @@ import org.flowable.task.service.impl.persistence.entity.TaskEntity;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/** /**
* 任务 服务层实现 * 任务 服务层实现
@ -169,9 +166,19 @@ public class ActTaskServiceImpl implements IActTaskService {
query.taskNameLike("%" + taskBo.getName() + "%"); query.taskNameLike("%" + taskBo.getName() + "%");
} }
List<Task> taskList = query.listPage(taskBo.getPageNum(), taskBo.getPageSize()); List<Task> taskList = query.listPage(taskBo.getPageNum(), taskBo.getPageSize());
List<ProcessInstance> processInstanceList = null;
if (CollUtil.isNotEmpty(taskList)) {
Set<String> processInstanceIds = StreamUtils.toSet(taskList, Task::getProcessInstanceId);
processInstanceList = runtimeService.createProcessInstanceQuery().processInstanceIds(processInstanceIds).list();
}
List<TaskVo> list = new ArrayList<>(); List<TaskVo> list = new ArrayList<>();
for (Task task : taskList) { for (Task task : taskList) {
list.add(BeanUtil.toBean(task, TaskVo.class)); TaskVo taskVo = BeanUtil.toBean(task, TaskVo.class);
processInstanceList.stream().filter(e -> e.getId().equals(task.getProcessInstanceId())).findFirst().ifPresent(e -> {
taskVo.setBusinessStatus(e.getBusinessStatus());
taskVo.setBusinessStatusName(BusinessStatusEnum.getEumByStatus(taskVo.getBusinessStatus()));
});
list.add(taskVo);
} }
long count = query.count(); long count = query.count();
return new TableDataInfo<>(list, count); return new TableDataInfo<>(list, count);
@ -191,9 +198,19 @@ public class ActTaskServiceImpl implements IActTaskService {
query.taskNameLike("%" + taskBo.getName() + "%"); query.taskNameLike("%" + taskBo.getName() + "%");
} }
List<HistoricTaskInstance> taskInstanceList = query.listPage(taskBo.getPageNum(), taskBo.getPageSize()); List<HistoricTaskInstance> taskInstanceList = query.listPage(taskBo.getPageNum(), taskBo.getPageSize());
List<HistoricProcessInstance> historicProcessInstanceList = null;
if (CollUtil.isNotEmpty(taskInstanceList)) {
Set<String> processInstanceIds = StreamUtils.toSet(taskInstanceList, HistoricTaskInstance::getProcessInstanceId);
historicProcessInstanceList = historyService.createHistoricProcessInstanceQuery().processInstanceIds(processInstanceIds).list();
}
List<TaskVo> list = new ArrayList<>(); List<TaskVo> list = new ArrayList<>();
for (HistoricTaskInstance task : taskInstanceList) { for (HistoricTaskInstance task : taskInstanceList) {
list.add(BeanUtil.toBean(task, TaskVo.class)); TaskVo taskVo = BeanUtil.toBean(task, TaskVo.class);
historicProcessInstanceList.stream().filter(e -> e.getId().equals(task.getProcessInstanceId())).findFirst().ifPresent(e -> {
taskVo.setBusinessStatus(e.getBusinessStatus());
taskVo.setBusinessStatusName(BusinessStatusEnum.getEumByStatus(taskVo.getBusinessStatus()));
});
list.add(taskVo);
} }
long count = query.count(); long count = query.count();
return new TableDataInfo<>(list, count); return new TableDataInfo<>(list, count);