From 1aed87083c1153c1ff2e559e01100213dd5bfa43 Mon Sep 17 00:00:00 2001
From: chengf <2156125618@qq.com>
Date: 星期一, 04 八月 2025 18:38:49 +0800
Subject: [PATCH] 通过OSS获取Excel导入到本地数据库中2025/08/04

---
 service-common/src/main/java/com/java110/common/dao/impl/CarInoutServiceDaoImpl.java |   45 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 45 insertions(+), 0 deletions(-)

diff --git a/service-common/src/main/java/com/java110/common/dao/impl/CarInoutServiceDaoImpl.java b/service-common/src/main/java/com/java110/common/dao/impl/CarInoutServiceDaoImpl.java
index e654b0b..95c7899 100755
--- a/service-common/src/main/java/com/java110/common/dao/impl/CarInoutServiceDaoImpl.java
+++ b/service-common/src/main/java/com/java110/common/dao/impl/CarInoutServiceDaoImpl.java
@@ -3,13 +3,17 @@
 import com.alibaba.fastjson.JSONObject;
 import com.java110.common.dao.ICarInoutServiceDao;
 import com.java110.core.base.dao.BaseServiceDao;
+import com.java110.po.car.CarInoutPo;
 import com.java110.utils.constant.ResponseConstant;
 import com.java110.utils.exception.DAOException;
 import com.java110.utils.util.DateUtil;
+import org.activiti.engine.impl.util.CollectionUtil;
 import org.slf4j.Logger;
 import com.java110.core.log.LoggerFactory;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -131,4 +135,45 @@
     }
 
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int[] batchSaveCarInout(List<CarInoutPo> successRecords) {
+        if (CollectionUtil.isEmpty(successRecords)) {
+            return new int[0];
+        }
+
+        int totalSize = successRecords.size();
+        int[] result = new int[totalSize]; // 瀛樺偍姣忔潯璁板綍鐨勬彃鍏ョ粨鏋滐紙榛樿 0 琛ㄧず澶辫触锛�
+        int batchSize = 500; // 姣忔壒鎻掑叆 500 鏉�
+        int batchCount = 0;  // 璁板綍褰撳墠澶勭悊鍒扮鍑犳壒
+
+        for (int i = 0; i < totalSize; i += batchSize) {
+            // 鎴彇褰撳墠鎵规鏁版嵁
+            List<CarInoutPo> batchList = successRecords.subList(i, Math.min(i + batchSize, totalSize));
+
+            // 鎵ц鎵归噺鎻掑叆锛岃繑鍥炲綋鍓嶆壒娆℃�诲奖鍝嶈鏁�
+            int batchAffectedRows = sqlSessionTemplate.insert(
+                    "carInoutServiceDaoImpl.batchInsert",
+                    batchList
+            );
+
+            // 鏍囪褰撳墠鎵规璁板綍涓烘垚鍔燂紙绠�鍗曞鐞嗭細鍋囪瑕佷箞鍏ㄦ垚鍔燂紝瑕佷箞鍏ㄥけ璐ワ級
+            if (batchAffectedRows == batchList.size()) {
+                for (int j = i; j < i + batchSize && j < totalSize; j++) {
+                    result[j] = 1; // 1 琛ㄧず鎻掑叆鎴愬姛
+                }
+            } else {
+                // 鎵规鎻掑叆澶辫触锛堝涓婚敭鍐茬獊銆佸瓧娈甸敊璇級锛屾爣璁颁负 0
+                for (int j = i; j < i + batchSize && j < totalSize; j++) {
+                    result[j] = 0; // 0 琛ㄧず鎻掑叆澶辫触
+                }
+            }
+
+            batchCount++;
+        }
+
+        return result;
+    }
+
+
 }

--
Gitblit v1.8.0