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
fed16fba
Commit
fed16fba
authored
Dec 30, 2025
by
jianan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
前端对接问题修复15
parent
37e3791f
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
73 additions
and
32 deletions
+73
-32
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
+36
-25
yd-csf-service/src/main/resources/mappers/CommissionMapper.xml
+37
-7
No files found.
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
View file @
fed16fba
...
@@ -25,6 +25,7 @@ import com.yd.csf.service.vo.CommissionStatisticsVO;
...
@@ -25,6 +25,7 @@ import com.yd.csf.service.vo.CommissionStatisticsVO;
import
com.yd.csf.service.vo.CommissionVO
;
import
com.yd.csf.service.vo.CommissionVO
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.MapUtils
;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
...
@@ -686,20 +687,14 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
...
@@ -686,20 +687,14 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"来佣数据不能为空"
);
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"来佣数据不能为空"
);
}
}
Set
<
String
>
policyNoSet
=
customerAddRequestList
.
stream
().
map
(
CommissionAddRequest:
:
getPolicyNo
).
collect
(
Collectors
.
toSet
());
Set
<
String
>
policyNoSet
=
customerAddRequestList
.
stream
().
map
(
CommissionAddRequest:
:
getPolicyNo
).
collect
(
Collectors
.
toSet
());
// 校验来佣所属保单跟进是否存在
List
<
PolicyFollow
>
policyFollowList
=
policyFollowService
.
list
(
new
QueryWrapper
<
PolicyFollow
>().
in
(
"policy_no"
,
policyNoSet
))
;
Map
<
String
,
PolicyFollow
>
policyFollowMap
=
null
;
if
(!
CollectionUtils
.
isEmpty
(
policyNoSet
))
{
if
(!
CollectionUtils
.
isEmpty
(
policyNoSet
))
{
// 保单号映射
// 查询来佣所属保单跟进
Map
<
String
,
PolicyFollow
>
policyFollowMap
=
policyFollowList
.
stream
().
collect
(
Collectors
.
toMap
(
PolicyFollow:
:
getPolicyNo
,
Function
.
identity
()));
List
<
PolicyFollow
>
policyFollowList
=
policyFollowService
.
list
(
new
QueryWrapper
<
PolicyFollow
>().
in
(
"policy_no"
,
policyNoSet
));
for
(
CommissionAddRequest
commissionAddRequest
:
customerAddRequestList
)
{
PolicyFollow
policyFollow
=
policyFollowMap
.
get
(
commissionAddRequest
.
getPolicyNo
());
if
(
policyFollow
==
null
)
{
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
String
.
format
(
"新单跟进:保单号:%s不存在,不能添加来佣"
,
commissionAddRequest
.
getPolicyNo
()));
}
}
}
// policyFollowList 映射
// policyFollowList 映射
Map
<
String
,
PolicyFollow
>
policyFollowMap
=
policyFollowList
.
stream
().
collect
(
Collectors
.
toMap
(
PolicyFollow:
:
getPolicyNo
,
Function
.
identity
()));
policyFollowMap
=
policyFollowList
.
stream
().
collect
(
Collectors
.
toMap
(
PolicyFollow:
:
getPolicyNo
,
Function
.
identity
()));
}
List
<
Commission
>
commissionList
=
new
ArrayList
<>();
List
<
Commission
>
commissionList
=
new
ArrayList
<>();
for
(
CommissionAddRequest
request
:
customerAddRequestList
)
{
for
(
CommissionAddRequest
request
:
customerAddRequestList
)
{
...
@@ -707,16 +702,17 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
...
@@ -707,16 +702,17 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
BeanUtils
.
copyProperties
(
request
,
commission
);
BeanUtils
.
copyProperties
(
request
,
commission
);
// 入账业务id
// 入账业务id
commission
.
setCommissionBizId
(
RandomStringGenerator
.
generateBizId16
(
CommonEnum
.
UID_TYPE_COMMISSION
.
getCode
()));
commission
.
setCommissionBizId
(
RandomStringGenerator
.
generateBizId16
(
CommonEnum
.
UID_TYPE_COMMISSION
.
getCode
()));
// 关联业务id
if
(
MapUtils
.
isNotEmpty
(
policyFollowMap
))
{
PolicyFollow
policyFollow
=
policyFollowMap
.
get
(
request
.
getPolicyNo
());
PolicyFollow
policyFollow
=
policyFollowMap
.
get
(
request
.
getPolicyNo
());
if
(
policyFollow
!=
null
)
{
if
(
policyFollow
!=
null
)
{
// 关联业务id
commission
.
setReconciliationCompany
(
policyFollow
.
getReconciliationCompany
());
commission
.
setReconciliationCompany
(
policyFollow
.
getReconciliationCompany
());
commission
.
setReconciliationCompanyBizId
(
policyFollow
.
getReconciliationCompanyBizId
());
commission
.
setReconciliationCompanyBizId
(
policyFollow
.
getReconciliationCompanyBizId
());
commission
.
setProductLaunchBizId
(
policyFollow
.
getProductLaunchBizId
());
commission
.
setProductLaunchBizId
(
policyFollow
.
getProductLaunchBizId
());
commission
.
setInsuranceCompanyBizId
(
policyFollow
.
getInsuranceCompanyBizId
());
commission
.
setInsuranceCompanyBizId
(
policyFollow
.
getInsuranceCompanyBizId
());
commission
.
setPremium
(
Convert
.
toStr
(
policyFollow
.
getPaymentPremium
()));
commission
.
setPremium
(
Convert
.
toStr
(
policyFollow
.
getPaymentPremium
()));
}
}
}
commissionList
.
add
(
commission
);
commissionList
.
add
(
commission
);
}
}
boolean
b
=
this
.
saveOrUpdateBatch
(
commissionList
);
boolean
b
=
this
.
saveOrUpdateBatch
(
commissionList
);
...
@@ -815,17 +811,32 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
...
@@ -815,17 +811,32 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
// 自定义统计数据
// 自定义统计数据
CommissionStatisticsVO
commissionStatistics
=
baseMapper
.
getCommissionStatistics
(
commissionIds
);
CommissionStatisticsVO
commissionStatistics
=
baseMapper
.
getCommissionStatistics
(
commissionIds
);
// BigDecimal totalAmount = commissionStatistics.getTotalAmount();
// 确保所有字段都有值,避免null值
// BigDecimal totalPaidAmount = commissionStatistics.getTotalPaidAmount();
if
(
commissionStatistics
.
getTotalPaidAmount
()
==
null
)
{
// // 计算待入账金额
commissionStatistics
.
setTotalPaidAmount
(
BigDecimal
.
ZERO
);
// commissionStatistics.setPendingPaidAmount(totalAmount.subtract(totalPaidAmount));
}
// // 计算已入账比例
if
(
commissionStatistics
.
getExpectePaidAmount
()
==
null
)
{
// BigDecimal divided = BigDecimal.ZERO;
commissionStatistics
.
setExpectePaidAmount
(
BigDecimal
.
ZERO
);
// if (totalAmount.compareTo(BigDecimal.ZERO) > 0) {
}
// divided = totalPaidAmount.divide(totalAmount, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
if
(
commissionStatistics
.
getPendingPaidAmount
()
==
null
)
{
// }
commissionStatistics
.
setPendingPaidAmount
(
BigDecimal
.
ZERO
);
// // 格式化 %
}
// commissionStatistics.setPaidAmountRatio(divided);
if
(
commissionStatistics
.
getDifferenceAmount
()
==
null
)
{
commissionStatistics
.
setDifferenceAmount
(
BigDecimal
.
ZERO
);
}
if
(
commissionStatistics
.
getTotalPremium
()
==
null
)
{
commissionStatistics
.
setTotalPremium
(
BigDecimal
.
ZERO
);
}
// 计算差额(估-实)
BigDecimal
differenceAmount
=
commissionStatistics
.
getExpectePaidAmount
()
.
subtract
(
commissionStatistics
.
getTotalPaidAmount
());
commissionStatistics
.
setDifferenceAmount
(
differenceAmount
);
// 如果待入账金额为0,重新计算(预计入账金额 - 实际入账金额)
if
(
commissionStatistics
.
getPendingPaidAmount
().
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
commissionStatistics
.
setPendingPaidAmount
(
differenceAmount
);
}
return
commissionStatistics
;
return
commissionStatistics
;
}
}
...
...
yd-csf-service/src/main/resources/mappers/CommissionMapper.xml
View file @
fed16fba
...
@@ -69,17 +69,45 @@
...
@@ -69,17 +69,45 @@
</select>
</select>
<!-- 总金额:统计保单预计来佣表 已入账金额:统计来佣表-->
<!-- 总金额:统计保单预计来佣表 已入账金额:统计来佣表-->
<!-- <select id="getCommissionStatistics" resultType="com.yd.csf.service.vo.CommissionStatisticsVO">-->
<!-- SELECT-->
<!-- COALESCE(SUM(e.amount), 0) as totalAmount,-->
<!-- COALESCE(SUM(c.amount), 0) as totalPaidAmount,-->
<!-- COUNT(DISTINCT c.policy_no) as totalPolicyCount-->
<!-- FROM commission c-->
<!-- LEFT JOIN (-->
<!-- SELECT policy_no, SUM(expected_amount) as amount-->
<!-- FROM commission_expected-->
<!-- GROUP BY policy_no-->
<!-- ) e ON c.policy_no = e.policy_no-->
<!-- <where>-->
<!-- <if test="commissionIdList != null and commissionIdList.size > 0">-->
<!-- c.id IN-->
<!-- <foreach collection="commissionIdList" item="item" open="(" separator="," close=")">-->
<!-- #{item}-->
<!-- </foreach>-->
<!-- </if>-->
<!-- </where>-->
<!-- </select>-->
<!-- 总金额:统计保单预计来佣表 已入账金额:统计来佣表-->
<select
id=
"getCommissionStatistics"
resultType=
"com.yd.csf.service.vo.CommissionStatisticsVO"
>
<select
id=
"getCommissionStatistics"
resultType=
"com.yd.csf.service.vo.CommissionStatisticsVO"
>
SELECT
SELECT
COALESCE(SUM(e.amount), 0) as totalAmount,
COALESCE(SUM(c.amount), 0) as totalPaidAmount,
COALESCE(SUM(c.amount), 0) as totalPaidAmount,
COUNT(DISTINCT c.policy_no) as totalPolicyCount
COALESCE(SUM(e.expected_amount), 0) as expectePaidAmount,
COALESCE(SUM(e.expected_amount) - SUM(c.amount), 0) as pendingPaidAmount,
COALESCE(SUM(e.expected_amount) - SUM(c.amount), 0) as differenceAmount,
COUNT(DISTINCT c.policy_no) as totalPolicyCount,
COALESCE(SUM(CAST(c.premium AS DECIMAL(15,2))), 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
FROM commission c
LEFT JOIN (
LEFT JOIN commission_expected e ON c.policy_no = e.policy_no
SELECT policy_no, SUM(expected_amount) as amount
AND c.commission_name = e.commission_name
FROM commission_expected
AND c.commission_period = e.commission_period
GROUP BY policy_no
AND c.currency = e.currency
) e ON c.policy_no = e.policy_no
<where>
<where>
<if
test=
"commissionIdList != null and commissionIdList.size > 0"
>
<if
test=
"commissionIdList != null and commissionIdList.size > 0"
>
c.id IN
c.id IN
...
@@ -87,6 +115,8 @@
...
@@ -87,6 +115,8 @@
#{item}
#{item}
</foreach>
</foreach>
</if>
</if>
AND c.is_deleted = 0
</where>
</where>
</select>
</select>
</mapper>
</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