Commit 93a3cc03a8e86aacfeba17b12453e6cd928ad961

Authored by zhangmeiyang
1 parent d28ad9a8

feat(storage): 增加管道数据ID参数以优化映射查询

- 在 CustomerBuilder 中调用映射服务时传入 pipelineDataId 参数
- 更新 DynamicTaxPipelineMappingService 方法签名及实现,增加 pipelineDataId 参数
- 修改 ITaxPipelineMappingService 接口定义,支持 pipelineDataId 查询条件
- 调整 TaxPipelineMappingRepository.xml 查询语句,加入 pipeline_data_id 过滤条件
- 修正 TaxReceiveService 中的调用方法,确保传递 pipelineDataId 参数
- 移除 TaxReceiveService 中未使用的 PrintWriter 和 StringWriter 导入语句
tax-boot/src/main/java/com/diligrp/tax/boot/service/TaxReceiveService.java
@@ -19,8 +19,6 @@ import jakarta.annotation.Resource; @@ -19,8 +19,6 @@ import jakarta.annotation.Resource;
19 import org.springframework.stereotype.Service; 19 import org.springframework.stereotype.Service;
20 import org.springframework.transaction.annotation.Transactional; 20 import org.springframework.transaction.annotation.Transactional;
21 21
22 -import java.io.PrintWriter;  
23 -import java.io.StringWriter;  
24 import java.util.Optional; 22 import java.util.Optional;
25 23
26 /** 24 /**
@@ -64,7 +62,7 @@ public class TaxReceiveService { @@ -64,7 +62,7 @@ public class TaxReceiveService {
64 62
65 @Transactional 63 @Transactional
66 public void recordMapping(MessageContext messageContext) { 64 public void recordMapping(MessageContext messageContext) {
67 - Optional<TenantTaxPipelineMapping> dbOptions = taxPipelineMappingService.findByPipelineIdAndDocumentTypeAndSystemDataId(messageContext.getTenantPipeline().getTenantId(), messageContext.getTenantPipeline().getId(), messageContext.getDocumentType(), messageContext.getSystemDataId()); 65 + Optional<TenantTaxPipelineMapping> dbOptions = taxPipelineMappingService.findByPipelineIdAndDocumentTypeAndSystemDataId(messageContext.getTenantPipeline().getTenantId(), messageContext.getTenantPipeline().getId(), messageContext.getDocumentType(), messageContext.getSystemDataId(),messageContext.getPipelineDataId());
68 dbOptions.ifPresentOrElse( 66 dbOptions.ifPresentOrElse(
69 e -> { 67 e -> {
70 TaxPipelineMappingCreate create = new TaxPipelineMappingCreate(); 68 TaxPipelineMappingCreate create = new TaxPipelineMappingCreate();
tax-central/src/main/java/com/diligrp/tax/central/service/ITaxPipelineMappingService.java
@@ -10,13 +10,14 @@ public interface ITaxPipelineMappingService { @@ -10,13 +10,14 @@ public interface ITaxPipelineMappingService {
10 /** 10 /**
11 * 按管道 ID 和文档类型以及系统数据 ID 查找 11 * 按管道 ID 和文档类型以及系统数据 ID 查找
12 * 12 *
13 - * @param tenantId 租户 ID  
14 - * @param pipelineId 管道 ID  
15 - * @param documentType 文档类型  
16 - * @param systemDataId 系统数据 ID 13 + * @param tenantId 租户 ID
  14 + * @param pipelineId 管道 ID
  15 + * @param documentType 文档类型
  16 + * @param systemDataId 系统数据 ID
  17 + * @param pipelineDataId
17 * @return {@link Optional }<{@link TenantTaxPipelineMapping }> 18 * @return {@link Optional }<{@link TenantTaxPipelineMapping }>
18 */ 19 */
19 - Optional<TenantTaxPipelineMapping> findByPipelineIdAndDocumentTypeAndSystemDataId(Long tenantId, Long pipelineId, String documentType, String systemDataId); 20 + Optional<TenantTaxPipelineMapping> findByPipelineIdAndDocumentTypeAndSystemDataId(Long tenantId, Long pipelineId, String documentType, String systemDataId, String pipelineDataId);
20 21
21 /** 22 /**
22 * 插入 23 * 插入
tax-doc/src/main/java/com/diligrp/tax/doc/demarcate/kingdee/CustomerBuilder.java
@@ -52,7 +52,7 @@ public class CustomerBuilder extends Builder&lt;StandardCustomer&gt; { @@ -52,7 +52,7 @@ public class CustomerBuilder extends Builder&lt;StandardCustomer&gt; {
52 List<TenantPipelineConfig> list = taxTenantService.listByPipelineIdAndDocumentType(pipeline.getId(), markDocument().value); 52 List<TenantPipelineConfig> list = taxTenantService.listByPipelineIdAndDocumentType(pipeline.getId(), markDocument().value);
53 Optional.ofNullable(list).ifPresent(ts -> configureDefaultData(customer, ts)); 53 Optional.ofNullable(list).ifPresent(ts -> configureDefaultData(customer, ts));
54 //查询数据库的客户信息 如果存在 赋值id 54 //查询数据库的客户信息 如果存在 赋值id
55 - Optional<TenantTaxPipelineMapping> dbOptions = taxPipelineMappingService.findByPipelineIdAndDocumentTypeAndSystemDataId(pipeline.getTenantId(), pipeline.getId(), markDocument().value, systemDataId); 55 + Optional<TenantTaxPipelineMapping> dbOptions = taxPipelineMappingService.findByPipelineIdAndDocumentTypeAndSystemDataId(pipeline.getTenantId(), pipeline.getId(), markDocument().value, systemDataId, messageContext.getPipelineDataId());
56 dbOptions.ifPresent(e -> { 56 dbOptions.ifPresent(e -> {
57 customer.setCustomerId(e.getPipelineDataId()); 57 customer.setCustomerId(e.getPipelineDataId());
58 customer.setSystemDataId(e.getSystemDataId()); 58 customer.setSystemDataId(e.getSystemDataId());
tax-storage/src/main/java/com/diligrp/tax/storage/service/DynamicTaxPipelineMappingService.java
@@ -62,22 +62,25 @@ public class DynamicTaxPipelineMappingService implements ITaxPipelineMappingServ @@ -62,22 +62,25 @@ public class DynamicTaxPipelineMappingService implements ITaxPipelineMappingServ
62 /** 62 /**
63 * 按管道 ID 和文档类型以及系统数据 ID 查找 63 * 按管道 ID 和文档类型以及系统数据 ID 查找
64 * 64 *
65 - * @param pipelineId 管道 ID  
66 - * @param documentType 文档类型  
67 - * @param systemDataId 系统数据 ID 65 + * @param pipelineId 管道 ID
  66 + * @param documentType 文档类型
  67 + * @param systemDataId 系统数据 ID
  68 + * @param pipelineDataId
68 * @return {@link Optional }<{@link TenantTaxPipelineMapping }> 69 * @return {@link Optional }<{@link TenantTaxPipelineMapping }>
69 */ 70 */
70 @Override 71 @Override
71 - public Optional<TenantTaxPipelineMapping> findByPipelineIdAndDocumentTypeAndSystemDataId(Long tenantId, Long pipelineId, String documentType, String systemDataId) { 72 + public Optional<TenantTaxPipelineMapping> findByPipelineIdAndDocumentTypeAndSystemDataId(Long tenantId, Long pipelineId, String documentType, String systemDataId, String pipelineDataId) {
72 Optional.ofNullable(tenantId).orElseThrow(() -> new TaxAgentServiceException(TaxSystemType.MISSING_BUSINESS_INFORMATION, "租户ID不能为空")); 73 Optional.ofNullable(tenantId).orElseThrow(() -> new TaxAgentServiceException(TaxSystemType.MISSING_BUSINESS_INFORMATION, "租户ID不能为空"));
73 Optional.ofNullable(pipelineId).orElseThrow(() -> new TaxAgentServiceException(TaxSystemType.MISSING_BUSINESS_INFORMATION, "管道ID不能为空")); 74 Optional.ofNullable(pipelineId).orElseThrow(() -> new TaxAgentServiceException(TaxSystemType.MISSING_BUSINESS_INFORMATION, "管道ID不能为空"));
74 Optional.ofNullable(documentType).orElseThrow(() -> new TaxAgentServiceException(TaxSystemType.MISSING_BUSINESS_INFORMATION, "文档类型不能为空")); 75 Optional.ofNullable(documentType).orElseThrow(() -> new TaxAgentServiceException(TaxSystemType.MISSING_BUSINESS_INFORMATION, "文档类型不能为空"));
75 Optional.ofNullable(systemDataId).orElseThrow(() -> new TaxAgentServiceException(TaxSystemType.MISSING_BUSINESS_INFORMATION, "系统数据不能为空")); 76 Optional.ofNullable(systemDataId).orElseThrow(() -> new TaxAgentServiceException(TaxSystemType.MISSING_BUSINESS_INFORMATION, "系统数据不能为空"));
  77 + Optional.ofNullable(pipelineDataId).orElseThrow(() -> new TaxAgentServiceException(TaxSystemType.MISSING_BUSINESS_INFORMATION, "管道数据不能为空"));
76 TaxPipelineMapping taxPipelineMapping = new TaxPipelineMapping(); 78 TaxPipelineMapping taxPipelineMapping = new TaxPipelineMapping();
77 taxPipelineMapping.setTenantId(tenantId); 79 taxPipelineMapping.setTenantId(tenantId);
78 taxPipelineMapping.setPipelineId(pipelineId); 80 taxPipelineMapping.setPipelineId(pipelineId);
79 taxPipelineMapping.setDocumentType(documentType); 81 taxPipelineMapping.setDocumentType(documentType);
80 taxPipelineMapping.setSystemDataId(systemDataId); 82 taxPipelineMapping.setSystemDataId(systemDataId);
  83 + taxPipelineMapping.setPipelineDataId(pipelineDataId);
81 taxPipelineMapping.setState(MappingStateType.SYNCED.value); 84 taxPipelineMapping.setState(MappingStateType.SYNCED.value);
82 return taxPipelineMappingRepository.findByPipelineIdAndDocumentTypeAndSystemDataId(taxPipelineMapping); 85 return taxPipelineMappingRepository.findByPipelineIdAndDocumentTypeAndSystemDataId(taxPipelineMapping);
83 } 86 }
tax-storage/src/main/resources/com/diligrp/tax/storage/repo/TaxPipelineMappingRepository.xml
@@ -66,6 +66,7 @@ @@ -66,6 +66,7 @@
66 AND pipeline_id = #{pipelineId} 66 AND pipeline_id = #{pipelineId}
67 AND document_type = #{documentType} 67 AND document_type = #{documentType}
68 AND system_data_id = #{systemDataId} 68 AND system_data_id = #{systemDataId}
  69 + AND pipeline_data_id = #{pipelineDataId}
69 </select> 70 </select>
70 71
71 <!-- 建表语句 --> 72 <!-- 建表语句 -->