Browse Source

修复政策预算异常

v1.0
Yen 2 years ago
parent
commit
5b5958df50
  1. 11
      src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java
  2. 28
      src/main/java/com/qs/serve/common/framework/redis/RedisService.java
  3. 9
      src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java
  4. 4
      src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyOperationServiceImpl.java
  5. 2
      src/main/java/com/qs/serve/task/PayTask.java

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

@ -118,11 +118,14 @@ public class AsyncFactory {
return new TimerTask() {
@Override
public void run() {
TzcPolicyOperationServiceImpl operationService = SpringUtils.getBean(TzcPolicyOperationServiceImpl.class);
RedisService redisService = SpringUtils.getBean(RedisService.class);
boolean createLock = redisService.tryToLock(operationService.getTemplateCode(),policyId+"");
if(createLock){
try {
log.debug("--------------------------SubmitPolicy CallbackTimer Sleep Start------------------------------");
AuthContextUtils.setTenant("001");
Thread.sleep(7*1000);
TzcPolicyOperationServiceImpl operationService = SpringUtils.getBean(TzcPolicyOperationServiceImpl.class);
Thread.sleep(3*1000);
String summeryResult = operationService.checkAffairSummery(policyId.toString());
if(summeryResult.equals(TzcPolicyOperationServiceImpl.SummeryState_Success)){
//调用成功回调方法
@ -133,7 +136,11 @@ public class AsyncFactory {
log.debug("--------------------------SubmitPolicy CallbackTimer summeryResult:{}------------------------------",summeryResult);
} catch (Exception e) {
e.printStackTrace();
}finally {
redisService.removeLock(operationService.getTemplateCode(),policyId+"");
}
}
}
};
}

28
src/main/java/com/qs/serve/common/framework/redis/RedisService.java

@ -329,4 +329,32 @@ public class RedisService {
ZSetOperations<String, Object> zset = redisTemplate.opsForZSet();
return zset.rangeByScore(key, scoure, scoure1);
}
/**
* 移除业务锁
* @param code
* @param targetId
*/
public void removeLock(String code,String targetId){
String key = "lock_commit:"+code+":"+targetId;
this.remove(key);
}
/**
*
* @param code
* @param targetId
* @return true--新建锁成功false反之
*/
public boolean tryToLock(String code,String targetId){
String key = "lock_commit:"+code+":"+targetId;
Integer existState = getInteger(key);
if(existState==null){
this.set(key,1,20,TimeUnit.SECONDS);
return true;
}else {
return false;
}
}
}

9
src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java

@ -442,7 +442,14 @@ public class TbsBudgetController {
List<TbsScheduleItemBudget> items = tbsScheduleItemBudgetMapper.listNotCreateLogBudget();
for (TbsScheduleItemBudget item : items) {
TbsBudget budget = tbsBudgetService.getById(item.getBudgetId());
TbsBudgetLog budgetLog = TbsBudgetLogBuildUtil.toTbsBudgetLog(new SysUser(),budget,item,BudgetLogOptFlag.State_0,item.getBudgetAmount());
SysUser sysUser = sysUserService.getById(budget.getUserId());
if(sysUser==null){
sysUser = new SysUser();
sysUser.setId("1");
sysUser.setName("Admin");
sysUser.setCode("Admin");
}
TbsBudgetLog budgetLog = TbsBudgetLogBuildUtil.toTbsBudgetLog(sysUser,budget,item,BudgetLogOptFlag.State_0,item.getBudgetAmount());
budgetLog.setRemark("sync");
tbsBudgetLogService.save(budgetLog);
}

4
src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyOperationServiceImpl.java

@ -1,6 +1,8 @@
package com.qs.serve.modules.tzc.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.framework.manager.AsyncFactory;
import com.qs.serve.common.framework.manager.AsyncManager;
import com.qs.serve.common.model.consts.BudgetLogRollbackFlag;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BudgetLogOptFlag;
@ -147,7 +149,7 @@ public class TzcPolicyOperationServiceImpl implements SeeYonOperationService {
@Override
public void doCommitBacked(String targetId) {
AsyncManager.me().execute(AsyncFactory.submitPolicy(Long.parseLong(targetId)));
}
@Override

2
src/main/java/com/qs/serve/task/PayTask.java

@ -74,7 +74,9 @@ public class PayTask {
costApplyService.updateBatchById(updatePayStateList);
//更新支付表记录,用于实现增量更新
List<Long> costIds4Update = updatePayStateList.stream().map(TbsCostApply::getId).collect(Collectors.toList());
if(costIds4Update.size()>0){
payPaymentItemMapper.updateSyncCostState(costIds4Update);
}
}
}

Loading…
Cancel
Save