我的任务bug修改
This commit is contained in:
@ -94,7 +94,9 @@ public class DesVolumeFileServiceImpl extends ServiceImpl<DesVolumeFileMapper, D
|
|||||||
Page<DesVolumeFileVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
Page<DesVolumeFileVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||||
for (DesVolumeFileVo vo : result.getRecords()) {
|
for (DesVolumeFileVo vo : result.getRecords()) {
|
||||||
SysOssVo ossVo = ossService.getById(vo.getFileId());
|
SysOssVo ossVo = ossService.getById(vo.getFileId());
|
||||||
vo.setFileUrl(ossVo.getUrl());
|
if (ossVo != null) {
|
||||||
|
vo.setFileUrl(ossVo.getUrl());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return TableDataInfo.build(result);
|
return TableDataInfo.build(result);
|
||||||
}
|
}
|
||||||
|
@ -27,6 +27,9 @@ public class FlowInstanceBo implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private String flowCode;
|
private String flowCode;
|
||||||
|
|
||||||
|
private String projectId;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 任务发起人
|
* 任务发起人
|
||||||
*/
|
*/
|
||||||
|
@ -32,6 +32,8 @@ public class FlowTaskBo implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private String flowCode;
|
private String flowCode;
|
||||||
|
|
||||||
|
private String projectId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 流程分类id
|
* 流程分类id
|
||||||
*/
|
*/
|
||||||
|
@ -28,6 +28,7 @@ public interface FlwTaskMapper {
|
|||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
Page<FlowTaskVo> getListRunTask(@Param("page") Page<FlowTaskVo> page, @Param(Constants.WRAPPER) Wrapper<FlowTaskBo> queryWrapper);
|
Page<FlowTaskVo> getListRunTask(@Param("page") Page<FlowTaskVo> page, @Param(Constants.WRAPPER) Wrapper<FlowTaskBo> queryWrapper);
|
||||||
|
Page<FlowTaskVo> getListRunTaskDefinitionIds(@Param("page") Page<FlowTaskVo> page, @Param("definitionIds") List<Long> definitionIds, @Param(Constants.WRAPPER) Wrapper<FlowTaskBo> queryWrapper);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取待办信息
|
* 获取待办信息
|
||||||
@ -45,6 +46,7 @@ public interface FlwTaskMapper {
|
|||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
Page<FlowHisTaskVo> getListFinishTask(@Param("page") Page<FlowTaskVo> page, @Param(Constants.WRAPPER) Wrapper<FlowTaskBo> queryWrapper);
|
Page<FlowHisTaskVo> getListFinishTask(@Param("page") Page<FlowTaskVo> page, @Param(Constants.WRAPPER) Wrapper<FlowTaskBo> queryWrapper);
|
||||||
|
Page<FlowHisTaskVo> getListFinishDefinitionIdsTask(@Param("page") Page<FlowTaskVo> page,@Param("definitionIds") List<Long> definitionIds, @Param(Constants.WRAPPER) Wrapper<FlowTaskBo> queryWrapper);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询当前用户的抄送
|
* 查询当前用户的抄送
|
||||||
@ -54,4 +56,5 @@ public interface FlwTaskMapper {
|
|||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
Page<FlowTaskVo> getTaskCopyByPage(@Param("page") Page<FlowTaskVo> page, @Param(Constants.WRAPPER) QueryWrapper<FlowTaskBo> queryWrapper);
|
Page<FlowTaskVo> getTaskCopyByPage(@Param("page") Page<FlowTaskVo> page, @Param(Constants.WRAPPER) QueryWrapper<FlowTaskBo> queryWrapper);
|
||||||
|
Page<FlowTaskVo> getTaskCopyDefinitionIdsByPage(@Param("page") Page<FlowTaskVo> page,@Param("definitionIds") List<Long> definitionIds, @Param(Constants.WRAPPER) QueryWrapper<FlowTaskBo> queryWrapper);
|
||||||
}
|
}
|
||||||
|
@ -28,9 +28,11 @@ import org.dromara.warm.flow.core.enums.NodeType;
|
|||||||
import org.dromara.warm.flow.core.service.DefService;
|
import org.dromara.warm.flow.core.service.DefService;
|
||||||
import org.dromara.warm.flow.core.service.InsService;
|
import org.dromara.warm.flow.core.service.InsService;
|
||||||
import org.dromara.warm.flow.core.service.TaskService;
|
import org.dromara.warm.flow.core.service.TaskService;
|
||||||
|
import org.dromara.warm.flow.orm.entity.FlowDefinition;
|
||||||
import org.dromara.warm.flow.orm.entity.FlowHisTask;
|
import org.dromara.warm.flow.orm.entity.FlowHisTask;
|
||||||
import org.dromara.warm.flow.orm.entity.FlowInstance;
|
import org.dromara.warm.flow.orm.entity.FlowInstance;
|
||||||
import org.dromara.warm.flow.orm.entity.FlowTask;
|
import org.dromara.warm.flow.orm.entity.FlowTask;
|
||||||
|
import org.dromara.warm.flow.orm.mapper.FlowDefinitionMapper;
|
||||||
import org.dromara.warm.flow.orm.mapper.FlowHisTaskMapper;
|
import org.dromara.warm.flow.orm.mapper.FlowHisTaskMapper;
|
||||||
import org.dromara.warm.flow.orm.mapper.FlowInstanceMapper;
|
import org.dromara.warm.flow.orm.mapper.FlowInstanceMapper;
|
||||||
import org.dromara.workflow.common.ConditionalOnEnable;
|
import org.dromara.workflow.common.ConditionalOnEnable;
|
||||||
@ -71,6 +73,7 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
|
|||||||
private final IFlwTaskService flwTaskService;
|
private final IFlwTaskService flwTaskService;
|
||||||
private final FlwInstanceMapper flwInstanceMapper;
|
private final FlwInstanceMapper flwInstanceMapper;
|
||||||
private final FlwCategoryMapper flwCategoryMapper;
|
private final FlwCategoryMapper flwCategoryMapper;
|
||||||
|
private final FlowDefinitionMapper flowDefinitionMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页查询正在运行的流程实例
|
* 分页查询正在运行的流程实例
|
||||||
@ -264,6 +267,21 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
|
|||||||
@Override
|
@Override
|
||||||
public TableDataInfo<FlowInstanceVo> selectCurrentInstanceList(FlowInstanceBo instanceBo, PageQuery pageQuery) {
|
public TableDataInfo<FlowInstanceVo> selectCurrentInstanceList(FlowInstanceBo instanceBo, PageQuery pageQuery) {
|
||||||
QueryWrapper<FlowInstanceBo> queryWrapper = buildQueryWrapper(instanceBo);
|
QueryWrapper<FlowInstanceBo> queryWrapper = buildQueryWrapper(instanceBo);
|
||||||
|
if (!"0".equals(instanceBo.getProjectId())){
|
||||||
|
List<FlowDefinition> flowDefinitions = flowDefinitionMapper.selectList(new LambdaQueryWrapper<FlowDefinition>()
|
||||||
|
.select(FlowDefinition::getId)
|
||||||
|
.like(FlowDefinition::getFlowCode, instanceBo.getProjectId()));
|
||||||
|
List<Long> definitionIds = new ArrayList<>();
|
||||||
|
if (flowDefinitions != null && !flowDefinitions.isEmpty()) {
|
||||||
|
flowDefinitions.forEach(flowDefinition -> {
|
||||||
|
definitionIds.add(flowDefinition.getId());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (definitionIds.isEmpty()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
queryWrapper.in("fi.definition_id",definitionIds);
|
||||||
|
}
|
||||||
queryWrapper.eq("fi.create_by", LoginHelper.getUserIdStr());
|
queryWrapper.eq("fi.create_by", LoginHelper.getUserIdStr());
|
||||||
Page<FlowInstanceVo> page = flwInstanceMapper.selectInstanceList(pageQuery.build(), queryWrapper);
|
Page<FlowInstanceVo> page = flwInstanceMapper.selectInstanceList(pageQuery.build(), queryWrapper);
|
||||||
return TableDataInfo.build(page);
|
return TableDataInfo.build(page);
|
||||||
|
@ -33,10 +33,7 @@ import org.dromara.warm.flow.core.service.*;
|
|||||||
import org.dromara.warm.flow.core.utils.ExpressionUtil;
|
import org.dromara.warm.flow.core.utils.ExpressionUtil;
|
||||||
import org.dromara.warm.flow.core.utils.MapUtil;
|
import org.dromara.warm.flow.core.utils.MapUtil;
|
||||||
import org.dromara.warm.flow.orm.entity.*;
|
import org.dromara.warm.flow.orm.entity.*;
|
||||||
import org.dromara.warm.flow.orm.mapper.FlowHisTaskMapper;
|
import org.dromara.warm.flow.orm.mapper.*;
|
||||||
import org.dromara.warm.flow.orm.mapper.FlowInstanceMapper;
|
|
||||||
import org.dromara.warm.flow.orm.mapper.FlowNodeMapper;
|
|
||||||
import org.dromara.warm.flow.orm.mapper.FlowTaskMapper;
|
|
||||||
import org.dromara.workflow.common.ConditionalOnEnable;
|
import org.dromara.workflow.common.ConditionalOnEnable;
|
||||||
import org.dromara.workflow.common.constant.FlowConstant;
|
import org.dromara.workflow.common.constant.FlowConstant;
|
||||||
import org.dromara.workflow.common.enums.TaskAssigneeType;
|
import org.dromara.workflow.common.enums.TaskAssigneeType;
|
||||||
@ -86,6 +83,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
|
|||||||
private final IFlwTaskAssigneeService flwTaskAssigneeService;
|
private final IFlwTaskAssigneeService flwTaskAssigneeService;
|
||||||
private final IFlwCommonService flwCommonService;
|
private final IFlwCommonService flwCommonService;
|
||||||
private final IFlwNodeExtService flwNodeExtService;
|
private final IFlwNodeExtService flwNodeExtService;
|
||||||
|
private final FlowDefinitionMapper flowDefinitionMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 启动任务
|
* 启动任务
|
||||||
@ -273,10 +271,24 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
|
|||||||
@Override
|
@Override
|
||||||
public TableDataInfo<FlowTaskVo> pageByTaskWait(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
|
public TableDataInfo<FlowTaskVo> pageByTaskWait(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
|
||||||
QueryWrapper<FlowTaskBo> queryWrapper = buildQueryWrapper(flowTaskBo);
|
QueryWrapper<FlowTaskBo> queryWrapper = buildQueryWrapper(flowTaskBo);
|
||||||
|
List<Long> definitionIds = new ArrayList<>();
|
||||||
|
if (!"0".equals(flowTaskBo.getProjectId())){
|
||||||
|
List<FlowDefinition> flowDefinitions = flowDefinitionMapper.selectList(new LambdaQueryWrapper<FlowDefinition>()
|
||||||
|
.select(FlowDefinition::getId)
|
||||||
|
.like(FlowDefinition::getFlowCode, flowTaskBo.getProjectId()));
|
||||||
|
if (flowDefinitions != null && !flowDefinitions.isEmpty()) {
|
||||||
|
flowDefinitions.forEach(flowDefinition -> {
|
||||||
|
definitionIds.add(flowDefinition.getId());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (definitionIds.isEmpty()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
queryWrapper.eq("t.node_type", NodeType.BETWEEN.getKey());
|
queryWrapper.eq("t.node_type", NodeType.BETWEEN.getKey());
|
||||||
queryWrapper.in("t.processed_by", LoginHelper.getUserIdStr());
|
queryWrapper.in("t.processed_by", LoginHelper.getUserIdStr());
|
||||||
queryWrapper.in("t.flow_status", BusinessStatusEnum.WAITING.getStatus());
|
queryWrapper.in("t.flow_status", BusinessStatusEnum.WAITING.getStatus());
|
||||||
Page<FlowTaskVo> page = this.getFlowTaskVoPage(pageQuery, queryWrapper);
|
Page<FlowTaskVo> page = this.getFlowTaskDefinitionIdsVoPage(pageQuery,definitionIds, queryWrapper);
|
||||||
return TableDataInfo.build(page);
|
return TableDataInfo.build(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -289,10 +301,24 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
|
|||||||
@Override
|
@Override
|
||||||
public TableDataInfo<FlowHisTaskVo> pageByTaskFinish(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
|
public TableDataInfo<FlowHisTaskVo> pageByTaskFinish(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
|
||||||
QueryWrapper<FlowTaskBo> queryWrapper = buildQueryWrapper(flowTaskBo);
|
QueryWrapper<FlowTaskBo> queryWrapper = buildQueryWrapper(flowTaskBo);
|
||||||
|
List<Long> definitionIds = new ArrayList<>();
|
||||||
|
if (!"0".equals(flowTaskBo.getProjectId())){
|
||||||
|
List<FlowDefinition> flowDefinitions = flowDefinitionMapper.selectList(new LambdaQueryWrapper<FlowDefinition>()
|
||||||
|
.select(FlowDefinition::getId)
|
||||||
|
.like(FlowDefinition::getFlowCode, flowTaskBo.getProjectId()));
|
||||||
|
if (flowDefinitions != null && !flowDefinitions.isEmpty()) {
|
||||||
|
flowDefinitions.forEach(flowDefinition -> {
|
||||||
|
definitionIds.add(flowDefinition.getId());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (definitionIds.isEmpty()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
queryWrapper.eq("t.node_type", NodeType.BETWEEN.getKey());
|
queryWrapper.eq("t.node_type", NodeType.BETWEEN.getKey());
|
||||||
queryWrapper.in("t.approver", LoginHelper.getUserIdStr());
|
queryWrapper.in("t.approver", LoginHelper.getUserIdStr());
|
||||||
queryWrapper.orderByDesc("t.create_time").orderByDesc("t.update_time");
|
queryWrapper.orderByDesc("t.create_time").orderByDesc("t.update_time");
|
||||||
Page<FlowHisTaskVo> page = flwTaskMapper.getListFinishTask(pageQuery.build(), queryWrapper);
|
Page<FlowHisTaskVo> page = flwTaskMapper.getListFinishDefinitionIdsTask(pageQuery.build(),definitionIds, queryWrapper);
|
||||||
return TableDataInfo.build(page);
|
return TableDataInfo.build(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -326,6 +352,22 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
|
|||||||
}
|
}
|
||||||
return page;
|
return page;
|
||||||
}
|
}
|
||||||
|
private Page<FlowTaskVo> getFlowTaskDefinitionIdsVoPage(PageQuery pageQuery, List<Long> definitionIds, QueryWrapper<FlowTaskBo> queryWrapper) {
|
||||||
|
Page<FlowTaskVo> page = flwTaskMapper.getListRunTaskDefinitionIds(pageQuery.build(),definitionIds, queryWrapper);
|
||||||
|
List<FlowTaskVo> records = page.getRecords();
|
||||||
|
if (CollUtil.isNotEmpty(records)) {
|
||||||
|
List<Long> taskIds = StreamUtils.toList(records, FlowTaskVo::getId);
|
||||||
|
Map<Long, List<UserDTO>> listMap = currentTaskAllUser(taskIds);
|
||||||
|
records.forEach(t -> {
|
||||||
|
List<UserDTO> userList = listMap.getOrDefault(t.getId(), Collections.emptyList());
|
||||||
|
if (CollUtil.isNotEmpty(userList)) {
|
||||||
|
t.setAssigneeIds(StreamUtils.join(userList, e -> String.valueOf(e.getUserId())));
|
||||||
|
t.setAssigneeNames(StreamUtils.join(userList, UserDTO::getNickName));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return page;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询已办任务
|
* 查询已办任务
|
||||||
@ -349,8 +391,22 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
|
|||||||
@Override
|
@Override
|
||||||
public TableDataInfo<FlowTaskVo> pageByTaskCopy(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
|
public TableDataInfo<FlowTaskVo> pageByTaskCopy(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
|
||||||
QueryWrapper<FlowTaskBo> queryWrapper = buildQueryWrapper(flowTaskBo);
|
QueryWrapper<FlowTaskBo> queryWrapper = buildQueryWrapper(flowTaskBo);
|
||||||
|
List<Long> definitionIds = new ArrayList<>();
|
||||||
|
if (!"0".equals(flowTaskBo.getProjectId())){
|
||||||
|
List<FlowDefinition> flowDefinitions = flowDefinitionMapper.selectList(new LambdaQueryWrapper<FlowDefinition>()
|
||||||
|
.select(FlowDefinition::getId)
|
||||||
|
.like(FlowDefinition::getFlowCode, flowTaskBo.getProjectId()));
|
||||||
|
if (flowDefinitions != null && !flowDefinitions.isEmpty()) {
|
||||||
|
flowDefinitions.forEach(flowDefinition -> {
|
||||||
|
definitionIds.add(flowDefinition.getId());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (definitionIds.isEmpty()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
queryWrapper.in("t.processed_by", LoginHelper.getUserIdStr());
|
queryWrapper.in("t.processed_by", LoginHelper.getUserIdStr());
|
||||||
Page<FlowTaskVo> page = flwTaskMapper.getTaskCopyByPage(pageQuery.build(), queryWrapper);
|
Page<FlowTaskVo> page = flwTaskMapper.getTaskCopyDefinitionIdsByPage(pageQuery.build(),definitionIds, queryWrapper);
|
||||||
return TableDataInfo.build(page);
|
return TableDataInfo.build(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -42,6 +42,46 @@
|
|||||||
) t
|
) t
|
||||||
${ew.getCustomSqlSegment}
|
${ew.getCustomSqlSegment}
|
||||||
</select>
|
</select>
|
||||||
|
<select id="getListRunTaskDefinitionIds" resultMap="FlowTaskResult">
|
||||||
|
select * from (
|
||||||
|
select distinct
|
||||||
|
t.id,
|
||||||
|
t.node_code,
|
||||||
|
t.node_name,
|
||||||
|
t.node_type,
|
||||||
|
t.definition_id,
|
||||||
|
t.instance_id,
|
||||||
|
t.create_time,
|
||||||
|
t.update_time,
|
||||||
|
t.tenant_id,
|
||||||
|
i.business_id,
|
||||||
|
i.flow_status,
|
||||||
|
i.create_by,
|
||||||
|
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,
|
||||||
|
uu.type
|
||||||
|
from flow_task t
|
||||||
|
left join flow_user uu on uu.associated = t.id
|
||||||
|
left join flow_definition d on t.definition_id = d.id
|
||||||
|
left join flow_instance i on t.instance_id = i.id
|
||||||
|
where t.node_type = 1
|
||||||
|
and t.del_flag = '0'
|
||||||
|
and uu.del_flag = '0'
|
||||||
|
and uu.type in ('1','2','3')
|
||||||
|
<if test="definitionIds != null and definitionIds.size()>0">
|
||||||
|
AND t.definition_id in
|
||||||
|
<foreach collection="definitionIds" item="definitionId" separator="," open="(" close=")">
|
||||||
|
#{definitionId}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
) t
|
||||||
|
${ew.getCustomSqlSegment}
|
||||||
|
</select>
|
||||||
|
|
||||||
<select id="getListFinishTask" resultMap="FlowHisTaskResult">
|
<select id="getListFinishTask" resultMap="FlowHisTaskResult">
|
||||||
select * from (
|
select * from (
|
||||||
@ -112,4 +152,84 @@
|
|||||||
) t
|
) t
|
||||||
${ew.getCustomSqlSegment}
|
${ew.getCustomSqlSegment}
|
||||||
</select>
|
</select>
|
||||||
|
<select id="getListFinishDefinitionIdsTask" resultType="org.dromara.workflow.domain.vo.FlowHisTaskVo">
|
||||||
|
select * from (
|
||||||
|
select
|
||||||
|
a.id,
|
||||||
|
a.node_code,
|
||||||
|
a.node_name,
|
||||||
|
a.cooperate_type,
|
||||||
|
a.approver,
|
||||||
|
a.collaborator,
|
||||||
|
a.node_type,
|
||||||
|
a.target_node_code,
|
||||||
|
a.target_node_name,
|
||||||
|
a.definition_id,
|
||||||
|
a.instance_id,
|
||||||
|
a.flow_status flow_task_status,
|
||||||
|
a.message,
|
||||||
|
a.ext,
|
||||||
|
a.create_time,
|
||||||
|
a.update_time,
|
||||||
|
a.tenant_id,
|
||||||
|
a.form_custom,
|
||||||
|
a.form_path,
|
||||||
|
b.flow_status,
|
||||||
|
b.business_id,
|
||||||
|
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
|
||||||
|
left join flow_definition c on a.definition_id = c.id
|
||||||
|
where a.del_flag ='0'
|
||||||
|
and b.del_flag = '0'
|
||||||
|
and c.del_flag = '0'
|
||||||
|
and a.node_type in ('1','3','4')
|
||||||
|
<if test="definitionIds != null and definitionIds.size()>0">
|
||||||
|
AND a.definition_id in
|
||||||
|
<foreach collection="definitionIds" item="definitionId" separator="," open="(" close=")">
|
||||||
|
#{definitionId}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
) t
|
||||||
|
${ew.getCustomSqlSegment}
|
||||||
|
</select>
|
||||||
|
<select id="getTaskCopyDefinitionIdsByPage" resultType="org.dromara.workflow.domain.vo.FlowTaskVo">
|
||||||
|
select * from (
|
||||||
|
select
|
||||||
|
b.id,
|
||||||
|
b.update_time,
|
||||||
|
c.business_id,
|
||||||
|
c.flow_status,
|
||||||
|
c.create_by,
|
||||||
|
a.processed_by,
|
||||||
|
a.create_time,
|
||||||
|
b.form_custom,
|
||||||
|
b.form_path,
|
||||||
|
b.node_name,
|
||||||
|
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
|
||||||
|
left join flow_instance c on b.instance_id = c.id
|
||||||
|
left join flow_definition d on c.definition_id=d.id
|
||||||
|
where a.type = '4'
|
||||||
|
and a.del_flag = '0'
|
||||||
|
and b.del_flag = '0'
|
||||||
|
and d.del_flag = '0'
|
||||||
|
<if test="definitionIds != null and definitionIds.size()>0">
|
||||||
|
AND c.definition_id in
|
||||||
|
<foreach collection="definitionIds" item="definitionId" separator="," open="(" close=")">
|
||||||
|
#{definitionId}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
) t
|
||||||
|
${ew.getCustomSqlSegment}
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
Reference in New Issue
Block a user