Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yd-csf
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xingmin
yd-csf
Commits
d4f97d4d
Commit
d4f97d4d
authored
Mar 09, 2026
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
push
parent
e7243cf5
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
94 additions
and
2 deletions
+94
-2
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiPremiumReconciliationServiceImpl.java
+87
-0
yd-csf-feign/src/main/java/com/yd/csf/feign/response/premiumreconciliation/ApiPremiumReconciliationPageResponse.java
+6
-1
yd-csf-service/src/main/resources/mappers/PremiumReconciliationMapper.xml
+1
-1
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiPremiumReconciliationServiceImpl.java
View file @
d4f97d4d
package
com
.
yd
.
csf
.
api
.
service
.
impl
;
package
com
.
yd
.
csf
.
api
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.TypeReference
;
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
;
import
com.yd.base.feign.client.bank.ApiBankFeignClient
;
import
com.yd.base.feign.client.bank.ApiBankFeignClient
;
...
@@ -42,7 +44,11 @@ import com.yd.csf.service.service.CommissionExpectedService;
...
@@ -42,7 +44,11 @@ import com.yd.csf.service.service.CommissionExpectedService;
import
com.yd.csf.service.service.IPremiumReconciliationService
;
import
com.yd.csf.service.service.IPremiumReconciliationService
;
import
com.yd.csf.service.service.PolicyFollowService
;
import
com.yd.csf.service.service.PolicyFollowService
;
import
com.yd.csf.service.service.PolicyService
;
import
com.yd.csf.service.service.PolicyService
;
import
com.yd.csf.service.vo.ReceivableReportVO
;
import
com.yd.feign.config.FeignTokenInterceptor
;
import
com.yd.feign.config.FeignTokenInterceptor
;
import
com.yd.insurance.base.feign.client.insurancereconciliationcompany.ApiInsuranceReconciliationCompanyFeignClient
;
import
com.yd.insurance.base.feign.request.insurancereconciliationcompany.ApiInsuranceReconciliationCompanyPageRequest
;
import
com.yd.insurance.base.feign.response.insurancereconciliationcompany.ApiInsuranceReconciliationCompanyPageResponse
;
import
com.yd.product.feign.response.expectedspecies.ApiExpectedSpeciesListResponse
;
import
com.yd.product.feign.response.expectedspecies.ApiExpectedSpeciesListResponse
;
import
com.yd.user.feign.client.sysdict.ApiSysDictFeignClient
;
import
com.yd.user.feign.client.sysdict.ApiSysDictFeignClient
;
import
com.yd.user.feign.request.sysdict.GetDictTypeListRequest
;
import
com.yd.user.feign.request.sysdict.GetDictTypeListRequest
;
...
@@ -102,6 +108,9 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia
...
@@ -102,6 +108,9 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia
@Resource
@Resource
private
ApiExpectedFortuneService
apiExpectedFortuneService
;
private
ApiExpectedFortuneService
apiExpectedFortuneService
;
@Resource
private
ApiInsuranceReconciliationCompanyFeignClient
companyFeignClient
;
@Autowired
@Autowired
private
ApplicationContext
applicationContext
;
private
ApplicationContext
applicationContext
;
...
@@ -503,9 +512,87 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia
...
@@ -503,9 +512,87 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia
log
.
info
(
"共更新了 {} 条记录的付款金额"
,
updatedCount
);
log
.
info
(
"共更新了 {} 条记录的付款金额"
,
updatedCount
);
}
}
//转换对账公司名称
enrichReceivableReportWithCompanyName
(
iPage
);
return
Result
.
success
(
iPage
);
return
Result
.
success
(
iPage
);
}
}
private
void
enrichReceivableReportWithCompanyName
(
IPage
<
ApiPremiumReconciliationPageResponse
>
page
)
{
if
(
page
==
null
||
org
.
apache
.
commons
.
collections4
.
CollectionUtils
.
isEmpty
(
page
.
getRecords
()))
{
return
;
}
// 收集所有非空的对账公司 bizId(去重)
List
<
String
>
bizIdList
=
page
.
getRecords
().
stream
()
.
map
(
ApiPremiumReconciliationPageResponse:
:
getReconciliationCompanyBizId
)
.
filter
(
StringUtils:
:
isNotBlank
)
.
distinct
()
.
collect
(
Collectors
.
toList
());
if
(
bizIdList
.
isEmpty
())
{
return
;
}
// 调用 Feign 批量查询对账公司信息
ApiInsuranceReconciliationCompanyPageRequest
request
=
new
ApiInsuranceReconciliationCompanyPageRequest
();
request
.
setReconciliationCompanyBizIdList
(
bizIdList
);
request
.
setPageNo
(
1
);
request
.
setPageSize
(
bizIdList
.
size
());
Result
result
=
companyFeignClient
.
page
(
request
);
List
<
ApiInsuranceReconciliationCompanyPageResponse
>
companyList
=
extractCompanyListFromResult
(
result
);
if
(
companyList
.
isEmpty
())
{
return
;
}
// 构建 bizId -> name 映射
Map
<
String
,
String
>
nameMap
=
companyList
.
stream
()
.
filter
(
c
->
StringUtils
.
isNotBlank
(
c
.
getReconciliationCompanyBizId
()))
.
collect
(
Collectors
.
toMap
(
ApiInsuranceReconciliationCompanyPageResponse:
:
getReconciliationCompanyBizId
,
ApiInsuranceReconciliationCompanyPageResponse:
:
getName
,
(
v1
,
v2
)
->
v1
// 重复时保留第一个
));
// 回填名称
page
.
getRecords
().
forEach
(
vo
->
{
if
(
StringUtils
.
isNotBlank
(
vo
.
getReconciliationCompanyBizId
()))
{
String
name
=
nameMap
.
get
(
vo
.
getReconciliationCompanyBizId
());
if
(
StringUtils
.
isNotBlank
(
name
)
&&
!
"CSF"
.
equals
(
name
))
{
vo
.
setReconciliationCompany
(
name
);
}
}
});
}
private
List
<
ApiInsuranceReconciliationCompanyPageResponse
>
extractCompanyListFromResult
(
Result
result
)
{
if
(
result
==
null
||
result
.
getCode
()
!=
200
||
result
.
getData
()
==
null
)
{
return
Collections
.
emptyList
();
}
Object
data
=
result
.
getData
();
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
;
}
}
catch
(
Exception
e
)
{
log
.
error
(
"解析公司列表失败"
,
e
);
}
return
Collections
.
emptyList
();
}
// 辅助类
// 辅助类
private
static
class
ConvertInfo
{
private
static
class
ConvertInfo
{
String
reconciliationBizId
;
String
reconciliationBizId
;
...
...
yd-csf-feign/src/main/java/com/yd/csf/feign/response/premiumreconciliation/ApiPremiumReconciliationPageResponse.java
View file @
d4f97d4d
...
@@ -110,7 +110,12 @@ public class ApiPremiumReconciliationPageResponse {
...
@@ -110,7 +110,12 @@ public class ApiPremiumReconciliationPageResponse {
private
LocalDateTime
updateTime
;
private
LocalDateTime
updateTime
;
/**
/**
* 对账公司(保单表)
* 对账公司ID(保单跟进表)
*/
private
String
reconciliationCompanyBizId
;
/**
* 对账公司名称
*/
*/
private
String
reconciliationCompany
;
private
String
reconciliationCompany
;
...
...
yd-csf-service/src/main/resources/mappers/PremiumReconciliationMapper.xml
View file @
d4f97d4d
...
@@ -27,7 +27,7 @@
...
@@ -27,7 +27,7 @@
pb.broker_name AS brokerName,
pb.broker_name AS brokerName,
pr.create_time,
pr.create_time,
pr.update_time,
pr.update_time,
p
.reconciliation_company
p
f.reconciliation_company_biz_id
FROM premium_reconciliation pr
FROM premium_reconciliation pr
LEFT JOIN policy p ON p.policy_no = pr.policy_no AND p.is_deleted = 0
LEFT JOIN policy p ON p.policy_no = pr.policy_no AND p.is_deleted = 0
LEFT JOIN policy_follow pf ON pf.policy_no = pr.policy_no AND pf.is_deleted = 0
LEFT JOIN policy_follow pf ON pf.policy_no = pr.policy_no AND pf.is_deleted = 0
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment