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
cdd11602
Commit
cdd11602
authored
Jan 26, 2026
by
jianan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新单跟进v2
parent
9aa6050f
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
91 additions
and
49 deletions
+91
-49
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionController.java
+17
-14
yd-csf-service/src/main/java/com/yd/csf/service/model/Commission.java
+5
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyFollowService.java
+3
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
+20
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyFollowServiceImpl.java
+38
-34
yd-csf-service/src/main/java/com/yd/csf/service/vo/CommissionVO.java
+6
-0
yd-csf-service/src/main/resources/mappers/CommissionMapper.xml
+2
-1
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionController.java
View file @
cdd11602
...
...
@@ -119,22 +119,25 @@ public class ApiCommissionController {
.
map
(
CommissionExcelDTO:
:
getPolicyNo2
)
.
filter
(
StringUtils:
:
isNotBlank
)
.
collect
(
Collectors
.
toSet
());
List
<
Policy
>
policies
=
policyService
.
lambdaQuery
()
.
in
(
Policy:
:
getPolicyNo
,
policyNos
)
.
list
();
Set
<
String
>
existingPolicyNos
=
policies
.
stream
().
map
(
Policy:
:
getPolicyNo
).
collect
(
Collectors
.
toSet
());
StringBuilder
errorMsg
=
new
StringBuilder
();
for
(
CommissionExcelDTO
excelDTO
:
dataList
)
{
if
(
StringUtils
.
isNotBlank
(
excelDTO
.
getPolicyNo
()))
{
if
(!
existingPolicyNos
.
contains
(
excelDTO
.
getPolicyNo
()))
{
errorMsg
.
append
(
"第"
).
append
(
dataList
.
indexOf
(
excelDTO
)
+
1
).
append
(
"行保单不存在"
);
if
(
ObjectUtils
.
isNotEmpty
(
policyNos
))
{
List
<
Policy
>
policies
=
policyService
.
lambdaQuery
()
.
in
(
Policy:
:
getPolicyNo
,
policyNos
)
.
list
();
Set
<
String
>
existingPolicyNos
=
policies
.
stream
().
map
(
Policy:
:
getPolicyNo
).
collect
(
Collectors
.
toSet
());
StringBuilder
errorMsg
=
new
StringBuilder
();
for
(
CommissionExcelDTO
excelDTO
:
dataList
)
{
if
(
StringUtils
.
isNotBlank
(
excelDTO
.
getPolicyNo
()))
{
if
(!
existingPolicyNos
.
contains
(
excelDTO
.
getPolicyNo
()))
{
errorMsg
.
append
(
"第"
).
append
(
dataList
.
indexOf
(
excelDTO
)
+
1
).
append
(
"行保单不存在"
);
}
}
}
}
if
(
StringUtils
.
isNotBlank
(
errorMsg
))
{
errorMsg
.
append
(
"\n请确认保单中心是否存在该保单,若不存在请先添加"
);
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
errorMsg
.
toString
());
if
(
StringUtils
.
isNotBlank
(
errorMsg
))
{
errorMsg
.
append
(
"\n请确认保单中心是否存在该保单,若不存在请先添加"
);
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
errorMsg
.
toString
()
);
}
}
// 获取当前登录用户的ID
...
...
@@ -197,7 +200,7 @@ public class ApiCommissionController {
}
if
(
"关联保单应收单"
.
equals
(
excelDTO
.
getCommissionBizType
()))
{
if
(
StringUtils
.
isBlank
(
excelDTO
.
getPolicyNo
()))
{
if
(
StringUtils
.
isBlank
(
excelDTO
.
getPolicyNo
2
()))
{
errorMsg
.
append
(
"第"
).
append
(
dataList
.
indexOf
(
excelDTO
)
+
1
).
append
(
"行关联保单应收单, 保单号不能为空"
);
}
if
(
ObjectUtils
.
isEmpty
(
excelDTO
.
getExchangeRate2
()))
{
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/Commission.java
View file @
cdd11602
...
...
@@ -54,6 +54,11 @@ public class Commission implements Serializable {
private
String
premium
;
/**
* 保单币种
*/
private
String
policyCurrency
;
/**
* 保险公司 id
*/
private
String
insuranceCompanyBizId
;
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyFollowService.java
View file @
cdd11602
...
...
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yd.csf.service.dto.*
;
import
com.yd.csf.service.enums.PolicyFollowStatusEnum
;
import
com.yd.csf.service.model.Policy
;
import
com.yd.csf.service.model.PolicyFollow
;
import
com.yd.csf.service.vo.PolicyFollowDetailVO
;
import
com.yd.csf.service.vo.PolicyFollowVO
;
...
...
@@ -53,6 +54,8 @@ public interface PolicyFollowService extends IService<PolicyFollow> {
Boolean
uploadAttachment
(
AttachmentUploadRequest
attachmentUploadRequest
);
String
queryReconciliationCompanyByFeign
(
String
reconciliationCompanyBizId
);
String
getNextStatus
(
PolicyFollowStatusEnum
policyFollowStatusEnum
);
String
getCurrencyValue
(
String
currency
);
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
View file @
cdd11602
...
...
@@ -240,6 +240,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
.
in
(
CommissionExpected:
:
getPolicyNo
,
policyNoSet
)
.
select
(
CommissionExpected:
:
getCommissionExpectedBizId
,
CommissionExpected:
:
getPolicyNo
,
CommissionExpected:
:
getCommissionBizType
,
CommissionExpected:
:
getReceivableNo
,
CommissionExpected:
:
getCommissionPeriod
,
CommissionExpected:
:
getTotalPeriod
,
...
...
@@ -256,6 +257,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
// 填充保费、产品名称、保险公司、对账公司
commission
.
setPremium
(
String
.
valueOf
(
policy
.
getPaymentPremium
()));
commission
.
setCurrency
(
policy
.
getCurrency
());
commission
.
setPolicyCurrency
(
policy
.
getCurrency
());
commission
.
setProductLaunchBizId
(
policy
.
getProductLaunchBizId
());
commission
.
setInsuranceCompanyBizId
(
policy
.
getInsuranceCompanyBizId
());
commission
.
setReconciliationCompany
(
policy
.
getReconciliationCompany
());
...
...
@@ -777,6 +779,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
commission
.
setInsuranceCompanyBizId
(
policy
.
getInsuranceCompanyBizId
());
commission
.
setPremium
(
Convert
.
toStr
(
policy
.
getPaymentPremium
()));
commission
.
setCurrency
(
policy
.
getCurrency
());
commission
.
setPolicyCurrency
(
policy
.
getCurrency
());
}
else
{
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"保单不存在, policyNo: "
+
request
.
getPolicyNo
());
}
...
...
@@ -910,6 +913,16 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
CommissionExpected
expected
=
new
CommissionExpected
();
BeanUtils
.
copyProperties
(
commission
,
expected
,
"id"
,
"remark"
);
expected
.
setCommissionExpectedBizId
(
RandomStringGenerator
.
generateBizId16
(
"commission_expected"
));
if
(
ObjectUtils
.
isEmpty
(
commission
.
getReconciliationCompanyCode
()))
{
if
(
ObjectUtils
.
isEmpty
(
commission
.
getReconciliationCompanyBizId
()))
{
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"来佣记录未关联对账公司"
);
}
// 调用对账公司 feignclient,查询对账公司编码
String
reconciliationCompanyCode
=
policyFollowService
.
queryReconciliationCompanyByFeign
(
commission
.
getReconciliationCompanyBizId
());
expected
.
setReconciliationCompanyCode
(
reconciliationCompanyCode
);
commission
.
setReconciliationCompanyCode
(
reconciliationCompanyCode
);
}
// 生成应收单编号
expected
.
setReceivableNo
(
receivableService
.
generateReceivableNo
(
commission
.
getCommissionBizType
(),
...
...
@@ -944,6 +957,13 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
return
true
;
}
private
String
queryReconciliationCompany
(
String
insuranceCompanyBizId
)
{
if
(
ObjectUtils
.
isNotEmpty
(
insuranceCompanyBizId
))
{
}
return
null
;
}
@Override
public
int
updateStatusBatchById
(
List
<
Commission
>
existingCommissions
)
{
return
this
.
baseMapper
.
updateStatusBatchById
(
existingCommissions
);
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyFollowServiceImpl.java
View file @
cdd11602
...
...
@@ -499,41 +499,8 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
policy
.
setReconciliationCompany
(
productInfo
.
getReconciliationCompany
());
policy
.
setReconciliationCompanyBizId
(
productInfo
.
getReconciliationCompanyBizId
());
String
reconciliationCompanyCode
=
null
;
// 调用对账公司 feignclient,查询对账公司编码
ApiInsuranceReconciliationCompanyPageRequest
reconciliationCompanyPageRequest
=
new
ApiInsuranceReconciliationCompanyPageRequest
();
reconciliationCompanyPageRequest
.
setPageNo
(
1
);
reconciliationCompanyPageRequest
.
setPageSize
(
999
);
Result
iPageResult
=
apiInsuranceReconciliationCompanyFeignClient
.
page
(
reconciliationCompanyPageRequest
);
// 解析响应获取对账公司编码
if
(
iPageResult
!=
null
&&
iPageResult
.
getCode
()
==
200
)
{
try
{
// Feign 返回的泛型会被反序列化为 LinkedHashMap,需要手动提取
Object
data
=
iPageResult
.
getData
();
if
(
data
instanceof
Map
)
{
Map
<
String
,
Object
>
dataMap
=
(
Map
<
String
,
Object
>)
data
;
Object
recordsObj
=
dataMap
.
get
(
"records"
);
if
(
recordsObj
instanceof
List
)
{
List
<
Map
<
String
,
Object
>>
records
=
(
List
<
Map
<
String
,
Object
>>)
recordsObj
;
// 遍历分页结果,找到匹配的对账公司
String
targetBizId
=
policy
.
getReconciliationCompanyBizId
();
for
(
Map
<
String
,
Object
>
record
:
records
)
{
String
recordBizId
=
(
String
)
record
.
get
(
"reconciliationCompanyBizId"
);
if
(
targetBizId
.
equals
(
recordBizId
))
{
// 获取对账公司编码
reconciliationCompanyCode
=
(
String
)
record
.
get
(
"code"
);
log
.
info
(
"从对账公司服务获取编码: reconciliationCompanyBizId={}, code={}"
,
targetBizId
,
reconciliationCompanyCode
);
break
;
// 找到后跳出循环
}
}
}
}
}
catch
(
Exception
e
)
{
log
.
error
(
"解析对账公司响应失败: {}"
,
e
.
getMessage
(),
e
);
}
}
String
reconciliationCompanyCode
=
queryReconciliationCompanyByFeign
(
policy
.
getReconciliationCompanyBizId
());
// 如果仍然没有获取到编码,抛异常
if
(
StringUtils
.
isBlank
(
reconciliationCompanyCode
))
{
...
...
@@ -570,6 +537,43 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
return
true
;
}
/**
* 调用对账公司 feignclient,查询对账公司编码
*/
@Override
public
String
queryReconciliationCompanyByFeign
(
String
reconciliationCompanyBizId
)
{
ApiInsuranceReconciliationCompanyPageRequest
reconciliationCompanyPageRequest
=
new
ApiInsuranceReconciliationCompanyPageRequest
();
reconciliationCompanyPageRequest
.
setPageNo
(
1
);
reconciliationCompanyPageRequest
.
setPageSize
(
999
);
Result
iPageResult
=
apiInsuranceReconciliationCompanyFeignClient
.
page
(
reconciliationCompanyPageRequest
);
// 解析响应获取对账公司编码
if
(
iPageResult
!=
null
&&
iPageResult
.
getCode
()
==
200
)
{
try
{
// Feign 返回的泛型会被反序列化为 LinkedHashMap,需要手动提取
Object
data
=
iPageResult
.
getData
();
if
(
data
instanceof
Map
)
{
Map
<
String
,
Object
>
dataMap
=
(
Map
<
String
,
Object
>)
data
;
Object
recordsObj
=
dataMap
.
get
(
"records"
);
if
(
recordsObj
instanceof
List
)
{
List
<
Map
<
String
,
Object
>>
records
=
(
List
<
Map
<
String
,
Object
>>)
recordsObj
;
// 遍历分页结果,找到匹配的对账公司
for
(
Map
<
String
,
Object
>
record
:
records
)
{
String
recordBizId
=
(
String
)
record
.
get
(
"reconciliationCompanyBizId"
);
if
(
reconciliationCompanyBizId
.
equals
(
recordBizId
))
{
// 获取对账公司编码
return
(
String
)
record
.
get
(
"code"
);
}
}
}
}
}
catch
(
Exception
e
)
{
log
.
error
(
"解析对账公司响应失败: {}"
,
e
.
getMessage
(),
e
);
}
}
return
null
;
}
@Override
public
String
getNextStatus
(
PolicyFollowStatusEnum
policyFollowStatusEnum
)
{
// 根据当前状态返回可能的下一步状态
...
...
yd-csf-service/src/main/java/com/yd/csf/service/vo/CommissionVO.java
View file @
cdd11602
...
...
@@ -50,6 +50,12 @@ public class CommissionVO implements Serializable {
private
String
policyNo
;
/**
* 保单币种
*/
@Schema
(
description
=
"保单币种"
)
private
String
policyCurrency
;
/**
* 期交保费
*/
@Schema
(
description
=
"期交保费"
)
...
...
yd-csf-service/src/main/resources/mappers/CommissionMapper.xml
View file @
cdd11602
...
...
@@ -12,6 +12,7 @@
<result
property=
"commissionBizType"
column=
"commission_biz_type"
/>
<result
property=
"policyNo"
column=
"policy_no"
/>
<result
property=
"premium"
column=
"premium"
/>
<result
property=
"policyCurrency"
column=
"policy_currency"
/>
<result
property=
"insuranceCompanyBizId"
column=
"insurance_company_biz_id"
/>
<result
property=
"productLaunchBizId"
column=
"product_launch_biz_id"
/>
<result
property=
"reconciliationCompany"
column=
"reconciliation_company"
/>
...
...
@@ -39,7 +40,7 @@
</resultMap>
<sql
id=
"Base_Column_List"
>
id,receivable_no,commission_biz_id,reconciliation_year_month,commission_biz_type,policy_no,premium,
id,receivable_no,commission_biz_id,reconciliation_year_month,commission_biz_type,policy_no,premium,
policy_currency,
insurance_company_biz_id,product_launch_biz_id,
reconciliation_company,reconciliation_company_code,reconciliation_company_biz_id,commission_period,
total_period,commission_name,commission_type,exchange_rate,amount,currency,
...
...
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