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
a85ad6ee
Commit
a85ad6ee
authored
Jan 08, 2026
by
jianan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
前端对接问题修复82
parent
4471bf94
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
63 additions
and
90 deletions
+63
-90
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionController.java
+5
-4
yd-csf-api/src/main/java/com/yd/csf/api/dto/CommissionExcelDTO.java
+6
-3
yd-csf-service/src/main/java/com/yd/csf/service/component/CommissionAsyncService.java
+23
-35
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionAddRequest.java
+1
-1
yd-csf-service/src/main/java/com/yd/csf/service/model/Commission.java
+3
-2
yd-csf-service/src/main/java/com/yd/csf/service/service/CommissionService.java
+0
-2
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
+25
-43
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionController.java
View file @
a85ad6ee
...
@@ -192,14 +192,15 @@ public class ApiCommissionController {
...
@@ -192,14 +192,15 @@ public class ApiCommissionController {
// errorMsg.append("第").append(dataList.indexOf(excelDTO) + 1).append("行存在空字段");
// errorMsg.append("第").append(dataList.indexOf(excelDTO) + 1).append("行存在空字段");
// }
// }
if
(
excelDTO
.
getAmount2
()
==
null
)
{
errorMsg
.
append
(
"第"
).
append
(
dataList
.
indexOf
(
excelDTO
)
+
1
).
append
(
"行, 来佣金额不能为空"
);
}
if
(
"关联保单应收单"
.
equals
(
excelDTO
.
getCommissionBizType
()))
{
if
(
"关联保单应收单"
.
equals
(
excelDTO
.
getCommissionBizType
()))
{
if
(
StringUtils
.
isBlank
(
excelDTO
.
getPolicyNo
()))
{
if
(
StringUtils
.
isBlank
(
excelDTO
.
getPolicyNo
()))
{
errorMsg
.
append
(
"第"
).
append
(
dataList
.
indexOf
(
excelDTO
)
+
1
).
append
(
"行关联保单应收单, 保单号不能为空"
);
errorMsg
.
append
(
"第"
).
append
(
dataList
.
indexOf
(
excelDTO
)
+
1
).
append
(
"行关联保单应收单, 保单号不能为空"
);
}
}
if
(
excelDTO
.
getAmount2
()
==
null
)
{
if
(
ObjectUtils
.
isEmpty
(
excelDTO
.
getExchangeRate2
()))
{
errorMsg
.
append
(
"第"
).
append
(
dataList
.
indexOf
(
excelDTO
)
+
1
).
append
(
"行关联保单应收单, 来佣金额不能为空"
);
}
if
(
StringUtils
.
isBlank
(
excelDTO
.
getExchangeRate2
()))
{
errorMsg
.
append
(
"第"
).
append
(
dataList
.
indexOf
(
excelDTO
)
+
1
).
append
(
"行关联保单应收单, 结算汇率不能为空"
);
errorMsg
.
append
(
"第"
).
append
(
dataList
.
indexOf
(
excelDTO
)
+
1
).
append
(
"行关联保单应收单, 结算汇率不能为空"
);
}
}
}
}
...
...
yd-csf-api/src/main/java/com/yd/csf/api/dto/CommissionExcelDTO.java
View file @
a85ad6ee
package
com
.
yd
.
csf
.
api
.
dto
;
package
com
.
yd
.
csf
.
api
.
dto
;
import
cn.hutool.core.convert.Convert
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.yd.common.enums.CommonEnum
;
import
com.yd.common.enums.CommonEnum
;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.common.utils.RandomStringGenerator
;
...
@@ -10,6 +11,7 @@ import lombok.Data;
...
@@ -10,6 +11,7 @@ import lombok.Data;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.util.Date
;
import
java.util.Date
;
@Data
@Data
...
@@ -72,7 +74,7 @@ public class CommissionExcelDTO {
...
@@ -72,7 +74,7 @@ public class CommissionExcelDTO {
private
String
commissionName2
;
private
String
commissionName2
;
@ExcelProperty
(
"结算汇率(实)"
)
@ExcelProperty
(
"结算汇率(实)"
)
private
String
exchangeRate2
;
private
BigDecimal
exchangeRate2
;
/**
/**
...
@@ -85,13 +87,14 @@ public class CommissionExcelDTO {
...
@@ -85,13 +87,14 @@ public class CommissionExcelDTO {
if
(
StringUtils
.
isNotBlank
(
commissionBizType
))
{
if
(
StringUtils
.
isNotBlank
(
commissionBizType
))
{
entity
.
setCommissionBizType
(
"R"
.
equals
(
commissionBizType
)
||
"关联保单应收单"
.
equalsIgnoreCase
(
commissionBizType
)
?
"R"
:
"U"
);
entity
.
setCommissionBizType
(
"R"
.
equals
(
commissionBizType
)
||
"关联保单应收单"
.
equalsIgnoreCase
(
commissionBizType
)
?
"R"
:
"U"
);
}
}
entity
.
setPolicyNo
(
data
.
getPolicyNo2
());
entity
.
setPolicyNo
(
"U"
.
equals
(
entity
.
getCommissionBizType
())
?
null
:
data
.
getPolicyNo2
());
entity
.
setCommissionPeriod
(
data
.
getCommissionPeriod2
());
entity
.
setCommissionPeriod
(
data
.
getCommissionPeriod2
());
entity
.
setCommissionName
(
data
.
getCommissionName2
());
entity
.
setCommissionName
(
data
.
getCommissionName2
());
entity
.
setAmount
(
data
.
getAmount2
());
entity
.
setAmount
(
data
.
getAmount2
());
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
.
setHkdAmount
(
data
.
getAmount2
().
multiply
(
data
.
getExchangeRate2
()));
entity
.
setRemark
(
data
.
getRemark
());
entity
.
setRemark
(
data
.
getRemark
());
entity
.
setStatus
(
null
);
entity
.
setStatus
(
null
);
entity
.
setCreatorId
(
loginUserId
);
entity
.
setCreatorId
(
loginUserId
);
...
@@ -117,7 +120,7 @@ public class CommissionExcelDTO {
...
@@ -117,7 +120,7 @@ public class CommissionExcelDTO {
entity
.
setCommissionName
(
data
.
getCommissionName
());
entity
.
setCommissionName
(
data
.
getCommissionName
());
entity
.
setAmount
(
data
.
getAmount
());
entity
.
setAmount
(
data
.
getAmount
());
entity
.
setCurrency
(
data
.
getCurrency
());
entity
.
setCurrency
(
data
.
getCurrency
());
entity
.
setExchangeRate
(
data
.
getExchangeRate
(
));
entity
.
setExchangeRate
(
Convert
.
toBigDecimal
(
data
.
getExchangeRate
()
));
entity
.
setCommissionDate
(
data
.
getCommissionDate
());
entity
.
setCommissionDate
(
data
.
getCommissionDate
());
entity
.
setRemark
(
data
.
getRemark
());
entity
.
setRemark
(
data
.
getRemark
());
entity
.
setStatus
(
null
);
entity
.
setStatus
(
null
);
...
...
yd-csf-service/src/main/java/com/yd/csf/service/component/CommissionAsyncService.java
View file @
a85ad6ee
...
@@ -26,6 +26,7 @@ import java.math.RoundingMode;
...
@@ -26,6 +26,7 @@ import java.math.RoundingMode;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
@Service
@Service
...
@@ -41,11 +42,11 @@ public class CommissionAsyncService {
...
@@ -41,11 +42,11 @@ public class CommissionAsyncService {
// @Async("commonAsyncExecutor")
// @Async("commonAsyncExecutor")
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
commissionCompareBatch
(
List
<
Commission
>
entities
)
{
public
void
commissionCompareBatch
(
List
<
Commission
>
entities
)
{
// 根据是否
有
保单号,来区分比对方式
// 根据是否
关联
保单号,来区分比对方式
List
<
Commission
>
hasPolicyNoList
=
new
ArrayList
<>();
List
<
Commission
>
hasPolicyNoList
=
new
ArrayList
<>();
List
<
Commission
>
noPolicyNoList
=
new
ArrayList
<>();
List
<
Commission
>
noPolicyNoList
=
new
ArrayList
<>();
for
(
Commission
entity
:
entities
)
{
for
(
Commission
entity
:
entities
)
{
if
(
StringUtils
.
isBlank
(
entity
.
getPolicyNo
()))
{
if
(
"U"
.
equals
(
entity
.
getCommissionBizType
()))
{
noPolicyNoList
.
add
(
entity
);
noPolicyNoList
.
add
(
entity
);
}
else
{
}
else
{
hasPolicyNoList
.
add
(
entity
);
hasPolicyNoList
.
add
(
entity
);
...
@@ -132,35 +133,29 @@ public class CommissionAsyncService {
...
@@ -132,35 +133,29 @@ public class CommissionAsyncService {
}
}
private
void
normalBatch
(
List
<
Commission
>
entities
)
{
private
void
normalBatch
(
List
<
Commission
>
entities
)
{
// 1.
根据导入的来佣获取保单号
集合
// 1.
需要比对的预计来佣业务id
集合
List
<
String
>
policyNo
List
=
entities
.
stream
()
List
<
String
>
commissionExpectedBizId
List
=
entities
.
stream
()
.
map
(
Commission:
:
get
PolicyNo
)
.
map
(
Commission:
:
get
CommissionExpectedBizId
)
.
collect
(
Collectors
.
toList
());
.
collect
(
Collectors
.
toList
());
// 2.根据预计来佣业务id查询已存在的来佣记录
// 2.根据保单号查询已存在的来佣记录
List
<
Commission
>
existingCommissions
=
commissionService
.
lambdaQuery
()
List
<
Commission
>
existingCommissions
=
commissionService
.
lambdaQuery
()
.
in
(
Commission:
:
get
PolicyNo
,
policyNo
List
)
.
in
(
Commission:
:
get
CommissionExpectedBizId
,
commissionExpectedBizId
List
)
.
list
();
.
list
();
//
来佣根据 保单号、来佣名称、来佣周期、货币
进行分组
//
commission 根据关联的 commission_expected_biz_id
进行分组
Map
<
String
,
List
<
Commission
>>
commissionMap
=
existingCommissions
.
stream
()
Map
<
String
,
List
<
Commission
>>
commissionMap
=
existingCommissions
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
.
filter
(
commission
->
commission
.
getCommissionExpectedBizId
()
!=
null
)
c
->
c
.
getPolicyNo
()
+
c
.
getCommissionName
()
+
c
.
getCommissionPeriod
()
+
c
.
getCurrency
()
.
collect
(
Collectors
.
groupingBy
(
Commission:
:
getCommissionExpectedBizId
));
));
// 3.根据保单号查询预计来佣
// 3.根据保单号查询预计来佣
List
<
CommissionExpected
>
expectedList
=
commissionExpectedService
.
lambdaQuery
()
List
<
CommissionExpected
>
expectedList
=
commissionExpectedService
.
lambdaQuery
()
.
in
(
CommissionExpected:
:
get
PolicyNo
,
policyNo
List
)
.
in
(
CommissionExpected:
:
get
CommissionExpectedBizId
,
commissionExpectedBizId
List
)
.
list
();
.
list
();
// 预计来佣
根据 保单号、来佣名称、来佣周期、货币 进行
映射
// 预计来佣映射
Map
<
String
,
CommissionExpected
>
expectedMap
=
expectedList
.
stream
()
Map
<
String
,
CommissionExpected
>
expectedMap
=
expectedList
.
stream
()
.
collect
(
Collectors
.
toMap
(
.
collect
(
Collectors
.
toMap
(
CommissionExpected:
:
getCommissionExpectedBizId
,
Function
.
identity
()));
commissionExpected
->
commissionExpected
.
getPolicyNo
()
+
commissionExpected
.
getCommissionName
()
+
commissionExpected
.
getCommissionPeriod
()
+
commissionExpected
.
getCurrency
(),
commissionExpected
->
commissionExpected
));
// 4.遍历预计来佣,进行比对
// 4.遍历预计来佣,进行比对
for
(
Map
.
Entry
<
String
,
CommissionExpected
>
entry
:
expectedMap
.
entrySet
())
{
for
(
Map
.
Entry
<
String
,
CommissionExpected
>
entry
:
expectedMap
.
entrySet
())
{
// 根据 保单号、来佣名称、来佣周期、货币 分组
String
key
=
entry
.
getKey
();
String
key
=
entry
.
getKey
();
CommissionExpected
commissionExpected
=
entry
.
getValue
();
CommissionExpected
commissionExpected
=
entry
.
getValue
();
// 从已存在的来佣记录中获取当前来佣记录
// 从已存在的来佣记录中获取当前来佣记录
...
@@ -194,12 +189,7 @@ public class CommissionAsyncService {
...
@@ -194,12 +189,7 @@ public class CommissionAsyncService {
BigDecimal
paidRatio
=
BigDecimal
.
ZERO
;
BigDecimal
paidRatio
=
BigDecimal
.
ZERO
;
BigDecimal
paidAmount
=
BigDecimal
.
ZERO
;
BigDecimal
paidAmount
=
BigDecimal
.
ZERO
;
for
(
Commission
item
:
existingCommissions
)
{
for
(
Commission
item
:
existingCommissions
)
{
if
(
item
.
getCurrentCommissionRatio
()
==
null
)
{
paidRatio
=
paidRatio
.
add
(
item
.
getCurrentCommissionRatio
());
log
.
warn
(
"当前来佣比例为空,临时计算当前来佣比例: commission_id={}"
,
item
.
getId
());
paidRatio
=
paidRatio
.
add
(
item
.
calculateCurrentPaidRatio
());
}
else
{
paidRatio
=
paidRatio
.
add
(
item
.
getCurrentCommissionRatio
());
}
paidAmount
=
paidAmount
.
add
(
item
.
getHkdAmount
());
paidAmount
=
paidAmount
.
add
(
item
.
getHkdAmount
());
}
}
...
@@ -217,6 +207,8 @@ public class CommissionAsyncService {
...
@@ -217,6 +207,8 @@ public class CommissionAsyncService {
List
<
CommissionCompareRecord
>
compareRecords
=
new
ArrayList
<>();
List
<
CommissionCompareRecord
>
compareRecords
=
new
ArrayList
<>();
// 计算比对状态
// 计算比对状态
log
.
info
(
"paidRatio: {}, commissionExpected.getCommissionRatio(): {}"
,
paidRatio
,
commissionExpected
.
getCommissionRatio
());
log
.
info
(
"commissionExpected_id: {}"
,
commissionExpected
.
getId
());
if
(
paidRatio
.
compareTo
(
commissionExpected
.
getCommissionRatio
())
==
0
)
{
if
(
paidRatio
.
compareTo
(
commissionExpected
.
getCommissionRatio
())
==
0
)
{
// 等于预计比例时,所有来佣设置为比对成功
// 等于预计比例时,所有来佣设置为比对成功
for
(
Commission
existingCommission
:
existingCommissions
)
{
for
(
Commission
existingCommission
:
existingCommissions
)
{
...
@@ -263,10 +255,10 @@ public class CommissionAsyncService {
...
@@ -263,10 +255,10 @@ public class CommissionAsyncService {
public
void
commissionCompare
(
Commission
commission
)
{
public
void
commissionCompare
(
Commission
commission
)
{
log
.
info
(
"开始执行比对事务,来佣ID: {}"
,
commission
.
getCommissionBizId
());
log
.
info
(
"开始执行比对事务,来佣ID: {}"
,
commission
.
getCommissionBizId
());
if
(
StringUtils
.
isNotBlank
(
commission
.
getPolicyNo
()))
{
if
(
"R"
.
equals
(
commission
.
getCommissionBizType
()))
{
normalCommission
(
commission
.
getCommissionBizId
(),
commission
.
getPolicyNo
(),
commission
.
getCommissionName
(),
commission
.
getCommissionPeriod
(),
commission
.
getCurrency
(),
commission
.
getPremium
());
normalCommission
(
commission
.
getCommissionBizId
(),
commission
.
getPolicyNo
(),
commission
.
getCommissionName
(),
commission
.
getCommissionPeriod
(),
commission
.
getCurrency
(),
commission
.
getPremium
());
}
else
{
}
else
{
//
无保单号
,根据来佣名称、对账公司查询来佣记录
//
非关联保单号应收单
,根据来佣名称、对账公司查询来佣记录
noPolicyNoCommission
(
commission
);
noPolicyNoCommission
(
commission
);
}
}
}
}
...
@@ -281,6 +273,7 @@ public class CommissionAsyncService {
...
@@ -281,6 +273,7 @@ public class CommissionAsyncService {
// 1.根据来佣名称、对账公司查询预计来佣
// 1.根据来佣名称、对账公司查询预计来佣
QueryWrapper
<
CommissionExpected
>
queryWrapper
=
new
QueryWrapper
<>();
QueryWrapper
<
CommissionExpected
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
eq
(
"reconciliation_company"
,
commission
.
getReconciliationCompany
());
queryWrapper
.
eq
(
"reconciliation_company"
,
commission
.
getReconciliationCompany
());
queryWrapper
.
eq
(
"commission_period"
,
commission
.
getCommissionPeriod
());
queryWrapper
.
eq
(
"commission_name"
,
commission
.
getCommissionName
());
queryWrapper
.
eq
(
"commission_name"
,
commission
.
getCommissionName
());
List
<
CommissionExpected
>
expectedList
=
commissionExpectedService
.
list
(
queryWrapper
);
List
<
CommissionExpected
>
expectedList
=
commissionExpectedService
.
list
(
queryWrapper
);
if
(
expectedList
.
size
()
!=
1
)
{
if
(
expectedList
.
size
()
!=
1
)
{
...
@@ -332,8 +325,7 @@ public class CommissionAsyncService {
...
@@ -332,8 +325,7 @@ public class CommissionAsyncService {
List
<
Commission
>
existingCommissions
=
commissionService
.
list
(
new
QueryWrapper
<
Commission
>()
List
<
Commission
>
existingCommissions
=
commissionService
.
list
(
new
QueryWrapper
<
Commission
>()
.
eq
(
"policy_no"
,
policyNo
)
.
eq
(
"policy_no"
,
policyNo
)
.
eq
(
"commission_name"
,
commissionName
)
.
eq
(
"commission_name"
,
commissionName
)
.
eq
(
"commission_period"
,
commissionPeriod
)
.
eq
(
"commission_period"
,
commissionPeriod
));
.
eq
(
"currency"
,
currency
));
// 当前 commission 记录
// 当前 commission 记录
Commission
commission
=
existingCommissions
.
stream
()
Commission
commission
=
existingCommissions
.
stream
()
...
@@ -345,12 +337,7 @@ public class CommissionAsyncService {
...
@@ -345,12 +337,7 @@ public class CommissionAsyncService {
}
}
// 查询对应预计来佣
// 查询对应预计来佣
CommissionExpected
commissionExpected
=
commissionService
.
queryByCommission
(
CommissionExpected
commissionExpected
=
commissionExpectedService
.
getByBizId
(
commission
.
getCommissionExpectedBizId
());
commission
.
getPolicyNo
(),
commission
.
getCommissionName
(),
commission
.
getCommissionPeriod
(),
commission
.
getCurrency
(),
premium
);
doCompare
(
existingCommissions
,
commissionExpected
,
commission
);
doCompare
(
existingCommissions
,
commissionExpected
,
commission
);
}
}
...
@@ -359,6 +346,7 @@ public class CommissionAsyncService {
...
@@ -359,6 +346,7 @@ public class CommissionAsyncService {
// 校验参数
// 校验参数
if
(
commission
.
getTotalPeriod
().
compareTo
(
commissionExpected
.
getTotalPeriod
())
!=
0
)
{
if
(
commission
.
getTotalPeriod
().
compareTo
(
commissionExpected
.
getTotalPeriod
())
!=
0
)
{
commission
.
setRemark
(
"来佣总期数与预计来佣总期数不一致"
);
commission
.
setRemark
(
"来佣总期数与预计来佣总期数不一致"
);
commission
.
setStatus
(
CommissionStatusEnum
.
COMPARE_FAIL
.
getItemValue
());
commissionService
.
updateById
(
commission
);
commissionService
.
updateById
(
commission
);
return
;
return
;
}
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionAddRequest.java
View file @
a85ad6ee
...
@@ -78,7 +78,7 @@ public class CommissionAddRequest implements Serializable {
...
@@ -78,7 +78,7 @@ public class CommissionAddRequest implements Serializable {
* 结算汇率
* 结算汇率
*/
*/
@Schema
(
description
=
"结算汇率"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
@Schema
(
description
=
"结算汇率"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
private
String
exchangeRate
;
private
BigDecimal
exchangeRate
;
/**
/**
* 入账日(实)
* 入账日(实)
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/Commission.java
View file @
a85ad6ee
...
@@ -111,7 +111,7 @@ public class Commission implements Serializable {
...
@@ -111,7 +111,7 @@ public class Commission implements Serializable {
/**
/**
* 结算汇率
* 结算汇率
*/
*/
private
String
exchangeRate
;
private
BigDecimal
exchangeRate
;
/**
/**
* 来佣金额(港币)
* 来佣金额(港币)
...
@@ -180,7 +180,7 @@ public class Commission implements Serializable {
...
@@ -180,7 +180,7 @@ public class Commission implements Serializable {
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
(
new
BigDecimal
(
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/CommissionService.java
View file @
a85ad6ee
...
@@ -40,8 +40,6 @@ public interface CommissionService extends IService<Commission> {
...
@@ -40,8 +40,6 @@ public interface CommissionService extends IService<Commission> {
CommissionStatisticsVO
getCommissionStatistics
(
List
<
Long
>
commissionIds
);
CommissionStatisticsVO
getCommissionStatistics
(
List
<
Long
>
commissionIds
);
CommissionExpected
queryByCommission
(
String
policyNo
,
String
commissionName
,
Integer
commissionPeriod
,
String
currency
,
String
premium
);
void
validateCommissionUpdateRequest
(
CommissionUpdateRequest
commissionUpdateRequest
);
void
validateCommissionUpdateRequest
(
CommissionUpdateRequest
commissionUpdateRequest
);
void
saveUpdateCommissionRecord
(
Commission
commission
,
CommissionUpdateRequest
commissionUpdateRequest
,
AuthUserDto
currentLoginUser
);
void
saveUpdateCommissionRecord
(
Commission
commission
,
CommissionUpdateRequest
commissionUpdateRequest
,
AuthUserDto
currentLoginUser
);
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
View file @
a85ad6ee
...
@@ -307,21 +307,20 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
...
@@ -307,21 +307,20 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
commissionUpdateRequest
.
getExchangeRate
());
commissionUpdateRequest
.
getExchangeRate
());
commission
.
setCurrentCommissionRatio
(
currentCommissionRatio
);
commission
.
setCurrentCommissionRatio
(
currentCommissionRatio
);
}
else
{
}
else
{
// 非关联应收单,查询预计来佣记录,获取标准发佣金额
commission
.
setPolicyNo
(
null
);
CommissionExpected
commissionExpected
=
commissionExpectedService
.
lambdaQuery
()
}
.
eq
(
CommissionExpected:
:
getPolicyNo
,
commission
.
getPolicyNo
())
// 重新关联预计来佣记录
.
eq
(
CommissionExpected:
:
getCommissionPeriod
,
commission
.
getCommissionPeriod
()
)
CommissionExpected
commissionExpected
=
commissionExpectedService
.
lambdaQuery
(
)
.
eq
(
CommissionExpected:
:
getCommissionName
,
commission
.
getCommissionName
())
.
eq
(
CommissionExpected:
:
getPolicyNo
,
commission
.
getPolicyNo
())
// .eq(CommissionExpected::getCurrency, commission.getCurrency
())
.
eq
(
CommissionExpected:
:
getCommissionPeriod
,
commission
.
getCommissionPeriod
())
.
one
();
.
eq
(
CommissionExpected:
:
getCommissionName
,
commission
.
getCommissionName
())
if
(
commissionExpected
==
null
)
{
.
one
();
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"未找到预计来佣记录"
);
if
(
commissionExpected
!=
null
)
{
}
commission
.
setCommissionExpectedBizId
(
commissionExpected
.
getCommissionExpectedBizId
());
}
}
// 计算来佣金额(港币)
// 计算来佣金额(港币)
BigDecimal
hkdAmount
=
requestAmount
BigDecimal
hkdAmount
=
requestAmount
.
multiply
(
commissionUpdateRequest
.
getExchangeRate
())
.
multiply
(
commissionUpdateRequest
.
getExchangeRate
());
.
divide
(
BigDecimal
.
valueOf
(
100
),
4
,
RoundingMode
.
HALF_UP
);
commission
.
setHkdAmount
(
hkdAmount
);
commission
.
setHkdAmount
(
hkdAmount
);
// 获取当前登录用户
// 获取当前登录用户
...
@@ -445,31 +444,6 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
...
@@ -445,31 +444,6 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
}
}
@Override
@Override
public
CommissionExpected
queryByCommission
(
String
policyNo
,
String
commissionName
,
Integer
commissionPeriod
,
String
currency
,
String
premium
)
{
QueryWrapper
<
CommissionExpected
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
eq
(
"policy_no"
,
policyNo
);
queryWrapper
.
eq
(
"commission_name"
,
commissionName
);
queryWrapper
.
eq
(
"commission_period"
,
commissionPeriod
);
queryWrapper
.
eq
(
"currency"
,
currency
);
CommissionExpected
one
=
commissionExpectedService
.
getOne
(
queryWrapper
);
if
(
ObjectUtils
.
isEmpty
(
one
))
{
String
errorMsg
=
String
.
format
(
"未找到当前来佣对应的预计来佣,保单号:%s, 来佣名称:%s, 来佣期数:%s, 币种:%s"
,
policyNo
,
commissionName
,
commissionPeriod
,
currency
);
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
errorMsg
);
}
// 计算预计来佣金额 (统一试算币种:HKD)
if
(
one
.
getExpectedAmount
()
==
null
)
{
BigDecimal
expectedAmount
=
new
BigDecimal
(
premium
)
.
multiply
(
one
.
getCommissionRatio
());
if
(
"USD"
.
equals
(
one
.
getCurrency
()))
{
expectedAmount
=
expectedAmount
.
multiply
(
one
.
getDefaultExchangeRate
());
}
one
.
setExpectedAmount
(
expectedAmount
.
divide
(
BigDecimal
.
valueOf
(
100
),
4
,
RoundingMode
.
HALF_UP
));
}
return
one
;
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Boolean
generateFortune
(
GenerateFortuneRequest
generateFortuneRequest
)
{
public
Boolean
generateFortune
(
GenerateFortuneRequest
generateFortuneRequest
)
{
List
<
String
>
commissionBizIdList
=
generateFortuneRequest
.
getCommissionBizIdList
();
List
<
String
>
commissionBizIdList
=
generateFortuneRequest
.
getCommissionBizIdList
();
...
@@ -695,7 +669,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
...
@@ -695,7 +669,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
commissionCompareRecord
.
setAmount
(
commission
.
getAmount
());
commissionCompareRecord
.
setAmount
(
commission
.
getAmount
());
commissionCompareRecord
.
setCurrentCommissionRatio
(
commission
.
getCurrentCommissionRatio
());
commissionCompareRecord
.
setCurrentCommissionRatio
(
commission
.
getCurrentCommissionRatio
());
commissionCompareRecord
.
setCurrency
(
commission
.
getCurrency
());
commissionCompareRecord
.
setCurrency
(
commission
.
getCurrency
());
commissionCompareRecord
.
setExchangeRate
(
commission
.
getExchangeRate
(
));
commissionCompareRecord
.
setExchangeRate
(
Convert
.
toStr
(
commission
.
getExchangeRate
()
));
commissionCompareRecord
.
setStatus
(
commission
.
getStatus
());
commissionCompareRecord
.
setStatus
(
commission
.
getStatus
());
commissionCompareRecord
.
setRemark
(
commission
.
getRemark
());
commissionCompareRecord
.
setRemark
(
commission
.
getRemark
());
commissionCompareRecord
.
setCreateTime
(
commission
.
getCreateTime
());
commissionCompareRecord
.
setCreateTime
(
commission
.
getCreateTime
());
...
@@ -711,7 +685,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
...
@@ -711,7 +685,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
commissionCompareRecord
.
setTotalPeriod
(
commission
.
getTotalPeriod
());
commissionCompareRecord
.
setTotalPeriod
(
commission
.
getTotalPeriod
());
commissionCompareRecord
.
setAmount
(
commission
.
getAmount
());
commissionCompareRecord
.
setAmount
(
commission
.
getAmount
());
commissionCompareRecord
.
setCurrency
(
commission
.
getCurrency
());
commissionCompareRecord
.
setCurrency
(
commission
.
getCurrency
());
commissionCompareRecord
.
setExchangeRate
(
commission
.
getExchangeRate
(
));
commissionCompareRecord
.
setExchangeRate
(
Convert
.
toStr
(
commission
.
getExchangeRate
()
));
commissionCompareRecord
.
setStatus
(
commission
.
getStatus
());
commissionCompareRecord
.
setStatus
(
commission
.
getStatus
());
commissionCompareRecord
.
setRemark
(
commission
.
getRemark
());
commissionCompareRecord
.
setRemark
(
commission
.
getRemark
());
commissionCompareRecord
.
setOperatorName
(
currentLoginUser
.
getUsername
());
commissionCompareRecord
.
setOperatorName
(
currentLoginUser
.
getUsername
());
...
@@ -747,6 +721,10 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
...
@@ -747,6 +721,10 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
for
(
CommissionAddRequest
request
:
customerAddRequestList
)
{
for
(
CommissionAddRequest
request
:
customerAddRequestList
)
{
Commission
commission
=
new
Commission
();
Commission
commission
=
new
Commission
();
BeanUtils
.
copyProperties
(
request
,
commission
);
BeanUtils
.
copyProperties
(
request
,
commission
);
// 计算来佣金额(港币)
BigDecimal
hkdAmount
=
request
.
getAmount
()
.
multiply
(
request
.
getExchangeRate
());
commission
.
setHkdAmount
(
hkdAmount
);
// 入账业务id
// 入账业务id
commission
.
setCommissionBizId
(
RandomStringGenerator
.
generateBizId16
(
CommonEnum
.
UID_TYPE_COMMISSION
.
getCode
()));
commission
.
setCommissionBizId
(
RandomStringGenerator
.
generateBizId16
(
CommonEnum
.
UID_TYPE_COMMISSION
.
getCode
()));
// 关联业务id
// 关联业务id
...
@@ -765,6 +743,8 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
...
@@ -765,6 +743,8 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"保单不存在, policyNo: "
+
request
.
getPolicyNo
());
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"保单不存在, policyNo: "
+
request
.
getPolicyNo
());
}
}
}
}
}
else
{
commission
.
setPolicyNo
(
null
);
}
}
// 关联预计来佣信息
// 关联预计来佣信息
if
(
CollectionUtils
.
isNotEmpty
(
commissionExpectedList
))
{
if
(
CollectionUtils
.
isNotEmpty
(
commissionExpectedList
))
{
...
@@ -772,8 +752,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
...
@@ -772,8 +752,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
CommissionExpected
expected
=
commissionExpectedList
.
stream
()
CommissionExpected
expected
=
commissionExpectedList
.
stream
()
.
filter
(
item
->
item
.
getPolicyNo
().
equals
(
request
.
getPolicyNo
())
.
filter
(
item
->
item
.
getPolicyNo
().
equals
(
request
.
getPolicyNo
())
&&
item
.
getCommissionPeriod
().
equals
(
request
.
getCommissionPeriod
())
&&
item
.
getCommissionPeriod
().
equals
(
request
.
getCommissionPeriod
())
&&
item
.
getCommissionName
().
equals
(
request
.
getCommissionName
())
&&
item
.
getCommissionName
().
equals
(
request
.
getCommissionName
()))
&&
item
.
getCurrency
().
equals
(
request
.
getCurrency
()))
.
findFirst
()
.
findFirst
()
.
orElse
(
null
);
.
orElse
(
null
);
if
(
expected
!=
null
)
{
if
(
expected
!=
null
)
{
...
@@ -823,9 +802,12 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
...
@@ -823,9 +802,12 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
if
(
StringUtils
.
isBlank
(
request
.
getCommissionName
()))
{
if
(
StringUtils
.
isBlank
(
request
.
getCommissionName
()))
{
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"入账项目名称不能为空"
);
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"入账项目名称不能为空"
);
}
}
if
(
ObjectUtils
.
isEmpty
(
request
.
getAmount
()))
{
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"入账金额不能为空"
);
}
if
(
"R"
.
equals
(
request
.
getCommissionBizType
()))
{
if
(
"R"
.
equals
(
request
.
getCommissionBizType
()))
{
// 校验保单号是否存在
// 校验保单号是否存在
if
(
StringUtils
.
isBlank
(
request
.
getExchangeRate
()))
{
if
(
ObjectUtils
.
isEmpty
(
request
.
getExchangeRate
()))
{
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"关联保单号记录,结算汇率不能为空"
);
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"关联保单号记录,结算汇率不能为空"
);
}
}
}
}
...
@@ -857,7 +839,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
...
@@ -857,7 +839,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
expected
.
setExpectedAmount
(
commission
.
getAmount
());
expected
.
setExpectedAmount
(
commission
.
getAmount
());
expected
.
setPaidAmount
(
BigDecimal
.
ZERO
);
expected
.
setPaidAmount
(
BigDecimal
.
ZERO
);
expected
.
setPaidRatio
(
BigDecimal
.
valueOf
(
100
));
expected
.
setPaidRatio
(
BigDecimal
.
valueOf
(
100
));
expected
.
setDefaultExchangeRate
(
new
BigDecimal
(
commission
.
getExchangeRate
()
));
expected
.
setDefaultExchangeRate
(
commission
.
getExchangeRate
(
));
expected
.
setCommissionDate
(
new
Date
());
expected
.
setCommissionDate
(
new
Date
());
expected
.
setCreatorId
(
loginUserId
);
expected
.
setCreatorId
(
loginUserId
);
...
...
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