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
d8b9a136
Commit
d8b9a136
authored
Jan 05, 2026
by
jianan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
前端对接问题修复46
parent
5837446d
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
121 additions
and
100 deletions
+121
-100
yd-csf-service/src/main/java/com/yd/csf/service/component/CommissionAsyncService.java
+70
-61
yd-csf-service/src/main/java/com/yd/csf/service/dao/CommissionMapper.java
+2
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionUpdateRequest.java
+16
-22
yd-csf-service/src/main/java/com/yd/csf/service/service/CommissionService.java
+2
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
+18
-17
yd-csf-service/src/main/resources/mappers/CommissionMapper.xml
+13
-0
No files found.
yd-csf-service/src/main/java/com/yd/csf/service/component/CommissionAsyncService.java
View file @
d8b9a136
...
...
@@ -96,29 +96,32 @@ public class CommissionAsyncService {
BigDecimal
expectedAmount
=
commissionExpected
.
getAmount
();
BigDecimal
actualAmount
=
commission
.
getAmount
();
if
(
expectedAmount
.
equals
(
actualAmount
)
&&
commissionExpected
.
getCurrency
().
equals
(
commission
.
getCurrency
()))
{
// 等于预计比例时,所有来佣设置为比对成功
commission
.
setStatus
(
CommissionStatusEnum
.
COMPARE_SUCCESS
.
getItemValue
());
// 创建比对记录
compareRecords
.
add
(
commissionService
.
getNewCompareRecord
(
commission
,
commissionExpected
,
currentLoginUser
));
// 对应预计来佣设置为已来佣
commissionExpected
.
setStatus
(
CommissionExpectedStatusEnum
.
COMPARED
.
getItemValue
());
// 待入账金额设置为 0
commissionExpected
.
setPaidAmount
(
BigDecimal
.
ZERO
);
// 更新预计来佣
commissionExpectedService
.
updateById
(
commissionExpected
);
// 更新已比对来佣记录
commissionService
.
updateById
(
commission
);
// 对应预计来佣设置为已来佣、待入账金额设置为 0
commissionExpectedService
.
lambdaUpdate
()
.
set
(
CommissionExpected:
:
getStatus
,
CommissionExpectedStatusEnum
.
COMPARED
.
getItemValue
())
.
set
(
CommissionExpected:
:
getPaidAmount
,
BigDecimal
.
ZERO
)
.
eq
(
CommissionExpected:
:
getId
,
commissionExpected
.
getId
())
.
update
();
// 来佣设置为比对成功
commissionService
.
lambdaUpdate
()
.
set
(
Commission:
:
getStatus
,
CommissionStatusEnum
.
COMPARE_SUCCESS
.
getItemValue
())
.
eq
(
Commission:
:
getId
,
commission
.
getId
())
.
update
();
}
else
{
// 对应预计来佣设置为部分来佣
commissionExpected
.
setStatus
(
CommissionExpectedStatusEnum
.
PARTIAL
.
getItemValue
());
// 更新预计来佣
commissionExpectedService
.
updateById
(
commissionExpected
);
// 预计来佣设置为部分来佣
commissionExpectedService
.
lambdaUpdate
()
.
set
(
CommissionExpected:
:
getStatus
,
CommissionExpectedStatusEnum
.
PARTIAL
.
getItemValue
())
.
eq
(
CommissionExpected:
:
getId
,
commissionExpected
.
getId
())
.
update
();
// 来佣比对失败
commission
.
setStatus
(
CommissionStatusEnum
.
COMPARE_FAIL
.
getItemValue
());
commissionService
.
lambdaUpdate
()
.
set
(
Commission:
:
getStatus
,
CommissionStatusEnum
.
COMPARE_FAIL
.
getItemValue
())
.
eq
(
Commission:
:
getId
,
commission
.
getId
())
.
update
();
// 创建比对记录
compareRecords
.
add
(
commissionService
.
getNewCompareRecord
(
commission
,
commissionExpected
,
currentLoginUser
));
// 更新已比对来佣记录
commissionService
.
updateById
(
commission
);
}
}
// 保存比对记录
...
...
@@ -214,16 +217,16 @@ public class CommissionAsyncService {
// 创建比对记录
compareRecords
.
add
(
commissionService
.
getNewCompareRecord
(
existingCommission
,
commissionExpected
,
currentLoginUser
));
}
//
对应预计来佣设置为已来佣
commissionExpected
.
setStatus
(
CommissionExpectedStatusEnum
.
COMPARED
.
getItemValue
());
// 待入账金额设置为 0
commissionExpected
.
setPaidAmount
(
paidAmount
.
setScale
(
2
,
RoundingMode
.
HALF_UP
));
commissionExpected
.
setPaidRatio
(
paidRatio
);
// 更新预计来佣
commissionExpectedService
.
updateById
(
commissionExpected
);
//
更新预计来佣状态为已来佣、已入账金额、已入账比例
commissionExpected
Service
.
lambdaUpdate
()
.
set
(
CommissionExpected:
:
getStatus
,
CommissionExpectedStatusEnum
.
COMPARED
.
getItemValue
())
.
set
(
CommissionExpected:
:
getPaidAmount
,
paidAmount
.
setScale
(
2
,
RoundingMode
.
HALF_UP
))
.
set
(
CommissionExpected:
:
getPaidRatio
,
paidRatio
)
.
eq
(
CommissionExpected:
:
getId
,
commissionExpected
.
getId
())
.
update
(
);
// 更新已比对来佣记录
if
(
CollectionUtils
.
isNotEmpty
(
existingCommissions
))
{
commissionService
.
updateBatchById
(
existingCommissions
);
commissionService
.
update
Status
BatchById
(
existingCommissions
);
}
// 保存比对记录
commissionCompareRecordService
.
saveBatch
(
compareRecords
);
...
...
@@ -235,12 +238,13 @@ public class CommissionAsyncService {
compareRecords
.
add
(
commissionService
.
getNewCompareRecord
(
existingCommission
,
commissionExpected
,
currentLoginUser
));
}
// 对应预计来佣设置为部分来佣
commissionExpected
.
setStatus
(
CommissionExpectedStatusEnum
.
PARTIAL
.
getItemValue
());
// 更新预计来佣
commissionExpectedService
.
updateById
(
commissionExpected
);
commissionExpectedService
.
lambdaUpdate
()
.
set
(
CommissionExpected:
:
getStatus
,
CommissionExpectedStatusEnum
.
PARTIAL
.
getItemValue
())
.
eq
(
CommissionExpected:
:
getId
,
commissionExpected
.
getId
())
.
update
();
// 更新已比对来佣记录
if
(
CollectionUtils
.
isNotEmpty
(
existingCommissions
))
{
commissionService
.
updateBatchById
(
existingCommissions
);
commissionService
.
update
Status
BatchById
(
existingCommissions
);
}
// 保存比对记录
commissionCompareRecordService
.
saveBatch
(
compareRecords
);
...
...
@@ -285,27 +289,30 @@ public class CommissionAsyncService {
// 计算比对状态
if
(
commission
.
getAmount
().
compareTo
(
commissionExpected
.
getAmount
())
==
0
)
{
// 等于预计金额时,所有来佣设置为比对成功
commission
.
setStatus
(
CommissionStatusEnum
.
COMPARE_SUCCESS
.
getItemValue
());
// 更新来佣
commissionService
.
updateById
(
commission
);
// 对应预计来佣设置为已来佣
commissionExpected
.
setStatus
(
CommissionExpectedStatusEnum
.
COMPARED
.
getItemValue
());
// 待入账金额设置为 0
commissionExpected
.
setPaidAmount
(
BigDecimal
.
ZERO
);
// 更新预计来佣
commissionExpectedService
.
updateById
(
commissionExpected
);
// 等于预计金额时,来佣设置为比对成功
commissionService
.
lambdaUpdate
()
.
set
(
Commission:
:
getStatus
,
CommissionStatusEnum
.
COMPARE_SUCCESS
.
getItemValue
())
.
eq
(
Commission:
:
getId
,
commission
.
getId
())
.
update
();
// 预计来佣设置为已来佣、待入账金额设置为 0
commissionExpectedService
.
lambdaUpdate
()
.
set
(
CommissionExpected:
:
getStatus
,
CommissionExpectedStatusEnum
.
COMPARED
.
getItemValue
())
.
set
(
CommissionExpected:
:
getPaidAmount
,
BigDecimal
.
ZERO
)
.
eq
(
CommissionExpected:
:
getId
,
commissionExpected
.
getId
())
.
update
();
// 保存比对记录
commissionService
.
saveCompareRecord
(
commission
,
commissionExpected
,
currentLoginUser
);
}
else
{
// 不等于预计比例时,设置为比对失败
commission
.
setStatus
(
CommissionStatusEnum
.
COMPARE_FAIL
.
getItemValue
());
// 更新来佣
commissionService
.
updateById
(
commission
);
// 对应预计来佣设置为部分来佣
commissionExpected
.
setStatus
(
CommissionExpectedStatusEnum
.
PARTIAL
.
getItemValue
());
// 更新预计来佣
commissionExpectedService
.
updateById
(
commissionExpected
);
commissionService
.
lambdaUpdate
()
.
set
(
Commission:
:
getStatus
,
CommissionStatusEnum
.
COMPARE_FAIL
.
getItemValue
())
.
eq
(
Commission:
:
getId
,
commission
.
getId
())
.
update
();
// 预计来佣设置为部分来佣
commissionExpectedService
.
lambdaUpdate
()
.
set
(
CommissionExpected:
:
getStatus
,
CommissionExpectedStatusEnum
.
PARTIAL
.
getItemValue
())
.
eq
(
CommissionExpected:
:
getId
,
commissionExpected
.
getId
())
.
update
();
// 保存比对记录
commissionService
.
saveCompareRecord
(
commission
,
commissionExpected
,
currentLoginUser
);
}
...
...
@@ -375,28 +382,30 @@ public class CommissionAsyncService {
existingCommission
.
setStatus
(
CommissionStatusEnum
.
COMPARE_SUCCESS
.
getItemValue
());
existingCommission
.
setTotalPeriod
(
commissionExpected
.
getTotalPeriod
());
}
// 对应预计来佣设置为已来佣
commissionExpected
.
setStatus
(
CommissionExpectedStatusEnum
.
COMPARED
.
getItemValue
());
// 待入账金额设置为 0
commissionExpected
.
setPaidAmount
(
paidAmount
.
setScale
(
4
,
RoundingMode
.
HALF_UP
));
commissionExpected
.
setPaidRatio
(
paidRatio
);
// 更新预计来佣
commissionExpectedService
.
updateById
(
commissionExpected
);
// 对应预计来佣设置为已来佣
、待入账金额设置为 0
commissionExpected
Service
.
lambdaUpdate
()
.
set
(
CommissionExpected:
:
getStatus
,
CommissionExpectedStatusEnum
.
COMPARED
.
getItemValue
())
.
set
(
CommissionExpected:
:
getPaidAmount
,
paidAmount
.
setScale
(
4
,
RoundingMode
.
HALF_UP
))
.
set
(
CommissionExpected:
:
getPaidRatio
,
paidRatio
)
.
eq
(
CommissionExpected:
:
getId
,
commissionExpected
.
getId
())
.
update
(
);
// 更新已比对来佣记录
if
(
CollectionUtils
.
isNotEmpty
(
existingCommissions
))
{
commissionService
.
updateBatchById
(
existingCommissions
);
commissionService
.
update
Status
BatchById
(
existingCommissions
);
}
// 保存比对记录
commissionService
.
saveCompareRecord
(
commission
,
commissionExpected
,
currentLoginUser
);
}
else
{
// 不等于预计比例时,设置为比对失败
commission
.
setStatus
(
CommissionStatusEnum
.
COMPARE_FAIL
.
getItemValue
());
// 更新来佣
commissionService
.
updateById
(
commission
);
// 对应预计来佣设置为部分来佣
commissionExpected
.
setStatus
(
CommissionExpectedStatusEnum
.
PARTIAL
.
getItemValue
());
// 更新预计来佣
commissionExpectedService
.
updateById
(
commissionExpected
);
commissionService
.
lambdaUpdate
()
.
set
(
Commission:
:
getStatus
,
CommissionStatusEnum
.
COMPARE_FAIL
.
getItemValue
())
.
eq
(
Commission:
:
getId
,
commission
.
getId
())
.
update
();
// 预计来佣设置为部分来佣
commissionExpectedService
.
lambdaUpdate
()
.
set
(
CommissionExpected:
:
getStatus
,
CommissionExpectedStatusEnum
.
PARTIAL
.
getItemValue
())
.
eq
(
CommissionExpected:
:
getId
,
commissionExpected
.
getId
())
.
update
();
// 保存比对记录
commissionService
.
saveCompareRecord
(
commission
,
commissionExpected
,
currentLoginUser
);
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dao/CommissionMapper.java
View file @
d8b9a136
...
...
@@ -22,6 +22,8 @@ public interface CommissionMapper extends BaseMapper<Commission> {
List
<
CommissionBindPolicyBrokerDto
>
queryCommissionBindPolicyBrokerList
(
@Param
(
"dto"
)
CommissionDto
dto
);
CommissionStatisticsVO
getCommissionStatistics
(
@Param
(
"commissionIdList"
)
List
<
Long
>
commissionIdList
);
int
updateStatusBatchById
(
@Param
(
"existingCommissions"
)
List
<
Commission
>
existingCommissions
);
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionUpdateRequest.java
View file @
d8b9a136
...
...
@@ -11,9 +11,9 @@ import java.util.Date;
@Data
public
class
CommissionUpdateRequest
implements
Serializable
{
/**
* 保单
来佣
业务id
* 保单
入账
业务id
*/
@Schema
(
description
=
"保单
来佣
业务id"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
@Schema
(
description
=
"保单
入账
业务id"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
private
String
commissionBizId
;
/**
...
...
@@ -29,12 +29,6 @@ public class CommissionUpdateRequest implements Serializable {
private
String
policyNo
;
/**
* 保费
*/
@Schema
(
description
=
"保费"
)
private
String
premium
;
/**
* 对账公司
*/
@Schema
(
description
=
"对账公司"
)
...
...
@@ -47,9 +41,9 @@ public class CommissionUpdateRequest implements Serializable {
private
String
reconciliationCompanyBizId
;
/**
*
来佣
比对状态
*
入账
比对状态
*/
// @Schema(description = "
来佣
比对状态 1=比对成功 2=比对失败")
// @Schema(description = "
入账
比对状态 1=比对成功 2=比对失败")
// private String status;
/**
...
...
@@ -59,33 +53,33 @@ public class CommissionUpdateRequest implements Serializable {
private
Integer
commissionPeriod
;
/**
* 总
来佣
期数
* 总
入账
期数
*/
@Schema
(
description
=
"总
来佣
期数"
)
@Schema
(
description
=
"总
入账
期数"
)
private
Integer
totalPeriod
;
/**
*
来佣
名称(1:销售拥金;2:销售奖金;3:销售津贴;4:续期佣金;5:服务津贴;等等)
*
入账项目
名称(1:销售拥金;2:销售奖金;3:销售津贴;4:续期佣金;5:服务津贴;等等)
*/
@Schema
(
description
=
"
来佣
名称(1:销售拥金;2:销售奖金;3:销售津贴;4:续期佣金;5:服务津贴;等等)"
)
@Schema
(
description
=
"
入账项目
名称(1:销售拥金;2:销售奖金;3:销售津贴;4:续期佣金;5:服务津贴;等等)"
)
private
String
commissionName
;
/**
*
来佣
类型(1:销售拥金;2:销售奖金;3:销售津贴;4:续期佣金;5:服务津贴;等等)
*
入账项目
类型(1:销售拥金;2:销售奖金;3:销售津贴;4:续期佣金;5:服务津贴;等等)
*/
@Schema
(
description
=
"
来佣
类型(1:销售拥金;2:销售奖金;3:销售津贴;4:续期佣金;5:服务津贴;等等)"
)
@Schema
(
description
=
"
入账项目
类型(1:销售拥金;2:销售奖金;3:销售津贴;4:续期佣金;5:服务津贴;等等)"
)
private
String
commissionType
;
/**
*
来佣
金额
*
入账
金额
*/
@Schema
(
description
=
"
来佣
金额"
)
@Schema
(
description
=
"
入账
金额"
)
private
BigDecimal
amount
;
/**
*
来佣
币种
*
入账
币种
*/
@Schema
(
description
=
"
来佣
币种"
)
@Schema
(
description
=
"
入账
币种"
)
private
String
currency
;
/**
...
...
@@ -95,9 +89,9 @@ public class CommissionUpdateRequest implements Serializable {
private
String
exchangeRate
;
/**
*
来佣
日期
*
入账
日期
*/
@Schema
(
description
=
"
来佣
日期"
)
@Schema
(
description
=
"
入账
日期"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
commissionDate
;
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/CommissionService.java
View file @
d8b9a136
...
...
@@ -51,4 +51,6 @@ public interface CommissionService extends IService<Commission> {
List
<
Commission
>
addCommissionBatch
(
List
<
CommissionAddRequest
>
customerAddRequestList
);
Boolean
addToExpected
(
AddToExpectedCommissionRequest
addToExpectedCommissionRequest
);
int
updateStatusBatchById
(
List
<
Commission
>
existingCommissions
);
}
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
View file @
d8b9a136
...
...
@@ -210,11 +210,11 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
BigDecimal
amount
=
commission
.
getAmount
();
BigDecimal
requestAmount
=
commissionUpdateRequest
.
getAmount
();
// 1. 执行主更新事务(这个方法将在当前事务中执行)
// 计算当前来佣比例
BigDecimal
currentCommissionRatio
=
this
.
calculateCurrentCommissionRatio
(
commissionUpdateRequest
.
getAmount
(),
commissionUpdateRequest
.
getPremium
(),
commission
.
getPremium
(),
requestAmount
,
commissionUpdateRequest
.
getCurrency
(),
commissionUpdateRequest
.
getExchangeRate
());
// 获取当前登录用户
...
...
@@ -261,18 +261,14 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
log
.
error
(
"来佣业务id不能为空:{}"
,
commissionUpdateRequest
.
getCommissionBizId
());
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"来佣业务id不能为空"
);
}
if
(
ObjectUtils
.
isEmpty
(
commissionUpdateRequest
.
getPremium
()))
{
log
.
error
(
"保费不能为空:{}"
,
commissionUpdateRequest
.
getPremium
());
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"保费不能为空"
);
}
if
(
ObjectUtils
.
isEmpty
(
commissionUpdateRequest
.
getAmount
()))
{
log
.
error
(
"当前入账金额不能为空,来佣业务id:{}"
,
commissionUpdateRequest
.
getCommissionBizId
());
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"当前入账金额不能为空"
);
}
if
(
ObjectUtils
.
isEmpty
(
commissionUpdateRequest
.
getExchangeRate
()))
{
log
.
error
(
"当前结算汇率不能为空,来佣业务id:{}"
,
commissionUpdateRequest
.
getCommissionBizId
());
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"当前结算汇率不能为空"
);
}
// if (ObjectUtils.isEmpty(commissionUpdateRequest.getAmount())) {
// log.error("当前入账金额不能为空,来佣业务id:{}", commissionUpdateRequest.getCommissionBizId());
// throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "当前入账金额不能为空");
// }
// if (ObjectUtils.isEmpty(commissionUpdateRequest.getExchangeRate())) {
// log.error("当前结算汇率不能为空,来佣业务id:{}", commissionUpdateRequest.getCommissionBizId());
// throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "当前结算汇率不能为空");
// }
}
...
...
@@ -570,9 +566,9 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
return
this
.
getOne
(
new
QueryWrapper
<
Commission
>().
eq
(
"commission_biz_id"
,
commissionBizId
));
}
public
BigDecimal
calculateCurrentCommissionRatio
(
BigDecimal
amount
,
String
premium
,
String
exchangeRate
)
{
public
BigDecimal
calculateCurrentCommissionRatio
(
String
premium
,
BigDecimal
amount
,
String
exchangeRate
,
String
currency
)
{
if
(
ObjectUtils
.
isEmpty
(
premium
))
{
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"保费不能为空"
);
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"保
单保
费不能为空"
);
}
if
(
ObjectUtils
.
isEmpty
(
amount
))
{
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"当前入账金额不能为空"
);
...
...
@@ -750,6 +746,11 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
return
commissionExpectedService
.
save
(
expected
);
}
@Override
public
int
updateStatusBatchById
(
List
<
Commission
>
existingCommissions
)
{
return
this
.
baseMapper
.
updateStatusBatchById
(
existingCommissions
);
}
/**
* 查询列表
*
...
...
yd-csf-service/src/main/resources/mappers/CommissionMapper.xml
View file @
d8b9a136
...
...
@@ -48,6 +48,19 @@
updater_id,create_time,update_time
</sql>
<update
id=
"updateStatusBatchById"
>
update commission
set
status = #{item.status},
update_time = now()
where id in
<foreach
collection=
"existingCommissions"
item=
"item"
index=
"index"
open=
"("
separator=
","
close=
")"
>
#{item.id}
</foreach>
</update>
<select
id=
"queryCommissionBindPolicyBrokerList"
resultType=
"com.yd.csf.service.dto.CommissionBindPolicyBrokerDto"
>
select c.*,p.*,pb.*
...
...
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