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
8e7e2381
Commit
8e7e2381
authored
Jun 03, 2026
by
zhangxingmin
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev' into prod
parents
d77df53c
0b7a2a19
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
79 additions
and
31 deletions
+79
-31
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionExpectedController.java
+2
-2
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiExpectedFortuneServiceImpl.java
+1
-1
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiPremiumRemittanceServiceImpl.java
+32
-4
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/premiumremittance/ApiPremiumRemittanceDto.java
+11
-11
yd-csf-service/src/main/java/com/yd/csf/service/dao/CommissionExpectedMapper.java
+2
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/FortuneAccountQueryRequest.java
+2
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/CommissionExpectedService.java
+1
-1
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionExpectedServiceImpl.java
+6
-6
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
+17
-5
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneAccountServiceImpl.java
+4
-1
yd-csf-service/src/main/resources/mappers/CommissionExpectedMapper.xml
+1
-0
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionExpectedController.java
View file @
8e7e2381
...
...
@@ -241,7 +241,7 @@ public class ApiCommissionExpectedController {
.
map
(
CommissionExpected:
:
getId
)
.
collect
(
Collectors
.
toList
());
CommissionExpectedStatisticsVO
statisticsNewVO
=
commissionExpectedService
.
getExpectedStatisticsNew
(
expectedIds
);
.
getExpectedStatisticsNew
(
allExpectedList
);
// 获取混合分页结果
Page
<
CommissionExpectedNewVO
>
mixedPage
=
commissionExpectedService
...
...
@@ -380,7 +380,7 @@ public class ApiCommissionExpectedController {
List
<
Long
>
allExpectedIdList
=
allCommissionExpectedList
.
stream
().
map
(
CommissionExpected:
:
getId
).
collect
(
Collectors
.
toList
());
// 查询统计数据(基于所有符合条件的记录)
CommissionExpectedStatisticsVO
statisticsVO
=
commissionExpectedService
.
getExpectedStatisticsNew
(
all
ExpectedI
dList
);
CommissionExpectedStatisticsVO
statisticsVO
=
commissionExpectedService
.
getExpectedStatisticsNew
(
all
CommissionExpecte
dList
);
// 应收款报表分页查询 - 按保单号和期数维度统计
Page
<
ReceivableReportVO
>
reportPage
=
new
Page
<>(
commissionExpectedQueryRequest
.
getPageNo
(),
commissionExpectedQueryRequest
.
getPageSize
());
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiExpectedFortuneServiceImpl.java
View file @
8e7e2381
...
...
@@ -1136,7 +1136,7 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
// 校验是否存在
for
(
ExpectedFortuneAddRequest
request
:
fortuneAddRequestList
)
{
String
key
=
String
.
format
(
"%s_%s_%s"
,
request
.
getPolicyNo
(),
request
.
getFortunePeriod
(),
request
.
getFortune
Biz
Type
());
String
key
=
String
.
format
(
"%s_%s_%s"
,
request
.
getPolicyNo
(),
request
.
getFortunePeriod
(),
request
.
getFortuneType
());
if
(
existingRecordsMap
.
containsKey
(
key
))
{
throw
new
BusinessException
(
ResultCode
.
PARAM_CHECK_ERROR
.
getCode
(),
"当前期数已存在: "
+
request
.
getFortuneName
());
}
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiPremiumRemittanceServiceImpl.java
View file @
8e7e2381
...
...
@@ -90,9 +90,23 @@ public class ApiPremiumRemittanceServiceImpl implements ApiPremiumRemittanceServ
PremiumRemittance
premiumRemittance
=
result
.
getData
();
BeanUtils
.
copyProperties
(
request
,
premiumRemittance
);
//支付凭证
premiumRemittance
.
setPaymentVoucher
(!
CollectionUtils
.
isEmpty
(
request
.
getPaymentVoucherList
())
?
String
.
join
(
";"
,
request
.
getPaymentVoucherList
())
:
""
);
List
<
String
>
paymentVoucherList
=
new
ArrayList
<>();
if
(!
CollectionUtils
.
isEmpty
(
request
.
getPaymentVoucherDtoList
()))
{
paymentVoucherList
=
request
.
getPaymentVoucherDtoList
().
stream
()
.
filter
(
dto
->
StringUtils
.
isNotBlank
(
dto
.
getFileUrl
()))
.
map
(
ApiPremiumRemittanceFileDto:
:
getFileUrl
)
.
collect
(
Collectors
.
toList
());
}
premiumRemittance
.
setPaymentVoucher
(!
CollectionUtils
.
isEmpty
(
paymentVoucherList
)
?
String
.
join
(
";"
,
paymentVoucherList
)
:
""
);
//账户证明
premiumRemittance
.
setAccountVerification
(!
CollectionUtils
.
isEmpty
(
request
.
getAccountVerificationList
())
?
String
.
join
(
";"
,
request
.
getAccountVerificationList
())
:
""
);
List
<
String
>
accountVerificationList
=
new
ArrayList
<>();
if
(!
CollectionUtils
.
isEmpty
(
request
.
getAccountVerificationDtoList
()))
{
accountVerificationList
=
request
.
getAccountVerificationDtoList
().
stream
()
.
filter
(
dto
->
StringUtils
.
isNotBlank
(
dto
.
getFileUrl
()))
.
map
(
ApiPremiumRemittanceFileDto:
:
getFileUrl
)
.
collect
(
Collectors
.
toList
());
}
premiumRemittance
.
setAccountVerification
(!
CollectionUtils
.
isEmpty
(
accountVerificationList
)
?
String
.
join
(
";"
,
accountVerificationList
)
:
""
);
iPremiumRemittanceService
.
saveOrUpdate
(
premiumRemittance
);
//保存-保费对账汇款记录附件列表
apiPremiumRemittanceFileService
.
savePremiumRemittanceFileList
(
request
.
getApiPremiumRemittanceFileDtoList
(),
request
.
getPremiumRemittanceBizId
());
...
...
@@ -154,9 +168,23 @@ public class ApiPremiumRemittanceServiceImpl implements ApiPremiumRemittanceServ
//保费对账-汇款记录表唯一业务ID
premiumRemittance
.
setPremiumRemittanceBizId
(
RandomStringGenerator
.
generateBizId16
(
CommonEnum
.
UID_TYPE_PREMIUM_REMITTANCE
.
getCode
()));
//支付凭证
premiumRemittance
.
setPaymentVoucher
(!
CollectionUtils
.
isEmpty
(
dto
.
getPaymentVoucherList
())
?
String
.
join
(
";"
,
dto
.
getPaymentVoucherList
())
:
""
);
List
<
String
>
paymentVoucherList
=
new
ArrayList
<>();
if
(!
CollectionUtils
.
isEmpty
(
dto
.
getPaymentVoucherDtoList
()))
{
paymentVoucherList
=
dto
.
getPaymentVoucherDtoList
().
stream
()
.
filter
(
dto1
->
StringUtils
.
isNotBlank
(
dto1
.
getFileUrl
()))
.
map
(
ApiPremiumRemittanceFileDto:
:
getFileUrl
)
.
collect
(
Collectors
.
toList
());
}
premiumRemittance
.
setPaymentVoucher
(!
CollectionUtils
.
isEmpty
(
paymentVoucherList
)
?
String
.
join
(
";"
,
paymentVoucherList
)
:
""
);
//账户证明
premiumRemittance
.
setAccountVerification
(!
CollectionUtils
.
isEmpty
(
dto
.
getAccountVerificationList
())
?
String
.
join
(
";"
,
dto
.
getAccountVerificationList
())
:
""
);
List
<
String
>
accountVerificationList
=
new
ArrayList
<>();
if
(!
CollectionUtils
.
isEmpty
(
dto
.
getAccountVerificationDtoList
()))
{
accountVerificationList
=
dto
.
getAccountVerificationDtoList
().
stream
()
.
filter
(
dto1
->
StringUtils
.
isNotBlank
(
dto1
.
getFileUrl
()))
.
map
(
ApiPremiumRemittanceFileDto:
:
getFileUrl
)
.
collect
(
Collectors
.
toList
());
}
premiumRemittance
.
setAccountVerification
(!
CollectionUtils
.
isEmpty
(
accountVerificationList
)
?
String
.
join
(
";"
,
accountVerificationList
)
:
""
);
iPremiumRemittanceService
.
saveOrUpdate
(
premiumRemittance
);
//添加-保费对账汇款记录附件列表
...
...
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/premiumremittance/ApiPremiumRemittanceDto.java
View file @
8e7e2381
...
...
@@ -73,17 +73,17 @@ public class ApiPremiumRemittanceDto {
@JsonDeserialize
(
using
=
CustomLocalDateTimeDeserializer
.
class
)
private
LocalDateTime
paymentDate
;
/**
* 支付凭证列表
*/
@NotEmpty
(
message
=
"支付凭证列表不能为空"
)
private
List
<
String
>
paymentVoucherList
;
/**
* 账户证明列表
*/
@NotEmpty
(
message
=
"账户证明列表不能为空"
)
private
List
<
String
>
accountVerificationList
;
//
/**
//
* 支付凭证列表
//
*/
//
@NotEmpty(message = "支付凭证列表不能为空")
//
private List<String> paymentVoucherList;
//
//
/**
//
* 账户证明列表
//
*/
//
@NotEmpty(message = "账户证明列表不能为空")
//
private List<String> accountVerificationList;
/**
* 支付凭证列表
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dao/CommissionExpectedMapper.java
View file @
8e7e2381
package
com
.
yd
.
csf
.
service
.
dao
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.toolkit.Constants
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yd.csf.service.model.CommissionExpected
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/FortuneAccountQueryRequest.java
View file @
8e7e2381
...
...
@@ -40,4 +40,6 @@ public class FortuneAccountQueryRequest extends PageDto {
@Schema
(
description
=
"出账日期结束"
)
private
String
accountDateEnd
;
private
String
businessNo
;
}
yd-csf-service/src/main/java/com/yd/csf/service/service/CommissionExpectedService.java
View file @
8e7e2381
...
...
@@ -60,7 +60,7 @@ public interface CommissionExpectedService extends IService<CommissionExpected>
CommissionExpectedStatisticsVO
getExpectedStatistics
(
List
<
Long
>
expectedIds
);
CommissionExpectedStatisticsVO
getExpectedStatisticsNew
(
List
<
Long
>
expectedIds
);
CommissionExpectedStatisticsVO
getExpectedStatisticsNew
(
List
<
CommissionExpected
>
allExpectedList
);
CommissionExpected
getByBizId
(
String
commissionExpectedBizId
);
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionExpectedServiceImpl.java
View file @
8e7e2381
...
...
@@ -970,17 +970,17 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
}
@Override
public
CommissionExpectedStatisticsVO
getExpectedStatisticsNew
(
List
<
Long
>
expectedIds
)
{
public
CommissionExpectedStatisticsVO
getExpectedStatisticsNew
(
List
<
CommissionExpected
>
allExpectedList
)
{
// 空集合直接返回空统计
if
(
CollectionUtils
.
isEmpty
(
expectedIds
))
{
if
(
CollectionUtils
.
isEmpty
(
allExpectedList
))
{
return
emptyStatistics
();
}
// 查询所有记录(包含失效状态)
List
<
CommissionExpected
>
allExpectedList
=
this
.
listByIds
(
expectedIds
);
if
(
CollectionUtils
.
isEmpty
(
allExpectedList
))
{
return
emptyStatistics
();
}
//
List<CommissionExpected> allExpectedList = this.listByIds(expectedIds);
//
if (CollectionUtils.isEmpty(allExpectedList)) {
//
return emptyStatistics();
//
}
// 过滤掉已失效的记录(status = "3")
List
<
CommissionExpected
>
validList
=
allExpectedList
.
stream
()
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
View file @
8e7e2381
...
...
@@ -652,7 +652,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
// 2. 根据本次发佣期数,删除未出账的记录
List
<
Fortune
>
fortuneList
=
fortuneService
.
lambdaQuery
()
.
eq
(
Fortune:
:
getStatus
,
FortuneStatusEnum
.
CAN_SEND
.
getItemValue
())
.
in
(
Fortune:
:
getStatus
,
FortuneStatusEnum
.
CAN_SEND
.
getItemValue
(),
FortuneStatusEnum
.
WAIT
.
getItemValue
())
.
in
(
Fortune:
:
getExpectedFortuneBizId
,
filteredExpectedFortuneList1
.
stream
().
map
(
ExpectedFortune:
:
getExpectedFortuneBizId
).
collect
(
Collectors
.
toList
()))
.
list
();
...
...
@@ -783,19 +783,25 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
String
key
=
buildPolicyPeriodKey
(
expectedFortune
.
getPolicyNo
(),
expectedFortune
.
getFortunePeriod
());
BigDecimal
exchangeRate
=
exchangeRateMap
.
get
(
key
);
if
(
exchangeRate
!=
null
)
{
// 入账检核汇率 — 仅审计追溯,始终写入
fortune
.
setExchangeRate
(
exchangeRate
);
// 判断 expectedFortune.originalCurrency 、入账币种-fortune.currency 是否都等于 HKD
Commission
matchedCommission
=
commissionByPolicyPeriod
.
get
(
key
);
boolean
isAllHkd
=
matchedCommission
!=
null
&&
"HKD"
.
equalsIgnoreCase
(
expectedFortune
.
getOriginalCurrency
())
&&
"HKD"
.
equalsIgnoreCase
(
matchedCommission
.
getCurrency
());
if
(
isAllHkd
)
{
// 原币种 = HKD 时,exchangeRate = 保单币种 → 港币,可安全使用
fortune
.
setOriginalToHkdRate
(
exchangeRate
);
// 重新计算港币金额
BigDecimal
hkdAmount
=
fortune
.
getRuleAmount
().
multiply
(
exchangeRate
);
fortune
.
setHkdAmount
(
hkdAmount
);
fortune
.
setCurrentPaymentAmount
(
fortune
.
getRuleAmount
());
fortune
.
setCurrentPaymentHkdAmount
(
hkdAmount
);
// 重新计算发放币种金额
BigDecimal
payoutAmount
=
hkdAmount
.
multiply
(
expectedFortune
.
getHkdToPayoutRate
());
fortune
.
setPayoutAmount
(
payoutAmount
);
// 更新预计发佣记录的港币金额
ExpectedFortune
update
=
new
ExpectedFortune
();
update
.
setId
(
expectedFortune
.
getId
());
update
.
setDefaultExchangeRate
(
exchangeRate
);
...
...
@@ -806,6 +812,12 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
update
.
setPayoutAmount
(
payoutAmount
);
updatedExpectedFortuneList
.
add
(
update
);
}
else
{
// 入账币种 ≠ HKD,无法推导保单币种 → 港币,用 ExpectedFortune 已有默认值
fortune
.
setExchangeRate
(
expectedFortune
.
getDefaultExchangeRate
());
fortune
.
setCurrentPaymentAmount
(
expectedFortune
.
getOriginalAmount
());
fortune
.
setCurrentPaymentHkdAmount
(
expectedFortune
.
getHkdAmount
());
}
}
else
{
fortune
.
setExchangeRate
(
expectedFortune
.
getDefaultExchangeRate
());
fortune
.
setCurrentPaymentAmount
(
expectedFortune
.
getOriginalAmount
());
fortune
.
setCurrentPaymentHkdAmount
(
expectedFortune
.
getHkdAmount
());
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneAccountServiceImpl.java
View file @
8e7e2381
...
...
@@ -86,6 +86,7 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper,
Date
end
=
parseEndDate
(
fortuneAccountQueryRequest
.
getAccountDateEnd
());
queryWrapper
.
ge
(
start
!=
null
,
"fortune_account_date"
,
start
);
queryWrapper
.
le
(
end
!=
null
,
"fortune_account_date"
,
end
);
queryWrapper
.
like
(
StringUtils
.
isNotBlank
(
fortuneAccountQueryRequest
.
getBusinessNo
()),
"business_no"
,
fortuneAccountQueryRequest
.
getBusinessNo
());
// 默认排序
queryWrapper
.
orderByDesc
(
"fortune_account_date"
);
return
queryWrapper
;
...
...
@@ -504,6 +505,8 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper,
// 应发港币金额(估)
BigDecimal
hkdAmount
=
hkdAmountMap
.
getOrDefault
(
ef
.
getExpectedFortuneBizId
(),
BigDecimal
.
ZERO
);
BigDecimal
expectedHKD
=
hkdAmount
.
add
(
unpaidRuleAmountHkd
);
// 发放币种金额 = 港币 × 港币兑发放币种汇率
BigDecimal
expectedPayout
=
expectedHKD
.
multiply
(
ef
.
getHkdToPayoutRate
());
// 累计出账港币金额
BigDecimal
paid
=
paidMap
.
getOrDefault
(
ef
.
getExpectedFortuneBizId
(),
BigDecimal
.
ZERO
);
...
...
@@ -526,7 +529,7 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper,
.
set
(
ExpectedFortune:
:
getUnpaidRuleAmount
,
unpaidRule
)
.
set
(
ExpectedFortune:
:
getUnpaidRuleAmountHkd
,
unpaidRuleAmountHkd
)
.
set
(
ExpectedFortune:
:
getHkdAmount
,
expectedHKD
)
.
set
(
ExpectedFortune:
:
getPayoutAmount
,
expected
HKD
)
.
set
(
ExpectedFortune:
:
getPayoutAmount
,
expected
Payout
)
.
set
(
ExpectedFortune:
:
getPaidAmount
,
paid
)
.
set
(
ExpectedFortune:
:
getUnpaidAmount
,
unpaidRuleAmountHkd
)
.
set
(
ExpectedFortune:
:
getPaidRatio
,
totalPaidRatio
)
...
...
yd-csf-service/src/main/resources/mappers/CommissionExpectedMapper.xml
View file @
8e7e2381
...
...
@@ -162,4 +162,5 @@
and ce.is_deleted = 0
</where>
</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