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
9723692e
Commit
9723692e
authored
Dec 31, 2025
by
jianan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
前端对接问题修复19
parent
13292b02
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
78 additions
and
38 deletions
+78
-38
yd-csf-service/src/main/java/com/yd/csf/service/component/ReceivableService.java
+7
-13
yd-csf-service/src/main/java/com/yd/csf/service/dto/FortuneStatisticsVO.java
+26
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/Fortune.java
+5
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionExpectedServiceImpl.java
+21
-7
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneServiceImpl.java
+8
-2
yd-csf-service/src/main/java/com/yd/csf/service/vo/CommissionExpectedVO.java
+3
-4
yd-csf-service/src/main/resources/mappers/FortuneMapper.xml
+8
-4
No files found.
yd-csf-service/src/main/java/com/yd/csf/service/component/ReceivableService.java
View file @
9723692e
package
com
.
yd
.
csf
.
service
.
component
;
import
com.yd.common.exception.BusinessException
;
import
com.yd.csf.service.dto.CommissionExpectedAddDto
;
import
org.apache.commons.codec.digest.DigestUtils
;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.data.redis.core.ValueOperations
;
import
org.apache.commons.lang3.StringUtils
;
...
...
@@ -33,6 +35,10 @@ public class ReceivableService {
}
private
String
generateAdditionalReceivableNo
(
CommissionExpectedAddDto
addDto
)
{
String
reconciliationCompanyCode
=
addDto
.
getReconciliationCompanyCode
();
if
(
ObjectUtils
.
isEmpty
(
reconciliationCompanyCode
))
{
throw
new
BusinessException
(
"对账公司编码不能为空"
);
}
LocalDate
today
=
LocalDate
.
now
();
String
dateStr
=
today
.
format
(
DATE_FORMATTER
);
...
...
@@ -42,23 +48,11 @@ public class ReceivableService {
// 格式:应收款类型-对账公司代码-年份后两位-席号(6位数字)
return
String
.
format
(
"%s%s%s%06d"
,
"R"
.
equals
(
addDto
.
getCommissionBizType
())
?
"R-"
:
"U-"
,
getCompanyCode
(
addDto
)
,
reconciliationCompanyCode
,
dateStr
.
substring
(
2
,
4
),
// 取年份后两位
dailySeq
);
}
public
String
getCompanyCode
(
CommissionExpectedAddDto
addDto
)
{
if
(
StringUtils
.
isBlank
(
addDto
.
getReconciliationCompanyCode
()))
{
// 没有对账公司编码,使用自定义公司编码
// 取MD5前6位
String
md5
=
DigestUtils
.
md5Hex
(
addDto
.
getReconciliationCompany
());
return
"UNKNOWN_"
+
md5
.
substring
(
0
,
6
).
toUpperCase
();
}
else
{
// 有对账公司编码,使用对账公司编码
return
addDto
.
getReconciliationCompanyCode
();
}
}
private
long
getDailySequence
()
{
LocalDate
today
=
LocalDate
.
now
();
String
redisKey
=
ADDITIONAL_NO_PREFIX
+
today
.
format
(
DATE_FORMATTER
);
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/FortuneStatisticsVO.java
View file @
9723692e
...
...
@@ -8,15 +8,9 @@ import java.math.BigDecimal;
@Data
public
class
FortuneStatisticsVO
{
/**
*
总出
账金额
*
入
账金额
*/
@Schema
(
description
=
"总出账金额"
)
private
BigDecimal
totalOutAmount
;
/**
* 总入账金额
*/
@Schema
(
description
=
"总入账金额"
)
@Schema
(
description
=
"入账金额"
)
private
BigDecimal
totalInAmount
;
/**
...
...
@@ -24,4 +18,28 @@ public class FortuneStatisticsVO {
*/
@Schema
(
description
=
"总保单数"
)
private
Long
totalPolicyCount
;
/**
* 总保费
*/
@Schema
(
description
=
"总保费"
)
private
BigDecimal
totalPremium
;
/**
* 待出账金额
*/
@Schema
(
description
=
"待出账金额"
)
private
BigDecimal
pendingOutAmount
;
/**
* 可出账账金额
*/
@Schema
(
description
=
"可出账金额"
)
private
BigDecimal
availableOutAmount
;
/**
* 差额
*/
@Schema
(
description
=
"差额(待出账金额 - 可出账金额)"
)
private
BigDecimal
differenceAmount
;
}
yd-csf-service/src/main/java/com/yd/csf/service/model/Fortune.java
View file @
9723692e
...
...
@@ -124,6 +124,11 @@ public class Fortune implements Serializable {
private
String
currency
;
/**
* 本次出账金额
*/
private
BigDecimal
currentPaymentAmount
;
/**
* 佣金发放状态 0=待出账 1=可出账 2=已出账
*/
private
String
status
;
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionExpectedServiceImpl.java
View file @
9723692e
...
...
@@ -42,6 +42,7 @@ import javax.annotation.Resource;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.util.*
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -234,33 +235,46 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"预计入账列表不能为空"
);
}
// 查询保单信息
String
policyNo
=
addDtoList
.
get
(
0
).
getPolicyNo
();
Policy
policy
=
policyService
.
getOne
(
new
QueryWrapper
<
Policy
>().
eq
(
"policy_no"
,
policyNo
));
Set
<
String
>
policyNoSet
=
addDtoList
.
stream
()
.
map
(
CommissionExpectedAddDto:
:
getPolicyNo
)
.
collect
(
Collectors
.
toSet
());
List
<
Policy
>
policyList
=
policyService
.
lambdaQuery
().
in
(
Policy:
:
getPolicyNo
,
policyNoSet
).
list
();
// 保单映射
Map
<
String
,
Policy
>
policyMap
=
policyList
.
stream
()
.
collect
(
Collectors
.
toMap
(
Policy:
:
getPolicyNo
,
Function
.
identity
()));
List
<
CommissionExpected
>
addList
=
new
ArrayList
<>();
List
<
CommissionExpected
>
updateList
=
new
ArrayList
<>();
for
(
CommissionExpectedAddDto
addDto
:
addDtoList
)
{
CommissionExpected
commissionExpected
=
new
CommissionExpected
();
BeanUtils
.
copyProperties
(
addDto
,
commissionExpected
);
// 初始值
// 校验参数
validCommissionExpected
(
commissionExpected
,
true
);
// 结算汇率初始值为 1
commissionExpected
.
setDefaultExchangeRate
(
BigDecimal
.
valueOf
(
1
));
// 如果币种不是港币,查询默认结算汇率
if
(!
StringUtils
.
equalsIgnoreCase
(
addDto
.
getCurrency
(),
"HKD"
))
{
commissionExpected
.
setDefaultExchangeRate
(
queryDefaultExchangeRate
(
addDto
.
getCurrency
()));
}
// 预计总金额
if
(
policy
!=
null
)
{
if
(
"R"
.
equals
(
addDto
.
getCommissionBizType
()))
{
Policy
policy
=
policyMap
.
get
(
addDto
.
getPolicyNo
());
if
(
ObjectUtils
.
isEmpty
(
policy
))
{
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"保单号为"
+
addDto
.
getPolicyNo
()
+
"的保单不存在"
);
}
BigDecimal
expectedAmount
=
policy
.
getPaymentPremium
()
.
multiply
(
commissionExpected
.
getCommissionRatio
())
.
multiply
(
commissionExpected
.
getDefaultExchangeRate
())
.
divide
(
BigDecimal
.
valueOf
(
100
),
4
,
RoundingMode
.
HALF_UP
);
commissionExpected
.
setExpectedAmount
(
expectedAmount
);
// 设置关联字段
commissionExpected
.
setInsuranceCompanyBizId
(
policy
.
getInsuranceCompanyBizId
());
commissionExpected
.
setProductLaunchBizId
(
policy
.
getProductLaunchBizId
());
}
else
{
commissionExpected
.
setExpectedAmount
(
addDto
.
getAmount
());
}
// 校验参数
validCommissionExpected
(
commissionExpected
,
true
);
if
(
StringUtils
.
isBlank
(
addDto
.
getCommissionExpectedBizId
()))
{
// 生成应收账款编号
commissionExpected
.
setReceivableNo
(
receivableService
.
generateReceivableNo
(
addDto
.
getCommissionBizType
(),
addDto
.
getReconciliationCompanyCode
(),
addDto
.
getReconciliationCompany
()));
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneServiceImpl.java
View file @
9723692e
...
...
@@ -372,13 +372,19 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
public
FortuneStatisticsVO
getFortuneStatistics
(
List
<
Long
>
fortuneIdList
)
{
if
(
CollectionUtils
.
isEmpty
(
fortuneIdList
))
{
FortuneStatisticsVO
fortuneStatisticsVO
=
new
FortuneStatisticsVO
();
fortuneStatisticsVO
.
setTotalOutAmount
(
BigDecimal
.
ZERO
);
fortuneStatisticsVO
.
setTotalInAmount
(
BigDecimal
.
ZERO
);
fortuneStatisticsVO
.
setTotalPolicyCount
(
0L
);
fortuneStatisticsVO
.
setTotalPremium
(
BigDecimal
.
ZERO
);
fortuneStatisticsVO
.
setPendingOutAmount
(
BigDecimal
.
ZERO
);
fortuneStatisticsVO
.
setAvailableOutAmount
(
BigDecimal
.
ZERO
);
fortuneStatisticsVO
.
setDifferenceAmount
(
BigDecimal
.
ZERO
);
return
fortuneStatisticsVO
;
}
// 自定义查询
return
this
.
baseMapper
.
getFortuneStatistics
(
fortuneIdList
);
FortuneStatisticsVO
fortuneStatistics
=
this
.
baseMapper
.
getFortuneStatistics
(
fortuneIdList
);
// 计算差额
fortuneStatistics
.
setDifferenceAmount
(
fortuneStatistics
.
getPendingOutAmount
().
subtract
(
fortuneStatistics
.
getAvailableOutAmount
()));
return
fortuneStatistics
;
}
@Override
...
...
yd-csf-service/src/main/java/com/yd/csf/service/vo/CommissionExpectedVO.java
View file @
9723692e
...
...
@@ -101,10 +101,10 @@ public class CommissionExpectedVO implements Serializable {
private
BigDecimal
commissionRatio
;
/**
*
来佣比例 (%)
*
预计入账金额
*/
@Schema
(
description
=
"
来佣比例 (%)
"
)
private
BigDecimal
ratio
;
@Schema
(
description
=
"
预计入账金额 HKD(如果不关联保单,就没有预计入账比例了,此时记录预计入账金额)
"
)
private
BigDecimal
amount
;
/**
* 来佣币种
...
...
@@ -207,7 +207,6 @@ public class CommissionExpectedVO implements Serializable {
}
CommissionExpectedVO
commissionVO
=
new
CommissionExpectedVO
();
BeanUtils
.
copyProperties
(
commissionExpected
,
commissionVO
);
commissionVO
.
setRatio
(
commissionExpected
.
getCommissionRatio
());
return
commissionVO
;
}
...
...
yd-csf-service/src/main/resources/mappers/FortuneMapper.xml
View file @
9723692e
...
...
@@ -24,6 +24,7 @@
<result
property=
"fortuneType"
column=
"fortune_type"
/>
<result
property=
"amount"
column=
"amount"
/>
<result
property=
"currency"
column=
"currency"
/>
<result
property=
"currentPaymentAmount"
column=
"current_payment_amount"
/>
<result
property=
"status"
column=
"status"
/>
<result
property=
"payoutDate"
column=
"payout_date"
/>
<result
property=
"isTax"
column=
"is_tax"
/>
...
...
@@ -45,7 +46,7 @@
id,fortune_biz_id,expected_fortune_biz_id,reconciliation_year_month,fortune_biz_type,batch_biz_id,
commission_biz_id,policy_no,fortune_period,fortune_total_period,broker_biz_id,
team_biz_id,grade_commission_rate,share_rate,fortune_name,fortune_type,is_part,
amount,currency,status,payout_date,is_tax,
amount,currency,
current_payment_amount,
status,payout_date,is_tax,
tax_amount,net_amount,salary_biz_id,base_rule_biz_id,settlement_biz_id,
calculation_formula,remark,is_deleted,creator_id,updater_id,
create_time,update_time
...
...
@@ -53,9 +54,11 @@
<select
id=
"getFortuneStatistics"
resultType=
"com.yd.csf.service.dto.FortuneStatisticsVO"
>
select
ifnull(f.amount,0) as totalOutAmount,
ifnull(c.amount,0) as totalInAmount,
count(distinct f.policy_no) as totalPolicyCount
ifnull(sum(f.amount),0) as pendingOutAmount,
ifnull(sum(c.amount),0) as totalInAmount,
count(distinct f.policy_no) as totalPolicyCount,
ifnull(sum(c.premium),0) as totalPremium,
ifnull(sum(f.current_payment_amount),0) as availableOutAmount
from fortune f
left join commission c on f.commission_biz_id = c.commission_biz_id
where
...
...
@@ -66,4 +69,5 @@
</foreach>
</if>
</select>
</mapper>
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