update 调整修改办理人接口
This commit is contained in:
parent
4ebf18a3a3
commit
97e9c2d7d1
@ -15,6 +15,7 @@ import org.dromara.warm.flow.core.listener.ListenerVariable;
|
|||||||
import org.dromara.warm.flow.orm.entity.FlowTask;
|
import org.dromara.warm.flow.orm.entity.FlowTask;
|
||||||
import org.dromara.warm.flow.orm.mapper.FlowTaskMapper;
|
import org.dromara.warm.flow.orm.mapper.FlowTaskMapper;
|
||||||
import org.dromara.workflow.service.IFlwInstanceService;
|
import org.dromara.workflow.service.IFlwInstanceService;
|
||||||
|
import org.dromara.workflow.service.IFlwTaskService;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -29,7 +30,7 @@ import java.util.List;
|
|||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class WorkflowGlobalListener implements GlobalListener {
|
public class WorkflowGlobalListener implements GlobalListener {
|
||||||
|
|
||||||
private final FlowTaskMapper flowTaskMapper;
|
private final IFlwTaskService iFlwTaskService;
|
||||||
private final IFlwInstanceService flwInstanceService;
|
private final IFlwInstanceService flwInstanceService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -42,8 +43,7 @@ public class WorkflowGlobalListener implements GlobalListener {
|
|||||||
publishProcessEvent(flowParams.getFlowStatus(), definition.getFlowCode(), instance.getBusinessId());
|
publishProcessEvent(flowParams.getFlowStatus(), definition.getFlowCode(), instance.getBusinessId());
|
||||||
log.info("流程监听器流程状态:{}", flowParams.getFlowStatus());
|
log.info("流程监听器流程状态:{}", flowParams.getFlowStatus());
|
||||||
}
|
}
|
||||||
List<FlowTask> flowTasks = flowTaskMapper.selectList(new LambdaQueryWrapper<>(FlowTask.class)
|
List<FlowTask> flowTasks = iFlwTaskService.selectByInstId(instance.getId());
|
||||||
.eq(FlowTask::getInstanceId, instance.getId()));
|
|
||||||
if (CollUtil.isEmpty(flowTasks)) {
|
if (CollUtil.isEmpty(flowTasks)) {
|
||||||
// 若流程已结束,更新状态为已完成并发送完成事件
|
// 若流程已结束,更新状态为已完成并发送完成事件
|
||||||
flwInstanceService.updateStatus(instance.getId(), BusinessStatusEnum.FINISH.getStatus());
|
flwInstanceService.updateStatus(instance.getId(), BusinessStatusEnum.FINISH.getStatus());
|
||||||
|
@ -23,7 +23,6 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|||||||
import org.dromara.common.satoken.utils.LoginHelper;
|
import org.dromara.common.satoken.utils.LoginHelper;
|
||||||
import org.dromara.warm.flow.core.dto.FlowParams;
|
import org.dromara.warm.flow.core.dto.FlowParams;
|
||||||
import org.dromara.warm.flow.core.entity.*;
|
import org.dromara.warm.flow.core.entity.*;
|
||||||
import org.dromara.warm.flow.core.enums.CooperateType;
|
|
||||||
import org.dromara.warm.flow.core.enums.NodeType;
|
import org.dromara.warm.flow.core.enums.NodeType;
|
||||||
import org.dromara.warm.flow.core.enums.SkipType;
|
import org.dromara.warm.flow.core.enums.SkipType;
|
||||||
import org.dromara.warm.flow.core.enums.UserType;
|
import org.dromara.warm.flow.core.enums.UserType;
|
||||||
@ -187,8 +186,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService, AssigneeService {
|
|||||||
//添加抄送人
|
//添加抄送人
|
||||||
setCopy(task, wfCopyList);
|
setCopy(task, wfCopyList);
|
||||||
// 根据流程实例ID查询所有关联的任务
|
// 根据流程实例ID查询所有关联的任务
|
||||||
List<FlowTask> flowTasks = flowTaskMapper.selectList(new LambdaQueryWrapper<>(FlowTask.class)
|
List<FlowTask> flowTasks = selectByInstId(instance.getId());
|
||||||
.eq(FlowTask::getInstanceId, instance.getId()));
|
|
||||||
List<User> userList = new ArrayList<>();
|
List<User> userList = new ArrayList<>();
|
||||||
// 遍历任务列表,处理每个任务的办理人
|
// 遍历任务列表,处理每个任务的办理人
|
||||||
for (FlowTask flowTask : flowTasks) {
|
for (FlowTask flowTask : flowTasks) {
|
||||||
@ -568,18 +566,18 @@ public class FlwTaskServiceImpl implements IFlwTaskService, AssigneeService {
|
|||||||
// 批量删除现有任务的办理人记录
|
// 批量删除现有任务的办理人记录
|
||||||
if (CollUtil.isNotEmpty(flowTasks)) {
|
if (CollUtil.isNotEmpty(flowTasks)) {
|
||||||
userService.deleteByTaskIds(StreamUtils.toList(flowTasks, FlowTask::getId));
|
userService.deleteByTaskIds(StreamUtils.toList(flowTasks, FlowTask::getId));
|
||||||
}
|
List<User> userList = flowTasks.stream()
|
||||||
List<User> userList = flowTasks.stream()
|
.map(flowTask -> {
|
||||||
.map(flowTask -> {
|
FlowUser flowUser = new FlowUser();
|
||||||
FlowUser flowUser = new FlowUser();
|
flowUser.setType(UserType.APPROVAL.getKey());
|
||||||
flowUser.setType(UserType.APPROVAL.getKey());
|
flowUser.setProcessedBy(userId);
|
||||||
flowUser.setProcessedBy(userId);
|
flowUser.setAssociated(flowTask.getId());
|
||||||
flowUser.setAssociated(flowTask.getId());
|
return flowUser;
|
||||||
return flowUser;
|
})
|
||||||
})
|
.collect(Collectors.toList());
|
||||||
.collect(Collectors.toList());
|
if (CollUtil.isNotEmpty(userList)) {
|
||||||
if (CollUtil.isNotEmpty(userList)) {
|
userService.saveBatch(userList);
|
||||||
userService.saveBatch(userList);
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(e.getMessage(), e);
|
log.error(e.getMessage(), e);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user