diff --git a/pom.xml b/pom.xml
index 9e83459..d7a094d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@
com.cst
AIDriverEEBackend
- 1.260502.1-SNAPSHOT
+ 1.260504.1-SNAPSHOT
Langchain4j-rj
Langchain4j-rj20250803
diff --git a/src/main/java/com/rj/controller/CustomerManagementController.java b/src/main/java/com/rj/controller/CustomerManagementController.java
index 4a36628..3f2f6a8 100644
--- a/src/main/java/com/rj/controller/CustomerManagementController.java
+++ b/src/main/java/com/rj/controller/CustomerManagementController.java
@@ -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 result = new HashMap<>();
try {
Page 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);
diff --git a/src/main/java/com/rj/service/impl/LbDailyUserTradeServiceImpl.java b/src/main/java/com/rj/service/impl/LbDailyUserTradeServiceImpl.java
index ba7de6c..87c61cd 100644
--- a/src/main/java/com/rj/service/impl/LbDailyUserTradeServiceImpl.java
+++ b/src/main/java/com/rj/service/impl/LbDailyUserTradeServiceImpl.java
@@ -51,6 +51,12 @@ import java.util.regex.Pattern;
public class LbDailyUserTradeServiceImpl extends ServiceImpl 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 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={}",
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 2949f19..ca5cf98 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -98,17 +98,17 @@ spring:
pool:
size: 8
thread-name-prefix: app-scheduling-
- data:
- redis:
- port: 6389
- host: 124.221.59.58
- password: qwe123
- database: 0
+# data:
+# redis:
+# port: 6389
+# host: 124.221.59.58
+# password: qwe123
+# database: 0
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
# tcpKeepAlive:TCP 层定期发保活包,降低 NAT/防火墙 idle 断连(常见约 15 分钟)概率
-# url: jdbc:mysql://124.221.59.58:3309/ai_smart_ee?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true&tcpKeepAlive=true&socketTimeout=60000&connectTimeout=30000&autoReconnect=true&failOverReadOnly=false&maxReconnects=3&initialTimeout=2
- url: jdbc:mysql://192.168.1.44:3309/ai_smart_ee?useUnicode=true&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&tcpKeepAlive=true&autoReconnect=true&failOverReadOnly=false&maxReconnects=3&initialTimeout=2&connectTimeout=30000&socketTimeout=60000
+ url: jdbc:mysql://101.35.52.237:13319/ai_smart_ee?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true&tcpKeepAlive=true&socketTimeout=60000&connectTimeout=30000&autoReconnect=true&failOverReadOnly=false&maxReconnects=3&initialTimeout=2
+# url: jdbc:mysql://192.168.1.44:3309/ai_smart_ee?useUnicode=true&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&tcpKeepAlive=true&autoReconnect=true&failOverReadOnly=false&maxReconnects=3&initialTimeout=2&connectTimeout=30000&socketTimeout=60000
username: root
password: cstcom.123!
# password: ChangAndb.123!