Commit 9b72debe by zhangxingmin

push

parent 0d99c5f6
...@@ -31,9 +31,6 @@ public interface ApiPremiumReconciliationService { ...@@ -31,9 +31,6 @@ public interface ApiPremiumReconciliationService {
Result editResult(ApiPremiumReconciliationResultEditRequest request); Result editResult(ApiPremiumReconciliationResultEditRequest request);
@Async("commonAsyncExecutor")
void execute(ChangePolicyFollowStatusRequest changePolicyFollowStatusRequest,String token);
Result<Boolean> checkReconciliationComplete(String policyNo); Result<Boolean> checkReconciliationComplete(String policyNo);
Result<PremiumReconciliation> checkPremiumReconciliationIsExist(String expectedCommissionRatioBizId); Result<PremiumReconciliation> checkPremiumReconciliationIsExist(String expectedCommissionRatioBizId);
......
...@@ -15,6 +15,7 @@ import com.yd.common.enums.ResultCode; ...@@ -15,6 +15,7 @@ import com.yd.common.enums.ResultCode;
import com.yd.common.exception.BusinessException; import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.common.utils.RandomStringGenerator; 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.ApiExpectedFortuneService;
import com.yd.csf.api.service.ApiPremiumReconciliationService; import com.yd.csf.api.service.ApiPremiumReconciliationService;
import com.yd.csf.api.service.ApiPremiumRemittanceService; import com.yd.csf.api.service.ApiPremiumRemittanceService;
...@@ -118,6 +119,9 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia ...@@ -118,6 +119,9 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia
return applicationContext.getBean(ApiPremiumReconciliationService.class); return applicationContext.getBean(ApiPremiumReconciliationService.class);
} }
@Resource
private ApiExpectedFortuneAsyncService apiExpectedFortuneAsyncService;
/** /**
* 分页列表查询-保费对账记录信息 * 分页列表查询-保费对账记录信息
* @param request * @param request
...@@ -1231,12 +1235,6 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia ...@@ -1231,12 +1235,6 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia
return Result.success(); return Result.success();
} }
@Override
@Async("commonAsyncExecutor")
public void execute(ChangePolicyFollowStatusRequest changePolicyFollowStatusRequest,String token) {
changePolicyFollowStatus(changePolicyFollowStatusRequest,token);
}
/** /**
* 修改跟进状态 * 修改跟进状态
* *
...@@ -1247,7 +1245,7 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia ...@@ -1247,7 +1245,7 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia
public Result<Boolean> changePolicyFollowStatus(ChangePolicyFollowStatusRequest changePolicyFollowStatusRequest,String token) { public Result<Boolean> changePolicyFollowStatus(ChangePolicyFollowStatusRequest changePolicyFollowStatusRequest,String token) {
// 设置ThreadLocal Token // 设置ThreadLocal Token
FeignTokenInterceptor.setThreadLocalToken(token); // FeignTokenInterceptor.setThreadLocalToken(token);
if (changePolicyFollowStatusRequest == null || StringUtils.isBlank(changePolicyFollowStatusRequest.getPolicyBizId())) { if (changePolicyFollowStatusRequest == null || StringUtils.isBlank(changePolicyFollowStatusRequest.getPolicyBizId())) {
return Result.fail(ResultCode.PARAMS_ERROR.getCode(), "policyBizId不能为空"); return Result.fail(ResultCode.PARAMS_ERROR.getCode(), "policyBizId不能为空");
...@@ -1291,27 +1289,27 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia ...@@ -1291,27 +1289,27 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia
if (PolicyFollowStatusEnum.EFFECTIVE.equals(currentStatusEnum)) { if (PolicyFollowStatusEnum.EFFECTIVE.equals(currentStatusEnum)) {
log.info("修改跟进状态获取token:{}", token); log.info("修改跟进状态获取token:{}", token);
// 同步:根据保单生成预计出账记录 // 同步:根据保单生成预计出账记录
generateExpectedFortuneSync(token, policyFollow.getPolicyNo()); apiExpectedFortuneAsyncService.execute(policyFollow.getPolicyNo(),token);
} }
return Result.success(true); return Result.success(true);
} }
/** // /**
* 同步生成预计出账记录 // * 同步生成预计出账记录
* // *
* @param token 认证Token // * @param token 认证Token
* @param policyNo 保单号 // * @param policyNo 保单号
*/ // */
private void generateExpectedFortuneSync(String token, String policyNo) { // private void generateExpectedFortuneSync(String token, String policyNo) {
// 调用 ApiExpectedFortuneService 的 generateSyncWithLogAndRedis(同步版本,包含日志和Redis处理) // // 调用 ApiExpectedFortuneService 的 generateSyncWithLogAndRedis(同步版本,包含日志和Redis处理)
ApiGenerateExpectedFortuneRequest generateExpectedFortuneRequest = new ApiGenerateExpectedFortuneRequest(); // ApiGenerateExpectedFortuneRequest generateExpectedFortuneRequest = new ApiGenerateExpectedFortuneRequest();
generateExpectedFortuneRequest.setPolicyNo(policyNo); // generateExpectedFortuneRequest.setPolicyNo(policyNo);
log.info("生成预计发佣generateSyncWithLogAndRedis——>PolicyNo:{}", policyNo); // log.info("生成预计发佣generateSyncWithLogAndRedis——>PolicyNo:{}", policyNo);
Result<ApiGenerateExpectedFortuneResponse> result = apiExpectedFortuneService.generateSyncWithLogAndRedis(generateExpectedFortuneRequest); // Result<ApiGenerateExpectedFortuneResponse> result = apiExpectedFortuneService.generateSyncWithLogAndRedis(generateExpectedFortuneRequest);
if (result != null && result.getCode() == 200) { // if (result != null && result.getCode() == 200) {
log.info("新单跟进-同步生成预计出账记录成功:保单号={}", policyNo); // log.info("新单跟进-同步生成预计出账记录成功:保单号={}", policyNo);
} // }
} // }
/** /**
* 校验-保单所有期数的保费对账是否对账完成(全部对账完成就不能新增录入对账信息了) * 校验-保单所有期数的保费对账是否对账完成(全部对账完成就不能新增录入对账信息了)
......
...@@ -39,54 +39,54 @@ public class AsyncConfig { ...@@ -39,54 +39,54 @@ public class AsyncConfig {
return executor; 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(name = "commonAsyncExecutor") @Bean("commonAsyncExecutor")
public ThreadPoolTaskExecutor commonAsyncExecutor() { public Executor commonAsyncExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
// 设置核心线程数、最大线程数、队列容量等参数... executor.setCorePoolSize(5);
executor.setCorePoolSize(10); executor.setMaxPoolSize(10);
executor.setMaxPoolSize(20); executor.setQueueCapacity(50);
executor.setQueueCapacity(100);
executor.setThreadNamePrefix("common-async-"); executor.setThreadNamePrefix("common-async-");
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
// 设置 TaskDecorator,用于传递 RequestAttributes executor.setWaitForTasksToCompleteOnShutdown(true);
executor.setTaskDecorator(runnable -> { executor.setAwaitTerminationSeconds(30);
// 获取当前线程的 RequestAttributes executor.setKeepAliveSeconds(30);
RequestAttributes attributes = RequestContextHolder.getRequestAttributes();
return () -> {
try {
// 将 RequestAttributes 设置到子线程中
RequestContextHolder.setRequestAttributes(attributes);
runnable.run();
} finally {
// 任务完成后清空,避免内存泄漏
RequestContextHolder.resetRequestAttributes();
}
};
});
executor.initialize(); executor.initialize();
return executor; return executor;
} }
// /**
// * 通用异步任务线程池
// * @return
// */
// @Bean(name = "commonAsyncExecutor")
// public ThreadPoolTaskExecutor commonAsyncExecutor() {
// ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
// // 设置核心线程数、最大线程数、队列容量等参数...
// executor.setCorePoolSize(10);
// executor.setMaxPoolSize(20);
// executor.setQueueCapacity(100);
// executor.setThreadNamePrefix("common-async-");
//
// // 设置 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;
// }
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment