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
dfc546dc
Commit
dfc546dc
authored
Jan 26, 2026
by
zhangxingmin
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/test' into test
parents
9e19f051
bedd41e8
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
184 additions
and
75 deletions
+184
-75
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionController.java
+21
-14
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiPolicyFollowController.java
+6
-6
yd-csf-api/src/main/java/com/yd/csf/api/dto/CommissionExcelDTO.java
+6
-5
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
+2
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionExpectedServiceImpl.java
+15
-11
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
+83
-4
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 @
dfc546dc
...
@@ -119,22 +119,25 @@ public class ApiCommissionController {
...
@@ -119,22 +119,25 @@ public class ApiCommissionController {
.
map
(
CommissionExcelDTO:
:
getPolicyNo2
)
.
map
(
CommissionExcelDTO:
:
getPolicyNo2
)
.
filter
(
StringUtils:
:
isNotBlank
)
.
filter
(
StringUtils:
:
isNotBlank
)
.
collect
(
Collectors
.
toSet
());
.
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
();
if
(
ObjectUtils
.
isNotEmpty
(
policyNos
))
{
for
(
CommissionExcelDTO
excelDTO
:
dataList
)
{
List
<
Policy
>
policies
=
policyService
.
lambdaQuery
()
if
(
StringUtils
.
isNotBlank
(
excelDTO
.
getPolicyNo
()))
{
.
in
(
Policy:
:
getPolicyNo
,
policyNos
)
if
(!
existingPolicyNos
.
contains
(
excelDTO
.
getPolicyNo
()))
{
.
list
();
errorMsg
.
append
(
"第"
).
append
(
dataList
.
indexOf
(
excelDTO
)
+
1
).
append
(
"行保单不存在"
);
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
))
{
if
(
StringUtils
.
isNotBlank
(
errorMsg
))
{
errorMsg
.
append
(
"\n请确认保单中心是否存在该保单,若不存在请先添加"
);
errorMsg
.
append
(
"\n请确认保单中心是否存在该保单,若不存在请先添加"
);
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
errorMsg
.
toString
()
);
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
errorMsg
.
toString
());
}
}
}
// 获取当前登录用户的ID
// 获取当前登录用户的ID
...
@@ -197,12 +200,16 @@ public class ApiCommissionController {
...
@@ -197,12 +200,16 @@ public class ApiCommissionController {
}
}
if
(
"关联保单应收单"
.
equals
(
excelDTO
.
getCommissionBizType
()))
{
if
(
"关联保单应收单"
.
equals
(
excelDTO
.
getCommissionBizType
()))
{
if
(
StringUtils
.
isBlank
(
excelDTO
.
getPolicyNo
()))
{
if
(
StringUtils
.
isBlank
(
excelDTO
.
getPolicyNo
2
()))
{
errorMsg
.
append
(
"第"
).
append
(
dataList
.
indexOf
(
excelDTO
)
+
1
).
append
(
"行关联保单应收单, 保单号不能为空"
);
errorMsg
.
append
(
"第"
).
append
(
dataList
.
indexOf
(
excelDTO
)
+
1
).
append
(
"行关联保单应收单, 保单号不能为空"
);
}
}
if
(
ObjectUtils
.
isEmpty
(
excelDTO
.
getExchangeRate2
()))
{
if
(
ObjectUtils
.
isEmpty
(
excelDTO
.
getExchangeRate2
()))
{
errorMsg
.
append
(
"第"
).
append
(
dataList
.
indexOf
(
excelDTO
)
+
1
).
append
(
"行关联保单应收单, 结算汇率不能为空"
);
errorMsg
.
append
(
"第"
).
append
(
dataList
.
indexOf
(
excelDTO
)
+
1
).
append
(
"行关联保单应收单, 结算汇率不能为空"
);
}
}
}
else
{
if
(
StringUtils
.
isBlank
(
excelDTO
.
getReconciliationCompany2
()))
{
errorMsg
.
append
(
"第"
).
append
(
dataList
.
indexOf
(
excelDTO
)
+
1
).
append
(
"行, 非关联保单应收单, 对账公司不能为空"
);
}
}
}
}
}
if
(
errorMsg
.
length
()
>
0
)
{
if
(
errorMsg
.
length
()
>
0
)
{
...
...
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiPolicyFollowController.java
View file @
dfc546dc
...
@@ -534,12 +534,6 @@ public class ApiPolicyFollowController {
...
@@ -534,12 +534,6 @@ public class ApiPolicyFollowController {
if
(
changePolicyFollowStatusRequest
==
null
||
StringUtils
.
isBlank
(
changePolicyFollowStatusRequest
.
getPolicyBizId
()))
{
if
(
changePolicyFollowStatusRequest
==
null
||
StringUtils
.
isBlank
(
changePolicyFollowStatusRequest
.
getPolicyBizId
()))
{
return
Result
.
fail
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"policyBizId不能为空"
);
return
Result
.
fail
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"policyBizId不能为空"
);
}
}
if
(
ObjectUtils
.
isEmpty
(
changePolicyFollowStatusRequest
.
getEffectiveDate
()))
{
return
Result
.
fail
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"生效日期不能为空"
);
}
if
(
ObjectUtils
.
isEmpty
(
changePolicyFollowStatusRequest
.
getUnderwritingDate
()))
{
return
Result
.
fail
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"核保日期不能为空"
);
}
String
policyBizId
=
changePolicyFollowStatusRequest
.
getPolicyBizId
();
String
policyBizId
=
changePolicyFollowStatusRequest
.
getPolicyBizId
();
PolicyFollow
policyFollow
=
policyFollowService
.
getByPolicyBizId
(
policyBizId
);
PolicyFollow
policyFollow
=
policyFollowService
.
getByPolicyBizId
(
policyBizId
);
...
@@ -550,6 +544,12 @@ public class ApiPolicyFollowController {
...
@@ -550,6 +544,12 @@ public class ApiPolicyFollowController {
PolicyFollowStatusEnum
currentStatusEnum
=
PolicyFollowStatusEnum
.
getEnumByValue
(
changePolicyFollowStatusRequest
.
getStatus
());
PolicyFollowStatusEnum
currentStatusEnum
=
PolicyFollowStatusEnum
.
getEnumByValue
(
changePolicyFollowStatusRequest
.
getStatus
());
// 修改为生效时需要校验、同步预计发佣
// 修改为生效时需要校验、同步预计发佣
if
(
PolicyFollowStatusEnum
.
EFFECTIVE
.
equals
(
currentStatusEnum
))
{
if
(
PolicyFollowStatusEnum
.
EFFECTIVE
.
equals
(
currentStatusEnum
))
{
if
(
ObjectUtils
.
isEmpty
(
changePolicyFollowStatusRequest
.
getEffectiveDate
()))
{
return
Result
.
fail
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"修改为生效状态时,生效日期不能为空"
);
}
if
(
ObjectUtils
.
isEmpty
(
changePolicyFollowStatusRequest
.
getUnderwritingDate
()))
{
return
Result
.
fail
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"修改为生效状态时,核保日期不能为空"
);
}
String
productLaunchBizId
=
policyFollow
.
getProductLaunchBizId
();
String
productLaunchBizId
=
policyFollow
.
getProductLaunchBizId
();
// 校验产品是否维护预计来佣数据
// 校验产品是否维护预计来佣数据
if
(
ObjectUtils
.
isEmpty
(
productLaunchBizId
))
{
if
(
ObjectUtils
.
isEmpty
(
productLaunchBizId
))
{
...
...
yd-csf-api/src/main/java/com/yd/csf/api/dto/CommissionExcelDTO.java
View file @
dfc546dc
...
@@ -25,9 +25,6 @@ public class CommissionExcelDTO {
...
@@ -25,9 +25,6 @@ public class CommissionExcelDTO {
@ExcelProperty
(
"保费"
)
@ExcelProperty
(
"保费"
)
private
String
premium
;
private
String
premium
;
@ExcelProperty
(
"对账公司"
)
private
String
reconciliationCompany
;
@ExcelProperty
(
"当前来佣期数"
)
@ExcelProperty
(
"当前来佣期数"
)
private
Integer
commissionPeriod
;
private
Integer
commissionPeriod
;
...
@@ -76,6 +73,9 @@ public class CommissionExcelDTO {
...
@@ -76,6 +73,9 @@ public class CommissionExcelDTO {
@ExcelProperty
(
"结算汇率(实)"
)
@ExcelProperty
(
"结算汇率(实)"
)
private
BigDecimal
exchangeRate2
;
private
BigDecimal
exchangeRate2
;
@ExcelProperty
(
"对账公司"
)
private
String
reconciliationCompany2
;
/**
/**
* 数据转换
* 数据转换
...
@@ -94,6 +94,7 @@ public class CommissionExcelDTO {
...
@@ -94,6 +94,7 @@ public class CommissionExcelDTO {
entity
.
setCurrency
(
CurrencyEnum
.
getEnumByItemLabel
(
data
.
getCurrency2
()));
entity
.
setCurrency
(
CurrencyEnum
.
getEnumByItemLabel
(
data
.
getCurrency2
()));
entity
.
setExchangeRate
(
data
.
getExchangeRate2
());
entity
.
setExchangeRate
(
data
.
getExchangeRate2
());
entity
.
setCommissionDate
(
data
.
getCommissionDate2
());
entity
.
setCommissionDate
(
data
.
getCommissionDate2
());
entity
.
setReconciliationCompany
(
data
.
getReconciliationCompany2
());
entity
.
setRemark
(
data
.
getRemark
());
entity
.
setRemark
(
data
.
getRemark
());
entity
.
setStatus
(
null
);
entity
.
setStatus
(
null
);
entity
.
setCreatorId
(
loginUserId
);
entity
.
setCreatorId
(
loginUserId
);
...
@@ -113,7 +114,7 @@ public class CommissionExcelDTO {
...
@@ -113,7 +114,7 @@ public class CommissionExcelDTO {
entity
.
setPolicyNo
(
data
.
getPolicyNo
());
entity
.
setPolicyNo
(
data
.
getPolicyNo
());
entity
.
setPremium
(
data
.
getPremium
());
entity
.
setPremium
(
data
.
getPremium
());
entity
.
setCommissionBizId
(
RandomStringGenerator
.
generateBizId16
(
CommonEnum
.
UID_TYPE_COMMISSION
.
getCode
()));
entity
.
setCommissionBizId
(
RandomStringGenerator
.
generateBizId16
(
CommonEnum
.
UID_TYPE_COMMISSION
.
getCode
()));
entity
.
setReconciliationCompany
(
data
.
getReconciliationCompany
());
entity
.
setReconciliationCompany
(
data
.
getReconciliationCompany
2
());
entity
.
setCommissionPeriod
(
data
.
getCommissionPeriod
());
entity
.
setCommissionPeriod
(
data
.
getCommissionPeriod
());
entity
.
setTotalPeriod
(
data
.
getTotalPeriod
());
entity
.
setTotalPeriod
(
data
.
getTotalPeriod
());
entity
.
setCommissionName
(
data
.
getCommissionName
());
entity
.
setCommissionName
(
data
.
getCommissionName
());
...
@@ -142,7 +143,7 @@ public class CommissionExcelDTO {
...
@@ -142,7 +143,7 @@ public class CommissionExcelDTO {
// 字段映射
// 字段映射
entity
.
setPolicyNo
(
data
.
getPolicyNo
());
entity
.
setPolicyNo
(
data
.
getPolicyNo
());
entity
.
setCommissionExpectedBizId
(
RandomStringGenerator
.
generateBizId16
(
"commission_expected"
));
entity
.
setCommissionExpectedBizId
(
RandomStringGenerator
.
generateBizId16
(
"commission_expected"
));
entity
.
setReconciliationCompany
(
data
.
getReconciliationCompany
());
entity
.
setReconciliationCompany
(
data
.
getReconciliationCompany
2
());
entity
.
setCommissionPeriod
(
data
.
getCommissionPeriod
());
entity
.
setCommissionPeriod
(
data
.
getCommissionPeriod
());
entity
.
setTotalPeriod
(
data
.
getTotalPeriod
());
entity
.
setTotalPeriod
(
data
.
getTotalPeriod
());
entity
.
setCommissionName
(
data
.
getCommissionName
());
entity
.
setCommissionName
(
data
.
getCommissionName
());
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/Commission.java
View file @
dfc546dc
...
@@ -54,6 +54,11 @@ public class Commission implements Serializable {
...
@@ -54,6 +54,11 @@ public class Commission implements Serializable {
private
String
premium
;
private
String
premium
;
/**
/**
* 保单币种
*/
private
String
policyCurrency
;
/**
* 保险公司 id
* 保险公司 id
*/
*/
private
String
insuranceCompanyBizId
;
private
String
insuranceCompanyBizId
;
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyFollowService.java
View file @
dfc546dc
...
@@ -54,6 +54,8 @@ public interface PolicyFollowService extends IService<PolicyFollow> {
...
@@ -54,6 +54,8 @@ public interface PolicyFollowService extends IService<PolicyFollow> {
Boolean
uploadAttachment
(
AttachmentUploadRequest
attachmentUploadRequest
);
Boolean
uploadAttachment
(
AttachmentUploadRequest
attachmentUploadRequest
);
String
queryReconciliationCompanyByFeign
(
String
reconciliationCompanyBizId
);
String
getNextStatus
(
PolicyFollowStatusEnum
policyFollowStatusEnum
);
String
getNextStatus
(
PolicyFollowStatusEnum
policyFollowStatusEnum
);
String
getCurrencyValue
(
String
currency
);
String
getCurrencyValue
(
String
currency
);
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionExpectedServiceImpl.java
View file @
dfc546dc
...
@@ -486,7 +486,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
...
@@ -486,7 +486,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
if
(
effectiveDate
==
null
)
{
if
(
effectiveDate
==
null
)
{
throw
new
BusinessException
(
"保单生效日期不能为空"
);
throw
new
BusinessException
(
"保单生效日期不能为空"
);
}
}
Object
paymentTerm
=
policy
.
getPaymentTerm
(
);
String
paymentTerm
=
Convert
.
toStr
(
policy
.
getPaymentTerm
()
);
if
(
paymentTerm
==
null
)
{
if
(
paymentTerm
==
null
)
{
throw
new
BusinessException
(
"保单供款年期不能为空"
);
throw
new
BusinessException
(
"保单供款年期不能为空"
);
}
}
...
@@ -496,21 +496,23 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
...
@@ -496,21 +496,23 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
if
(
StringUtils
.
isNotBlank
(
productLaunchBizId
))
{
if
(
StringUtils
.
isNotBlank
(
productLaunchBizId
))
{
List
<
ApiExpectedSpeciesListResponse
>
expectedSpeciesList
=
queryExpectedSpeciesByFeign
(
productLaunchBizId
);
List
<
ApiExpectedSpeciesListResponse
>
expectedSpeciesList
=
queryExpectedSpeciesByFeign
(
productLaunchBizId
);
log
.
info
(
"productLaunchBizId:{}, 查询到的佣金规格列表:{}"
,
productLaunchBizId
,
expectedSpeciesList
);
List
<
CommissionExpected
>
commissionExpectedList
=
new
ArrayList
<>();
List
<
CommissionExpected
>
commissionExpectedList
=
new
ArrayList
<>();
if
(
CollUtil
.
isNotEmpty
(
expectedSpeciesList
))
{
if
(
CollUtil
.
isNotEmpty
(
expectedSpeciesList
))
{
// 计算佣金总期数 list 中 endPeriod最大值
Integer
maxEndPeriod
=
expectedSpeciesList
.
stream
()
.
map
(
item
->
Convert
.
toInt
(
item
.
getEndPeriod
()))
.
max
(
Integer:
:
compareTo
)
.
orElse
(
0
);
// 根据供款年期匹配规格
// 根据供款年期匹配规格
List
<
ApiExpectedSpeciesListResponse
>
collect
=
expectedSpeciesList
.
stream
()
List
<
ApiExpectedSpeciesListResponse
>
collect
=
expectedSpeciesList
.
stream
()
.
filter
(
i
->
paymentTerm
.
equals
(
i
.
getPaymentTerm
()))
.
filter
(
i
->
paymentTerm
.
equals
(
i
.
getPaymentTerm
()))
.
collect
(
Collectors
.
toList
());
.
collect
(
Collectors
.
toList
());
if
(
ObjectUtils
.
isEmpty
(
collect
))
{
throw
new
BusinessException
(
ResultCode
.
FAIL
.
getCode
(),
"未查询到对应供款年期的佣金规格"
);
}
// 计算佣金总期数 list 中 endPeriod最大值
Integer
maxEndPeriod
=
collect
.
stream
()
.
map
(
item
->
Convert
.
toInt
(
item
.
getEndPeriod
()))
.
max
(
Integer:
:
compareTo
)
.
orElse
(
0
);
for
(
ApiExpectedSpeciesListResponse
item
:
collect
)
{
for
(
ApiExpectedSpeciesListResponse
item
:
collect
)
{
CommissionExpected
commissionExpected
=
new
CommissionExpected
();
CommissionExpected
commissionExpected
=
new
CommissionExpected
();
commissionExpected
.
setCommissionExpectedBizId
(
RandomStringGenerator
.
generateBizId16
(
"commission_expected"
));
commissionExpected
.
setCommissionExpectedBizId
(
RandomStringGenerator
.
generateBizId16
(
"commission_expected"
));
...
@@ -565,10 +567,12 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
...
@@ -565,10 +567,12 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
apiExpectedSpeciesListRequest
.
setProductLaunchBizId
(
productLaunchBizId
);
apiExpectedSpeciesListRequest
.
setProductLaunchBizId
(
productLaunchBizId
);
Result
<
List
<
ApiExpectedSpeciesListResponse
>>
result
=
apiExpectedSpeciesFeignClient
.
list
(
apiExpectedSpeciesListRequest
);
Result
<
List
<
ApiExpectedSpeciesListResponse
>>
result
=
apiExpectedSpeciesFeignClient
.
list
(
apiExpectedSpeciesListRequest
);
if
(
ObjectUtils
.
isNotEmpty
(
result
.
getData
())
)
{
if
(
result
!=
null
&&
result
.
getCode
()
==
200
)
{
return
result
.
getData
();
return
result
.
getData
();
}
else
{
log
.
error
(
"查询预计出佣规格失败: productLaunchBizId={}"
,
productLaunchBizId
);
throw
new
BusinessException
(
ResultCode
.
FAIL
.
getCode
(),
"查询预计出佣规格失败"
);
}
}
return
Collections
.
emptyList
();
}
}
@Override
@Override
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
View file @
dfc546dc
...
@@ -25,6 +25,8 @@ import com.yd.csf.service.service.*;
...
@@ -25,6 +25,8 @@ import com.yd.csf.service.service.*;
import
com.yd.csf.service.dao.CommissionMapper
;
import
com.yd.csf.service.dao.CommissionMapper
;
import
com.yd.csf.service.vo.CommissionStatisticsVO
;
import
com.yd.csf.service.vo.CommissionStatisticsVO
;
import
com.yd.csf.service.vo.CommissionVO
;
import
com.yd.csf.service.vo.CommissionVO
;
import
com.yd.insurance.base.feign.client.insurancereconciliationcompany.ApiInsuranceReconciliationCompanyFeignClient
;
import
com.yd.insurance.base.feign.request.insurancereconciliationcompany.ApiInsuranceReconciliationCompanyPageRequest
;
import
com.yd.user.feign.client.sysdict.ApiSysDictFeignClient
;
import
com.yd.user.feign.client.sysdict.ApiSysDictFeignClient
;
import
com.yd.user.feign.response.sysdict.GetDictItemListByDictTypeResponse
;
import
com.yd.user.feign.response.sysdict.GetDictItemListByDictTypeResponse
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
@@ -81,6 +83,8 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
...
@@ -81,6 +83,8 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
private
ReceivableService
receivableService
;
private
ReceivableService
receivableService
;
@Autowired
@Autowired
private
ApiSysDictFeignClient
apiSysDictFeignClient
;
private
ApiSysDictFeignClient
apiSysDictFeignClient
;
@Resource
private
ApiInsuranceReconciliationCompanyFeignClient
apiInsuranceReconciliationCompanyFeignClient
;
@Override
@Override
...
@@ -240,6 +244,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
...
@@ -240,6 +244,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
.
in
(
CommissionExpected:
:
getPolicyNo
,
policyNoSet
)
.
in
(
CommissionExpected:
:
getPolicyNo
,
policyNoSet
)
.
select
(
CommissionExpected:
:
getCommissionExpectedBizId
,
.
select
(
CommissionExpected:
:
getCommissionExpectedBizId
,
CommissionExpected:
:
getPolicyNo
,
CommissionExpected:
:
getPolicyNo
,
CommissionExpected:
:
getCommissionBizType
,
CommissionExpected:
:
getReceivableNo
,
CommissionExpected:
:
getReceivableNo
,
CommissionExpected:
:
getCommissionPeriod
,
CommissionExpected:
:
getCommissionPeriod
,
CommissionExpected:
:
getTotalPeriod
,
CommissionExpected:
:
getTotalPeriod
,
...
@@ -249,13 +254,25 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
...
@@ -249,13 +254,25 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
CommissionExpected:
:
getStatus
)
CommissionExpected:
:
getStatus
)
.
list
();
.
list
();
// 3.查询对账公司列表
Set
<
String
>
reconciliationCompanySet
=
commissionList
.
stream
()
.
map
(
Commission:
:
getReconciliationCompany
)
.
filter
(
Objects:
:
nonNull
).
collect
(
Collectors
.
toSet
());
List
<
Map
<
String
,
Object
>>
reconciliationCompanyList
=
Collections
.
emptyList
();
if
(!
reconciliationCompanySet
.
isEmpty
())
{
reconciliationCompanyList
=
queryReconciliationCompanyListByFeign
();
}
// 填充信息
// 填充信息
commissionList
.
forEach
(
commission
->
{
for
(
Commission
commission
:
commissionList
)
{
Policy
policy
=
policyMap
.
get
(
commission
.
getPolicyNo
());
Policy
policy
=
policyMap
.
get
(
commission
.
getPolicyNo
());
if
(
policy
!=
null
)
{
if
(
policy
!=
null
)
{
// 填充保费、产品名称、保险公司、对账公司
// 填充保费、产品名称、保险公司、对账公司
commission
.
setPremium
(
String
.
valueOf
(
policy
.
getPaymentPremium
()));
commission
.
setPremium
(
String
.
valueOf
(
policy
.
getPaymentPremium
()));
commission
.
setCurrency
(
policy
.
getCurrency
());
commission
.
setCurrency
(
policy
.
getCurrency
());
commission
.
setPolicyCurrency
(
policy
.
getCurrency
());
commission
.
setProductLaunchBizId
(
policy
.
getProductLaunchBizId
());
commission
.
setProductLaunchBizId
(
policy
.
getProductLaunchBizId
());
commission
.
setInsuranceCompanyBizId
(
policy
.
getInsuranceCompanyBizId
());
commission
.
setInsuranceCompanyBizId
(
policy
.
getInsuranceCompanyBizId
());
commission
.
setReconciliationCompany
(
policy
.
getReconciliationCompany
());
commission
.
setReconciliationCompany
(
policy
.
getReconciliationCompany
());
...
@@ -275,9 +292,52 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
...
@@ -275,9 +292,52 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
commission
.
setRemark
(
"未查询到预计来佣记录"
);
commission
.
setRemark
(
"未查询到预计来佣记录"
);
commission
.
setStatus
(
CommissionStatusEnum
.
MATCH_FAILED
.
getItemValue
());
commission
.
setStatus
(
CommissionStatusEnum
.
MATCH_FAILED
.
getItemValue
());
}
}
// 设置对账公司信息
if
(!
reconciliationCompanyList
.
isEmpty
())
{
setReconciliationCompanyInfo
(
commission
,
reconciliationCompanyList
);
}
// 计算来佣金额(港币)
// 计算来佣金额(港币)
commission
.
setHkdAmount
(
calculateHKDAmount
(
commission
.
getAmount
(),
commission
.
getExchangeRate
(),
commission
.
getCurrency
()));
commission
.
setHkdAmount
(
calculateHKDAmount
(
commission
.
getAmount
(),
commission
.
getExchangeRate
(),
commission
.
getCurrency
()));
});
}
}
private
void
setReconciliationCompanyInfo
(
Commission
commission
,
List
<
Map
<
String
,
Object
>>
reconciliationCompanyList
)
{
for
(
Map
<
String
,
Object
>
map
:
reconciliationCompanyList
)
{
String
name
=
(
String
)
map
.
get
(
"name"
);
if
(
name
.
contains
(
commission
.
getReconciliationCompany
()))
{
commission
.
setReconciliationCompany
(
Convert
.
toStr
(
map
.
get
(
"name"
)));
commission
.
setReconciliationCompanyBizId
(
Convert
.
toStr
(
map
.
get
(
"reconciliationCompanyBizId"
)));
commission
.
setReconciliationCompanyCode
(
Convert
.
toStr
(
map
.
get
(
"code"
)));
break
;
}
}
}
public
List
<
Map
<
String
,
Object
>>
queryReconciliationCompanyListByFeign
()
{
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
;
return
records
;
}
}
}
catch
(
Exception
e
)
{
log
.
error
(
"解析对账公司响应失败: {}"
,
e
.
getMessage
(),
e
);
}
}
return
Collections
.
emptyList
();
}
}
private
CommissionExpected
findExpectedFromList
(
Commission
commission
,
List
<
CommissionExpected
>
commissionExpectedList
)
{
private
CommissionExpected
findExpectedFromList
(
Commission
commission
,
List
<
CommissionExpected
>
commissionExpectedList
)
{
...
@@ -653,7 +713,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
...
@@ -653,7 +713,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
return
BigDecimal
.
valueOf
(
1
);
return
BigDecimal
.
valueOf
(
1
);
}
}
Result
<
List
<
GetDictItemListByDictTypeResponse
>>
result
=
apiSysDictFeignClient
.
getDictItemListByDictType
(
"csf_exchange_rate_hkd"
);
Result
<
List
<
GetDictItemListByDictTypeResponse
>>
result
=
apiSysDictFeignClient
.
getDictItemListByDictType
(
"csf_exchange_rate_hkd"
);
if
(
org
.
apache
.
commons
.
collections4
.
CollectionUtils
.
isNotEmpty
(
result
.
getData
()))
{
if
(
CollectionUtils
.
isNotEmpty
(
result
.
getData
()))
{
for
(
GetDictItemListByDictTypeResponse
dictItem
:
result
.
getData
())
{
for
(
GetDictItemListByDictTypeResponse
dictItem
:
result
.
getData
())
{
if
(
StringUtils
.
equalsIgnoreCase
(
dictItem
.
getItemLabel
(),
currency
))
{
if
(
StringUtils
.
equalsIgnoreCase
(
dictItem
.
getItemLabel
(),
currency
))
{
return
new
BigDecimal
(
dictItem
.
getItemValue
());
return
new
BigDecimal
(
dictItem
.
getItemValue
());
...
@@ -777,6 +837,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
...
@@ -777,6 +837,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
commission
.
setInsuranceCompanyBizId
(
policy
.
getInsuranceCompanyBizId
());
commission
.
setInsuranceCompanyBizId
(
policy
.
getInsuranceCompanyBizId
());
commission
.
setPremium
(
Convert
.
toStr
(
policy
.
getPaymentPremium
()));
commission
.
setPremium
(
Convert
.
toStr
(
policy
.
getPaymentPremium
()));
commission
.
setCurrency
(
policy
.
getCurrency
());
commission
.
setCurrency
(
policy
.
getCurrency
());
commission
.
setPolicyCurrency
(
policy
.
getCurrency
());
}
else
{
}
else
{
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"保单不存在, policyNo: "
+
request
.
getPolicyNo
());
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"保单不存在, policyNo: "
+
request
.
getPolicyNo
());
}
}
...
@@ -910,6 +971,16 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
...
@@ -910,6 +971,16 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
CommissionExpected
expected
=
new
CommissionExpected
();
CommissionExpected
expected
=
new
CommissionExpected
();
BeanUtils
.
copyProperties
(
commission
,
expected
,
"id"
,
"remark"
);
BeanUtils
.
copyProperties
(
commission
,
expected
,
"id"
,
"remark"
);
expected
.
setCommissionExpectedBizId
(
RandomStringGenerator
.
generateBizId16
(
"commission_expected"
));
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
(
expected
.
setReceivableNo
(
receivableService
.
generateReceivableNo
(
commission
.
getCommissionBizType
(),
commission
.
getCommissionBizType
(),
...
@@ -937,13 +1008,21 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
...
@@ -937,13 +1008,21 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
.
set
(
Commission:
:
getCommissionExpectedBizId
,
expected
.
getCommissionExpectedBizId
())
.
set
(
Commission:
:
getCommissionExpectedBizId
,
expected
.
getCommissionExpectedBizId
())
.
set
(
Commission:
:
getReceivableNo
,
expected
.
getReceivableNo
())
.
set
(
Commission:
:
getReceivableNo
,
expected
.
getReceivableNo
())
.
set
(
Commission:
:
getStatus
,
CommissionStatusEnum
.
COMPARE_SUCCESS
.
getItemValue
())
.
set
(
Commission:
:
getStatus
,
CommissionStatusEnum
.
COMPARE_SUCCESS
.
getItemValue
())
.
set
(
Commission:
:
getRemark
,
null
)
.
set
(
Commission:
:
getStatusDesc
,
expected
.
getStatusDesc
())
.
set
(
Commission:
:
getRemark
,
expected
.
getStatusDesc
())
.
eq
(
Commission:
:
getId
,
commission
.
getId
())
.
eq
(
Commission:
:
getId
,
commission
.
getId
())
.
update
();
.
update
();
return
true
;
return
true
;
}
}
private
String
queryReconciliationCompany
(
String
insuranceCompanyBizId
)
{
if
(
ObjectUtils
.
isNotEmpty
(
insuranceCompanyBizId
))
{
}
return
null
;
}
@Override
@Override
public
int
updateStatusBatchById
(
List
<
Commission
>
existingCommissions
)
{
public
int
updateStatusBatchById
(
List
<
Commission
>
existingCommissions
)
{
return
this
.
baseMapper
.
updateStatusBatchById
(
existingCommissions
);
return
this
.
baseMapper
.
updateStatusBatchById
(
existingCommissions
);
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyFollowServiceImpl.java
View file @
dfc546dc
...
@@ -499,41 +499,8 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
...
@@ -499,41 +499,8 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
policy
.
setReconciliationCompany
(
productInfo
.
getReconciliationCompany
());
policy
.
setReconciliationCompany
(
productInfo
.
getReconciliationCompany
());
policy
.
setReconciliationCompanyBizId
(
productInfo
.
getReconciliationCompanyBizId
());
policy
.
setReconciliationCompanyBizId
(
productInfo
.
getReconciliationCompanyBizId
());
String
reconciliationCompanyCode
=
null
;
// 调用对账公司 feignclient,查询对账公司编码
// 调用对账公司 feignclient,查询对账公司编码
ApiInsuranceReconciliationCompanyPageRequest
reconciliationCompanyPageRequest
=
new
ApiInsuranceReconciliationCompanyPageRequest
();
String
reconciliationCompanyCode
=
queryReconciliationCompanyByFeign
(
policy
.
getReconciliationCompanyBizId
());
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
);
}
}
// 如果仍然没有获取到编码,抛异常
// 如果仍然没有获取到编码,抛异常
if
(
StringUtils
.
isBlank
(
reconciliationCompanyCode
))
{
if
(
StringUtils
.
isBlank
(
reconciliationCompanyCode
))
{
...
@@ -570,6 +537,43 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
...
@@ -570,6 +537,43 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
return
true
;
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
@Override
public
String
getNextStatus
(
PolicyFollowStatusEnum
policyFollowStatusEnum
)
{
public
String
getNextStatus
(
PolicyFollowStatusEnum
policyFollowStatusEnum
)
{
// 根据当前状态返回可能的下一步状态
// 根据当前状态返回可能的下一步状态
...
...
yd-csf-service/src/main/java/com/yd/csf/service/vo/CommissionVO.java
View file @
dfc546dc
...
@@ -50,6 +50,12 @@ public class CommissionVO implements Serializable {
...
@@ -50,6 +50,12 @@ public class CommissionVO implements Serializable {
private
String
policyNo
;
private
String
policyNo
;
/**
/**
* 保单币种
*/
@Schema
(
description
=
"保单币种"
)
private
String
policyCurrency
;
/**
* 期交保费
* 期交保费
*/
*/
@Schema
(
description
=
"期交保费"
)
@Schema
(
description
=
"期交保费"
)
...
...
yd-csf-service/src/main/resources/mappers/CommissionMapper.xml
View file @
dfc546dc
...
@@ -12,6 +12,7 @@
...
@@ -12,6 +12,7 @@
<result
property=
"commissionBizType"
column=
"commission_biz_type"
/>
<result
property=
"commissionBizType"
column=
"commission_biz_type"
/>
<result
property=
"policyNo"
column=
"policy_no"
/>
<result
property=
"policyNo"
column=
"policy_no"
/>
<result
property=
"premium"
column=
"premium"
/>
<result
property=
"premium"
column=
"premium"
/>
<result
property=
"policyCurrency"
column=
"policy_currency"
/>
<result
property=
"insuranceCompanyBizId"
column=
"insurance_company_biz_id"
/>
<result
property=
"insuranceCompanyBizId"
column=
"insurance_company_biz_id"
/>
<result
property=
"productLaunchBizId"
column=
"product_launch_biz_id"
/>
<result
property=
"productLaunchBizId"
column=
"product_launch_biz_id"
/>
<result
property=
"reconciliationCompany"
column=
"reconciliation_company"
/>
<result
property=
"reconciliationCompany"
column=
"reconciliation_company"
/>
...
@@ -39,7 +40,7 @@
...
@@ -39,7 +40,7 @@
</resultMap>
</resultMap>
<sql
id=
"Base_Column_List"
>
<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,
insurance_company_biz_id,product_launch_biz_id,
reconciliation_company,reconciliation_company_code,reconciliation_company_biz_id,commission_period,
reconciliation_company,reconciliation_company_code,reconciliation_company_biz_id,commission_period,
total_period,commission_name,commission_type,exchange_rate,amount,currency,
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