|
|
|
@ -107,7 +107,20 @@ public class CalcLogServiceImpl extends BaseServiceImpl<CalcLogMapper, CalcLogEn |
|
|
|
|
|
|
|
@Override |
|
|
|
public void batchSaveOrUpdate(Collection<CalcLogEntity> logs) { |
|
|
|
mapper.batchSaveOrUpdate(logs); |
|
|
|
if (CollectionUtils.isEmpty(logs)) { |
|
|
|
return; |
|
|
|
} |
|
|
|
// 将 logs 分割成多个子集合,每个子集合包含 BATCH_SIZE 条数据 |
|
|
|
List<CalcLogEntity> logList = new ArrayList<>(logs); |
|
|
|
int totalSize = logList.size(); |
|
|
|
for (int i = 0; i < totalSize; i += 1000) { |
|
|
|
// 计算每一批的结束索引,确保不越界 |
|
|
|
int end = Math.min(i + 1000, totalSize); |
|
|
|
// 获取当前批次的数据 |
|
|
|
List<CalcLogEntity> batch = logList.subList(i, end); |
|
|
|
// 执行批量保存或更新 |
|
|
|
mapper.batchSaveOrUpdate(batch); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** 清理已过期的计算记录(状态为已计算,且为两天前的计算日志) */ |
|
|
|
|