决因为数据库连接问题导致的插入数据库异常
This commit is contained in:
@@ -248,7 +248,10 @@ public class CustomerManagementController {
|
||||
@Parameter(description = "所属人姓名(模糊查询)")@RequestParam(required = false) String salesName,
|
||||
@Parameter(description = "所属人电话")@RequestParam(required = false) String salesPhone,
|
||||
@Parameter(description = "联系方式(模糊查询)")
|
||||
@RequestParam(required = false) String contact) {
|
||||
@RequestParam(required = false) String contact,
|
||||
@Parameter(description = "联系方式(模糊查询)")
|
||||
@RequestParam(required = false) String stage
|
||||
) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
try {
|
||||
Page<CustomerManagement> page = new Page<>(current, size);
|
||||
@@ -264,6 +267,9 @@ public class CustomerManagementController {
|
||||
if (contact != null && !contact.trim().isEmpty()) {
|
||||
queryWrapper.like(CustomerManagement::getContact, contact);
|
||||
}
|
||||
if (stage != null && !stage.trim().isEmpty()) {
|
||||
queryWrapper.eq(CustomerManagement::getStage, stage);
|
||||
}
|
||||
// 按创建时间倒序排列
|
||||
queryWrapper.orderByDesc(CustomerManagement::getUpdateTime);
|
||||
|
||||
|
||||
@@ -51,6 +51,12 @@ import java.util.regex.Pattern;
|
||||
public class LbDailyUserTradeServiceImpl extends ServiceImpl<LbDailyUserTradeMapper, LbDailyUserTrade> implements ILbDailyUserTradeService {
|
||||
private static final Logger log = LoggerFactory.getLogger(LbDailyUserTradeServiceImpl.class);
|
||||
private static final BigDecimal SERVICE_RATE = new BigDecimal("0.01");
|
||||
/**
|
||||
* MyBatis-Plus {@code saveBatch(list)} uses one SqlSession for the whole list and only closes after commit.
|
||||
* Large imports can exceed Hikari {@code leakDetectionThreshold} (borrow time), producing false leak warnings.
|
||||
* Chunking yields shorter per-connection holds and matches pool-friendly batch sizing.
|
||||
*/
|
||||
private static final int EXCEL_IMPORT_SAVE_CHUNK_SIZE = 1000;
|
||||
|
||||
@Autowired
|
||||
private ILbDailyUserTradeReportService lbDailyUserTradeReportService;
|
||||
@@ -263,12 +269,20 @@ public class LbDailyUserTradeServiceImpl extends ServiceImpl<LbDailyUserTradeMap
|
||||
return result;
|
||||
}
|
||||
|
||||
boolean saved = this.saveBatch(importList);
|
||||
if (!saved) {
|
||||
log.error("导入数据保存失败,fileName={}, importCount={}", originalFilename, importList.size());
|
||||
result.put("success", false);
|
||||
result.put("message", "导入失败,数据库保存异常");
|
||||
return result;
|
||||
int total = importList.size();
|
||||
for (int from = 0; from < total; from += EXCEL_IMPORT_SAVE_CHUNK_SIZE) {
|
||||
int to = Math.min(from + EXCEL_IMPORT_SAVE_CHUNK_SIZE, total);
|
||||
List<LbDailyUserTrade> chunk = importList.subList(from, to);
|
||||
if (!this.saveBatch(chunk)) {
|
||||
log.error("导入数据保存失败,fileName={}, importCount={}, failedChunk=[{}, {})",
|
||||
originalFilename, total, from, to);
|
||||
result.put("success", false);
|
||||
result.put("message", "导入失败,数据库保存异常(批次失败,可能已写入部分数据)");
|
||||
result.put("importCount", from);
|
||||
result.put("skipCount", skippedRows.size());
|
||||
result.put("skippedRows", skippedRows);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
log.info("导入成功,fileName={}, importCount={}, skipCount={}",
|
||||
|
||||
Reference in New Issue
Block a user