Commit 626c40ad94916e91d32446935c54966f0984b2de

Authored by lvqi
1 parent b80e0bc9

feat(adopt): 引入消息接收与转换模块

tax-adopt/src/main/java/com/diligrp/tax/adopt/AdoptConfig.java 0 → 100644
  1 +package com.diligrp.tax.adopt;
  2 +
  3 +import org.springframework.context.annotation.ComponentScan;
  4 +import org.springframework.context.annotation.Configuration;
  5 +
  6 +/**
  7 + * @author lvqi
  8 + */
  9 +@Configuration
  10 +@ComponentScan(basePackages = "com.diligrp.tax.adopt")
  11 +public class AdoptConfig {
  12 +}
tax-adopt/src/main/java/com/diligrp/tax/adopt/api/AdoptMessageController.java 0 → 100644
  1 +package com.diligrp.tax.adopt.api;
  2 +
  3 +import com.diligrp.tax.adopt.model.ReceiveMessageCO;
  4 +import com.diligrp.tax.adopt.service.AdoptMessageService;
  5 +import com.diligrp.tax.central.message.Message;
  6 +import lombok.AllArgsConstructor;
  7 +import org.springframework.web.bind.annotation.PostMapping;
  8 +import org.springframework.web.bind.annotation.RequestBody;
  9 +import org.springframework.web.bind.annotation.RequestMapping;
  10 +import org.springframework.web.bind.annotation.RestController;
  11 +
  12 +/**
  13 + * @author lvqi
  14 + */
  15 +@RestController
  16 +@RequestMapping("/tax/tenant/adopt")
  17 +@AllArgsConstructor
  18 +public class AdoptMessageController {
  19 +
  20 + private final AdoptMessageService adoptMessageService;
  21 +
  22 +
  23 + @PostMapping("/message")
  24 + public Message<?> receiveMessage(@RequestBody ReceiveMessageCO receiveMessageCO) {
  25 + adoptMessageService.convertMessage(receiveMessageCO);
  26 + return Message.success();
  27 + }
  28 +}
tax-adopt/src/main/java/com/diligrp/tax/adopt/model/ReceiveMessageCO.java
1 package com.diligrp.tax.adopt.model; 1 package com.diligrp.tax.adopt.model;
2 2
  3 +import lombok.Data;
  4 +
