Commit 8285d4f8 by jianan

前端对接问题修复59

parent cb305a48
...@@ -29,21 +29,16 @@ import org.redisson.api.RLock; ...@@ -29,21 +29,16 @@ import org.redisson.api.RLock;
import org.redisson.api.RedissonClient; import org.redisson.api.RedissonClient;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.TransactionSynchronization; import org.springframework.transaction.support.TransactionTemplate;
import org.springframework.transaction.support.TransactionSynchronizationManager;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.*; import java.util.*;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -75,6 +70,8 @@ public class ApiCommissionController { ...@@ -75,6 +70,8 @@ public class ApiCommissionController {
private PolicyFollowService policyFollowService; private PolicyFollowService policyFollowService;
@Resource @Resource
private PolicyService policyService; private PolicyService policyService;
@Resource
private TransactionTemplate transactionTemplate;
@PostMapping("/upload/excel") @PostMapping("/upload/excel")
...@@ -151,25 +148,26 @@ public class ApiCommissionController { ...@@ -151,25 +148,26 @@ public class ApiCommissionController {
// 数据处理 // 数据处理
List<Commission> entities = processData(dataList, loginUserId, reconciliationYearMonth); List<Commission> entities = processData(dataList, loginUserId, reconciliationYearMonth);
transactionTemplate.execute(status -> {
// 保存来佣数据
commissionService.saveBatch(entities);
return null;
});
// // 转换为 VO // // 转换为 VO
// List<CommissionVO> commissionVOList = commissionService.getCommissionList(entities); // List<CommissionVO> commissionVOList = commissionService.getCommissionList(entities);
// 批量比对 // 开启新事务,比对数据
TransactionSynchronizationManager.registerSynchronization( transactionTemplate.execute(status -> {
new TransactionSynchronization() {
@Override
public void afterCommit() {
try { try {
// 重新查询最新的数据,获取已提交的数据
commissionAsyncService.commissionCompareBatch(entities); commissionAsyncService.commissionCompareBatch(entities);
} catch (Exception e) { } catch (Exception e) {
// 比对失败不影响主事务,记录日志即可 // 比对失败不影响主事务,记录日志即可
e.printStackTrace(); e.printStackTrace();
log.error("批量导入, 比对操作执行失败, error: {}", e.getMessage()); log.error("批量导入, 比对操作执行失败, error: {}", e.getMessage());
} }
} return null;
} });
);
return Result.success(true); return Result.success(true);
} }
...@@ -227,9 +225,6 @@ public class ApiCommissionController { ...@@ -227,9 +225,6 @@ public class ApiCommissionController {
// 补充完整字段 // 补充完整字段
commissionService.fillCommissionList(entities); commissionService.fillCommissionList(entities);
// 保存来佣数据
commissionService.saveBatch(entities);
return entities; return entities;
} }
......
...@@ -129,7 +129,11 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss ...@@ -129,7 +129,11 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
// 2.关联查询预计入账信息 // 2.关联查询预计入账信息
Set<String> commissionExpectedBizIdSet = commissionList.stream().map(Commission::getCommissionExpectedBizId).collect(Collectors.toSet()); Set<String> commissionExpectedBizIdSet = commissionList.stream().map(Commission::getCommissionExpectedBizId).collect(Collectors.toSet());
List<CommissionExpected> commissionExpectedList = commissionExpectedService.lambdaQuery() List<CommissionExpected> commissionExpectedList = commissionExpectedService.lambdaQuery()
.select(CommissionExpected::getCommissionExpectedBizId, CommissionExpected::getReceivableNo) .select(CommissionExpected::getCommissionExpectedBizId,
CommissionExpected::getPaidAmount,
CommissionExpected::getPaidRatio,
CommissionExpected::getStatus,
CommissionExpected::getReceivableNo)
.in(CommissionExpected::getCommissionExpectedBizId, commissionExpectedBizIdSet) .in(CommissionExpected::getCommissionExpectedBizId, commissionExpectedBizIdSet)
.list(); .list();
Map<String, CommissionExpected> commissionExpectedMap = commissionExpectedList.stream().collect(Collectors.toMap(CommissionExpected::getCommissionExpectedBizId, a -> a, (oldValue, newValue) -> newValue)); Map<String, CommissionExpected> commissionExpectedMap = commissionExpectedList.stream().collect(Collectors.toMap(CommissionExpected::getCommissionExpectedBizId, a -> a, (oldValue, newValue) -> newValue));
...@@ -756,7 +760,11 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss ...@@ -756,7 +760,11 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
} }
commissionList.add(commission); commissionList.add(commission);
} }
boolean b = this.saveOrUpdateBatch(commissionList); // 提交事务,保存数据
transactionTemplate.execute(status -> {
saveOrUpdateBatch(commissionList);
return null;
});
// 开启新事务,比对数据 // 开启新事务,比对数据
transactionTemplate.execute(status -> { transactionTemplate.execute(status -> {
......
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