Commit 27c00a4bd9a1c6f98cd756c51fbb1876b5d115f4
1 parent
9975a942
feat(tax-doc): 支持系统数据ID传递并优化税务映射逻辑
- 修改 Builder 接口及其实现类,增加 systemDataId 参数支持 - 引入 ITaxPipelineMappingService服务用于查询现有映射关系- 在 CustomerBuilder 中根据 systemDataId 查询并设置客户ID - 扩展 TaxPipelineMappingCreate 模型以支持更新操作 - 实现 DynamicTaxPipelineMappingService 的 update 方法 - 调整 TaxPipelineMappingRepository 及其 XML 配置以区分更新状态与完整更新 -重构 TaxReceiver 和 TaxReceiveService以适配新的处理流程 - 在 recordMapping 方法中实现插入或更新税务映射记录的逻辑
Showing
13 changed files
with
91 additions
and
34 deletions
tax-boot/src/main/java/com/diligrp/tax/boot/receiver/TaxReceiver.java
| ... | ... | @@ -2,6 +2,8 @@ package com.diligrp.tax.boot.receiver; |
| 2 | 2 | |
| 3 | 3 | import com.diligrp.tax.boot.service.TaxReceiveService; |
| 4 | 4 | import com.diligrp.tax.central.domain.MessageContext; |
| 5 | +import com.diligrp.tax.central.process.ProcessorChain; | |
| 6 | +import com.diligrp.tax.central.type.SystemType; | |
| 5 | 7 | import com.rabbitmq.client.Channel; |
| 6 | 8 | import jakarta.annotation.Resource; |
| 7 | 9 | import lombok.extern.slf4j.Slf4j; |
| ... | ... | @@ -15,6 +17,7 @@ import org.springframework.transaction.annotation.Transactional; |
| 15 | 17 | |
| 16 | 18 | import java.io.IOException; |
| 17 | 19 | import java.nio.charset.StandardCharsets; |
| 20 | +import java.util.Map; | |
| 18 | 21 | import java.util.Optional; |
| 19 | 22 | |
| 20 | 23 | import static com.diligrp.tax.boot.queue.TaxAutoPush.*; |
| ... | ... | @@ -32,6 +35,9 @@ public class TaxReceiver { |
| 32 | 35 | @Resource |
| 33 | 36 | private TaxReceiveService taxReceiveService; |
| 34 | 37 | |
| 38 | + @Resource | |
| 39 | + private Map<SystemType, ProcessorChain> processorChainMap; | |
| 40 | + | |
| 35 | 41 | @RabbitListener(bindings = |
| 36 | 42 | @QueueBinding( |
| 37 | 43 | value = @Queue(value = NORMAL_QUEUE, autoDelete = "false"), |
| ... | ... | @@ -45,8 +51,9 @@ public class TaxReceiver { |
| 45 | 51 | log.info("tax-agent收到消息:{}", content); |
| 46 | 52 | MessageContext ctx = null; |
| 47 | 53 | try { |
| 48 | - ctx = taxReceiveService.messageHandle(content); | |
| 49 | - taxReceiveService.recordMapping(ctx); | |
| 54 | + ctx = taxReceiveService.messagePreHandle(content); | |
| 55 | + var trans = processorChainMap.get(SystemType.from(ctx.getSystemType())).startProcess(ctx); | |
| 56 | + taxReceiveService.recordMapping(trans); | |
| 50 | 57 | channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); |
| 51 | 58 | log.info("tax-agent消息处理成功:{}", content); |
| 52 | 59 | } catch (Exception e) { | ... | ... |
tax-boot/src/main/java/com/diligrp/tax/boot/service/TaxReceiveService.java
| ... | ... | @@ -5,7 +5,7 @@ import com.diligrp.tax.central.domain.MessageContext; |
| 5 | 5 | import com.diligrp.tax.central.exception.TaxAgentServiceException; |
| 6 | 6 | import com.diligrp.tax.central.model.TaxPipelineMappingCreate; |
| 7 | 7 | import com.diligrp.tax.central.model.TenantPipeline; |
| 8 | -import com.diligrp.tax.central.process.ProcessorChain; | |
| 8 | +import com.diligrp.tax.central.model.TenantTaxPipelineMapping; | |
| 9 | 9 | import com.diligrp.tax.central.service.ITaxPipelineMappingService; |
| 10 | 10 | import com.diligrp.tax.central.service.ITenantTaxService; |
| 11 | 11 | import com.diligrp.tax.central.type.DocumentType; |
| ... | ... | @@ -19,7 +19,6 @@ import org.springframework.transaction.annotation.Transactional; |
| 19 | 19 | |
| 20 | 20 | import java.io.PrintWriter; |
| 21 | 21 | import java.io.StringWriter; |
| 22 | -import java.util.Map; | |
| 23 | 22 | import java.util.Optional; |
| 24 | 23 | |
| 25 | 24 | /** |
| ... | ... | @@ -31,17 +30,16 @@ import java.util.Optional; |
| 31 | 30 | public class TaxReceiveService { |
| 32 | 31 | |
| 33 | 32 | @Resource |
| 34 | - private Map<SystemType, ProcessorChain> processorChainMap; | |
| 35 | - | |
| 36 | - @Resource | |
| 37 | 33 | private ITenantTaxService tenantTaxService; |
| 38 | 34 | |
| 39 | 35 | @Resource |
| 40 | 36 | private ITaxPipelineMappingService taxPipelineMappingService; |
| 41 | 37 | |
| 42 | 38 | |
| 43 | - public MessageContext messageHandle(String content) { | |
| 39 | + public MessageContext messagePreHandle(String content) { | |
| 44 | 40 | MessageContext ctx = JsonUtils.fromJsonString(content, MessageContext.class); |
| 41 | + Long tenantId = tenantTaxService.getTenantId(ctx.getGroup(), ctx.getEntity()); | |
| 42 | + ctx.setTenantId(tenantId); | |
| 45 | 43 | DocumentType from = DocumentType.from(ctx.getDocumentType()); |
| 46 | 44 | SystemType system = SystemType.from(ctx.getSystemType()); |
| 47 | 45 | Optional.of(system).filter(s -> s.documentTypes.contains(from)).orElseThrow(() -> new TaxAgentServiceException(TaxSystemType.BUSINESS_MATCHES_ARE_INCORRECT)); |
| ... | ... | @@ -54,19 +52,31 @@ public class TaxReceiveService { |
| 54 | 52 | ctx.setTenantPipeline(pipeline); |
| 55 | 53 | //获取租户id |
| 56 | 54 | ctx.setTenantId(tenantTaxService.getTenantId(ctx.getGroup(), ctx.getEntity())); |
| 57 | - return processorChainMap.get(SystemType.from(ctx.getSystemType())).startProcess(ctx); | |
| 55 | + return ctx; | |
| 58 | 56 | } |
| 59 | 57 | |
| 60 | 58 | @Transactional |
| 61 | 59 | public void recordMapping(MessageContext messageContext) { |
| 62 | - TaxPipelineMappingCreate create = new TaxPipelineMappingCreate(); | |
| 63 | - create.setTenantId(messageContext.getTenantId()); | |
| 64 | - create.setPipelineId(messageContext.getTenantPipeline().getId()); | |
| 65 | - create.setDocumentType(messageContext.getDocumentType()); | |
| 66 | - create.setSystemDataId(messageContext.getSystemDataId()); | |
| 67 | - create.setState(MappingStateType.SYNCED.value); | |
| 68 | - create.setOriginData(messageContext.getMsgBody()); | |
| 69 | - taxPipelineMappingService.insert(create); | |
| 60 | + Optional<TenantTaxPipelineMapping> dbOptions = taxPipelineMappingService.findByPipelineIdAndDocumentTypeAndSystemDataId(messageContext.getTenantPipeline().getTenantId(), messageContext.getTenantPipeline().getId(), messageContext.getDocumentType(), messageContext.getSystemDataId()); | |
| 61 | + dbOptions.ifPresentOrElse( | |
| 62 | + e -> { | |
| 63 | + TaxPipelineMappingCreate create = new TaxPipelineMappingCreate(); | |
| 64 | + create.setId(e.getId()); | |
| 65 | + create.setTenantId(messageContext.getTenantId()); | |
| 66 | + create.setOriginData(messageContext.getMsgBody()); | |
| 67 | + taxPipelineMappingService.update(create); | |
| 68 | + }, () -> { | |
| 69 | + TaxPipelineMappingCreate create = new TaxPipelineMappingCreate(); | |
| 70 | + create.setTenantId(messageContext.getTenantId()); | |
| 71 | + create.setPipelineId(messageContext.getTenantPipeline().getId()); | |
| 72 | + create.setDocumentType(messageContext.getDocumentType()); | |
| 73 | + create.setSystemDataId(messageContext.getSystemDataId()); | |
| 74 | + create.setPipelineDataId(messageContext.getPipelineDataId()); | |
| 75 | + create.setState(MappingStateType.SYNCED.value); | |
| 76 | + create.setOriginData(messageContext.getMsgBody()); | |
| 77 | + taxPipelineMappingService.insert(create); | |
| 78 | + }); | |
| 79 | + | |
| 70 | 80 | } |
| 71 | 81 | |
| 72 | 82 | @Transactional | ... | ... |
tax-central/src/main/java/com/diligrp/tax/central/model/TaxPipelineMappingCreate.java
tax-central/src/main/java/com/diligrp/tax/central/service/ITaxPipelineMappingService.java
| ... | ... | @@ -3,6 +3,7 @@ package com.diligrp.tax.central.service; |
| 3 | 3 | import com.diligrp.tax.central.domain.MessageContext; |
| 4 | 4 | import com.diligrp.tax.central.model.TaxPipelineMappingCreate; |
| 5 | 5 | import com.diligrp.tax.central.model.TenantTaxPipelineMapping; |
| 6 | +import org.springframework.validation.annotation.Validated; | |
| 6 | 7 | |
| 7 | 8 | import java.util.Optional; |
| 8 | 9 | |
| ... | ... | @@ -25,4 +26,11 @@ public interface ITaxPipelineMappingService { |
| 25 | 26 | * @param taxPipelineMappingCreate |
| 26 | 27 | */ |
| 27 | 28 | void insert(TaxPipelineMappingCreate taxPipelineMappingCreate); |
| 29 | + | |
| 30 | + /** | |
| 31 | + * 更新 | |
| 32 | + * | |
| 33 | + * @param taxPipelineMappingCreate 税务管道映射创建 | |
| 34 | + */ | |
| 35 | + void update(TaxPipelineMappingCreate taxPipelineMappingCreate); | |
| 28 | 36 | } | ... | ... |
tax-doc/src/main/java/com/diligrp/tax/doc/demarcate/Builder.java
| ... | ... | @@ -21,9 +21,10 @@ public abstract class Builder<T extends BaseDocument> { |
| 21 | 21 | /** |
| 22 | 22 | * 建 |
| 23 | 23 | * |
| 24 | - * @param body 身体 | |
| 24 | + * @param body 身体 | |
| 25 | 25 | * @param pipeline |
| 26 | + * @param systemDataId | |
| 26 | 27 | * @return {@link T } |
| 27 | 28 | */ |
| 28 | - public abstract T build(String body, TenantPipeline pipeline); | |
| 29 | + public abstract T build(String body, TenantPipeline pipeline, String systemDataId); | |
| 29 | 30 | } | ... | ... |
tax-doc/src/main/java/com/diligrp/tax/doc/demarcate/kingdee/CustomerBuilder.java
| ... | ... | @@ -5,10 +5,13 @@ import com.diligrp.tax.central.domain.document.kingdee.basic.item.Contact; |
| 5 | 5 | import com.diligrp.tax.central.exception.TaxAgentServiceException; |
| 6 | 6 | import com.diligrp.tax.central.model.TenantPipeline; |
| 7 | 7 | import com.diligrp.tax.central.model.TenantPipelineConfig; |
| 8 | +import com.diligrp.tax.central.model.TenantTaxPipelineMapping; | |
| 9 | +import com.diligrp.tax.central.service.ITaxPipelineMappingService; | |
| 8 | 10 | import com.diligrp.tax.central.type.DocumentType; |
| 9 | 11 | import com.diligrp.tax.central.type.TaxSystemType; |
| 10 | 12 | import com.diligrp.tax.central.utils.JsonUtils; |
| 11 | 13 | import com.diligrp.tax.doc.demarcate.Builder; |
| 14 | +import jakarta.annotation.Resource; | |
| 12 | 15 | import lombok.extern.slf4j.Slf4j; |
| 13 | 16 | import org.springframework.stereotype.Component; |
| 14 | 17 | |
| ... | ... | @@ -29,19 +32,25 @@ import java.util.stream.Stream; |
| 29 | 32 | @Slf4j |
| 30 | 33 | public class CustomerBuilder extends Builder<StandardCustomer> { |
| 31 | 34 | |
| 35 | + @Resource | |
| 36 | + private ITaxPipelineMappingService taxPipelineMappingService; | |
| 37 | + | |
| 38 | + | |
| 32 | 39 | @Override |
| 33 | 40 | public DocumentType markDocument() { |
| 34 | 41 | return DocumentType.CUSTOMER_INFO; |
| 35 | 42 | } |
| 36 | 43 | |
| 37 | 44 | @Override |
| 38 | - public StandardCustomer build(String body, TenantPipeline pipeline) { | |
| 45 | + public StandardCustomer build(String body, TenantPipeline pipeline, String systemDataId) { | |
| 39 | 46 | StandardCustomer customer = JsonUtils.fromJsonString(body, StandardCustomer.class); |
| 40 | 47 | Optional.ofNullable(customer.getContacts()).orElseThrow(() -> new TaxAgentServiceException(TaxSystemType.MISSING_BUSINESS_INFORMATION, "请完善联系人信息")); |
| 41 | - Optional.ofNullable(customer.getSystemDataId()).orElseThrow(() -> new TaxAgentServiceException(TaxSystemType.MISSING_BUSINESS_INFORMATION, "请填写系统数据ID")); | |
| 48 | + Optional.ofNullable(systemDataId).orElseThrow(() -> new TaxAgentServiceException(TaxSystemType.MISSING_BUSINESS_INFORMATION, "请填写系统数据ID")); | |
| 42 | 49 | List<TenantPipelineConfig> list = pipeline.getTenantPipelineConfigs().get(markDocument()); |
| 43 | 50 | Optional.ofNullable(list).ifPresent(ts -> configureDefaultData(customer, ts)); |
| 44 | - //TODO 查询数据库的客户信息 如果存在 赋值id | |
| 51 | + //查询数据库的客户信息 如果存在 赋值id | |
| 52 | + Optional<TenantTaxPipelineMapping> dbOptions = taxPipelineMappingService.findByPipelineIdAndDocumentTypeAndSystemDataId(pipeline.getTenantId(), pipeline.getId(), markDocument().value, systemDataId); | |
| 53 | + dbOptions.ifPresent(e -> customer.setCustomerId(e.getPipelineDataId())); | |
| 45 | 54 | return customer; |
| 46 | 55 | } |
| 47 | 56 | ... | ... |
tax-doc/src/main/java/com/diligrp/tax/doc/demarcate/kingdee/ReceiptBuilder.java
| ... | ... | @@ -33,7 +33,7 @@ public class ReceiptBuilder extends Builder<ReceiptBill> { |
| 33 | 33 | } |
| 34 | 34 | |
| 35 | 35 | @Override |
| 36 | - public ReceiptBill build(String body, TenantPipeline pipeline) { | |
| 36 | + public ReceiptBill build(String body, TenantPipeline pipeline, String systemDataId) { | |
| 37 | 37 | ReceiptBill bill = JsonUtils.fromJsonString(body, ReceiptBill.class); |
| 38 | 38 | Optional.ofNullable(bill.getReceiptItems()).orElseThrow(() -> new TaxAgentServiceException(TaxSystemType.MISSING_BUSINESS_INFORMATION, "请填写收款项目")); |
| 39 | 39 | bill.setCreateTime(Optional.ofNullable(bill.getCreateTime()).orElse(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")))); | ... | ... |
tax-doc/src/main/java/com/diligrp/tax/doc/demarcate/kingdee/ReceivableBuilder.java
| 1 | 1 | package com.diligrp.tax.doc.demarcate.kingdee; |
| 2 | 2 | |
| 3 | -import com.diligrp.tax.central.domain.document.kingdee.bill.ReceiptBill; | |
| 4 | 3 | import com.diligrp.tax.central.domain.document.kingdee.bill.ReceivableBill; |
| 5 | -import com.diligrp.tax.central.domain.document.kingdee.bill.item.ReceiptItem; | |
| 6 | 4 | import com.diligrp.tax.central.domain.document.kingdee.bill.item.ReceivableItem; |
| 7 | 5 | import com.diligrp.tax.central.exception.TaxAgentServiceException; |
| 8 | 6 | import com.diligrp.tax.central.model.TenantPipeline; |
| ... | ... | @@ -10,7 +8,6 @@ import com.diligrp.tax.central.model.TenantPipelineConfig; |
| 10 | 8 | import com.diligrp.tax.central.type.DocumentType; |
| 11 | 9 | import com.diligrp.tax.central.type.TaxSystemType; |
| 12 | 10 | import com.diligrp.tax.central.utils.JsonUtils; |
| 13 | -import com.diligrp.tax.central.utils.MappingUtils; | |
| 14 | 11 | import com.diligrp.tax.doc.demarcate.Builder; |
| 15 | 12 | import org.springframework.stereotype.Component; |
| 16 | 13 | |
| ... | ... | @@ -37,7 +34,7 @@ public class ReceivableBuilder extends Builder<ReceivableBill> { |
| 37 | 34 | } |
| 38 | 35 | |
| 39 | 36 | @Override |
| 40 | - public ReceivableBill build(String body, TenantPipeline pipeline) { | |
| 37 | + public ReceivableBill build(String body, TenantPipeline pipeline, String systemDataId) { | |
| 41 | 38 | ReceivableBill bill = JsonUtils.fromJsonString(body, ReceivableBill.class); |
| 42 | 39 | Optional.ofNullable(bill.getReceivableItems()).orElseThrow(() -> new TaxAgentServiceException(TaxSystemType.MISSING_BUSINESS_INFORMATION, "请填写收款项目")); |
| 43 | 40 | bill.setCreateTime(Optional.ofNullable(bill.getCreateTime()).orElse(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")))); | ... | ... |
tax-doc/src/main/java/com/diligrp/tax/doc/demarcate/kingdee/RefundBuilder.java
| 1 | 1 | package com.diligrp.tax.doc.demarcate.kingdee; |
| 2 | 2 | |
| 3 | -import com.diligrp.tax.central.domain.document.kingdee.bill.ReceivableBill; | |
| 4 | 3 | import com.diligrp.tax.central.domain.document.kingdee.bill.RefundBill; |
| 5 | -import com.diligrp.tax.central.domain.document.kingdee.bill.item.ReceivableItem; | |
| 6 | 4 | import com.diligrp.tax.central.domain.document.kingdee.bill.item.RefundItem; |
| 7 | 5 | import com.diligrp.tax.central.exception.TaxAgentServiceException; |
| 8 | 6 | import com.diligrp.tax.central.model.TenantPipeline; |
| ... | ... | @@ -10,7 +8,6 @@ import com.diligrp.tax.central.model.TenantPipelineConfig; |
| 10 | 8 | import com.diligrp.tax.central.type.DocumentType; |
| 11 | 9 | import com.diligrp.tax.central.type.TaxSystemType; |
| 12 | 10 | import com.diligrp.tax.central.utils.JsonUtils; |
| 13 | -import com.diligrp.tax.central.utils.MappingUtils; | |
| 14 | 11 | import com.diligrp.tax.doc.demarcate.Builder; |
| 15 | 12 | import org.springframework.stereotype.Component; |
| 16 | 13 | |
| ... | ... | @@ -37,7 +34,7 @@ public class RefundBuilder extends Builder<RefundBill> { |
| 37 | 34 | } |
| 38 | 35 | |
| 39 | 36 | @Override |
| 40 | - public RefundBill build(String body, TenantPipeline pipeline) { | |
| 37 | + public RefundBill build(String body, TenantPipeline pipeline, String systemDataId) { | |
| 41 | 38 | RefundBill bill = JsonUtils.fromJsonString(body, RefundBill.class); |
| 42 | 39 | Optional.ofNullable(bill.getRefundItems()).orElseThrow(() -> new TaxAgentServiceException(TaxSystemType.MISSING_BUSINESS_INFORMATION, "请填写收款项目")); |
| 43 | 40 | bill.setCreateTime(Optional.ofNullable(bill.getCreateTime()).orElse(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")))); | ... | ... |
tax-doc/src/main/java/com/diligrp/tax/doc/process/kingdee/InitializeProcessor.java
| 1 | 1 | package com.diligrp.tax.doc.process.kingdee; |
| 2 | 2 | |
| 3 | +import com.diligrp.tax.central.domain.BaseDocument; | |
| 3 | 4 | import com.diligrp.tax.central.domain.MessageContext; |
| 4 | 5 | import com.diligrp.tax.central.process.AbstractProcessor; |
| 5 | 6 | import com.diligrp.tax.doc.context.DocumentContext; |
| ... | ... | @@ -23,7 +24,8 @@ public class InitializeProcessor extends AbstractProcessor { |
| 23 | 24 | @Override |
| 24 | 25 | public MessageContext process(MessageContext messageContext) { |
| 25 | 26 | Builder<?> builder = DocumentContext.CONTEXT.get(messageContext.getDocumentTypeEnum()); |
| 26 | - messageContext.setDocumentObject(builder.build(messageContext.getMsgBody(), messageContext.getTenantPipeline())); | |
| 27 | + BaseDocument build = builder.build(messageContext.getMsgBody(), messageContext.getTenantPipeline(), messageContext.getSystemDataId()); | |
| 28 | + messageContext.setDocumentObject(build); | |
| 27 | 29 | return messageContext; |
| 28 | 30 | } |
| 29 | 31 | } | ... | ... |
tax-storage/src/main/java/com/diligrp/tax/storage/repo/TaxPipelineMappingRepository.java
| ... | ... | @@ -25,7 +25,7 @@ public interface TaxPipelineMappingRepository { |
| 25 | 25 | * |
| 26 | 26 | * @param mapping 税务管道映射 |
| 27 | 27 | */ |
| 28 | - void update(TaxPipelineMapping mapping); | |
| 28 | + void updateStatus(TaxPipelineMapping mapping); | |
| 29 | 29 | |
| 30 | 30 | /** |
| 31 | 31 | * 按管道 ID 查找 |
| ... | ... | @@ -56,4 +56,11 @@ public interface TaxPipelineMappingRepository { |
| 56 | 56 | * @param tableName 表名 |
| 57 | 57 | */ |
| 58 | 58 | void dropTenantMappingTable(@Param("tableName") String tableName); |
| 59 | + | |
| 60 | + /** | |
| 61 | + * 更新 | |
| 62 | + * | |
| 63 | + * @param taxPipelineMapping 税务管道映射 | |
| 64 | + */ | |
| 65 | + void update(TaxPipelineMapping taxPipelineMapping); | |
| 59 | 66 | } | ... | ... |
tax-storage/src/main/java/com/diligrp/tax/storage/service/DynamicTaxPipelineMappingService.java
| ... | ... | @@ -88,4 +88,10 @@ public class DynamicTaxPipelineMappingService implements ITaxPipelineMappingServ |
| 88 | 88 | TaxPipelineMapping taxPipelineMapping = JsonUtils.convertValue(taxPipelineMappingCreate, TaxPipelineMapping.class); |
| 89 | 89 | taxPipelineMappingRepository.insert(taxPipelineMapping); |
| 90 | 90 | } |
| 91 | + | |
| 92 | + @Override | |
| 93 | + public void update(TaxPipelineMappingCreate taxPipelineMappingCreate) { | |
| 94 | + TaxPipelineMapping taxPipelineMapping = JsonUtils.convertValue(taxPipelineMappingCreate, TaxPipelineMapping.class); | |
| 95 | + taxPipelineMappingRepository.update(taxPipelineMapping); | |
| 96 | + } | |
| 91 | 97 | } | ... | ... |
tax-storage/src/main/resources/com/diligrp/tax/storage/repo/TaxPipelineMappingRepository.xml
| ... | ... | @@ -19,7 +19,7 @@ |
| 19 | 19 | , #{state} |
| 20 | 20 | , #{errorMessage}) |
| 21 | 21 | </insert> |
| 22 | - <update id="update"> | |
| 22 | + <update id="updateStatus"> | |
| 23 | 23 | UPDATE |
| 24 | 24 | tax_pipeline_mapping_${tenantId} |
| 25 | 25 | SET |
| ... | ... | @@ -96,5 +96,14 @@ |
| 96 | 96 | <update id="dropTenantMappingTable"> |
| 97 | 97 | DROP TABLE IF EXISTS ${tableName} |
| 98 | 98 | </update> |
| 99 | + <update id="update"> | |
| 100 | + UPDATE | |
| 101 | + tax_pipeline_mapping_${tenantId} | |
| 102 | + SET | |
| 103 | + origin_data = #{originData} | |
| 104 | + , error_message = #{errorMessage} | |
| 105 | + WHERE | |
| 106 | + id = #{id} | |
| 107 | + </update> | |
| 99 | 108 | |
| 100 | 109 | </mapper> | ... | ... |