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
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
63 additions
and
38 deletions
+63
-38
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
+0
-0
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 {
@PostMapping
(
"/compare/records"
)
@Operation
(
summary
=
"来佣比对记录列表"
,
description
=
"可根据实际来佣业务id、预计来佣业务id,查询来佣比对记录"
)
public
Result
<
Page
<
CommissionCompareRecord
>>
getCommissionCompareRecords
(
@RequestBody
CommissionCompareRecordQueryRequest
queryRequest
)
{
if
(
StringUtils
.
isBlank
(
queryRequest
.
getCommissionBizId
()))
{
return
Result
.
fail
(
ErrorCode
.
PARAMS_ERROR
.
getCode
(),
"commissionBizId不能
为空"
);
if
(
StringUtils
.
isBlank
(
queryRequest
.
getCommissionBizId
())
&&
StringUtils
.
isBlank
(
queryRequest
.
getCommissionExpectedBizId
())
)
{
return
Result
.
fail
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"commissionBizId、commissionExpectedBizId不能同时
为空"
);
}
// 查询来佣比对记录
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 {
// 预计来佣设置为部分来佣
commissionExpectedService
.
lambdaUpdate
()
.
set
(
CommissionExpected:
:
getStatus
,
CommissionExpectedStatusEnum
.
PARTIAL
.
getItemValue
())
.
set
(
CommissionExpected:
:
getPaidAmount
,
actualAmount
)
.
eq
(
CommissionExpected:
:
getId
,
commissionExpected
.
getId
())
.
update
();
// 来佣比对失败
...
...
@@ -244,6 +245,8 @@ public class CommissionAsyncService {
// 对应预计来佣设置为部分来佣
commissionExpectedService
.
lambdaUpdate
()
.
set
(
CommissionExpected:
:
getStatus
,
CommissionExpectedStatusEnum
.
PARTIAL
.
getItemValue
())
.
set
(
CommissionExpected:
:
getPaidAmount
,
paidAmount
)
.
set
(
CommissionExpected:
:
getPaidRatio
,
paidRatio
)
.
eq
(
CommissionExpected:
:
getId
,
commissionExpected
.
getId
())
.
update
();
// 更新已比对来佣记录
...
...
@@ -321,6 +324,7 @@ public class CommissionAsyncService {
// 预计来佣设置为部分来佣
commissionExpectedService
.
lambdaUpdate
()
.
set
(
CommissionExpected:
:
getStatus
,
CommissionExpectedStatusEnum
.
PARTIAL
.
getItemValue
())
.
set
(
CommissionExpected:
:
getPaidAmount
,
commission
.
getAmount
())
.
eq
(
CommissionExpected:
:
getId
,
commissionExpected
.
getId
())
.
update
();
// 保存比对记录
...
...
@@ -409,6 +413,8 @@ public class CommissionAsyncService {
// 预计来佣设置为部分来佣
commissionExpectedService
.
lambdaUpdate
()
.
set
(
CommissionExpected:
:
getStatus
,
CommissionExpectedStatusEnum
.
PARTIAL
.
getItemValue
())
.
set
(
CommissionExpected:
:
getPaidAmount
,
paidAmount
)
.
set
(
CommissionExpected:
:
getPaidRatio
,
paidRatio
)
.
eq
(
CommissionExpected:
:
getId
,
commissionExpected
.
getId
())
.
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 {
private
String
commissionExpectedBizId
;
/**
* 佣金业务类型
*/
@Schema
(
description
=
"佣金业务类型"
)
private
String
commissionBizType
;
/**
* 入账状态
*/
@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 {
@TableField
(
exist
=
false
)
private
static
final
long
serialVersionUID
=
1L
;
public
BigDecimal
calculateCurrentPaidRatio
()
{
// 当前来佣比例=当前入账金额/结算汇率/保费 * 100
return
amount
.
divide
(
new
BigDecimal
(
premium
),
4
,
RoundingMode
.
HALF_UP
)
.
divide
(
exchangeRate
,
4
,
RoundingMode
.
HALF_UP
)
.
multiply
(
new
BigDecimal
(
100
));
}
// public BigDecimal calculateCurrentPaidRatio() {
// // 当前来佣比例=当前入账金额/结算汇率/保费 * 100
// return amount.divide(new BigDecimal(premium), 4, RoundingMode.HALF_UP)
// .divide(exchangeRate, 4, RoundingMode.HALF_UP)
// .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
if
(
ObjectUtils
.
isEmpty
(
commissionBizType
))
{
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"应收款类型不能为空"
);
}
if
(
ObjectUtils
.
isEmpty
(
commissionExpected
.
getCommissionName
()))
{
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"应收款名称不能为空"
);
}
if
(
"R"
.
equals
(
commissionBizType
))
{
// 关联保单应收单,保单号不能为空
String
policyNo
=
commissionExpected
.
getPolicyNo
();
...
...
@@ -129,6 +132,9 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
if
(
ObjectUtils
.
isEmpty
(
commissionRatio
))
{
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"入账比例不能为空"
);
}
if
(
StringUtils
.
isBlank
(
commissionExpected
.
getCurrency
()))
{
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"入账币种不能为空"
);
}
Integer
commissionPeriod
=
commissionExpected
.
getCommissionPeriod
();
if
(
ObjectUtils
.
isEmpty
(
commissionPeriod
))
{
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"佣金期数不能为空"
);
...
...
@@ -268,10 +274,9 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
validCommissionExpected
(
commissionExpected
,
true
);
// 结算汇率初始值为 1
commissionExpected
.
setDefaultExchangeRate
(
BigDecimal
.
valueOf
(
1
));
// 如果币种不是港币,查询默认结算汇率
if
(!
StringUtils
.
equalsIgnoreCase
(
addDto
.
getCurrency
(),
"HKD"
))
{
// 查询默认结算汇率
commissionExpected
.
setDefaultExchangeRate
(
queryDefaultExchangeRate
(
addDto
.
getCurrency
()));
}
// 预计总金额
if
(
"R"
.
equals
(
addDto
.
getCommissionBizType
()))
{
Policy
policy
=
policyMap
.
get
(
addDto
.
getPolicyNo
());
...
...
@@ -289,8 +294,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
commissionExpected
.
setProductLaunchBizId
(
policy
.
getProductLaunchBizId
());
}
else
{
BigDecimal
expectedAmount
=
addDto
.
getAmount
()
.
multiply
(
commissionExpected
.
getDefaultExchangeRate
())
.
divide
(
BigDecimal
.
valueOf
(
100
),
4
,
RoundingMode
.
HALF_UP
);
.
multiply
(
commissionExpected
.
getDefaultExchangeRate
());
commissionExpected
.
setExpectedAmount
(
expectedAmount
);
}
...
...
@@ -383,26 +387,39 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
if
(
commissionExpected
==
null
)
{
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"预计入账不存在"
);
}
if
(
commissionExpected
.
getCommissionRatio
()
==
null
)
{
commissionExpected
.
setCommissionRatio
(
commissionExpectedUpdateRequest
.
getCommissionRatio
());
}
// 校验数据
validCommissionExpected
(
commissionExpected
,
false
);
// 转换为实体类
BeanUtils
.
copyProperties
(
commissionExpectedUpdateRequest
,
commissionExpected
);
// 如果修改了币种,需要更新默认结算汇率、预计入账金额
if
(
StringUtils
.
isNotBlank
(
commissionExpectedUpdateRequest
.
getCurrency
())
&&
!
StringUtils
.
equalsIgnoreCase
(
commissionExpectedUpdateRequest
.
getCurrency
(),
commissionExpected
.
getCurrency
()))
{
BeanUtils
.
copyProperties
(
commissionExpectedUpdateRequest
,
commissionExpected
,
"id"
,
"commissionBizId"
);
// 更新默认结算汇率
commissionExpected
.
setDefaultExchangeRate
(
queryDefaultExchangeRate
(
commissionExpectedUpdateRequest
.
getCurrency
()));
commissionExpected
.
setExpectedAmount
(
commissionExpectedUpdateRequest
.
getAmount
().
multiply
(
commissionExpected
.
getDefaultExchangeRate
()));
}
// 如果修改了金额,需要更新预计入账金额
if
(
ObjectUtils
.
isNotEmpty
(
commissionExpectedUpdateRequest
.
getAmount
())
&&
ObjectUtils
.
notEqual
(
commissionExpectedUpdateRequest
.
getAmount
(),
commissionExpected
.
getAmount
()))
{
commissionExpected
.
setExpectedAmount
(
commissionExpectedUpdateRequest
.
getAmount
().
multiply
(
commissionExpected
.
getDefaultExchangeRate
()));
// 更新预计入账金额
if
(
"R"
.
equals
(
commissionExpectedUpdateRequest
.
getCommissionBizType
()))
{
// 查询保单
Policy
policy
=
policyService
.
queryOne
(
commissionExpected
.
getPolicyNo
());
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
(
ObjectUtils
.
isNotEmpty
(
commissionExpectedUpdateRequest
.
getDefaultExchangeRate
())
&&
ObjectUtils
.
notEqual
(
commissionExpectedUpdateRequest
.
getDefaultExchangeRate
(),
commissionExpected
.
getDefaultExchangeRate
()))
{
commissionExpected
.
setExpectedAmount
(
commissionExpectedUpdateRequest
.
getAmount
().
multiply
(
commissionExpected
.
getDefaultExchangeRate
()));
if
(
StringUtils
.
isBlank
(
commissionExpected
.
getReceivableNo
()))
{
commissionExpected
.
setReceivableNo
(
receivableService
.
generateReceivableNo
(
commissionExpected
.
getCommissionBizType
(),
commissionExpected
.
getReconciliationCompanyCode
(),
commissionExpected
.
getReconciliationCompany
()));
}
commissionExpected
.
setUpdateTime
(
new
Date
());
// 更新预计入账
return
this
.
updateById
(
commissionExpected
);
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
View file @
7cdefb4e
This diff is collapsed.
Click to expand it.
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 {
commissionVO
.
setPendingAmount
(
commissionExpected
.
getExpectedAmount
().
subtract
(
paidAmount1
));
}
return
commissionVO
;
}
if
(
commissionExpected
.
getAmount
()
!=
null
)
{
}
else
{
commissionVO
.
setPaidAmount
(
paidAmount1
);
commissionVO
.
setPendingAmount
(
commissionExpected
.
getAmount
().
subtract
(
paidAmount1
));
return
commissionVO
;
}
return
commissionVO
;
}
}
yd-csf-service/src/main/resources/mappers/CommissionMapper.xml
View file @
7cdefb4e
...
...
@@ -87,22 +87,18 @@
<!-- 总金额:统计保单预计来佣表 已入账金额:统计来佣表-->
<select
id=
"getCommissionStatistics"
resultType=
"com.yd.csf.service.vo.CommissionStatisticsVO"
>
SELECT
COALESCE(SUM(c.amount), 0) as totalPaidAmount,
IFNULL(e.expected_amount
, 0) as expectePaidAmount,
COALESCE(SUM(c.
hkd_
amount), 0) as totalPaidAmount,
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 differenceAmount,
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.id) as totalCompareCommissionCount,
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
FROM commission c
LEFT JOIN (
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 commission_expected e ON c.commission_expected_biz_id = e.commission_expected_biz_id
LEFT JOIN policy p ON c.policy_no = p.policy_no
<where>
<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