update 新增流程分类id查询
This commit is contained in:
parent
a2730a3422
commit
764782c58b
@ -6,7 +6,6 @@ import lombok.Getter;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@ -116,30 +115,23 @@ public enum BusinessStatusEnum {
|
||||
}
|
||||
|
||||
/**
|
||||
* 运行中的实例状态
|
||||
* 获取运行中的实例状态列表
|
||||
*
|
||||
* @return 运行中的实例状态
|
||||
* @return 包含运行中实例状态的不可变列表
|
||||
* (包含 DRAFT、WAITING、BACK 和 CANCEL 状态)
|
||||
*/
|
||||
public static List<String> runningStatus() {
|
||||
List<String> list = new ArrayList<>();
|
||||
list.add(BusinessStatusEnum.DRAFT.getStatus());
|
||||
list.add(BusinessStatusEnum.WAITING.getStatus());
|
||||
list.add(BusinessStatusEnum.BACK.getStatus());
|
||||
list.add(BusinessStatusEnum.CANCEL.getStatus());
|
||||
return list;
|
||||
return Arrays.asList(DRAFT.status, WAITING.status, BACK.status, CANCEL.status);
|
||||
}
|
||||
|
||||
/**
|
||||
* 结束实例状态
|
||||
* 获取结束实例的状态列表
|
||||
*
|
||||
* @return 结束实例状态
|
||||
* @return 包含结束实例状态的不可变列表
|
||||
* (包含 FINISH、INVALID 和 TERMINATION 状态)
|
||||
*/
|
||||
public static List<String> finishStatus() {
|
||||
List<String> list = new ArrayList<>();
|
||||
list.add(BusinessStatusEnum.FINISH.getStatus());
|
||||
list.add(BusinessStatusEnum.INVALID.getStatus());
|
||||
list.add(BusinessStatusEnum.TERMINATION.getStatus());
|
||||
return list;
|
||||
return Arrays.asList(FINISH.status, INVALID.status, TERMINATION.status);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -38,7 +38,7 @@ public class FlowInstanceBo implements Serializable {
|
||||
private String businessId;
|
||||
|
||||
/**
|
||||
* 模型分类
|
||||
* 流程分类id
|
||||
*/
|
||||
private String category;
|
||||
|
||||
@ -47,9 +47,9 @@ public class FlowInstanceBo implements Serializable {
|
||||
*/
|
||||
private String nodeName;
|
||||
|
||||
|
||||
/**
|
||||
* 申请人Ids
|
||||
*/
|
||||
private List<Long> createByIds;
|
||||
|
||||
}
|
||||
|
@ -32,6 +32,11 @@ public class FlowTaskBo implements Serializable {
|
||||
*/
|
||||
private String flowCode;
|
||||
|
||||
/**
|
||||
* 流程分类id
|
||||
*/
|
||||
private String category;
|
||||
|
||||
/**
|
||||
* 流程实例id
|
||||
*/
|
||||
@ -41,8 +46,10 @@ public class FlowTaskBo implements Serializable {
|
||||
* 权限列表
|
||||
*/
|
||||
private List<String> permissionList;
|
||||
|
||||
/**
|
||||
* 申请人Ids
|
||||
*/
|
||||
private List<Long> createByIds;
|
||||
|
||||
}
|
||||
|
@ -52,7 +52,7 @@ public class FlowDefinitionVo implements Serializable {
|
||||
private String flowName;
|
||||
|
||||
/**
|
||||
* 流程类别
|
||||
* 流程分类id
|
||||
*/
|
||||
private String category;
|
||||
|
||||
|
@ -160,6 +160,16 @@ public class FlowHisTaskVo implements Serializable {
|
||||
*/
|
||||
private String createBy;
|
||||
|
||||
/**
|
||||
* 申请人
|
||||
*/
|
||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy")
|
||||
private String createByName;
|
||||
|
||||
/**
|
||||
* 流程分类id
|
||||
*/
|
||||
private String category;
|
||||
|
||||
/**
|
||||
* 审批表单是否自定义(Y是 N否)
|
||||
@ -223,9 +233,5 @@ public class FlowHisTaskVo implements Serializable {
|
||||
this.cooperateType = cooperateType;
|
||||
this.cooperateTypeName = CooperateType.getValueByKey(cooperateType);
|
||||
}
|
||||
/**
|
||||
* 申请人
|
||||
*/
|
||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy")
|
||||
private String createByName;
|
||||
|
||||
}
|
||||
|
@ -114,6 +114,11 @@ public class FlowTaskVo implements Serializable {
|
||||
*/
|
||||
private String flowStatus;
|
||||
|
||||
/**
|
||||
* 流程分类id
|
||||
*/
|
||||
private String category;
|
||||
|
||||
/**
|
||||
* 流程状态
|
||||
*/
|
||||
|
@ -9,6 +9,8 @@ import org.dromara.workflow.domain.FlowCategory;
|
||||
import org.dromara.workflow.domain.vo.FlowCategoryVo;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
/**
|
||||
* 流程分类Mapper接口
|
||||
@ -41,4 +43,18 @@ public interface FlwCategoryMapper extends BaseMapperPlus<FlowCategory, FlowCate
|
||||
.apply(DataBaseHelper.findInSet(parentId, "ancestors")));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据父流程分类ID查询包括父ID及其所有子流程分类ID的列表
|
||||
*
|
||||
* @param parentId 父流程分类ID
|
||||
* @return 包含父ID和子流程分类ID的列表
|
||||
*/
|
||||
default List<Long> selectCategoryIdsByParentId(Long parentId) {
|
||||
return Stream.concat(
|
||||
this.selectListByParentId(parentId).stream()
|
||||
.map(FlowCategory::getCategoryId),
|
||||
Stream.of(parentId)
|
||||
).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -36,6 +36,7 @@ public interface FlwTaskMapper {
|
||||
* @return 结果
|
||||
*/
|
||||
List<FlowTaskVo> getListRunTask(@Param(Constants.WRAPPER) Wrapper<FlowTaskBo> queryWrapper);
|
||||
|
||||
/**
|
||||
* 获取已办
|
||||
*
|
||||
|
@ -29,7 +29,6 @@ import org.dromara.warm.flow.orm.entity.FlowDefinition;
|
||||
import org.dromara.warm.flow.orm.entity.FlowHisTask;
|
||||
import org.dromara.warm.flow.orm.mapper.FlowDefinitionMapper;
|
||||
import org.dromara.warm.flow.orm.mapper.FlowHisTaskMapper;
|
||||
import org.dromara.workflow.domain.FlowCategory;
|
||||
import org.dromara.workflow.domain.vo.FlowDefinitionVo;
|
||||
import org.dromara.workflow.mapper.FlwCategoryMapper;
|
||||
import org.dromara.workflow.mapper.FlwDefMapper;
|
||||
@ -40,7 +39,6 @@ import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 流程定义 服务层实现
|
||||
@ -70,12 +68,7 @@ public class FlwDefinitionServiceImpl implements IFlwDefinitionService {
|
||||
queryWrapper.like(StringUtils.isNotBlank(flowDefinition.getFlowCode()), "flow_code", flowDefinition.getFlowCode());
|
||||
queryWrapper.like(StringUtils.isNotBlank(flowDefinition.getFlowName()), "flow_Name", flowDefinition.getFlowName());
|
||||
if (StringUtils.isNotBlank(flowDefinition.getCategory())) {
|
||||
Long categoryId = Convert.toLong(flowDefinition.getCategory());
|
||||
List<Long> categoryIds = flwCategoryMapper.selectListByParentId(categoryId)
|
||||
.stream()
|
||||
.map(FlowCategory::getCategoryId)
|
||||
.collect(Collectors.toList());
|
||||
categoryIds.add(categoryId);
|
||||
List<Long> categoryIds = flwCategoryMapper.selectCategoryIdsByParentId(Convert.toLong(flowDefinition.getCategory()));
|
||||
queryWrapper.in("category", categoryIds);
|
||||
}
|
||||
queryWrapper.orderByDesc("create_time");
|
||||
|
@ -2,6 +2,7 @@ package org.dromara.workflow.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
@ -41,6 +42,7 @@ import org.dromara.workflow.domain.vo.FlowHisTaskVo;
|
||||
import org.dromara.workflow.domain.vo.FlowInstanceVo;
|
||||
import org.dromara.workflow.domain.vo.VariableVo;
|
||||
import org.dromara.workflow.handler.FlowProcessEventHandler;
|
||||
import org.dromara.workflow.mapper.FlwCategoryMapper;
|
||||
import org.dromara.workflow.mapper.FlwInstanceMapper;
|
||||
import org.dromara.workflow.service.IFlwInstanceService;
|
||||
import org.dromara.workflow.service.IFlwTaskService;
|
||||
@ -70,6 +72,7 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
|
||||
private final TaskService taskService;
|
||||
private final IFlwTaskService flwTaskService;
|
||||
private final FlowProcessEventHandler flowProcessEventHandler;
|
||||
private final FlwCategoryMapper flwCategoryMapper;
|
||||
|
||||
/**
|
||||
* 分页查询正在运行的流程实例
|
||||
@ -130,7 +133,10 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
|
||||
queryWrapper.like(StringUtils.isNotBlank(flowInstanceBo.getNodeName()), "fi.node_name", flowInstanceBo.getNodeName());
|
||||
queryWrapper.like(StringUtils.isNotBlank(flowInstanceBo.getFlowName()), "fd.flow_name", flowInstanceBo.getFlowName());
|
||||
queryWrapper.like(StringUtils.isNotBlank(flowInstanceBo.getFlowCode()), "fd.flow_code", flowInstanceBo.getFlowCode());
|
||||
queryWrapper.eq(StringUtils.isNotBlank(flowInstanceBo.getCategory()), "fd.category", flowInstanceBo.getCategory());
|
||||
if (StringUtils.isNotBlank(flowInstanceBo.getCategory())) {
|
||||
List<Long> categoryIds = flwCategoryMapper.selectCategoryIdsByParentId(Convert.toLong(flowInstanceBo.getCategory()));
|
||||
queryWrapper.in("fd.category", categoryIds);
|
||||
}
|
||||
queryWrapper.eq(StringUtils.isNotBlank(flowInstanceBo.getBusinessId()), "fi.business_id", flowInstanceBo.getBusinessId());
|
||||
queryWrapper.in(CollUtil.isNotEmpty(flowInstanceBo.getCreateByIds()), "fi.create_by", flowInstanceBo.getCreateByIds());
|
||||
queryWrapper.eq("fi.del_flag", "0");
|
||||
|
@ -2,6 +2,7 @@ package org.dromara.workflow.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
@ -41,6 +42,7 @@ import org.dromara.workflow.domain.vo.FlowHisTaskVo;
|
||||
import org.dromara.workflow.domain.vo.FlowTaskVo;
|
||||
import org.dromara.workflow.handler.FlowProcessEventHandler;
|
||||
import org.dromara.workflow.handler.WorkflowPermissionHandler;
|
||||
import org.dromara.workflow.mapper.FlwCategoryMapper;
|
||||
import org.dromara.workflow.mapper.FlwTaskMapper;
|
||||
import org.dromara.workflow.service.IFlwTaskService;
|
||||
import org.dromara.workflow.utils.WorkflowUtils;
|
||||
@ -76,6 +78,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
|
||||
private final IdentifierGenerator identifierGenerator;
|
||||
private final NodeService nodeService;
|
||||
private final FlowNodeMapper flowNodeMapper;
|
||||
private final FlwCategoryMapper flwCategoryMapper;
|
||||
|
||||
/**
|
||||
* 启动任务
|
||||
@ -249,6 +252,10 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
|
||||
queryWrapper.eq("t.node_type", NodeType.BETWEEN.getKey());
|
||||
queryWrapper.in("t.processed_by", SpringUtils.getBean(WorkflowPermissionHandler.class).permissions());
|
||||
queryWrapper.in("t.flow_status", BusinessStatusEnum.WAITING.getStatus());
|
||||
if (StringUtils.isNotBlank(flowTaskBo.getCategory())) {
|
||||
List<Long> categoryIds = flwCategoryMapper.selectCategoryIdsByParentId(Convert.toLong(flowTaskBo.getCategory()));
|
||||
queryWrapper.in("d.category", categoryIds);
|
||||
}
|
||||
Page<FlowTaskVo> page = this.getFlowTaskVoPage(pageQuery, queryWrapper);
|
||||
return TableDataInfo.build(page);
|
||||
}
|
||||
@ -265,6 +272,10 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
|
||||
queryWrapper.eq("t.node_type", NodeType.BETWEEN.getKey());
|
||||
queryWrapper.in("t.approver", LoginHelper.getUserIdStr());
|
||||
queryWrapper.orderByDesc("t.create_time").orderByDesc("t.update_time");
|
||||
if (StringUtils.isNotBlank(flowTaskBo.getCategory())) {
|
||||
List<Long> categoryIds = flwCategoryMapper.selectCategoryIdsByParentId(Convert.toLong(flowTaskBo.getCategory()));
|
||||
queryWrapper.in("c.category", categoryIds);
|
||||
}
|
||||
Page<FlowHisTaskVo> page = flwTaskMapper.getListFinishTask(pageQuery.build(), queryWrapper);
|
||||
return TableDataInfo.build(page);
|
||||
}
|
||||
@ -279,6 +290,10 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
|
||||
public TableDataInfo<FlowTaskVo> pageByAllTaskWait(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
|
||||
QueryWrapper<FlowTaskBo> queryWrapper = buildQueryWrapper(flowTaskBo);
|
||||
queryWrapper.eq("t.node_type", NodeType.BETWEEN.getKey());
|
||||
if (StringUtils.isNotBlank(flowTaskBo.getCategory())) {
|
||||
List<Long> categoryIds = flwCategoryMapper.selectCategoryIdsByParentId(Convert.toLong(flowTaskBo.getCategory()));
|
||||
queryWrapper.in("d.category", categoryIds);
|
||||
}
|
||||
Page<FlowTaskVo> page = getFlowTaskVoPage(pageQuery, queryWrapper);
|
||||
return TableDataInfo.build(page);
|
||||
}
|
||||
@ -309,6 +324,10 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
|
||||
@Override
|
||||
public TableDataInfo<FlowHisTaskVo> pageByAllTaskFinish(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
|
||||
QueryWrapper<FlowTaskBo> queryWrapper = buildQueryWrapper(flowTaskBo);
|
||||
if (StringUtils.isNotBlank(flowTaskBo.getCategory())) {
|
||||
List<Long> categoryIds = flwCategoryMapper.selectCategoryIdsByParentId(Convert.toLong(flowTaskBo.getCategory()));
|
||||
queryWrapper.in("c.category", categoryIds);
|
||||
}
|
||||
Page<FlowHisTaskVo> page = flwTaskMapper.getListFinishTask(pageQuery.build(), queryWrapper);
|
||||
return TableDataInfo.build(page);
|
||||
}
|
||||
@ -323,6 +342,10 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
|
||||
public TableDataInfo<FlowTaskVo> pageByTaskCopy(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
|
||||
QueryWrapper<FlowTaskBo> queryWrapper = buildQueryWrapper(flowTaskBo);
|
||||
queryWrapper.in("t.processed_by", LoginHelper.getUserIdStr());
|
||||
if (StringUtils.isNotBlank(flowTaskBo.getCategory())) {
|
||||
List<Long> categoryIds = flwCategoryMapper.selectCategoryIdsByParentId(Convert.toLong(flowTaskBo.getCategory()));
|
||||
queryWrapper.in("d.category", categoryIds);
|
||||
}
|
||||
Page<FlowTaskVo> page = flwTaskMapper.getTaskCopyByPage(pageQuery.build(), queryWrapper);
|
||||
return TableDataInfo.build(page);
|
||||
}
|
||||
|
@ -26,6 +26,7 @@
|
||||
d.flow_name,
|
||||
d.flow_code,
|
||||
d.form_custom,
|
||||
d.category,
|
||||
COALESCE(t.form_path, d.form_path) as form_path,
|
||||
d.version,
|
||||
uu.processed_by,
|
||||
@ -69,6 +70,7 @@
|
||||
b.create_by,
|
||||
c.flow_name,
|
||||
c.flow_code,
|
||||
c.category,
|
||||
c.version
|
||||
from flow_his_task a
|
||||
left join flow_instance b on a.instance_id = b.id
|
||||
@ -95,6 +97,7 @@
|
||||
b.node_code,
|
||||
d.flow_name,
|
||||
d.flow_code,
|
||||
d.category,
|
||||
d.version
|
||||
from flow_user a
|
||||
left join flow_his_task b on a.associated = b.task_id
|
||||
|
Loading…
x
Reference in New Issue
Block a user