Commit 1a5f41e9 by zhangxingmin

Merge remote-tracking branch 'origin/dev_zxm' into test

parents 091baf63 1904f550
...@@ -3,6 +3,7 @@ package com.yd.csf.api.controller; ...@@ -3,6 +3,7 @@ package com.yd.csf.api.controller;
import com.alibaba.excel.EasyExcel; import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
...@@ -25,6 +26,7 @@ import com.yd.insurance.base.feign.request.insurancereconciliationcompany.ApiIns ...@@ -25,6 +26,7 @@ import com.yd.insurance.base.feign.request.insurancereconciliationcompany.ApiIns
import com.yd.insurance.base.feign.response.insurancereconciliationcompany.ApiInsuranceReconciliationCompanyPageResponse; import com.yd.insurance.base.feign.response.insurancereconciliationcompany.ApiInsuranceReconciliationCompanyPageResponse;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -35,6 +37,7 @@ import javax.servlet.http.HttpServletResponse; ...@@ -35,6 +37,7 @@ import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -45,6 +48,7 @@ import java.util.stream.Collectors; ...@@ -45,6 +48,7 @@ import java.util.stream.Collectors;
* @author jianan * @author jianan
* @since 2025-08-31 * @since 2025-08-31
*/ */
@Slf4j
@RestController @RestController
@RequestMapping("/CommissionExpected") @RequestMapping("/CommissionExpected")
@Tag(name = "预计入账接口") @Tag(name = "预计入账接口")
...@@ -278,6 +282,7 @@ public class ApiCommissionExpectedController { ...@@ -278,6 +282,7 @@ public class ApiCommissionExpectedController {
} }
enrichReceivableReportWithCompanyName(receivableReportPage); enrichReceivableReportWithCompanyName(receivableReportPage);
log.info("receivableReportPage>>>>{}", JSON.toJSONString(receivableReportPage));
// 组装返回结果 // 组装返回结果
ReceivableReportResponse response = new ReceivableReportResponse(); ReceivableReportResponse response = new ReceivableReportResponse();
response.setStatisticsVO(statisticsVO); response.setStatisticsVO(statisticsVO);
...@@ -285,10 +290,6 @@ public class ApiCommissionExpectedController { ...@@ -285,10 +290,6 @@ public class ApiCommissionExpectedController {
return Result.success(response); return Result.success(response);
} }
/**
* 处理receivableReportPage
* @return
*/
private void enrichReceivableReportWithCompanyName(IPage<ReceivableReportVO> page) { private void enrichReceivableReportWithCompanyName(IPage<ReceivableReportVO> page) {
if (page == null || CollectionUtils.isEmpty(page.getRecords())) { if (page == null || CollectionUtils.isEmpty(page.getRecords())) {
return; return;
...@@ -301,7 +302,7 @@ public class ApiCommissionExpectedController { ...@@ -301,7 +302,7 @@ public class ApiCommissionExpectedController {
.distinct() .distinct()
.collect(Collectors.toList()); .collect(Collectors.toList());
if (CollectionUtils.isEmpty(bizIdList)) { if (bizIdList.isEmpty()) {
return; return;
} }
...@@ -309,33 +310,10 @@ public class ApiCommissionExpectedController { ...@@ -309,33 +310,10 @@ public class ApiCommissionExpectedController {
ApiInsuranceReconciliationCompanyPageRequest request = new ApiInsuranceReconciliationCompanyPageRequest(); ApiInsuranceReconciliationCompanyPageRequest request = new ApiInsuranceReconciliationCompanyPageRequest();
request.setReconciliationCompanyBizIdList(bizIdList); request.setReconciliationCompanyBizIdList(bizIdList);
request.setPageNo(1); request.setPageNo(1);
request.setPageSize(bizIdList.size()); // 确保一次查全 request.setPageSize(bizIdList.size());
Result result = companyFeignClient.page(request); // 返回原始 Result 类型
if (result == null || result.getCode() != 200 || result.getData() == null) {
return;
}
// 由于实际数据类型是 IPage<ApiInsuranceReconciliationCompanyPageResponse>,进行安全转换
Object data = result.getData();
if (!(data instanceof IPage<?>)) {
// 类型不符合预期,记录日志并返回
return;
}
IPage<?> rawPage = (IPage<?>) data;
if (CollectionUtils.isEmpty(rawPage.getRecords())) {
return;
}
// 提取 records,并安全转换为目标类型
List<ApiInsuranceReconciliationCompanyPageResponse> companyList = new ArrayList<>();
for (Object record : rawPage.getRecords()) {
if (record instanceof ApiInsuranceReconciliationCompanyPageResponse) {
companyList.add((ApiInsuranceReconciliationCompanyPageResponse) record);
}
}
Result result = companyFeignClient.page(request);
List<ApiInsuranceReconciliationCompanyPageResponse> companyList = extractCompanyListFromResult(result);
if (companyList.isEmpty()) { if (companyList.isEmpty()) {
return; return;
} }
...@@ -350,13 +328,34 @@ public class ApiCommissionExpectedController { ...@@ -350,13 +328,34 @@ public class ApiCommissionExpectedController {
)); ));
// 回填名称 // 回填名称
for (ReceivableReportVO vo : page.getRecords()) { page.getRecords().forEach(vo -> {
if (StringUtils.isNotBlank(vo.getReconciliationCompanyBizId())) { if (StringUtils.isNotBlank(vo.getReconciliationCompanyBizId())) {
String name = nameMap.get(vo.getReconciliationCompanyBizId()); String name = nameMap.get(vo.getReconciliationCompanyBizId());
if (StringUtils.isNotBlank(name)) { if (StringUtils.isNotBlank(name)) {
vo.setReconciliationCompany(name); vo.setReconciliationCompany(name);
} }
} }
});
}
/**
* 从 Feign 返回结果中安全提取公司列表
*/
@SuppressWarnings("unchecked")
private List<ApiInsuranceReconciliationCompanyPageResponse> extractCompanyListFromResult(Result result) {
if (result == null || result.getCode() != 200 || result.getData() == null) {
return Collections.emptyList();
}
Object data = result.getData();
if (!(data instanceof IPage<?>)) {
// 可根据需要记录日志
return Collections.emptyList();
}
IPage<?> page = (IPage<?>) data;
if (CollectionUtils.isEmpty(page.getRecords())) {
return Collections.emptyList();
} }
// 由于实际类型已知,直接转换(类型安全由服务端保证)
return (List<ApiInsuranceReconciliationCompanyPageResponse>) page.getRecords();
} }
} }
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