ソースを参照

add
自动发送数据

lifang 2 ヶ月 前
コミット
8728b377b0

+ 41 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/config/listener/ReasearchQueueMpMsgPushListener.java

@@ -0,0 +1,41 @@
+package cn.tr.module.smart.common.config.listener;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.tr.core.annotation.TenantIgnore;
+import cn.tr.module.smart.common.enums.ClinicPhaseEnums;
+import cn.tr.module.smart.common.enums.RabbitMQConstant;
+import cn.tr.module.smart.common.po.BizMpPublishTaskPO;
+import cn.tr.module.smart.common.repository.BizClinicRoomRepository;
+import cn.tr.module.smart.common.repository.BizMpPublishTaskRepository;
+import cn.tr.module.smart.common.service.IBizReasearchQueueClinicService;
+import cn.tr.module.smart.wx.config.WxTemplateSendHelper;
+import cn.tr.module.smart.wx.dto.BizMpPublishInfoDTO;
+import cn.tr.plugin.security.bo.UserLoginInfoBO;
+import cn.tr.plugin.security.context.LoginUserContextHolder;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
+import org.springframework.stereotype.Service;
+
+import java.util.Objects;
+
+/**
+ * 公众号消息推送
+ */
+@Slf4j
+@Service
+@AllArgsConstructor
+public class ReasearchQueueMpMsgPushListener {
+    private final IBizReasearchQueueClinicService reasearchQueueClinicService;
+    /**
+     * 定时推送问卷
+     * @param reasearchQueueClinicId 研究队列中的id
+     */
+    @RabbitListener(queues = RabbitMQConstant.QUEUE_REASEARCH_PUSH)
+    @TenantIgnore
+    public void mpPush(String reasearchQueueClinicId) {
+        reasearchQueueClinicService.pushReasearchQueueQuestion(reasearchQueueClinicId);
+    }
+}

+ 0 - 1
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/controller/BizReasearchQueueController.java

@@ -22,7 +22,6 @@ import cn.tr.module.smart.common.dto.BizReasearchQueueQueryDTO;
 import java.util.*;
 import cn.tr.plugin.mybatis.base.BaseController;
 import org.springframework.web.bind.annotation.*;
-import cn.tr.module.api.sys.log.annotation.OperateLog;
 import cn.tr.core.pojo.TableDataInfo;
 /**
  * 研究队列控制器

+ 14 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/enums/ReasearchQueueStatusEnums.java

@@ -0,0 +1,14 @@
+package cn.tr.module.smart.common.enums;
+
+public interface ReasearchQueueStatusEnums {
+
+    /**
+     * 队列运行中
+     */
+    String QUEUE_RUNNING="queue_running";
+
+    /**
+     * 队列暂停中
+     */
+    String QUEUE_PAUSE="queue_pause";
+}

+ 16 - 1
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizReasearchQueueClinicServiceImpl.java

@@ -12,6 +12,7 @@ import cn.tr.module.smart.common.dto.BizReasearchQueueAddClinicDTO;
 import cn.tr.module.smart.common.dto.BizReasearchQueueClinicQuestionAnswerRecordQueryDTO;
 import cn.tr.module.smart.common.enums.MpPublishTaskTypeEnums;
 import cn.tr.module.smart.common.enums.RabbitMQConstant;
+import cn.tr.module.smart.common.enums.ReasearchQueueStatusEnums;
 import cn.tr.module.smart.common.mapper.BizQuestionAnswerMapper;
 import cn.tr.module.smart.common.po.*;
 import cn.tr.module.smart.common.repository.*;
@@ -100,7 +101,17 @@ public class BizReasearchQueueClinicServiceImpl extends ServiceImpl<BizReasearch
                 .setSql("queue_count = queue_count + 1")
                 .in(BizClinicRoomPO::getId,clinicIds));
         this.saveBatch(insertBatch);
-        //todo 运行任务
+        insertBatch.parallelStream().forEach(queueClinicPO -> {
+            rabbitTemplate.convertAndSend(
+                    RabbitMQConstant.TOPIC_EXCHANGE_MP_NAME,
+                    RabbitMQConstant.ROUTING_KEY_MP_PUSH,
+                    queueClinicPO.getId(),
+                    message -> {
+                        message.getMessageProperties().getHeaders().put("x-delay", 3);
+                        return message;
+                    }
+            );
+        });
         return Boolean.TRUE;
     };
 
@@ -146,6 +157,10 @@ public class BizReasearchQueueClinicServiceImpl extends ServiceImpl<BizReasearch
             log.warn("未找到对应的研究队列信息,ID: {}", id);
             return;
         }
+        if (StrUtil.equals(ReasearchQueueStatusEnums.QUEUE_PAUSE, reasearchQueuePushVO.getStatus())) {
+            log.debug("研究队列已暂停,reasearchQueueId: {}", id);
+            return;
+        }
         // 获取当前时间和手术结束时间
         Date now = new Date();
         Date clinicEndTime = reasearchQueuePushVO.getClinicEndTime();