Browse Source

核销的释放异常修复

v1.0
Yen 2 years ago
parent
commit
bc3a9c3daf
  1. 11
      src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java
  2. 2
      src/main/java/com/qs/serve/modules/oms/controller/api/OmsShoppingCartApi.java
  3. 6
      src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java
  4. 2
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

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

@ -17,6 +17,7 @@ import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo;
import com.qs.serve.modules.tbs.service.impl.TbsBudgetApplyOperationServiceImpl;
import com.qs.serve.modules.tbs.service.impl.TbsCostApplyOperationServiceImpl;
import com.qs.serve.modules.tzc.service.impl.TzcPolicyOperationServiceImpl;
import com.qs.serve.modules.vtb.common.VtbVerificationState;
import com.qs.serve.modules.vtb.entity.VtbVerification;
import com.qs.serve.modules.vtb.service.VtbVerificationApplication;
import com.qs.serve.modules.vtb.service.VtbVerificationService;
@ -184,11 +185,11 @@ public class AsyncFactory {
/**
* 异步保存核销状态
* @param verification
* @param verificationId
* @param totalAmount
* @return
*/
public static TimerTask saveVtbSubmit(VtbVerification verification, BigDecimal totalAmount,Integer state,boolean realaseFlag) {
public static TimerTask saveVtbSubmit(Long verificationId, BigDecimal totalAmount,Integer state,boolean realaseFlag) {
return new TimerTask() {
@Override
public void run() {
@ -196,11 +197,15 @@ public class AsyncFactory {
AuthContextUtils.setTenant("001");
Thread.sleep(20*1000);
log.debug("saveVtbSubmit");
VtbVerificationService vtbVerificationService = SpringUtils.getBean(VtbVerificationService.class);
VtbVerification verification = vtbVerificationService.getById(verificationId);
if(!verification.getVerificationState().equals(VtbVerificationState.Commiting.getCode())){
return;
}
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);
VtbVerificationService vtbVerificationService = SpringUtils.getBean(VtbVerificationService.class);
if(state.equals(1)){
//调用成功回调方法
verificationApplication.finishCallBack(verification, totalAmount);

2
src/main/java/com/qs/serve/modules/oms/controller/api/OmsShoppingCartApi.java

@ -100,7 +100,7 @@ public class OmsShoppingCartApi {
shoppingCart.setPicUrl(goodsSku.getPicUrl());
shoppingCart.setSpuId(goodsSku.getSpuId());
GoodsSpu goodsSpu = goodsSpuService.getById(shoppingCart.getSpuId());
if(!goodsSpu.getShelf().equals("1")){
if(!goodsSpu.getShelf().equals(1)){
return R.error("商品已下架");
}
shoppingCart.setSpuName(goodsSpu.getName());

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

@ -273,7 +273,9 @@ public class VtbVerificationApplication {
//重新计算合计
if(isFinish){
finishCallBack(verification, totalAmount);
vtbVerificationService.release(verification.getActivityId(),false);
if(isRelease){
vtbVerificationService.release(verification.getActivityId(),false);
}
}else {
//更新金额
VtbVerification vtbVer = new VtbVerification();
@ -284,7 +286,7 @@ public class VtbVerificationApplication {
}
if(isNext){
//判断是否直接跳过审批的申请
AsyncManager.me().execute(AsyncFactory.saveVtbSubmit(verification, totalAmount,affairCommit.getState(),isRelease));
AsyncManager.me().execute(AsyncFactory.saveVtbSubmit(verification.getId(), 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,false));
AsyncManager.me().execute(AsyncFactory.saveVtbSubmit(verification.getId(), totalAmount,1,false));
}

Loading…
Cancel
Save