添加已办,未办
This commit is contained in:
parent
f18bbd898b
commit
281c9c0e8e
@ -95,6 +95,29 @@ public class FlwTaskController extends BaseController {
|
|||||||
return flwTaskService.getPageByTaskFinish(flowTaskBo, pageQuery);
|
return flwTaskService.getPageByTaskFinish(flowTaskBo, pageQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询待办任务
|
||||||
|
*
|
||||||
|
* @param flowTaskBo 参数
|
||||||
|
* @param pageQuery 分页
|
||||||
|
*/
|
||||||
|
@GetMapping("/getPageByAllTaskWait")
|
||||||
|
public TableDataInfo<FlowTaskVo> getPageByAllTaskWait(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
|
||||||
|
return flwTaskService.getPageByAllTaskWait(flowTaskBo, pageQuery);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询已办任务
|
||||||
|
*
|
||||||
|
* @param flowTaskBo 参数
|
||||||
|
* @param pageQuery 分页
|
||||||
|
*/
|
||||||
|
|
||||||
|
@GetMapping("/getPageByAllTaskFinish")
|
||||||
|
public TableDataInfo<FlowHisTaskVo> getPageByAllTaskFinish(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
|
||||||
|
return flwTaskService.getPageByAllTaskFinish(flowTaskBo, pageQuery);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询当前用户的抄送
|
* 查询当前用户的抄送
|
||||||
*
|
*
|
||||||
|
@ -102,6 +102,12 @@ public class FlowHisTaskVo implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private String approver;
|
private String approver;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审批者
|
||||||
|
*/
|
||||||
|
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "approver")
|
||||||
|
private String approveName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 协作人(只有转办、会签、票签、委派)
|
* 协作人(只有转办、会签、票签、委派)
|
||||||
*/
|
*/
|
||||||
@ -122,6 +128,11 @@ public class FlowHisTaskVo implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private Integer flowStatus;
|
private Integer flowStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 流程状态
|
||||||
|
*/
|
||||||
|
private String flowStatusName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 审批意见
|
* 审批意见
|
||||||
*/
|
*/
|
||||||
@ -152,10 +163,4 @@ public class FlowHisTaskVo implements Serializable {
|
|||||||
* 流程定义编码
|
* 流程定义编码
|
||||||
*/
|
*/
|
||||||
private String flowCode;
|
private String flowCode;
|
||||||
|
|
||||||
/**
|
|
||||||
* 审批者
|
|
||||||
*/
|
|
||||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "approver")
|
|
||||||
private String approverName;
|
|
||||||
}
|
}
|
||||||
|
@ -32,12 +32,10 @@ public interface FlwTaskMapper {
|
|||||||
*
|
*
|
||||||
* @param page 分页
|
* @param page 分页
|
||||||
* @param queryWrapper 条件
|
* @param queryWrapper 条件
|
||||||
* @param flowTaskBo 条件
|
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
Page<FlowHisTaskVo> getTaskFinishByPage(@Param("page") Page<FlowTaskVo> page,
|
Page<FlowHisTaskVo> getTaskFinishByPage(@Param("page") Page<FlowTaskVo> page,
|
||||||
@Param(Constants.WRAPPER) Wrapper<FlowTaskBo> queryWrapper,
|
@Param(Constants.WRAPPER) Wrapper<FlowTaskBo> queryWrapper);
|
||||||
@Param("flowTaskBo") FlowTaskBo flowTaskBo);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询当前用户的抄送
|
* 查询当前用户的抄送
|
||||||
|
@ -49,6 +49,26 @@ public interface IFlwTaskService {
|
|||||||
*/
|
*/
|
||||||
TableDataInfo<FlowHisTaskVo> getPageByTaskFinish(FlowTaskBo flowTaskBo, PageQuery pageQuery);
|
TableDataInfo<FlowHisTaskVo> getPageByTaskFinish(FlowTaskBo flowTaskBo, PageQuery pageQuery);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询待办任务
|
||||||
|
*
|
||||||
|
* @param flowTaskBo 参数
|
||||||
|
* @param pageQuery 分页
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
TableDataInfo<FlowTaskVo> getPageByAllTaskWait(FlowTaskBo flowTaskBo, PageQuery pageQuery);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询已办任务
|
||||||
|
*
|
||||||
|
* @param flowTaskBo 参数
|
||||||
|
* @param pageQuery 分页
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
TableDataInfo<FlowHisTaskVo> getPageByAllTaskFinish(FlowTaskBo flowTaskBo, PageQuery pageQuery);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询当前用户的抄送
|
* 查询当前用户的抄送
|
||||||
*
|
*
|
||||||
|
@ -172,7 +172,6 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
|
|||||||
@Override
|
@Override
|
||||||
public TableDataInfo<FlowInstanceVo> getPageByCurrent(InstanceBo instanceBo, PageQuery pageQuery) {
|
public TableDataInfo<FlowInstanceVo> getPageByCurrent(InstanceBo instanceBo, PageQuery pageQuery) {
|
||||||
LambdaQueryWrapper<FlowInstance> wrapper = Wrappers.lambdaQuery();
|
LambdaQueryWrapper<FlowInstance> wrapper = Wrappers.lambdaQuery();
|
||||||
|
|
||||||
if (StringUtils.isNotBlank(instanceBo.getFlowCode())) {
|
if (StringUtils.isNotBlank(instanceBo.getFlowCode())) {
|
||||||
List<FlowDefinition> flowDefinitions = flowDefinitionMapper.selectList(
|
List<FlowDefinition> flowDefinitions = flowDefinitionMapper.selectList(
|
||||||
new LambdaQueryWrapper<FlowDefinition>().eq(FlowDefinition::getFlowCode, instanceBo.getFlowCode()));
|
new LambdaQueryWrapper<FlowDefinition>().eq(FlowDefinition::getFlowCode, instanceBo.getFlowCode()));
|
||||||
|
@ -7,6 +7,8 @@ import com.warm.flow.core.dto.FlowParams;
|
|||||||
import com.warm.flow.core.entity.Instance;
|
import com.warm.flow.core.entity.Instance;
|
||||||
import com.warm.flow.core.entity.Task;
|
import com.warm.flow.core.entity.Task;
|
||||||
import com.warm.flow.core.entity.User;
|
import com.warm.flow.core.entity.User;
|
||||||
|
import com.warm.flow.core.enums.FlowStatus;
|
||||||
|
import com.warm.flow.core.enums.NodeType;
|
||||||
import com.warm.flow.core.enums.SkipType;
|
import com.warm.flow.core.enums.SkipType;
|
||||||
import com.warm.flow.core.service.InsService;
|
import com.warm.flow.core.service.InsService;
|
||||||
import com.warm.flow.core.service.TaskService;
|
import com.warm.flow.core.service.TaskService;
|
||||||
@ -135,21 +137,10 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public TableDataInfo<FlowTaskVo> getPageByTaskWait(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
|
public TableDataInfo<FlowTaskVo> getPageByTaskWait(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
|
||||||
QueryWrapper<FlowTaskBo> queryWrapper = getFlowTaskBoQueryWrapper(flowTaskBo);
|
QueryWrapper<FlowTaskBo> queryWrapper = new QueryWrapper<>();
|
||||||
queryWrapper.in("t.processed_by", WorkflowUtils.permissionList());
|
queryWrapper.in("t.processed_by", WorkflowUtils.permissionList());
|
||||||
Page<FlowTaskVo> page = flwTaskMapper.getTaskWaitByPage(pageQuery.build(), queryWrapper);
|
queryWrapper.in("t.flow_status", FlowStatus.APPROVAL.getKey());
|
||||||
List<FlowTaskVo> records = page.getRecords();
|
Page<FlowTaskVo> page = buildTaskWaitingPage(pageQuery, queryWrapper, flowTaskBo);
|
||||||
if (CollUtil.isNotEmpty(records)) {
|
|
||||||
List<Long> taskIds = StreamUtils.toList(records, FlowTaskVo::getId);
|
|
||||||
List<User> userList = userService.getByAssociateds(taskIds);
|
|
||||||
for (FlowTaskVo record : records) {
|
|
||||||
if (CollUtil.isNotEmpty(userList)) {
|
|
||||||
List<User> users = StreamUtils.filter(userList, e -> e.getAssociated().toString().equals(record.getId().toString()));
|
|
||||||
record.setUserList(CollUtil.isEmpty(users) ? Collections.emptyList() : users);
|
|
||||||
record.setUserDTOList(WorkflowUtils.getHandlerUser(users));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return TableDataInfo.build(page);
|
return TableDataInfo.build(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -161,12 +152,83 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public TableDataInfo<FlowHisTaskVo> getPageByTaskFinish(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
|
public TableDataInfo<FlowHisTaskVo> getPageByTaskFinish(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
|
||||||
QueryWrapper<FlowTaskBo> queryWrapper = getFlowTaskBoQueryWrapper(flowTaskBo);
|
QueryWrapper<FlowTaskBo> queryWrapper = new QueryWrapper<>();
|
||||||
flowTaskBo.setPermissionList(WorkflowUtils.permissionList());
|
queryWrapper.in("t.approver", LoginHelper.getUserId());
|
||||||
Page<FlowHisTaskVo> page = flwTaskMapper.getTaskFinishByPage(pageQuery.build(), queryWrapper, flowTaskBo);
|
Page<FlowHisTaskVo> page = buildTaskFinishPage(pageQuery, queryWrapper, flowTaskBo);
|
||||||
return TableDataInfo.build(page);
|
return TableDataInfo.build(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询待办任务
|
||||||
|
*
|
||||||
|
* @param flowTaskBo 参数
|
||||||
|
* @param pageQuery 分页
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public TableDataInfo<FlowTaskVo> getPageByAllTaskWait(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
|
||||||
|
QueryWrapper<FlowTaskBo> queryWrapper = new QueryWrapper<>();
|
||||||
|
queryWrapper.in("t.processed_by", WorkflowUtils.permissionList());
|
||||||
|
Page<FlowTaskVo> page = buildTaskWaitingPage(pageQuery, queryWrapper, flowTaskBo);
|
||||||
|
return TableDataInfo.build(page);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Page<FlowTaskVo> buildTaskWaitingPage(PageQuery pageQuery, QueryWrapper<FlowTaskBo> queryWrapper, FlowTaskBo flowTaskBo) {
|
||||||
|
commonCondition(queryWrapper, flowTaskBo);
|
||||||
|
Page<FlowTaskVo> page = flwTaskMapper.getTaskWaitByPage(pageQuery.build(), queryWrapper);
|
||||||
|
List<FlowTaskVo> records = page.getRecords();
|
||||||
|
if (CollUtil.isNotEmpty(records)) {
|
||||||
|
List<Long> taskIds = StreamUtils.toList(records, FlowTaskVo::getId);
|
||||||
|
List<User> userList = userService.getByAssociateds(taskIds);
|
||||||
|
for (FlowTaskVo data : records) {
|
||||||
|
if (CollUtil.isNotEmpty(userList)) {
|
||||||
|
List<User> users = StreamUtils.filter(userList, e -> e.getAssociated().toString().equals(data.getId().toString()));
|
||||||
|
data.setUserList(CollUtil.isEmpty(users) ? Collections.emptyList() : users);
|
||||||
|
data.setUserDTOList(WorkflowUtils.getHandlerUser(users));
|
||||||
|
}
|
||||||
|
data.setFlowStatusName(FlowStatus.getValueByKey(data.getFlowStatus()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return page;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通用条件
|
||||||
|
*
|
||||||
|
* @param queryWrapper 查询条件
|
||||||
|
* @param flowTaskBo 参数
|
||||||
|
*/
|
||||||
|
private void commonCondition(QueryWrapper<FlowTaskBo> queryWrapper, FlowTaskBo flowTaskBo) {
|
||||||
|
queryWrapper.like(StringUtils.isNotBlank(flowTaskBo.getNodeName()), "t.node_name", flowTaskBo.getNodeName());
|
||||||
|
queryWrapper.like(StringUtils.isNotBlank(flowTaskBo.getFlowName()), "t.flow_name", flowTaskBo.getFlowName());
|
||||||
|
queryWrapper.eq(StringUtils.isNotBlank(flowTaskBo.getFlowCode()), "t.flow_code", flowTaskBo.getFlowCode());
|
||||||
|
queryWrapper.eq("t.node_type", NodeType.BETWEEN.getKey());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询已办任务
|
||||||
|
*
|
||||||
|
* @param flowTaskBo 参数
|
||||||
|
* @param pageQuery 分页
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public TableDataInfo<FlowHisTaskVo> getPageByAllTaskFinish(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
|
||||||
|
QueryWrapper<FlowTaskBo> queryWrapper = new QueryWrapper<>();
|
||||||
|
Page<FlowHisTaskVo> page = buildTaskFinishPage(pageQuery, queryWrapper, flowTaskBo);
|
||||||
|
return TableDataInfo.build(page);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Page<FlowHisTaskVo> buildTaskFinishPage(PageQuery pageQuery, QueryWrapper<FlowTaskBo> queryWrapper, FlowTaskBo flowTaskBo) {
|
||||||
|
commonCondition(queryWrapper, flowTaskBo);
|
||||||
|
Page<FlowHisTaskVo> page = flwTaskMapper.getTaskFinishByPage(pageQuery.build(), queryWrapper);
|
||||||
|
List<FlowHisTaskVo> records = page.getRecords();
|
||||||
|
if (CollUtil.isNotEmpty(records)) {
|
||||||
|
for (FlowHisTaskVo data : records) {
|
||||||
|
data.setFlowStatusName(FlowStatus.getValueByKey(data.getFlowStatus()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return page;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询当前用户的抄送
|
* 查询当前用户的抄送
|
||||||
*
|
*
|
||||||
@ -175,24 +237,12 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public TableDataInfo<FlowTaskVo> getPageByTaskCopy(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
|
public TableDataInfo<FlowTaskVo> getPageByTaskCopy(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
|
||||||
QueryWrapper<FlowTaskBo> queryWrapper = getFlowTaskBoQueryWrapper(flowTaskBo);
|
|
||||||
flowTaskBo.setPermissionList(WorkflowUtils.permissionList());
|
|
||||||
Page<FlowTaskVo> page = flwTaskMapper.getTaskCopyByPage(pageQuery.build(), queryWrapper);
|
|
||||||
return TableDataInfo.build(page);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询参数
|
|
||||||
*
|
|
||||||
* @param flowTaskBo 参数
|
|
||||||
*/
|
|
||||||
private QueryWrapper<FlowTaskBo> getFlowTaskBoQueryWrapper(FlowTaskBo flowTaskBo) {
|
|
||||||
QueryWrapper<FlowTaskBo> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<FlowTaskBo> queryWrapper = new QueryWrapper<>();
|
||||||
queryWrapper.like(StringUtils.isNotBlank(flowTaskBo.getNodeName()), "t.node_name", flowTaskBo.getNodeName());
|
queryWrapper.like(StringUtils.isNotBlank(flowTaskBo.getNodeName()), "t.node_name", flowTaskBo.getNodeName());
|
||||||
queryWrapper.like(StringUtils.isNotBlank(flowTaskBo.getFlowName()), "t.flow_name", flowTaskBo.getFlowName());
|
queryWrapper.like(StringUtils.isNotBlank(flowTaskBo.getFlowName()), "t.flow_name", flowTaskBo.getFlowName());
|
||||||
queryWrapper.eq(StringUtils.isNotBlank(flowTaskBo.getFlowCode()), "t.flow_code", flowTaskBo.getFlowCode());
|
queryWrapper.eq(StringUtils.isNotBlank(flowTaskBo.getFlowCode()), "t.flow_code", flowTaskBo.getFlowCode());
|
||||||
return queryWrapper;
|
Page<FlowTaskVo> page = flwTaskMapper.getTaskCopyByPage(pageQuery.build(), queryWrapper);
|
||||||
|
return TableDataInfo.build(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -67,54 +67,38 @@
|
|||||||
FROM flow_task AS t
|
FROM flow_task AS t
|
||||||
LEFT JOIN flow_user uu ON uu.associated = t.id
|
LEFT JOIN flow_user uu ON uu.associated = t.id
|
||||||
LEFT JOIN flow_definition d on t.definition_id = d.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 i.flow_status = '1' and t.del_flag = '0') t
|
LEFT JOIN flow_instance i on t.instance_id = i.id where t.node_type = 1 and t.del_flag = '0') t
|
||||||
${ew.getCustomSqlSegment}
|
${ew.getCustomSqlSegment}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getTaskFinishByPage" resultMap="FlowHisTaskResult">
|
<select id="getTaskFinishByPage" resultMap="FlowHisTaskResult">
|
||||||
select * from (
|
select * from (
|
||||||
select
|
select
|
||||||
t.id,
|
a.id,
|
||||||
t.node_code,
|
a.node_code,
|
||||||
t.node_name,
|
a.node_name,
|
||||||
t.cooperate_type,
|
a.cooperate_type,
|
||||||
t.approver,
|
a.approver,
|
||||||
t.collaborator,
|
a.collaborator,
|
||||||
t.node_type,
|
a.node_type,
|
||||||
t.target_node_code,
|
a.target_node_code,
|
||||||
t.target_node_name,
|
a.target_node_name,
|
||||||
t.definition_id,
|
a.definition_id,
|
||||||
t.instance_id,
|
a.instance_id,
|
||||||
i.flow_status,
|
a.flow_status,
|
||||||
t.message,
|
a.message,
|
||||||
t.ext,
|
a.ext,
|
||||||
t.create_time,
|
a.create_time,
|
||||||
t.update_time,
|
a.update_time,
|
||||||
t.tenant_id,
|
a.tenant_id,
|
||||||
i.business_id,
|
b.business_id,
|
||||||
d.form_path fromPath,
|
c.form_path fromPath,
|
||||||
d.flow_name,
|
c.flow_name,
|
||||||
d.flow_code
|
c.flow_code
|
||||||
from ( SELECT MAX(id) as id
|
from flow_his_task a
|
||||||
FROM flow_his_task
|
LEFT JOIN flow_instance b on a.instance_id = b.id
|
||||||
<where>
|
LEFT JOIN flow_definition c on a.definition_id = c.id
|
||||||
flow_status <![CDATA[<> '10']]> and node_type = 1
|
) t ${ew.getCustomSqlSegment}
|
||||||
<if test="flowTaskBo.permissionList != null and flowTaskBo.permissionList.size > 0">
|
|
||||||
AND approver in
|
|
||||||
<foreach item="permission" collection="flowTaskBo.permissionList" open="(" separator="," close=")">
|
|
||||||
#{permission}
|
|
||||||
</foreach>
|
|
||||||
</if>
|
|
||||||
<if test="flowTaskBo.nodeName != null and flowTaskBo.nodeName != ''">and node_name like concat('%',
|
|
||||||
#{flowTaskBo.nodeName}, '%')
|
|
||||||
</if>
|
|
||||||
<if test="flowTaskBo.instanceId != null ">and instance_id = #{flowTaskBo.instanceId}</if>
|
|
||||||
</where>
|
|
||||||
GROUP BY instance_id ) tmp
|
|
||||||
LEFT JOIN flow_his_task t ON t.id = tmp.id
|
|
||||||
LEFT JOIN flow_definition d on t.definition_id = d.id
|
|
||||||
LEFT JOIN flow_instance i on t.instance_id = i.id
|
|
||||||
order by t.create_time desc ) t ${ew.getCustomSqlSegment}
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getTaskCopyByPage" resultMap="FlowTaskResult">
|
<select id="getTaskCopyByPage" resultMap="FlowTaskResult">
|
||||||
|
Loading…
x
Reference in New Issue
Block a user