Browse Source

批量入库

2025年2月28日11:38:17
qingyuan_dev_new
lishuai 11 months ago
parent
commit
7e72fb4594
  1. 15
      modules/calculation/src/main/java/com/thing/calculation/service/impl/CalcLogServiceImpl.java

15
modules/calculation/src/main/java/com/thing/calculation/service/impl/CalcLogServiceImpl.java

@ -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);
}
}
/** 清理已过期的计算记录(状态为已计算,且为两天前的计算日志) */

Loading…
Cancel
Save