|
@@ -5,6 +5,7 @@ import com.aizuda.boot.modules.flw.entity.ApprovalContent;
|
|
|
import com.aizuda.boot.modules.flw.entity.FlwProcessApproval;
|
|
|
import com.aizuda.boot.modules.flw.service.IFlwProcessApprovalService;
|
|
|
import com.aizuda.boot.modules.system.entity.enums.BusinessType;
|
|
|
+import com.aizuda.boot.modules.system.service.ISysUserRoleService;
|
|
|
import com.aizuda.bpm.engine.FlowLongEngine;
|
|
|
import com.aizuda.bpm.engine.core.FlowCreator;
|
|
|
import com.aizuda.bpm.engine.core.enums.*;
|
|
@@ -31,6 +32,8 @@ public class FlowTaskListener implements TaskListener {
|
|
|
private FlowLongEngine flowLongEngine;
|
|
|
@Resource
|
|
|
private ApplicationEventPublisher applicationEventPublisher;
|
|
|
+ @Resource
|
|
|
+ private ISysUserRoleService userRoleService;
|
|
|
|
|
|
|
|
|
@Override
|
|
@@ -197,16 +200,23 @@ public class FlowTaskListener implements TaskListener {
|
|
|
public void sendMessage(FlwTask flwTask, FlowCreator flowCreator) {
|
|
|
Optional<List<FlwTaskActor>> taskActorsOptional = flowLongEngine.queryService().getActiveTaskActorsByTaskId(flwTask.getId());
|
|
|
if (taskActorsOptional.isPresent()) {
|
|
|
+ List<FlwTaskActor> flwTaskActors = taskActorsOptional.get();
|
|
|
+ List<Long> actorIds = flwTaskActors.stream().map(t -> Long.valueOf(t.getActorId())).toList();
|
|
|
+ FlwTaskActor fta = flwTaskActors.get(0);
|
|
|
+ if (ActorType.role.eq(fta.getActorType())) {
|
|
|
+ // 流程任务处理者为角色情况,查询对应用户ID列表
|
|
|
+ actorIds = userRoleService.listUserIdsByRoleIds(actorIds);
|
|
|
+ }
|
|
|
// 发送消息
|
|
|
MessageEvent messageEvent = new MessageEvent();
|
|
|
messageEvent.setTitle("待处理任务:" + flwTask.getTaskName());
|
|
|
- messageEvent.setContent(messageEvent.getTitle());
|
|
|
+ messageEvent.setContent(messageEvent.getTitle() + " 发起人:" + flowCreator.getCreateBy());
|
|
|
messageEvent.setCreateId(Long.valueOf(flowCreator.getCreateId()));
|
|
|
messageEvent.setCreateBy(flowCreator.getCreateBy());
|
|
|
messageEvent.setCategory(2);
|
|
|
messageEvent.setBusinessId(flwTask.getId());
|
|
|
messageEvent.setBusinessType(BusinessType.flowTask.name());
|
|
|
- messageEvent.setUserIds(taskActorsOptional.get().stream().map(t -> Long.valueOf(t.getActorId())).toList());
|
|
|
+ messageEvent.setUserIds(actorIds);
|
|
|
applicationEventPublisher.publishEvent(messageEvent);
|
|
|
}
|
|
|
}
|