Bläddra i källkod

优化消息发送人为当前处理人而非发起人问题

fuyuchuan 1 månad sedan
förälder
incheckning
5b6999de13

+ 2 - 3
flow-im/flow-im-entity/src/main/java/com/flow/job/SendUskyJob.java

@@ -2,7 +2,6 @@ package com.flow.job;
 
 import com.flow.entity.Notify;
 import com.flow.entity.User;
-import com.flow.enums.NotifyEnum;
 import com.flow.mapstruct.NotifyRowMapper;
 import dm.jdbc.filter.stat.json.JSONObject;
 import lombok.extern.slf4j.Slf4j;
@@ -48,8 +47,8 @@ public class SendUskyJob {
     @Autowired
     private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
 
-    // 每30秒执行一次
-    @Scheduled(fixedRate = 30000)
+    // 每10秒执行一次
+    @Scheduled(fixedRate = 10000)
     public void executeTask() {
         // 记录任务开始时间
         LocalDateTime startTime = LocalDateTime.now();

+ 2 - 0
flow-system/flow-system-api/src/main/java/com/flow/service/UserService.java

@@ -43,4 +43,6 @@ public interface UserService extends BaseService<User> {
     User getOrgLeader(String username);
 
     User getOrgLeader(String username, Integer level);
+
+    User getUserById(Long userId);
 }

+ 14 - 0
flow-system/flow-system-biz/src/main/java/com/flow/service/impl/UserServiceImpl.java

@@ -184,4 +184,18 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, User> implements U
             return orgLeader;
         }
     }
+
+    /**
+     * 根据用户id获取用户信息
+     *
+     * @param userId
+     * @return
+     */
+    @Override
+    public User getUserById(Long userId) {
+        return userDao.lambdaQueryChain()
+                .eq(User::getId, userId)
+                .oneOpt()
+                .orElseThrow(() -> new BaseException("用户不存在"));
+    }
 }

+ 5 - 6
flow-workflow/flow-workflow-biz/src/main/java/com/flow/listener/GlobalActivityEventListener.java

@@ -3,10 +3,7 @@ package com.flow.listener;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.flow.common.core.util.SecurityContextUtil;
 import com.flow.common.redis.service.RedisService;
-import com.flow.entity.FlowDefine;
-import com.flow.entity.FlowInstance;
-import com.flow.entity.FlowTask;
-import com.flow.entity.Notify;
+import com.flow.entity.*;
 import com.flow.entity.node.Node;
 import com.flow.entity.settings.CancelConfig;
 import com.flow.entity.settings.Settings;
@@ -62,7 +59,7 @@ public class GlobalActivityEventListener extends AbstractFlowableEngineEventList
     private RedisService<String> redisService;
 
     @Autowired
-    private RuntimeService runtimeService;
+    private UserService userService;
 
     // 任务创建监听器
     @Override
@@ -142,12 +139,14 @@ public class GlobalActivityEventListener extends AbstractFlowableEngineEventList
                 String instanceId = entity.getProcessInstanceId();
                 FormInfo form = flowInstanceService.getForm(instanceId);
                 String fromName = form.getFlowDefine().getName();
+                String startUserId = form.getStartUserId();
+                User userByUserId = userService.getUserById(Long.valueOf(startUserId));
 
                 notify.setSubject("新的审批任务" + "-" + fromName);
 
                 // 审批节点
                 notify.setContent(fromName + "-" + entity.getName());
-                notify.setSender(SecurityContextUtil.getUserId());
+                notify.setSender(userByUserId.getUsername());
                 notify.setType(NotifyEnum.TODO);
                 // 接收者 entity.getAssignee() 下一节点的审批人
                 notify.setReceiver(entity.getAssignee());