3 import java.util.Map; 5 import java.util.Map;
4 6
5 /** 7 /**
6 * @author lvqi 8 * @author lvqi
7 */ 9 */
8 - 10 +@Data
9 public class ReceiveMessageCO { 11 public class ReceiveMessageCO {
10 12
11 /** 13 /**
@@ -24,6 +26,8 @@ public class ReceiveMessageCO { @@ -24,6 +26,8 @@ public class ReceiveMessageCO {
24 * 租户账套编码 26 * 租户账套编码
25 */ 27 */
26 private String pipelineCode; 28 private String pipelineCode;
  29 +
  30 + private String businessCode;
27 /** 31 /**
28 * 消息信息 32 * 消息信息
29 */ 33 */
tax-adopt/src/main/java/com/diligrp/tax/adopt/service/AdoptMessageService.java 0 → 100644
  1 +package com.diligrp.tax.adopt.service;
  2 +
  3 +import com.diligrp.tax.adopt.model.ReceiveMessageCO;
  4 +
  5 +/**
  6 + * @author lvqi
  7 + */
  8 +public interface AdoptMessageService {
  9 +
  10 + void convertMessage(ReceiveMessageCO receiveMessageCO);
  11 +}
tax-adopt/src/main/java/com/diligrp/tax/adopt/service/impl/AdoptMessageServiceImpl.java 0 → 100644
  1 +package com.diligrp.tax.adopt.service.impl;
  2 +
  3 +import com.diligrp.tax.adopt.model.ReceiveMessageCO;
  4 +import com.diligrp.tax.adopt.service.AdoptMessageService;
  5 +import com.diligrp.tax.central.exception.TaxAgentServiceException;
  6 +import com.diligrp.tax.central.model.PipelineBusinessKeyword;
  7 +import com.diligrp.tax.central.service.ITaxPipelineBusinessKeywordService;
  8 +import com.diligrp.tax.central.utils.AdoptUtils;
  9 +import com.diligrp.tax.central.utils.JsonUtils;
  10 +import lombok.AllArgsConstructor;
  11 +import org.springframework.amqp.rabbit.core.RabbitTemplate;
  12 +import org.springframework.stereotype.Service;
  13 +import org.springframework.util.CollectionUtils;
  14 +
  15 +import java.util.List;
  16 +import java.util.Map;
  17 +
  18 +import static com.diligrp.tax.central.queue.TaxAutoPush.NORMAL_EXCHANGE;
  19 +import static com.diligrp.tax.central.queue.TaxAutoPush.NORMAL_ROUTING;
  20 +
  21 +/**
  22 + * @author lvqi
  23 + */
  24 +@Service
  25 +@AllArgsConstructor
  26 +public class AdoptMessageServiceImpl implements AdoptMessageService {
  27 +
  28 + private final ITaxPipelineBusinessKeywordService taxPipelineBusinessKeywordService;
  29 + private final RabbitTemplate rabbitTemplate;
  30 +
  31 + @Override
  32 + public void convertMessage(ReceiveMessageCO receiveMessageCO) {
  33 + // 查询配置信息
  34 + List<PipelineBusinessKeyword> pipelineBusinessKeywords = taxPipelineBusinessKeywordService.queryByTenantAndPipelineAndBusiness(receiveMessageCO.getGroup(),
  35 + receiveMessageCO.getEntity(), receiveMessageCO.getPipelineCode(), receiveMessageCO.getBusinessCode());
  36 + if (CollectionUtils.isEmpty(pipelineBusinessKeywords)) {
  37 + throw new TaxAgentServiceException("未找到配置信息");
  38 + }
  39 + Map<String, Object> msgBody = receiveMessageCO.getMsgBody();
  40 + String json = JsonUtils.toJsonString(msgBody);
  41 + Map<String, Object> map = AdoptUtils.handleAdopt(pipelineBusinessKeywords, json);
  42 + receiveMessageCO.setMsgBody(map);
  43 + // 发送mq
  44 + String messageJson = JsonUtils.toJsonString(receiveMessageCO);
  45 + rabbitTemplate.convertAndSend(NORMAL_EXCHANGE, NORMAL_ROUTING, messageJson);
  46 + }
  47 +}
tax-boot/pom.xml
@@ -26,6 +26,11 @@ @@ -26,6 +26,11 @@
26 </dependency> 26 </dependency>
27 <dependency> 27 <dependency>
28 <groupId>com.diligrp</groupId> 28 <groupId>com.diligrp</groupId>
  29 + <artifactId>tax-adopt</artifactId>
  30 + <version>${revision}</version>
  31 + </dependency>
  32 + <dependency>
  33 + <groupId>com.diligrp</groupId>
29 <artifactId>tax-proxy</artifactId> 34 <artifactId>tax-proxy</artifactId>
30 <version>${revision}</version> 35 <version>${revision}</version>
31 </dependency> 36 </dependency>
tax-boot/src/main/java/com/diligrp/tax/boot/TaxApplication.java
1 package com.diligrp.tax.boot; 1 package com.diligrp.tax.boot;
2 2
3 3
  4 +import com.diligrp.tax.adopt.AdoptConfig;
4 import com.diligrp.tax.central.CentralConfig; 5 import com.diligrp.tax.central.CentralConfig;
5 import com.diligrp.tax.central.process.Processor; 6 import com.diligrp.tax.central.process.Processor;
6 import com.diligrp.tax.central.process.ProcessorChain; 7 import com.diligrp.tax.central.process.ProcessorChain;
@@ -25,7 +26,7 @@ import java.util.concurrent.ConcurrentHashMap; @@ -25,7 +26,7 @@ import java.util.concurrent.ConcurrentHashMap;
25 26
26 @SpringBootApplication 27 @SpringBootApplication
27 @EnableDiscoveryClient 28 @EnableDiscoveryClient
28 -@Import({CentralConfig.class, ConvConfig.class, OrderConfig.class, ProxyConfig.class, StorageConfig.class}) 29 +@Import({CentralConfig.class, ConvConfig.class, OrderConfig.class, ProxyConfig.class, StorageConfig.class,AdoptConfig.class})
29 public class TaxApplication { 30 public class TaxApplication {
30 public static void main(String[] args) { 31 public static void main(String[] args) {
31 SpringApplication.run(TaxApplication.class, args); 32 SpringApplication.run(TaxApplication.class, args);
tax-boot/src/main/java/com/diligrp/tax/boot/receiver/TaxReceiver.java
@@ -21,7 +21,7 @@ import java.nio.charset.StandardCharsets; @@ -21,7 +21,7 @@ import java.nio.charset.StandardCharsets;
21 import java.util.Map; 21 import java.util.Map;
22 import java.util.Optional; 22 import java.util.Optional;
23 23
24 -import static com.diligrp.tax.boot.queue.TaxAutoPush.*; 24 +import static com.diligrp.tax.central.queue.TaxAutoPush.*;
25 25
26 26
27 /** 27 /**
tax-boot/src/main/java/com/diligrp/tax/boot/queue/TaxAutoPush.java renamed to tax-central/src/main/java/com/diligrp/tax/central/queue/TaxAutoPush.java
1 -package com.diligrp.tax.boot.queue; 1 +package com.diligrp.tax.central.queue;
2 2
3 import org.springframework.amqp.core.*; 3 import org.springframework.amqp.core.*;
4 import org.springframework.beans.factory.annotation.Qualifier; 4 import org.springframework.beans.factory.annotation.Qualifier;