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
4941ad5f
Commit
4941ad5f
authored
Mar 30, 2026
by
zhangxingmin
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/test' into test_zxm_salary_split
parents
798f9978
85895940
Show whitespace changes
Inline
Side-by-side
Showing
171 changed files
with
1807 additions
and
922 deletions
+1807
-922
yd-csf-api/Dockerfile
+1
-1
yd-csf-api/src/main/java/com/yd/csf/api/CsfApiApplication.java
+1
-3
yd-csf-api/src/main/java/com/yd/csf/api/async/ApiExpectedFortuneAsyncService.java
+43
-0
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionController.java
+14
-10
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionExpectedController.java
+27
-2
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCustomerController.java
+3
-2
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiFortuneController.java
+2
-5
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiPolicyFollowController.java
+49
-28
yd-csf-api/src/main/java/com/yd/csf/api/dto/GenerateExpectedFortuneDto.java
+15
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/ApiCommissionConditionService.java
+11
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/ApiPremiumReconciliationService.java
+0
-3
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAdditionalServiceImpl.java
+4
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAgentDetailFycServiceImpl.java
+2
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAgentReferralRelationServiceImpl.java
+2
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAppointmentFileServiceImpl.java
+11
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAppointmentLogServiceImpl.java
+2
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAppointmentReferrerLogServiceImpl.java
+2
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAppointmentServiceImpl.java
+10
-2
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAppointmentUserSignLogServiceImpl.java
+2
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiBeneficiaryServiceImpl.java
+5
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiCommissionConditionServiceImpl.java
+80
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiCommissionRuleConfigServiceImpl.java
+4
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiConditionConfigServiceImpl.java
+4
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiConditionTypeServiceImpl.java
+4
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiCsfCommonServiceImpl.java
+25
-2
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiExpectedFortuneServiceImpl.java
+144
-33
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiFormulaConfigServiceImpl.java
+4
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiInsurantServiceImpl.java
+8
-1
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiPolicyReceiptServiceImpl.java
+4
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiPolicyholderServiceImpl.java
+3
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiPremiumReconciliationServiceImpl.java
+26
-24
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiPremiumRemittanceFileServiceImpl.java
+7
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiPremiumRemittanceServiceImpl.java
+5
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiProductPlanServiceImpl.java
+3
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiRelObjectConditionServiceImpl.java
+2
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiRelObjectFormulaServiceImpl.java
+3
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiRelObjectSqlServiceImpl.java
+2
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiRuleItemConfigServiceImpl.java
+4
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiSecondHolderServiceImpl.java
+2
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiTaxationServiceImpl.java
+2
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiVariableServiceImpl.java
+4
-0
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/appointment/ApiAppointmentInfoDto.java
+5
-5
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/appointment/ApiBeneficiaryInfoDto.java
+1
-1
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/appointment/ApiInsurantInfoDto.java
+14
-14
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/appointment/ApiPolicyholderInfoDto.java
+3
-3
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/appointment/ApiProductPlanMainInfoDto.java
+1
-1
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/appointment/ApiSecondHolderInfoDto.java
+1
-1
yd-csf-feign/src/main/java/com/yd/csf/feign/request/appointment/ApiAppointmentEditConfirmTimeRequest.java
+1
-1
yd-csf-feign/src/main/java/com/yd/csf/feign/request/appointment/ApiAppointmentPageRequest.java
+2
-2
yd-csf-feign/src/main/java/com/yd/csf/feign/request/commissionruleconfig/ApiCommissionRuleConfigAddRequest.java
+2
-2
yd-csf-feign/src/main/java/com/yd/csf/feign/request/commissionruleconfig/ApiCommissionRuleConfigEditRequest.java
+2
-2
yd-csf-feign/src/main/java/com/yd/csf/feign/request/policyreceipt/ApiPolicyReceiptAddRequest.java
+1
-1
yd-csf-feign/src/main/java/com/yd/csf/feign/request/policyreceipt/ApiPolicyReceiptEditRequest.java
+1
-1
yd-csf-feign/src/main/java/com/yd/csf/feign/request/premiumreconciliation/ApiPremiumReconciliationResultEditRequest.java
+4
-4
yd-csf-service/src/main/java/com/yd/csf/service/component/CommissionAsyncService.java
+2
-1
yd-csf-service/src/main/java/com/yd/csf/service/config/AsyncConfig.java
+44
-9
yd-csf-service/src/main/java/com/yd/csf/service/config/CsfMybatisPlusConfig.java
+35
-5
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionExpectedQueryRequest.java
+3
-5
yd-csf-service/src/main/java/com/yd/csf/service/dto/CustomerAddRequest.java
+7
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/CustomerUpdateRequest.java
+2
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/FortuneAccountExportDTO.java
+4
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/PolicyFollowDto.java
+4
-1
yd-csf-service/src/main/java/com/yd/csf/service/dto/PolicyFollowQueryRequest.java
+3
-3
yd-csf-service/src/main/java/com/yd/csf/service/dto/QueryPolicyAndBrokerDto.java
+5
-0
yd-csf-service/src/main/java/com/yd/csf/service/enums/CommissionStatusEnum.java
+9
-0
yd-csf-service/src/main/java/com/yd/csf/service/enums/CurrencyEnum.java
+11
-2
yd-csf-service/src/main/java/com/yd/csf/service/helper/SpeciesConditionMatcher.java
+133
-0
yd-csf-service/src/main/java/com/yd/csf/service/model/Additional.java
+3
-6
yd-csf-service/src/main/java/com/yd/csf/service/model/AgentAccumulatedFyc.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/AgentDetailFyc.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/AgentManageRelation.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/AgentReferralRelation.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/AgentTutoringRelation.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/Appointment.java
+4
-7
yd-csf-service/src/main/java/com/yd/csf/service/model/AppointmentFile.java
+7
-9
yd-csf-service/src/main/java/com/yd/csf/service/model/AppointmentLog.java
+7
-9
yd-csf-service/src/main/java/com/yd/csf/service/model/AppointmentReferrer.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/AppointmentReferrerLog.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/AppointmentUserSign.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/AppointmentUserSignLog.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/BatchPolicy.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/Beneficiary.java
+3
-6
yd-csf-service/src/main/java/com/yd/csf/service/model/CarApply.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/ClientRole.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/Commission.java
+1
-3
yd-csf-service/src/main/java/com/yd/csf/service/model/CommissionCompareRecord.java
+4
-4
yd-csf-service/src/main/java/com/yd/csf/service/model/CommissionEditRecord.java
+3
-3
yd-csf-service/src/main/java/com/yd/csf/service/model/CommissionExpected.java
+1
-2
yd-csf-service/src/main/java/com/yd/csf/service/model/CommissionResult.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/CommissionRuleBinding.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/CommissionRuleConfig.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/CommissionSqlTemplate.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/ConditionConfig.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/ConditionType.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/Customer.java
+2
-1
yd-csf-service/src/main/java/com/yd/csf/service/model/CustomerExpand.java
+1
-2
yd-csf-service/src/main/java/com/yd/csf/service/model/ExpectedFortune.java
+5
-9
yd-csf-service/src/main/java/com/yd/csf/service/model/ExpectedFortuneLog.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/Fna.java
+2
-1
yd-csf-service/src/main/java/com/yd/csf/service/model/FnaCustomer.java
+1
-2
yd-csf-service/src/main/java/com/yd/csf/service/model/FnaForm.java
+2
-5
yd-csf-service/src/main/java/com/yd/csf/service/model/FormulaConfig.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/Fortune.java
+1
-2
yd-csf-service/src/main/java/com/yd/csf/service/model/FortuneAccount.java
+11
-2
yd-csf-service/src/main/java/com/yd/csf/service/model/FortuneAccountEditRecord.java
+3
-3
yd-csf-service/src/main/java/com/yd/csf/service/model/FycTask.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/Insurant.java
+3
-6
yd-csf-service/src/main/java/com/yd/csf/service/model/Interests.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/Invitation.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/Member.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/MemberGradeConfig.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/PayoutBatch.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/Policy.java
+1
-7
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyAdditional.java
+2
-1
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyAgentRelation.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyAppointmentFile.java
+2
-1
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyBeneficiary.java
+2
-1
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyBroker.java
+3
-2
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyFollow.java
+6
-6
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyFollowFile.java
+2
-1
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyFollowRecord.java
+2
-1
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyInsurant.java
+2
-1
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyPolicyholder.java
+2
-1
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyReceipt.java
+6
-9
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicySecondHolder.java
+2
-1
yd-csf-service/src/main/java/com/yd/csf/service/model/Policyholder.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/PremiumReconciliation.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/PremiumRemittance.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/PremiumRemittanceFile.java
+7
-9
yd-csf-service/src/main/java/com/yd/csf/service/model/ProductPlan.java
+3
-6
yd-csf-service/src/main/java/com/yd/csf/service/model/ReconciliationCompany.java
+2
-1
yd-csf-service/src/main/java/com/yd/csf/service/model/RelAgentCustomer.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/RelCustomerInterests.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/RelGradeService.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/RelMemberRole.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/RelObjectCondition.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/RelObjectFormula.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/RelObjectSql.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/RelServiceInterests.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/RelTeamMember.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/RelTenantProjectAppointment.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/RuleConditionConfig.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/RuleItemConfig.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/SecondHolder.java
+3
-6
yd-csf-service/src/main/java/com/yd/csf/service/model/ServiceConfig.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/SpeciesCondition.java
+53
-0
yd-csf-service/src/main/java/com/yd/csf/service/model/Taxation.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/Team.java
+3
-6
yd-csf-service/src/main/java/com/yd/csf/service/model/Variable.java
+6
-8
yd-csf-service/src/main/java/com/yd/csf/service/service/CommissionExpectedService.java
+4
-1
yd-csf-service/src/main/java/com/yd/csf/service/service/CustomerService.java
+2
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyPolicyholderService.java
+1
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionExpectedServiceImpl.java
+255
-98
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
+20
-12
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CustomerServiceImpl.java
+19
-4
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/ExpectedFortuneServiceImpl.java
+3
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneAccountServiceImpl.java
+15
-3
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneServiceImpl.java
+57
-56
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyFollowServiceImpl.java
+56
-33
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyPolicyholderServiceImpl.java
+7
-0
yd-csf-service/src/main/java/com/yd/csf/service/vo/CommissionExpectedStatisticsVO.java
+10
-0
yd-csf-service/src/main/java/com/yd/csf/service/vo/CommissionVO.java
+13
-4
yd-csf-service/src/main/java/com/yd/csf/service/vo/CustomerVO.java
+19
-6
yd-csf-service/src/main/java/com/yd/csf/service/vo/FortuneVO.java
+14
-9
yd-csf-service/src/main/java/com/yd/csf/service/vo/PolicyFollowDetailVO.java
+7
-1
yd-csf-service/src/main/java/com/yd/csf/service/vo/PolicyFollowVO.java
+6
-0
yd-csf-service/src/main/resources/mappers/CommissionExpectedMapper.xml
+4
-3
yd-csf-service/src/main/resources/mappers/CommissionMapper.xml
+1
-1
yd-csf-service/src/main/resources/mappers/ExpectedFortuneMapper.xml
+2
-6
yd-csf-service/src/main/resources/mappers/FortuneAccountMapper.xml
+5
-1
yd-csf-service/src/main/resources/mappers/PolicyFollowMapper.xml
+4
-2
No files found.
yd-csf-api/Dockerfile
View file @
4941ad5f
...
...
@@ -7,6 +7,6 @@ RUN mkdir -p /home/app
# 拷贝项目jar - 使用可执行的 fat JAR
COPY
target/yd-csf-api-1.0-SNAPSHOT-exec.jar /home/app/yd-csf-api.jar
# 执行命令启动jar,并设置JVM内存参数
ENTRYPOINT
["java", "-Xmx256m", "-Xms128m", "-jar", "/home/app/yd-csf-api.jar"]
ENTRYPOINT
["java", "-
Duser.timezone=Asia/Shanghai", "-
Xmx256m", "-Xms128m", "-jar", "/home/app/yd-csf-api.jar"]
# 暴露端口
EXPOSE
9202
yd-csf-api/src/main/java/com/yd/csf/api/CsfApiApplication.java
View file @
4941ad5f
...
...
@@ -12,9 +12,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication
(
scanBasePackages
=
"com.yd"
)
@MapperScan
(
"com.yd.**.dao"
)
@EnableFeignClients
(
basePackages
=
"com.yd"
)
@ComponentScan
(
basePackages
=
{
"com.yd.auth.core"
// 包含认证模块的包路径
})
@ComponentScan
(
basePackages
=
{
"com.yd.auth.core"
,
"com.yd.csf.service.config"
})
public
class
CsfApiApplication
{
public
static
void
main
(
String
[]
args
)
{
...
...
yd-csf-api/src/main/java/com/yd/csf/api/async/ApiExpectedFortuneAsyncService.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
api
.
async
;
import
com.yd.common.result.Result
;
import
com.yd.csf.api.service.ApiExpectedFortuneService
;
import
com.yd.csf.feign.request.expectedfortune.ApiGenerateExpectedFortuneRequest
;
import
com.yd.csf.feign.response.expectedfortune.ApiGenerateExpectedFortuneResponse
;
import
com.yd.feign.config.FeignTokenInterceptor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.context.request.RequestContextHolder
;
import
org.springframework.web.context.request.ServletRequestAttributes
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
@Slf4j
@Component
public
class
ApiExpectedFortuneAsyncService
{
@Resource
private
ApiExpectedFortuneService
apiExpectedFortuneService
;
/**
* 异步处理
*
* @return
*/
@Async
(
"commonAsyncExecutor"
)
public
Result
execute
(
String
policyNo
,
String
token
)
{
// 将 token 设置到 ThreadLocal 中,供 Feign 拦截器使用
FeignTokenInterceptor
.
setThreadLocalToken
(
token
);
HttpServletRequest
request1
=
((
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
()).
getRequest
();
String
token1
=
request1
.
getHeader
(
"Authorization"
);
log
.
info
(
"异步处理 token==============,{}"
,
token1
);
try
{
ApiGenerateExpectedFortuneRequest
request
=
new
ApiGenerateExpectedFortuneRequest
();
request
.
setPolicyNo
(
policyNo
);
log
.
info
(
"生成预计发佣 generateSyncWithLogAndRedis ——> PolicyNo:{}"
,
policyNo
);
Result
<
ApiGenerateExpectedFortuneResponse
>
result
=
apiExpectedFortuneService
.
generateSyncWithLogAndRedis
(
request
);
if
(
result
!=
null
&&
result
.
getCode
()
==
200
)
{
log
.
info
(
"新单跟进-同步生成预计出账记录成功: 保单号={}"
,
policyNo
);
}
return
result
;
}
finally
{
// 必须清理,防止内存泄漏
FeignTokenInterceptor
.
clearThreadLocalToken
();
}
}
}
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionController.java
View file @
4941ad5f
...
...
@@ -30,6 +30,8 @@ import org.redisson.api.RedissonClient;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.support.TransactionSynchronization
;
import
org.springframework.transaction.support.TransactionSynchronizationManager
;
import
org.springframework.transaction.support.TransactionTemplate
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
...
...
@@ -151,26 +153,28 @@ public class ApiCommissionController {
// 数据处理
List
<
Commission
>
entities
=
processData
(
dataList
,
loginUserId
,
reconciliationYearMonth
);
transactionTemplate
.
execute
(
status
->
{
// 保存来佣数据
// 1. 先保存主数据
commissionService
.
saveBatch
(
entities
);
return
null
;
});
// // 转换为 VO
// List<CommissionVO> commissionVOList = commissionService.getCommissionList(entities);
// 开启新事务,比对数据
transactionTemplate
.
execute
(
status
->
{
// 2. 事务提交后执行比对
TransactionSynchronizationManager
.
registerSynchronization
(
new
TransactionSynchronization
()
{
@Override
public
void
afterCommit
()
{
try
{
// 这里会开启新事务执行更新
commissionAsyncService
.
commissionCompareBatch
(
entities
);
}
catch
(
Exception
e
)
{
// 比对失败不影响主事务,记录日志即可
e
.
printStackTrace
();
log
.
error
(
"批量导入, 比对操作执行失败, error: {}"
,
e
.
getMessage
());
// 可以发送告警或记录失败任务
}
}
}
return
null
;
});
);
return
Result
.
success
(
true
);
}
...
...
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionExpectedController.java
View file @
4941ad5f
...
...
@@ -34,6 +34,7 @@ import org.springframework.web.bind.annotation.*;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.io.UnsupportedEncodingException
;
import
java.net.URLEncoder
;
import
java.util.ArrayList
;
...
...
@@ -247,13 +248,20 @@ public class ApiCommissionExpectedController {
if
(
policy
==
null
)
{
return
Result
.
fail
(
ErrorCode
.
PARAMS_ERROR
.
getCode
(),
"保单不存在"
);
}
PolicyFollow
policyFollow
=
policyFollowService
.
lambdaQuery
().
eq
(
PolicyFollow:
:
getPolicyNo
,
request
.
getPolicyNo
()).
one
();
if
(
policyFollow
==
null
)
{
return
Result
.
fail
(
ErrorCode
.
PARAMS_ERROR
.
getCode
(),
"新单跟进不存在"
);
}
commissionExpectedService
.
getExpectedCommissionByProductlaunchId
(
policy
,
request
.
getProductLaunchBizId
(),
request
.
getInsuranceCompanyBizId
(),
request
.
getReconciliationCompany
(),
request
.
getReconciliationCompanyCode
(),
request
.
getReconciliationCompanyBizId
());
request
.
getReconciliationCompanyBizId
(),
policyFollow
.
getProfessionalInvestor
());
return
Result
.
success
(
true
);
}
...
...
@@ -283,7 +291,7 @@ public class ApiCommissionExpectedController {
if
(!
CollectionUtils
.
isEmpty
(
allExpectedIdList
))
{
receivableReportPage
=
commissionExpectedService
.
receivableReportPage
(
reportPage
,
allExpectedIdList
);
}
enrichReceivableReportWithCompanyName
(
receivableReportPage
);
//
enrichReceivableReportWithCompanyName(receivableReportPage);
receivableReportPage
=
convertProductName
(
receivableReportPage
);
// 组装返回结果
ReceivableReportResponse
response
=
new
ReceivableReportResponse
();
...
...
@@ -389,4 +397,21 @@ public class ApiCommissionExpectedController {
}
return
Collections
.
emptyList
();
}
@GetMapping
(
"/test_expected_commission"
)
@Operation
(
summary
=
"测试佣金匹配"
)
public
Result
<
Boolean
>
testExpectedCommission
(
@RequestParam
(
"policyNo"
)
String
policyNo
,
@RequestParam
(
"effectiveDate"
)
String
effectiveDate
,
@RequestParam
(
"coolingOffEndDate"
)
String
coolingOffEndDate
)
{
if
(
StringUtils
.
isBlank
(
policyNo
))
{
return
Result
.
fail
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"policyNo不能为空"
);
}
try
{
commissionExpectedService
.
testExpectedCommission
(
policyNo
,
effectiveDate
,
coolingOffEndDate
);
}
catch
(
IOException
e
)
{
return
Result
.
fail
(
ResultCode
.
FAIL
.
getCode
(),
"读取文件失败"
);
}
return
Result
.
success
(
true
);
}
}
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCustomerController.java
View file @
4941ad5f
...
...
@@ -23,6 +23,7 @@ import io.swagger.v3.oas.annotations.Operation;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
...
...
@@ -58,7 +59,7 @@ public class ApiCustomerController {
*/
@Operation
(
summary
=
"创建客户"
)
@PostMapping
(
"/add"
)
public
Result
<
Map
<
String
,
Object
>>
addCustomer
(
@RequestBody
CustomerAddRequest
customerAddRequest
,
HttpServletRequest
request
)
{
public
Result
<
Map
<
String
,
Object
>>
addCustomer
(
@
Validated
@
RequestBody
CustomerAddRequest
customerAddRequest
,
HttpServletRequest
request
)
{
if
(
customerAddRequest
==
null
)
{
return
Result
.
fail
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
ResultCode
.
PARAMS_ERROR
.
getMessage
());
}
...
...
@@ -134,7 +135,7 @@ public class ApiCustomerController {
*/
@PostMapping
(
"/update"
)
@Operation
(
summary
=
"更新客户信息"
)
public
Result
<
Boolean
>
updateCustomer
(
@RequestBody
CustomerUpdateRequest
customerUpdateRequest
)
{
public
Result
<
Boolean
>
updateCustomer
(
@
Validated
@
RequestBody
CustomerUpdateRequest
customerUpdateRequest
)
{
String
customerBizId
=
customerUpdateRequest
.
getCustomerBizId
();
if
(
ObjectUtils
.
isEmpty
(
customerBizId
))
{
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"customerBizId不能为空"
);
...
...
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiFortuneController.java
View file @
4941ad5f
...
...
@@ -37,10 +37,7 @@ import javax.annotation.Resource;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -529,7 +526,7 @@ public class ApiFortuneController {
// 查询列表数据
QueryWrapper
<
Fortune
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
eq
(
"expected_fortune_biz_id"
,
fortuneQueryRequest
.
getExpectedFortuneBizId
());
queryWrapper
.
eq
(
"status"
,
FortuneStatusEnum
.
SENT
.
getItemValue
(
));
queryWrapper
.
in
(
"status"
,
Arrays
.
asList
(
FortuneStatusEnum
.
CHECKED
.
getItemValue
(),
FortuneStatusEnum
.
SENT
.
getItemValue
()
));
Page
<
Fortune
>
fortunePage
=
fortuneService
.
page
(
new
Page
<>(
current
,
size
),
queryWrapper
);
// 组装返回值
...
...
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiPolicyFollowController.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
api
.
controller
;
import
cn.hutool.core.date.DateField
;
import
cn.hutool.core.date.DatePattern
;
import
cn.hutool.core.date.DateUtil
;
import
com.alibaba.excel.EasyExcel
;
import
com.alibaba.excel.ExcelReader
;
...
...
@@ -17,10 +18,12 @@ import com.yd.common.enums.ResultCode;
import
com.yd.common.exception.BusinessException
;
import
com.yd.common.result.Result
;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.csf.api.async.ApiExpectedFortuneAsyncService
;
import
com.yd.csf.api.dto.CommissionExcelDTO
;
import
com.yd.csf.api.dto.PolicyExcelDTO
;
import
com.yd.csf.api.dto.PolicyFollowDTO
;
import
com.yd.csf.api.listener.PolicyDataListener
;
import
com.yd.csf.api.service.ApiCommissionConditionService
;
import
com.yd.csf.api.service.ApiExpectedFortuneService
;
import
com.yd.csf.api.service.ApiPolicyFollowService
;
import
com.yd.csf.feign.request.expectedfortune.ApiGenerateExpectedFortuneRequest
;
...
...
@@ -50,6 +53,7 @@ import org.apache.commons.lang3.StringUtils;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
...
...
@@ -92,14 +96,19 @@ public class ApiPolicyFollowController {
private
ApiInsuranceReconciliationCompanyFeignClient
apiInsuranceReconciliationCompanyFeignClient
;
@Resource
private
CommissionExpectedService
commissionExpectedService
;
@Resource
private
ApiPolicyFollowService
apiPolicyFollowService
;
@Resource
private
ApiExpectedFortuneService
apiExpectedFortuneService
;
//
@Resource
//
private ApiPolicyFollowService apiPolicyFollowService;
//
@Resource
//
private ApiExpectedFortuneService apiExpectedFortuneService;
@Resource
private
ApiAnnouncementCommissionRatioFeignClient
apiAnnouncementCommissionRatioFeignClient
;
@Resource
private
FeignResultHelper
feignResultHelper
;
@Resource
private
ApiExpectedFortuneAsyncService
apiExpectedFortuneAsyncService
;
@Autowired
private
ApiCommissionConditionService
apiCommissionConditionService
;
@PostMapping
(
"/upload/excel"
)
...
...
@@ -544,24 +553,26 @@ public class ApiPolicyFollowController {
if
(!
hasCommissionInfo
)
{
return
Result
.
fail
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"产品未维护发佣信息"
);
}
//查询产品发佣配置,获取结算币种
ApiAnnouncementCommissionRatioListRequest
announcementRatioListRequest
=
new
ApiAnnouncementCommissionRatioListRequest
();
announcementRatioListRequest
.
setProductLaunchBizId
(
productLaunchBizId
);
announcementRatioListRequest
.
setEffectiveDate
(
changePolicyFollowStatusRequest
.
getEffectiveDate
());
announcementRatioListRequest
.
setPaymentTerm
(
String
.
valueOf
(
policyFollow
.
getIssueNumber
()));
try
{
feignResultHelper
.
extractListData
(
apiAnnouncementCommissionRatioFeignClient
.
list
(
announcementRatioListRequest
),
ApiAnnouncementCommissionRatioListResponse
.
class
);
apiCommissionConditionService
.
getCommissionRatioList
(
policyFollow
.
getPolicyNo
(),
changePolicyFollowStatusRequest
.
getEffectiveDate
());
// feignResultHelper.extractListData(
// apiAnnouncementCommissionRatioFeignClient.list(announcementRatioListRequest),
// ApiAnnouncementCommissionRatioListResponse.class
// );
}
catch
(
BusinessException
e
)
{
log
.
info
(
"===== 进入BusinessException catch块 ====="
);
log
.
info
(
"查询结算币种->保单号:{},入参request:{}"
,
policyFollow
.
getPolicyNo
(),
JSON
.
toJSONString
(
announcementRatioListRequest
));
return
Result
.
fail
(
"
查询产品发佣配置,获取结算币种失败,"
+
e
.
getMessage
(
));
return
Result
.
fail
(
"
未查询到产品发佣配置,查询条件:"
+
transferMsg
(
announcementRatioListRequest
,
policyFollow
));
}
catch
(
Exception
e
)
{
log
.
info
(
"===== 进入Exception catch块 ====="
);
log
.
info
(
"查询结算币种->保单号:{},入参request:{}"
,
policyFollow
.
getPolicyNo
(),
JSON
.
toJSONString
(
announcementRatioListRequest
));
return
Result
.
fail
(
"
查询产品发佣配置,获取结算币种失败,"
+
e
.
getMessage
(
));
return
Result
.
fail
(
"
未查询到产品发佣配置,查询条件:"
+
transferMsg
(
announcementRatioListRequest
,
policyFollow
));
}
}
...
...
@@ -572,29 +583,39 @@ public class ApiPolicyFollowController {
if
(
PolicyFollowStatusEnum
.
EFFECTIVE
.
equals
(
currentStatusEnum
))
{
// 获取Token
String
token
=
request
.
getHeader
(
"Authorization"
);
log
.
info
(
"修改跟进状态获取token:{}"
,
token
);
log
.
info
(
"修改跟进状态获取token=======================>:{}"
,
token
);
log
.
info
(
"修改跟进状态调用异步开始:{}"
,
"=======================>"
);
// 同步:根据保单生成预计出账记录
execute
(
token
,
policyFollow
.
getPolicyNo
());
// execute(token, policyFollow.getPolicyNo());
apiExpectedFortuneAsyncService
.
execute
(
policyFollow
.
getPolicyNo
(),
token
);
}
log
.
info
(
"修改跟进状态直接结束:{}"
,
"=======================>"
);
return
Result
.
success
(
true
);
}
/**
* 异步处理
*
* @return
*/
public
Result
execute
(
String
token
,
String
policyNo
)
{
// 调用 ApiExpectedFortuneService 的 generateSyncWithLogAndRedis(同步版本,包含日志和Redis处理)
ApiGenerateExpectedFortuneRequest
generateExpectedFortuneRequest
=
new
ApiGenerateExpectedFortuneRequest
();
generateExpectedFortuneRequest
.
setPolicyNo
(
policyNo
);
log
.
info
(
"生成预计发佣generateSyncWithLogAndRedis——>PolicyNo:{}"
,
policyNo
);
Result
<
ApiGenerateExpectedFortuneResponse
>
result
=
apiExpectedFortuneService
.
generateSyncWithLogAndRedis
(
generateExpectedFortuneRequest
);
if
(
result
!=
null
&&
result
.
getCode
()
==
200
)
{
log
.
info
(
"新单跟进-同步生成预计出账记录成功:保单号={}"
,
policyNo
);
}
return
Result
.
success
();
}
private
String
transferMsg
(
ApiAnnouncementCommissionRatioListRequest
announcementRatioListRequest
,
PolicyFollow
policyFollow
)
{
return
String
.
format
(
"保单生效日: %s, 供款年期: %s, 产品名称: %s, "
,
DateUtil
.
format
(
announcementRatioListRequest
.
getEffectiveDate
(),
DatePattern
.
NORM_DATE_PATTERN
),
policyFollow
.
getIssueNumber
(),
policyFollow
.
getProductName
());
}
// /**
// * 异步处理
// *
// * @return
// */
// public Result execute(String token, String policyNo) {
// // 调用 ApiExpectedFortuneService 的 generateSyncWithLogAndRedis(同步版本,包含日志和Redis处理)
// ApiGenerateExpectedFortuneRequest generateExpectedFortuneRequest = new ApiGenerateExpectedFortuneRequest();
// generateExpectedFortuneRequest.setPolicyNo(policyNo);
// log.info("生成预计发佣generateSyncWithLogAndRedis——>PolicyNo:{}", policyNo);
// Result<ApiGenerateExpectedFortuneResponse> result = apiExpectedFortuneService.generateSyncWithLogAndRedis(generateExpectedFortuneRequest);
// if (result != null && result.getCode() == 200) {
// log.info("新单跟进-同步生成预计出账记录成功:保单号={}", policyNo);
// }
// return Result.success();
// }
/**
* 新单跟进状态列表查询
...
...
yd-csf-api/src/main/java/com/yd/csf/api/dto/GenerateExpectedFortuneDto.java
View file @
4941ad5f
...
...
@@ -16,6 +16,11 @@ import java.util.List;
public
class
GenerateExpectedFortuneDto
{
/**
* 来源 1-销售佣金 2-非销售佣金
*/
private
Integer
source
;
/**
* 保单发佣批次ID
*/
private
String
batchBizId
;
...
...
@@ -31,6 +36,16 @@ public class GenerateExpectedFortuneDto {
private
String
policyNo
;
/**
* 产品业务id
*/
private
String
productLaunchBizId
;
/**
* 保险公司业务id
*/
private
String
insuranceCompanyBizId
;
/**
* 发佣期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)
*/
private
Integer
fortunePeriod
;
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/ApiCommissionConditionService.java
0 → 100644
View file @
4941ad5f
package
com
.
yd
.
csf
.
api
.
service
;
import
com.yd.common.result.Result
;
import
com.yd.product.feign.response.announcementcommissionratio.ApiAnnouncementCommissionRatioListResponse
;
import
java.util.Date
;
import
java.util.List
;
public
interface
ApiCommissionConditionService
{
Result
<
List
<
ApiAnnouncementCommissionRatioListResponse
>>
getCommissionRatioList
(
String
policyNo
,
Date
effectiveDate
);
}
yd-csf-api/src/main/java/com/yd/csf/api/service/ApiPremiumReconciliationService.java
View file @
4941ad5f
...
...
@@ -31,9 +31,6 @@ public interface ApiPremiumReconciliationService {
Result
editResult
(
ApiPremiumReconciliationResultEditRequest
request
);
@Async
(
"commonAsyncExecutor"
)
void
execute
(
ChangePolicyFollowStatusRequest
changePolicyFollowStatusRequest
,
String
token
);
Result
<
Boolean
>
checkReconciliationComplete
(
String
policyNo
);
Result
<
PremiumReconciliation
>
checkPremiumReconciliationIsExist
(
String
expectedCommissionRatioBizId
);
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAdditionalServiceImpl.java
View file @
4941ad5f
...
...
@@ -81,6 +81,7 @@ public class ApiAdditionalServiceImpl implements ApiAdditionalService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
add
(
ApiProductPlanAdditionalInfoDto
apiProductPlanAdditionalInfoDto
)
{
List
<
ApiProductPlanAdditionalInfoDto
>
list
=
new
ArrayList
<>();
list
.
add
(
apiProductPlanAdditionalInfoDto
);
...
...
@@ -100,6 +101,7 @@ public class ApiAdditionalServiceImpl implements ApiAdditionalService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
edit
(
ApiProductPlanAdditionalInfoDto
apiProductPlanAdditionalInfoDto
)
{
//编辑预约入参字段校验 - 产品计划信息字段校验 - 编辑产品附加险信息单个对象字段校验
apiAppointmentCheckService
.
checkEditApiProductPlanAdditionalInfoDto
(
apiProductPlanAdditionalInfoDto
);
...
...
@@ -134,6 +136,7 @@ public class ApiAdditionalServiceImpl implements ApiAdditionalService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
del
(
String
additionalBizId
)
{
//校验附加险信息是否存在
Result
<
Additional
>
result
=
checkAdditionalIsExist
(
additionalBizId
);
...
...
@@ -183,6 +186,7 @@ public class ApiAdditionalServiceImpl implements ApiAdditionalService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
batchEditAdditionalData
(
ApiProductPlanInfoDto
productPlanInfoDto
,
String
planBizId
)
{
if
(
Objects
.
isNull
(
productPlanInfoDto
)
||
(
!
Objects
.
isNull
(
productPlanInfoDto
)
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAgentDetailFycServiceImpl.java
View file @
4941ad5f
...
...
@@ -13,6 +13,7 @@ import lombok.extern.slf4j.Slf4j;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
...
...
@@ -35,6 +36,7 @@ public class ApiAgentDetailFycServiceImpl implements ApiAgentDetailFycService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
saveAgentDetailFyc
(
GenerateAgentDetailFycDto
dto
)
{
List
<
AlgorithmResDto
>
algorithmResDtoList
=
dto
.
getAlgorithmResDtoList
();
List
<
AgentDetailFyc
>
agentDetailFycList
=
new
ArrayList
<>();
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAgentReferralRelationServiceImpl.java
View file @
4941ad5f
...
...
@@ -9,6 +9,7 @@ import com.yd.csf.service.model.AgentReferralRelation;
import
com.yd.csf.service.service.IAgentReferralRelationService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
import
java.util.stream.Collectors
;
...
...
@@ -25,6 +26,7 @@ public class ApiAgentReferralRelationServiceImpl implements ApiAgentReferralRela
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
save
(
ApiAgentReferralRelationSaveRequest
request
)
{
//先删后新增
iAgentReferralRelationService
.
del
(
request
.
getAgentIdList
(),
request
.
getReferrerId
());
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAppointmentFileServiceImpl.java
View file @
4941ad5f
...
...
@@ -8,6 +8,7 @@ import com.yd.auth.core.utils.SecurityUtil;
import
com.yd.common.constant.RedisConstants
;
import
com.yd.common.enums.CommonEnum
;
import
com.yd.common.enums.DictTypeEnum
;
import
com.yd.common.enums.ProjectEnum
;
import
com.yd.common.exception.BusinessException
;
import
com.yd.common.result.Result
;
import
com.yd.common.utils.*
;
...
...
@@ -46,6 +47,7 @@ import org.apache.commons.lang3.StringUtils;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.util.*
;
...
...
@@ -137,6 +139,7 @@ public class ApiAppointmentFileServiceImpl implements ApiAppointmentFileService
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
add
(
ApiAppointmentFileAddRequest
request
)
{
//获取Security上下文当前用户的登录信息
AuthUserDto
authUserDto
=
SecurityUtil
.
getCurrentLoginUser
();
...
...
@@ -154,6 +157,7 @@ public class ApiAppointmentFileServiceImpl implements ApiAppointmentFileService
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
edit
(
ApiAppointmentFileEditRequest
request
)
{
Result
<
AppointmentFile
>
result
=
checkAppointmentFileIsExist
(
request
.
getAppointmentFileBizId
());
AppointmentFile
appointmentFile
=
result
.
getData
();
...
...
@@ -168,6 +172,7 @@ public class ApiAppointmentFileServiceImpl implements ApiAppointmentFileService
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
del
(
String
appointmentFileBizId
)
{
Result
<
AppointmentFile
>
result
=
checkAppointmentFileIsExist
(
appointmentFileBizId
);
AppointmentFile
appointmentFile
=
result
.
getData
();
...
...
@@ -181,6 +186,7 @@ public class ApiAppointmentFileServiceImpl implements ApiAppointmentFileService
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
download
(
String
appointmentFileBizId
)
{
return
null
;
}
...
...
@@ -191,6 +197,7 @@ public class ApiAppointmentFileServiceImpl implements ApiAppointmentFileService
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
<
String
>
itineraryPdf
(
String
appointmentBizId
)
{
String
url
=
""
;
//查询redis缓存的字典列表信息
...
...
@@ -206,6 +213,7 @@ public class ApiAppointmentFileServiceImpl implements ApiAppointmentFileService
request
.
setDataObject
(
itineraryDto
);
request
.
setObjectId
(
appointmentBizId
);
request
.
setTemplateType
(
TemplateTypeEnum
.
XCD
.
getItemValue
());
request
.
setProjectBizId
(
ProjectEnum
.
CSF_PC
.
getProjectBizId
());
if
(
StringUtils
.
isNotBlank
(
itineraryDto
.
getName
())
&&
StringUtils
.
isNotBlank
(
itineraryDto
.
getArrivalTime
()))
{
//咨询人和集合日(签单日)都不为空,文件名 = 咨询人 + 集合日(20260103)
...
...
@@ -236,6 +244,7 @@ public class ApiAppointmentFileServiceImpl implements ApiAppointmentFileService
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
<
ApiAppointmentExportExcelResponse
>
appointmentExportExcel
(
String
appointmentBizId
)
{
Map
<
String
,
Object
>
data
=
new
HashMap
<>();
try
{
...
...
@@ -342,6 +351,7 @@ public class ApiAppointmentFileServiceImpl implements ApiAppointmentFileService
excelRequest
.
setAppointmentBizId
(
appointmentBizId
);
excelRequest
.
setData
(
data
);
excelRequest
.
setTemplateType
(
TemplateTypeEnum
.
YYD
.
getItemValue
());
excelRequest
.
setProjectBizId
(
ProjectEnum
.
CSF_PC
.
getProjectBizId
());
Result
<
ApiOssExportAppointmentExcelResponse
>
result1
=
apiExcelFeignClient
.
exportAppointment
(
excelRequest
);
ApiOssExportAppointmentExcelResponse
excelResponse
=
result1
.
getData
();
ApiAppointmentExportExcelResponse
response
=
new
ApiAppointmentExportExcelResponse
();
...
...
@@ -362,6 +372,7 @@ public class ApiAppointmentFileServiceImpl implements ApiAppointmentFileService
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
<
ApiAppointmentImportExcelResponse
>
appointmentImportExcel
(
MultipartFile
file
,
ApiAppointmentImportExcelRequest
request
)
{
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAppointmentLogServiceImpl.java
View file @
4941ad5f
...
...
@@ -11,6 +11,7 @@ import lombok.extern.slf4j.Slf4j;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
@Service
@Slf4j
...
...
@@ -25,6 +26,7 @@ public class ApiAppointmentLogServiceImpl implements ApiAppointmentLogService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
<
String
>
saveAppointmentLog
(
Appointment
appointment
)
{
AppointmentLog
appointmentLog
=
new
AppointmentLog
();
BeanUtils
.
copyProperties
(
appointment
,
appointmentLog
);
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAppointmentReferrerLogServiceImpl.java
View file @
4941ad5f
...
...
@@ -11,6 +11,7 @@ import lombok.extern.slf4j.Slf4j;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
java.util.List
;
import
java.util.stream.Collectors
;
...
...
@@ -29,6 +30,7 @@ public class ApiAppointmentReferrerLogServiceImpl implements ApiAppointmentRefer
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
saveAppointmentReferrerLogList
(
List
<
ApiAppointmentReferrerDto
>
referrerDtoList
,
String
appointmentLogBizId
)
{
if
(
CollectionUtils
.
isEmpty
(
referrerDtoList
))
{
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAppointmentServiceImpl.java
View file @
4941ad5f
...
...
@@ -18,6 +18,7 @@ import com.yd.csf.feign.dto.appointment.*;
import
com.yd.csf.feign.dto.appointmentfile.ApiAppointmentFileDto
;
import
com.yd.csf.feign.request.appointment.*
;
import
com.yd.csf.feign.response.appointment.*
;
import
com.yd.csf.service.dao.AppointmentMapper
;
import
com.yd.csf.service.dto.PolicySigner
;
import
com.yd.csf.service.enums.AppointmentStatusEnum
;
import
com.yd.csf.service.enums.FnaStatusEnum
;
...
...
@@ -141,6 +142,8 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
private
PolicyBrokerService
policyBrokerService
;
@Resource
private
PolicyAppointmentFileService
policyAppointmentFileService
;
@Resource
private
AppointmentMapper
appointmentMapper
;
/**
* 预约分页查询
...
...
@@ -277,6 +280,7 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
* @param appointmentBizId
* @return
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
addRelObjectMaterialList
(
String
appointmentBizId
,
List
<
ApiAppointmentMaterialDto
>
dtoList
)
{
//添加-单个对象和材料列表关系信息
...
...
@@ -494,6 +498,7 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
* 更新关联的FNA状态为"待签单"
* @param fnaBizId FNA业务ID
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
private
void
updateFnaStatusToPendingSignature
(
String
fnaBizId
)
{
if
(
StringUtils
.
isBlank
(
fnaBizId
))
{
return
;
...
...
@@ -511,6 +516,7 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
editStorage
(
ApiAppointmentEditStorageRequest
request
)
{
//校验预约信息-客户和fna入参
apiAppointmentCheckService
.
checkCustomerAndFna
(
request
.
getApiAppointmentInfoDto
(),
"预约信息-"
);
...
...
@@ -676,13 +682,13 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
// 保單持有人
if
(
apiPolicyholderInfoDto
!=
null
)
{
follow
.
setPolicyHolder
(
apiPolicyholderInfoDto
.
getNameC
n
());
follow
.
setPolicyHolder
(
StringUtils
.
isNotBlank
(
apiPolicyholderInfoDto
.
getNameCn
())
?
apiPolicyholderInfoDto
.
getNameCn
()
:
apiPolicyholderInfoDto
.
getNamePyE
n
());
}
// 受保人信息
if
(!
Objects
.
isNull
(
apiInsurantInfoDto
))
{
// 受保人
follow
.
setInsured
(
apiInsurantInfoDto
.
getNameC
n
());
follow
.
setInsured
(
StringUtils
.
isNotBlank
(
apiInsurantInfoDto
.
getNameCn
())
?
apiInsurantInfoDto
.
getNameCn
()
:
apiInsurantInfoDto
.
getNamePyE
n
());
// 受保人业务id
follow
.
setInsuredBizId
(
apiInsurantInfoDto
.
getInsurantBizId
());
// 受保人与保單持有人关系
...
...
@@ -1172,6 +1178,7 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
editStatus
(
ApiAppointmentEditStatusRequest
request
)
{
//校验预约信息是否存在
Result
<
Appointment
>
result
=
checkAppointmentIsExist
(
request
.
getAppointmentBizId
());
...
...
@@ -1193,6 +1200,7 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
* 取消预约-更新新单跟进状态为取消预约
* @return
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
editFollowStatus
(
String
appointmentBizId
)
{
List
<
PolicyFollow
>
followList
=
policyFollowService
.
queryListByAppointmentBizId
(
appointmentBizId
);
if
(!
CollectionUtils
.
isEmpty
(
followList
))
{
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAppointmentUserSignLogServiceImpl.java
View file @
4941ad5f
...
...
@@ -11,6 +11,7 @@ import lombok.extern.slf4j.Slf4j;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
java.util.List
;
import
java.util.stream.Collectors
;
...
...
@@ -29,6 +30,7 @@ public class ApiAppointmentUserSignLogServiceImpl implements ApiAppointmentUserS
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
saveAppointmentUserSignLogList
(
List
<
ApiAppointmentUserSignDto
>
userSignDtoList
,
String
appointmentLogBizId
)
{
if
(
CollectionUtils
.
isEmpty
(
userSignDtoList
))
{
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiBeneficiaryServiceImpl.java
View file @
4941ad5f
...
...
@@ -83,6 +83,7 @@ public class ApiBeneficiaryServiceImpl implements ApiBeneficiaryService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
add
(
ApiBeneficiaryInfoDto
apiBeneficiaryInfoDto
)
{
List
<
ApiBeneficiaryInfoDto
>
list
=
new
ArrayList
<>();
list
.
add
(
apiBeneficiaryInfoDto
);
...
...
@@ -99,6 +100,7 @@ public class ApiBeneficiaryServiceImpl implements ApiBeneficiaryService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
edit
(
ApiBeneficiaryInfoDto
apiBeneficiaryInfoDto
)
{
//编辑预约入参字段校验 - 编辑单个受益人信息字段校验
apiAppointmentCheckService
.
checkEditApiBeneficiaryInfoDto
(
apiBeneficiaryInfoDto
);
...
...
@@ -118,6 +120,7 @@ public class ApiBeneficiaryServiceImpl implements ApiBeneficiaryService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
batchEdit
(
ApiBatchEditBeneficiaryRequest
request
)
{
apiAppointmentCheckService
.
checkEditApiBeneficiaryInfoDtoList
(
request
.
getApiBeneficiaryInfoDtoList
());
//批量编辑受益人信息表数据
...
...
@@ -131,6 +134,7 @@ public class ApiBeneficiaryServiceImpl implements ApiBeneficiaryService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
del
(
String
beneficiaryBizId
)
{
//校验受益人信息是否存在
Result
<
Beneficiary
>
result
=
checkBeneficiaryIsExist
(
beneficiaryBizId
);
...
...
@@ -177,6 +181,7 @@ public class ApiBeneficiaryServiceImpl implements ApiBeneficiaryService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
batchEditBeneficiaryData
(
List
<
ApiBeneficiaryInfoDto
>
list
,
String
appointmentBizId
)
{
if
(
CollectionUtils
.
isEmpty
(
list
)){
//为空放行
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiCommissionConditionServiceImpl.java
0 → 100644
View file @
4941ad5f
package
com
.
yd
.
csf
.
api
.
service
.
impl
;
import
com.yd.common.exception.BusinessException
;
import
com.yd.common.result.Result
;
import
com.yd.csf.api.service.ApiCommissionConditionService
;
import
com.yd.csf.service.model.PolicyFollow
;
import
com.yd.csf.service.model.PolicyPolicyholder
;
import
com.yd.csf.service.service.PolicyFollowService
;
import
com.yd.csf.service.service.PolicyPolicyholderService
;
import
com.yd.product.feign.client.announcementcommissionratio.ApiAnnouncementCommissionRatioFeignClient
;
import
com.yd.product.feign.request.announcementcommissionratio.ApiAnnouncementCommissionRatioListRequest
;
import
com.yd.product.feign.response.announcementcommissionratio.ApiAnnouncementCommissionRatioListResponse
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.List
;
/**
* 佣金条件服务类
*/
@Slf4j
@Service
public
class
ApiCommissionConditionServiceImpl
implements
ApiCommissionConditionService
{
@Autowired
private
ApiAnnouncementCommissionRatioFeignClient
ratioFeignClient
;
@Autowired
private
PolicyFollowService
policyFollowService
;
@Autowired
private
PolicyPolicyholderService
policyPolicyholderService
;
/**
* 根据保单号查询保单所参与过滤产品发佣率数据筛选的字段列表数据
* @param policyNo
* @return
*/
@Override
public
Result
<
List
<
ApiAnnouncementCommissionRatioListResponse
>>
getCommissionRatioList
(
String
policyNo
,
Date
effectiveDate
)
{
//根据保单号查询保单跟进表数据
PolicyFollow
policyFollow
=
policyFollowService
.
queryOneByPolicyNo
(
policyNo
);
if
(
policyFollow
==
null
)
{
throw
new
BusinessException
(
"新单跟进表信息不存在"
);
}
//列出固定几个需要参与发佣率筛选数据的保单字段
//供款年期(数字)
String
paymentTerm
=
policyFollow
.
getIssueNumber
().
toString
();
//投保年龄(区间值)查询保单投保人表数据 0-64 64-
PolicyPolicyholder
policyPolicyholder
=
policyPolicyholderService
.
queryOne
(
policyFollow
.
getPolicyBizId
());
String
age
=
""
;
if
(
policyPolicyholder
!=
null
)
{
age
=
policyPolicyholder
.
getAge
();
}
//期缴保费(区间值)例:0-10000 10000-
BigDecimal
eachIssuePremium
=
policyFollow
.
getEachIssuePremium
();
//专业投资者(Yes/No)(选项)
String
professionalInvestor
=
policyFollow
.
getProfessionalInvestor
();
//保单币种(选项)
String
policyCurrency
=
policyFollow
.
getPolicyCurrency
();
//保障年期(数字)
String
guaranteePeriod
=
policyFollow
.
getGuaranteePeriod
();
ApiAnnouncementCommissionRatioListRequest
ratioListRequest
=
new
ApiAnnouncementCommissionRatioListRequest
();
ratioListRequest
.
setProductLaunchBizId
(
policyFollow
.
getProductLaunchBizId
());
ratioListRequest
.
setEffectiveDate
(
effectiveDate
!=
null
?
effectiveDate:
policyFollow
.
getEffectiveDate
());
ratioListRequest
.
setPaymentTerm
(
paymentTerm
);
ratioListRequest
.
setAge
(
age
);
ratioListRequest
.
setEachIssuePremium
(
eachIssuePremium
);
ratioListRequest
.
setGuaranteePeriod
(
guaranteePeriod
);
ratioListRequest
.
setPolicyCurrency
(
policyCurrency
);
ratioListRequest
.
setProfessionalInvestor
(
professionalInvestor
);
Result
<
List
<
ApiAnnouncementCommissionRatioListResponse
>>
result
=
ratioFeignClient
.
list
(
ratioListRequest
);
return
result
;
}
}
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiCommissionRuleConfigServiceImpl.java
View file @
4941ad5f
...
...
@@ -21,6 +21,7 @@ import com.yd.csf.service.service.ICommissionRuleConfigService;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
java.util.List
;
...
...
@@ -65,6 +66,7 @@ public class ApiCommissionRuleConfigServiceImpl implements ApiCommissionRuleConf
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
add
(
ApiCommissionRuleConfigAddRequest
request
)
{
//校验基本法名称的唯一性
List
<
CommissionRuleConfig
>
list
=
iCommissionRuleConfigService
.
queryList
(
CommissionRuleConfigDto
.
builder
()
...
...
@@ -88,6 +90,7 @@ public class ApiCommissionRuleConfigServiceImpl implements ApiCommissionRuleConf
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
edit
(
ApiCommissionRuleConfigEditRequest
request
)
{
//校验基本法配置信息是否存在
Result
<
CommissionRuleConfig
>
result
=
checkCommissionRuleConfigIsExist
(
request
.
getRuleBizId
());
...
...
@@ -113,6 +116,7 @@ public class ApiCommissionRuleConfigServiceImpl implements ApiCommissionRuleConf
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
del
(
String
ruleBizId
)
{
return
null
;
}
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiConditionConfigServiceImpl.java
View file @
4941ad5f
...
...
@@ -23,6 +23,7 @@ import com.yd.csf.service.service.IConditionTypeService;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
java.util.List
;
import
java.util.Objects
;
...
...
@@ -72,6 +73,7 @@ public class ApiConditionConfigServiceImpl implements ApiConditionConfigService
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
add
(
ApiConditionConfigAddRequest
request
)
{
//校验条件名称唯一性
List
<
ConditionConfig
>
conditionConfigList
=
iConditionConfigService
.
queryList
(
ConditionConfigDto
.
builder
()
...
...
@@ -96,6 +98,7 @@ public class ApiConditionConfigServiceImpl implements ApiConditionConfigService
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
edit
(
ApiConditionConfigEditRequest
request
)
{
Result
<
ConditionConfig
>
result
=
checkConditionConfigIsExist
(
request
.
getConditionBizId
());
ConditionConfig
conditionConfig
=
result
.
getData
();
...
...
@@ -120,6 +123,7 @@ public class ApiConditionConfigServiceImpl implements ApiConditionConfigService
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
del
(
String
conditionBizId
)
{
return
null
;
}
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiConditionTypeServiceImpl.java
View file @
4941ad5f
...
...
@@ -21,6 +21,7 @@ import com.yd.csf.service.service.IConditionTypeService;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
java.util.List
;
import
java.util.Objects
;
...
...
@@ -63,6 +64,7 @@ public class ApiConditionTypeServiceImpl implements ApiConditionTypeService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
add
(
ApiConditionTypeAddRequest
request
)
{
//校验条件类型名称唯一性
List
<
ConditionType
>
conditionTypeList
=
iConditionTypeService
.
queryList
(
ConditionTypeDto
.
builder
()
...
...
@@ -86,6 +88,7 @@ public class ApiConditionTypeServiceImpl implements ApiConditionTypeService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
edit
(
ApiConditionTypeEditRequest
request
)
{
Result
<
ConditionType
>
result
=
checkConditionTypeIsExist
(
request
.
getConditionTypeBizId
());
ConditionType
conditionType
=
result
.
getData
();
...
...
@@ -109,6 +112,7 @@ public class ApiConditionTypeServiceImpl implements ApiConditionTypeService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
del
(
String
conditionTypeBizId
)
{
return
null
;
}
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiCsfCommonServiceImpl.java
View file @
4941ad5f
...
...
@@ -229,16 +229,26 @@ public class ApiCsfCommonServiceImpl implements ApiCsfCommonService {
LocalDate
currentDate
=
LocalDate
.
now
();
if
(
birthDate
.
isAfter
(
currentDate
))
{
throw
new
IllegalArgumentException
(
"生日日期不能
晚
于当前日期"
);
throw
new
IllegalArgumentException
(
"生日日期不能
大
于当前日期"
);
}
Period
period
=
Period
.
between
(
birthDate
,
currentDate
);
return
String
.
valueOf
(
period
.
getYears
());
}
catch
(
Exception
e
)
{
throw
new
IllegalArgumentException
(
"生日格式不正确,应为yyyy-MM-dd格式"
);
// throw new IllegalArgumentException("生日格式不正确,应为yyyy-MM-dd格式");
throw
new
IllegalArgumentException
(
e
.
getMessage
());
}
}
public
static
void
main
(
String
[]
args
)
{
ApiCsfCommonServiceImpl
commonService
=
new
ApiCsfCommonServiceImpl
();
ApiCsfCalculateRequest
request
=
new
ApiCsfCalculateRequest
();
request
.
setRequestValue
(
"310111202603191111"
);
request
.
setCalculateType
(
6
);
Result
<
List
<
ApiCsfCalculateResponse
>>
result
=
commonService
.
calculate
(
request
);
System
.
out
.
println
(
result
);
}
/**
* 身高和体重计算BMI指数
* @param requestValueList
...
...
@@ -283,18 +293,31 @@ public class ApiCsfCommonServiceImpl implements ApiCsfCommonService {
format
.
setToneType
(
HanyuPinyinToneType
.
WITHOUT_TONE
);
StringBuilder
pinyin
=
new
StringBuilder
();
boolean
lastIsChinese
=
false
;
// 标记上一个字符是否为汉字,用于控制空格添加
for
(
char
c
:
chinese
.
toCharArray
())
{
if
(
Character
.
toString
(
c
).
matches
(
"[\\u4E00-\\u9FA5]"
))
{
try
{
String
[]
pinyinArray
=
PinyinHelper
.
toHanyuPinyinStringArray
(
c
,
format
);
if
(
pinyinArray
!=
null
&&
pinyinArray
.
length
>
0
)
{
// 如果上一个字符是汉字且当前也是汉字,则先加空格(避免开头空格)
if
(
lastIsChinese
)
{
pinyin
.
append
(
' '
);
}
pinyin
.
append
(
pinyinArray
[
0
]);
lastIsChinese
=
true
;
}
else
{
// 如果没有拼音,原样追加
pinyin
.
append
(
c
);
lastIsChinese
=
false
;
}
}
catch
(
BadHanyuPinyinOutputFormatCombination
e
)
{
pinyin
.
append
(
c
);
lastIsChinese
=
false
;
}
}
else
{
pinyin
.
append
(
c
);
lastIsChinese
=
false
;
}
}
return
pinyin
.
toString
();
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiExpectedFortuneServiceImpl.java
View file @
4941ad5f
...
...
@@ -20,6 +20,7 @@ import com.yd.common.utils.RandomStringGenerator;
import
com.yd.common.utils.RedisUtil
;
import
com.yd.csf.api.dto.*
;
import
com.yd.csf.api.service.ApiBasicLawCalculateService
;
import
com.yd.csf.api.service.ApiCommissionConditionService
;
import
com.yd.csf.api.service.ApiExpectedFortuneLogService
;
import
com.yd.csf.api.service.ApiExpectedFortuneService
;
import
com.yd.csf.feign.request.expectedfortune.*
;
...
...
@@ -28,6 +29,7 @@ import com.yd.csf.feign.response.expectedfortune.ApiGenerateExpectedFortuneRespo
import
com.yd.csf.service.dto.CommissionRuleBindingDto
;
import
com.yd.csf.service.dto.QueryPolicyAndBrokerDto
;
import
com.yd.csf.service.dto.QueryPolicyBrokerDto
;
import
com.yd.csf.service.enums.CurrencyEnum
;
import
com.yd.csf.service.enums.FortuneStatusEnum
;
import
com.yd.csf.service.helper.FeignResultHelper
;
import
com.yd.csf.service.model.*
;
...
...
@@ -53,8 +55,11 @@ import org.springframework.stereotype.Service;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.support.TransactionTemplate
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.web.context.request.RequestContextHolder
;
import
org.springframework.web.context.request.ServletRequestAttributes
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
...
...
@@ -106,6 +111,11 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
private
ApiAnnouncementCommissionRatioFeignClient
apiAnnouncementCommissionRatioFeignClient
;
@Resource
private
FeignResultHelper
feignResultHelper
;
@Resource
private
ApiAnnouncementCommissionRatioFeignClient
ratioFeignClient
;
@Autowired
private
ApiCommissionConditionService
apiCommissionConditionService
;
/**
* 生成预计发佣
...
...
@@ -114,6 +124,7 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
<
ApiGenerateExpectedFortuneResponse
>
generate
(
ApiGenerateExpectedFortuneRequest
request
)
{
//查询当前保单号是否正在执行预计发佣的缓存,有值就说明正在执行,无值说明执行完毕或者没有执行。
String
value
=
redisUtil
.
getCacheObject
(
RedisConstants
.
EXPECTED_FORTUNE
+
request
.
getPolicyNo
());
...
...
@@ -163,7 +174,7 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
}
catch
(
Exception
e
)
{
log
.
info
(
"查询结算币种->保单号:{},入参request:{}"
,
request
.
getPolicyNo
(),
JSON
.
toJSONString
(
announcementRatioListRequest
));
throw
new
BusinessException
(
"
查询产品发佣配置,获取结算币种失败,"
+
e
.
getMessage
(
));
throw
new
BusinessException
(
"
未查询到产品发佣配置,查询条件:"
+
JSON
.
toJSONString
(
announcementRatioListRequest
));
}
//遍历保单转介人列表信息 -> 调用基本法算出预计发佣列表
...
...
@@ -179,6 +190,7 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
* @param request
* @return
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
<
ApiGenerateExpectedFortuneResponse
>
generateSync
(
ApiGenerateExpectedFortuneRequest
request
)
{
//查询当前保单号是否正在执行预计发佣的缓存,有值就说明正在执行,无值说明执行完毕或者没有执行。
String
value
=
redisUtil
.
getCacheObject
(
RedisConstants
.
EXPECTED_FORTUNE
+
request
.
getPolicyNo
());
...
...
@@ -212,26 +224,80 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
// throw new BusinessException("绑定基本法数据不存在");
// }
//查询产品发佣配置,获取结算币种
QueryPolicyAndBrokerDto
queryPolicyAndBrokerDto
=
queryPolicyAndBrokerDtoList
.
get
(
0
);
ApiAnnouncementCommissionRatioListRequest
announcementRatioListRequest
=
new
ApiAnnouncementCommissionRatioListRequest
(
);
announcementRatioListRequest
.
setProductLaunchBizId
(
queryPolicyAndBrokerDto
.
getPlanBizId
());
announcementRatioListRequest
.
setEffectiveDate
(
Date
.
from
(
queryPolicyAndBrokerDto
.
getEffectiveDate
().
atStartOfDay
(
ZoneId
.
systemDefault
()).
toInstant
())
);
announcementRatioListRequest
.
setPaymentTerm
(
String
.
valueOf
(
queryPolicyAndBrokerDto
.
getPaymentTerm
()));
List
<
ApiAnnouncementCommissionRatioListResponse
>
announcementRatioList
;
Integer
paymentTerm
=
0
;
List
<
ApiAnnouncementCommissionRatioListResponse
>
announcementRatioList
=
new
ArrayList
<>(
);
Result
<
List
<
ApiAnnouncementCommissionRatioListResponse
>>
listResult
=
apiCommissionConditionService
.
getCommissionRatioList
(
request
.
getPolicyNo
(),
null
);
if
(
listResult
!=
null
&&
!
CollectionUtils
.
isEmpty
(
listResult
.
getData
()))
{
announcementRatioList
=
listResult
.
getData
(
);
//取 endPeriod 的最大值作为总期数
paymentTerm
=
listResult
.
getData
().
stream
()
.
map
(
item
->
{
try
{
announcementRatioList
=
feignResultHelper
.
extractListData
(
apiAnnouncementCommissionRatioFeignClient
.
list
(
announcementRatioListRequest
),
ApiAnnouncementCommissionRatioListResponse
.
class
);
}
catch
(
Exception
e
)
{
log
.
info
(
"查询结算币种->保单号:{},入参request:{}"
,
request
.
getPolicyNo
(),
JSON
.
toJSONString
(
announcementRatioListRequest
));
throw
new
BusinessException
(
"查询产品发佣配置,获取结算币种失败,"
+
e
.
getMessage
());
return
Integer
.
parseInt
(
item
.
getEndPeriod
());
}
catch
(
NumberFormatException
e
)
{
log
.
warn
(
"endPeriod 格式错误: {}"
,
item
.
getEndPeriod
());
return
0
;
}
})
.
max
(
Integer:
:
compareTo
)
.
orElse
(
0
);
}
log
.
info
(
"查询产品发佣配置,获取结算币种==========>,{}"
,
JSON
.
toJSONString
(
announcementRatioList
));
//查询产品发佣配置,获取结算币种
// QueryPolicyAndBrokerDto queryPolicyAndBrokerDto = queryPolicyAndBrokerDtoList.get(0);
// ApiAnnouncementCommissionRatioListRequest announcementRatioListRequest = new ApiAnnouncementCommissionRatioListRequest();
// announcementRatioListRequest.setProductLaunchBizId(queryPolicyAndBrokerDto.getPlanBizId());
// announcementRatioListRequest.setEffectiveDate(Date.from(queryPolicyAndBrokerDto.getEffectiveDate().atStartOfDay(ZoneId.systemDefault()).toInstant()));
// announcementRatioListRequest.setPaymentTerm(String.valueOf(queryPolicyAndBrokerDto.getPaymentTerm()));
//
// HttpServletRequest request1 = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
// String token = request1.getHeader("Authorization");
// log.info("HttpServletRequest token==============,{}",token);
// List<ApiAnnouncementCommissionRatioListResponse> announcementRatioList;
// try {
// announcementRatioList = feignResultHelper.extractListData(
// apiAnnouncementCommissionRatioFeignClient.list(announcementRatioListRequest),
// ApiAnnouncementCommissionRatioListResponse.class
// );
// } catch (Exception e) {
// log.info("查询结算币种->保单号:{},入参request:{}", request.getPolicyNo(), JSON.toJSONString(announcementRatioListRequest));
// throw new BusinessException("未查询到产品发佣配置,查询条件:" + JSON.toJSONString(announcementRatioListRequest));
// }
// Integer paymentTerm = 0;
// PolicyFollow policyFollow = policyFollowService.queryOneByPolicyNo(request.getPolicyNo());
// if (policyFollow != null) {
// ApiAnnouncementCommissionRatioListRequest ratioListRequest = new ApiAnnouncementCommissionRatioListRequest();
// ratioListRequest.setEffectiveDate(policyFollow.getEffectiveDate());
// ratioListRequest.setPaymentTerm(policyFollow.getIssueNumber().toString()); // 保留原有过滤条件(可根据业务决定是否需要)
// ratioListRequest.setProductLaunchBizId(policyFollow.getProductLaunchBizId());
// Result<List<ApiAnnouncementCommissionRatioListResponse>> listResult = ratioFeignClient.list(ratioListRequest);
// if (listResult != null && !CollectionUtils.isEmpty(listResult.getData())) {
// // 取 endPeriod 的最大值作为总期数
// paymentTerm = listResult.getData().stream()
// .map(item -> {
// try {
// return Integer.parseInt(item.getEndPeriod()); // 将字符串转为整数
// } catch (NumberFormatException e) {
// // 若转换失败,记录日志并返回0,避免影响最大值计算
// log.warn("endPeriod 格式错误: {}", item.getEndPeriod());
// return 0;
// }
// })
// .max(Integer::compareTo)
// .orElse(0); // 若无有效值,默认0
// }
// }
//遍历保单转介人列表信息 -> 调用基本法算出预计发佣列表(同步执行)
executeSync
(
queryPolicyAndBrokerDtoList
,
request
.
getPolicyNo
(),
announcementRatioList
);
executeSync
(
queryPolicyAndBrokerDtoList
,
request
.
getPolicyNo
(),
announcementRatioList
,
paymentTerm
);
return
Result
.
success
(
null
,
"生成预计发佣成功"
);
}
...
...
@@ -244,6 +310,7 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
<
ApiGenerateExpectedFortuneResponse
>
generateWithLogAndRedis
(
ApiGenerateExpectedFortuneRequest
request
)
{
try
{
Result
<
ApiGenerateExpectedFortuneResponse
>
result
=
generate
(
request
);
...
...
@@ -284,6 +351,7 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
<
ApiGenerateExpectedFortuneResponse
>
generateSyncWithLogAndRedis
(
ApiGenerateExpectedFortuneRequest
request
)
{
try
{
Result
<
ApiGenerateExpectedFortuneResponse
>
result
=
generateSync
(
request
);
...
...
@@ -325,6 +393,7 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
*/
@Override
@Async
(
"commonAsyncExecutor"
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
execute
(
List
<
QueryPolicyAndBrokerDto
>
queryPolicyAndBrokerDtoList
,
List
<
CommissionRuleBinding
>
commissionRuleBindingList
,
String
policyNo
,
...
...
@@ -390,6 +459,7 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
});
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
private
void
updateHkdAmountBatch
(
List
<
ExpectedFortune
>
expectedFortuneList
,
String
policyCurrency
,
List
<
ApiAnnouncementCommissionRatioListResponse
>
announcementRatioList
)
{
log
.
info
(
"------------------------开始计算默认结算汇率、港币金额----------------------"
);
...
...
@@ -411,6 +481,11 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
expectedFortune
.
setDefaultExchangeRate
(
exchangeRate
);
//设置港币金额(标准发佣金额 * 默认结算汇率)
expectedFortune
.
setHkdAmount
(
expectedFortune
.
getAmount
().
multiply
(
exchangeRate
));
//默认值
expectedFortune
.
setPaidAmount
(
BigDecimal
.
ZERO
);
expectedFortune
.
setPaidRatio
(
BigDecimal
.
ZERO
);
expectedFortune
.
setUnpaidAmount
(
expectedFortune
.
getHkdAmount
());
expectedFortune
.
setUnpaidRatio
(
BigDecimal
.
valueOf
(
100
));
iExpectedFortuneService
.
updateById
(
expectedFortune
);
}
...
...
@@ -429,16 +504,25 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
* @param policyNo
* @return
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
executeSync
(
List
<
QueryPolicyAndBrokerDto
>
queryPolicyAndBrokerDtoList
,
String
policyNo
,
List
<
ApiAnnouncementCommissionRatioListResponse
>
announcementRatioList
)
{
String
policyNo
,
List
<
ApiAnnouncementCommissionRatioListResponse
>
announcementRatioList
,
Integer
paymentTerm
)
{
log
.
info
(
"同步处理-> 遍历保单转介人列表信息 -> 调用基本法算出预计发佣列表->入参queryPolicyAndBrokerDtoList:{}"
,
JSON
.
toJSONString
(
queryPolicyAndBrokerDtoList
));
log
.
info
(
"同步处理-> 遍历保单转介人列表信息 -> 调用基本法算出预计发佣列表->入参policyNo:{}"
,
policyNo
);
HttpServletRequest
request1
=
((
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
()).
getRequest
();
String
token
=
request1
.
getHeader
(
"Authorization"
);
log
.
info
(
"同步处理-> 遍历保单转介人列表信息 -> 调用基本法算出预计发佣列表 token==============,{}"
,
token
);
// 使用编程式事务,确保方法内的事务一致性
return
transactionTemplate
.
execute
(
status
->
{
try
{
HttpServletRequest
request2
=
((
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
()).
getRequest
();
String
token2
=
request2
.
getHeader
(
"Authorization"
);
log
.
info
(
"使用编程式事务,确保方法内的事务一致性 token==============,{}"
,
token2
);
for
(
QueryPolicyAndBrokerDto
brokerDto
:
queryPolicyAndBrokerDtoList
)
{
Integer
paymentTerm
=
brokerDto
.
getPaymentTerm
();
if
(
Objects
.
isNull
(
paymentTerm
)
)
{
//
Integer paymentTerm = brokerDto.getPaymentTerm();
if
(
paymentTerm
==
null
||
paymentTerm
==
0
)
{
throw
new
BusinessException
(
"保单的供款年期不存在"
);
}
...
...
@@ -513,6 +597,7 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
return
commissionRuleBindingList
;
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
private
List
<
ExpectedFortune
>
updatePayableNoBatch
(
String
policyNo
)
{
// 查询最新一条有 payableNo 记录
ExpectedFortune
latest
=
iExpectedFortuneService
.
getOne
(
...
...
@@ -600,10 +685,15 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
.
status
(
FortuneStatusEnum
.
WAIT
.
getItemValue
())
//期交保费
.
paymentPremium
(
brokerDto
.
getPaymentPremium
())
//所属团队 TODO
// .team()
//所属团队业务ID TODO
// .teamBizId()
//所属团队
.
team
(
brokerDto
.
getTeam
())
//所属团队业务ID
.
teamBizId
(
brokerDto
.
getTeamBizId
())
//产品业务id
.
productLaunchBizId
(
brokerDto
.
getPlanBizId
())
//保险公司业务id
.
insuranceCompanyBizId
(
brokerDto
.
getInsuranceCompanyBizId
())
.
source
(
2
)
.
build
());
return
Result
.
success
();
...
...
@@ -670,10 +760,15 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
.
status
(
FortuneStatusEnum
.
WAIT
.
getItemValue
())
//期交保费
.
paymentPremium
(
brokerDto
.
getPaymentPremium
())
//所属团队 TODO
// .team()
//所属团队业务ID TODO
// .teamBizId()
//所属团队
.
team
(
brokerDto
.
getTeam
())
//所属团队业务ID
.
teamBizId
(
brokerDto
.
getTeamBizId
())
//产品业务id
.
productLaunchBizId
(
brokerDto
.
getPlanBizId
())
//保险公司业务id
.
insuranceCompanyBizId
(
brokerDto
.
getInsuranceCompanyBizId
())
.
source
(
1
)
.
build
());
return
Result
.
success
();
...
...
@@ -691,8 +786,9 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
if
(!
CollectionUtils
.
isEmpty
(
fortuneDto
.
getAlgorithmResDtoList
()))
{
//获得积分业务员绑定的基本法列表对应计算值结果集合
for
(
AlgorithmResDto
algorithmResDto
:
fortuneDto
.
getAlgorithmResDtoList
())
{
if
(
Objects
.
isNull
(
algorithmResDto
.
getCalculatedValue
())
||
algorithmResDto
.
getCalculatedValue
().
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
if
(
fortuneDto
.
getSource
()
==
2
&&
(
Objects
.
isNull
(
algorithmResDto
.
getCalculatedValue
())
||
algorithmResDto
.
getCalculatedValue
().
compareTo
(
BigDecimal
.
ZERO
)
==
0
))
{
//2-非销售佣金并且计算金额为0,走这里
//判空判0
continue
;
}
...
...
@@ -713,6 +809,14 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
fortune
.
setBroker
(
fortuneDto
.
getBroker
());
//转介人业务ID (获得积分的业务员)
fortune
.
setBrokerBizId
(
fortuneDto
.
getBrokerBizId
());
//所属团队
fortune
.
setTeam
(
fortuneDto
.
getTeam
());
//所属团队业务ID
fortune
.
setTeamBizId
(
fortuneDto
.
getTeamBizId
());
//产品业务id
fortune
.
setProductLaunchBizId
(
fortuneDto
.
getProductLaunchBizId
());
//保险公司业务id
fortune
.
setInsuranceCompanyBizId
(
fortuneDto
.
getInsuranceCompanyBizId
());
//出账项目名称 -> 基本法项目名称
fortune
.
setFortuneName
(
algorithmResDto
.
getItemName
());
//保单预计发佣业务id
...
...
@@ -787,6 +891,7 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Boolean
add
(
List
<
ExpectedFortuneAddRequest
>
fortuneAddRequestList
)
{
if
(
CollectionUtils
.
isEmpty
(
fortuneAddRequestList
))
{
return
true
;
...
...
@@ -884,6 +989,9 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
* @return 汇率
*/
private
BigDecimal
queryExchangeRateByFeign
(
String
policyCurrency
,
String
currency
)
{
HttpServletRequest
request2
=
((
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
()).
getRequest
();
String
token2
=
request2
.
getHeader
(
"Authorization"
);
log
.
info
(
"保单币种对预计来佣的结算币种的默认汇率 token==============,{}"
,
token2
);
if
(
policyCurrency
.
equalsIgnoreCase
(
currency
))
{
return
BigDecimal
.
ONE
;
}
...
...
@@ -907,6 +1015,7 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
exportExpectedFortune
(
ApiExpectedFortunePageRequest
request
,
HttpServletResponse
response
)
{
// 查询数据
QueryWrapper
<
ExpectedFortune
>
queryWrapper
=
this
.
getQueryWrapper
(
request
);
...
...
@@ -974,8 +1083,10 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
List
<
PayableReportVO
>
voList
=
payableReportPage
.
getRecords
().
stream
().
map
(
vo
->
{
Policy
policy
=
policyMap
.
get
(
vo
.
getPolicyNo
());
PolicyFollow
policyFollow
=
policyFollowMap
.
get
(
vo
.
getPolicyNo
());
vo
.
setCurrency
(
CurrencyEnum
.
toLabel
(
vo
.
getCurrency
()));
if
(
policy
!=
null
)
{
vo
.
setPolicyCurrency
(
policy
.
getCurrency
(
));
vo
.
setPolicyCurrency
(
CurrencyEnum
.
toLabel
(
policy
.
getCurrency
()
));
}
if
(
policyFollow
!=
null
)
{
vo
.
setProductName
(
policyFollow
.
getProductName
());
...
...
@@ -1049,8 +1160,8 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
// 按保单号模糊查询
queryWrapper
.
eq
(
ObjectUtils
.
isNotEmpty
(
payableNo
),
"payable_no"
,
payableNo
);
queryWrapper
.
like
(
StringUtils
.
isNotBlank
(
policyNo
),
"policy_no"
,
policyNo
);
queryWrapper
.
g
t
(
ObjectUtils
.
isNotEmpty
(
payoutDateStart
),
"payout_date"
,
payoutDateStart
);
queryWrapper
.
l
t
(
ObjectUtils
.
isNotEmpty
(
payoutDateEnd
),
"payout_date"
,
payoutDateEnd
);
queryWrapper
.
g
e
(
ObjectUtils
.
isNotEmpty
(
payoutDateStart
),
"payout_date"
,
payoutDateStart
);
queryWrapper
.
l
e
(
ObjectUtils
.
isNotEmpty
(
payoutDateEnd
),
"payout_date"
,
payoutDateEnd
);
queryWrapper
.
in
(
ObjectUtils
.
isNotEmpty
(
statusList
),
"status"
,
statusList
);
queryWrapper
.
eq
(
ObjectUtils
.
isNotEmpty
(
fortunePeriod
),
"fortune_period"
,
fortunePeriod
);
queryWrapper
.
eq
(
StringUtils
.
isNotBlank
(
fortuneType
),
"fortune_type"
,
fortuneType
);
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiFormulaConfigServiceImpl.java
View file @
4941ad5f
...
...
@@ -23,6 +23,7 @@ import com.yd.csf.service.service.IFormulaConfigService;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
java.util.List
;
import
java.util.Objects
;
...
...
@@ -69,6 +70,7 @@ public class ApiFormulaConfigServiceImpl implements ApiFormulaConfigService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
add
(
ApiFormulaConfigAddRequest
request
)
{
//校验公式名称唯一性
List
<
FormulaConfig
>
formulaConfigList
=
iFormulaConfigService
.
queryList
(
FormulaConfigDto
.
builder
()
...
...
@@ -94,6 +96,7 @@ public class ApiFormulaConfigServiceImpl implements ApiFormulaConfigService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
edit
(
ApiFormulaConfigEditRequest
request
)
{
Result
<
FormulaConfig
>
result
=
checkFormulaConfigIsExist
(
request
.
getFormulaBizId
());
FormulaConfig
formulaConfig
=
result
.
getData
();
...
...
@@ -119,6 +122,7 @@ public class ApiFormulaConfigServiceImpl implements ApiFormulaConfigService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
del
(
String
formulaBizId
)
{
return
null
;
}
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiInsurantServiceImpl.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
api
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.yd.base.feign.client.relobjectcertificate.ApiRelObjectCertificateFeignClient
;
import
com.yd.base.feign.dto.ApiCertificateDto
;
import
com.yd.base.feign.request.relobjectcertificate.ApiRelObjectCertificateListAddRequest
;
...
...
@@ -108,6 +109,7 @@ public class ApiInsurantServiceImpl implements ApiInsurantService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
edit
(
ApiInsurantInfoDto
apiInsurantInfoDto
)
{
//编辑预约入参字段校验 - 受保人信息字段校验
apiAppointmentCheckService
.
checkEditApiInsurantInfoDto
(
apiInsurantInfoDto
);
...
...
@@ -224,6 +226,7 @@ public class ApiInsurantServiceImpl implements ApiInsurantService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
<
Insurant
>
editInsurantData
(
ApiInsurantInfoDto
dto
,
String
appointmentBizId
)
{
if
(
Objects
.
isNull
(
dto
)){
//受保人信息对象不能为空
...
...
@@ -235,15 +238,19 @@ public class ApiInsurantServiceImpl implements ApiInsurantService {
Result
<
Insurant
>
result
=
checkInsurantIsExist
(
dto
.
getInsurantBizId
());
//受保人信息信息
Insurant
insurant
=
result
.
getData
();
Long
insurantId
=
insurant
.
getId
();
//与投保人关系
if
(
RelTypeEnum
.
MYSELF
.
getItemValue
().
equals
(
dto
.
getPolicyholderRel
()))
{
//与投保人关系如果是本人,直接查询投保人信息表更新数据到受保人信息表中
Policyholder
policyholder
=
iPolicyholderService
.
queryOne
(
appointmentBizId
,
""
);
if
(!
Objects
.
isNull
(
policyholder
))
{
log
.
info
(
"与投保人关系如果是本人,直接查询投保人信息表更新数据到受保人信息表中之前result.getData(),{}"
,
JSON
.
toJSONString
(
result
));
log
.
info
(
"与投保人关系如果是本人,直接查询投保人信息表更新数据到受保人信息表中之前,{}"
,
JSON
.
toJSONString
(
insurant
));
BeanUtils
.
copyProperties
(
policyholder
,
insurant
);
insurant
.
setId
(
result
.
getData
().
getId
()
);
insurant
.
setId
(
insurantId
);
insurant
.
setAppointmentBizId
(
appointmentBizId
);
log
.
info
(
"与投保人关系如果是本人,直接查询投保人信息表更新数据到受保人信息表中之后,{}"
,
JSON
.
toJSONString
(
insurant
));
iInsurantService
.
saveOrUpdate
(
insurant
);
//查询投保人税务列表信息
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiPolicyReceiptServiceImpl.java
View file @
4941ad5f
...
...
@@ -21,6 +21,7 @@ import org.apache.commons.lang3.StringUtils;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
java.util.ArrayList
;
...
...
@@ -79,6 +80,7 @@ public class ApiPolicyReceiptServiceImpl implements ApiPolicyReceiptService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
add
(
ApiPolicyReceiptAddRequest
request
)
{
//校验保单信息是否存在
Policy
policy
=
policyService
.
queryOne
(
request
.
getPolicyNo
());
...
...
@@ -101,6 +103,7 @@ public class ApiPolicyReceiptServiceImpl implements ApiPolicyReceiptService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
edit
(
ApiPolicyReceiptEditRequest
request
)
{
//校验保单回执信息是否存在
PolicyReceipt
policyReceipt
=
iPolicyReceiptService
.
queryOne
(
request
.
getPolicyReceiptBizId
());
...
...
@@ -127,6 +130,7 @@ public class ApiPolicyReceiptServiceImpl implements ApiPolicyReceiptService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
editReceiptStatus
(
String
policyReceiptBizId
,
String
receiptStatus
)
{
PolicyReceipt
policyReceipt
=
iPolicyReceiptService
.
queryOne
(
policyReceiptBizId
);
if
(
Objects
.
isNull
(
policyReceipt
))
{
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiPolicyholderServiceImpl.java
View file @
4941ad5f
...
...
@@ -101,6 +101,7 @@ public class ApiPolicyholderServiceImpl implements ApiPolicyholderService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
edit
(
ApiPolicyholderInfoDto
apiPolicyholderInfoDto
)
{
//编辑预约入参字段校验 - 投保人信息字段校验
apiAppointmentCheckService
.
checkEditApiPolicyholderInfoDto
(
apiPolicyholderInfoDto
);
...
...
@@ -165,6 +166,7 @@ public class ApiPolicyholderServiceImpl implements ApiPolicyholderService {
* @param apiCertificateDtoList
* @return
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
addRelObjectCertificateList
(
String
objectBizId
,
String
objectType
,
String
objectTableName
,
...
...
@@ -187,6 +189,7 @@ public class ApiPolicyholderServiceImpl implements ApiPolicyholderService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
<
Policyholder
>
editPolicyholderData
(
ApiPolicyholderInfoDto
dto
,
String
appointmentBizId
)
{
if
(
Objects
.
isNull
(
dto
))
{
//投保人信息对象不能为空
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiPremiumReconciliationServiceImpl.java
View file @
4941ad5f
...
...
@@ -15,6 +15,7 @@ import com.yd.common.enums.ResultCode;
import
com.yd.common.exception.BusinessException
;
import
com.yd.common.result.Result
;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.csf.api.async.ApiExpectedFortuneAsyncService
;
import
com.yd.csf.api.service.ApiExpectedFortuneService
;
import
com.yd.csf.api.service.ApiPremiumReconciliationService
;
import
com.yd.csf.api.service.ApiPremiumRemittanceService
;
...
...
@@ -118,6 +119,9 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia
return
applicationContext
.
getBean
(
ApiPremiumReconciliationService
.
class
);
}
@Resource
private
ApiExpectedFortuneAsyncService
apiExpectedFortuneAsyncService
;
/**
* 分页列表查询-保费对账记录信息
* @param request
...
...
@@ -720,6 +724,7 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
add
(
ApiPremiumReconciliationAddRequest
request
)
{
//根据当前Policy保单信息里面的生效日期、付款频率、缴费宽限期,校验当天是否在缴费期内,不在缴费期内不能保费对账 TODO 校验待定
//保费对账信息
...
...
@@ -812,6 +817,7 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
edit
(
ApiPremiumReconciliationDto
request
)
{
if
(
StringUtils
.
isBlank
(
request
.
getPremiumReconciliationBizId
()))
{
throw
new
BusinessException
(
"保费对账记录表唯一业务ID不能为空"
);
...
...
@@ -1171,6 +1177,7 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
editResult
(
ApiPremiumReconciliationResultEditRequest
request
)
{
log
.
info
(
"设置认定结果-保费对账记录信息前effectiveDate生效日期:{}"
,
request
.
getEffectiveDate
());
// 通过 RequestContextHolder 获取 HttpServletRequest
HttpServletRequest
httpServletRequest
=
((
ServletRequestAttributes
)
RequestContextHolder
.
currentRequestAttributes
()).
getRequest
();
...
...
@@ -1212,6 +1219,7 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia
//遍历保单转介人列表信息 -> 调用基本法算出预计发佣列表
// 通过代理对象调用
// getSelf().execute(statusRequest,token);
log
.
info
(
"changePolicyFollowStatus前effectiveDate生效日期:{}"
,
statusRequest
.
getEffectiveDate
());
Result
<
Boolean
>
result1
=
changePolicyFollowStatus
(
statusRequest
,
token
);
if
(
result1
.
getCode
()
!=
200
)
{
throw
new
BusinessException
(
result1
.
getMsg
());
...
...
@@ -1229,12 +1237,6 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia
return
Result
.
success
();
}
@Override
@Async
(
"commonAsyncExecutor"
)
public
void
execute
(
ChangePolicyFollowStatusRequest
changePolicyFollowStatusRequest
,
String
token
)
{
changePolicyFollowStatus
(
changePolicyFollowStatusRequest
,
token
);
}
/**
* 修改跟进状态
*
...
...
@@ -1245,7 +1247,7 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia
public
Result
<
Boolean
>
changePolicyFollowStatus
(
ChangePolicyFollowStatusRequest
changePolicyFollowStatusRequest
,
String
token
)
{
// 设置ThreadLocal Token
FeignTokenInterceptor
.
setThreadLocalToken
(
token
);
//
FeignTokenInterceptor.setThreadLocalToken(token);
if
(
changePolicyFollowStatusRequest
==
null
||
StringUtils
.
isBlank
(
changePolicyFollowStatusRequest
.
getPolicyBizId
()))
{
return
Result
.
fail
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"policyBizId不能为空"
);
...
...
@@ -1289,27 +1291,27 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia
if
(
PolicyFollowStatusEnum
.
EFFECTIVE
.
equals
(
currentStatusEnum
))
{
log
.
info
(
"修改跟进状态获取token:{}"
,
token
);
// 同步:根据保单生成预计出账记录
generateExpectedFortuneSync
(
token
,
policyFollow
.
getPolicyNo
()
);
apiExpectedFortuneAsyncService
.
execute
(
policyFollow
.
getPolicyNo
(),
token
);
}
return
Result
.
success
(
true
);
}
/**
* 同步生成预计出账记录
*
* @param token 认证Token
* @param policyNo 保单号
*/
private
void
generateExpectedFortuneSync
(
String
token
,
String
policyNo
)
{
// 调用 ApiExpectedFortuneService 的 generateSyncWithLogAndRedis(同步版本,包含日志和Redis处理)
ApiGenerateExpectedFortuneRequest
generateExpectedFortuneRequest
=
new
ApiGenerateExpectedFortuneRequest
();
generateExpectedFortuneRequest
.
setPolicyNo
(
policyNo
);
log
.
info
(
"生成预计发佣generateSyncWithLogAndRedis——>PolicyNo:{}"
,
policyNo
);
Result
<
ApiGenerateExpectedFortuneResponse
>
result
=
apiExpectedFortuneService
.
generateSyncWithLogAndRedis
(
generateExpectedFortuneRequest
);
if
(
result
!=
null
&&
result
.
getCode
()
==
200
)
{
log
.
info
(
"新单跟进-同步生成预计出账记录成功:保单号={}"
,
policyNo
);
}
}
//
/**
//
* 同步生成预计出账记录
//
*
//
* @param token 认证Token
//
* @param policyNo 保单号
//
*/
//
private void generateExpectedFortuneSync(String token, String policyNo) {
//
// 调用 ApiExpectedFortuneService 的 generateSyncWithLogAndRedis(同步版本,包含日志和Redis处理)
//
ApiGenerateExpectedFortuneRequest generateExpectedFortuneRequest = new ApiGenerateExpectedFortuneRequest();
//
generateExpectedFortuneRequest.setPolicyNo(policyNo);
//
log.info("生成预计发佣generateSyncWithLogAndRedis——>PolicyNo:{}", policyNo);
//
Result<ApiGenerateExpectedFortuneResponse> result = apiExpectedFortuneService.generateSyncWithLogAndRedis(generateExpectedFortuneRequest);
//
if (result != null && result.getCode() == 200) {
//
log.info("新单跟进-同步生成预计出账记录成功:保单号={}", policyNo);
//
}
//
}
/**
* 校验-保单所有期数的保费对账是否对账完成(全部对账完成就不能新增录入对账信息了)
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiPremiumRemittanceFileServiceImpl.java
View file @
4941ad5f
...
...
@@ -17,6 +17,7 @@ import org.apache.commons.lang3.StringUtils;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
java.util.ArrayList
;
import
java.util.List
;
...
...
@@ -48,6 +49,7 @@ public class ApiPremiumRemittanceFileServiceImpl implements ApiPremiumRemittance
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
add
(
ApiPremiumRemittanceFileDto
request
)
{
if
(
StringUtils
.
isBlank
(
request
.
getPremiumRemittanceBizId
()))
{
throw
new
BusinessException
(
"保费对账-汇款记录表唯一业务ID不能为空"
);
...
...
@@ -66,6 +68,7 @@ public class ApiPremiumRemittanceFileServiceImpl implements ApiPremiumRemittance
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
edit
(
ApiPremiumRemittanceFileDto
request
)
{
if
(
StringUtils
.
isBlank
(
request
.
getPremiumRemittanceBizId
()))
{
throw
new
BusinessException
(
"保费对账-汇款记录表唯一业务ID不能为空"
);
...
...
@@ -86,6 +89,7 @@ public class ApiPremiumRemittanceFileServiceImpl implements ApiPremiumRemittance
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
del
(
String
premiumRemittanceFileBizId
)
{
Result
<
PremiumRemittanceFile
>
result
=
checkPremiumRemittanceFileIsExist
(
premiumRemittanceFileBizId
);
PremiumRemittanceFile
file
=
result
.
getData
();
...
...
@@ -100,6 +104,7 @@ public class ApiPremiumRemittanceFileServiceImpl implements ApiPremiumRemittance
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
addPremiumRemittanceFileList
(
List
<
ApiPremiumRemittanceFileDto
>
apiPremiumRemittanceFileDtoList
,
String
premiumRemittanceBizId
)
{
if
(
CollectionUtils
.
isEmpty
(
apiPremiumRemittanceFileDtoList
))
{
...
...
@@ -124,6 +129,7 @@ public class ApiPremiumRemittanceFileServiceImpl implements ApiPremiumRemittance
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
savePremiumRemittanceFileList
(
List
<
ApiPremiumRemittanceFileDto
>
apiPremiumRemittanceFileDtoList
,
String
premiumRemittanceBizId
)
{
//先删后新增
...
...
@@ -149,6 +155,7 @@ public class ApiPremiumRemittanceFileServiceImpl implements ApiPremiumRemittance
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
delByPremiumRemittanceBizId
(
String
premiumRemittanceBizId
)
{
iPremiumRemittanceFileService
.
delByPremiumRemittanceBizId
(
premiumRemittanceBizId
);
return
Result
.
success
();
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiPremiumRemittanceServiceImpl.java
View file @
4941ad5f
...
...
@@ -20,6 +20,7 @@ import org.apache.commons.lang3.StringUtils;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
...
...
@@ -55,6 +56,7 @@ public class ApiPremiumRemittanceServiceImpl implements ApiPremiumRemittanceServ
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
add
(
ApiPremiumRemittanceDto
request
)
{
if
(
StringUtils
.
isBlank
(
request
.
getPremiumReconciliationBizId
()))
{
throw
new
BusinessException
(
"保费对账记录表唯一业务ID不能为空"
);
...
...
@@ -72,6 +74,7 @@ public class ApiPremiumRemittanceServiceImpl implements ApiPremiumRemittanceServ
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
edit
(
ApiPremiumRemittanceDto
request
)
{
if
(
StringUtils
.
isBlank
(
request
.
getPremiumRemittanceBizId
()))
{
throw
new
BusinessException
(
"保费对账-汇款记录表唯一业务ID不能为空"
);
...
...
@@ -112,6 +115,7 @@ public class ApiPremiumRemittanceServiceImpl implements ApiPremiumRemittanceServ
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
del
(
String
premiumRemittanceBizId
)
{
checkPremiumRemittanceIsExist
(
premiumRemittanceBizId
);
//删除保费对账汇款记录附件列表
...
...
@@ -128,6 +132,7 @@ public class ApiPremiumRemittanceServiceImpl implements ApiPremiumRemittanceServ
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
addPremiumRemittanceList
(
List
<
ApiPremiumRemittanceDto
>
apiPremiumRemittanceDtoList
,
String
premiumReconciliationBizId
)
{
if
(
CollectionUtils
.
isEmpty
(
apiPremiumRemittanceDtoList
))
{
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiProductPlanServiceImpl.java
View file @
4941ad5f
...
...
@@ -81,6 +81,7 @@ public class ApiProductPlanServiceImpl implements ApiProductPlanService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
<
String
>
edit
(
ApiProductPlanMainInfoDto
apiProductPlanMainInfoDto
)
{
//编辑预约入参字段校验 - 产品计划信息字段校验 - 产品计划主信息字段校验
...
...
@@ -102,6 +103,7 @@ public class ApiProductPlanServiceImpl implements ApiProductPlanService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
editPlan
(
ApiProductPlanInfoDto
apiProductPlanInfoDto
)
{
//编辑产品计划主体信息
Result
<
String
>
result
=
edit
(
apiProductPlanInfoDto
.
getApiProductPlanMainInfoDto
());
...
...
@@ -146,6 +148,7 @@ public class ApiProductPlanServiceImpl implements ApiProductPlanService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
<
ProductPlan
>
editProductPlanData
(
ApiProductPlanInfoDto
productPlanInfoDto
,
String
appointmentBizId
)
{
if
(
Objects
.
isNull
(
productPlanInfoDto
)
||
(
!
Objects
.
isNull
(
productPlanInfoDto
)
&&
Objects
.
isNull
(
productPlanInfoDto
.
getApiProductPlanMainInfoDto
()))){
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiRelObjectConditionServiceImpl.java
View file @
4941ad5f
...
...
@@ -12,6 +12,7 @@ import com.yd.csf.service.service.IRelObjectConditionService;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
java.util.ArrayList
;
import
java.util.List
;
...
...
@@ -32,6 +33,7 @@ public class ApiRelObjectConditionServiceImpl implements ApiRelObjectConditionSe
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
saveRelList
(
ApiRelObjectConditionDto
dto
)
{
//先删后新增
iRelObjectConditionService
.
del
(
dto
);
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiRelObjectFormulaServiceImpl.java
View file @
4941ad5f
...
...
@@ -13,6 +13,7 @@ import com.yd.csf.service.service.IRelObjectFormulaService;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
java.util.ArrayList
;
import
java.util.List
;
...
...
@@ -60,6 +61,7 @@ public class ApiRelObjectFormulaServiceImpl implements ApiRelObjectFormulaServic
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
saveRelList
(
ApiRelObjectFormulaDto
dto
)
{
//先删后新增
RelObjectFormulaDto
relObjectFormulaDto
=
new
RelObjectFormulaDto
();
...
...
@@ -86,6 +88,7 @@ public class ApiRelObjectFormulaServiceImpl implements ApiRelObjectFormulaServic
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
saveObjectList
(
List
<
ApiRelObjectFormulaDto
>
objectList
,
String
formulaBizId
)
{
//先删后新增
iRelObjectFormulaService
.
delObjectList
(
formulaBizId
);
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiRelObjectSqlServiceImpl.java
View file @
4941ad5f
...
...
@@ -13,6 +13,7 @@ import com.yd.csf.service.service.IRelObjectSqlService;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
java.util.ArrayList
;
import
java.util.List
;
...
...
@@ -28,6 +29,7 @@ public class ApiRelObjectSqlServiceImpl implements ApiRelObjectSqlService {
private
ICommissionSqlTemplateService
iCommissionSqlTemplateService
;
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
saveRelList
(
ApiRelObjectSqlDto
dto
)
{
//先删后新增
RelObjectSqlDto
relObjectSqlDto
=
new
RelObjectSqlDto
();
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiRuleItemConfigServiceImpl.java
View file @
4941ad5f
...
...
@@ -24,6 +24,7 @@ import com.yd.csf.service.service.IRuleItemConfigService;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
java.util.ArrayList
;
import
java.util.List
;
...
...
@@ -79,6 +80,7 @@ public class ApiRuleItemConfigServiceImpl implements ApiRuleItemConfigService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
add
(
ApiRuleItemConfigAddRequest
request
)
{
//校验基本法项目名称的唯一性
List
<
RuleItemConfig
>
list
=
iRuleItemConfigService
.
queryList
(
RuleItemConfigDto
.
builder
()
...
...
@@ -115,6 +117,7 @@ public class ApiRuleItemConfigServiceImpl implements ApiRuleItemConfigService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
edit
(
ApiRuleItemConfigEditRequest
request
)
{
Result
<
RuleItemConfig
>
result
=
checkRuleItemConfigIsExist
(
request
.
getRuleItemBizId
());
RuleItemConfig
ruleItemConfig
=
result
.
getData
();
...
...
@@ -150,6 +153,7 @@ public class ApiRuleItemConfigServiceImpl implements ApiRuleItemConfigService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
del
(
String
ruleItemBizId
)
{
return
null
;
}
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiSecondHolderServiceImpl.java
View file @
4941ad5f
...
...
@@ -55,6 +55,7 @@ public class ApiSecondHolderServiceImpl implements ApiSecondHolderService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
edit
(
ApiSecondHolderInfoDto
apiSecondHolderInfoDto
)
{
//编辑预约入参字段校验 - 第二持有人信息字段校验
apiAppointmentCheckService
.
checkEditApiSecondHolderInfoDto
(
apiSecondHolderInfoDto
);
...
...
@@ -97,6 +98,7 @@ public class ApiSecondHolderServiceImpl implements ApiSecondHolderService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
<
SecondHolder
>
editSecondHolderData
(
ApiSecondHolderInfoDto
dto
,
String
appointmentBizId
)
{
if
(
Objects
.
isNull
(
dto
)){
//为空
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiTaxationServiceImpl.java
View file @
4941ad5f
...
...
@@ -13,6 +13,7 @@ import lombok.extern.slf4j.Slf4j;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
java.util.ArrayList
;
...
...
@@ -32,6 +33,7 @@ public class ApiTaxationServiceImpl implements ApiTaxationService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
saveTaxationList
(
ApiObjectTaxationDto
dto
)
{
//先删后新增
iTaxationService
.
delByObjectBizId
(
dto
.
getObjectBizId
());
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiVariableServiceImpl.java
View file @
4941ad5f
...
...
@@ -30,6 +30,7 @@ import org.apache.commons.lang3.StringUtils;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
java.util.ArrayList
;
...
...
@@ -93,6 +94,7 @@ public class ApiVariableServiceImpl implements ApiVariableService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
add
(
ApiVariableAddRequest
request
)
{
//校验变量中文名唯一性
List
<
Variable
>
variableList
=
iVariableService
.
queryList
(
VariableDto
.
builder
()
...
...
@@ -150,6 +152,7 @@ public class ApiVariableServiceImpl implements ApiVariableService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
edit
(
ApiVariableEditRequest
request
)
{
//校验变量信息是否存在
Result
<
Variable
>
result
=
checkVariableIsExist
(
request
.
getVariableBizId
());
...
...
@@ -209,6 +212,7 @@ public class ApiVariableServiceImpl implements ApiVariableService {
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
del
(
String
variableBizId
)
{
return
null
;
}
...
...
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/appointment/ApiAppointmentInfoDto.java
View file @
4941ad5f
...
...
@@ -68,19 +68,19 @@ public class ApiAppointmentInfoDto {
* 签单日
*/
@NotNull
(
message
=
"签约信息-签单日不能为空"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTime
signDate
;
/**
* 到港时间
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTime
arrivalTime
;
/**
* 离港时间
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTime
departureTime
;
/**
...
...
@@ -126,13 +126,13 @@ public class ApiAppointmentInfoDto {
/**
* 开户时间段(开始)
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTime
openAccountStartTime
;
/**
* 开户时间段(结束)
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTime
openAccountEndTime
;
/**
...
...
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/appointment/ApiBeneficiaryInfoDto.java
View file @
4941ad5f
...
...
@@ -59,7 +59,7 @@ public class ApiBeneficiaryInfoDto {
/**
* 出生日期(生日,如果是身份证,自动获取性别和生日)
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTime
birthday
;
/**
...
...
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/appointment/ApiInsurantInfoDto.java
View file @
4941ad5f
...
...
@@ -49,8 +49,8 @@ public class ApiInsurantInfoDto {
/**
* 姓名-中文
*/
@NotBlank
(
message
=
"受保人-姓名(中文)不能为空"
,
groups
=
GroupValid
.
NotSelf
.
class
)
@Pattern
(
regexp
=
"^
[\u4e00-\u9fa5]{2,6}
$"
,
message
=
"受保人-姓名(中文)必须为2-6位汉字"
,
groups
=
GroupValid
.
NotSelf
.
class
)
//
@NotBlank(message = "受保人-姓名(中文)不能为空", groups = GroupValid.NotSelf.class)
@Pattern
(
regexp
=
"^
(|[\u4e00-\u9fa5]{2,6})
$"
,
message
=
"受保人-姓名(中文)必须为2-6位汉字"
,
groups
=
GroupValid
.
NotSelf
.
class
)
private
String
nameCn
;
/**
...
...
@@ -79,19 +79,19 @@ public class ApiInsurantInfoDto {
* 出生日期(生日,如果是身份证,自动获取性别和生日)
*/
@NotNull
(
message
=
"受保人-生日不能为空"
,
groups
=
GroupValid
.
NotSelf
.
class
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTime
birthday
;
@AssertTrue
(
message
=
"受保人-必须大于18周岁"
,
groups
=
GroupValid
.
NotSelf
.
class
)
public
boolean
isBirthdayValid
()
{
if
(
birthday
==
null
)
{
// @NotNull 会处理空值
return
true
;
}
LocalDateTime
now
=
LocalDateTime
.
now
();
// 计算年龄
int
age
=
Period
.
between
(
birthday
.
toLocalDate
(),
now
.
toLocalDate
()).
getYears
();
return
age
>
18
;
}
//
@AssertTrue(message = "受保人-必须大于18周岁", groups = GroupValid.NotSelf.class)
//
public boolean isBirthdayValid() {
//
if (birthday == null) {
//
// @NotNull 会处理空值
//
return true;
//
}
//
LocalDateTime now = LocalDateTime.now();
//
// 计算年龄
//
int age = Period.between(birthday.toLocalDate(), now.toLocalDate()).getYears();
//
return age > 18;
//
}
/**
* 年龄(通过生日自动获取年龄)
...
...
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/appointment/ApiPolicyholderInfoDto.java
View file @
4941ad5f
...
...
@@ -42,8 +42,8 @@ public class ApiPolicyholderInfoDto {
/**
* 姓名-中文
*/
@NotBlank
(
message
=
"投保人-姓名(中文)不能为空"
)
@Pattern
(
regexp
=
"^
[\u4e00-\u9fa5]{2,6}$"
,
message
=
"投保人-姓名(中文)必须为2-6位汉字"
)
//
@NotBlank(message = "投保人-姓名(中文)不能为空")
@Pattern
(
regexp
=
"^
(|[\u4e00-\u9fa5]{2,6})$"
,
message
=
"投保人-姓名(中文)必须为2-6位汉字"
)
private
String
nameCn
;
/**
...
...
@@ -72,7 +72,7 @@ public class ApiPolicyholderInfoDto {
* 出生日期(生日,如果是身份证,自动获取性别和生日)
*/
@NotNull
(
message
=
"投保人-生日不能为空"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTime
birthday
;
@AssertTrue
(
message
=
"投保人-必须大于18周岁"
)
public
boolean
isBirthdayValid
()
{
...
...
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/appointment/ApiProductPlanMainInfoDto.java
View file @
4941ad5f
...
...
@@ -127,7 +127,7 @@ public class ApiProductPlanMainInfoDto {
/**
* 回溯日期
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTime
backtrackDate
;
/**
...
...
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/appointment/ApiSecondHolderInfoDto.java
View file @
4941ad5f
...
...
@@ -48,6 +48,6 @@ public class ApiSecondHolderInfoDto {
/**
* 出生日期(生日,如果是身份证,自动获取性别和生日)
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTime
birthday
;
}
yd-csf-feign/src/main/java/com/yd/csf/feign/request/appointment/ApiAppointmentEditConfirmTimeRequest.java
View file @
4941ad5f
...
...
@@ -19,6 +19,6 @@ public class ApiAppointmentEditConfirmTimeRequest {
* 确定预约时间
*/
@NotNull
(
message
=
"确定预约时间不能为空"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTime
confirmAppointmentTime
;
}
yd-csf-feign/src/main/java/com/yd/csf/feign/request/appointment/ApiAppointmentPageRequest.java
View file @
4941ad5f
...
...
@@ -39,12 +39,12 @@ public class ApiAppointmentPageRequest extends PageDto {
/**
* 确定预约开始时间
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTime
startTime
;
/**
* 确定预约结束时间
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTime
endTime
;
}
yd-csf-feign/src/main/java/com/yd/csf/feign/request/commissionruleconfig/ApiCommissionRuleConfigAddRequest.java
View file @
4941ad5f
...
...
@@ -24,13 +24,13 @@ public class ApiCommissionRuleConfigAddRequest {
/**
* 生效开始日期
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTime
effectiveStart
;
/**
* 生效结束日期
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTime
effectiveEnd
;
/**
...
...
yd-csf-feign/src/main/java/com/yd/csf/feign/request/commissionruleconfig/ApiCommissionRuleConfigEditRequest.java
View file @
4941ad5f
...
...
@@ -29,13 +29,13 @@ public class ApiCommissionRuleConfigEditRequest {
/**
* 生效开始日期
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTime
effectiveStart
;
/**
* 生效结束日期
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTime
effectiveEnd
;
/**
...
...
yd-csf-feign/src/main/java/com/yd/csf/feign/request/policyreceipt/ApiPolicyReceiptAddRequest.java
View file @
4941ad5f
...
...
@@ -21,7 +21,7 @@ public class ApiPolicyReceiptAddRequest {
* 回执日期
*/
@NotNull
(
message
=
"回执日期不能为空"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTime
receiptDate
;
/**
...
...
yd-csf-feign/src/main/java/com/yd/csf/feign/request/policyreceipt/ApiPolicyReceiptEditRequest.java
View file @
4941ad5f
...
...
@@ -27,7 +27,7 @@ public class ApiPolicyReceiptEditRequest {
* 回执日期
*/
@NotNull
(
message
=
"回执日期不能为空"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTime
receiptDate
;
/**
...
...
yd-csf-feign/src/main/java/com/yd/csf/feign/request/premiumreconciliation/ApiPremiumReconciliationResultEditRequest.java
View file @
4941ad5f
...
...
@@ -46,13 +46,13 @@ public class ApiPremiumReconciliationResultEditRequest {
/**
* 生效日期(保单生效日)
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
effectiveDate
;
/**
* 保单核保日
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
underwritingDate
;
/**
...
...
@@ -63,13 +63,13 @@ public class ApiPremiumReconciliationResultEditRequest {
/**
* 冷静期结束日期
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
coolingOffEndDate
;
/**
* 保单截止日期
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
policyExpirationDate
;
}
yd-csf-service/src/main/java/com/yd/csf/service/component/CommissionAsyncService.java
View file @
4941ad5f
...
...
@@ -18,6 +18,7 @@ import org.apache.commons.collections4.CollectionUtils;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
...
...
@@ -40,7 +41,7 @@ public class CommissionAsyncService {
private
CommissionCompareRecordService
commissionCompareRecordService
;
// @Async("commonAsyncExecutor")
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
propagation
=
Propagation
.
REQUIRES_NEW
)
public
void
commissionCompareBatch
(
List
<
Commission
>
entities
)
{
// 根据是否关联保单号,来区分比对方式
List
<
Commission
>
hasPolicyNoList
=
new
ArrayList
<>();
...
...
yd-csf-service/src/main/java/com/yd/csf/service/config/AsyncConfig.java
View file @
4941ad5f
...
...
@@ -4,6 +4,8 @@ import org.springframework.context.annotation.Bean;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.scheduling.annotation.EnableAsync
;
import
org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor
;
import
org.springframework.web.context.request.RequestAttributes
;
import
org.springframework.web.context.request.RequestContextHolder
;
import
java.util.concurrent.Executor
;
import
java.util.concurrent.ThreadPoolExecutor
;
...
...
@@ -37,20 +39,53 @@ public class AsyncConfig {
return
executor
;
}
// /**
// * 通用异步任务线程池
// */
// @Bean("commonAsyncExecutor")
// public Executor commonAsyncExecutor() {
// ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
// executor.setCorePoolSize(5);
// executor.setMaxPoolSize(10);
// executor.setQueueCapacity(50);
// executor.setThreadNamePrefix("common-async-");
// executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
// executor.setWaitForTasksToCompleteOnShutdown(true);
// executor.setAwaitTerminationSeconds(30);
// executor.setKeepAliveSeconds(30);
// executor.initialize();
// return executor;
// }
/**
* 通用异步任务线程池
* @return
*/
@Bean
(
"commonAsyncExecutor"
)
public
Executor
commonAsyncExecutor
()
{
@Bean
(
name
=
"commonAsyncExecutor"
)
public
ThreadPoolTask
Executor
commonAsyncExecutor
()
{
ThreadPoolTaskExecutor
executor
=
new
ThreadPoolTaskExecutor
();
executor
.
setCorePoolSize
(
5
);
executor
.
setMaxPoolSize
(
10
);
executor
.
setQueueCapacity
(
50
);
// 设置核心线程数、最大线程数、队列容量等参数...
executor
.
setCorePoolSize
(
10
);
executor
.
setMaxPoolSize
(
20
);
executor
.
setQueueCapacity
(
100
);
executor
.
setThreadNamePrefix
(
"common-async-"
);
executor
.
setRejectedExecutionHandler
(
new
ThreadPoolExecutor
.
CallerRunsPolicy
());
executor
.
setWaitForTasksToCompleteOnShutdown
(
true
);
executor
.
setAwaitTerminationSeconds
(
30
);
executor
.
setKeepAliveSeconds
(
30
);
// 设置 TaskDecorator,用于传递 RequestAttributes
executor
.
setTaskDecorator
(
runnable
->
{
// 获取当前线程的 RequestAttributes
RequestAttributes
attributes
=
RequestContextHolder
.
getRequestAttributes
();
return
()
->
{
try
{
// 将 RequestAttributes 设置到子线程中
RequestContextHolder
.
setRequestAttributes
(
attributes
);
runnable
.
run
();
}
finally
{
// 任务完成后清空,避免内存泄漏
RequestContextHolder
.
resetRequestAttributes
();
}
};
});
executor
.
initialize
();
return
executor
;
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/config/CsfMybatisPlusConfig.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
config
;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.annotation.DbType
;
import
com.baomidou.mybatisplus.core.handlers.MetaObjectHandler
;
import
com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor
;
import
com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor
;
import
com.yd.auth.core.dto.AuthUserDto
;
import
com.yd.auth.core.utils.SecurityUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.ibatis.reflection.MetaObject
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Primary
;
import
java.time.LocalDateTime
;
@Slf4j
@Configuration
public
class
CsfMybatisPlusConfig
{
...
...
@@ -25,21 +31,45 @@ public class CsfMybatisPlusConfig {
}
/**
* 自动填充字段配置(如创建
时间、更新时间
)
* 自动填充字段配置(如创建
人、更新人等
)
*/
@Bean
@Primary
public
MetaObjectHandler
metaObjectHandler
()
{
log
.
info
(
"MetaObjectHandler Bean 正在创建..."
,
"MetaObjectHandler Bean 正在创建=========="
);
return
new
MetaObjectHandler
()
{
@Override
public
void
insertFill
(
MetaObject
metaObject
)
{
this
.
strictInsertFill
(
metaObject
,
"createTime"
,
LocalDateTime
.
class
,
LocalDateTime
.
now
());
//获取Security上下文当前用户的登录信息
AuthUserDto
authUserDto
=
null
;
try
{
authUserDto
=
SecurityUtil
.
getCurrentLoginUser
();
}
catch
(
Exception
e
)
{
log
.
info
(
"获取Security上下文当前用户的登录信息失败,{}"
,
e
.
getMessage
());
}
log
.
info
(
"metaObjectHandler=======insertFill自动填充获取用户信息:{}"
,
JSON
.
toJSONString
(
authUserDto
));
if
(
authUserDto
!=
null
)
{
//自动注入创建人和创建用户名
this
.
strictInsertFill
(
metaObject
,
"creatorId"
,
String
.
class
,
authUserDto
.
getUserBizId
());
this
.
strictInsertFill
(
metaObject
,
"creatorName"
,
String
.
class
,
authUserDto
.
getUsername
());
}
}
@Override
public
void
updateFill
(
MetaObject
metaObject
)
{
this
.
strictUpdateFill
(
metaObject
,
"updateTime"
,
LocalDateTime
.
class
,
LocalDateTime
.
now
());
//获取Security上下文当前用户的登录信息
AuthUserDto
authUserDto
=
null
;
try
{
authUserDto
=
SecurityUtil
.
getCurrentLoginUser
();
}
catch
(
Exception
e
)
{
log
.
info
(
"获取Security上下文当前用户的登录信息失败,{}"
,
e
.
getMessage
());
}
log
.
info
(
"metaObjectHandler=======updateFill自动填充获取用户信息:{}"
,
JSON
.
toJSONString
(
authUserDto
));
if
(
authUserDto
!=
null
)
{
//自动注入更新人和更新用户名
this
.
strictUpdateFill
(
metaObject
,
"updaterId"
,
String
.
class
,
authUserDto
.
getUserBizId
());
this
.
strictUpdateFill
(
metaObject
,
"updaterName"
,
String
.
class
,
authUserDto
.
getUsername
());
}
}
};
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionExpectedQueryRequest.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
dto
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.yd.common.dto.PageDto
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
java.time.LocalDate
;
import
java.util.Date
;
import
java.util.List
;
...
...
@@ -32,15 +32,13 @@ public class CommissionExpectedQueryRequest extends PageDto {
* 预计入账日期开始 格式:yyyy-MM-dd
*/
@Schema
(
description
=
"预计入账日期开始 格式:yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
commissionDateStart
;
private
LocalDate
commissionDateStart
;
/**
* 预计入账日期结束 格式:yyyy-MM-dd
*/
@Schema
(
description
=
"预计入账日期结束 格式:yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
commissionDateEnd
;
private
LocalDate
commissionDateEnd
;
/**
* 入账期数
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/CustomerAddRequest.java
View file @
4941ad5f
...
...
@@ -5,6 +5,7 @@ import com.yd.csf.service.vo.AddressVO;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
javax.validation.constraints.Pattern
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
...
...
@@ -22,9 +23,15 @@ public class CustomerAddRequest implements Serializable {
private
String
fnaBizId
;
/**
* 客户ID
*/
private
String
customerBizId
;
/**
* 姓名-中文
*/
@Schema
(
description
=
"姓名-中文"
)
@Pattern
(
regexp
=
"^(|[\u4e00-\u9fa5]{2,6})$"
,
message
=
"投保人-姓名(中文)必须为2-6位汉字"
)
private
String
nameCn
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/CustomerUpdateRequest.java
View file @
4941ad5f
...
...
@@ -5,6 +5,7 @@ import com.yd.csf.service.vo.AddressVO;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
javax.validation.constraints.Pattern
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
...
...
@@ -32,6 +33,7 @@ public class CustomerUpdateRequest implements Serializable {
* 姓名-中文
*/
@Schema
(
description
=
"姓名-中文"
)
@Pattern
(
regexp
=
"^(|[\u4e00-\u9fa5]{2,6})$"
,
message
=
"投保人-姓名(中文)必须为2-6位汉字"
)
private
String
nameCn
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/FortuneAccountExportDTO.java
View file @
4941ad5f
...
...
@@ -17,9 +17,13 @@ public class FortuneAccountExportDTO implements Serializable {
@ExcelProperty
(
"转介人"
)
private
String
broker
;
private
String
brokerBizId
;
@ExcelProperty
(
"所属团队"
)
private
String
team
;
private
String
teamBizId
;
@ExcelProperty
(
"出账币种"
)
private
String
currency
;
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/PolicyFollowDto.java
View file @
4941ad5f
...
...
@@ -150,7 +150,7 @@ public class PolicyFollowDto implements Serializable {
private
String
insuranceCompanyBizId
;
@Schema
(
description
=
"对账公司"
)
private
String
reconciliationCompany
Name
;
private
String
reconciliationCompany
;
@Schema
(
description
=
"对账公司编码"
)
private
String
reconciliationCode
;
...
...
@@ -239,4 +239,7 @@ public class PolicyFollowDto implements Serializable {
@Schema
(
description
=
"保单类型: 1-电子, 2-纸质"
)
private
String
policyType
;
@Schema
(
description
=
"专业投资者: Yes/No"
)
private
String
professionalInvestor
;
}
yd-csf-service/src/main/java/com/yd/csf/service/dto/PolicyFollowQueryRequest.java
View file @
4941ad5f
...
...
@@ -53,8 +53,7 @@ public class PolicyFollowQueryRequest extends PageDto implements Serializable {
* 最晚缴费日期
*/
@Schema
(
description
=
"最晚缴费日期 格式: yyyy-MM-dd"
,
example
=
"2023-01-01"
,
format
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
latestPaymentDate
;
private
String
latestPaymentDate
;
/**
* 投保人业务id列表
...
...
@@ -84,7 +83,7 @@ public class PolicyFollowQueryRequest extends PageDto implements Serializable {
* 缴费年期
*/
@Schema
(
description
=
"缴费年期"
)
private
String
issueNumber
;
private
Integer
issueNumber
;
private
static
final
long
serialVersionUID
=
1L
;
}
\ No newline at end of file
yd-csf-service/src/main/java/com/yd/csf/service/dto/QueryPolicyAndBrokerDto.java
View file @
4941ad5f
...
...
@@ -35,6 +35,11 @@ public class QueryPolicyAndBrokerDto {
private
String
productCode
;
/**
* 保险公司业务id
*/
private
String
insuranceCompanyBizId
;
/**
* 供款年期(字典)
*/
private
Integer
paymentTerm
;
...
...
yd-csf-service/src/main/java/com/yd/csf/service/enums/CommissionStatusEnum.java
View file @
4941ad5f
...
...
@@ -30,4 +30,13 @@ public enum CommissionStatusEnum {
public
String
getItemValue
()
{
return
itemValue
;
}
public
static
String
toLabel
(
String
itemValue
)
{
for
(
CommissionStatusEnum
anEnum
:
CommissionStatusEnum
.
values
())
{
if
(
anEnum
.
itemValue
.
equals
(
itemValue
))
{
return
anEnum
.
getItemLabel
();
}
}
return
""
;
}
}
yd-csf-service/src/main/java/com/yd/csf/service/enums/CurrencyEnum.java
View file @
4941ad5f
...
...
@@ -17,8 +17,8 @@ import org.apache.commons.lang3.ObjectUtils;
public
enum
CurrencyEnum
{
// 货币枚举
USD
(
"美元"
,
"USD"
),
CNY
(
"人民
幣
"
,
"CNY"
),
HKD
(
"港
幣
"
,
"HKD"
),
CNY
(
"人民
币
"
,
"CNY"
),
HKD
(
"港
币
"
,
"HKD"
),
AUD
(
"澳元"
,
"AUD"
),
JPY
(
"日元"
,
"JPY"
),
CAD
(
"加元"
,
"CAD"
),
...
...
@@ -65,4 +65,13 @@ public enum CurrencyEnum {
public
String
getItemValue
()
{
return
itemValue
;
}
public
static
String
toLabel
(
String
itemValue
)
{
for
(
CurrencyEnum
anEnum
:
CurrencyEnum
.
values
())
{
if
(
anEnum
.
itemValue
.
equalsIgnoreCase
(
itemValue
))
{
return
anEnum
.
getItemLabel
();
}
}
return
""
;
}
}
yd-csf-service/src/main/java/com/yd/csf/service/helper/SpeciesConditionMatcher.java
0 → 100644
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
helper
;
import
org.apache.commons.lang3.StringUtils
;
import
java.math.BigDecimal
;
/**
* 规格条件匹配器
*/
public
class
SpeciesConditionMatcher
{
/**
* 判断条件是否匹配
* @param typeCode 条件类型代码
* @param conditionValue 配置的条件值
* @param actualValue 实际值
* @return true-匹配,false-不匹配
*/
public
static
boolean
matches
(
String
typeCode
,
String
conditionValue
,
Object
actualValue
)
{
if
(
StringUtils
.
isBlank
(
conditionValue
)
||
actualValue
==
null
)
{
return
false
;
}
String
actualValueStr
=
String
.
valueOf
(
actualValue
);
// 范围匹配类型
if
(
"AGE"
.
equals
(
typeCode
)
||
"PREMIUM"
.
equals
(
typeCode
))
{
return
matchesRange
(
conditionValue
,
actualValue
);
}
// 精确匹配类型(包括专业投资者,不区分大小写)
if
(
"PROFESSIONAL"
.
equals
(
typeCode
))
{
return
conditionValue
.
equalsIgnoreCase
(
actualValueStr
);
}
// 其他类型精确匹配
return
conditionValue
.
equals
(
actualValueStr
);
}
/**
* 范围匹配
* 支持格式:
* - "0-10" 表示 (0, 10] 左开右闭区间
* - "10-" 表示 > 10
* - "-10" 表示 <= 10
* - "10" 表示等于 10
* - "0-64岁" 表示 (0, 64] 左开右闭区间
*/
private
static
boolean
matchesRange
(
String
conditionValue
,
Object
actualValue
)
{
try
{
BigDecimal
actual
=
toBigDecimal
(
actualValue
);
// 解析范围表达式
String
expression
=
conditionValue
.
replace
(
"岁"
,
""
).
trim
();
if
(!
expression
.
contains
(
"-"
))
{
// 单个值 "10"
BigDecimal
value
=
new
BigDecimal
(
expression
);
return
actual
.
compareTo
(
value
)
==
0
;
}
String
[]
parts
=
expression
.
split
(
"-"
,
-
1
);
if
(
parts
.
length
!=
2
)
{
return
false
;
}
String
left
=
parts
[
0
].
trim
();
String
right
=
parts
[
1
].
trim
();
if
(
left
.
isEmpty
()
&&
right
.
isEmpty
())
{
// "-" 无效
return
false
;
}
else
if
(
left
.
isEmpty
())
{
// "-10" 表示 <= 10
BigDecimal
max
=
new
BigDecimal
(
right
);
return
actual
.
compareTo
(
max
)
<=
0
;
}
else
if
(
right
.
isEmpty
())
{
// "10-" 表示 > 10
BigDecimal
min
=
new
BigDecimal
(
left
);
return
actual
.
compareTo
(
min
)
>
0
;
}
else
{
// "0-10" 表示 (0, 10]
BigDecimal
min
=
new
BigDecimal
(
left
);
BigDecimal
max
=
new
BigDecimal
(
right
);
return
actual
.
compareTo
(
min
)
>
0
&&
actual
.
compareTo
(
max
)
<=
0
;
}
}
catch
(
Exception
e
)
{
return
false
;
}
}
/**
* 将对象转换为 BigDecimal
*/
private
static
BigDecimal
toBigDecimal
(
Object
value
)
{
if
(
value
instanceof
BigDecimal
)
{
return
(
BigDecimal
)
value
;
}
if
(
value
instanceof
Number
)
{
return
new
BigDecimal
(
value
.
toString
());
}
// 处理 "0-64岁" 格式,提取第一个数字
String
str
=
String
.
valueOf
(
value
).
replace
(
"岁"
,
""
).
trim
();
if
(
str
.
contains
(
"-"
))
{
str
=
str
.
split
(
"-"
)[
0
];
}
return
new
BigDecimal
(
str
);
}
/**
* 获取条件名称
*/
public
static
String
getConditionName
(
String
typeCode
)
{
switch
(
typeCode
)
{
case
"PAYMENT_TERM"
:
return
"供款年期"
;
case
"RECONCILIATION_COMPANY"
:
return
"出单经纪公司"
;
case
"AGE"
:
return
"投保年龄"
;
case
"PREMIUM"
:
return
"期缴保费"
;
case
"PROFESSIONAL_INVESTOR"
:
return
"专业投资者"
;
case
"POLICY_CURRENCY"
:
return
"保单币种"
;
case
"GUARANTEE_PERIOD"
:
return
"保障年期"
;
default
:
return
typeCode
;
}
}
}
yd-csf-service/src/main/java/com/yd/csf/service/model/Additional.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
...
...
@@ -134,13 +131,13 @@ public class Additional implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/AgentAccumulatedFyc.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.
IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.
*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
lombok.Getter
;
import
lombok.Setter
;
/**
* <p>
...
...
@@ -88,13 +86,13 @@ public class AgentAccumulatedFyc implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/AgentDetailFyc.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.
IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.
*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
lombok.Getter
;
import
lombok.Setter
;
/**
* <p>
...
...
@@ -118,13 +116,13 @@ public class AgentDetailFyc implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/AgentManageRelation.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 管理关系表((团队的形成来自这张表,谁在最高级就是团长))
...
...
@@ -87,13 +85,13 @@ public class AgentManageRelation implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/AgentReferralRelation.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 推荐关系表
...
...
@@ -99,13 +97,13 @@ public class AgentReferralRelation implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/AgentTutoringRelation.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 辅导关系表
...
...
@@ -93,13 +91,13 @@ public class AgentTutoringRelation implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/Appointment.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
...
...
@@ -342,19 +339,19 @@ public class Appointment implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 创建人用户名
*/
@TableField
(
"creator_name"
)
@TableField
(
value
=
"creator_name"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorName
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/AppointmentFile.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 预约附件信息表
...
...
@@ -72,19 +70,19 @@ public class AppointmentFile implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 创建人名称
*/
@TableField
(
"creator_name"
)
@TableField
(
value
=
"creator_name"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorName
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/AppointmentLog.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 预约信息日志表(快照表)
...
...
@@ -306,19 +304,19 @@ public class AppointmentLog implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 创建人用户名
*/
@TableField
(
"creator_name"
)
@TableField
(
value
=
"creator_name"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorName
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/AppointmentReferrer.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 预约-转介人信息表
...
...
@@ -84,13 +82,13 @@ public class AppointmentReferrer implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/AppointmentReferrerLog.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 预约-转介人信息日志表(快照表)
...
...
@@ -84,13 +82,13 @@ public class AppointmentReferrerLog implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/AppointmentUserSign.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 预约-签单员信息表
...
...
@@ -114,13 +112,13 @@ public class AppointmentUserSign implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/AppointmentUserSignLog.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 预约-签单员信息日志表(快照表)
...
...
@@ -114,13 +112,13 @@ public class AppointmentUserSignLog implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/BatchPolicy.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.
IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.
*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
lombok.Getter
;
import
lombok.Setter
;
/**
* <p>
...
...
@@ -88,13 +86,13 @@ public class BatchPolicy implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/Beneficiary.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
...
...
@@ -110,13 +107,13 @@ public class Beneficiary implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/CarApply.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 车辆预约申请表
...
...
@@ -141,13 +139,13 @@ public class CarApply implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/ClientRole.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 客户端角色表
...
...
@@ -87,13 +85,13 @@ public class ClientRole implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/Commission.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.util.Date
;
import
lombok.Data
;
/**
* 保单来佣表
*
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/CommissionCompareRecord.java
View file @
4941ad5f
...
...
@@ -4,15 +4,15 @@ import com.baomidou.mybatisplus.annotation.IdType;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
* 来佣比对记录表
* @TableName commission_compare_record
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/CommissionEditRecord.java
View file @
4941ad5f
...
...
@@ -4,13 +4,13 @@ import com.baomidou.mybatisplus.annotation.IdType;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.util.Date
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* 来佣修改记录表
* @TableName commission_edit_record
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/CommissionExpected.java
View file @
4941ad5f
...
...
@@ -4,13 +4,12 @@ import com.baomidou.mybatisplus.annotation.IdType;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
lombok.Data
;
/**
* 预计来佣表
*
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/CommissionResult.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.
IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.
*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
lombok.Getter
;
import
lombok.Setter
;
/**
* <p>
...
...
@@ -94,13 +92,13 @@ public class CommissionResult implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/CommissionRuleBinding.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 基本法绑定表 - 存储基本法与业务员或团队的绑定关系,支持灵活的权限分配
...
...
@@ -105,13 +103,13 @@ public class CommissionRuleBinding implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/CommissionRuleConfig.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 基本法配置表
...
...
@@ -105,13 +103,13 @@ public class CommissionRuleConfig implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/CommissionSqlTemplate.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* SQL模板表 - 存储所有佣金计算相关的动态SQL模板,支持灵活配置和参数化查询,实现业务逻辑与代码解耦
...
...
@@ -111,13 +109,13 @@ public class CommissionSqlTemplate implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/ConditionConfig.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.
IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.
*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
lombok.Getter
;
import
lombok.Setter
;
/**
* <p>
...
...
@@ -136,13 +134,13 @@ public class ConditionConfig implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/ConditionType.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 条件类型表
...
...
@@ -81,13 +79,13 @@ public class ConditionType implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/Customer.java
View file @
4941ad5f
...
...
@@ -4,10 +4,11 @@ import com.baomidou.mybatisplus.annotation.IdType;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
lombok.Data
;
/**
* 客户信息表
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/CustomerExpand.java
View file @
4941ad5f
...
...
@@ -4,13 +4,12 @@ import com.baomidou.mybatisplus.annotation.IdType;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
lombok.Data
;
/**
* CSF客户信息扩展表
*
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/ExpectedFortune.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
lombok.Getter
;
import
lombok.Setter
;
/**
* <p>
* 预计发佣表
...
...
@@ -265,13 +261,13 @@ public class ExpectedFortune implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/ExpectedFortuneLog.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 生成预计发佣日志记录表
...
...
@@ -63,13 +61,13 @@ public class ExpectedFortuneLog implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/Fna.java
View file @
4941ad5f
...
...
@@ -4,9 +4,10 @@ import com.baomidou.mybatisplus.annotation.TableField;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableLogic
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
import
lombok.Data
;
/**
* fna表
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/FnaCustomer.java
View file @
4941ad5f
...
...
@@ -4,13 +4,12 @@ import com.baomidou.mybatisplus.annotation.IdType;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
lombok.Data
;
/**
* 客户信息表
*
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/FnaForm.java
View file @
4941ad5f
...
...
@@ -4,13 +4,10 @@ import com.baomidou.mybatisplus.annotation.IdType;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
import
com.yd.csf.service.dto.DependantData
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
/**
* fna表单表
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/FormulaConfig.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 公式配置表
...
...
@@ -111,13 +109,13 @@ public class FormulaConfig implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/Fortune.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.time.LocalDate
;
import
java.util.Date
;
import
lombok.Data
;
/**
* 保单出账表
*
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/FortuneAccount.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.List
;
import
lombok.Data
;
/**
* 出账记录表
*
...
...
@@ -34,11 +33,21 @@ public class FortuneAccount implements Serializable {
private
String
broker
;
/**
* 转介人业务id
*/
private
String
brokerBizId
;
/**
* 所属团队
*/
private
String
team
;
/**
* 所属团队业务id
*/
private
String
teamBizId
;
/**
* 出账币种
*/
private
String
currency
;
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/FortuneAccountEditRecord.java
View file @
4941ad5f
...
...
@@ -4,12 +4,12 @@ import com.baomidou.mybatisplus.annotation.IdType;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.util.Date
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* 薪资修订记录表
* @TableName fortune_account_edit_record
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/FycTask.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 业务员积分任务表 - 定时跑批业务员绑定的基本法计算点,算出当前业务员所得的积分(一级管理奖、二级管理奖、辅导津贴奖、终身推荐奖等月末计算,季度结算等)
...
...
@@ -87,13 +85,13 @@ public class FycTask implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/Insurant.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
...
...
@@ -386,13 +383,13 @@ public class Insurant implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/Interests.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.
IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.
*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
lombok.Getter
;
import
lombok.Setter
;
/**
* <p>
...
...
@@ -88,13 +86,13 @@ public class Interests implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/Invitation.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 邀请码表
...
...
@@ -93,13 +91,13 @@ public class Invitation implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/Member.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 会员表
...
...
@@ -111,13 +109,13 @@ public class Member implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/MemberGradeConfig.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.
IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.
*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
lombok.Getter
;
import
lombok.Setter
;
/**
* <p>
...
...
@@ -106,13 +104,13 @@ public class MemberGradeConfig implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/PayoutBatch.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.
IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.
*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
lombok.Getter
;
import
lombok.Setter
;
/**
* <p>
...
...
@@ -118,13 +116,13 @@ public class PayoutBatch implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/Policy.java
View file @
4941ad5f
...
...
@@ -4,18 +4,12 @@ import com.baomidou.mybatisplus.annotation.IdType;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.util.Date
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
/**
* 保单表
*
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyAdditional.java
View file @
4941ad5f
...
...
@@ -4,10 +4,11 @@ import com.baomidou.mybatisplus.annotation.IdType;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
lombok.Data
;
/**
* 保单附加险信息表
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyAgentRelation.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 保单业务员关联表 - 存储保单与业务员的关联关系及佣金分配信息
...
...
@@ -69,13 +67,13 @@ public class PolicyAgentRelation implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyAppointmentFile.java
View file @
4941ad5f
...
...
@@ -4,9 +4,10 @@ import com.baomidou.mybatisplus.annotation.IdType;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
import
lombok.Data
;
/**
* 新单跟进预约附件信息表
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyBeneficiary.java
View file @
4941ad5f
...
...
@@ -4,10 +4,11 @@ import com.baomidou.mybatisplus.annotation.IdType;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
lombok.Data
;
/**
* 受益人信息表
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyBroker.java
View file @
4941ad5f
...
...
@@ -4,9 +4,10 @@ import com.baomidou.mybatisplus.annotation.IdType;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
import
lombok.Data
;
/**
* 保单转介人表
...
...
@@ -37,7 +38,7 @@ public class PolicyBroker implements Serializable {
private
String
brokerName
;
/**
* 转介人业务ID
(客户端用户表唯一业务ID)
* 转介人业务ID
*/
private
String
brokerBizId
;
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyFollow.java
View file @
4941ad5f
...
...
@@ -4,17 +4,12 @@ import com.baomidou.mybatisplus.annotation.IdType;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.util.Date
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
/**
* 新单跟进表
*
...
...
@@ -355,6 +350,11 @@ public class PolicyFollow implements Serializable {
private
String
deliveryNo
;
/**
* 专业投资者: Yes/No
*/
private
String
professionalInvestor
;
/**
* 邮寄物品
*/
private
String
mailingItem
;
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyFollowFile.java
View file @
4941ad5f
...
...
@@ -4,9 +4,10 @@ import com.baomidou.mybatisplus.annotation.IdType;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
import
lombok.Data
;
/**
* 新单跟进附件信息表
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyFollowRecord.java
View file @
4941ad5f
...
...
@@ -4,9 +4,10 @@ import com.baomidou.mybatisplus.annotation.IdType;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
import
lombok.Data
;
/**
* 新单跟进记录表
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyInsurant.java
View file @
4941ad5f
...
...
@@ -4,10 +4,11 @@ import com.baomidou.mybatisplus.annotation.IdType;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
lombok.Data
;
/**
* 保单受保人信息表
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyPolicyholder.java
View file @
4941ad5f
...
...
@@ -4,10 +4,11 @@ import com.baomidou.mybatisplus.annotation.IdType;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
lombok.Data
;
/**
* 保单投保人信息表
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyReceipt.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 保单回执表
...
...
@@ -76,13 +73,13 @@ public class PolicyReceipt implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicySecondHolder.java
View file @
4941ad5f
...
...
@@ -4,9 +4,10 @@ import com.baomidou.mybatisplus.annotation.IdType;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
import
lombok.Data
;
/**
* 第二持有人信息表
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/Policyholder.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.
IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.
*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
lombok.Getter
;
import
lombok.Setter
;
/**
* <p>
...
...
@@ -379,13 +377,13 @@ public class Policyholder implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/PremiumReconciliation.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.
IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.
*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
lombok.Getter
;
import
lombok.Setter
;
/**
* <p>
...
...
@@ -124,13 +122,13 @@ public class PremiumReconciliation implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/PremiumRemittance.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.
IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.
*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
lombok.Getter
;
import
lombok.Setter
;
/**
* <p>
...
...
@@ -118,13 +116,13 @@ public class PremiumRemittance implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/PremiumRemittanceFile.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 保费对账-汇款记录附件表
...
...
@@ -75,19 +73,19 @@ public class PremiumRemittanceFile implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 创建人名
*/
@TableField
(
"creator_name"
)
@TableField
(
value
=
"creator_name"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorName
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/ProductPlan.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
...
...
@@ -209,13 +206,13 @@ public class ProductPlan implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/ReconciliationCompany.java
View file @
4941ad5f
...
...
@@ -4,9 +4,10 @@ import com.baomidou.mybatisplus.annotation.IdType;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
import
lombok.Data
;
/**
* 对账公司表
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/RelAgentCustomer.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 业务员和客户关联表
...
...
@@ -69,13 +67,13 @@ public class RelAgentCustomer implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/RelCustomerInterests.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 权益表
...
...
@@ -81,13 +79,13 @@ public class RelCustomerInterests implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/RelGradeService.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 会员等级和服务关系表
...
...
@@ -87,13 +85,13 @@ public class RelGradeService implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/RelMemberRole.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 客户端角色表
...
...
@@ -75,13 +73,13 @@ public class RelMemberRole implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/RelObjectCondition.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 对象和条件配置关系表
...
...
@@ -93,13 +91,13 @@ public class RelObjectCondition implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/RelObjectFormula.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 对象和公式配置关系表
...
...
@@ -87,13 +85,13 @@ public class RelObjectFormula implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/RelObjectSql.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 对象和SQL模板配置关系表
...
...
@@ -87,13 +85,13 @@ public class RelObjectSql implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/RelServiceInterests.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 服务权益关系表
...
...
@@ -87,13 +85,13 @@ public class RelServiceInterests implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/RelTeamMember.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 团队和会员关系表
...
...
@@ -75,13 +73,13 @@ public class RelTeamMember implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/RelTenantProjectAppointment.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 租户-项目-保险预约关系表
...
...
@@ -66,13 +64,13 @@ public class RelTenantProjectAppointment implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/RuleConditionConfig.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.
IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.
*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
lombok.Getter
;
import
lombok.Setter
;
/**
* <p>
...
...
@@ -154,13 +152,13 @@ public class RuleConditionConfig implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/RuleItemConfig.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 基本法项目配置表
...
...
@@ -105,13 +103,13 @@ public class RuleItemConfig implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/SecondHolder.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
...
...
@@ -97,13 +94,13 @@ public class SecondHolder implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/ServiceConfig.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 服务配置表
...
...
@@ -75,13 +73,13 @@ public class ServiceConfig implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/SpeciesCondition.java
0 → 100644
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
lombok.Data
;
/**
* 规格条件模型
*/
@Data
public
class
SpeciesCondition
{
/**
* 规格类型业务ID
*/
@JsonProperty
(
"speciesTypeBizId"
)
private
String
speciesTypeBizId
;
/**
* 条件类型编码
*/
@JsonProperty
(
"typeCode"
)
private
String
typeCode
;
/**
* 条件类型名称
*/
@JsonProperty
(
"typeName"
)
private
String
typeName
;
/**
* 条件值
*/
@JsonProperty
(
"value"
)
private
String
value
;
/**
* 是否为演示
*/
@JsonProperty
(
"isIllustration"
)
private
String
isIllustration
;
/**
* 演示URL
*/
@JsonProperty
(
"illustrationUrl"
)
private
String
illustrationUrl
;
/**
* 是否为自定义条件
*/
@JsonProperty
(
"isCustomize"
)
private
String
isCustomize
;
}
yd-csf-service/src/main/java/com/yd/csf/service/model/Taxation.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 税务信息表
...
...
@@ -84,13 +82,13 @@ public class Taxation implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/Team.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
...
...
@@ -112,13 +109,13 @@ public class Team implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/Variable.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 变量表
...
...
@@ -99,13 +97,13 @@ public class Variable implements Serializable {
/**
* 创建人ID
*/
@TableField
(
"creator_id"
)
@TableField
(
value
=
"creator_id"
,
fill
=
FieldFill
.
INSERT
)
private
String
creatorId
;
/**
* 更新人ID
*/
@TableField
(
"updater_id"
)
@TableField
(
value
=
"updater_id"
,
fill
=
FieldFill
.
UPDATE
)
private
String
updaterId
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/CommissionExpectedService.java
View file @
4941ad5f
...
...
@@ -14,6 +14,7 @@ import com.yd.csf.service.vo.CommissionExpectedVO;
import
com.yd.csf.service.vo.ReceivableReportVO
;
import
com.yd.product.feign.response.expectedspecies.ApiExpectedSpeciesListResponse
;
import
java.io.IOException
;
import
java.util.List
;
/**
...
...
@@ -59,7 +60,7 @@ public interface CommissionExpectedService extends IService<CommissionExpected>
CommissionExpected
getByBizId
(
String
commissionExpectedBizId
);
void
getExpectedCommissionByProductlaunchId
(
Policy
policy
,
String
productLaunchBizId
,
String
insuranceCompanyBizId
,
String
reconciliationCompany
,
String
reconciliationCompanyCode
,
String
reconciliationCompanyBizId
);
void
getExpectedCommissionByProductlaunchId
(
Policy
policy
,
String
productLaunchBizId
,
String
insuranceCompanyBizId
,
String
reconciliationCompany
,
String
reconciliationCompanyCode
,
String
reconciliationCompanyBizId
,
String
professionalInvestor
);
List
<
ApiExpectedSpeciesListResponse
>
queryExpectedSpeciesByFeign
(
String
productLaunchBizId
);
...
...
@@ -78,4 +79,6 @@ public interface CommissionExpectedService extends IService<CommissionExpected>
* @return 应收款报表VO分页列表
*/
IPage
<
ReceivableReportVO
>
receivableReportPage
(
Page
<
ReceivableReportVO
>
page
,
List
<
Long
>
expectedIds
);
void
testExpectedCommission
(
String
policyNo
,
String
effectiveDate
,
String
coolingOffEndDate
)
throws
IOException
;
}
yd-csf-service/src/main/java/com/yd/csf/service/service/CustomerService.java
View file @
4941ad5f
...
...
@@ -34,4 +34,6 @@ public interface CustomerService extends IService<Customer> {
Boolean
updateCustomer
(
CustomerUpdateRequest
customerUpdateRequest
);
void
queryDependentsNum
(
Customer
customer
);
Customer
queryOneByCustomerBizId
(
String
customerBizId
);
}
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyPolicyholderService.java
View file @
4941ad5f
...
...
@@ -18,4 +18,5 @@ public interface PolicyPolicyholderService extends IService<PolicyPolicyholder>
*/
boolean
update
(
PolicyPolicyholderUpdateRequest
policyPolicyholderUpdateRequest
);
PolicyPolicyholder
queryOne
(
String
policyBizId
);
}
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionExpectedServiceImpl.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
service
.
impl
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.convert.Convert
;
import
cn.hutool.core.date.DatePattern
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.json.JSONUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
...
...
@@ -20,12 +24,12 @@ import com.yd.common.utils.RedisUtil;
import
com.yd.csf.service.component.ReceivableService
;
import
com.yd.csf.service.dto.*
;
import
com.yd.csf.service.enums.CommissionExpectedStatusEnum
;
import
com.yd.csf.service.model.Commission
;
import
com.yd.csf.service.model.CommissionExpected
;
import
com.yd.csf.service.model.Policy
;
import
com.yd.csf.service.model.PolicyFollow
;
import
com.yd.csf.service.enums.PolicyStatusEnum
;
import
com.yd.csf.service.model.*
;
import
com.yd.csf.service.service.*
;
import
com.yd.csf.service.dao.CommissionExpectedMapper
;
import
com.yd.csf.service.model.SpeciesCondition
;
import
com.yd.csf.service.helper.SpeciesConditionMatcher
;
import
com.yd.csf.service.vo.CommissionExpectedStatisticsVO
;
import
com.yd.csf.service.vo.CommissionExpectedVO
;
import
com.yd.csf.service.vo.ReceivableReportVO
;
...
...
@@ -36,21 +40,22 @@ import com.yd.product.feign.client.announcementcommissionratio.ApiAnnouncementCo
import
com.yd.product.feign.client.expectedspecies.ApiExpectedSpeciesFeignClient
;
import
com.yd.product.feign.request.expectedspecies.ApiExpectedSpeciesListRequest
;
import
com.yd.product.feign.response.expectedspecies.ApiExpectedSpeciesListResponse
;
import
com.yd.user.feign.client.sysdict.ApiSysDictFeignClient
;
import
com.yd.user.feign.response.sysdict.GetDictItemListByDictTypeResponse
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.
beans.factory.annotation.Autowired
;
import
org.springframework.
core.io.ClassPathResource
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.StreamUtils
;
import
javax.annotation.Resource
;
import
java.io.IOException
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.nio.charset.StandardCharsets
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.time.ZoneId
;
...
...
@@ -76,8 +81,6 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
private
CommissionService
commissionService
;
@Resource
private
ReceivableService
receivableService
;
@Autowired
private
ApiSysDictFeignClient
apiSysDictFeignClient
;
@Resource
private
ApiExpectedSpeciesFeignClient
apiExpectedSpeciesFeignClient
;
@Resource
...
...
@@ -88,6 +91,8 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
private
ApiExchangeRateFeignClient
apiExchangeRateFeignClient
;
@Resource
private
ApiInsuranceReconciliationCompanyFeignClient
companyFeignClient
;
@Resource
private
CustomerService
customerService
;
// 用于对象转换的ObjectMapper
private
static
final
ObjectMapper
objectMapper
=
new
ObjectMapper
();
...
...
@@ -131,7 +136,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
commissionExpectedVO
.
setReconciliationCompany
(
policy
.
getReconciliationCompany
());
commissionExpectedVO
.
setPolicyCurrency
(
policy
.
getCurrency
());
}
PolicyFollow
policyFollow
=
policyFollowMap
.
get
(
commissionExpected
.
getPolicyNo
());
PolicyFollow
policyFollow
=
policyFollowMap
.
get
(
commissionExpected
.
getPolicyNo
());
if
(
policyFollow
!=
null
)
{
commissionExpectedVO
.
setProductName
(
policyFollow
.
getProductName
());
commissionExpectedVO
.
setProductLaunchBizId
(
policyFollow
.
getProductLaunchBizId
());
...
...
@@ -197,7 +202,8 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
Object
data
=
result
.
getData
();
try
{
// 将 data 转为 JSON 字符串再解析为 Map,以便提取 records
Map
<
String
,
Object
>
dataMap
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
data
),
new
com
.
alibaba
.
fastjson
.
TypeReference
<
Map
<
String
,
Object
>>()
{});
Map
<
String
,
Object
>
dataMap
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
data
),
new
com
.
alibaba
.
fastjson
.
TypeReference
<
Map
<
String
,
Object
>>()
{
});
Object
recordsObj
=
dataMap
.
get
(
"records"
);
if
(
recordsObj
instanceof
List
)
{
List
<?>
recordsList
=
(
List
<?>)
recordsObj
;
...
...
@@ -297,8 +303,8 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
List
<
String
>
insurerCompanyBizIdList
=
commissionExpectedQueryRequest
.
getInsurerCompanyBizIdList
();
List
<
String
>
reconciliationCompanyBizIdList
=
commissionExpectedQueryRequest
.
getReconciliationCompanyBizIdList
();
List
<
String
>
statusList
=
commissionExpectedQueryRequest
.
getStatusList
();
Date
commissionDateStart
=
commissionExpectedQueryRequest
.
getCommissionDateStart
();
Date
commissionDateEnd
=
commissionExpectedQueryRequest
.
getCommissionDateEnd
();
Local
Date
commissionDateStart
=
commissionExpectedQueryRequest
.
getCommissionDateStart
();
Local
Date
commissionDateEnd
=
commissionExpectedQueryRequest
.
getCommissionDateEnd
();
Integer
commissionPeriod
=
commissionExpectedQueryRequest
.
getCommissionPeriod
();
String
productLaunchBizId
=
commissionExpectedQueryRequest
.
getProductLaunchBizId
();
String
commissionBizType
=
commissionExpectedQueryRequest
.
getCommissionBizType
();
...
...
@@ -314,8 +320,8 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
queryWrapper
.
eq
(
ObjectUtils
.
isNotEmpty
(
commissionBizType
),
"commission_biz_type"
,
commissionBizType
);
queryWrapper
.
in
(
ObjectUtils
.
isNotEmpty
(
statusList
),
"status"
,
statusList
);
// 范围查询
queryWrapper
.
g
t
(
ObjectUtils
.
isNotEmpty
(
commissionDateStart
),
"commission_date"
,
commissionDateStart
);
queryWrapper
.
l
t
(
ObjectUtils
.
isNotEmpty
(
commissionDateEnd
),
"commission_date"
,
commissionDateEnd
);
queryWrapper
.
g
e
(
ObjectUtils
.
isNotEmpty
(
commissionDateStart
),
"commission_date"
,
commissionDateStart
);
queryWrapper
.
l
e
(
ObjectUtils
.
isNotEmpty
(
commissionDateEnd
),
"commission_date"
,
commissionDateEnd
);
// 转介人所属团队业务ID 关联保单表查询
if
(
StringUtils
.
isNotBlank
(
teamBizId
))
{
queryWrapper
.
apply
(
"EXISTS (SELECT 1 FROM policy_broker pb WHERE pb.policy_no = commission_expected.policy_no AND pb.team_biz_id = {0})"
,
...
...
@@ -545,11 +551,37 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
expectedStatisticsVO
.
setPendingPaidAmount
(
BigDecimal
.
ZERO
);
expectedStatisticsVO
.
setPaidAmountRatio
(
BigDecimal
.
ZERO
);
expectedStatisticsVO
.
setTotalPolicyCount
(
0
);
expectedStatisticsVO
.
setTotalPremium
(
BigDecimal
.
ZERO
);
return
expectedStatisticsVO
;
}
// 自定义统计数据
CommissionExpectedStatisticsVO
commissionStatistics
=
baseMapper
.
getExpectedStatistics
(
expectedIds
);
// 计算总保费
String
policyNos
=
commissionStatistics
.
getPolicyNos
();
if
(
ObjectUtils
.
isNotEmpty
(
policyNos
))
{
List
<
CommissionExpected
>
commissionExpectedList
=
this
.
listByIds
(
expectedIds
);
Map
<
String
,
BigDecimal
>
exchangeRateMap
=
new
HashMap
<>();
for
(
CommissionExpected
commissionExpected
:
commissionExpectedList
)
{
exchangeRateMap
.
put
(
commissionExpected
.
getPolicyNo
(),
commissionExpected
.
getDefaultExchangeRate
());
}
Set
<
String
>
policyNoSet
=
commissionExpectedList
.
stream
().
map
(
CommissionExpected:
:
getPolicyNo
).
collect
(
Collectors
.
toSet
());
// 查询总保费
List
<
Policy
>
policyList
=
policyService
.
lambdaQuery
().
in
(
Policy:
:
getPolicyNo
,
policyNoSet
).
list
();
BigDecimal
totalPremium
=
BigDecimal
.
ZERO
;
if
(
CollectionUtils
.
isNotEmpty
(
policyList
))
{
for
(
Policy
policy
:
policyList
)
{
BigDecimal
exchangeRate
=
exchangeRateMap
.
getOrDefault
(
policy
.
getPolicyNo
(),
BigDecimal
.
ONE
);
totalPremium
=
totalPremium
.
add
(
policy
.
getTotalPaymentPremium
().
multiply
(
exchangeRate
));
}
commissionStatistics
.
setTotalPremium
(
totalPremium
);
}
}
else
{
commissionStatistics
.
setTotalPremium
(
BigDecimal
.
ZERO
);
}
BigDecimal
totalAmount
=
commissionStatistics
.
getTotalAmount
();
BigDecimal
totalPaidAmount
=
commissionStatistics
.
getTotalPaidAmount
();
// 计算待入账金额
...
...
@@ -572,7 +604,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
getExpectedCommissionByProductlaunchId
(
Policy
policy
,
String
productLaunchBizId
,
String
insuranceCompanyBizId
,
String
reconciliationCompany
,
String
reconciliationCompanyCode
,
String
reconciliationCompanyBizId
)
{
String
insuranceCompanyBizId
,
String
reconciliationCompany
,
String
reconciliationCompanyCode
,
String
reconciliationCompanyBizId
,
String
professionalInvestor
)
{
String
policyNo
=
policy
.
getPolicyNo
();
if
(
ObjectUtils
.
isEmpty
(
policyNo
))
{
throw
new
BusinessException
(
"保单号不能为空"
);
...
...
@@ -586,6 +618,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
throw
new
BusinessException
(
"保單持有人年齡不能为空"
);
}
Date
effectiveDate
=
policy
.
getEffectiveDate
();
log
.
info
(
"getExpectedCommissionByProductlaunchId的effectiveDate生效日期:{}"
,
effectiveDate
);
if
(
effectiveDate
==
null
)
{
throw
new
BusinessException
(
"保单生效日期不能为空"
);
}
...
...
@@ -606,14 +639,15 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
List
<
CommissionExpected
>
commissionExpectedList
=
new
ArrayList
<>();
if
(
CollUtil
.
isNotEmpty
(
expectedSpeciesList
))
{
// 匹配规格并获取不匹配的条件
MatchResult
matchResult
=
matchExpectedSpecies
(
expectedSpeciesList
,
paymentTerm
,
reconciliationCompanyBizId
,
policyHolderAge
,
paymentPremium
,
effectiveDate
);
MatchResult
matchResult
=
matchExpectedSpecies
(
expectedSpeciesList
,
policy
,
professionalInvestor
);
if
(
matchResult
.
getMatchedList
().
isEmpty
())
{
String
errorMsg
=
matchResult
.
getUnmatchedConditions
().
isEmpty
()
?
"未查询到对应供款年期的佣金规格"
:
"未查询到对应供款年期的佣金规格,不匹配条件:"
+
String
.
join
(
"、"
,
matchResult
.
getUnmatchedConditions
());
?
"未查询到预计来佣规格"
:
"未查询到预计来佣规格,不匹配条件:"
+
String
.
join
(
"、"
,
matchResult
.
getUnmatchedConditions
());
log
.
info
(
"未查询到预计来佣规格,产品id:{},当前规格:{}"
,
productLaunchBizId
,
JSONUtil
.
toJsonStr
(
expectedSpeciesList
));
throw
new
BusinessException
(
ResultCode
.
FAIL
.
getCode
(),
errorMsg
);
}
...
...
@@ -698,58 +732,138 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
* 匹配预计规格并返回不匹配的条件
*
* @param expectedSpeciesList 预计规格列表
* @param paymentTerm 供款年期
* @param reconciliationCompanyId 对账公司ID
* @param policyHolderAge 保单持有人年龄
* @param paymentPremium 年缴保费
* @param policy 保单对象
* @return 匹配结果
*/
private
MatchResult
matchExpectedSpecies
(
List
<
ApiExpectedSpeciesListResponse
>
expectedSpeciesList
,
String
paymentTerm
,
String
reconciliationCompanyId
,
Integer
policyHolderAge
,
BigDecimal
paymentPremium
,
Date
effectiveDate
)
{
private
MatchResult
matchExpectedSpecies
(
List
<
ApiExpectedSpeciesListResponse
>
expectedSpeciesList
,
Policy
policy
,
String
professionalInvestor
)
{
List
<
String
>
unmatchedConditions
=
new
ArrayList
<>();
List
<
ApiExpectedSpeciesListResponse
>
currentList
=
expectedSpeciesList
;
// 检查供款年期
currentList
=
filterAndCheck
(
currentList
,
i
->
paymentTerm
.
equals
(
i
.
getPaymentTerm
()),
unmatchedConditions
,
"供款年期["
+
paymentTerm
+
"]"
);
if
(
unmatchedConditions
.
size
()
>
0
)
{
// 1. 生效日期独立验证(第一步)
Date
effectiveDate
=
policy
.
getEffectiveDate
();
List
<
ApiExpectedSpeciesListResponse
>
validDateList
=
filterAndCheck
(
expectedSpeciesList
,
i
->
isEffective
(
i
.
getEffectiveStart
(),
i
.
getEffectiveEnd
(),
effectiveDate
),
unmatchedConditions
,
"生效日期["
+
DateUtil
.
format
(
effectiveDate
,
"yyyy-MM-dd"
)
+
"]"
);
if
(!
unmatchedConditions
.
isEmpty
())
{
return
new
MatchResult
(
Collections
.
emptyList
(),
unmatchedConditions
);
}
// 检查对账公司
currentList
=
filterAndCheck
(
currentList
,
i
->
reconciliationCompanyId
.
equals
(
i
.
getReconciliationCompany
()),
unmatchedConditions
,
"对账公司["
+
reconciliationCompanyId
+
"]"
);
if
(
unmatchedConditions
.
size
()
>
0
)
{
return
new
MatchResult
(
Collections
.
emptyList
(),
unmatchedConditions
);
if
(
validDateList
.
isEmpty
())
{
return
new
MatchResult
(
Collections
.
emptyList
(),
Collections
.
emptyList
());
}
// 检查年龄
currentList
=
filterAndCheck
(
currentList
,
i
->
containsValue
(
i
.
getSpeciesJson
(),
"AGE"
,
Convert
.
toStr
(
policyHolderAge
)),
unmatchedConditions
,
"年龄["
+
policyHolderAge
+
"]"
);
if
(
unmatchedConditions
.
size
()
>
0
)
{
return
new
MatchResult
(
Collections
.
emptyList
(),
unmatchedConditions
);
// 2. 获取第一个规格的条件模板
String
firstSpeciesJson
=
validDateList
.
get
(
0
).
getSpeciesJson
();
List
<
SpeciesCondition
>
conditionTemplates
=
parseSpeciesJson
(
firstSpeciesJson
);
log
.
info
(
"当前佣金匹配条件: {}"
,
JSONUtil
.
toJsonStr
(
conditionTemplates
));
if
(
conditionTemplates
.
isEmpty
())
{
// 没有配置任何条件,返回所有日期验证通过的规格
return
new
MatchResult
(
validDateList
,
Collections
.
emptyList
());
}
// 检查保费
currentList
=
filterAndCheck
(
currentList
,
i
->
containsValue
(
i
.
getSpeciesJson
(),
"PREMIUM"
,
Convert
.
toStr
(
paymentPremium
)),
unmatchedConditions
,
"保费["
+
paymentPremium
+
"]"
);
// 4. 构建实际值映射
Map
<
String
,
Object
>
actualValues
=
buildActualValuesMap
(
policy
,
professionalInvestor
);
// 检查生效日期
currentList
=
filterAndCheck
(
currentList
,
i
->
isEffective
(
i
.
getEffectiveStart
(),
i
.
getEffectiveEnd
(),
effectiveDate
),
unmatchedConditions
,
"生效日期["
+
effectiveDate
+
"]"
);
if
(
unmatchedConditions
.
size
()
>
0
)
{
// 5. 逐个条件类型进行过滤
List
<
ApiExpectedSpeciesListResponse
>
currentList
=
validDateList
;
for
(
SpeciesCondition
conditionTemplate
:
conditionTemplates
)
{
String
typeCode
=
conditionTemplate
.
getTypeCode
();
Object
actualValue
=
actualValues
.
get
(
typeCode
);
String
conditionDesc
=
String
.
format
(
"%s[%s]"
,
SpeciesConditionMatcher
.
getConditionName
(
typeCode
),
actualValue
);
currentList
=
filterBySpeciesCondition
(
currentList
,
typeCode
,
actualValue
,
unmatchedConditions
,
conditionDesc
);
if
(!
unmatchedConditions
.
isEmpty
())
{
return
new
MatchResult
(
Collections
.
emptyList
(),
unmatchedConditions
);
}
}
return
new
MatchResult
(
currentList
,
unmatchedConditions
);
}
/**
* 解析speciesJson
*/
private
List
<
SpeciesCondition
>
parseSpeciesJson
(
String
speciesJson
)
{
if
(
speciesJson
==
null
||
speciesJson
.
trim
().
isEmpty
())
{
return
Collections
.
emptyList
();
}
try
{
return
objectMapper
.
readValue
(
speciesJson
,
new
TypeReference
<
List
<
SpeciesCondition
>>()
{
});
}
catch
(
IOException
e
)
{
log
.
error
(
"解析speciesJson失败: {}"
,
speciesJson
,
e
);
return
Collections
.
emptyList
();
}
}
/**
* 构建实际值映射
*/
private
Map
<
String
,
Object
>
buildActualValuesMap
(
Policy
policy
,
String
professionalInvestor
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"PAYMENT_TERM"
,
policy
.
getPaymentTerm
()
!=
null
?
String
.
valueOf
(
policy
.
getPaymentTerm
())
:
null
);
map
.
put
(
"RECONCILIATION_COMPANY"
,
policy
.
getReconciliationCompanyBizId
());
map
.
put
(
"AGE"
,
policy
.
getPolicyHolderAge
());
map
.
put
(
"PREMIUM"
,
calculateInitialPremiumInHkd
(
policy
.
getPaymentPremium
(),
policy
.
getCurrency
()));
map
.
put
(
"PROFESSIONAL"
,
professionalInvestor
);
map
.
put
(
"POLICY_CURRENCY"
,
policy
.
getCurrency
());
map
.
put
(
"GUARANTEE_PERIOD"
,
policy
.
getGuaranteePeriod
());
map
.
put
(
"PROTECTION_PLAN"
,
policy
.
getProductName
());
return
map
;
}
// 匹配来佣规格 - 计算期交保费港币金额
private
BigDecimal
calculateInitialPremiumInHkd
(
BigDecimal
paymentPremium
,
String
policyCurrency
)
{
// 查汇率
BigDecimal
exchangeRate
=
queryExchangeRateByFeign
(
policyCurrency
,
"HKD"
);
return
paymentPremium
.
multiply
(
exchangeRate
);
}
/**
* 根据species条件过滤列表
*/
private
List
<
ApiExpectedSpeciesListResponse
>
filterBySpeciesCondition
(
List
<
ApiExpectedSpeciesListResponse
>
list
,
String
typeCode
,
Object
actualValue
,
List
<
String
>
unmatchedConditions
,
String
conditionDesc
)
{
List
<
ApiExpectedSpeciesListResponse
>
filtered
=
list
.
stream
()
.
filter
(
item
->
{
List
<
SpeciesCondition
>
conditions
=
parseSpeciesJson
(
item
.
getSpeciesJson
());
if
(
conditions
.
isEmpty
())
return
false
;
return
conditions
.
stream
()
.
anyMatch
(
c
->
typeCode
.
equals
(
c
.
getTypeCode
())
&&
SpeciesConditionMatcher
.
matches
(
typeCode
,
c
.
getValue
(),
actualValue
));
})
.
collect
(
Collectors
.
toList
());
if
(
filtered
.
isEmpty
())
{
unmatchedConditions
.
add
(
conditionDesc
);
}
return
filtered
;
}
private
boolean
isEffective
(
LocalDateTime
effectiveStart
,
LocalDateTime
effectiveEnd
,
Date
effectiveDate
)
{
LocalDateTime
effectiveDateLocal
=
effectiveDate
.
toInstant
().
atZone
(
ZoneId
.
systemDefault
()).
toLocalDateTime
();
return
effectiveDateLocal
.
isAfter
(
effectiveStart
)
&&
effectiveDateLocal
.
isBefore
(
effectiveEnd
);
...
...
@@ -777,55 +891,12 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
return
filtered
;
}
private
static
boolean
containsValue
(
String
json
,
String
targetKey
,
String
targetValue
)
{
if
(
json
==
null
||
json
.
trim
().
isEmpty
())
return
false
;
try
{
List
<
Map
<
String
,
Object
>>
params
=
objectMapper
.
readValue
(
json
,
new
TypeReference
<
List
<
Map
<
String
,
Object
>>>()
{});
// AGE 和 PREMIUM 使用最小值匹配(targetValue >= value)
if
(
targetKey
.
equals
(
"AGE"
)
||
targetKey
.
equals
(
"PREMIUM"
))
{
return
params
.
stream
().
anyMatch
(
p
->
{
Object
value
=
p
.
get
(
"value"
);
if
(
value
==
null
)
{
return
false
;
}
// 转换为 BigDecimal
BigDecimal
threshold
;
if
(
value
instanceof
BigDecimal
)
{
threshold
=
(
BigDecimal
)
value
;
}
else
if
(
value
instanceof
Number
)
{
threshold
=
BigDecimal
.
valueOf
(((
Number
)
value
).
doubleValue
());
}
else
if
(
value
instanceof
String
)
{
try
{
threshold
=
new
BigDecimal
((
String
)
value
);
}
catch
(
NumberFormatException
e
)
{
return
false
;
}
}
else
{
return
false
;
}
// 判断是否大于等于最小值
return
new
BigDecimal
(
targetValue
).
compareTo
(
threshold
)
>=
0
;
});
}
// 其他字段使用等于匹配
else
{
return
params
.
stream
().
anyMatch
(
p
->
targetValue
.
equals
(
p
.
get
(
"value"
)));
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
return
false
;
}
}
@Override
public
List
<
ApiExpectedSpeciesListResponse
>
queryExpectedSpeciesByFeign
(
String
productLaunchBizId
)
{
ApiExpectedSpeciesListRequest
apiExpectedSpeciesListRequest
=
new
ApiExpectedSpeciesListRequest
();
apiExpectedSpeciesListRequest
.
setProductLaunchBizId
(
productLaunchBizId
);
Result
<
List
<
ApiExpectedSpeciesListResponse
>>
result
=
apiExpectedSpeciesFeignClient
.
list
(
apiExpectedSpeciesListRequest
);
log
.
info
(
"查询预计出佣规格queryExpectedSpeciesByFeign==========>,{}"
,
JSON
.
toJSONString
(
result
));
if
(
result
!=
null
&&
result
.
getCode
()
==
200
)
{
return
result
.
getData
();
}
else
{
...
...
@@ -845,6 +916,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
/**
* 计算预计来佣港币金额
*
* @param premium 保费
* @param commissionRatio 佣金比例
* @param commissionBizType 佣金业务类型
...
...
@@ -881,6 +953,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
/**
* 保单币种对预计来佣的结算币种的默认汇率
*
* @param policyCurrency 保单币种
* @param currency 预计来佣的结算币种
* @return 汇率
...
...
@@ -899,6 +972,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
/**
* 根据保单生效日和佣金期数计算预计来佣日期,首期为生效日的1个月,后续期数为首期的次年
*
* @param endPeriod 佣金期数
* @param effectiveDate 保单生效日
* @return 预计来佣日期
...
...
@@ -930,6 +1004,89 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
return
baseMapper
.
receivableReportPage
(
page
,
expectedIds
);
}
@Override
public
void
testExpectedCommission
(
String
policyNo
,
String
effectiveDate
,
String
coolingOffEndDate
)
throws
IOException
{
PolicyFollow
policyFollow
=
policyFollowService
.
queryOneByPolicyNo
(
policyNo
);
String
productLaunchBizId
=
policyFollow
.
getProductLaunchBizId
();
if
(
StringUtils
.
isNotBlank
(
productLaunchBizId
))
{
Policy
policy
=
convertPolicy
(
policyFollow
,
effectiveDate
,
coolingOffEndDate
);
String
professionalInvestor
=
policyFollow
.
getProfessionalInvestor
();
// List<ApiExpectedSpeciesListResponse> expectedSpeciesList = queryExpectedSpeciesByFeign(productLaunchBizId);
List
<
ApiExpectedSpeciesListResponse
>
expectedSpeciesList
=
new
ArrayList
<>();
// 读取text
try
{
ClassPathResource
resource
=
new
ClassPathResource
(
"TestExpectedSpecies.txt"
);
String
text
=
StreamUtils
.
copyToString
(
resource
.
getInputStream
(),
StandardCharsets
.
UTF_8
);
expectedSpeciesList
=
JSONUtil
.
toList
(
text
,
ApiExpectedSpeciesListResponse
.
class
);
}
catch
(
IOException
e
)
{
throw
new
RuntimeException
(
"初始化预期来佣规格列表失败"
,
e
);
}
if
(
CollUtil
.
isNotEmpty
(
expectedSpeciesList
))
{
// 匹配规格并获取不匹配的条件
CommissionExpectedServiceImpl
.
MatchResult
matchResult
=
matchExpectedSpecies
(
expectedSpeciesList
,
policy
,
professionalInvestor
);
if
(
matchResult
.
getMatchedList
().
isEmpty
())
{
String
errorMsg
=
matchResult
.
getUnmatchedConditions
().
isEmpty
()
?
"未查询到预计来佣规格"
:
"未查询到预计来佣规格,不匹配条件:"
+
String
.
join
(
"、"
,
matchResult
.
getUnmatchedConditions
());
log
.
info
(
"未查询到预计来佣规格,当前规格:{}"
,
JSONUtil
.
toJsonStr
(
expectedSpeciesList
));
throw
new
BusinessException
(
ResultCode
.
FAIL
.
getCode
(),
errorMsg
);
}
}
}
}
private
Policy
convertPolicy
(
PolicyFollow
policyFollow
,
String
effectiveDate
,
String
coolingOffEndDate
)
{
Policy
policy
=
new
Policy
();
BeanUtil
.
copyProperties
(
policyFollow
,
policy
);
policy
.
setPolicyNo
(
policyFollow
.
getPolicyNo
());
policy
.
setPolicyHolderAge
(
calculatePolicyHolderAge
(
policyFollow
.
getCustomerBizId
()));
policy
.
setCoolingOffEndDate
(
policyFollow
.
getCoolingOffEndDate
());
policy
.
setReconciliationCompanyBizId
(
policyFollow
.
getReconciliationCompanyBizId
());
policy
.
setReconciliationCompanyCode
(
policyFollow
.
getReconciliationCompanyCode
());
policy
.
setReconciliationCompany
(
policyFollow
.
getReconciliationCompany
());
policy
.
setInsuranceCompanyBizId
(
policyFollow
.
getInsuranceCompanyBizId
());
policy
.
setInsuranceCompany
(
policyFollow
.
getInsuranceCompany
());
policy
.
setProductName
(
policyFollow
.
getProductName
());
// 更新保单状态为生效
policy
.
setStatus
(
PolicyStatusEnum
.
INFORCE
.
getItemValue
());
// 手动映射不同名的字段
policy
.
setPaymentPremium
(
policyFollow
.
getInitialPremium
());
policy
.
setCurrency
(
policyFollow
.
getPolicyCurrency
());
policy
.
setPaymentTerm
(
policyFollow
.
getIssueNumber
());
log
.
info
(
"effectiveDate:{}"
,
DateUtil
.
parse
(
effectiveDate
,
DatePattern
.
NORM_DATE_PATTERN
));
policy
.
setEffectiveDate
(
DateUtil
.
parse
(
effectiveDate
,
DatePattern
.
NORM_DATE_PATTERN
));
//冷静期结束日期
log
.
info
(
"coolingOffEndDate:{}"
,
DateUtil
.
parse
(
coolingOffEndDate
,
DatePattern
.
NORM_DATE_PATTERN
));
policy
.
setCoolingOffEndDate
(
DateUtil
.
parse
(
coolingOffEndDate
,
DatePattern
.
NORM_DATE_PATTERN
));
return
policy
;
}
private
Integer
calculatePolicyHolderAge
(
String
customerBizId
)
{
Customer
customer
=
customerService
.
getByCustomerBizId
(
customerBizId
);
if
(
customer
==
null
)
{
throw
new
BusinessException
(
"客户不存在"
);
}
if
(
customer
.
getBirthday
()
==
null
)
{
throw
new
BusinessException
(
"客户生日不能为空"
);
}
// 根据生日计算年龄
return
DateUtil
.
ageOfNow
(
customer
.
getBirthday
());
}
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
View file @
4941ad5f
...
...
@@ -169,7 +169,11 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
if
(
commissionExpected
.
getCommissionRatio
()
!=
null
)
{
BigDecimal
paidRatio
=
commissionExpected
.
getPaidRatio
()
!=
null
?
commissionExpected
.
getPaidRatio
()
:
BigDecimal
.
ZERO
;
commissionVO
.
setPaidRatio
(
paidRatio
);
commissionVO
.
setPendingRatio
(
commissionExpected
.
getCommissionRatio
().
subtract
(
paidRatio
));
commissionVO
.
setPendingRatio
(
BigDecimal
.
ONE
.
subtract
(
paidRatio
.
divide
(
commissionExpected
.
getCommissionRatio
(),
4
,
RoundingMode
.
HALF_UP
))
.
multiply
(
BigDecimal
.
valueOf
(
100
))
);
}
commissionVO
.
setCommissionExpectedStatus
(
commissionExpected
.
getStatus
());
}
...
...
@@ -865,23 +869,24 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
commissionList
.
add
(
commission
);
}
// 提交事务,保存数据
transactionTemplate
.
execute
(
status
->
{
// 1. 先保存主数据
saveOrUpdateBatch
(
commissionList
);
return
null
;
});
// 开启新事务,比对数据
transactionTemplate
.
execute
(
status
->
{
// 2. 事务提交后执行比对
TransactionSynchronizationManager
.
registerSynchronization
(
new
TransactionSynchronization
()
{
@Override
public
void
afterCommit
()
{
try
{
// 这里会开启新事务执行更新
commissionAsyncService
.
commissionCompareBatch
(
commissionList
);
}
catch
(
Exception
e
)
{
// 比对失败不影响主事务,记录日志即可
e
.
printStackTrace
();
log
.
error
(
"批量新增, 比对操作执行失败, error: {}"
,
e
.
getMessage
());
log
.
error
(
"比对更新失败"
,
e
);
// 可以发送告警或记录失败任务
}
return
null
;
});
}
}
);
return
commissionList
;
}
...
...
@@ -949,6 +954,9 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
if
(
ObjectUtils
.
isEmpty
(
request
.
getAmount
()))
{
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"入账金额不能为空"
);
}
if
(
ObjectUtils
.
isEmpty
(
request
.
getExchangeRate
()))
{
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"结算汇率不能为空"
);
}
if
(
"R"
.
equals
(
request
.
getCommissionBizType
()))
{
// 校验保单号是否存在
if
(
ObjectUtils
.
isEmpty
(
request
.
getExchangeRate
()))
{
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CustomerServiceImpl.java
View file @
4941ad5f
...
...
@@ -104,11 +104,21 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer>
if
(
ValidateUtil
.
isAllFieldsNull
(
customerAddRequest
))
{
throw
new
BusinessException
(
ErrorCode
.
PARAMS_ERROR
.
getCode
(),
ErrorCode
.
PARAMS_ERROR
.
getMessage
());
}
String
customerBizId
=
customerAddRequest
.
getCustomerBizId
();
Customer
customer
=
null
;
if
(
StringUtils
.
isNotBlank
(
customerAddRequest
.
getCustomerBizId
()))
{
customer
=
customerService
.
queryOneByCustomerBizId
(
customerAddRequest
.
getCustomerBizId
());
}
if
(
customer
==
null
)
{
// 检查字段 certificate_list,根据证件类型、证件号码查询客户是否存在
Customer
customer
=
queryByCertificate
(
customerAddRequest
.
getApiCertificateDtoList
());
customer
=
queryByCertificate
(
customerAddRequest
.
getApiCertificateDtoList
());
if
(
customer
==
null
)
{
customer
=
new
Customer
();
// 客户主表业务唯一id
customerBizId
=
RandomStringGenerator
.
generateBizId16
(
CommonEnum
.
UID_TYPE_CUSTOMER
.
getCode
());
}
else
{
customerBizId
=
customer
.
getCustomerBizId
();
}
}
// 客户主表信息
...
...
@@ -128,8 +138,7 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer>
// 校验客户主表信息
validCustomer
(
customer
);
// 客户主表业务唯一id
customer
.
setCustomerBizId
(
RandomStringGenerator
.
generateBizId16
(
CommonEnum
.
UID_TYPE_CUSTOMER
.
getCode
()));
customer
.
setCustomerBizId
(
customerBizId
);
boolean
result
=
customerService
.
saveOrUpdate
(
customer
);
if
(!
result
)
{
throw
new
BusinessException
(
ErrorCode
.
OPERATION_ERROR
.
getCode
(),
ErrorCode
.
OPERATION_ERROR
.
getMessage
());
...
...
@@ -269,6 +278,12 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer>
}
}
@Override
public
Customer
queryOneByCustomerBizId
(
String
customerBizId
)
{
return
this
.
baseMapper
.
selectOne
(
new
LambdaQueryWrapper
<
Customer
>()
.
eq
(
Customer:
:
getCustomerBizId
,
customerBizId
).
last
(
" limit 1 "
));
}
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/ExpectedFortuneServiceImpl.java
View file @
4941ad5f
...
...
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yd.csf.feign.request.expectedfortune.ApiExpectedFortunePageRequest
;
import
com.yd.csf.feign.response.expectedfortune.ApiExpectedFortunePageResponse
;
import
com.yd.csf.service.enums.CurrencyEnum
;
import
com.yd.csf.service.model.ExpectedFortune
;
import
com.yd.csf.service.dao.ExpectedFortuneMapper
;
import
com.yd.csf.service.model.Policy
;
...
...
@@ -133,6 +134,8 @@ public class ExpectedFortuneServiceImpl extends ServiceImpl<ExpectedFortuneMappe
ApiExpectedFortunePageResponse
vo
=
new
ApiExpectedFortunePageResponse
();
BeanUtils
.
copyProperties
(
ef
,
vo
);
vo
.
setCurrency
(
CurrencyEnum
.
toLabel
(
ef
.
getCurrency
()));
String
ratio
=
finalBrokerRatioMap
.
get
(
ef
.
getBrokerBizId
());
vo
.
setCommissionRatio
(
ratio
);
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneAccountServiceImpl.java
View file @
4941ad5f
...
...
@@ -123,7 +123,9 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper,
FortuneAccount
fortuneAccount
=
new
FortuneAccount
();
fortuneAccount
.
setFortuneAccountBizId
(
RandomStringGenerator
.
generateBizId16
(
"fortune_account"
));
fortuneAccount
.
setBroker
(
accountExportDTO
.
getBroker
());
fortuneAccount
.
setBrokerBizId
(
accountExportDTO
.
getBrokerBizId
());
fortuneAccount
.
setTeam
(
accountExportDTO
.
getTeam
());
fortuneAccount
.
setTeamBizId
(
accountExportDTO
.
getTeamBizId
());
fortuneAccount
.
setCurrency
(
accountExportDTO
.
getCurrency
());
fortuneAccount
.
setHkdAmount
(
accountExportDTO
.
getAmount
());
fortuneAccount
.
setFortuneAccountDate
(
currentDate
);
...
...
@@ -162,6 +164,11 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper,
updateFortune
.
setId
(
item
.
getId
());
updateFortune
.
setFortuneAccountBizId
(
fortuneAccountBizId
);
updateFortune
.
setStatus
(
FortuneStatusEnum
.
CHECKED
.
getItemValue
());
// 处理金额字段
updateFortune
.
setCurrentPaymentHkdAmount
(
item
.
getCurrentPaymentHkdAmount
());
updateFortune
.
setCurrentPaymentRatio
(
item
.
getCurrentPaymentHkdAmount
()
.
divide
(
item
.
getHkdAmount
(),
4
,
RoundingMode
.
HALF_UP
).
multiply
(
BigDecimal
.
valueOf
(
100
)));
updateFortune
.
setReconciliationOperator
(
currentLoginUser
.
getUsername
());
updateFortuneList
.
add
(
updateFortune
);
}
}
...
...
@@ -284,6 +291,10 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper,
.
list
();
if
(
CollectionUtils
.
isNotEmpty
(
fortunes
))
{
fortunes
.
forEach
(
f
->
{
if
(
f
.
getCurrentPaymentHkdAmount
()
==
null
)
{
f
.
setCurrentPaymentHkdAmount
(
f
.
getHkdAmount
());
f
.
setCurrentPaymentRatio
(
BigDecimal
.
valueOf
(
100
));
}
f
.
setStatus
(
FortuneStatusEnum
.
SENT
.
getItemValue
());
f
.
setActualPayoutDate
(
new
Date
());
f
.
setUpdaterId
(
loginUserId
.
toString
());
...
...
@@ -307,20 +318,20 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper,
.
last
(
"FOR UPDATE"
)
.
list
();
// 4.3 全量汇总:把同一 expected_fortune 下所有 fortune 的 current_payment_amount 求和
// 4.3 全量汇总:把同一 expected_fortune 下所有 fortune 的 current_payment_
hkd_
amount 求和
Map
<
String
,
BigDecimal
>
paidMap
=
fortuneService
.
lambdaQuery
()
.
in
(
Fortune:
:
getExpectedFortuneBizId
,
expectedIds
)
.
eq
(
Fortune:
:
getStatus
,
FortuneStatusEnum
.
SENT
.
getItemValue
())
.
list
()
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
Fortune:
:
getExpectedFortuneBizId
,
Collectors
.
mapping
(
Fortune:
:
getCurrentPaymentAmount
,
Collectors
.
mapping
(
Fortune:
:
getCurrentPayment
Hkd
Amount
,
Collectors
.
reducing
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
))));
// 4.4 反写 expected_fortune
expectedList
.
forEach
(
ef
->
{
BigDecimal
totalPaid
=
paidMap
.
getOrDefault
(
ef
.
getExpectedFortuneBizId
(),
BigDecimal
.
ZERO
);
BigDecimal
totalAmount
=
ef
.
getAmount
();
BigDecimal
totalAmount
=
ef
.
get
Hkd
Amount
();
BigDecimal
unpaid
=
totalAmount
.
subtract
(
totalPaid
);
String
newStatus
;
...
...
@@ -340,6 +351,7 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper,
.
set
(
ExpectedFortune:
:
getUnpaidRatio
,
unpaid
.
divide
(
totalAmount
,
4
,
RoundingMode
.
HALF_UP
).
multiply
(
BigDecimal
.
valueOf
(
100
)))
.
set
(
ExpectedFortune:
:
getStatus
,
newStatus
)
.
set
(
ExpectedFortune:
:
getActualPayoutDate
,
new
Date
())
.
set
(
ExpectedFortune:
:
getUpdaterId
,
loginUserId
.
toString
())
.
set
(
ExpectedFortune:
:
getUpdateTime
,
LocalDateTime
.
now
())
.
eq
(
ExpectedFortune:
:
getId
,
ef
.
getId
())
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneServiceImpl.java
View file @
4941ad5f
...
...
@@ -2,7 +2,6 @@ package com.yd.csf.service.service.impl;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.util.NumberUtil
;
import
com.alibaba.excel.EasyExcel
;
import
com.baomidou.mybatisplus.core.conditions.Wrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
...
...
@@ -12,6 +11,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import
com.google.common.base.Joiner
;
import
com.yd.auth.core.dto.AuthUserDto
;
import
com.yd.auth.core.utils.SecurityUtil
;
import
com.yd.base.feign.client.exchangerate.ApiExchangeRateFeignClient
;
import
com.yd.common.constant.RedisConstants
;
import
com.yd.common.enums.CommonEnum
;
import
com.yd.common.enums.ResultCode
;
...
...
@@ -69,6 +69,8 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
private
ApiSysDictFeignClient
apiSysDictFeignClient
;
@Resource
private
RedisUtil
redisUtil
;
@Resource
private
ApiExchangeRateFeignClient
apiExchangeRateFeignClient
;
@Override
public
Wrapper
<
Fortune
>
getQueryWrapper
(
FortuneQueryRequest
fortuneQueryRequest
)
{
...
...
@@ -187,15 +189,6 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
throw
new
BusinessException
(
ResultCode
.
PARAM_CHECK_ERROR
.
getCode
(),
"出账港币金额不能大于应付款港币金额"
);
}
}
// 更新结算汇率
BigDecimal
exchangeRate
=
ObjectUtils
.
isNotEmpty
((
fortuneUpdateRequest
.
getExchangeRate
()))
?
fortuneUpdateRequest
.
getExchangeRate
()
:
queryDefaultExchangeRate
(
fortuneUpdateRequest
.
getCurrency
());
fortune
.
setExchangeRate
(
exchangeRate
);
if
(
ObjectUtils
.
isEmpty
(
fortune
.
getHkdAmount
()))
{
fortune
.
setHkdAmount
(
fortune
.
getAmount
().
multiply
(
exchangeRate
));
}
// 获取当前登录用户
AuthUserDto
currentLoginUser
=
SecurityUtil
.
getCurrentLoginUser
();
...
...
@@ -215,10 +208,14 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
}
private
void
totalFortune
(
Fortune
fortune
,
ExpectedFortune
expectedFortune
,
String
loginUserId
,
FortuneUpdateRequest
fortuneUpdateRequest
)
{
AuthUserDto
currentLoginUser
=
SecurityUtil
.
getCurrentLoginUser
();
// 1. 更新fortune记录为全额发放状态
fortune
.
setCurrentPaymentHkdAmount
(
fortune
.
getHkdAmount
());
fortune
.
setCurrentPaymentRatio
(
BigDecimal
.
valueOf
(
100
));
fortune
.
setStatus
(
FortuneStatusEnum
.
CHECKED
.
getItemValue
());
fortune
.
setReconciliationOperator
(
currentLoginUser
.
getUsername
());
fortune
.
setUpdaterId
(
loginUserId
);
fortune
.
setUpdateTime
(
new
Date
());
...
...
@@ -230,30 +227,30 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
// 2. 更新expected_fortune记录为已全额发放状态
// 统一使用港币金额
expectedFortune
.
setPaidAmount
(
expectedFortune
.
getHkdAmount
());
expectedFortune
.
setUnpaidAmount
(
BigDecimal
.
ZERO
);
expectedFortune
.
setPaidRatio
(
BigDecimal
.
valueOf
(
100
));
expectedFortune
.
setUnpaidRatio
(
BigDecimal
.
ZERO
);
expectedFortune
.
setStatus
(
"6"
);
// 全额发放完成状态
expectedFortune
.
setActualPayoutDate
(
LocalDate
.
now
());
expectedFortuneService
.
updateById
(
expectedFortune
);
//
expectedFortune.setPaidAmount(expectedFortune.getHkdAmount());
//
expectedFortune.setUnpaidAmount(BigDecimal.ZERO);
//
expectedFortune.setPaidRatio(BigDecimal.valueOf(100));
//
expectedFortune.setUnpaidRatio(BigDecimal.ZERO);
//
expectedFortune.setStatus("6"); // 全额发放完成状态
//
expectedFortune.setActualPayoutDate(LocalDate.now());
//
//
expectedFortuneService.updateById(expectedFortune);
}
private
BigDecimal
queryDefaultExchangeRate
(
String
currency
)
{
if
(
StringUtils
.
isBlank
(
currency
))
{
/**
* 保单币种对预计来佣的结算币种的默认汇率
* @param policyCurrency 保单币种
* @param currency 预计来佣的结算币种
* @return 汇率
*/
private
BigDecimal
queryExchangeRateByFeign
(
String
policyCurrency
,
String
currency
)
{
if
(
policyCurrency
.
equalsIgnoreCase
(
currency
))
{
return
BigDecimal
.
ONE
;
}
if
(
"HKD"
.
equalsIgnoreCase
(
currency
))
{
return
BigDecimal
.
valueOf
(
1
);
}
Result
<
List
<
GetDictItemListByDictTypeResponse
>>
result
=
apiSysDictFeignClient
.
getDictItemListByDictType
(
"csf_exchange_rate_hkd"
);
if
(
org
.
apache
.
commons
.
collections4
.
CollectionUtils
.
isNotEmpty
(
result
.
getData
()))
{
for
(
GetDictItemListByDictTypeResponse
dictItem
:
result
.
getData
())
{
if
(
StringUtils
.
equalsIgnoreCase
(
dictItem
.
getItemLabel
(),
currency
))
{
return
new
BigDecimal
(
dictItem
.
getItemValue
());
}
}
// 调用Feign客户端查询汇率
Result
<
BigDecimal
>
result
=
apiExchangeRateFeignClient
.
getExchangeRate
(
policyCurrency
,
currency
,
""
);
if
(
result
!=
null
&&
result
.
getData
()
!=
null
)
{
return
result
.
getData
();
}
return
BigDecimal
.
ONE
;
}
...
...
@@ -271,18 +268,19 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
if
(
currentPaymentHkdAmount
.
compareTo
(
main
.
getCurrentPaymentHkdAmount
())
>
0
)
throw
new
BusinessException
(
"本次发放金额不能大于可出账金额"
);
// 获取当前登录用户的ID
AuthUserDto
currentLoginUser
=
SecurityUtil
.
getCurrentLoginUser
();
// 1. 更新主行 = 本次发放金额
main
.
setCurrentPaymentAmount
(
null
);
main
.
setCurrentPaymentHkdAmount
(
currentPaymentHkdAmount
);
main
.
setCurrentPaymentRatio
(
currentPaymentHkdAmount
.
divide
(
expectedFortune
.
getHkdAmount
(),
4
,
RoundingMode
.
HALF_UP
).
multiply
(
BigDecimal
.
valueOf
(
100
)));
main
.
setStatus
(
FortuneStatusEnum
.
CHECKED
.
getItemValue
());
main
.
setReconciliationOperator
(
currentLoginUser
.
getUsername
());
main
.
setUpdaterId
(
loginUserId
);
main
.
setUpdateTime
(
new
Date
());
// 其他字段更新
if
(
StringUtils
.
isNotBlank
(
fortuneUpdateRequest
.
getCurrency
()))
{
main
.
setCurrency
(
fortuneUpdateRequest
.
getCurrency
());
}
this
.
updateById
(
main
);
// 2. 剩余金额生成新行
...
...
@@ -295,9 +293,10 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
part
.
setCurrentPaymentHkdAmount
(
leftAmount
);
part
.
setCurrentPaymentRatio
(
leftAmount
.
divide
(
expectedFortune
.
getHkdAmount
(),
4
,
RoundingMode
.
HALF_UP
).
multiply
(
BigDecimal
.
valueOf
(
100
)));
part
.
setStatus
(
FortuneStatusEnum
.
WAIT
.
getItemValue
());
part
.
setStatus
(
FortuneStatusEnum
.
RESERVED
.
getItemValue
());
part
.
setIsPart
(
1
);
part
.
setPayoutDate
(
LocalDate
.
now
().
plusMonths
(
1
));
// 次月
part
.
setReconciliationOperator
(
currentLoginUser
.
getUsername
());
part
.
setCreatorId
(
loginUserId
);
part
.
setCreateTime
(
new
Date
());
this
.
save
(
part
);
...
...
@@ -305,20 +304,20 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
// 3. 同步 expected_fortune
// 统一使用港币金额
BigDecimal
newPaid
=
expectedFortune
.
getPaidAmount
()
==
null
?
BigDecimal
.
ZERO
:
expectedFortune
.
getPaidAmount
().
add
(
currentPaymentHkdAmount
);
BigDecimal
newUnpaid
=
expectedFortune
.
getHkdAmount
().
subtract
(
newPaid
);
String
newStatus
=
newUnpaid
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
?
"6"
:
"3"
;
expectedFortuneService
.
lambdaUpdate
()
.
set
(
ExpectedFortune:
:
getPaidAmount
,
newPaid
)
.
set
(
ExpectedFortune:
:
getUnpaidAmount
,
newUnpaid
)
.
set
(
ExpectedFortune:
:
getPaidRatio
,
newPaid
.
divide
(
expectedFortune
.
getHkdAmount
(),
4
,
RoundingMode
.
HALF_UP
).
multiply
(
BigDecimal
.
valueOf
(
100
)))
.
set
(
ExpectedFortune:
:
getUnpaidRatio
,
newUnpaid
.
divide
(
expectedFortune
.
getHkdAmount
(),
4
,
RoundingMode
.
HALF_UP
).
multiply
(
BigDecimal
.
valueOf
(
100
)))
.
set
(
ExpectedFortune:
:
getStatus
,
newStatus
)
.
eq
(
ExpectedFortune:
:
getId
,
expectedFortune
.
getId
())
.
update
();
//
BigDecimal newPaid = expectedFortune.getPaidAmount() == null ? BigDecimal.ZERO : expectedFortune.getPaidAmount().add(currentPaymentHkdAmount);
//
BigDecimal newUnpaid = expectedFortune.getHkdAmount().subtract(newPaid);
//
String newStatus = newUnpaid.compareTo(BigDecimal.ZERO) == 0 ? "6" : "3";
//
//
expectedFortuneService.lambdaUpdate()
//
.set(ExpectedFortune::getPaidAmount, newPaid)
//
.set(ExpectedFortune::getUnpaidAmount, newUnpaid)
//
.set(ExpectedFortune::getPaidRatio,
//
newPaid.divide(expectedFortune.getHkdAmount(), 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)))
//
.set(ExpectedFortune::getUnpaidRatio,
//
newUnpaid.divide(expectedFortune.getHkdAmount(), 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)))
//
.set(ExpectedFortune::getStatus, newStatus)
//
.eq(ExpectedFortune::getId, expectedFortune.getId())
//
.update();
}
@Override
...
...
@@ -359,9 +358,9 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
// 校验发佣记录状态
StringBuilder
validateMsg
=
new
StringBuilder
();
for
(
Fortune
fortune
:
fortuneList
)
{
// if (StringUtils.equals(fortune.getStatus(), FortuneStatusEnum.CAN_SEN
D.getItemValue())) {
// validateMsg.append(fortune.getPolicyNo()).append("-").append(fortune.getBroker()).append("当前未检核,请检核后再
生成出账记录; ");
//
}
if
(!
StringUtils
.
equals
(
fortune
.
getStatus
(),
FortuneStatusEnum
.
CHECKE
D
.
getItemValue
()))
{
validateMsg
.
append
(
fortune
.
getPolicyNo
()).
append
(
"-"
).
append
(
fortune
.
getBroker
()).
append
(
"当前状态不是'可出账, 已检核',不能
生成出账记录; "
);
}
if
(
StringUtils
.
equals
(
fortune
.
getStatus
(),
FortuneStatusEnum
.
SENT
.
getItemValue
()))
{
validateMsg
.
append
(
fortune
.
getPolicyNo
()).
append
(
"-"
).
append
(
fortune
.
getBroker
()).
append
(
"已完成出账,不能生成出账记录; "
);
}
...
...
@@ -391,11 +390,13 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
FortuneAccountExportDTO
accountDTO
=
new
FortuneAccountExportDTO
();
accountDTO
.
setBroker
(
broker
);
accountDTO
.
setBrokerBizId
(
brokerFortunes
.
get
(
0
).
getBrokerBizId
());
accountDTO
.
setFortuneList
(
brokerFortunes
);
// 设置团队、币种(取第一个记录)
if
(
CollUtil
.
isNotEmpty
(
brokerFortunes
))
{
accountDTO
.
setTeam
(
brokerFortunes
.
get
(
0
).
getTeam
());
accountDTO
.
setTeamBizId
(
brokerFortunes
.
get
(
0
).
getTeamBizId
());
accountDTO
.
setCurrency
(
currency
);
}
...
...
@@ -535,8 +536,8 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
fortune
.
setCurrentPaymentHkdAmount
(
fortune
.
getHkdAmount
());
fortune
.
setPayoutDate
(
expectedFortune
.
getPayoutDate
());
}
else
{
fortune
.
setExchangeRate
(
queryDefaultExchangeRate
(
fortuneAddRequest
.
getCurrency
())
);
fortune
.
setHkdAmount
(
fortuneAddRequest
.
getAmount
()
.
multiply
(
fortune
.
getExchangeRate
())
);
fortune
.
setExchangeRate
(
BigDecimal
.
ONE
);
fortune
.
setHkdAmount
(
fortuneAddRequest
.
getAmount
());
fortune
.
setCurrentPaymentHkdAmount
(
fortune
.
getHkdAmount
());
}
...
...
@@ -747,8 +748,8 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
fortune
.
setRemark
(
"未找到当前预计发佣对应的来佣"
);
}
}
else
{
fortune
.
setExchangeRate
(
queryDefaultExchangeRate
(
fortuneAddRequest
.
getCurrency
())
);
fortune
.
setHkdAmount
(
fortuneAddRequest
.
getAmount
()
.
multiply
(
fortune
.
getExchangeRate
())
);
fortune
.
setExchangeRate
(
BigDecimal
.
ONE
);
fortune
.
setHkdAmount
(
fortuneAddRequest
.
getAmount
());
fortune
.
setCurrentPaymentHkdAmount
(
fortune
.
getHkdAmount
());
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyFollowServiceImpl.java
View file @
4941ad5f
...
...
@@ -113,17 +113,17 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
String
appointmentNo
=
policyFollowQueryRequest
.
getAppointmentNo
();
Date
signDateStart
=
policyFollowQueryRequest
.
getSignDateStart
();
Date
signDateEnd
=
policyFollowQueryRequest
.
getSignDateEnd
();
Date
latestPaymentDate
=
policyFollowQueryRequest
.
getLatestPaymentDate
();
String
latestPaymentDate
=
policyFollowQueryRequest
.
getLatestPaymentDate
();
List
<
String
>
insuranceCompanyBizIdList
=
policyFollowQueryRequest
.
getInsuranceCompanyBizIdList
();
List
<
String
>
productLaunchBizIdList
=
policyFollowQueryRequest
.
getProductLaunchBizIdList
();
String
issueNumber
=
policyFollowQueryRequest
.
getIssueNumber
();
Integer
issueNumber
=
policyFollowQueryRequest
.
getIssueNumber
();
queryWrapper
.
like
(
ObjectUtils
.
isNotEmpty
(
policyNo
),
"policy_no"
,
policyNo
);
queryWrapper
.
eq
(
ObjectUtils
.
isNotEmpty
(
status
),
"status"
,
status
);
queryWrapper
.
eq
(
ObjectUtils
.
isNotEmpty
(
appointmentNo
),
"appointment_no"
,
appointmentNo
);
queryWrapper
.
ge
(
ObjectUtils
.
isNotEmpty
(
signDateStart
),
"sign_date"
,
signDateStart
);
queryWrapper
.
le
(
ObjectUtils
.
isNotEmpty
(
signDateEnd
),
"sign_date"
,
signDateEnd
);
queryWrapper
.
ge
(
ObjectUtils
.
isNotEmpty
(
latestPaymentDate
),
"latest_payment_date"
,
latestPaymentDate
);
queryWrapper
.
eq
(
ObjectUtils
.
isNotEmpty
(
latestPaymentDate
),
"latest_payment_date"
,
latestPaymentDate
);
if
(
CollectionUtils
.
isNotEmpty
(
insuranceCompanyBizIdList
))
{
queryWrapper
.
in
(
"insurance_company_biz_id"
,
insuranceCompanyBizIdList
);
...
...
@@ -207,9 +207,6 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
if
(
StringUtils
.
isNotBlank
(
policyFollowDto
.
getReconciliationCode
()))
{
policyFollow
.
setReconciliationCompanyCode
(
policyFollowDto
.
getReconciliationCode
());
}
if
(
StringUtils
.
isNotBlank
(
policyFollowDto
.
getReconciliationCompanyName
()))
{
policyFollow
.
setReconciliationCompany
(
policyFollowDto
.
getReconciliationCompanyName
());
}
// 检查保单号是否从空变为有值
String
oldPolicyNo
=
policyFollow
.
getPolicyNo
();
...
...
@@ -217,9 +214,9 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
boolean
isPolicyNoUpdated
=
StringUtils
.
isBlank
(
oldPolicyNo
)
&&
StringUtils
.
isNotBlank
(
newPolicyNo
);
// 计算冷却期结束日期
if
(
policyFollowDto
.
getCoolingOffDays
()
!=
null
&&
policyFollowDto
.
getEffectiveDate
()
!=
null
)
{
policyFollow
.
setCoolingOffEndDate
(
DateUtil
.
offset
(
policyFollowDto
.
getEffectiveDate
(),
DateField
.
DAY_OF_MONTH
,
policyFollowDto
.
getCoolingOffDays
()));
}
//
if (policyFollowDto.getCoolingOffDays() != null && policyFollowDto.getEffectiveDate() != null) {
//
policyFollow.setCoolingOffEndDate(DateUtil.offset(policyFollowDto.getEffectiveDate(), DateField.DAY_OF_MONTH, policyFollowDto.getCoolingOffDays()));
//
}
// 获取当前登录用户
AuthUserDto
currentLoginUser
=
SecurityUtil
.
getCurrentLoginUser
();
...
...
@@ -503,20 +500,21 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
if
(
policy
==
null
)
{
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 数据
policyFollowChangeStatusValidPolicy
(
policy
);
// 新单跟进,校验 policyFollow 数据
policyFollowChangeStatusValidPolicyFollow
(
policyFollow
);
policy
.
setPolicyNo
(
policyFollow
.
getPolicyNo
());
policy
.
setPolicyHolderAge
(
calculatePolicyHolderAge
(
policyFollow
.
getCustomerBizId
()));
policy
.
setCoolingOffEndDate
(
policyFollow
.
getCoolingOffEndDate
());
policy
.
setReconciliationCompanyBizId
(
policyFollow
.
getReconciliationCompanyBizId
());
policy
.
setReconciliationCompanyCode
(
policyFollow
.
getReconciliationCompanyCode
());
policy
.
setReconciliationCompany
(
policyFollow
.
getReconciliationCompany
());
policy
.
setInsuranceCompanyBizId
(
policyFollow
.
getInsuranceCompanyBizId
());
policy
.
setInsuranceCompany
(
policyFollow
.
getInsuranceCompany
());
policy
.
setProductName
(
policyFollow
.
getProductName
());
// 更新保单状态为生效
policy
.
setStatus
(
PolicyStatusEnum
.
INFORCE
.
getItemValue
());
// 手动映射不同名的字段
...
...
@@ -529,21 +527,6 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
//冷静期结束日期
policy
.
setCoolingOffEndDate
(
changePolicyFollowStatusRequest
.
getCoolingOffEndDate
()
!=
null
?
changePolicyFollowStatusRequest
.
getCoolingOffEndDate
()
:
policy
.
getCoolingOffEndDate
());
if
(
ObjectUtils
.
isEmpty
(
policy
.
getInsuranceCompany
())
||
ObjectUtils
.
isEmpty
(
policy
.
getInsuranceCompany
()))
{
// 获取保单产品信息,填充对账公司相关字段
PolicyProductInfo
productInfo
=
getPolicyProductInfo
(
policyFollow
.
getProductLaunchBizId
());
if
(
productInfo
!=
null
)
{
policy
.
setInsuranceCompany
(
productInfo
.
getInsuranceCompany
());
policy
.
setInsuranceCompanyBizId
(
productInfo
.
getInsuranceCompanyBizId
());
if
(
ObjectUtils
.
isEmpty
(
policy
.
getReconciliationCompany
()))
{
policy
.
setReconciliationCompany
(
productInfo
.
getReconciliationCompany
());
}
if
(
ObjectUtils
.
isEmpty
(
policy
.
getReconciliationCompanyBizId
()))
{
policy
.
setReconciliationCompanyBizId
(
productInfo
.
getReconciliationCompanyBizId
());
}
}
}
// 保存保单
policyService
.
updateById
(
policy
);
...
...
@@ -551,6 +534,7 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
updatePolicyBrokerPolicyNo
(
policyBizId
,
policy
.
getPolicyNo
());
// 根据保单生成预计入账记录
log
.
info
(
"根据保单生成预计入账记录前effectiveDate生效日期:{}"
,
policy
.
getEffectiveDate
());
generateExpectedCommission
(
policyFollow
,
policy
);
// 更新FNA状态为 "签单完成"
...
...
@@ -573,6 +557,41 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
return
true
;
}
private
void
policyFollowChangeStatusValidPolicyFollow
(
PolicyFollow
policyFollow
)
{
if
(
ObjectUtils
.
isEmpty
(
policyFollow
.
getReconciliationCompanyBizId
()))
{
throw
new
BusinessException
(
"新单跟进-基础数据,reconciliationCompanyBizId 不能为空"
);
}
if
(
ObjectUtils
.
isEmpty
(
policyFollow
.
getReconciliationCompanyCode
()))
{
throw
new
BusinessException
(
"新单跟进-基础数据,reconciliationCompanyCode 不能为空"
);
}
if
(
ObjectUtils
.
isEmpty
(
policyFollow
.
getReconciliationCompany
()))
{
throw
new
BusinessException
(
"新单跟进-基础数据,reconciliationCompany 不能为空"
);
}
if
(
ObjectUtils
.
isEmpty
(
policyFollow
.
getInsuranceCompanyBizId
()))
{
throw
new
BusinessException
(
"新单跟进-基础数据,insuranceCompanyBizId 不能为空"
);
}
if
(
ObjectUtils
.
isEmpty
(
policyFollow
.
getInsuranceCompany
()))
{
throw
new
BusinessException
(
"新单跟进-基础数据,insuranceCompany 不能为空"
);
}
if
(
ObjectUtils
.
isEmpty
(
policyFollow
.
getProductName
()))
{
throw
new
BusinessException
(
"新单跟进-基础数据,productName 不能为空"
);
}
if
(
ObjectUtils
.
isEmpty
(
policyFollow
.
getProductLaunchBizId
()))
{
throw
new
BusinessException
(
"新单跟进-基础数据,productLaunchBizId 不能为空"
);
}
}
private
void
policyFollowChangeStatusValidPolicy
(
Policy
policy
)
{
BigDecimal
paymentPremium
=
policy
.
getPaymentPremium
();
if
(
paymentPremium
==
null
)
{
throw
new
BusinessException
(
"期交保费不能为空"
);
}
Object
paymentTerm
=
policy
.
getPaymentTerm
();
if
(
paymentTerm
==
null
)
{
throw
new
BusinessException
(
"供款期数不能为空"
);
}
}
private
BigDecimal
calculateTotalPaymentPremium
(
Policy
policy
)
{
BigDecimal
paymentPremium
=
policy
.
getPaymentPremium
();
Object
paymentTerm
=
policy
.
getPaymentTerm
();
...
...
@@ -667,9 +686,11 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
currency
=
"USD"
;
break
;
case
"人民幣"
:
case
"人民币"
:
currency
=
"CNY"
;
break
;
case
"港幣"
:
case
"港币"
:
currency
=
"HKD"
;
break
;
case
"澳元"
:
...
...
@@ -682,6 +703,7 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
currency
=
"EUR"
;
break
;
case
"英鎊"
:
case
"英镑"
:
currency
=
"GBP"
;
break
;
case
"新加坡元"
:
...
...
@@ -972,7 +994,8 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
insuranceCompanyBizId
,
reconciliationCompany
,
reconciliationCompanyCode
,
reconciliationCompanyBizId
reconciliationCompanyBizId
,
policyFollow
.
getProfessionalInvestor
()
);
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyPolicyholderServiceImpl.java
View file @
4941ad5f
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.extension.service.impl.ServiceImpl
;
import
com.yd.common.enums.ResultCode
;
...
...
@@ -41,6 +42,12 @@ public class PolicyPolicyholderServiceImpl extends ServiceImpl<PolicyPolicyholde
policyPolicyholder
.
setUpdateTime
(
new
Date
());
return
this
.
updateById
(
policyPolicyholder
);
}
@Override
public
PolicyPolicyholder
queryOne
(
String
policyBizId
)
{
return
this
.
baseMapper
.
selectOne
(
new
LambdaQueryWrapper
<
PolicyPolicyholder
>()
.
eq
(
PolicyPolicyholder:
:
getPolicyBizId
,
policyBizId
).
last
(
" limit 1 "
));
}
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/vo/CommissionExpectedStatisticsVO.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
vo
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
...
...
@@ -39,4 +40,13 @@ public class CommissionExpectedStatisticsVO {
*/
@Schema
(
description
=
"总保单数"
)
private
Integer
totalPolicyCount
;
/**
* 总保费(HKD)
*/
@Schema
(
description
=
"总保费(HKD)"
)
private
BigDecimal
totalPremium
;
@JsonIgnore
private
String
policyNos
;
}
yd-csf-service/src/main/java/com/yd/csf/service/vo/CommissionVO.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
vo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.yd.csf.service.enums.CommissionStatusEnum
;
import
com.yd.csf.service.model.Commission
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
...
...
@@ -153,9 +154,9 @@ public class CommissionVO implements Serializable {
private
Date
commissionDate
;
/**
* 当前来佣比例
* 当前来佣比例
(实佣率=实际入账金额/结算汇率/每期保费)
*/
@Schema
(
description
=
"当前来佣比例"
)
@Schema
(
description
=
"当前来佣比例
(实佣率=实际入账金额/结算汇率/每期保费)
"
)
private
BigDecimal
currentCommissionRatio
;
/**
...
...
@@ -165,6 +166,12 @@ public class CommissionVO implements Serializable {
private
String
commissionStatus
;
/**
* 比对状态名称
*/
@Schema
(
description
=
"比对状态 0=未比对 1=比对成功 2=比对失败 3=未匹配到预计入账记录 字典值: csf_commission_status"
)
private
String
commissionStatusName
;
/**
* 预计来佣业务id
*/
@Schema
(
description
=
"预计来佣业务id"
)
...
...
@@ -189,9 +196,9 @@ public class CommissionVO implements Serializable {
private
BigDecimal
paidRatio
;
/**
*
待入账比例
*
达成率缺口= 1 - 本期实佣率/产品本期来佣率
*/
@Schema
(
description
=
"
待入账比例
"
)
@Schema
(
description
=
"
达成率缺口= 1 - 累积实佣率/产品本期来佣率
"
)
private
BigDecimal
pendingRatio
;
/**
...
...
@@ -246,7 +253,9 @@ public class CommissionVO implements Serializable {
}
CommissionVO
commissionVO
=
new
CommissionVO
();
BeanUtils
.
copyProperties
(
commission
,
commissionVO
);
commissionVO
.
setCommissionStatus
(
commission
.
getStatus
());
commissionVO
.
setCommissionStatusName
(
CommissionStatusEnum
.
toLabel
(
commission
.
getStatus
()));
return
commissionVO
;
}
}
yd-csf-service/src/main/java/com/yd/csf/service/vo/CustomerVO.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
vo
;
import
cn.hutool.core.collection.CollUtil
;
import
com.google.gson.reflect.TypeToken
;
import
com.yd.base.feign.dto.ApiCertificateDto
;
import
com.yd.csf.service.dto.TaxCountry
;
...
...
@@ -8,6 +9,7 @@ import com.yd.csf.service.utils.GSONUtil;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
java.io.Serializable
;
...
...
@@ -397,20 +399,31 @@ public class CustomerVO implements Serializable {
}
CustomerVO
customerVO
=
new
CustomerVO
();
BeanUtils
.
copyProperties
(
customer
,
customerVO
);
// 解析地址列表(保持不变)
if
(
ObjectUtils
.
isNotEmpty
(
customer
.
getAddressList
()))
{
List
<
AddressVO
>
addressList
=
GSONUtil
.
fromJson
(
customer
.
getAddressList
(),
new
TypeToken
<
List
<
AddressVO
>>()
{
}.
getType
());
List
<
AddressVO
>
addressList
=
GSONUtil
.
fromJson
(
customer
.
getAddressList
(),
new
TypeToken
<
List
<
AddressVO
>>()
{}.
getType
());
customerVO
.
setAddressList
(
addressList
);
}
// 解析税务列表(保持不变)
if
(
ObjectUtils
.
isNotEmpty
(
customer
.
getTaxList
()))
{
List
<
TaxCountry
>
taxList
=
GSONUtil
.
fromJson
((
String
)
customer
.
getTaxList
(),
new
TypeToken
<
List
<
TaxCountry
>>()
{
}.
getType
());
List
<
TaxCountry
>
taxList
=
GSONUtil
.
fromJson
((
String
)
customer
.
getTaxList
(),
new
TypeToken
<
List
<
TaxCountry
>>()
{}.
getType
());
customerVO
.
setApiTaxationDtoList
(
taxList
);
}
// 解析证件列表
if
(
ObjectUtils
.
isNotEmpty
(
customer
.
getCertificateList
()))
{
List
<
ApiCertificateDto
>
certificateList
=
GSONUtil
.
fromJson
((
String
)
customer
.
getCertificateList
(),
new
TypeToken
<
List
<
ApiCertificateDto
>>()
{
}.
getType
());
List
<
ApiCertificateDto
>
certificateList
=
GSONUtil
.
fromJson
((
String
)
customer
.
getCertificateList
(),
new
TypeToken
<
List
<
ApiCertificateDto
>>()
{}.
getType
());
customerVO
.
setApiCertificateDtoList
(
certificateList
);
if
(
CollUtil
.
isNotEmpty
(
certificateList
))
{
ApiCertificateDto
firstCert
=
certificateList
.
get
(
0
);
if
(
StringUtils
.
isBlank
(
customerVO
.
getDocumentType
()))
{
customerVO
.
setDocumentType
(
firstCert
.
getDocumentType
());
}
if
(
StringUtils
.
isBlank
(
customerVO
.
getIdNumber
()))
{
customerVO
.
setIdNumber
(
firstCert
.
getIdNumber
());
}
}
}
return
customerVO
;
...
...
yd-csf-service/src/main/java/com/yd/csf/service/vo/FortuneVO.java
View file @
4941ad5f
package
com
.
yd
.
csf
.
service
.
vo
;
import
cn.hutool.core.util.NumberUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.yd.csf.service.
model.ExpectedFortune
;
import
com.yd.csf.service.
enums.CurrencyEnum
;
import
com.yd.csf.service.model.Fortune
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
...
...
@@ -9,7 +11,6 @@ import org.springframework.beans.BeanUtils;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.time.LocalDate
;
import
java.util.Date
;
...
...
@@ -232,7 +233,7 @@ public class FortuneVO implements Serializable {
*/
@Schema
(
description
=
"出账日(实)"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Local
Date
actualPayoutDate
;
private
Date
actualPayoutDate
;
/**
* 是否含税 0=No, 1=Yes
...
...
@@ -328,12 +329,16 @@ public class FortuneVO implements Serializable {
}
FortuneVO
fortuneVO
=
new
FortuneVO
();
BeanUtils
.
copyProperties
(
fortune
,
fortuneVO
);
// 待出账比例
if
(
fortuneVO
.
getCurrentPaymentRatio
()
!=
null
)
{
fortuneVO
.
setFortuneUnpaidRatio
(
BigDecimal
.
valueOf
(
100
).
subtract
(
fortuneVO
.
getCurrentPaymentRatio
()));
}
else
{
fortuneVO
.
setFortuneUnpaidRatio
(
BigDecimal
.
valueOf
(
100
));
}
// 计算待出账比例
BigDecimal
currentPaymentRatio
=
ObjectUtil
.
defaultIfNull
(
fortuneVO
.
getCurrentPaymentRatio
(),
BigDecimal
.
ZERO
);
fortuneVO
.
setCurrentPaymentRatio
(
currentPaymentRatio
);
fortuneVO
.
setFortuneUnpaidRatio
(
BigDecimal
.
valueOf
(
100
).
subtract
(
currentPaymentRatio
));
fortuneVO
.
setFortunePaidAmount
(
fortune
.
getCurrentPaymentHkdAmount
());
fortuneVO
.
setFortuneUnpaidAmount
(
NumberUtil
.
sub
(
fortune
.
getHkdAmount
(),
fortune
.
getCurrentPaymentHkdAmount
()));
fortuneVO
.
setCurrency
(
CurrencyEnum
.
toLabel
(
fortune
.
getCurrency
()));
fortuneVO
.
setPolicyCurrency
((
CurrencyEnum
.
toLabel
(
fortune
.
getPolicyCurrency
())));
return
fortuneVO
;
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/vo/PolicyFollowDetailVO.java
View file @
4941ad5f
...
...
@@ -176,7 +176,7 @@ public class PolicyFollowDetailVO implements Serializable {
* 保障期限
*/
@Schema
(
description
=
"保障期限"
)
private
Integer
guaranteePeriod
;
private
String
guaranteePeriod
;
/**
* 保额(重疾险)
...
...
@@ -514,6 +514,12 @@ public class PolicyFollowDetailVO implements Serializable {
@Schema
(
description
=
"保单类型: 1-电子, 2-纸质"
)
private
String
policyType
;
/**
* 专业投资者: Yes/No
*/
@Schema
(
description
=
"专业投资者: Yes/No"
)
private
String
professionalInvestor
;
@TableField
(
exist
=
false
)
private
static
final
long
serialVersionUID
=
1L
;
...
...
yd-csf-service/src/main/java/com/yd/csf/service/vo/PolicyFollowVO.java
View file @
4941ad5f
...
...
@@ -141,6 +141,12 @@ public class PolicyFollowVO implements Serializable {
private
String
policyType
;
/**
* 专业投资者: Yes/No
*/
@Schema
(
description
=
"专业投资者: Yes/No"
)
private
String
professionalInvestor
;
/**
* 邮寄物品
*/
@Schema
(
description
=
"邮寄物品"
)
...
...
yd-csf-service/src/main/resources/mappers/CommissionExpectedMapper.xml
View file @
4941ad5f
...
...
@@ -53,9 +53,10 @@
SELECT
IFNULL(SUM(expected_amount),0) AS totalAmount,
IFNULL(SUM(paid_amount),0) AS totalPaidAmount,
COUNT(DISTINCT policy_no) AS totalPolicyCount
COUNT(DISTINCT policy_no) AS totalPolicyCount,
GROUP_CONCAT(DISTINCT policy_no) AS policyNos
FROM
commission_expected
commission_expected
ce
<where>
<if
test=
"expectedIds != null and expectedIds.size > 0"
>
id IN
...
...
@@ -74,7 +75,7 @@
MAX(ce.reconciliation_company_biz_id) as reconciliationCompanyBizId,
ce.commission_period as commissionPeriod,
MAX(ce.total_period) as totalPeriod,
DATE_ADD(DATE_ADD(MAX(p.effective_date), INTERVAL 2 MONTH), INTERVAL (ce.commission_period - 1) YEAR
) as commissionDate,
MAX(ce.commission_date
) as commissionDate,
ifnull(avg(ce.commission_ratio), 0) as commissionRatio,
ifnull(sum(ce.amount), 0) as amount,
MAX(ce.currency) as currency,
...
...
yd-csf-service/src/main/resources/mappers/CommissionMapper.xml
View file @
4941ad5f
...
...
@@ -107,7 +107,7 @@
) as expectePaidAmount,
COUNT(DISTINCT c.policy_no) as totalPolicyCount,
COALESCE(p.total_payment_premium * e.default_exchange_rate, 0) AS totalPremium,
COUNT(DISTINCT c.reconciliation_company) as reconciliationCompanyCount,
COUNT(DISTINCT c.reconciliation_company
_code
) 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
...
...
yd-csf-service/src/main/resources/mappers/ExpectedFortuneMapper.xml
View file @
4941ad5f
...
...
@@ -29,14 +29,10 @@
ifnull(sum(ef.hkd_amount),0) as totalExpectedAmount,
ifnull(sum(ef.paid_amount),0) as totalPaidAmount,
ifnull(sum(ef.unpaid_amount),0) as totalUnpaidAmount,
MAX(
e
.total_payment_premium) * MAX(ef.default_exchange_rate) as totalPremiumAmount,
MAX(
p
.total_payment_premium) * MAX(ef.default_exchange_rate) as totalPremiumAmount,
count(distinct ef.policy_no) as totalPolicyCount
from expected_fortune ef
LEFT JOIN (
SELECT p.policy_no, p.total_payment_premium
FROM policy p
GROUP BY policy_no
) e ON ef.policy_no = e.policy_no
LEFT JOIN policy p ON ef.policy_no = p.policy_no
<where>
<if
test=
"expectedFortuneIds != null and expectedFortuneIds.size > 0"
>
ef.id in
...
...
yd-csf-service/src/main/resources/mappers/FortuneAccountMapper.xml
View file @
4941ad5f
...
...
@@ -8,6 +8,9 @@
<id
property=
"id"
column=
"id"
/>
<result
property=
"fortuneAccountBizId"
column=
"fortune_account_biz_id"
/>
<result
property=
"broker"
column=
"broker"
/>
<result
property=
"brokerBizId"
column=
"broker_biz_id"
/>
<result
property=
"team"
column=
"team"
/>
<result
property=
"teamBizId"
column=
"team_biz_id"
/>
<result
property=
"currency"
column=
"currency"
/>
<result
property=
"amount"
column=
"amount"
/>
<result
property=
"hkdAmount"
column=
"hkd_amount"
/>
...
...
@@ -23,7 +26,8 @@
</resultMap>
<sql
id=
"Base_Column_List"
>
id,fortune_account_biz_id,broker,currency,amount,hkd_amount,status,fortune_account_date,content,remark,
id,fortune_account_biz_id,broker,broker_biz_id,team,team_biz_id,
currency,amount,hkd_amount,status,fortune_account_date,content,remark,
is_deleted,creator_id,updater_id,create_time,update_time
</sql>
</mapper>
yd-csf-service/src/main/resources/mappers/PolicyFollowMapper.xml
View file @
4941ad5f
...
...
@@ -75,6 +75,7 @@
<result
property=
"brokerSignDate"
column=
"broker_sign_date"
/>
<result
property=
"insurerMailingDate"
column=
"insurer_mailing_date"
/>
<result
property=
"customerSignDate"
column=
"customer_sign_date"
/>
<result
property=
"professionalInvestor"
column=
"professional_investor"
/>
<result
property=
"attachments"
column=
"attachments"
/>
<result
property=
"remark"
column=
"remark"
/>
<result
property=
"isDeleted"
column=
"is_deleted"
/>
...
...
@@ -82,6 +83,7 @@
<result
property=
"updaterId"
column=
"updater_id"
/>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"updateTime"
column=
"update_time"
/>
<result
property=
"policyType"
column=
"policy_type"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
...
...
@@ -98,8 +100,8 @@
initial_premium,initial_premium_total,initial_payment_status,initial_premium_discount,
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
insurer_mailing_date,customer_sign_date,
professional_investor,
attachments,remark,is_deleted,
creator_id,updater_id,create_time,update_time
,policy_type,is_join
</sql>
<select
id=
"queryPolicyReportData"
resultType=
"com.yd.csf.service.dto.PolicyReportData"
>
...
...
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