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
9deff75e
Commit
9deff75e
authored
Jan 22, 2026
by
zhangxingmin
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/test' into test
parents
d018582e
b4a7b8d4
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
127 additions
and
31 deletions
+127
-31
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiPolicyController.java
+0
-1
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiPolicyFollowController.java
+13
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAppointmentServiceImpl.java
+44
-4
yd-csf-service/src/main/java/com/yd/csf/service/component/PolicyReportPdfService.java
+4
-3
yd-csf-service/src/main/java/com/yd/csf/service/dto/PolicyFollowDto.java
+2
-2
yd-csf-service/src/main/java/com/yd/csf/service/dto/PolicyReportData.java
+2
-0
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyFollow.java
+3
-3
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyBrokerService.java
+2
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyFollowService.java
+8
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyBrokerServiceImpl.java
+7
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyFollowServiceImpl.java
+30
-9
yd-csf-service/src/main/java/com/yd/csf/service/vo/PolicyFollowDetailVO.java
+2
-2
yd-csf-service/src/main/resources/mappers/PolicyFollowMapper.xml
+10
-7
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiPolicyController.java
View file @
9deff75e
...
...
@@ -18,7 +18,6 @@ import org.springframework.web.bind.annotation.*;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.List
;
import
java.util.Map
;
/**
* policy接口
...
...
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiPolicyFollowController.java
View file @
9deff75e
...
...
@@ -718,4 +718,16 @@ public class ApiPolicyFollowController {
return
new
ArrayList
<>();
}
/**
* 查询保单号列表
*
* @param policyNo 保单号
* @return 保单号列表
*/
@GetMapping
(
"/policyNos"
)
@Operation
(
summary
=
"查询保单号列表"
)
public
Result
<
List
<
String
>>
queryPolicyNumbers
(
@RequestParam
String
policyNo
)
{
List
<
String
>
policyNumbers
=
policyFollowService
.
queryPolicyNumbers
(
policyNo
);
return
Result
.
success
(
policyNumbers
);
}
}
\ No newline at end of file
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAppointmentServiceImpl.java
View file @
9deff75e
package
com
.
yd
.
csf
.
api
.
service
.
impl
;
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.google.gson.reflect.TypeToken
;
import
com.yd.auth.core.dto.AuthUserDto
;
import
com.yd.auth.core.utils.SecurityUtil
;
import
com.yd.common.constant.CodeGeneratorConstants
;
...
...
@@ -24,17 +26,15 @@ import com.yd.csf.service.enums.PolicyStatusEnum;
import
com.yd.csf.service.model.*
;
import
com.yd.csf.service.service.*
;
import
com.yd.csf.service.utils.GSONUtil
;
import
com.yd.oss.feign.client.ApiMaterialFeignClient
;
import
com.yd.oss.feign.client.ApiRelObjectMaterialFeignClient
;
import
com.yd.oss.feign.dto.ApiRelMaterialDto
;
import
com.yd.oss.feign.request.ApiMaterialListRequest
;
import
com.yd.oss.feign.request.ApiRelObjectMaterialListAddRequest
;
import
com.yd.oss.feign.response.ApiMaterialListResponse
;
import
com.yd.question.feign.client.ApiQuestionnairesFeignClient
;
import
com.yd.question.feign.request.ApiAnswerSaveRequest
;
import
com.yd.question.feign.request.ApiBatchSaveAnswerRequest
;
import
com.yd.question.feign.request.ApiObjectSaveRequest
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -135,6 +135,10 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
private
IProductPlanService
iProductPlanService
;
@Resource
private
CustomerService
customerService
;
@Resource
private
FnaFormService
fnaFormService
;
@Resource
private
PolicyBrokerService
policyBrokerService
;
/**
* 预约分页查询
...
...
@@ -690,7 +694,7 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
ApiAppointmentUserSignDto
firstSigner
=
response
.
getApiAppointmentInfoDto
().
getUserSignDtoList
().
get
(
0
);
follow
.
setSigner
(
firstSigner
.
getName
());
follow
.
setSignerBizId
(
firstSigner
.
getAppointmentUserSignBizId
());
follow
.
set
SignerRegNo
(
firstSigner
.
getPracticeCode
());
follow
.
set
PracticeCode
(
firstSigner
.
getPracticeCode
());
}
// 产品计划信息
...
...
@@ -734,6 +738,8 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
follow
.
setInitialPaymentMethod
(
apiProductPlanMainInfoDto
.
getInitialPaymentMethod
());
// 续期付款方式
follow
.
setRenewalPaymentMethod
(
apiProductPlanMainInfoDto
.
getRenewalPaymentMethod
());
// 红利付款方式
follow
.
setDividendDistributionMethod
(
apiProductPlanMainInfoDto
.
getDividendDistributionMethod
());
// 保单征费
if
(
apiProductPlanMainInfoDto
.
getPolicyLevy
()
!=
null
)
{
follow
.
setPolicyLevy
(
apiProductPlanMainInfoDto
.
getPolicyLevy
().
toString
());
...
...
@@ -745,6 +751,9 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
// 同步保存保单产品计划附加险
savePolicyAdditional
(
apiProductPlanAdditionalInfoDtoList
,
policyBizId
);
// 同步转介人
savePolicyBroker
(
appointment
.
getFnaBizId
(),
policyBizId
);
// // 同步保存保单(产品计划)
// savePolicy(productPlan, apiPolicyholderInfoDto, apiInsurantInfoDto, apiProductPlanMainInfoDto, policyBizId, policyTransfer);
// // 同步保存保单投保人
...
...
@@ -761,6 +770,37 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
return
Result
.
success
();
}
private
void
savePolicyBroker
(
String
fnaBizId
,
String
policyBizId
)
{
log
.
info
(
"同步保存保单转介人, fnaBizId: {}, policyBizId: {}"
,
fnaBizId
,
policyBizId
);
QueryWrapper
<
FnaForm
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
apply
(
"fna_form_biz_id in (select fna_form_biz_id from fna where fna_biz_id = {0})"
,
fnaBizId
);
FnaForm
fnaForm
=
fnaFormService
.
getOne
(
queryWrapper
);
if
(
Objects
.
isNull
(
fnaForm
))
{
return
;
}
// 转介人
if
(
ObjectUtils
.
isNotEmpty
(
fnaForm
.
getBrokerList
()))
{
List
<
PolicyBroker
>
brokerList
=
GSONUtil
.
fromJson
((
String
)
fnaForm
.
getBrokerList
(),
new
TypeToken
<
List
<
PolicyBroker
>>()
{
}.
getType
());
log
.
info
(
"转介人列表: {}"
,
brokerList
);
if
(
ObjectUtils
.
isNotEmpty
(
brokerList
))
{
if
(
brokerList
.
get
(
0
)
!=
null
&&
!
Objects
.
isNull
(
brokerList
.
get
(
0
).
getPolicyBizId
()))
{
// 先删除旧的转介人
policyBrokerService
.
removeByPolicyBizId
(
brokerList
.
get
(
0
).
getPolicyBizId
());
}
brokerList
.
forEach
(
broker
->
{
broker
.
setPolicyBizId
(
policyBizId
);
});
// 保存新的转介人
policyBrokerService
.
saveOrUpdateBatch
(
brokerList
);
}
}
}
private
void
setSignerList
(
PolicyFollow
follow
,
Appointment
appointment
)
{
List
<
PolicySigner
>
signerList
=
new
ArrayList
<>();
...
...
yd-csf-service/src/main/java/com/yd/csf/service/component/PolicyReportPdfService.java
View file @
9deff75e
package
com
.
yd
.
csf
.
service
.
component
;
import
cn.hutool.core.util.NumberUtil
;
import
com.lowagie.text.Document
;
import
com.lowagie.text.DocumentException
;
import
com.lowagie.text.Font
;
...
...
@@ -249,9 +250,9 @@ public class PolicyReportPdfService {
addTableHeaderCellNoBorder
(
table
,
"保費徵費"
);
addTableCellNoBorder
(
table
,
formatAmount
(
data
.
getPremiumFee
()));
// 第六行:
合預繳息
金額 | 金額值 | (空) | (空)
addTableHeaderCellNoBorder
(
table
,
"
合預繳息
金額"
);
addTableCellNoBorder
(
table
,
formatAmount
(
data
.
getTotalPrepayment
(
)));
// 第六行:
首期合計
金額 | 金額值 | (空) | (空)
addTableHeaderCellNoBorder
(
table
,
"
首期合計
金額"
);
addTableCellNoBorder
(
table
,
formatAmount
(
NumberUtil
.
add
(
data
.
getInitialPremium
(),
data
.
getPolicyLevy
()
)));
addTableCellNoBorder
(
table
,
""
);
addTableCellNoBorder
(
table
,
""
);
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/PolicyFollowDto.java
View file @
9deff75e
...
...
@@ -49,7 +49,7 @@ public class PolicyFollowDto implements Serializable {
private
String
signerBizId
;
@Schema
(
description
=
"签单人执业编号"
)
private
String
signerRegNo
;
private
String
practiceCode
;
@Schema
(
description
=
"签单地点"
)
private
String
signLocation
;
...
...
@@ -205,7 +205,7 @@ public class PolicyFollowDto implements Serializable {
private
String
renewalPaymentMethod
;
@Schema
(
description
=
"红利付款方式(字典)"
)
private
String
dividend
Payment
Method
;
private
String
dividend
Distribution
Method
;
@Schema
(
description
=
"快递单号"
)
private
String
deliveryNo
;
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/PolicyReportData.java
View file @
9deff75e
...
...
@@ -25,6 +25,8 @@ public class PolicyReportData {
private
BigDecimal
annualAmount
;
private
BigDecimal
totalPrepayment
;
private
BigDecimal
premiumFee
;
private
BigDecimal
initialPremium
;
private
BigDecimal
policyLevy
;
// 附加险信息
private
List
<
AdditionalInsurance
>
additionalInsurances
;
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyFollow.java
View file @
9deff75e
...
...
@@ -83,7 +83,7 @@ public class PolicyFollow implements Serializable {
/**
* 签单人执业编号
*/
private
String
signerRegNo
;
private
String
practiceCode
;
/**
* 签单地点
...
...
@@ -326,9 +326,9 @@ public class PolicyFollow implements Serializable {
private
String
renewalPaymentMethod
;
/**
* 红利
付款
方式(字典)
* 红利方式(字典)
*/
private
String
dividend
Payment
Method
;
private
String
dividend
Distribution
Method
;
/**
* 快递单号
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyBrokerService.java
View file @
9deff75e
...
...
@@ -16,4 +16,6 @@ public interface PolicyBrokerService extends IService<PolicyBroker> {
List
<
PolicyBroker
>
queryList
(
QueryPolicyBrokerDto
dto
);
PolicyBroker
queryOne
(
QueryPolicyBrokerDto
dto
);
void
removeByPolicyBizId
(
String
policyBizId
);
}
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyFollowService.java
View file @
9deff75e
...
...
@@ -74,4 +74,12 @@ public interface PolicyFollowService extends IService<PolicyFollow> {
* 批量保存介绍人信息
*/
Boolean
batchSaveBrokers
(
BrokerBatchSaveRequest
brokerBatchSaveRequest
);
/**
* 查询保单号列表
*
* @param policyNo 保单号
* @return 保单号列表
*/
List
<
String
>
queryPolicyNumbers
(
String
policyNo
);
}
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyBrokerServiceImpl.java
View file @
9deff75e
...
...
@@ -42,6 +42,13 @@ public class PolicyBrokerServiceImpl extends ServiceImpl<PolicyBrokerMapper, Pol
.
last
(
"limit 1"
)
);
}
@Override
public
void
removeByPolicyBizId
(
String
policyBizId
)
{
baseMapper
.
delete
(
new
LambdaQueryWrapper
<
PolicyBroker
>()
.
eq
(
PolicyBroker:
:
getPolicyBizId
,
policyBizId
)
);
}
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyFollowServiceImpl.java
View file @
9deff75e
...
...
@@ -6,6 +6,7 @@ import cn.hutool.core.date.DateField;
import
cn.hutool.core.date.DateUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yd.auth.core.dto.AuthUserDto
;
...
...
@@ -194,7 +195,7 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
}
// 复制属性,排除系统字段
BeanUtils
.
copyProperties
(
policyFollowDto
,
policyFollow
,
"id"
,
"policyBizId"
,
"brokerList"
,
"signerList"
);
BeanUtils
.
copyProperties
(
policyFollowDto
,
policyFollow
,
"id"
,
"policyBizId"
,
"brokerList"
);
// 检查保单号是否从空变为有值
String
oldPolicyNo
=
policyFollow
.
getPolicyNo
();
...
...
@@ -410,10 +411,22 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
throw
new
BusinessException
(
"保单号 "
+
policyFollow
.
getPolicyNo
()
+
" 已存在,请勿重复添加"
);
}
}
// 更新转介人
updatePolicyBrokerPolicyNo
(
policyBizId
,
policyFollow
.
getPolicyNo
());
}
return
true
;
}
private
void
updatePolicyBrokerPolicyNo
(
String
policyBizId
,
String
policyNo
)
{
// 更新转介人保单号
policyBrokerService
.
update
(
new
UpdateWrapper
<
PolicyBroker
>()
.
set
(
"policy_no"
,
policyNo
)
.
eq
(
"policy_biz_id"
,
policyBizId
)
.
eq
(
"is_deleted"
,
0
)
);
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Boolean
changePolicyFollowStatus
(
ChangePolicyFollowStatusRequest
changePolicyFollowStatusRequest
,
PolicyFollow
policyFollow
)
{
...
...
@@ -531,6 +544,9 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
throw
new
BusinessException
(
"保单号 "
+
policy
.
getPolicyNo
()
+
" 已存在,请勿重复添加"
);
}
// 更新转介人保单号
updatePolicyBrokerPolicyNo
(
policyBizId
,
policy
.
getPolicyNo
());
// 根据保单生成预计入账记录
generateExpectedCommission
(
policyFollow
,
policy
);
}
...
...
@@ -631,14 +647,7 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
}
// 处理附加险信息
policyReportData
.
setAdditionalInsurances
(
additionalInsurances
);
// 处理服务经理
String
signerList
=
policyReportData
.
getServiceManager
();
if
(
StringUtils
.
isNotBlank
(
signerList
))
{
PolicySigner
[]
signers
=
GSONUtil
.
fromJson
(
signerList
,
PolicySigner
[].
class
);
policyReportData
.
setServiceManager
(
signers
[
0
].
getSigner
());
}
// 处理位置
policyReportData
.
setLocation
(
"香港"
);
return
policyReportData
;
}
...
...
@@ -804,6 +813,18 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
return
policyBrokerService
.
saveBatch
(
brokerList
);
}
@Override
public
List
<
String
>
queryPolicyNumbers
(
String
policyNo
)
{
QueryWrapper
<
PolicyFollow
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
select
(
"policyNo"
);
queryWrapper
.
like
(
ObjectUtils
.
isNotEmpty
(
policyNo
),
"policy_no"
,
policyNo
);
queryWrapper
.
isNotNull
(
"policy_no"
);
return
policyFollowService
.
list
(
queryWrapper
)
.
stream
()
.
map
(
PolicyFollow:
:
getPolicyNo
)
.
collect
(
Collectors
.
toList
());
}
/**
* 根据保单生成预计入账记录
*
...
...
yd-csf-service/src/main/java/com/yd/csf/service/vo/PolicyFollowDetailVO.java
View file @
9deff75e
...
...
@@ -97,7 +97,7 @@ public class PolicyFollowDetailVO implements Serializable {
* 签单人执业编号
*/
@Schema
(
description
=
"签单人执业编号"
)
private
String
signerRegNo
;
private
String
practiceCode
;
/**
* 签单地点
...
...
@@ -399,7 +399,7 @@ public class PolicyFollowDetailVO implements Serializable {
* 红利付款方式(字典)
*/
@Schema
(
description
=
"红利付款方式"
)
private
String
dividend
Payment
Method
;
private
String
dividend
Distribution
Method
;
/**
* 快递单号
...
...
yd-csf-service/src/main/resources/mappers/PolicyFollowMapper.xml
View file @
9deff75e
...
...
@@ -17,7 +17,7 @@
<result
property=
"signDate"
column=
"sign_date"
/>
<result
property=
"signer"
column=
"signer"
/>
<result
property=
"signerBizId"
column=
"signer_biz_id"
/>
<result
property=
"
signerRegNo"
column=
"signer_reg_no
"
/>
<result
property=
"
practiceCode"
column=
"practice_code
"
/>
<result
property=
"signLocation"
column=
"sign_location"
/>
<result
property=
"issueDate"
column=
"issue_date"
/>
<result
property=
"coolingOffEndDate"
column=
"cooling_off_end_date"
/>
...
...
@@ -64,7 +64,7 @@
<result
property=
"initialPremiumDiscount"
column=
"initial_premium_discount"
/>
<result
property=
"mailingMethod"
column=
"mailing_method"
/>
<result
property=
"renewalPaymentMethod"
column=
"renewal_payment_method"
/>
<result
property=
"dividend
PaymentMethod"
column=
"dividend_payment
_method"
/>
<result
property=
"dividend
DistributionMethod"
column=
"dividend_distribution
_method"
/>
<result
property=
"deliveryNo"
column=
"delivery_no"
/>
<result
property=
"policyLevy"
column=
"policy_levy"
/>
<result
property=
"initialPremiumPaid"
column=
"initial_premium_paid"
/>
...
...
@@ -85,7 +85,7 @@
<sql
id=
"Base_Column_List"
>
id,policy_biz_id,policy_no,fna_biz_id,appointment_biz_id,appointment_no,customer_biz_id,
submit_date,customer_name,sign_date,signer,signer_biz_id,
signer_reg_no
,sign_location,issue_date,cooling_off_end_date,cooling_off_days,
practice_code
,sign_location,issue_date,cooling_off_end_date,cooling_off_days,
underwriting_date,effective_date,renewal_date,receipt_date,receipt_status,
direct_payment_enabled,issue_number,guarantee_period,sum_insured,payment_frequency,
each_issue_premium,is_prepay,is_traceable,retroactive_date,prepaid_term,
...
...
@@ -94,7 +94,7 @@
reconciliation_company_biz_id,status,next_status_list,policy_holder,insured,
insured_age,grace_period,is_join,policy_currency,initial_payment_method,
initial_premium,initial_premium_total,initial_payment_status,initial_premium_discount,
mailing_method,renewal_payment_method,dividend_
payment
_method,delivery_no,
mailing_method,renewal_payment_method,dividend_
distribution
_method,delivery_no,
policy_levy,initial_premium_paid,initial_premium_due,latest_payment_date,broker_sign_date,
insurer_mailing_date,customer_sign_date,attachments,remark,is_deleted,
creator_id,updater_id,create_time,update_time
...
...
@@ -110,13 +110,16 @@
t.issue_number as paymentPeriod,
t.initial_premium as annualAmount,
t.prepaid_amount as totalPrepayment,
t.
payment_premium
as premiumFee,
t.
each_issue_premium
as premiumFee,
t.sign_date as startTime,
t.sign_date as endTime,
t.signer_list as serviceManager,
t.signer as serviceManager,
t.sign_location as location,
t.policy_holder as policyHolder,
t.
currency
as currency,
t.
policy_currency
as currency,
ifnull(i.name, i.name_en) as insuredPerson,
t.initial_premium as initialPremium,
t.policy_levy as policyLevy,
i.age as insuredAge
from policy_follow t
...
...
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