Browse Source

核销的释放异常修复

v1.0
Yen 2 years ago
parent
commit
97af43782e
  1. 9
      src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java
  2. 14
      src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java
  3. 2
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

9
src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java

@ -19,6 +19,7 @@ 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.VtbVerificationService;
import com.qs.serve.modules.vtb.service.impl.VtbVerificationOperationServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeansException;
@ -187,7 +188,7 @@ public class AsyncFactory {
* @param totalAmount
* @return
*/
public static TimerTask saveVtbSubmit(VtbVerification verification, BigDecimal totalAmount,Integer state) {
public static TimerTask saveVtbSubmit(VtbVerification verification, BigDecimal totalAmount,Integer state,boolean realaseFlag) {
return new TimerTask() {
@Override
public void run() {
@ -199,6 +200,7 @@ public class AsyncFactory {
String summeryResult = verificationOperationService.checkAffairSummery(verification.getId().toString());
if( summeryResult.equals(VtbVerificationOperationServiceImpl.SummeryState_Success)){
VtbVerificationApplication verificationApplication = SpringUtils.getBean(VtbVerificationApplication.class);
VtbVerificationService vtbVerificationService = SpringUtils.getBean(VtbVerificationService.class);
if(state.equals(1)){
//调用成功回调方法
verificationApplication.finishCallBack(verification, totalAmount);
@ -206,6 +208,11 @@ public class AsyncFactory {
verificationApplication.backCommitAndStop(verification,true);
}else if(state.equals(0)){
verificationApplication.backCommitAndStop(verification,false);
}else {
return;
}
if(realaseFlag){
vtbVerificationService.release(verification.getActivityId(),false);
}
}
} catch (Exception e) {

14
src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java

@ -172,8 +172,13 @@ public class VtbVerificationApplication {
boolean isFinish = "finish".equals(flag);
boolean isNext = "next".equals(flag);
boolean isStop = "stop".equals(flag);
//释放费用
boolean isRelease = affairCommit.getReleaseFlag()!=null&&affairCommit.getReleaseFlag().equals(1);
if (isStop){
backCommitAndStop(verification, isBackCommit);
if(isRelease){
vtbVerificationService.release(verification.getActivityId(),false);
}
}else if (!isFinish && !isNext){
return R.error("远程调用返回,非指定状态");
}
@ -268,6 +273,7 @@ public class VtbVerificationApplication {
//重新计算合计
if(isFinish){
finishCallBack(verification, totalAmount);
vtbVerificationService.release(verification.getActivityId(),false);
}else {
//更新金额
VtbVerification vtbVer = new VtbVerification();
@ -276,15 +282,9 @@ public class VtbVerificationApplication {
vtbVerificationService.updateById(vtbVer);
}
}
//释放费用
boolean isRelease = affairCommit.getReleaseFlag()!=null&&affairCommit.getReleaseFlag().equals(1);
if( isRelease &&(isFinish||isStop)){
this.vtbVerificationService.release(verification.getActivityId(),false);
}
if(isNext){
//判断是否直接跳过审批的申请
AsyncManager.me().execute(AsyncFactory.saveVtbSubmit(verification, totalAmount,affairCommit.getState()));
AsyncManager.me().execute(AsyncFactory.saveVtbSubmit(verification, totalAmount,affairCommit.getState(),isRelease));
}
return R.ok();
}

2
src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

@ -696,7 +696,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
}
//判断是否直接跳过审批的申请
AsyncManager.me().execute(AsyncFactory.saveVtbSubmit(verification, totalAmount,1));
AsyncManager.me().execute(AsyncFactory.saveVtbSubmit(verification, totalAmount,1,false));
}

Loading…
Cancel
Save