Przeglądaj źródła

提交补偿信息的推送、承保信息推送

hxl13994548489 1 rok temu
rodzic
commit
3bb7051fd1

+ 5 - 0
pom.xml

@@ -678,6 +678,11 @@
             <artifactId>sunecm-url-encode-1</artifactId>
             <version>1.0.0</version>
         </dependency>
+        <!--add  by hxl  2024-11-22  mq-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-amqp</artifactId>
+        </dependency>
 
     </dependencies>
 

+ 20 - 12
src/main/java/com/ydtech/modules/order/orderThread/OrderRunnableThread.java

@@ -1,12 +1,20 @@
 package com.ydtech.modules.order.orderThread;
 
 import com.alibaba.fastjson.JSON;
+import com.ydtech.constants.RabbitMqEnum;
 import com.ydtech.modules.order.entity.po.InsOrderPushMsg;
 import com.ydtech.modules.order.entity.vo.PushDataVo;
 import com.ydtech.modules.order.service.InsOrderPushMsgService;
+import org.springframework.amqp.core.Message;
+import org.springframework.amqp.core.MessageProperties;
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
 
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.UUID;
+
+import static org.springframework.amqp.core.MessageProperties.CONTENT_TYPE_TEXT_PLAIN;
 
 /**
  *  @version
@@ -16,17 +24,17 @@ import java.util.Date;
  */
 public class OrderRunnableThread implements Runnable {
 
-    //private RabbitTemplate rabbitTemplate;
+    private RabbitTemplate rabbitTemplate;
 
     private ArrayList<String> message =new ArrayList<>();
 
     private InsOrderPushMsgService insOrderPushMsgService;
 
-   // public OrderRunnableThread(RabbitTemplate rabbitTemplate, ArrayList<String> message, InsOrderPushMsgService insOrderPushMsgService) {
-   //     this.rabbitTemplate = rabbitTemplate;
-   //     this.message = message;
-   //     this.insOrderPushMsgService = insOrderPushMsgService;
-    //}
+    public OrderRunnableThread(RabbitTemplate rabbitTemplate, ArrayList<String> message, InsOrderPushMsgService insOrderPushMsgService) {
+        this.rabbitTemplate = rabbitTemplate;
+        this.message = message;
+        this.insOrderPushMsgService = insOrderPushMsgService;
+    }
 
     public OrderRunnableThread() {
     }
@@ -41,18 +49,18 @@ public class OrderRunnableThread implements Runnable {
         //发送数据
         this.message.forEach(item ->{
             //修改执行相应业务逻辑
-           // MessageProperties messageProperties = new MessageProperties();
-           // messageProperties.setMessageId(UUID.randomUUID().toString());
-           // messageProperties.setContentType(CONTENT_TYPE_TEXT_PLAIN);
-           // messageProperties.setContentEncoding("UTF-8");
-           // Message message_cj = new Message(item.getBytes(StandardCharsets.UTF_8), messageProperties);
+            MessageProperties messageProperties = new MessageProperties();
+            messageProperties.setMessageId(UUID.randomUUID().toString());
+            messageProperties.setContentType(CONTENT_TYPE_TEXT_PLAIN);
+            messageProperties.setContentEncoding("UTF-8");
+            Message message_cj = new Message(item.getBytes(StandardCharsets.UTF_8), messageProperties);
             PushDataVo pushDataVo = JSON.parseObject(item, PushDataVo.class);
             //推送
             InsOrderPushMsg insOrderPushMsg = new InsOrderPushMsg(null, pushDataVo.getInsAreaCompany().getId(), "0", new Date(), pushDataVo.toString());
             try{
                 //更新狀態
                 insOrderPushMsgService.save(insOrderPushMsg);
-                //this.rabbitTemplate.convertAndSend(RabbitMqEnum.ORDER_EXCHANGE.getCode(), RabbitMqEnum.ORDER_ROUTINGKEY.getCode(), message_cj);
+                this.rabbitTemplate.convertAndSend(RabbitMqEnum.ORDER_EXCHANGE.getCode(), RabbitMqEnum.ORDER_ROUTINGKEY.getCode(), message_cj);
             }catch(Exception e){
                 e.getStackTrace();
             }

+ 7 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyServiceImpl.java

@@ -104,6 +104,9 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
     @Autowired
     private InsFeeAuditHistoryService insFeeAuditHistoryService;
 
+    @Autowired
+    private InsOrderPushMsgService  insOrderPushMsgService;
+
     public InsAreaCompanyServiceImpl(@Lazy InsOrdersService insOrdersService, InsOrdersTrackService insOrdersTrackService, SysDeptService sysDeptService) {
         this.insOrdersService = insOrdersService;
         this.insOrdersTrackService = insOrdersTrackService;
@@ -128,6 +131,10 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
     @Transactional
     public void updateCompanyAndOrders(InsAreaCompany insAreaCompany) {
         baseMapper.updateById(insAreaCompany);
+        // add by hxl  2024-11-11  添加推送数据
+        if(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode().equals(insAreaCompany.getOrderstatus())){
+            insOrderPushMsgService.getPushSignInsAreaCompanyList(insAreaCompany.getId());
+        }
         //生成结算
         //判断协议是否为人工还是自动审核
         PtlAgreement ptlAgreement = ptlAgreementService.getById(insAreaCompany.getAgreementId());

+ 10 - 8
src/main/java/com/ydtech/modules/order/service/impl/InsOrderPushMsgServiceImpl.java

@@ -11,12 +11,14 @@ import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.dto.InsTaskImagesDto;
 import com.ydtech.modules.order.entity.po.InsOrderPushMsg;
 import com.ydtech.modules.order.entity.vo.PushDataVo;
+import com.ydtech.modules.order.orderThread.OrderRunnableThread;
 import com.ydtech.modules.order.service.InsAreaCompanyService;
 import com.ydtech.modules.order.service.InsOrderPushMsgService;
 import com.ydtech.modules.order.service.InsOrdersService;
 import com.ydtech.utils.OrderUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -46,8 +48,8 @@ public class InsOrderPushMsgServiceImpl extends ServiceImpl<InsOrderPushMsgMappe
     @Autowired
     private InsTaskImagesMapper insTaskImagesMapper;
 
-    //@Autowired
-    //private RabbitTemplate rabbitTemplate;
+    @Autowired
+    private RabbitTemplate rabbitTemplate;
 
 
     /**
@@ -74,8 +76,8 @@ public class InsOrderPushMsgServiceImpl extends ServiceImpl<InsOrderPushMsgMappe
                     });
                 }
                 if(pushDataList!=null && !pushDataList.isEmpty()){
-                   // Thread thread = new Thread(new OrderRunnableThread(rabbitTemplate, pushDataList,this));
-                    //thread.start();
+                    Thread thread = new Thread(new OrderRunnableThread(rabbitTemplate, pushDataList,this));
+                    thread.start();
                 }
             });
         }
@@ -98,8 +100,8 @@ public class InsOrderPushMsgServiceImpl extends ServiceImpl<InsOrderPushMsgMappe
             });
         }
         if(pushDataList!=null && !pushDataList.isEmpty()){
-            //Thread thread = new Thread(new OrderRunnableThread(rabbitTemplate, pushDataList,this));
-            //thread.start();
+            Thread thread = new Thread(new OrderRunnableThread(rabbitTemplate, pushDataList,this));
+            thread.start();
         }
      }
     /**
@@ -113,8 +115,8 @@ public class InsOrderPushMsgServiceImpl extends ServiceImpl<InsOrderPushMsgMappe
         try{
             ArrayList<String>  pushDataList =new ArrayList<String>();
             pushDataList.add(getPushDataJsonString(item));
-            //Thread thread = new Thread(new OrderRunnableThread(rabbitTemplate, pushDataList,this));
-            //thread.start();
+            Thread thread = new Thread(new OrderRunnableThread(rabbitTemplate, pushDataList,this));
+            thread.start();
         }catch(Exception e){
             log.error(e.getMessage());
         }

+ 42 - 0
src/main/java/com/ydtech/modules/order/timer/UpdateOrderMQTimer.java

@@ -0,0 +1,42 @@
+package com.ydtech.modules.order.timer;
+
+import com.ydtech.modules.order.service.InsOrderPushMsgService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.text.SimpleDateFormat;
+
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/11/22 16:29
+ *  @Description: 推动补偿信息
+ */
+@Slf4j
+@Component
+public class UpdateOrderMQTimer {
+
+    @Autowired
+    private InsOrderPushMsgService insOrderPushMsgService;
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/11/22 16:31
+     *  @Description: 每2小时更新一次补偿消息的推送
+     */
+    @Scheduled(cron = "0 0 */2 * * ?")
+    private void updateOrderDateNoon() {
+        log.info("每2小时更新一次补偿消息的推送,启动时间:{}", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
+        try {
+            insOrderPushMsgService.getPushCompensateInsAreaCompanyList();
+            log.info("每2小时更新一次补偿消息的推送,成功");
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("每2小时更新一次补偿消息的推送,失败:{}", e.getMessage());
+        }
+    }
+}