Pārlūkot izejas kodu

fix: 回退发票代码排查变更,导出去掉发票代码列

- 删除 InvoiceDetailBlueFapiaoTypeHandle(数电票无发票代码,非反序列化问题)
- 恢复 InvoiceDetail.blueFapiao 使用 JacksonTypeHandler
- 恢复 FapiaoApplications.FapiaoInfo 去掉 @JsonProperty
- 移除导出中的发票代码列(航信数电票 fapiao_code 为空)
- 移除临时调试日志

Co-Authored-By: Claude <noreply@anthropic.com>
skyline 1 mēnesi atpakaļ
vecāks
revīzija
1c00bc0a19

+ 1 - 2
entity/src/main/java/com/kym/entity/admin/InvoiceDetail.java

@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.kym.entity.BaseEntity;
-import com.kym.entity.typehandle.InvoiceDetailBlueFapiaoTypeHandle;
 import com.kym.entity.typehandle.InvoiceDetailBuyerInformationTypeHandle;
 import com.kym.entity.typehandle.InvoiceDetailSellerInformationTypeHandle;
 import com.kym.entity.wechat.FaPiao;
@@ -53,7 +52,7 @@ public class InvoiceDetail extends BaseEntity {
     /**
      * 蓝票
      */
-    @TableField(typeHandler = InvoiceDetailBlueFapiaoTypeHandle.class)
+    @TableField(typeHandler = JacksonTypeHandler.class)
     private FapiaoApplications.FapiaoInfo blueFapiao;
 
     /**

+ 0 - 28
entity/src/main/java/com/kym/entity/typehandle/InvoiceDetailBlueFapiaoTypeHandle.java

@@ -1,28 +0,0 @@
-package com.kym.entity.typehandle;
-
-import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.kym.entity.wechat.FapiaoApplications;
-
-import java.io.IOException;
-
-/**
- * 发票蓝票信息序列化处理,使用 TypeReference 确保 Jackson 正确反序列化内部类
- *
- * @author skyline
- */
-public class InvoiceDetailBlueFapiaoTypeHandle extends JacksonTypeHandler {
-    public InvoiceDetailBlueFapiaoTypeHandle(Class<?> type) {
-        super(type);
-    }
-
-    @Override
-    public Object parse(String json) {
-        try {
-            return getObjectMapper().readValue(json, new TypeReference<FapiaoApplications.FapiaoInfo>() {
-            });
-        } catch (IOException e) {
-            throw new RuntimeException(e);
-        }
-    }
-}

+ 0 - 6
entity/src/main/java/com/kym/entity/wechat/FapiaoApplications.java

@@ -1,6 +1,5 @@
 package com.kym.entity.wechat;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 
 import java.util.List;
@@ -80,28 +79,23 @@ public class FapiaoApplications {
         /**
          * 发票代码
          */
-        @JsonProperty("fapiao_code")
         private String fapiao_code;
         /**
          * 发票号码
          */
-        @JsonProperty("fapiao_number")
         private String fapiao_number;
         /**
          * 校验码
          */
-        @JsonProperty("check_code")
         private String check_code;
         /**
          * 发票票面密码区内容
          */
-        @JsonProperty("password")
         private String password;
         /**
          * 开票时间,遵循RFC3339标准格式
          * 2020-07-01T12:00:00+08:00
          */
-        @JsonProperty("fapiao_time")
         private String fapiao_time;
     }
 

+ 0 - 16
service/src/main/java/com/kym/service/admin/impl/InvoiceDetailServiceImpl.java

@@ -15,7 +15,6 @@ import com.kym.entity.miniapp.Invoice;
 import com.kym.mapper.admin.InvoiceDetailMapper;
 import com.kym.service.admin.InvoiceDetailService;
 import com.kym.service.miniapp.DataDictService;
-import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
 import java.util.*;
@@ -28,7 +27,6 @@ import java.util.*;
  * @author skyline
  * @since 2024-03-19
  */
-@Slf4j
 @Service
 public class InvoiceDetailServiceImpl extends MPJBaseServiceImpl<InvoiceDetailMapper, InvoiceDetail> implements InvoiceDetailService {
 
@@ -49,18 +47,6 @@ public class InvoiceDetailServiceImpl extends MPJBaseServiceImpl<InvoiceDetailMa
     @Override
     public ExcelWriter exportInvoiceDetail(InvoiceDetailQueryParam params) {
         var invoiceDetailList = buildQuery(params).orderByDesc(InvoiceDetail::getFapiaoTime).list();
-
-        // 临时调试日志:排查 blueFapiao 反序列化结果
-        if (!invoiceDetailList.isEmpty()) {
-            var first = invoiceDetailList.get(0);
-            var bf = first.getBlueFapiao();
-            log.info("导出调试[第一条] applyId={}, blueFapiao={}, fapiao_code={}, fapiao_number={}",
-                    first.getApplyId(),
-                    bf,
-                    bf != null ? bf.getFapiao_code() : "blueFapiao为null",
-                    bf != null ? bf.getFapiao_number() : "blueFapiao为null");
-        }
-
         ExcelWriter writer = ExcelUtil.getWriter();
 
         // excel 行信息
@@ -73,7 +59,6 @@ public class InvoiceDetailServiceImpl extends MPJBaseServiceImpl<InvoiceDetailMa
 
             Map<String, Object> baseInfo = new HashMap<>();
             baseInfo.put("blue_fapiao.fapiao_time", invoiceDetail.getFapiaoTime());
-            baseInfo.put("blue_fapiao.fapiao_code", blueFapiao != null ? blueFapiao.getFapiao_code() : "");
             baseInfo.put("blue_fapiao.fapiao_number", blueFapiao != null ? blueFapiao.getFapiao_number() : "");
             baseInfo.put("buyer_information.type", buyerInfo != null && Invoice.TYPE_企业.equals(buyerInfo.getType()) ? "企业" : "个人");
             baseInfo.put("buyer_information.name", buyerInfo != null ? buyerInfo.getName() : "");
@@ -118,7 +103,6 @@ public class InvoiceDetailServiceImpl extends MPJBaseServiceImpl<InvoiceDetailMa
             }
         });
 
-        writer.addHeaderAlias("blue_fapiao.fapiao_code", "发票代码");
         writer.addHeaderAlias("blue_fapiao.fapiao_number", "发票号码");
         writer.addHeaderAlias("blue_fapiao.fapiao_time", "开票日期");
         writer.addHeaderAlias("goods_name", "货物、应税劳务及服务");