diff --git a/src/main/java/com/luca/pilot/service/impl/PlanServiceImpl.java b/src/main/java/com/luca/pilot/service/impl/PlanServiceImpl.java
index 3b15ec72f75302091a4634d7069d1593af607625..8da51abfcfd371f5d43f78cfcbee886c52e1d8a0 100644
--- a/src/main/java/com/luca/pilot/service/impl/PlanServiceImpl.java
+++ b/src/main/java/com/luca/pilot/service/impl/PlanServiceImpl.java
@@ -1,5 +1,6 @@
 package com.luca.pilot.service.impl;
 
+
 import cn.hutool.core.map.MapUtil;
 import cn.hutool.json.JSONUtil;
 import com.luca.pilot.bizEnum.TableEnum;
@@ -18,6 +19,7 @@ import org.springframework.data.mongodb.core.mapping.Document;
 import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.data.mongodb.core.query.Update;
+import org.springframework.data.util.Pair;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
@@ -76,7 +78,7 @@ public class PlanServiceImpl implements PlanService {
 
         long totalPlanModuleCount = mongoTemplate.count(new Query(), PlanModule.class);
 
-//        BulkOperations bulkOps = mongoTemplate.bulkOps(BulkOperations.BulkMode.UNORDERED, PlanModule.class);
+        BulkOperations bulkOps = mongoTemplate.bulkOps(BulkOperations.BulkMode.UNORDERED, PlanModule.class);
 
         for (int i = 0; i < skip; i++) {
             countQuery.skip(i * 10000L);
@@ -103,6 +105,7 @@ public class PlanServiceImpl implements PlanService {
             Map<Long, Map<Long, String>> digitalMedicalTypeMap = queryDigitalMedicalType(planTaskDetails);
 
             List<PlanModule> planMoudles = new ArrayList<>();
+            List<Pair<Query, Update>> pairs = new ArrayList<>();
 
             //浠� planTaskDetail 鍜� planMoudleRelate 涓哄熀鍑�
             // 涓€涓� planTaskDetail 鑳藉搴斿涓� planMoudleRelate锛屽嵆涓€娆′换鍔¢厤缃簡澶氬皯涓ā鍧楋紙闂嵎锛岄噺琛紝鏁板瓧闈剁偣锛�
@@ -232,21 +235,23 @@ public class PlanServiceImpl implements PlanService {
                     if (totalPlanModuleCount > 0) {
                         Query upsertQuery = new Query(where("key").is(planMoudle.getKey()));
                         Update update = buildUpdate(planMoudle);
-//                        bulkOps.upsert(upsertQuery, update);
-                        mongoTemplate.upsert(upsertQuery, update, PlanModule.class);
-                        log.info("mongoTemplate upsert 1 鏉℃暟鎹�");
+                        bulkOps.upsert(upsertQuery, update);
+                        Pair<Query, Update> pair = Pair.of(upsertQuery, update);
+                        pairs.add(pair);
+                    }else {
+                        planMoudles.add(planMoudle);
                     }
-                    planMoudles.add(planMoudle);
                 }
             }
 
 
             // 鏄惁绗竴娆″叏閲忔彃鍏�
             if (totalPlanModuleCount > 0) {
-//                CompletableFuture.runAsync(() -> {
-//                bulkOps.execute();
-//                log.info("bulkOps 鏇存柊鎴栨彃鍏� {}  鏉℃暟鎹�", planMoudles.size());
-//                });
+                CompletableFuture.runAsync(() -> {
+                    bulkOps.upsert(pairs);
+                    bulkOps.execute();
+                    log.info("bulkOps 鏇存柊鎴栨彃鍏� {}  鏉℃暟鎹�", pairs.size());
+                });
             } else {
                 if (!CollectionUtils.isEmpty(planMoudles)) {
                     mongoTemplate.insert(planMoudles, PlanModule.class);