Commit bc8f4113 by zhangxingmin

push

parent d2d8dab1
......@@ -4,6 +4,7 @@ import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
......@@ -339,25 +340,32 @@ public class ApiCommissionExpectedController {
});
}
/**
* 从 Feign 返回结果中安全提取公司列表
*/
@SuppressWarnings("unchecked")
private List<ApiInsuranceReconciliationCompanyPageResponse> extractCompanyListFromResult(Result result) {
if (result == null || result.getCode() != 200 || result.getData() == null) {
return Collections.emptyList();
}
log.info("nameMap>>>>{}", JSON.toJSONString(result));
log.info("Feign返回结果: {}", JSON.toJSONString(result));
Object data = result.getData();
if (!(data instanceof IPage<?>)) {
// 可根据需要记录日志
return Collections.emptyList();
try {
// 将 data 转为 JSON 字符串再解析为 Map,以便提取 records
Map<String, Object> dataMap = JSON.parseObject(JSON.toJSONString(data), new TypeReference<Map<String, Object>>() {});
Object recordsObj = dataMap.get("records");
if (recordsObj instanceof List) {
List<?> recordsList = (List<?>) recordsObj;
List<ApiInsuranceReconciliationCompanyPageResponse> companyList = new ArrayList<>();
for (Object item : recordsList) {
// 将每个元素转换为目标类型
ApiInsuranceReconciliationCompanyPageResponse company = JSON.parseObject(
JSON.toJSONString(item),
ApiInsuranceReconciliationCompanyPageResponse.class
);
companyList.add(company);
}
return companyList;
}
IPage<?> page = (IPage<?>) data;
if (CollectionUtils.isEmpty(page.getRecords())) {
return Collections.emptyList();
} catch (Exception e) {
log.error("解析公司列表失败", e);
}
// 由于实际类型已知,直接转换(类型安全由服务端保证)
return (List<ApiInsuranceReconciliationCompanyPageResponse>) page.getRecords();
return Collections.emptyList();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment