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
84d81828
Commit
84d81828
authored
Mar 05, 2026
by
jianan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新单跟进同步预约信息18-保单总保费
parent
371ba432
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
59 additions
and
9 deletions
+59
-9
yd-csf-feign/src/main/java/com/yd/csf/feign/response/expectedfortune/ApiExpectedFortunePageResponse.java
+12
-0
yd-csf-service/src/main/java/com/yd/csf/service/model/Policy.java
+5
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyFollowServiceImpl.java
+19
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyServiceImpl.java
+19
-6
yd-csf-service/src/main/resources/mappers/ExpectedFortuneMapper.xml
+2
-2
yd-csf-service/src/main/resources/mappers/PolicyMapper.xml
+2
-1
No files found.
yd-csf-feign/src/main/java/com/yd/csf/feign/response/expectedfortune/ApiExpectedFortunePageResponse.java
View file @
84d81828
...
@@ -144,6 +144,18 @@ public class ApiExpectedFortunePageResponse {
...
@@ -144,6 +144,18 @@ public class ApiExpectedFortunePageResponse {
private
String
currency
;
private
String
currency
;
/**
/**
* 默认结算汇率
*/
@Schema
(
description
=
"默认结算汇率"
)
private
BigDecimal
defaultExchangeRate
;
/**
* 港币预计出账金额
*/
@Schema
(
description
=
"港币预计出账金额"
)
private
BigDecimal
hkdAmount
;
/**
* 出账状态
* 出账状态
*/
*/
@Schema
(
description
=
"出账状态 0=待出账 1=可出帐,待检核 2=完成出账 3=部分出账 4=保留 5=已失效 6=可出账, 已检核 7=未找到当前预计出账对应的来佣 字典值: csf_expected_fortune_status"
)
@Schema
(
description
=
"出账状态 0=待出账 1=可出帐,待检核 2=完成出账 3=部分出账 4=保留 5=已失效 6=可出账, 已检核 7=未找到当前预计出账对应的来佣 字典值: csf_expected_fortune_status"
)
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/Policy.java
View file @
84d81828
...
@@ -118,6 +118,11 @@ public class Policy implements Serializable {
...
@@ -118,6 +118,11 @@ public class Policy implements Serializable {
private
BigDecimal
paymentPremium
;
private
BigDecimal
paymentPremium
;
/**
/**
* 总保费
*/
private
BigDecimal
totalPaymentPremium
;
/**
* 保单状态
* 保单状态
*/
*/
private
String
status
;
private
String
status
;
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyFollowServiceImpl.java
View file @
84d81828
package
com
.
yd
.
csf
.
service
.
service
.
impl
;
package
com
.
yd
.
csf
.
service
.
service
.
impl
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.util.Date
;
import
java.util.Date
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.convert.Convert
;
import
cn.hutool.core.date.DateField
;
import
cn.hutool.core.date.DateField
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.date.DateUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
...
@@ -496,6 +499,14 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
...
@@ -496,6 +499,14 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
if
(
policy
==
null
)
{
if
(
policy
==
null
)
{
throw
new
BusinessException
(
ErrorCode
.
NOT_FOUND_ERROR
.
getCode
(),
"policy不存在"
);
throw
new
BusinessException
(
ErrorCode
.
NOT_FOUND_ERROR
.
getCode
(),
"policy不存在"
);
}
}
BigDecimal
paymentPremium
=
policy
.
getPaymentPremium
();
if
(
paymentPremium
==
null
)
{
throw
new
BusinessException
(
"期交保费不能为空"
);
}
Object
paymentTerm
=
policy
.
getPaymentTerm
();
if
(
paymentTerm
==
null
)
{
throw
new
BusinessException
(
"供款期数不能为空"
);
}
policy
.
setPolicyNo
(
policyFollow
.
getPolicyNo
());
policy
.
setPolicyNo
(
policyFollow
.
getPolicyNo
());
policy
.
setPolicyHolderAge
(
calculatePolicyHolderAge
(
policyFollow
.
getCustomerBizId
()));
policy
.
setPolicyHolderAge
(
calculatePolicyHolderAge
(
policyFollow
.
getCustomerBizId
()));
policy
.
setCoolingOffEndDate
(
policyFollow
.
getCoolingOffEndDate
());
policy
.
setCoolingOffEndDate
(
policyFollow
.
getCoolingOffEndDate
());
...
@@ -507,6 +518,7 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
...
@@ -507,6 +518,7 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
policy
.
setPaymentPremium
(
policyFollow
.
getInitialPremium
());
policy
.
setPaymentPremium
(
policyFollow
.
getInitialPremium
());
policy
.
setCurrency
(
policyFollow
.
getPolicyCurrency
());
policy
.
setCurrency
(
policyFollow
.
getPolicyCurrency
());
policy
.
setPaymentTerm
(
policyFollow
.
getIssueNumber
());
policy
.
setPaymentTerm
(
policyFollow
.
getIssueNumber
());
policy
.
setTotalPaymentPremium
(
calculateTotalPaymentPremium
(
policy
));
policy
.
setUnderwritingDate
(
changePolicyFollowStatusRequest
.
getUnderwritingDate
());
policy
.
setUnderwritingDate
(
changePolicyFollowStatusRequest
.
getUnderwritingDate
());
policy
.
setEffectiveDate
(
changePolicyFollowStatusRequest
.
getEffectiveDate
());
policy
.
setEffectiveDate
(
changePolicyFollowStatusRequest
.
getEffectiveDate
());
...
@@ -554,6 +566,13 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
...
@@ -554,6 +566,13 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
return
true
;
return
true
;
}
}
private
BigDecimal
calculateTotalPaymentPremium
(
Policy
policy
)
{
BigDecimal
paymentPremium
=
policy
.
getPaymentPremium
();
Object
paymentTerm
=
policy
.
getPaymentTerm
();
// 计算总保费 = 每期保费 * 供款期数
return
paymentPremium
.
multiply
(
Convert
.
toBigDecimal
(
paymentTerm
)).
setScale
(
4
,
RoundingMode
.
HALF_UP
);
}
private
Integer
calculatePolicyHolderAge
(
String
customerBizId
)
{
private
Integer
calculatePolicyHolderAge
(
String
customerBizId
)
{
Customer
customer
=
customerService
.
getByCustomerBizId
(
customerBizId
);
Customer
customer
=
customerService
.
getByCustomerBizId
(
customerBizId
);
if
(
customer
==
null
)
{
if
(
customer
==
null
)
{
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyServiceImpl.java
View file @
84d81828
package
com
.
yd
.
csf
.
service
.
service
.
impl
;
package
com
.
yd
.
csf
.
service
.
service
.
impl
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.lang.TypeReference
;
import
cn.hutool.json.JSONArray
;
import
cn.hutool.json.JSONArray
;
import
cn.hutool.json.JSONObject
;
import
cn.hutool.json.JSONObject
;
import
cn.hutool.json.JSONUtil
;
import
cn.hutool.json.JSONUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yd.common.enums.ResultCode
;
import
com.yd.common.enums.ResultCode
;
...
@@ -23,11 +21,7 @@ import com.yd.csf.service.service.PolicyService;
...
@@ -23,11 +21,7 @@ import com.yd.csf.service.service.PolicyService;
import
com.yd.csf.service.dao.PolicyMapper
;
import
com.yd.csf.service.dao.PolicyMapper
;
import
com.yd.csf.service.vo.PolicyVO
;
import
com.yd.csf.service.vo.PolicyVO
;
import
com.yd.product.feign.client.relprojectproductlaunch.ApiRelProjectProductLaunchFeignClient
;
import
com.yd.product.feign.client.relprojectproductlaunch.ApiRelProjectProductLaunchFeignClient
;
import
com.yd.product.feign.request.productlaunch.ApiProductLaunchParameterPageRequest
;
import
com.yd.product.feign.request.relprojectproductlaunch.ApiRelProjectProductLaunchPageRequest
;
import
com.yd.product.feign.request.relprojectproductlaunch.ApiRelProjectProductLaunchPageRequest
;
import
com.yd.product.feign.response.productlaunch.ApiAttributeSettingDto
;
import
com.yd.product.feign.response.relprojectproductlaunch.ApiRelProjectProductLaunchPageResponse
;
import
io.swagger.v3.core.util.Json
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
...
@@ -37,6 +31,8 @@ import org.springframework.transaction.annotation.Transactional;
...
@@ -37,6 +31,8 @@ import org.springframework.transaction.annotation.Transactional;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.CollectionUtils
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.util.*
;
import
java.util.*
;
import
java.util.function.Function
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -114,12 +110,22 @@ public class PolicyServiceImpl extends ServiceImpl<PolicyMapper, Policy>
...
@@ -114,12 +110,22 @@ public class PolicyServiceImpl extends ServiceImpl<PolicyMapper, Policy>
if
(
policy
==
null
)
{
if
(
policy
==
null
)
{
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"保单不存在"
);
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"保单不存在"
);
}
}
BigDecimal
paymentPremium
=
policy
.
getPaymentPremium
();
if
(
paymentPremium
==
null
)
{
throw
new
BusinessException
(
"期交保费不能为空"
);
}
Object
paymentTerm
=
policy
.
getPaymentTerm
();
if
(
paymentTerm
==
null
)
{
throw
new
BusinessException
(
"供款期数不能为空"
);
}
Date
now
=
new
Date
();
Date
now
=
new
Date
();
// 保单信息
// 保单信息
ApiProductPlanMainInfoDto
apiProductPlanMainInfoDto
=
policyUpdateRequest
.
getApiProductPlanMainInfoDto
();
ApiProductPlanMainInfoDto
apiProductPlanMainInfoDto
=
policyUpdateRequest
.
getApiProductPlanMainInfoDto
();
if
(
apiProductPlanMainInfoDto
!=
null
)
{
if
(
apiProductPlanMainInfoDto
!=
null
)
{
BeanUtils
.
copyProperties
(
apiProductPlanMainInfoDto
,
policy
,
"policyBizId"
,
"id"
);
BeanUtils
.
copyProperties
(
apiProductPlanMainInfoDto
,
policy
,
"policyBizId"
,
"id"
);
policy
.
setPaymentPremium
(
apiProductPlanMainInfoDto
.
getEachIssuePremium
());
policy
.
setPaymentPremium
(
apiProductPlanMainInfoDto
.
getEachIssuePremium
());
policy
.
setTotalPaymentPremium
(
calculateTotalPaymentPremium
(
apiProductPlanMainInfoDto
));
policy
.
setIsPrepaid
(
apiProductPlanMainInfoDto
.
getIsPrepay
());
policy
.
setIsPrepaid
(
apiProductPlanMainInfoDto
.
getIsPrepay
());
policy
.
setUpdateTime
(
now
);
policy
.
setUpdateTime
(
now
);
// 更新保单
// 更新保单
...
@@ -150,6 +156,13 @@ public class PolicyServiceImpl extends ServiceImpl<PolicyMapper, Policy>
...
@@ -150,6 +156,13 @@ public class PolicyServiceImpl extends ServiceImpl<PolicyMapper, Policy>
return
true
;
return
true
;
}
}
private
BigDecimal
calculateTotalPaymentPremium
(
ApiProductPlanMainInfoDto
apiProductPlanMainInfoDto
)
{
// 计算总保费
return
apiProductPlanMainInfoDto
.
getEachIssuePremium
()
.
multiply
(
new
BigDecimal
(
apiProductPlanMainInfoDto
.
getPaymentFrequency
()))
.
setScale
(
4
,
RoundingMode
.
HALF_UP
);
}
/**
/**
* 查询列表
* 查询列表
...
...
yd-csf-service/src/main/resources/mappers/ExpectedFortuneMapper.xml
View file @
84d81828
...
@@ -29,11 +29,11 @@
...
@@ -29,11 +29,11 @@
ifnull(sum(ef.hkd_amount),0) as totalExpectedAmount,
ifnull(sum(ef.hkd_amount),0) as totalExpectedAmount,
ifnull(sum(ef.paid_amount),0) as totalPaidAmount,
ifnull(sum(ef.paid_amount),0) as totalPaidAmount,
ifnull(sum(ef.unpaid_amount),0) as totalUnpaidAmount,
ifnull(sum(ef.unpaid_amount),0) as totalUnpaidAmount,
ifnull(sum(e.totalPremiumAmount),0
) as totalPremiumAmount,
MAX(e.total_payment_premium) * MAX(ef.default_exchange_rate
) as totalPremiumAmount,
count(distinct ef.policy_no) as totalPolicyCount
count(distinct ef.policy_no) as totalPolicyCount
from expected_fortune ef
from expected_fortune ef
LEFT JOIN (
LEFT JOIN (
SELECT p.policy_no,
SUM(p.payment_premium*p.payment_term) as totalPremiumAmount
SELECT p.policy_no,
p.total_payment_premium
FROM policy p
FROM policy p
GROUP BY policy_no
GROUP BY policy_no
) e ON ef.policy_no = e.policy_no
) e ON ef.policy_no = e.policy_no
...
...
yd-csf-service/src/main/resources/mappers/PolicyMapper.xml
View file @
84d81828
...
@@ -24,6 +24,7 @@
...
@@ -24,6 +24,7 @@
<result
property=
"paymentTerm"
column=
"payment_term"
/>
<result
property=
"paymentTerm"
column=
"payment_term"
/>
<result
property=
"paymentFrequency"
column=
"payment_frequency"
/>
<result
property=
"paymentFrequency"
column=
"payment_frequency"
/>
<result
property=
"paymentPremium"
column=
"payment_premium"
/>
<result
property=
"paymentPremium"
column=
"payment_premium"
/>
<result
property=
"totalPaymentPremium"
column=
"total_payment_premium"
/>
<result
property=
"status"
column=
"status"
/>
<result
property=
"status"
column=
"status"
/>
<result
property=
"currency"
column=
"currency"
/>
<result
property=
"currency"
column=
"currency"
/>
<result
property=
"initialPremium"
column=
"initial_premium"
/>
<result
property=
"initialPremium"
column=
"initial_premium"
/>
...
@@ -57,7 +58,7 @@
...
@@ -57,7 +58,7 @@
<sql
id=
"Base_Column_List"
>
<sql
id=
"Base_Column_List"
>
id,policy_biz_id,policy_no,user_biz_id,product_launch_biz_id,product_code,
id,policy_biz_id,policy_no,user_biz_id,product_launch_biz_id,product_code,
product_name,product_cate,insurance_company,insurance_company_biz_id,region,
product_name,product_cate,insurance_company,insurance_company_biz_id,region,
policy_holder,policy_holder_age,insured,guarantee_period,sum_insured,payment_term,payment_frequency,payment_premium,
policy_holder,policy_holder_age,insured,guarantee_period,sum_insured,payment_term,payment_frequency,payment_premium,
total_payment_premium,
status,currency,initial_premium,sign_date,issue_date,
status,currency,initial_premium,sign_date,issue_date,
effective_date,cooling_off_end_date,cooling_off_days,renewal_date,is_prepaid,deductibles,prepaid_term,
effective_date,cooling_off_end_date,cooling_off_days,renewal_date,is_prepaid,deductibles,prepaid_term,
initial_payment_method,renewal_payment_method,dividend_distribution_method,is_backtrack,is_join,
initial_payment_method,renewal_payment_method,dividend_distribution_method,is_backtrack,is_join,
...
...
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