feat(credit): 优化信用消限记录导入功能支持多模板兼容

- 新增 application-glt.yml 生产环境配置文件
- 重构 CreditXgxf 实体类字段顺序和命名规范
- 添加上游多公司导出模板的备用字段映射支持
- 实现 Excel 表头括号后缀清理和标准化逻辑
- 增加备用字段(申请执行人、被执行人)的兼容性处理
- 完善导入参数转换逻辑确保模板兼容性
- 添加单元测试验证多模板字段映射正确性
This commit is contained in:
2026-02-14 09:55:43 +08:00
parent bd3202830c
commit c5a942b4fc
6 changed files with 193 additions and 39 deletions

View File

@@ -0,0 +1,51 @@
package com.gxwebsoft.credit.controller;
import com.gxwebsoft.credit.entity.CreditXgxf;
import com.gxwebsoft.credit.param.CreditXgxfImportParam;
import org.junit.jupiter.api.Test;
import java.lang.reflect.Method;
import static org.junit.jupiter.api.Assertions.assertEquals;
class CreditXgxfImportMappingTest {
private static CreditXgxf convert(CreditXgxfImportParam param) throws Exception {
CreditXgxfController controller = new CreditXgxfController();
Method m = CreditXgxfController.class.getDeclaredMethod("convertImportParamToEntity", CreditXgxfImportParam.class);
m.setAccessible(true);
return (CreditXgxf) m.invoke(controller, param);
}
@Test
void mapsAlternateUpstreamHeadersForParties() throws Exception {
CreditXgxfImportParam param = new CreditXgxfImportParam();
param.setCaseNumber("2024示例案号");
param.setPlaintiffAppellant2("申请执行人A");
param.setAppellee2("被执行人B");
param.setCourtName2("执行法院C");
CreditXgxf entity = convert(param);
assertEquals("申请执行人A", entity.getPlaintiffAppellant());
assertEquals("被执行人B", entity.getAppellee());
assertEquals("执行法院C", entity.getCourtName());
}
@Test
void prefersCanonicalHeadersWhenBothPresent() throws Exception {
CreditXgxfImportParam param = new CreditXgxfImportParam();
param.setCaseNumber("2024示例案号");
param.setPlaintiffAppellant("原告A");
param.setPlaintiffAppellant2("申请执行人A");
param.setAppellee("被告B");
param.setAppellee2("被执行人B");
param.setCourtName("法院C");
param.setCourtName2("执行法院C");
CreditXgxf entity = convert(param);
assertEquals("原告A", entity.getPlaintiffAppellant());
assertEquals("被告B", entity.getAppellee());
assertEquals("法院C", entity.getCourtName());
}
}