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
7a4e2b89
Commit
7a4e2b89
authored
Mar 19, 2026
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
push
parent
73bbc14a
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
95 additions
and
30 deletions
+95
-30
yd-csf-api/src/main/java/com/yd/csf/api/async/ApiExpectedFortuneAsyncService.java
+26
-0
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiPolicyFollowController.java
+25
-21
yd-csf-service/src/main/java/com/yd/csf/service/config/AsyncConfig.java
+44
-9
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/async/ApiExpectedFortuneAsyncService.java
View file @
7a4e2b89
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
lombok.extern.slf4j.Slf4j
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.Resource
;
@Slf4j
@Component
public
class
ApiExpectedFortuneAsyncService
{
@Resource
private
ApiExpectedFortuneService
apiExpectedFortuneService
;
/**
* 异步处理
*
* @return
*/
@Async
(
"commonAsyncExecutor"
)
public
Result
execute
(
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/controller/ApiPolicyFollowController.java
View file @
7a4e2b89
...
...
@@ -18,6 +18,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.dto.CommissionExcelDTO
;
import
com.yd.csf.api.dto.PolicyExcelDTO
;
import
com.yd.csf.api.dto.PolicyFollowDTO
;
...
...
@@ -93,14 +94,16 @@ 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
;
@PostMapping
(
"/upload/excel"
)
...
...
@@ -575,7 +578,8 @@ public class ApiPolicyFollowController {
String
token
=
request
.
getHeader
(
"Authorization"
);
log
.
info
(
"修改跟进状态获取token:{}"
,
token
);
// 同步:根据保单生成预计出账记录
execute
(
token
,
policyFollow
.
getPolicyNo
());
// execute(token, policyFollow.getPolicyNo());
apiExpectedFortuneAsyncService
.
execute
(
policyFollow
.
getPolicyNo
());
}
return
Result
.
success
(
true
);
}
...
...
@@ -587,22 +591,22 @@ public class ApiPolicyFollowController {
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
();
}
//
/**
//
* 异步处理
//
*
//
* @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-service/src/main/java/com/yd/csf/service/config/AsyncConfig.java
View file @
7a4e2b89
...
...
@@ -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
;
}
...
...
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