diff --git a/src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java b/src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java index 1a0125d9..b4009dfc 100644 --- a/src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java +++ b/src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java @@ -2,11 +2,23 @@ package com.qs.serve.common.framework.manager; import com.qs.serve.common.config.DevEnvironmentConfig; +import com.qs.serve.common.util.AuthContextUtils; import com.qs.serve.common.util.JsonUtil; import com.qs.serve.common.util.SpringUtils; import com.qs.serve.modules.sys.entity.SysOperationLog; import com.qs.serve.modules.sys.mapper.SysOperationLogMapper; +import com.qs.serve.modules.tbs.entity.TbsCostApply; +import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo; +import com.qs.serve.modules.tbs.service.impl.TbsCostApplyOperationServiceImpl; +import com.qs.serve.modules.tzc.service.impl.TzcPolicyOperationServiceImpl; +import com.qs.serve.modules.vtb.entity.VtbVerification; +import com.qs.serve.modules.vtb.service.VtbVerificationApplication; +import com.qs.serve.modules.vtb.service.impl.VtbVerificationOperationServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeansException; +import org.springframework.scheduling.annotation.Async; +import java.math.BigDecimal; import java.util.TimerTask; /** @@ -14,6 +26,7 @@ import java.util.TimerTask; * @author YenHex * @since 2022/2/24 */ +@Slf4j public class AsyncFactory { /** @@ -33,4 +46,89 @@ public class AsyncFactory { }; } + /** + * 异步保存政策状态 + * @param policyId + * @return + */ + public static TimerTask submitPolicy(Long policyId) { + return new TimerTask() { + @Override + public void run() { + try { + AuthContextUtils.setTenant("001"); + Thread.sleep(10*1000); + log.debug("submitPolicy"); + TzcPolicyOperationServiceImpl operationService = SpringUtils.getBean(TzcPolicyOperationServiceImpl.class); + String summeryResult = operationService.checkAffairSummery(policyId.toString()); + if(summeryResult.equals(TzcPolicyOperationServiceImpl.SummeryState_Success)){ + //调用成功回调方法 + TbsAffairCommitBo finishedParam = new TbsAffairCommitBo(); + finishedParam.setPolicyId(policyId); + operationService.doFinished(finishedParam); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + }; + } + + /** + * 异步保存费用申请状态 + * @param costApply + * @return + */ + public static TimerTask submitCostApply(TbsCostApply costApply) { + return new TimerTask() { + @Override + public void run() { + try { + AuthContextUtils.setTenant("001"); + Thread.sleep(10*1000); + log.debug("submitCostApply"); + TbsCostApplyOperationServiceImpl applyOperationService = SpringUtils.getBean(TbsCostApplyOperationServiceImpl.class); + String summeryResult = applyOperationService.checkAffairSummery(costApply.getId().toString()); + if(summeryResult.equals(TbsCostApplyOperationServiceImpl.SummeryState_Success)){ + //调用成功回调方法 + TbsAffairCommitBo finishedParam = new TbsAffairCommitBo(); + finishedParam.setCostApplyId(costApply.getId()); + applyOperationService.doFinished(finishedParam); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + }; + } + + + /** + * 异步保存核销状态 + * @param verification + * @param totalAmount + * @return + */ + public static TimerTask saveVtbSubmit(VtbVerification verification, BigDecimal totalAmount) { + return new TimerTask() { + @Override + public void run() { + try { + AuthContextUtils.setTenant("001"); + Thread.sleep(10*1000); + log.debug("saveVtbSubmit"); + VtbVerificationOperationServiceImpl verificationOperationService = SpringUtils.getBean(VtbVerificationOperationServiceImpl.class); + String summeryResult = verificationOperationService.checkAffairSummery(verification.getId().toString()); + if(summeryResult.equals(VtbVerificationOperationServiceImpl.SummeryState_Success)){ + //调用成功回调方法 + VtbVerificationApplication verificationApplication = SpringUtils.getBean(VtbVerificationApplication.class); + verificationApplication.finishCallBack(verification, totalAmount); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + }; + } + } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java index 60b92f9c..0f77c44e 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.qs.serve.common.config.properties.ProjectProperties; +import com.qs.serve.common.framework.manager.AsyncFactory; +import com.qs.serve.common.framework.manager.AsyncManager; import com.qs.serve.common.model.enums.BudgetLogOptFlag; import com.qs.serve.common.model.consts.BudgetLogRollbackFlag; import com.qs.serve.common.model.dto.R; @@ -336,21 +338,12 @@ public class TbsCostApplyServiceImpl extends ServiceImpl policyItemLqw = new LambdaQueryWrapper<>(); diff --git a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java index 42179286..51eca13e 100644 --- a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java @@ -3,6 +3,8 @@ package com.qs.serve.modules.vtb.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.qs.serve.common.config.properties.ProjectProperties; +import com.qs.serve.common.framework.manager.AsyncFactory; +import com.qs.serve.common.framework.manager.AsyncManager; import com.qs.serve.common.model.enums.BudgetLogOptFlag; import com.qs.serve.common.model.dto.R; import com.qs.serve.common.util.*; @@ -44,6 +46,8 @@ import com.qs.serve.modules.vtb.service.*; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeansException; +import org.springframework.scheduling.annotation.Async; +import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -60,6 +64,7 @@ import java.util.stream.Collectors; * @author YenHex * @since 2022-11-24 */ +@EnableAsync @Slf4j @Service @AllArgsConstructor @@ -353,21 +358,13 @@ public class VtbVerificationServiceImpl extends ServiceImpl