提交 0a008020 authored 作者: hzh's avatar hzh

代码优化

上级 1a522312
package org.dromara.workflow.flowable.listener;
import cn.hutool.core.collection.CollectionUtil;
import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.utils.SpringUtils;
import org.dromara.common.core.utils.StreamUtils;
import org.dromara.workflow.common.constant.FlowConstant;
import org.dromara.workflow.domain.FileApprove;
import org.dromara.workflow.mapper.FileApproveMapper;
import org.dromara.workflow.service.IDeptService;
import org.flowable.common.engine.api.variable.VariableContainer;
import org.flowable.engine.impl.el.FixedValue;
import org.flowable.task.service.delegate.DelegateTask;
import org.flowable.task.service.delegate.TaskListener;
import org.springframework.stereotype.Component;
import java.util.Objects;
import java.util.List;
/**
* 部门文件下载申请自定义审批人监听器
......@@ -20,8 +26,15 @@ import java.util.Objects;
*/
@Component
@Slf4j
@Getter
@Setter
public class DeptFileApproveAssigneeListener implements TaskListener {
/**
* 角色编码
*/
private FixedValue roleKey;
@Override
public void notify(DelegateTask delegateTask) {
// 获取业务id
......@@ -34,10 +47,15 @@ public class DeptFileApproveAssigneeListener implements TaskListener {
// 调用服务获取审批人列表
Long approveId = deptService.selectLeaderIdByFileId(fa.getSysDeptFileId());
List<Long> roleUserIds = deptService.selectUserListByFileIdAndRoleKey(fa.getSysDeptFileId(), roleKey.getValue(VariableContainer.empty()).toString());
if (approveId != null) {
roleUserIds.add(approveId);
}
if (CollectionUtil.isEmpty(roleUserIds)) {
roleUserIds = List.of(-1L);
}
// 设置候选用户
String owner = Objects.isNull(approveId) ? null : approveId.toString();
delegateTask.setAssignee(owner);
delegateTask.addCandidateUsers(StreamUtils.toList(roleUserIds, Object::toString));
}
}
package org.dromara.workflow.flowable.listener;
import cn.hutool.core.collection.CollectionUtil;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.utils.SpringUtils;
import org.dromara.common.core.utils.StreamUtils;
import org.dromara.workflow.common.constant.FlowConstant;
import org.dromara.workflow.domain.FileApprove;
import org.dromara.workflow.mapper.FileApproveMapper;
import org.dromara.workflow.service.IDeptService;
import org.flowable.task.service.delegate.DelegateTask;
import org.flowable.task.service.delegate.TaskListener;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* 部门文件下载申请自定义审批人监听器
*
* @author wenhe
*/
@Component
@Slf4j
public class DeptFileApproveGroupListener implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
// 获取业务id
Long businessKey = Long.parseLong(delegateTask.getVariable(FlowConstant.BUSINESS_KEY).toString());
FileApproveMapper mapper = SpringUtils.getBean(FileApproveMapper.class);
FileApprove fa = mapper.selectById(businessKey);
IDeptService deptService = SpringUtils.getBean(IDeptService.class);
// 调用服务获取审批人列表
List<Long> userIds = deptService.selectUserListByFileIdAndRoleKey(fa.getSysDeptFileId(), "file_approve");
if (CollectionUtil.isEmpty(userIds)) {
userIds = List.of(-1L);
}
// 设置候选用户
delegateTask.addCandidateUsers(StreamUtils.toList(userIds, Object::toString));
}
}
package org.dromara.workflow.flowable.listener;
import org.flowable.task.service.delegate.DelegateTask;
import org.flowable.task.service.delegate.TaskListener;
/**
* @author wenhe
*/
public class DeptReviewCompleteListener implements TaskListener {
@Override
public void notify(DelegateTask task) {
task.setVariable("end", true);
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论