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
135326c2
Commit
135326c2
authored
Apr 27, 2026
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
push
parent
43b0aae6
Hide whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
503 additions
and
48 deletions
+503
-48
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionExpectedController.java
+5
-2
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiPolicyFollowController.java
+10
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAppointmentServiceImpl.java
+6
-0
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/ApiPremiumReconciliationServiceImpl.java
+15
-0
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/excel/ApiSalarySplitSummaryExcelDto.java
+2
-2
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/salarysplit/ApiSalarySplitSummaryPageDto.java
+5
-0
yd-csf-feign/src/main/java/com/yd/csf/feign/request/premiumreconciliation/ApiPremiumReconciliationPageRequest.java
+13
-2
yd-csf-service/src/main/java/com/yd/csf/service/dao/PolicyFollowMapper.java
+8
-6
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionExpectedQueryRequest.java
+7
-1
yd-csf-service/src/main/java/com/yd/csf/service/dto/PolicyFollowQueryRequest.java
+2
-2
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyInsurant.java
+10
-0
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyPolicyholder.java
+10
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyBrokerService.java
+3
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyFollowService.java
+3
-1
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyInsurantService.java
+4
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyPolicyholderService.java
+4
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneAccountServiceImpl.java
+16
-4
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyBrokerServiceImpl.java
+20
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyFollowServiceImpl.java
+163
-3
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyInsurantServiceImpl.java
+27
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyPolicyholderServiceImpl.java
+26
-0
yd-csf-service/src/main/java/com/yd/csf/service/utils/BusinessNoUtils.java
+42
-0
yd-csf-service/src/main/java/com/yd/csf/service/vo/FortuneAccountVO.java
+7
-0
yd-csf-service/src/main/java/com/yd/csf/service/vo/PolicyFollowVO.java
+12
-0
yd-csf-service/src/main/java/com/yd/csf/service/vo/ReceivableReportVO.java
+10
-0
yd-csf-service/src/main/resources/mappers/CommissionExpectedMapper.xml
+4
-0
yd-csf-service/src/main/resources/mappers/PolicyFollowMapper.xml
+30
-3
yd-csf-service/src/main/resources/mappers/PremiumReconciliationMapper.xml
+34
-19
yd-csf-service/src/main/resources/mappers/SalarySplitMapper.xml
+4
-2
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionExpectedController.java
View file @
135326c2
...
@@ -290,8 +290,11 @@ public class ApiCommissionExpectedController {
...
@@ -290,8 +290,11 @@ public class ApiCommissionExpectedController {
@PostMapping
(
"/receivable_report"
)
@PostMapping
(
"/receivable_report"
)
@Operation
(
summary
=
"应收款报表"
)
@Operation
(
summary
=
"应收款报表"
)
public
Result
<
ReceivableReportResponse
>
receivableReport
(
@RequestBody
CommissionExpectedQueryRequest
commissionExpectedQueryRequest
)
{
public
Result
<
ReceivableReportResponse
>
receivableReport
(
@RequestBody
CommissionExpectedQueryRequest
commissionExpectedQueryRequest
)
{
//保單持有人(中/英)、签单人、转介人名称(主)查询保单号列表
//保單持有人(中/英、繁简/大小写)、签单人、转介人名称(主)、受保人(中/英、繁简/大小写)、查询保单号列表
List
<
String
>
queryPolicyNoList
=
policyFollowService
.
queryPolicyNoList
(
commissionExpectedQueryRequest
.
getPolicyHolder
(),
commissionExpectedQueryRequest
.
getSigner
(),
commissionExpectedQueryRequest
.
getBrokerName
());
List
<
String
>
queryPolicyNoList
=
policyFollowService
.
queryPolicyNoList
(
commissionExpectedQueryRequest
.
getPolicyHolder
(),
commissionExpectedQueryRequest
.
getSigner
(),
commissionExpectedQueryRequest
.
getBrokerName
(),
commissionExpectedQueryRequest
.
getInsured
());
// 构建查询条件
// 构建查询条件
commissionExpectedQueryRequest
.
setPolicyNoList
(
queryPolicyNoList
);
commissionExpectedQueryRequest
.
setPolicyNoList
(
queryPolicyNoList
);
QueryWrapper
<
CommissionExpected
>
queryWrapper
=
commissionExpectedService
.
getQueryWrapper
(
commissionExpectedQueryRequest
);
QueryWrapper
<
CommissionExpected
>
queryWrapper
=
commissionExpectedService
.
getQueryWrapper
(
commissionExpectedQueryRequest
);
...
...
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiPolicyFollowController.java
View file @
135326c2
...
@@ -957,5 +957,14 @@ public class ApiPolicyFollowController {
...
@@ -957,5 +957,14 @@ public class ApiPolicyFollowController {
return
policyFollowService
.
detail
(
policyNo
);
return
policyFollowService
.
detail
(
policyNo
);
}
}
/**
* 更新-新单跟进投保人和受保人的名字冗余字段
* @return
*/
@PutMapping
(
"/update"
)
public
Result
update
(){
return
policyFollowService
.
updateTs
();
}
}
}
\ No newline at end of file
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAppointmentServiceImpl.java
View file @
135326c2
...
@@ -11,7 +11,9 @@ import com.yd.common.enums.CommonEnum;
...
@@ -11,7 +11,9 @@ import com.yd.common.enums.CommonEnum;
import
com.yd.common.enums.ResultCode
;
import
com.yd.common.enums.ResultCode
;
import
com.yd.common.exception.BusinessException
;
import
com.yd.common.exception.BusinessException
;
import
com.yd.common.result.Result
;
import
com.yd.common.result.Result
;
import
com.yd.common.utils.ChineseTextConverter
;
import
com.yd.common.utils.CodeGenerator
;
import
com.yd.common.utils.CodeGenerator
;
import
com.yd.common.utils.EnglishTextUtil
;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.csf.api.service.*
;
import
com.yd.csf.api.service.*
;
import
com.yd.csf.feign.dto.appointment.*
;
import
com.yd.csf.feign.dto.appointment.*
;
...
@@ -947,6 +949,8 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
...
@@ -947,6 +949,8 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
policyInsurant
.
setPolicyInsurantBizId
(
RandomStringGenerator
.
generateBizId16
(
"policy_insurant"
));
policyInsurant
.
setPolicyInsurantBizId
(
RandomStringGenerator
.
generateBizId16
(
"policy_insurant"
));
policyInsurant
.
setName
(
apiInsurantInfoDto
.
getNameCn
());
policyInsurant
.
setName
(
apiInsurantInfoDto
.
getNameCn
());
policyInsurant
.
setNameEn
(
apiInsurantInfoDto
.
getNamePyEn
());
policyInsurant
.
setNameEn
(
apiInsurantInfoDto
.
getNamePyEn
());
policyInsurant
.
setNameSc
(
ChineseTextConverter
.
traditionalToSimplified
(
apiInsurantInfoDto
.
getNameCn
()));
policyInsurant
.
setNameEnLc
(
EnglishTextUtil
.
toLowerCaseSafe
(
apiInsurantInfoDto
.
getNamePyEn
()));
return
policyInsurantService
.
saveOrUpdate
(
policyInsurant
);
return
policyInsurantService
.
saveOrUpdate
(
policyInsurant
);
}
}
...
@@ -965,6 +969,8 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
...
@@ -965,6 +969,8 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
policyPolicyholder
.
setPolicyPolicyholderBizId
(
RandomStringGenerator
.
generateBizId16
(
"policy_policyholder"
));
policyPolicyholder
.
setPolicyPolicyholderBizId
(
RandomStringGenerator
.
generateBizId16
(
"policy_policyholder"
));
policyPolicyholder
.
setName
(
apiPolicyholderInfoDto
.
getNameCn
());
policyPolicyholder
.
setName
(
apiPolicyholderInfoDto
.
getNameCn
());
policyPolicyholder
.
setNameEn
(
apiPolicyholderInfoDto
.
getNamePyEn
());
policyPolicyholder
.
setNameEn
(
apiPolicyholderInfoDto
.
getNamePyEn
());
policyPolicyholder
.
setNameSc
(
ChineseTextConverter
.
traditionalToSimplified
(
apiPolicyholderInfoDto
.
getNameCn
()));
policyPolicyholder
.
setNameEnLc
(
EnglishTextUtil
.
toLowerCaseSafe
(
apiPolicyholderInfoDto
.
getNamePyEn
()));
return
policyPolicyholderService
.
saveOrUpdate
(
policyPolicyholder
);
return
policyPolicyholderService
.
saveOrUpdate
(
policyPolicyholder
);
}
}
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiExpectedFortuneServiceImpl.java
View file @
135326c2
...
@@ -1079,7 +1079,7 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
...
@@ -1079,7 +1079,7 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
@Override
@Override
public
Result
<
PayableReportResponse
>
payableReport
(
ApiExpectedFortunePageRequest
request
)
{
public
Result
<
PayableReportResponse
>
payableReport
(
ApiExpectedFortunePageRequest
request
)
{
//保單持有人(中/英)、签单人、转介人名称(主)查询保单号列表
//保單持有人(中/英)、签单人、转介人名称(主)查询保单号列表
List
<
String
>
queryPolicyNoList
=
policyFollowService
.
queryPolicyNoList
(
request
.
getPolicyHolder
(),
""
,
""
);
List
<
String
>
queryPolicyNoList
=
policyFollowService
.
queryPolicyNoList
(
request
.
getPolicyHolder
(),
""
,
""
,
""
);
// 构建查询条件
// 构建查询条件
request
.
setPolicyNoList
(
queryPolicyNoList
);
request
.
setPolicyNoList
(
queryPolicyNoList
);
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiPremiumReconciliationServiceImpl.java
View file @
135326c2
...
@@ -14,6 +14,8 @@ import com.yd.common.enums.CommonEnum;
...
@@ -14,6 +14,8 @@ import com.yd.common.enums.CommonEnum;
import
com.yd.common.enums.ResultCode
;
import
com.yd.common.enums.ResultCode
;
import
com.yd.common.exception.BusinessException
;
import
com.yd.common.exception.BusinessException
;
import
com.yd.common.result.Result
;
import
com.yd.common.result.Result
;
import
com.yd.common.utils.ChineseTextConverter
;
import
com.yd.common.utils.EnglishTextUtil
;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.csf.api.async.ApiExpectedFortuneAsyncService
;
import
com.yd.csf.api.async.ApiExpectedFortuneAsyncService
;
import
com.yd.csf.api.service.ApiExpectedFortuneService
;
import
com.yd.csf.api.service.ApiExpectedFortuneService
;
...
@@ -129,6 +131,19 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia
...
@@ -129,6 +131,19 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia
*/
*/
@Override
@Override
public
Result
<
IPage
<
ApiPremiumReconciliationPageResponse
>>
page
(
ApiPremiumReconciliationPageRequest
request
)
{
public
Result
<
IPage
<
ApiPremiumReconciliationPageResponse
>>
page
(
ApiPremiumReconciliationPageRequest
request
)
{
// 投保人-中文转简体
String
policyHolderNameSc
=
ChineseTextConverter
.
traditionalToSimplified
(
request
.
getPolicyHolder
());
// 投保人-英文转小写
String
policyHolderNameEnLc
=
EnglishTextUtil
.
toLowerCase
(
request
.
getPolicyHolder
());
// 受保人-中文转简体
String
insuredNameSc
=
ChineseTextConverter
.
traditionalToSimplified
(
request
.
getPolicyHolder
());
// 受保人-英文转小写
String
insuredNameEnLc
=
EnglishTextUtil
.
toLowerCase
(
request
.
getPolicyHolder
());
request
.
setPolicyHolderNameSc
(
policyHolderNameSc
);
request
.
setPolicyHolderNameEnLc
(
policyHolderNameEnLc
);
request
.
setInsuredNameSc
(
insuredNameSc
);
request
.
setInsuredNameEnLc
(
insuredNameEnLc
);
Page
<
ApiPremiumReconciliationPageResponse
>
page
=
new
Page
<>(
request
.
getPageNo
(),
request
.
getPageSize
());
Page
<
ApiPremiumReconciliationPageResponse
>
page
=
new
Page
<>(
request
.
getPageNo
(),
request
.
getPageSize
());
IPage
<
ApiPremiumReconciliationPageResponse
>
iPage
=
iPremiumReconciliationService
.
page
(
page
,
request
);
IPage
<
ApiPremiumReconciliationPageResponse
>
iPage
=
iPremiumReconciliationService
.
page
(
page
,
request
);
...
...
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/excel/ApiSalarySplitSummaryExcelDto.java
View file @
135326c2
...
@@ -43,7 +43,7 @@ public class ApiSalarySplitSummaryExcelDto {
...
@@ -43,7 +43,7 @@ public class ApiSalarySplitSummaryExcelDto {
@Excel
(
name
=
"本期总出账金额(原币种)"
,
orderNum
=
"12"
)
@Excel
(
name
=
"本期总出账金额(原币种)"
,
orderNum
=
"12"
)
private
BigDecimal
hkdAmount
;
private
BigDecimal
hkdAmount
;
@Excel
(
name
=
"出账
记录业务id
"
,
orderNum
=
"13"
)
@Excel
(
name
=
"出账
业务编号
"
,
orderNum
=
"13"
)
private
String
fortuneAccountBizId
;
private
String
businessNo
;
}
}
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/salarysplit/ApiSalarySplitSummaryPageDto.java
View file @
135326c2
...
@@ -24,6 +24,11 @@ public class ApiSalarySplitSummaryPageDto {
...
@@ -24,6 +24,11 @@ public class ApiSalarySplitSummaryPageDto {
private
String
fortuneAccountBizId
;
private
String
fortuneAccountBizId
;
/**
/**
* 出账业务编号(出账年月 + 转介人内部编号(后6位)(如无,用0补齐)+流水号(6位))
*/
private
String
businessNo
;
/**
* 转介人名称
* 转介人名称
*/
*/
private
String
brokerName
;
private
String
brokerName
;
...
...
yd-csf-feign/src/main/java/com/yd/csf/feign/request/premiumreconciliation/ApiPremiumReconciliationPageRequest.java
View file @
135326c2
...
@@ -2,7 +2,9 @@ package com.yd.csf.feign.request.premiumreconciliation;
...
@@ -2,7 +2,9 @@ package com.yd.csf.feign.request.premiumreconciliation;
import
com.fasterxml.jackson.databind.annotation.JsonDeserialize
;
import
com.fasterxml.jackson.databind.annotation.JsonDeserialize
;
import
com.yd.common.dto.PageDto
;
import
com.yd.common.dto.PageDto
;
import
com.yd.common.utils.ChineseTextConverter
;
import
com.yd.common.utils.CustomLocalDateTimeDeserializer
;
import
com.yd.common.utils.CustomLocalDateTimeDeserializer
;
import
com.yd.common.utils.EnglishTextUtil
;
import
lombok.Data
;
import
lombok.Data
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
...
@@ -35,12 +37,12 @@ public class ApiPremiumReconciliationPageRequest extends PageDto {
...
@@ -35,12 +37,12 @@ public class ApiPremiumReconciliationPageRequest extends PageDto {
private
String
appointmentNo
;
private
String
appointmentNo
;
/**
/**
* 保單持有人(投保人)(中文名/英文名)
* 保單持有人(投保人)(中文名/英文名)
(繁简/大小写)
*/
*/
private
String
policyHolder
;
private
String
policyHolder
;
/**
/**
* 受保人(保单表)(中文名/英文名)
* 受保人(保单表)(中文名/英文名)
(繁简/大小写)
*/
*/
private
String
insured
;
private
String
insured
;
...
@@ -64,6 +66,15 @@ public class ApiPremiumReconciliationPageRequest extends PageDto {
...
@@ -64,6 +66,15 @@ public class ApiPremiumReconciliationPageRequest extends PageDto {
*/
*/
private
String
reconciliationType
;
private
String
reconciliationType
;
// 投保人-中文转简体
private
String
policyHolderNameSc
;
// 投保人-英文转小写
private
String
policyHolderNameEnLc
;
// 受保人-中文转简体
private
String
insuredNameSc
;
// 受保人-英文转小写
private
String
insuredNameEnLc
;
/**
/**
* 付款日期
* 付款日期
*/
*/
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dao/PolicyFollowMapper.java
View file @
135326c2
...
@@ -17,12 +17,14 @@ public interface PolicyFollowMapper extends BaseMapper<PolicyFollow> {
...
@@ -17,12 +17,14 @@ public interface PolicyFollowMapper extends BaseMapper<PolicyFollow> {
PolicyReportData
queryPolicyReportData
(
@Param
(
"policyBizId"
)
String
policyBizId
);
PolicyReportData
queryPolicyReportData
(
@Param
(
"policyBizId"
)
String
policyBizId
);
//policyHolder(中英文姓名)查询policy_policyholder表
List
<
String
>
queryPolicyNoList
(
//signer签单员姓名查询policy_follow
@Param
(
"policyHolderSc"
)
String
policyHolderSc
,
//brokerName转介人(主,第一个转介人,一个保单对应多个转介人,查询第一个转介人姓名即可) policy_broker
@Param
(
"policyHolderEnLc"
)
String
policyHolderEnLc
,
List
<
String
>
queryPolicyNoList
(
@Param
(
"policyHolder"
)
String
policyHolder
,
@Param
(
"signer"
)
String
signer
,
@Param
(
"signer"
)
String
signer
,
@Param
(
"brokerName"
)
String
brokerName
,
@Param
(
"brokerName"
)
String
brokerName
);
@Param
(
"insuredSc"
)
String
insuredSc
,
@Param
(
"insuredEnLc"
)
String
insuredEnLc
);
}
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionExpectedQueryRequest.java
View file @
135326c2
...
@@ -83,11 +83,17 @@ public class CommissionExpectedQueryRequest extends PageDto {
...
@@ -83,11 +83,17 @@ public class CommissionExpectedQueryRequest extends PageDto {
private
String
teamBizId
;
private
String
teamBizId
;
/**
/**
* 保單持有人(中/英)
* 保單持有人(中/英
、繁简/大小写
)
*/
*/
private
String
policyHolder
;
private
String
policyHolder
;
/**
/**
* 受保人(中/英、繁简/大小写)
*/
@Schema
(
description
=
"受保人"
)
private
String
insured
;
/**
* 签单人
* 签单人
*/
*/
private
String
signer
;
private
String
signer
;
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/PolicyFollowQueryRequest.java
View file @
135326c2
...
@@ -86,12 +86,12 @@ public class PolicyFollowQueryRequest extends PageDto implements Serializable {
...
@@ -86,12 +86,12 @@ public class PolicyFollowQueryRequest extends PageDto implements Serializable {
private
Integer
issueNumber
;
private
Integer
issueNumber
;
/**
/**
* 保單持有人
* 保單持有人
(中(繁/简)/英文(大小写))
*/
*/
private
String
policyHolder
;
private
String
policyHolder
;
/**
/**
* 受保人
* 受保人
(中(繁/简)/英文(大小写))
*/
*/
private
String
insured
;
private
String
insured
;
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyInsurant.java
View file @
135326c2
...
@@ -64,11 +64,21 @@ public class PolicyInsurant implements Serializable {
...
@@ -64,11 +64,21 @@ public class PolicyInsurant implements Serializable {
private
String
name
;
private
String
name
;
/**
/**
* 名字-简体(入库名字统一转换简体,方便查询)
*/
private
String
nameSc
;
/**
* 名字-英文
* 名字-英文
*/
*/
private
String
nameEn
;
private
String
nameEn
;
/**
/**
* 名字-英文-小写(入库名字英文统一转换小写,方便查询)
*/
private
String
nameEnLc
;
/**
* 性别(字典)
* 性别(字典)
*/
*/
private
String
gender
;
private
String
gender
;
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyPolicyholder.java
View file @
135326c2
...
@@ -59,11 +59,21 @@ public class PolicyPolicyholder implements Serializable {
...
@@ -59,11 +59,21 @@ public class PolicyPolicyholder implements Serializable {
private
String
name
;
private
String
name
;
/**
/**
* 名字-简体(入库名字统一转换简体,方便查询)
*/
private
String
nameSc
;
/**
* 名字-英文
* 名字-英文
*/
*/
private
String
nameEn
;
private
String
nameEn
;
/**
/**
* 名字-英文-小写(入库名字英文统一转换小写,方便查询)
*/
private
String
nameEnLc
;
/**
* 性别(字典)
* 性别(字典)
*/
*/
private
String
gender
;
private
String
gender
;
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyBrokerService.java
View file @
135326c2
...
@@ -5,6 +5,7 @@ import com.yd.csf.service.model.PolicyBroker;
...
@@ -5,6 +5,7 @@ import com.yd.csf.service.model.PolicyBroker;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
/**
/**
* @author Zhang Jianan
* @author Zhang Jianan
...
@@ -21,4 +22,6 @@ public interface PolicyBrokerService extends IService<PolicyBroker> {
...
@@ -21,4 +22,6 @@ public interface PolicyBrokerService extends IService<PolicyBroker> {
List
<
String
>
selectRelatedBrokerBizIds
(
String
clientUserId
);
List
<
String
>
selectRelatedBrokerBizIds
(
String
clientUserId
);
Map
<
String
,
String
>
queryInternalCodeMap
(
List
<
String
>
brokerBizIdList
);
}
}
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyFollowService.java
View file @
135326c2
...
@@ -184,5 +184,7 @@ public interface PolicyFollowService extends IService<PolicyFollow> {
...
@@ -184,5 +184,7 @@ public interface PolicyFollowService extends IService<PolicyFollow> {
Result
<
ApiPolicyFollowDetailResponse
>
detail
(
String
policyNo
);
Result
<
ApiPolicyFollowDetailResponse
>
detail
(
String
policyNo
);
List
<
String
>
queryPolicyNoList
(
String
policyHolder
,
String
signer
,
String
brokerName
);
List
<
String
>
queryPolicyNoList
(
String
policyHolder
,
String
signer
,
String
brokerName
,
String
insured
);
Result
updateTs
();
}
}
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyInsurantService.java
View file @
135326c2
...
@@ -3,6 +3,9 @@ package com.yd.csf.service.service;
...
@@ -3,6 +3,9 @@ package com.yd.csf.service.service;
import
com.yd.csf.service.dto.PolicyInsurantUpdateRequest
;
import
com.yd.csf.service.dto.PolicyInsurantUpdateRequest
;
import
com.yd.csf.service.model.PolicyInsurant
;
import
com.yd.csf.service.model.PolicyInsurant
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yd.csf.service.model.PolicyPolicyholder
;
import
java.util.List
;
/**
/**
* @author Zhang Jianan
* @author Zhang Jianan
...
@@ -18,4 +21,5 @@ public interface PolicyInsurantService extends IService<PolicyInsurant> {
...
@@ -18,4 +21,5 @@ public interface PolicyInsurantService extends IService<PolicyInsurant> {
*/
*/
boolean
update
(
PolicyInsurantUpdateRequest
policyInsurantUpdateRequest
);
boolean
update
(
PolicyInsurantUpdateRequest
policyInsurantUpdateRequest
);
List
<
PolicyInsurant
>
queryList
(
String
policyHolder
);
}
}
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyPolicyholderService.java
View file @
135326c2
...
@@ -4,6 +4,8 @@ import com.yd.csf.service.dto.PolicyPolicyholderUpdateRequest;
...
@@ -4,6 +4,8 @@ import com.yd.csf.service.dto.PolicyPolicyholderUpdateRequest;
import
com.yd.csf.service.model.PolicyPolicyholder
;
import
com.yd.csf.service.model.PolicyPolicyholder
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
java.util.List
;
/**
/**
* @author Zhang Jianan
* @author Zhang Jianan
* @description 针对表【policy_policyholder(保单投保人信息表)】的数据库操作Service
* @description 针对表【policy_policyholder(保单投保人信息表)】的数据库操作Service
...
@@ -19,4 +21,6 @@ public interface PolicyPolicyholderService extends IService<PolicyPolicyholder>
...
@@ -19,4 +21,6 @@ public interface PolicyPolicyholderService extends IService<PolicyPolicyholder>
boolean
update
(
PolicyPolicyholderUpdateRequest
policyPolicyholderUpdateRequest
);
boolean
update
(
PolicyPolicyholderUpdateRequest
policyPolicyholderUpdateRequest
);
PolicyPolicyholder
queryOne
(
String
policyBizId
);
PolicyPolicyholder
queryOne
(
String
policyBizId
);
List
<
PolicyPolicyholder
>
queryList
(
String
policyHolder
);
}
}
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneAccountServiceImpl.java
View file @
135326c2
...
@@ -20,11 +20,9 @@ import com.yd.csf.service.dto.*;
...
@@ -20,11 +20,9 @@ import com.yd.csf.service.dto.*;
import
com.yd.csf.service.enums.FortuneAccountStatusEnum
;
import
com.yd.csf.service.enums.FortuneAccountStatusEnum
;
import
com.yd.csf.service.enums.FortuneStatusEnum
;
import
com.yd.csf.service.enums.FortuneStatusEnum
;
import
com.yd.csf.service.model.*
;
import
com.yd.csf.service.model.*
;
import
com.yd.csf.service.service.FortuneAccountEditRecordService
;
import
com.yd.csf.service.service.*
;
import
com.yd.csf.service.service.FortuneAccountService
;
import
com.yd.csf.service.dao.FortuneAccountMapper
;
import
com.yd.csf.service.dao.FortuneAccountMapper
;
import
com.yd.csf.service.service.FortuneService
;
import
com.yd.csf.service.utils.BusinessNoUtils
;
import
com.yd.csf.service.service.IExpectedFortuneService
;
import
com.yd.csf.service.vo.FortuneAccountVO
;
import
com.yd.csf.service.vo.FortuneAccountVO
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
...
@@ -57,6 +55,9 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper,
...
@@ -57,6 +55,9 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper,
@Resource
@Resource
private
IExpectedFortuneService
expectedFortuneService
;
private
IExpectedFortuneService
expectedFortuneService
;
@Resource
private
PolicyBrokerService
policyBrokerService
;
private
final
Gson
GSON
=
new
Gson
();
private
final
Gson
GSON
=
new
Gson
();
@Override
@Override
...
@@ -115,11 +116,22 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper,
...
@@ -115,11 +116,22 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper,
AuthUserDto
currentLoginUser
=
SecurityUtil
.
getCurrentLoginUser
();
AuthUserDto
currentLoginUser
=
SecurityUtil
.
getCurrentLoginUser
();
Long
loginUserId
=
currentLoginUser
.
getId
();
Long
loginUserId
=
currentLoginUser
.
getId
();
//查询转介人的内部编号列表信息
List
<
String
>
brokerBizIdList
=
accountExportDTOList
.
stream
().
map
(
FortuneAccountExportDTO:
:
getBrokerBizId
).
collect
(
Collectors
.
toList
());
Map
<
String
,
String
>
map
=
policyBrokerService
.
queryInternalCodeMap
(
brokerBizIdList
);
List
<
FortuneAccount
>
fortuneAccountList
=
new
ArrayList
<>();
List
<
FortuneAccount
>
fortuneAccountList
=
new
ArrayList
<>();
Date
currentDate
=
new
Date
();
Date
currentDate
=
new
Date
();
for
(
FortuneAccountExportDTO
accountExportDTO
:
accountExportDTOList
)
{
for
(
FortuneAccountExportDTO
accountExportDTO
:
accountExportDTOList
)
{
FortuneAccount
fortuneAccount
=
new
FortuneAccount
();
FortuneAccount
fortuneAccount
=
new
FortuneAccount
();
fortuneAccount
.
setFortuneAccountBizId
(
RandomStringGenerator
.
generateBizId16
(
"fortune_account"
));
fortuneAccount
.
setFortuneAccountBizId
(
RandomStringGenerator
.
generateBizId16
(
"fortune_account"
));
String
internalCode
=
map
.
get
(
accountExportDTO
.
getBrokerBizId
());
LocalDate
actualPayoutDate
=
accountExportDTO
.
getActualPayoutDate
();
String
billingYearMonth
=
actualPayoutDate
!=
null
?
actualPayoutDate
.
format
(
java
.
time
.
format
.
DateTimeFormatter
.
ofPattern
(
"yyyyMM"
))
:
""
;
String
businessNo
=
BusinessNoUtils
.
generate
(
billingYearMonth
,
internalCode
);
//出账业务编号(出账年月 + 转介人内部编号(后6位)(如无,用0补齐)+流水号(6位))
fortuneAccount
.
setBusinessNo
(
businessNo
);
fortuneAccount
.
setBroker
(
accountExportDTO
.
getBroker
());
fortuneAccount
.
setBroker
(
accountExportDTO
.
getBroker
());
fortuneAccount
.
setBrokerBizId
(
accountExportDTO
.
getBrokerBizId
());
fortuneAccount
.
setBrokerBizId
(
accountExportDTO
.
getBrokerBizId
());
fortuneAccount
.
setTeam
(
accountExportDTO
.
getTeam
());
fortuneAccount
.
setTeam
(
accountExportDTO
.
getTeam
());
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyBrokerServiceImpl.java
View file @
135326c2
...
@@ -11,7 +11,10 @@ import org.apache.commons.lang3.StringUtils;
...
@@ -11,7 +11,10 @@ import org.apache.commons.lang3.StringUtils;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.CollectionUtils
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
/**
/**
* @author Zhang Jianan
* @author Zhang Jianan
...
@@ -56,6 +59,23 @@ public class PolicyBrokerServiceImpl extends ServiceImpl<PolicyBrokerMapper, Pol
...
@@ -56,6 +59,23 @@ public class PolicyBrokerServiceImpl extends ServiceImpl<PolicyBrokerMapper, Pol
public
List
<
String
>
selectRelatedBrokerBizIds
(
String
clientUserId
)
{
public
List
<
String
>
selectRelatedBrokerBizIds
(
String
clientUserId
)
{
return
baseMapper
.
selectRelatedBrokerBizIds
(
clientUserId
);
return
baseMapper
.
selectRelatedBrokerBizIds
(
clientUserId
);
}
}
@Override
public
Map
<
String
,
String
>
queryInternalCodeMap
(
List
<
String
>
brokerBizIdList
)
{
if
(
CollectionUtils
.
isEmpty
(
brokerBizIdList
))
{
return
Collections
.
emptyMap
();
}
List
<
PolicyBroker
>
list
=
baseMapper
.
selectList
(
new
LambdaQueryWrapper
<
PolicyBroker
>()
.
select
(
PolicyBroker:
:
getBrokerBizId
,
PolicyBroker:
:
getInternalCode
)
// 只查需要的字段
.
in
(
PolicyBroker:
:
getBrokerBizId
,
brokerBizIdList
)
.
isNotNull
(
PolicyBroker:
:
getInternalCode
)
// 排除 internalCode 为 null 的记录(可选)
);
return
list
.
stream
().
collect
(
Collectors
.
toMap
(
PolicyBroker:
:
getBrokerBizId
,
PolicyBroker:
:
getInternalCode
,
(
v1
,
v2
)
->
v1
// 如果 brokerBizId 可能重复,保留其中一个
));
}
}
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyFollowServiceImpl.java
View file @
135326c2
...
@@ -18,6 +18,8 @@ import com.yd.common.enums.CommonEnum;
...
@@ -18,6 +18,8 @@ import com.yd.common.enums.CommonEnum;
import
com.yd.common.enums.ResultCode
;
import
com.yd.common.enums.ResultCode
;
import
com.yd.common.exception.BusinessException
;
import
com.yd.common.exception.BusinessException
;
import
com.yd.common.result.Result
;
import
com.yd.common.result.Result
;
import
com.yd.common.utils.ChineseTextConverter
;
import
com.yd.common.utils.EnglishTextUtil
;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.csf.feign.response.policyfollow.ApiPolicyFollowDetailResponse
;
import
com.yd.csf.feign.response.policyfollow.ApiPolicyFollowDetailResponse
;
import
com.yd.csf.service.common.ErrorCode
;
import
com.yd.csf.service.common.ErrorCode
;
...
@@ -129,8 +131,41 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
...
@@ -129,8 +131,41 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
queryWrapper
.
le
(
ObjectUtils
.
isNotEmpty
(
signDateEnd
),
"sign_date"
,
signDateEnd
);
queryWrapper
.
le
(
ObjectUtils
.
isNotEmpty
(
signDateEnd
),
"sign_date"
,
signDateEnd
);
queryWrapper
.
eq
(
ObjectUtils
.
isNotEmpty
(
latestPaymentDate
),
"latest_payment_date"
,
latestPaymentDate
);
queryWrapper
.
eq
(
ObjectUtils
.
isNotEmpty
(
latestPaymentDate
),
"latest_payment_date"
,
latestPaymentDate
);
//保單持有人(投保人)
//保單持有人(投保人)
if
(
StringUtils
.
isNotEmpty
(
policyFollowQueryRequest
.
getPolicyHolder
()))
queryWrapper
.
like
(
"policy_holder"
,
policyFollowQueryRequest
.
getPolicyHolder
());
if
(
StringUtils
.
isNotEmpty
(
policyFollowQueryRequest
.
getPolicyHolder
()))
{
List
<
PolicyPolicyholder
>
policyHolderList
=
policyPolicyholderService
.
queryList
(
policyFollowQueryRequest
.
getPolicyHolder
());
List
<
String
>
policyBizIdList
=
null
;
if
(
CollectionUtils
.
isNotEmpty
(
policyHolderList
))
{
policyBizIdList
=
policyHolderList
.
stream
()
.
map
(
PolicyPolicyholder:
:
getPolicyBizId
)
.
filter
(
StringUtils:
:
isNotBlank
)
.
distinct
()
.
collect
(
Collectors
.
toList
());
}
if
(
CollectionUtils
.
isNotEmpty
(
policyBizIdList
))
{
queryWrapper
.
in
(
"policy_biz_id"
,
policyBizIdList
);
}
else
{
// 没有匹配的投保人,直接让查询结果为空
queryWrapper
.
apply
(
"1=0"
);
}
}
//受保人
//受保人
if
(
StringUtils
.
isNotEmpty
(
policyFollowQueryRequest
.
getInsured
()))
{
List
<
PolicyInsurant
>
policyHolderList
=
policyInsurantService
.
queryList
(
policyFollowQueryRequest
.
getInsured
());
List
<
String
>
policyBizIdList
=
null
;
if
(
CollectionUtils
.
isNotEmpty
(
policyHolderList
))
{
policyBizIdList
=
policyHolderList
.
stream
()
.
map
(
PolicyInsurant:
:
getPolicyBizId
)
.
filter
(
StringUtils:
:
isNotBlank
)
.
distinct
()
.
collect
(
Collectors
.
toList
());
}
if
(
CollectionUtils
.
isNotEmpty
(
policyBizIdList
))
{
queryWrapper
.
in
(
"policy_biz_id"
,
policyBizIdList
);
}
else
{
// 没有匹配的受保人,直接让查询结果为空
queryWrapper
.
apply
(
"1=0"
);
}
}
if
(
StringUtils
.
isNotEmpty
(
policyFollowQueryRequest
.
getInsured
()))
queryWrapper
.
like
(
"insured"
,
policyFollowQueryRequest
.
getInsured
());
if
(
StringUtils
.
isNotEmpty
(
policyFollowQueryRequest
.
getInsured
()))
queryWrapper
.
like
(
"insured"
,
policyFollowQueryRequest
.
getInsured
());
//签单人
//签单人
if
(
StringUtils
.
isNotEmpty
(
policyFollowQueryRequest
.
getSigner
()))
queryWrapper
.
like
(
"signer"
,
policyFollowQueryRequest
.
getSigner
());
if
(
StringUtils
.
isNotEmpty
(
policyFollowQueryRequest
.
getSigner
()))
queryWrapper
.
like
(
"signer"
,
policyFollowQueryRequest
.
getSigner
());
...
@@ -1226,8 +1261,133 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
...
@@ -1226,8 +1261,133 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
}
}
@Override
@Override
public
List
<
String
>
queryPolicyNoList
(
String
policyHolder
,
String
signer
,
String
brokerName
)
{
public
List
<
String
>
queryPolicyNoList
(
String
policyHolder
,
String
signer
,
String
brokerName
,
String
insured
)
{
return
this
.
baseMapper
.
queryPolicyNoList
(
policyHolder
,
signer
,
brokerName
);
// 投保人转换:中文转简体、英文转小写
String
policyHolderSc
=
ChineseTextConverter
.
traditionalToSimplified
(
policyHolder
);
String
policyHolderEnLc
=
EnglishTextUtil
.
toLowerCase
(
policyHolder
);
// 受保人转换:中文转简体、英文转小写
String
insuredSc
=
ChineseTextConverter
.
traditionalToSimplified
(
insured
);
String
insuredEnLc
=
EnglishTextUtil
.
toLowerCase
(
insured
);
return
this
.
baseMapper
.
queryPolicyNoList
(
policyHolderSc
,
policyHolderEnLc
,
signer
,
brokerName
,
insuredSc
,
insuredEnLc
);
}
/**
* 更新-新单跟进投保人和受保人的名字冗余字段
* @return
*/
@Override
public
Result
updateTs
()
{
int
pageSize
=
200
;
// 1. 更新投保人表
updatePolicyholderNameFields
(
pageSize
);
// 2. 更新受保人表
updateInsurantNameFields
(
pageSize
);
log
.
info
(
"投保人/受保人名字冗余字段更新完成"
);
return
Result
.
success
(
"更新成功"
);
}
/**
* 批量处理 policy_policyholder 的 nameSc 和 nameEnLc
*/
private
void
updatePolicyholderNameFields
(
int
pageSize
)
{
int
pageNo
=
1
;
while
(
true
)
{
Page
<
PolicyPolicyholder
>
page
=
new
Page
<>(
pageNo
,
pageSize
);
Page
<
PolicyPolicyholder
>
resultPage
=
policyPolicyholderService
.
page
(
page
);
List
<
PolicyPolicyholder
>
records
=
resultPage
.
getRecords
();
if
(
CollUtil
.
isEmpty
(
records
))
{
break
;
}
List
<
PolicyPolicyholder
>
toUpdate
=
new
ArrayList
<>();
for
(
PolicyPolicyholder
entity
:
records
)
{
boolean
changed
=
false
;
// 繁体 → 简体
if
(
StringUtils
.
isNotBlank
(
entity
.
getName
()))
{
String
nameSc
=
ChineseTextConverter
.
traditionalToSimplified
(
entity
.
getName
());
if
(!
nameSc
.
equals
(
entity
.
getNameSc
()))
{
entity
.
setNameSc
(
nameSc
);
changed
=
true
;
}
}
// 英文 → 小写
if
(
StringUtils
.
isNotBlank
(
entity
.
getNameEn
()))
{
String
nameEnLc
=
EnglishTextUtil
.
toLowerCase
(
entity
.
getNameEn
());
if
(!
nameEnLc
.
equals
(
entity
.
getNameEnLc
()))
{
entity
.
setNameEnLc
(
nameEnLc
);
changed
=
true
;
}
}
if
(
changed
)
{
entity
.
setUpdateTime
(
new
Date
());
// 可选,记录更新时间
toUpdate
.
add
(
entity
);
}
}
if
(!
toUpdate
.
isEmpty
())
{
policyPolicyholderService
.
updateBatchById
(
toUpdate
);
}
pageNo
++;
}
}
/**
* 批量处理 policy_insurant 的 nameSc 和 nameEnLc
*/
private
void
updateInsurantNameFields
(
int
pageSize
)
{
int
pageNo
=
1
;
while
(
true
)
{
Page
<
PolicyInsurant
>
page
=
new
Page
<>(
pageNo
,
pageSize
);
Page
<
PolicyInsurant
>
resultPage
=
policyInsurantService
.
page
(
page
);
List
<
PolicyInsurant
>
records
=
resultPage
.
getRecords
();
if
(
CollUtil
.
isEmpty
(
records
))
{
break
;
}
List
<
PolicyInsurant
>
toUpdate
=
new
ArrayList
<>();
for
(
PolicyInsurant
entity
:
records
)
{
boolean
changed
=
false
;
if
(
StringUtils
.
isNotBlank
(
entity
.
getName
()))
{
String
nameSc
=
ChineseTextConverter
.
traditionalToSimplified
(
entity
.
getName
());
if
(!
nameSc
.
equals
(
entity
.
getNameSc
()))
{
entity
.
setNameSc
(
nameSc
);
changed
=
true
;
}
}
if
(
StringUtils
.
isNotBlank
(
entity
.
getNameEn
()))
{
String
nameEnLc
=
EnglishTextUtil
.
toLowerCase
(
entity
.
getNameEn
());
if
(!
nameEnLc
.
equals
(
entity
.
getNameEnLc
()))
{
entity
.
setNameEnLc
(
nameEnLc
);
changed
=
true
;
}
}
if
(
changed
)
{
entity
.
setUpdateTime
(
new
Date
());
toUpdate
.
add
(
entity
);
}
}
if
(!
toUpdate
.
isEmpty
())
{
policyInsurantService
.
updateBatchById
(
toUpdate
);
}
pageNo
++;
}
}
}
}
}
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyInsurantServiceImpl.java
View file @
135326c2
package
com
.
yd
.
csf
.
service
.
service
.
impl
;
package
com
.
yd
.
csf
.
service
.
service
.
impl
;
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.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yd.common.enums.ResultCode
;
import
com.yd.common.enums.ResultCode
;
import
com.yd.common.exception.BusinessException
;
import
com.yd.common.exception.BusinessException
;
import
com.yd.common.utils.ChineseTextConverter
;
import
com.yd.common.utils.EnglishTextUtil
;
import
com.yd.csf.service.dto.PolicyInsurantUpdateRequest
;
import
com.yd.csf.service.dto.PolicyInsurantUpdateRequest
;
import
com.yd.csf.service.model.PolicyInsurant
;
import
com.yd.csf.service.model.PolicyInsurant
;
import
com.yd.csf.service.model.PolicyPolicyholder
;
import
com.yd.csf.service.service.PolicyInsurantService
;
import
com.yd.csf.service.service.PolicyInsurantService
;
import
com.yd.csf.service.dao.PolicyInsurantMapper
;
import
com.yd.csf.service.dao.PolicyInsurantMapper
;
import
com.yd.csf.service.utils.GSONUtil
;
import
com.yd.csf.service.utils.GSONUtil
;
...
@@ -14,7 +18,9 @@ import org.apache.commons.lang3.StringUtils;
...
@@ -14,7 +18,9 @@ import org.apache.commons.lang3.StringUtils;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.Collections
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
/**
/**
* @author Zhang Jianan
* @author Zhang Jianan
...
@@ -42,6 +48,27 @@ public class PolicyInsurantServiceImpl extends ServiceImpl<PolicyInsurantMapper,
...
@@ -42,6 +48,27 @@ public class PolicyInsurantServiceImpl extends ServiceImpl<PolicyInsurantMapper,
policyInsurant
.
setUpdateTime
(
new
Date
());
policyInsurant
.
setUpdateTime
(
new
Date
());
return
this
.
updateById
(
policyInsurant
);
return
this
.
updateById
(
policyInsurant
);
}
}
@Override
public
List
<
PolicyInsurant
>
queryList
(
String
insured
)
{
// 输入为空时直接返回空列表,避免无意义的全表查询
if
(
StringUtils
.
isBlank
(
insured
))
{
return
Collections
.
emptyList
();
}
// 中文转简体
String
nameSc
=
ChineseTextConverter
.
traditionalToSimplified
(
insured
);
// 英文转小写
String
nameEnLc
=
EnglishTextUtil
.
toLowerCase
(
insured
);
return
this
.
baseMapper
.
selectList
(
new
LambdaQueryWrapper
<
PolicyInsurant
>()
.
and
(
wrapper
->
wrapper
.
like
(
StringUtils
.
isNotBlank
(
nameSc
),
PolicyInsurant:
:
getNameSc
,
nameSc
)
.
or
()
.
like
(
StringUtils
.
isNotBlank
(
nameEnLc
),
PolicyInsurant:
:
getNameEnLc
,
nameEnLc
)
)
);
}
}
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyPolicyholderServiceImpl.java
View file @
135326c2
...
@@ -5,16 +5,21 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
...
@@ -5,16 +5,21 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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
;
import
com.yd.common.exception.BusinessException
;
import
com.yd.common.exception.BusinessException
;
import
com.yd.common.utils.ChineseTextConverter
;
import
com.yd.common.utils.EnglishTextUtil
;
import
com.yd.csf.service.dto.PolicyPolicyholderUpdateRequest
;
import
com.yd.csf.service.dto.PolicyPolicyholderUpdateRequest
;
import
com.yd.csf.service.model.PolicyPolicyholder
;
import
com.yd.csf.service.model.PolicyPolicyholder
;
import
com.yd.csf.service.service.PolicyPolicyholderService
;
import
com.yd.csf.service.service.PolicyPolicyholderService
;
import
com.yd.csf.service.dao.PolicyPolicyholderMapper
;
import
com.yd.csf.service.dao.PolicyPolicyholderMapper
;
import
com.yd.csf.service.utils.GSONUtil
;
import
com.yd.csf.service.utils.GSONUtil
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.Collections
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
/**
/**
* @author Zhang Jianan
* @author Zhang Jianan
...
@@ -48,6 +53,27 @@ public class PolicyPolicyholderServiceImpl extends ServiceImpl<PolicyPolicyholde
...
@@ -48,6 +53,27 @@ public class PolicyPolicyholderServiceImpl extends ServiceImpl<PolicyPolicyholde
return
this
.
baseMapper
.
selectOne
(
new
LambdaQueryWrapper
<
PolicyPolicyholder
>()
return
this
.
baseMapper
.
selectOne
(
new
LambdaQueryWrapper
<
PolicyPolicyholder
>()
.
eq
(
PolicyPolicyholder:
:
getPolicyBizId
,
policyBizId
).
last
(
" limit 1 "
));
.
eq
(
PolicyPolicyholder:
:
getPolicyBizId
,
policyBizId
).
last
(
" limit 1 "
));
}
}
@Override
public
List
<
PolicyPolicyholder
>
queryList
(
String
policyHolder
)
{
// 输入为空时直接返回空列表,避免无意义的全表查询
if
(
StringUtils
.
isBlank
(
policyHolder
))
{
return
Collections
.
emptyList
();
}
// 中文转简体
String
nameSc
=
ChineseTextConverter
.
traditionalToSimplified
(
policyHolder
);
// 英文转小写
String
nameEnLc
=
EnglishTextUtil
.
toLowerCase
(
policyHolder
);
return
this
.
baseMapper
.
selectList
(
new
LambdaQueryWrapper
<
PolicyPolicyholder
>()
.
and
(
wrapper
->
wrapper
.
like
(
StringUtils
.
isNotBlank
(
nameSc
),
PolicyPolicyholder:
:
getNameSc
,
nameSc
)
.
or
()
.
like
(
StringUtils
.
isNotBlank
(
nameEnLc
),
PolicyPolicyholder:
:
getNameEnLc
,
nameEnLc
)
)
);
}
}
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/utils/BusinessNoUtils.java
0 → 100644
View file @
135326c2
package
com
.
yd
.
csf
.
service
.
utils
;
import
java.util.concurrent.ThreadLocalRandom
;
/**
* 业务编号生成工具类
* <p>格式:出账年月 + 转介人内部编号后6位(无则补0) + 6位随机数字</p>
*/
public
class
BusinessNoUtils
{
/**
* 生成业务编号
*
* @param billingYearMonth 出账年月,如 "202604"
* @param referrerInnerNo 转介人内部编号,可为 null 或空字符串
* @return 完整的业务编号字符串
*/
public
static
String
generate
(
String
billingYearMonth
,
String
referrerInnerNo
)
{
String
referrerPart
=
formatReferrerInnerNo
(
referrerInnerNo
);
String
serialPart
=
generateRandomSerial
();
return
billingYearMonth
+
referrerPart
+
serialPart
;
}
// 格式化转介人内部编号:取后6位,不足左补0,无则全0
private
static
String
formatReferrerInnerNo
(
String
referrerInnerNo
)
{
if
(
referrerInnerNo
==
null
||
referrerInnerNo
.
trim
().
isEmpty
())
{
return
"000000"
;
}
String
no
=
referrerInnerNo
.
trim
();
if
(
no
.
length
()
>
6
)
{
return
no
.
substring
(
no
.
length
()
-
6
);
}
return
String
.
format
(
"%6s"
,
no
).
replace
(
' '
,
'0'
);
}
// 生成6位随机数字(000000~999999)
private
static
String
generateRandomSerial
()
{
int
random
=
ThreadLocalRandom
.
current
().
nextInt
(
1000000
);
return
String
.
format
(
"%06d"
,
random
);
}
}
\ No newline at end of file
yd-csf-service/src/main/java/com/yd/csf/service/vo/FortuneAccountVO.java
View file @
135326c2
package
com
.
yd
.
csf
.
service
.
vo
;
package
com
.
yd
.
csf
.
service
.
vo
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.yd.csf.service.model.FortuneAccount
;
import
com.yd.csf.service.model.FortuneAccount
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
io.swagger.v3.oas.annotations.media.Schema
;
...
@@ -26,6 +27,12 @@ public class FortuneAccountVO {
...
@@ -26,6 +27,12 @@ public class FortuneAccountVO {
private
String
fortuneAccountBizId
;
private
String
fortuneAccountBizId
;
/**
/**
* 出账业务编号(出账年月 + 转介人内部编号(后6位)(如无,用0补齐)+流水号(6位))
*/
@Schema
(
description
=
"出账业务编号"
)
private
String
businessNo
;
/**
* 转介人
* 转介人
*/
*/
@Schema
(
description
=
"转介人"
)
@Schema
(
description
=
"转介人"
)
...
...
yd-csf-service/src/main/java/com/yd/csf/service/vo/PolicyFollowVO.java
View file @
135326c2
...
@@ -94,12 +94,24 @@ public class PolicyFollowVO implements Serializable {
...
@@ -94,12 +94,24 @@ public class PolicyFollowVO implements Serializable {
private
String
policyHolder
;
private
String
policyHolder
;
/**
/**
* 保單持有人-英文
*/
@Schema
(
description
=
"投保人-英文"
)
private
String
policyHolderEn
;
/**
* 受保人
* 受保人
*/
*/
@Schema
(
description
=
"受保人"
)
@Schema
(
description
=
"受保人"
)
private
String
insured
;
private
String
insured
;
/**
/**
* 受保人-英文
*/
@Schema
(
description
=
"受保人-英文"
)
private
String
insuredEn
;
/**
* 受保人业务id
* 受保人业务id
*/
*/
@Schema
(
description
=
"受保人业务id"
)
@Schema
(
description
=
"受保人业务id"
)
...
...
yd-csf-service/src/main/java/com/yd/csf/service/vo/ReceivableReportVO.java
View file @
135326c2
...
@@ -145,4 +145,14 @@ public class ReceivableReportVO {
...
@@ -145,4 +145,14 @@ public class ReceivableReportVO {
*/
*/
@Schema
(
description
=
"备注"
)
@Schema
(
description
=
"备注"
)
private
String
remark
;
private
String
remark
;
/**
* 保單持有人(投保人,保单表)(中文名)
*/
private
String
policyHolder
;
/**
* 保單持有人(投保人,保单表)(英文名)
*/
private
String
policyHolderEn
;
}
}
yd-csf-service/src/main/resources/mappers/CommissionExpectedMapper.xml
View file @
135326c2
...
@@ -71,6 +71,8 @@
...
@@ -71,6 +71,8 @@
select
select
null as receivableNo,
null as receivableNo,
ce.policy_no as policyNo,
ce.policy_no as policyNo,
(select pp.name from policy_policyholder pp where pp.policy_biz_id = p.policy_biz_id limit 1) as policyHolder,
(select pp.name_en from policy_policyholder pp where pp.policy_biz_id = p.policy_biz_id limit 1) as policyHolderEn,
ce.remark,
ce.remark,
MAX(ce.reconciliation_company) as reconciliationCompany,
MAX(ce.reconciliation_company) as reconciliationCompany,
MAX(ce.reconciliation_company_biz_id) as reconciliationCompanyBizId,
MAX(ce.reconciliation_company_biz_id) as reconciliationCompanyBizId,
...
@@ -113,6 +115,8 @@
...
@@ -113,6 +115,8 @@
select
select
ce.receivable_no as receivableNo,
ce.receivable_no as receivableNo,
ce.policy_no as policyNo,
ce.policy_no as policyNo,
(select pp.name from policy_policyholder pp where pp.policy_biz_id = p.policy_biz_id limit 1) as policyHolder,
(select pp.name_en from policy_policyholder pp where pp.policy_biz_id = p.policy_biz_id limit 1) as policyHolderEn,
ce.remark,
ce.remark,
ce.reconciliation_company as reconciliationCompany,
ce.reconciliation_company as reconciliationCompany,
ce.reconciliation_company_biz_id as reconciliationCompanyBizId,
ce.reconciliation_company_biz_id as reconciliationCompanyBizId,
...
...
yd-csf-service/src/main/resources/mappers/PolicyFollowMapper.xml
View file @
135326c2
...
@@ -137,6 +137,9 @@
...
@@ -137,6 +137,9 @@
left join policy_policyholder pp
left join policy_policyholder pp
on pf.policy_biz_id = pp.policy_biz_id
on pf.policy_biz_id = pp.policy_biz_id
and pp.is_deleted = 0
and pp.is_deleted = 0
left join policy_insurant pi
on pf.policy_biz_id = pi.policy_biz_id
and pi.is_deleted = 0
left join (
left join (
select pb.policy_biz_id, pb.broker_name
select pb.policy_biz_id, pb.broker_name
from policy_broker pb
from policy_broker pb
...
@@ -150,9 +153,33 @@
...
@@ -150,9 +153,33 @@
on pf.policy_biz_id = first_broker.policy_biz_id
on pf.policy_biz_id = first_broker.policy_biz_id
<where>
<where>
pf.is_deleted = 0
pf.is_deleted = 0
<if
test=
"policyHolder != null and policyHolder != ''"
>
<!-- 投保人:简体中文或英文小写,满足其一即可 -->
and (pp.name like concat('%', #{policyHolder}, '%')
<if
test=
"(policyHolderSc != null and policyHolderSc != '') or (policyHolderEnLc != null and policyHolderEnLc != '')"
>
or pp.name_en like concat('%', #{policyHolder}, '%'))
and (
<if
test=
"policyHolderSc != null and policyHolderSc != ''"
>
pp.name_sc like concat('%', #{policyHolderSc}, '%')
</if>
<if
test=
"policyHolderSc != null and policyHolderSc != '' and policyHolderEnLc != null and policyHolderEnLc != ''"
>
or
</if>
<if
test=
"policyHolderEnLc != null and policyHolderEnLc != ''"
>
pp.name_en_lc like concat('%', #{policyHolderEnLc}, '%')
</if>
)
</if>
<!-- 受保人:简体中文或英文小写,满足其一即可 -->
<if
test=
"(insuredSc != null and insuredSc != '') or (insuredEnLc != null and insuredEnLc != '')"
>
and (
<if
test=
"insuredSc != null and insuredSc != ''"
>
pi.name_sc like concat('%', #{insuredSc}, '%')
</if>
<if
test=
"insuredSc != null and insuredSc != '' and insuredEnLc != null and insuredEnLc != ''"
>
or
</if>
<if
test=
"insuredEnLc != null and insuredEnLc != ''"
>
pi.name_en_lc like concat('%', #{insuredEnLc}, '%')
</if>
)
</if>
</if>
<if
test=
"signer != null and signer != ''"
>
<if
test=
"signer != null and signer != ''"
>
and pf.signer like concat('%', #{signer}, '%')
and pf.signer like concat('%', #{signer}, '%')
...
...
yd-csf-service/src/main/resources/mappers/PremiumReconciliationMapper.xml
View file @
135326c2
...
@@ -22,10 +22,10 @@
...
@@ -22,10 +22,10 @@
pr.recognized_currency,
pr.recognized_currency,
prm_total.payer,
prm_total.payer,
prm_total.paying_bank,
prm_total.paying_bank,
pp.name
as
policyHolder,
pp.name
AS
policyHolder,
pp.name_en
as
policyHolderEn,
pp.name_en
AS
policyHolderEn,
pi.name
as
insured,
pi.name
AS
insured,
pi.name_en
as
insuredEn,
pi.name_en
AS
insuredEn,
pb.broker_name AS brokerName,
pb.broker_name AS brokerName,
pr.create_time,
pr.create_time,
pr.update_time,
pr.update_time,
...
@@ -75,9 +75,6 @@
...
@@ -75,9 +75,6 @@
<if
test=
"request.appointmentNo != null and request.appointmentNo != ''"
>
<if
test=
"request.appointmentNo != null and request.appointmentNo != ''"
>
AND pf.appointment_no LIKE CONCAT('%', #{request.appointmentNo}, '%')
AND pf.appointment_no LIKE CONCAT('%', #{request.appointmentNo}, '%')
</if>
</if>
<if
test=
"request.policyHolder != null and request.policyHolder != ''"
>
AND p.policy_holder LIKE CONCAT('%', #{request.policyHolder}, '%')
</if>
<if
test=
"request.paymentMethod != null and request.paymentMethod != ''"
>
<if
test=
"request.paymentMethod != null and request.paymentMethod != ''"
>
AND prm_total.payment_method LIKE CONCAT('%', #{request.paymentMethod}, '%')
AND prm_total.payment_method LIKE CONCAT('%', #{request.paymentMethod}, '%')
</if>
</if>
...
@@ -90,19 +87,38 @@
...
@@ -90,19 +87,38 @@
<if
test=
"request.reconciliationType != null and request.reconciliationType != ''"
>
<if
test=
"request.reconciliationType != null and request.reconciliationType != ''"
>
AND pr.reconciliation_type = #{request.reconciliationType}
AND pr.reconciliation_type = #{request.reconciliationType}
</if>
</if>
<if
test=
"request.policyHolder != null and request.policyHolder != ''"
>
<!-- 投保人查询:支持中文繁/简体和英文大小写 -->
AND (pp.name LIKE CONCAT('%', #{request.policyHolder}, '%') OR pp.name_en LIKE CONCAT('%', #{request.policyHolder}, '%'))
<if
test=
"request.policyHolderNameSc != null and request.policyHolderNameSc != ''
or request.policyHolderNameEnLc != null and request.policyHolderNameEnLc != ''"
>
AND (
<if
test=
"request.policyHolderNameSc != null and request.policyHolderNameSc != ''"
>
pp.name LIKE CONCAT('%', #{request.policyHolderNameSc}, '%')
</if>
<if
test=
"request.policyHolderNameSc != null and request.policyHolderNameSc != ''
and request.policyHolderNameEnLc != null and request.policyHolderNameEnLc != ''"
>
OR
</if>
<if
test=
"request.policyHolderNameEnLc != null and request.policyHolderNameEnLc != ''"
>
pp.name_en LIKE CONCAT('%', #{request.policyHolderNameEnLc}, '%')
</if>
)
</if>
</if>
<if
test=
"request.insured != null and request.insured != ''"
>
<!-- 受保人查询:支持中文繁/简体和英文大小写 -->
AND (pi.name LIKE CONCAT('%', #{request.insured}, '%') OR pi.name_en LIKE CONCAT('%', #{request.insured}, '%'))
<if
test=
"request.insuredNameSc != null and request.insuredNameSc != ''
or request.insuredNameEnLc != null and request.insuredNameEnLc != ''"
>
AND (
<if
test=
"request.insuredNameSc != null and request.insuredNameSc != ''"
>
pi.name LIKE CONCAT('%', #{request.insuredNameSc}, '%')
</if>
<if
test=
"request.insuredNameSc != null and request.insuredNameSc != ''
and request.insuredNameEnLc != null and request.insuredNameEnLc != ''"
>
OR
</if>
<if
test=
"request.insuredNameEnLc != null and request.insuredNameEnLc != ''"
>
pi.name_en LIKE CONCAT('%', #{request.insuredNameEnLc}, '%')
</if>
)
</if>
</if>
<choose>
<when
test=
"request.paymentDate != null"
>
AND pp.premium_reconciliation_biz_id IS NOT NULL
</when>
<otherwise>
</otherwise>
</choose>
ORDER BY pr.create_time DESC
ORDER BY pr.create_time DESC
</select>
</select>
</mapper>
</mapper>
\ No newline at end of file
yd-csf-service/src/main/resources/mappers/SalarySplitMapper.xml
View file @
135326c2
...
@@ -29,7 +29,8 @@
...
@@ -29,7 +29,8 @@
fa.amount,
fa.amount,
fa.hkd_amount,
fa.hkd_amount,
fa.currency,
fa.currency,
DATE_FORMAT(fa.fortune_account_date, '%Y%m') as fortune_account_month
DATE_FORMAT(fa.fortune_account_date, '%Y%m') as fortune_account_month,
fa.business_no
from salary_split ss
from salary_split ss
inner join fortune_account fa
inner join fortune_account fa
on ss.fortune_account_biz_id = fa.fortune_account_biz_id
on ss.fortune_account_biz_id = fa.fortune_account_biz_id
...
@@ -105,7 +106,8 @@
...
@@ -105,7 +106,8 @@
fa.amount,
fa.amount,
fa.hkd_amount,
fa.hkd_amount,
fa.currency,
fa.currency,
DATE_FORMAT(fa.fortune_account_date, '%Y%m') as fortune_account_month
DATE_FORMAT(fa.fortune_account_date, '%Y%m') as fortune_account_month,
fa.business_no
from salary_split ss
from salary_split ss
inner join fortune_account fa
inner join fortune_account fa
on ss.fortune_account_biz_id = fa.fortune_account_biz_id
on ss.fortune_account_biz_id = fa.fortune_account_biz_id
...
...
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