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
7cdefb4e
Commit
7cdefb4e
authored
Jan 08, 2026
by
zhangxingmin
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/test' into test
parents
e298b547
95a072fa
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
136 additions
and
54 deletions
+136
-54
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionController.java
+2
-2
yd-csf-service/src/main/java/com/yd/csf/service/component/CommissionAsyncService.java
+6
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionExpectedUpdateRequest.java
+6
-0
yd-csf-service/src/main/java/com/yd/csf/service/model/Commission.java
+8
-6
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionExpectedServiceImpl.java
+36
-19
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
+73
-16
yd-csf-service/src/main/java/com/yd/csf/service/vo/CommissionExpectedVO.java
+1
-3
yd-csf-service/src/main/resources/mappers/CommissionMapper.xml
+4
-8
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionController.java
View file @
7cdefb4e
...
@@ -298,8 +298,8 @@ public class ApiCommissionController {
...
@@ -298,8 +298,8 @@ public class ApiCommissionController {
@PostMapping
(
"/compare/records"
)
@PostMapping
(
"/compare/records"
)
@Operation
(
summary
=
"来佣比对记录列表"
,
description
=
"可根据实际来佣业务id、预计来佣业务id,查询来佣比对记录"
)
@Operation
(
summary
=
"来佣比对记录列表"
,
description
=
"可根据实际来佣业务id、预计来佣业务id,查询来佣比对记录"
)
public
Result
<
Page
<
CommissionCompareRecord
>>
getCommissionCompareRecords
(
@RequestBody
CommissionCompareRecordQueryRequest
queryRequest
)
{
public
Result
<
Page
<
CommissionCompareRecord
>>
getCommissionCompareRecords
(
@RequestBody
CommissionCompareRecordQueryRequest
queryRequest
)
{
if
(
StringUtils
.
isBlank
(
queryRequest
.
getCommissionBizId
()))
{
if
(
StringUtils
.
isBlank
(
queryRequest
.
getCommissionBizId
())
&&
StringUtils
.
isBlank
(
queryRequest
.
getCommissionExpectedBizId
())
)
{
return
Result
.
fail
(
ErrorCode
.
PARAMS_ERROR
.
getCode
(),
"commissionBizId不能
为空"
);
return
Result
.
fail
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"commissionBizId、commissionExpectedBizId不能同时
为空"
);
}
}
// 查询来佣比对记录
// 查询来佣比对记录
QueryWrapper
<
CommissionCompareRecord
>
queryWrapper
=
new
QueryWrapper
<
CommissionCompareRecord
>();
QueryWrapper
<
CommissionCompareRecord
>
queryWrapper
=
new
QueryWrapper
<
CommissionCompareRecord
>();
...
...
yd-csf-service/src/main/java/com/yd/csf/service/component/CommissionAsyncService.java
View file @
7cdefb4e
...
@@ -119,6 +119,7 @@ public class CommissionAsyncService {
...
@@ -119,6 +119,7 @@ public class CommissionAsyncService {
// 预计来佣设置为部分来佣
// 预计来佣设置为部分来佣
commissionExpectedService
.
lambdaUpdate
()
commissionExpectedService
.
lambdaUpdate
()
.
set
(
CommissionExpected:
:
getStatus
,
CommissionExpectedStatusEnum
.
PARTIAL
.
getItemValue
())
.
set
(
CommissionExpected:
:
getStatus
,
CommissionExpectedStatusEnum
.
PARTIAL
.
getItemValue
())
.
set
(
CommissionExpected:
:
getPaidAmount
,
actualAmount
)
.
eq
(
CommissionExpected:
:
getId
,
commissionExpected
.
getId
())
.
eq
(
CommissionExpected:
:
getId
,
commissionExpected
.
getId
())
.
update
();
.
update
();
// 来佣比对失败
// 来佣比对失败
...
@@ -244,6 +245,8 @@ public class CommissionAsyncService {
...
@@ -244,6 +245,8 @@ public class CommissionAsyncService {
// 对应预计来佣设置为部分来佣
// 对应预计来佣设置为部分来佣
commissionExpectedService
.
lambdaUpdate
()
commissionExpectedService
.
lambdaUpdate
()
.
set
(
CommissionExpected:
:
getStatus
,
CommissionExpectedStatusEnum
.
PARTIAL
.
getItemValue
())
.
set
(
CommissionExpected:
:
getStatus
,
CommissionExpectedStatusEnum
.
PARTIAL
.
getItemValue
())
.
set
(
CommissionExpected:
:
getPaidAmount
,
paidAmount
)
.
set
(
CommissionExpected:
:
getPaidRatio
,
paidRatio
)
.
eq
(
CommissionExpected:
:
getId
,
commissionExpected
.
getId
())
.
eq
(
CommissionExpected:
:
getId
,
commissionExpected
.
getId
())
.
update
();
.
update
();
// 更新已比对来佣记录
// 更新已比对来佣记录
...
@@ -321,6 +324,7 @@ public class CommissionAsyncService {
...
@@ -321,6 +324,7 @@ public class CommissionAsyncService {
// 预计来佣设置为部分来佣
// 预计来佣设置为部分来佣
commissionExpectedService
.
lambdaUpdate
()
commissionExpectedService
.
lambdaUpdate
()
.
set
(
CommissionExpected:
:
getStatus
,
CommissionExpectedStatusEnum
.
PARTIAL
.
getItemValue
())
.
set
(
CommissionExpected:
:
getStatus
,
CommissionExpectedStatusEnum
.
PARTIAL
.
getItemValue
())
.
set
(
CommissionExpected:
:
getPaidAmount
,
commission
.
getAmount
())
.
eq
(
CommissionExpected:
:
getId
,
commissionExpected
.
getId
())
.
eq
(
CommissionExpected:
:
getId
,
commissionExpected
.
getId
())
.
update
();
.
update
();
// 保存比对记录
// 保存比对记录
...
@@ -409,6 +413,8 @@ public class CommissionAsyncService {
...
@@ -409,6 +413,8 @@ public class CommissionAsyncService {
// 预计来佣设置为部分来佣
// 预计来佣设置为部分来佣
commissionExpectedService
.
lambdaUpdate
()
commissionExpectedService
.
lambdaUpdate
()
.
set
(
CommissionExpected:
:
getStatus
,
CommissionExpectedStatusEnum
.
PARTIAL
.
getItemValue
())
.
set
(
CommissionExpected:
:
getStatus
,
CommissionExpectedStatusEnum
.
PARTIAL
.
getItemValue
())
.
set
(
CommissionExpected:
:
getPaidAmount
,
paidAmount
)
.
set
(
CommissionExpected:
:
getPaidRatio
,
paidRatio
)
.
eq
(
CommissionExpected:
:
getId
,
commissionExpected
.
getId
())
.
eq
(
CommissionExpected:
:
getId
,
commissionExpected
.
getId
())
.
update
();
.
update
();
// 保存比对记录
// 保存比对记录
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionExpectedUpdateRequest.java
View file @
7cdefb4e
...
@@ -19,6 +19,12 @@ public class CommissionExpectedUpdateRequest implements Serializable {
...
@@ -19,6 +19,12 @@ public class CommissionExpectedUpdateRequest implements Serializable {
private
String
commissionExpectedBizId
;
private
String
commissionExpectedBizId
;
/**
/**
* 佣金业务类型
*/
@Schema
(
description
=
"佣金业务类型"
)
private
String
commissionBizType
;
/**
* 入账状态
* 入账状态
*/
*/
@Schema
(
description
=
"入账状态 字典值: csf_expected_commission_status"
)
@Schema
(
description
=
"入账状态 字典值: csf_expected_commission_status"
)
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/Commission.java
View file @
7cdefb4e
...
@@ -177,10 +177,11 @@ public class Commission implements Serializable {
...
@@ -177,10 +177,11 @@ public class Commission implements Serializable {
@TableField
(
exist
=
false
)
@TableField
(
exist
=
false
)
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
public
BigDecimal
calculateCurrentPaidRatio
()
{
// public BigDecimal calculateCurrentPaidRatio() {
// 当前来佣比例=当前入账金额/结算汇率/保费 * 100
// // 当前来佣比例=当前入账金额/结算汇率/保费 * 100
return
amount
.
divide
(
new
BigDecimal
(
premium
),
4
,
RoundingMode
.
HALF_UP
)
// return amount.divide(new BigDecimal(premium), 4, RoundingMode.HALF_UP)
.
divide
(
exchangeRate
,
4
,
RoundingMode
.
HALF_UP
)
// .divide(exchangeRate, 4, RoundingMode.HALF_UP)
.
multiply
(
new
BigDecimal
(
100
));
// .multiply(new BigDecimal(100));
}
// }
}
}
\ No newline at end of file
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionExpectedServiceImpl.java
View file @
7cdefb4e
...
@@ -115,6 +115,9 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
...
@@ -115,6 +115,9 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
if
(
ObjectUtils
.
isEmpty
(
commissionBizType
))
{
if
(
ObjectUtils
.
isEmpty
(
commissionBizType
))
{
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"应收款类型不能为空"
);
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"应收款类型不能为空"
);
}
}
if
(
ObjectUtils
.
isEmpty
(
commissionExpected
.
getCommissionName
()))
{
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"应收款名称不能为空"
);
}
if
(
"R"
.
equals
(
commissionBizType
))
{
if
(
"R"
.
equals
(
commissionBizType
))
{
// 关联保单应收单,保单号不能为空
// 关联保单应收单,保单号不能为空
String
policyNo
=
commissionExpected
.
getPolicyNo
();
String
policyNo
=
commissionExpected
.
getPolicyNo
();
...
@@ -129,6 +132,9 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
...
@@ -129,6 +132,9 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
if
(
ObjectUtils
.
isEmpty
(
commissionRatio
))
{
if
(
ObjectUtils
.
isEmpty
(
commissionRatio
))
{
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"入账比例不能为空"
);
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"入账比例不能为空"
);
}
}
if
(
StringUtils
.
isBlank
(
commissionExpected
.
getCurrency
()))
{
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"入账币种不能为空"
);
}
Integer
commissionPeriod
=
commissionExpected
.
getCommissionPeriod
();
Integer
commissionPeriod
=
commissionExpected
.
getCommissionPeriod
();
if
(
ObjectUtils
.
isEmpty
(
commissionPeriod
))
{
if
(
ObjectUtils
.
isEmpty
(
commissionPeriod
))
{
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"佣金期数不能为空"
);
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"佣金期数不能为空"
);
...
@@ -268,10 +274,9 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
...
@@ -268,10 +274,9 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
validCommissionExpected
(
commissionExpected
,
true
);
validCommissionExpected
(
commissionExpected
,
true
);
// 结算汇率初始值为 1
// 结算汇率初始值为 1
commissionExpected
.
setDefaultExchangeRate
(
BigDecimal
.
valueOf
(
1
));
commissionExpected
.
setDefaultExchangeRate
(
BigDecimal
.
valueOf
(
1
));
// 如果币种不是港币,查询默认结算汇率
// 查询默认结算汇率
if
(!
StringUtils
.
equalsIgnoreCase
(
addDto
.
getCurrency
(),
"HKD"
))
{
commissionExpected
.
setDefaultExchangeRate
(
queryDefaultExchangeRate
(
addDto
.
getCurrency
()));
commissionExpected
.
setDefaultExchangeRate
(
queryDefaultExchangeRate
(
addDto
.
getCurrency
()));
}
// 预计总金额
// 预计总金额
if
(
"R"
.
equals
(
addDto
.
getCommissionBizType
()))
{
if
(
"R"
.
equals
(
addDto
.
getCommissionBizType
()))
{
Policy
policy
=
policyMap
.
get
(
addDto
.
getPolicyNo
());
Policy
policy
=
policyMap
.
get
(
addDto
.
getPolicyNo
());
...
@@ -289,8 +294,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
...
@@ -289,8 +294,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
commissionExpected
.
setProductLaunchBizId
(
policy
.
getProductLaunchBizId
());
commissionExpected
.
setProductLaunchBizId
(
policy
.
getProductLaunchBizId
());
}
else
{
}
else
{
BigDecimal
expectedAmount
=
addDto
.
getAmount
()
BigDecimal
expectedAmount
=
addDto
.
getAmount
()
.
multiply
(
commissionExpected
.
getDefaultExchangeRate
())
.
multiply
(
commissionExpected
.
getDefaultExchangeRate
());
.
divide
(
BigDecimal
.
valueOf
(
100
),
4
,
RoundingMode
.
HALF_UP
);
commissionExpected
.
setExpectedAmount
(
expectedAmount
);
commissionExpected
.
setExpectedAmount
(
expectedAmount
);
}
}
...
@@ -383,26 +387,39 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
...
@@ -383,26 +387,39 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
if
(
commissionExpected
==
null
)
{
if
(
commissionExpected
==
null
)
{
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"预计入账不存在"
);
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"预计入账不存在"
);
}
}
if
(
commissionExpected
.
getCommissionRatio
()
==
null
)
{
commissionExpected
.
setCommissionRatio
(
commissionExpectedUpdateRequest
.
getCommissionRatio
());
}
// 校验数据
// 校验数据
validCommissionExpected
(
commissionExpected
,
false
);
validCommissionExpected
(
commissionExpected
,
false
);
// 转换为实体类
// 转换为实体类
BeanUtils
.
copyProperties
(
commissionExpectedUpdateRequest
,
commissionExpected
);
BeanUtils
.
copyProperties
(
commissionExpectedUpdateRequest
,
commissionExpected
,
"id"
,
"commissionBizId"
);
// 如果修改了币种,需要更新默认结算汇率、预计入账金额
// 更新默认结算汇率
if
(
StringUtils
.
isNotBlank
(
commissionExpectedUpdateRequest
.
getCurrency
())
&&
!
StringUtils
.
equalsIgnoreCase
(
commissionExpectedUpdateRequest
.
getCurrency
(),
commissionExpected
.
getCurrency
()))
{
commissionExpected
.
setDefaultExchangeRate
(
queryDefaultExchangeRate
(
commissionExpectedUpdateRequest
.
getCurrency
()));
commissionExpected
.
setDefaultExchangeRate
(
queryDefaultExchangeRate
(
commissionExpectedUpdateRequest
.
getCurrency
()));
commissionExpected
.
setExpectedAmount
(
commissionExpectedUpdateRequest
.
getAmount
().
multiply
(
commissionExpected
.
getDefaultExchangeRate
()));
// 更新预计入账金额
}
if
(
"R"
.
equals
(
commissionExpectedUpdateRequest
.
getCommissionBizType
()))
{
// 如果修改了金额,需要更新预计入账金额
// 查询保单
if
(
ObjectUtils
.
isNotEmpty
(
commissionExpectedUpdateRequest
.
getAmount
())
&&
ObjectUtils
.
notEqual
(
commissionExpectedUpdateRequest
.
getAmount
(),
commissionExpected
.
getAmount
()))
{
Policy
policy
=
policyService
.
queryOne
(
commissionExpected
.
getPolicyNo
());
commissionExpected
.
setExpectedAmount
(
commissionExpectedUpdateRequest
.
getAmount
().
multiply
(
commissionExpected
.
getDefaultExchangeRate
()));
if
(
policy
==
null
)
{
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"保单不存在"
);
}
commissionExpected
.
setExpectedAmount
(
policy
.
getPaymentPremium
()
.
multiply
(
commissionExpectedUpdateRequest
.
getCommissionRatio
())
.
multiply
(
commissionExpected
.
getDefaultExchangeRate
())
.
divide
(
BigDecimal
.
valueOf
(
100
),
4
,
RoundingMode
.
HALF_UP
)
);
}
else
{
commissionExpected
.
setExpectedAmount
(
commissionExpectedUpdateRequest
.
getAmount
()
.
multiply
(
commissionExpected
.
getDefaultExchangeRate
())
);
}
}
// 如果修改了默认结算汇率,需要更新预计入账金额
if
(
StringUtils
.
isBlank
(
commissionExpected
.
getReceivableNo
()))
{
if
(
ObjectUtils
.
isNotEmpty
(
commissionExpectedUpdateRequest
.
getDefaultExchangeRate
())
&&
ObjectUtils
.
notEqual
(
commissionExpectedUpdateRequest
.
getDefaultExchangeRate
(),
commissionExpected
.
getDefaultExchangeRate
()))
{
commissionExpected
.
setReceivableNo
(
receivableService
.
generateReceivableNo
(
commissionExpected
.
setExpectedAmount
(
commissionExpectedUpdateRequest
.
getAmount
().
multiply
(
commissionExpected
.
getDefaultExchangeRate
()));
commissionExpected
.
getCommissionBizType
(),
commissionExpected
.
getReconciliationCompanyCode
(),
commissionExpected
.
getReconciliationCompany
()));
}
}
commissionExpected
.
setUpdateTime
(
new
Date
());
commissionExpected
.
setUpdateTime
(
new
Date
());
// 更新预计入账
// 更新预计入账
return
this
.
updateById
(
commissionExpected
);
return
this
.
updateById
(
commissionExpected
);
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
View file @
7cdefb4e
...
@@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
...
@@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import
com.yd.common.enums.CommonEnum
;
import
com.yd.common.enums.CommonEnum
;
import
com.yd.common.enums.ResultCode
;
import
com.yd.common.enums.ResultCode
;
import
com.yd.common.exception.BusinessException
;
import
com.yd.common.exception.BusinessException
;
import
com.yd.common.result.Result
;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.csf.service.component.CommissionAsyncService
;
import
com.yd.csf.service.component.CommissionAsyncService
;
import
com.yd.csf.service.component.ReceivableService
;
import
com.yd.csf.service.component.ReceivableService
;
...
@@ -24,12 +25,15 @@ import com.yd.csf.service.service.*;
...
@@ -24,12 +25,15 @@ 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.user.feign.client.sysdict.ApiSysDictFeignClient
;
import
com.yd.user.feign.response.sysdict.GetDictItemListByDictTypeResponse
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.MapUtils
;
import
org.apache.commons.collections4.MapUtils
;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.support.TransactionSynchronization
;
import
org.springframework.transaction.support.TransactionSynchronization
;
...
@@ -75,6 +79,8 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
...
@@ -75,6 +79,8 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
private
TransactionTemplate
transactionTemplate
;
private
TransactionTemplate
transactionTemplate
;
@Resource
@Resource
private
ReceivableService
receivableService
;
private
ReceivableService
receivableService
;
@Autowired
private
ApiSysDictFeignClient
apiSysDictFeignClient
;
@Override
@Override
...
@@ -253,7 +259,6 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
...
@@ -253,7 +259,6 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
commission
.
setReconciliationCompany
(
policy
.
getReconciliationCompany
());
commission
.
setReconciliationCompany
(
policy
.
getReconciliationCompany
());
commission
.
setReconciliationCompanyCode
(
policy
.
getReconciliationCompanyCode
());
commission
.
setReconciliationCompanyCode
(
policy
.
getReconciliationCompanyCode
());
commission
.
setReconciliationCompanyBizId
(
policy
.
getReconciliationCompanyBizId
());
commission
.
setReconciliationCompanyBizId
(
policy
.
getReconciliationCompanyBizId
());
commission
.
setCurrentCommissionRatio
(
commission
.
calculateCurrentPaidRatio
());
}
}
// 匹配预计来佣记录
// 匹配预计来佣记录
CommissionExpected
expected
=
findExpectedFromList
(
commission
,
commissionExpectedList
);
CommissionExpected
expected
=
findExpectedFromList
(
commission
,
commissionExpectedList
);
...
@@ -261,6 +266,9 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
...
@@ -261,6 +266,9 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
commission
.
setCommissionExpectedBizId
(
expected
.
getCommissionExpectedBizId
());
commission
.
setCommissionExpectedBizId
(
expected
.
getCommissionExpectedBizId
());
commission
.
setReceivableNo
(
expected
.
getReceivableNo
());
commission
.
setReceivableNo
(
expected
.
getReceivableNo
());
commission
.
setTotalPeriod
(
expected
.
getTotalPeriod
());
commission
.
setTotalPeriod
(
expected
.
getTotalPeriod
());
// 本次入账比例
commission
.
setCurrentCommissionRatio
(
calculateCurrentCommissionRatio
(
commission
.
getPremium
(),
commission
.
getAmount
(),
commission
.
getCurrency
(),
commission
.
getExchangeRate
(),
expected
));
}
else
{
}
else
{
commission
.
setRemark
(
"未查询到预计来佣记录"
);
commission
.
setRemark
(
"未查询到预计来佣记录"
);
commission
.
setStatus
(
CommissionStatusEnum
.
MATCH_FAILED
.
getItemValue
());
commission
.
setStatus
(
CommissionStatusEnum
.
MATCH_FAILED
.
getItemValue
());
...
@@ -315,18 +323,20 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
...
@@ -315,18 +323,20 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
}
}
BigDecimal
requestAmount
=
commissionUpdateRequest
.
getAmount
();
BigDecimal
requestAmount
=
commissionUpdateRequest
.
getAmount
();
// 重新关联预计来佣记录
CommissionExpected
commissionExpected
=
getCommissionExpectedBizId
(
commission
);
if
(
commissionExpected
!=
null
)
{
if
(
"R"
.
equals
(
commissionUpdateRequest
.
getCommissionBizType
()))
{
if
(
"R"
.
equals
(
commissionUpdateRequest
.
getCommissionBizType
()))
{
// 关联应收单,计算当前来佣比例
// 关联应收单,计算当前来佣比例
BigDecimal
currentCommissionRatio
=
this
.
calculateCurrentCommissionRatio
(
BigDecimal
currentCommissionRatio
=
this
.
calculateCurrentCommissionRatio
(
commission
.
getPremium
(),
commission
.
getPremium
(),
requestAmount
,
requestAmount
,
commissionUpdateRequest
.
getExchangeRate
());
commissionUpdateRequest
.
getCurrency
(),
commissionUpdateRequest
.
getExchangeRate
(),
commissionExpected
);
commission
.
setCurrentCommissionRatio
(
currentCommissionRatio
);
commission
.
setCurrentCommissionRatio
(
currentCommissionRatio
);
}
else
{
commission
.
setPolicyNo
(
null
);
}
}
// 重新关联预计来佣记录
}
getCommissionExpectedBizId
(
commission
);
// 计算来佣金额(港币)
// 计算来佣金额(港币)
commission
.
setHkdAmount
(
calculateHKDAmount
(
commission
.
setHkdAmount
(
calculateHKDAmount
(
requestAmount
,
requestAmount
,
...
@@ -342,6 +352,9 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
...
@@ -342,6 +352,9 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
// 更新属性
// 更新属性
BeanUtils
.
copyProperties
(
commissionUpdateRequest
,
commission
,
"commissionBizId"
);
BeanUtils
.
copyProperties
(
commissionUpdateRequest
,
commission
,
"commissionBizId"
);
if
(
"U"
.
equals
(
commissionUpdateRequest
.
getCommissionBizType
()))
{
commission
.
setPolicyNo
(
null
);
}
commission
.
setUpdaterId
(
loginUserId
);
commission
.
setUpdaterId
(
loginUserId
);
commission
.
setUpdateTime
(
new
Date
());
commission
.
setUpdateTime
(
new
Date
());
// 执行更新操作(这个方法将在当前事务中执行)
// 执行更新操作(这个方法将在当前事务中执行)
...
@@ -373,7 +386,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
...
@@ -373,7 +386,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
return
requestAmount
.
multiply
(
exchangeRate
);
return
requestAmount
.
multiply
(
exchangeRate
);
}
}
private
voi
d
getCommissionExpectedBizId
(
Commission
commission
)
{
private
CommissionExpecte
d
getCommissionExpectedBizId
(
Commission
commission
)
{
CommissionExpected
commissionExpected
=
null
;
CommissionExpected
commissionExpected
=
null
;
if
(
"R"
.
equals
(
commission
.
getCommissionBizType
()))
{
if
(
"R"
.
equals
(
commission
.
getCommissionBizType
()))
{
commissionExpected
=
commissionExpectedService
.
lambdaQuery
()
commissionExpected
=
commissionExpectedService
.
lambdaQuery
()
...
@@ -397,21 +410,28 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
...
@@ -397,21 +410,28 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
}
else
{
}
else
{
commission
.
setStatus
(
CommissionStatusEnum
.
MATCH_FAILED
.
getItemValue
());
commission
.
setStatus
(
CommissionStatusEnum
.
MATCH_FAILED
.
getItemValue
());
}
}
return
commissionExpected
;
}
}
@Override
@Override
public
void
validateCommissionUpdateRequest
(
CommissionUpdateRequest
commissionUpdateRequest
)
{
public
void
validateCommissionUpdateRequest
(
CommissionUpdateRequest
commissionUpdateRequest
)
{
// 校验入参
// 校验入参
if
(
ObjectUtils
.
isEmpty
(
commissionUpdateRequest
.
getCommissionBizId
()))
{
if
(
ObjectUtils
.
isEmpty
(
commissionUpdateRequest
.
getCommissionBizId
()))
{
log
.
error
(
"来佣业务id不能为空:{}"
,
commissionUpdateRequest
.
getCommissionBizId
());
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"来佣业务id不能为空"
);
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"来佣业务id不能为空"
);
}
}
if
(
ObjectUtils
.
isEmpty
(
commissionUpdateRequest
.
getCommissionName
()))
{
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"来佣名称不能为空"
);
}
if
(
ObjectUtils
.
isEmpty
(
commissionUpdateRequest
.
getCommissionType
()))
{
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"来佣类型不能为空"
);
}
if
(
ObjectUtils
.
isEmpty
(
commissionUpdateRequest
.
getAmount
()))
{
if
(
ObjectUtils
.
isEmpty
(
commissionUpdateRequest
.
getAmount
()))
{
log
.
error
(
"当前入账金额不能为空,来佣业务id:{}"
,
commissionUpdateRequest
.
getCommissionBizId
());
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"入账金额不能为空"
);
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"入账金额不能为空"
);
}
}
if
(
ObjectUtils
.
isEmpty
(
commissionUpdateRequest
.
getCurrency
()))
{
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"入账币种不能为空"
);
}
if
(
ObjectUtils
.
isEmpty
(
commissionUpdateRequest
.
getExchangeRate
()))
{
if
(
ObjectUtils
.
isEmpty
(
commissionUpdateRequest
.
getExchangeRate
()))
{
log
.
error
(
"当前结算汇率不能为空,来佣业务id:{}"
,
commissionUpdateRequest
.
getCommissionBizId
());
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"结算汇率不能为空"
);
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"结算汇率不能为空"
);
}
}
}
}
...
@@ -686,7 +706,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
...
@@ -686,7 +706,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
return
this
.
getOne
(
new
QueryWrapper
<
Commission
>().
eq
(
"commission_biz_id"
,
commissionBizId
));
return
this
.
getOne
(
new
QueryWrapper
<
Commission
>().
eq
(
"commission_biz_id"
,
commissionBizId
));
}
}
public
BigDecimal
calculateCurrentCommissionRatio
(
String
premium
,
BigDecimal
amount
,
BigDecimal
exchangeRate
)
{
public
BigDecimal
calculateCurrentCommissionRatio
(
String
premium
,
BigDecimal
amount
,
String
currentCurrency
,
BigDecimal
exchangeRate
,
CommissionExpected
commissionExpected
)
{
if
(
ObjectUtils
.
isEmpty
(
premium
))
{
if
(
ObjectUtils
.
isEmpty
(
premium
))
{
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"保单保费不能为空"
);
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"保单保费不能为空"
);
}
}
...
@@ -696,10 +716,43 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
...
@@ -696,10 +716,43 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
if
(
ObjectUtils
.
isEmpty
(
exchangeRate
))
{
if
(
ObjectUtils
.
isEmpty
(
exchangeRate
))
{
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"当前结算汇率不能为空"
);
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"当前结算汇率不能为空"
);
}
}
// 当前来佣比例=当前入账金额/结算汇率/保费 * 100
// 获取保单币种
String
currency
=
commissionExpected
.
getCurrency
();
// 如果当前入账币种等于保单币种,直接计算来佣比例
if
(
StringUtils
.
equals
(
currentCurrency
,
currency
))
{
return
amount
.
divide
(
new
BigDecimal
(
premium
),
4
,
RoundingMode
.
HALF_UP
)
return
amount
.
divide
(
new
BigDecimal
(
premium
),
4
,
RoundingMode
.
HALF_UP
)
.
multiply
(
new
BigDecimal
(
100
));
}
// 如果币种不同,首先把当前入账金额转换为对应币种金额
if
(!
StringUtils
.
equals
(
currentCurrency
,
"HKD"
))
{
Result
<
List
<
GetDictItemListByDictTypeResponse
>>
result
=
apiSysDictFeignClient
.
getDictItemListByDictType
(
"csf_exchange_rate_hkd"
);
log
.
info
(
"--------------当前入账金额: {} {}"
,
amount
,
currentCurrency
);
log
.
info
(
"--------------当前入账币种: {}"
,
currentCurrency
);
BigDecimal
defaultExchangeRate
=
null
;
if
(
CollectionUtils
.
isNotEmpty
(
result
.
getData
()))
{
for
(
GetDictItemListByDictTypeResponse
dictItem
:
result
.
getData
())
{
if
(
StringUtils
.
equalsIgnoreCase
(
dictItem
.
getItemLabel
(),
currentCurrency
))
{
defaultExchangeRate
=
new
BigDecimal
(
dictItem
.
getItemValue
());
}
}
}
if
(
ObjectUtils
.
isEmpty
(
defaultExchangeRate
))
{
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"未找到当前入账币种对应的结算汇率"
);
}
amount
=
amount
.
divide
(
defaultExchangeRate
,
4
,
RoundingMode
.
HALF_UP
);
log
.
info
(
"--------------当前入账港币: {}"
,
amount
);
}
// 当前来佣比例=当前入账金额/结算汇率/保费 * 100
BigDecimal
currentCommissionRatio
=
amount
.
divide
(
new
BigDecimal
(
premium
),
4
,
RoundingMode
.
HALF_UP
)
.
divide
(
exchangeRate
,
4
,
RoundingMode
.
HALF_UP
)
.
divide
(
exchangeRate
,
4
,
RoundingMode
.
HALF_UP
)
.
multiply
(
new
BigDecimal
(
100
));
.
multiply
(
new
BigDecimal
(
100
));
log
.
info
(
"--------------当前结算汇率: {}"
,
exchangeRate
);
log
.
info
(
"--------------当前来佣比例: {}"
,
currentCommissionRatio
);
return
currentCommissionRatio
;
}
}
@Override
@Override
...
@@ -776,8 +829,6 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
...
@@ -776,8 +829,6 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
commission
.
setProductLaunchBizId
(
policy
.
getProductLaunchBizId
());
commission
.
setProductLaunchBizId
(
policy
.
getProductLaunchBizId
());
commission
.
setInsuranceCompanyBizId
(
policy
.
getInsuranceCompanyBizId
());
commission
.
setInsuranceCompanyBizId
(
policy
.
getInsuranceCompanyBizId
());
commission
.
setPremium
(
Convert
.
toStr
(
policy
.
getPaymentPremium
()));
commission
.
setPremium
(
Convert
.
toStr
(
policy
.
getPaymentPremium
()));
// 本次入账比例
commission
.
setCurrentCommissionRatio
(
commission
.
calculateCurrentPaidRatio
());
}
else
{
}
else
{
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"保单不存在, policyNo: "
+
request
.
getPolicyNo
());
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"保单不存在, policyNo: "
+
request
.
getPolicyNo
());
}
}
...
@@ -786,7 +837,12 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
...
@@ -786,7 +837,12 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
commission
.
setPolicyNo
(
null
);
commission
.
setPolicyNo
(
null
);
}
}
// 关联预计来佣信息
// 关联预计来佣信息
getCommissionExpectedBizIdBatch
(
request
,
policyNoSet
,
commission
);
CommissionExpected
expected
=
getCommissionExpectedBizIdBatch
(
request
,
policyNoSet
,
commission
);
if
(
expected
!=
null
)
{
// 本次入账比例
commission
.
setCurrentCommissionRatio
(
calculateCurrentCommissionRatio
(
commission
.
getPremium
(),
commission
.
getAmount
(),
commission
.
getCurrency
(),
commission
.
getExchangeRate
(),
expected
));
}
commissionList
.
add
(
commission
);
commissionList
.
add
(
commission
);
}
}
...
@@ -811,7 +867,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
...
@@ -811,7 +867,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
return
commissionList
;
return
commissionList
;
}
}
private
voi
d
getCommissionExpectedBizIdBatch
(
CommissionAddRequest
request
,
Set
<
String
>
policyNoSet
,
Commission
commission
)
{
private
CommissionExpecte
d
getCommissionExpectedBizIdBatch
(
CommissionAddRequest
request
,
Set
<
String
>
policyNoSet
,
Commission
commission
)
{
CommissionExpected
expected
=
null
;
CommissionExpected
expected
=
null
;
if
(
"R"
.
equals
(
request
.
getCommissionBizType
()))
{
if
(
"R"
.
equals
(
request
.
getCommissionBizType
()))
{
// 查询预计入账信息
// 查询预计入账信息
...
@@ -854,6 +910,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
...
@@ -854,6 +910,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
commission
.
setRemark
(
"未查询到预计来佣记录"
);
commission
.
setRemark
(
"未查询到预计来佣记录"
);
commission
.
setStatus
(
CommissionStatusEnum
.
MATCH_FAILED
.
getItemValue
());
commission
.
setStatus
(
CommissionStatusEnum
.
MATCH_FAILED
.
getItemValue
());
}
}
return
expected
;
}
}
private
void
validateAddCommissionBatch
(
List
<
CommissionAddRequest
>
customerAddRequestList
)
{
private
void
validateAddCommissionBatch
(
List
<
CommissionAddRequest
>
customerAddRequestList
)
{
...
...
yd-csf-service/src/main/java/com/yd/csf/service/vo/CommissionExpectedVO.java
View file @
7cdefb4e
...
@@ -251,13 +251,11 @@ public class CommissionExpectedVO implements Serializable {
...
@@ -251,13 +251,11 @@ public class CommissionExpectedVO implements Serializable {
commissionVO
.
setPendingAmount
(
commissionExpected
.
getExpectedAmount
().
subtract
(
paidAmount1
));
commissionVO
.
setPendingAmount
(
commissionExpected
.
getExpectedAmount
().
subtract
(
paidAmount1
));
}
}
return
commissionVO
;
return
commissionVO
;
}
}
else
{
if
(
commissionExpected
.
getAmount
()
!=
null
)
{
commissionVO
.
setPaidAmount
(
paidAmount1
);
commissionVO
.
setPaidAmount
(
paidAmount1
);
commissionVO
.
setPendingAmount
(
commissionExpected
.
getAmount
().
subtract
(
paidAmount1
));
commissionVO
.
setPendingAmount
(
commissionExpected
.
getAmount
().
subtract
(
paidAmount1
));
return
commissionVO
;
return
commissionVO
;
}
}
return
commissionVO
;
}
}
}
}
yd-csf-service/src/main/resources/mappers/CommissionMapper.xml
View file @
7cdefb4e
...
@@ -87,22 +87,18 @@
...
@@ -87,22 +87,18 @@
<!-- 总金额:统计保单预计来佣表 已入账金额:统计来佣表-->
<!-- 总金额:统计保单预计来佣表 已入账金额:统计来佣表-->
<select
id=
"getCommissionStatistics"
resultType=
"com.yd.csf.service.vo.CommissionStatisticsVO"
>
<select
id=
"getCommissionStatistics"
resultType=
"com.yd.csf.service.vo.CommissionStatisticsVO"
>
SELECT
SELECT
COALESCE(SUM(c.amount), 0) as totalPaidAmount,
COALESCE(SUM(c.
hkd_
amount), 0) as totalPaidAmount,
IFNULL(e.expected_amount
, 0) as expectePaidAmount,
COALESCE(MAX(e.expected_amount)
, 0) as expectePaidAmount,
COALESCE(IFNULL(e.expected_amount, 0) - SUM(c.amount), 0) as pendingPaidAmount,
COALESCE(IFNULL(e.expected_amount, 0) - SUM(c.amount), 0) as pendingPaidAmount,
COALESCE(IFNULL(e.expected_amount, 0) - SUM(c.amount), 0) as differenceAmount,
COALESCE(IFNULL(e.expected_amount, 0) - SUM(c.amount), 0) as differenceAmount,
COUNT(DISTINCT c.policy_no) as totalPolicyCount,
COUNT(DISTINCT c.policy_no) as totalPolicyCount,
COALESCE(
SUM(CAST(c.premium AS DECIMAL(15,2))*p.payment_term), 0) as
totalPremium,
COALESCE(
CAST(c.premium AS DECIMAL(15,2)) * p.payment_term, 0) AS
totalPremium,
COUNT(DISTINCT c.reconciliation_company) as reconciliationCompanyCount,
COUNT(DISTINCT c.reconciliation_company) as reconciliationCompanyCount,
COUNT(DISTINCT c.id) as totalCompareCommissionCount,
COUNT(DISTINCT c.id) as totalCompareCommissionCount,
SUM(CASE WHEN c.status = '1' THEN 1 ELSE 0 END) as successCompareCommissionCount,
SUM(CASE WHEN c.status = '1' THEN 1 ELSE 0 END) as successCompareCommissionCount,
SUM(CASE WHEN c.status = '2' THEN 1 ELSE 0 END) as failedCompareCommissionCount
SUM(CASE WHEN c.status = '2' THEN 1 ELSE 0 END) as failedCompareCommissionCount
FROM commission c
FROM commission c
LEFT JOIN (
LEFT JOIN commission_expected e ON c.commission_expected_biz_id = e.commission_expected_biz_id
SELECT policy_no, SUM(expected_amount) as expected_amount
FROM commission_expected
GROUP BY policy_no
) e ON c.policy_no = e.policy_no
LEFT JOIN policy p ON c.policy_no = p.policy_no
LEFT JOIN policy p ON c.policy_no = p.policy_no
<where>
<where>
<if
test=
"commissionIdList != null and commissionIdList.size > 0"
>
<if
test=
"commissionIdList != null and commissionIdList.size > 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