From b3496f3cc94d4c378ea8f7d8557461383452b217 Mon Sep 17 00:00:00 2001
From: huangjin <huangjin@lucahealthcare.com>
Date: Fri, 30 Aug 2024 11:18:54 +0800
Subject: [PATCH] =?UTF-8?q?=E5=87=8F=E5=B0=8F=E6=89=B9=E6=AC=A1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../pilot/entity/AbstractAuditingEntity.java  |  2 +-
 .../com/luca/pilot/entity/BaseModuleView.java | 63 -------------------
 .../com/luca/pilot/entity/ModuleEntity.java   |  2 +-
 src/main/java/com/luca/pilot/entity/Plan.java |  2 +-
 .../com/luca/pilot/entity/PlanModule.java     |  2 +-
 .../java/com/luca/pilot/entity/PlanTask.java  |  2 +-
 .../luca/pilot/entity/ScaleModuleEntity.java  |  2 +-
 src/main/java/com/luca/pilot/entity/Site.java |  2 +-
 .../luca/pilot/entity/SynchronizeTime.java    |  2 +-
 .../pilot/service/BaseModuleViewService.java  | 10 ---
 .../impl/BaseModuleViewServiceImpl.java       | 57 -----------------
 .../pilot/service/impl/PlanServiceImpl.java   | 50 ++++++++++-----
 .../java/com/luca/pilot/PlanTaskTest.java     |  9 ---
 13 files changed, 41 insertions(+), 164 deletions(-)
 delete mode 100644 src/main/java/com/luca/pilot/entity/BaseModuleView.java
 delete mode 100644 src/main/java/com/luca/pilot/service/BaseModuleViewService.java
 delete mode 100644 src/main/java/com/luca/pilot/service/impl/BaseModuleViewServiceImpl.java

diff --git a/src/main/java/com/luca/pilot/entity/AbstractAuditingEntity.java b/src/main/java/com/luca/pilot/entity/AbstractAuditingEntity.java
index e13fd16..55d6ddc 100644
--- a/src/main/java/com/luca/pilot/entity/AbstractAuditingEntity.java
+++ b/src/main/java/com/luca/pilot/entity/AbstractAuditingEntity.java
@@ -30,6 +30,6 @@ public abstract class AbstractAuditingEntity implements Serializable {
     /**
      * 鍒犻櫎鏍囪锛坒alse:鏈垹闄� true:宸插垹闄わ級
      */
-    private boolean deleted = false;
+    private Integer deleted;
 
 }
diff --git a/src/main/java/com/luca/pilot/entity/BaseModuleView.java b/src/main/java/com/luca/pilot/entity/BaseModuleView.java
deleted file mode 100644
index f041064..0000000
--- a/src/main/java/com/luca/pilot/entity/BaseModuleView.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package com.luca.pilot.entity;
-
-import lombok.Data;
-import lombok.experimental.Accessors;
-import org.springframework.data.mongodb.core.mapping.Document;
-import org.springframework.data.mongodb.core.mapping.Field;
-
-@Data
-@Accessors(chain = true)
-@Document(collection = "base_module_view")
-public class BaseModuleView {
-
-    private Long id;
-
-    @Field("tenant_id")
-    private Long tenantId;
-
-    private String name;
-
-    @Field("module_item_type")
-    private String moduleItemType;
-
-    private Integer status;
-
-    @Field("module_code")
-    private String moduleCode;
-
-    @Field("module_enabled")
-    private Boolean moduleEnabled;
-
-    @Field("module_type")
-    private String moduleType;
-
-    @Field("project_code")
-    private String projectCode;
-
-    @Field("project_enabled")
-    private Boolean projectEnabled;
-
-    @Field("collect_type")
-    private String collectType;
-
-    @Field("local_algorithm")
-    private String localAlgorithm;
-
-    @Field("supplement_img_url")
-    private String supplementImgUrl;
-
-    @Field("supplement_media_url")
-    private String supplementMediaUrl;
-
-    @Field("collect_duration")
-    private String collectDuration;
-
-    @Field("description")
-    private String description;
-
-    private String deleted;
-
-    @Field("created_at")
-    private String createdAt;
-
-}
diff --git a/src/main/java/com/luca/pilot/entity/ModuleEntity.java b/src/main/java/com/luca/pilot/entity/ModuleEntity.java
index 098fb84..224160a 100644
--- a/src/main/java/com/luca/pilot/entity/ModuleEntity.java
+++ b/src/main/java/com/luca/pilot/entity/ModuleEntity.java
@@ -46,6 +46,6 @@ public class ModuleEntity extends AbstractAuditingEntity {
     /**
      * 妯″潡鐘舵€�
      */
-    private Boolean enabled;
+    private Integer enabled;
 
 }
diff --git a/src/main/java/com/luca/pilot/entity/Plan.java b/src/main/java/com/luca/pilot/entity/Plan.java
index 8319284..e898a96 100644
--- a/src/main/java/com/luca/pilot/entity/Plan.java
+++ b/src/main/java/com/luca/pilot/entity/Plan.java
@@ -66,7 +66,7 @@ public class Plan extends AbstractAuditingEntity {
     /**
      * 鏄惁鍚敤(0:绂佺敤 1:鍚敤)
      */
-    private Boolean enabled;
+    private Integer enabled;
 
     /**
      * 璁″垝浜岀淮鐮�
diff --git a/src/main/java/com/luca/pilot/entity/PlanModule.java b/src/main/java/com/luca/pilot/entity/PlanModule.java
index c990dea..02c677a 100644
--- a/src/main/java/com/luca/pilot/entity/PlanModule.java
+++ b/src/main/java/com/luca/pilot/entity/PlanModule.java
@@ -38,7 +38,7 @@ public class PlanModule {
     private Integer planTaskTaskCount;
     private Integer planTaskFinishDay;
     private Integer planTaskLoopType;
-    private Boolean planTaskEnabled;
+    private Integer planTaskEnabled;
     private Integer planTaskIsCirculation;
     private Integer planTaskBeginDay;
     private Integer planTaskCirculationDay;
diff --git a/src/main/java/com/luca/pilot/entity/PlanTask.java b/src/main/java/com/luca/pilot/entity/PlanTask.java
index d7cff83..58cfe4c 100644
--- a/src/main/java/com/luca/pilot/entity/PlanTask.java
+++ b/src/main/java/com/luca/pilot/entity/PlanTask.java
@@ -81,7 +81,7 @@ public class PlanTask extends AbstractAuditingEntity {
      * 鏄惁鍚敤(0:绂佺敤 1:鍚敤)
      */
     @Field("enabled")
-    private Boolean enabled;
+    private Integer enabled;
 
     /**
      * 璁″垝鐩爣id
diff --git a/src/main/java/com/luca/pilot/entity/ScaleModuleEntity.java b/src/main/java/com/luca/pilot/entity/ScaleModuleEntity.java
index 0379b66..31b58b3 100644
--- a/src/main/java/com/luca/pilot/entity/ScaleModuleEntity.java
+++ b/src/main/java/com/luca/pilot/entity/ScaleModuleEntity.java
@@ -25,5 +25,5 @@ public class ScaleModuleEntity extends AbstractAuditingEntity {
     private String moduleCode;
     @Field("scale_code")
     private String scaleCode;
-    private Boolean enabled;
+    private Integer enabled;
 }
diff --git a/src/main/java/com/luca/pilot/entity/Site.java b/src/main/java/com/luca/pilot/entity/Site.java
index 22c70b6..8640c27 100644
--- a/src/main/java/com/luca/pilot/entity/Site.java
+++ b/src/main/java/com/luca/pilot/entity/Site.java
@@ -83,7 +83,7 @@ public class Site extends AbstractAuditingEntity {
     /**
      * 鍚敤鐘舵€�
      */
-    private Boolean enable;
+    private Integer enable;
 
 
 }
\ No newline at end of file
diff --git a/src/main/java/com/luca/pilot/entity/SynchronizeTime.java b/src/main/java/com/luca/pilot/entity/SynchronizeTime.java
index 9391f86..3302ad1 100644
--- a/src/main/java/com/luca/pilot/entity/SynchronizeTime.java
+++ b/src/main/java/com/luca/pilot/entity/SynchronizeTime.java
@@ -9,6 +9,6 @@ import java.time.LocalDateTime;
 public class SynchronizeTime {
 
     private String _id;
-    private LocalDateTime plan;
+    private String plan;
 
 }
diff --git a/src/main/java/com/luca/pilot/service/BaseModuleViewService.java b/src/main/java/com/luca/pilot/service/BaseModuleViewService.java
deleted file mode 100644
index 78b1388..0000000
--- a/src/main/java/com/luca/pilot/service/BaseModuleViewService.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.luca.pilot.service;
-
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-
-public interface BaseModuleViewService {
-
-     void synchronizeModuleView();
-}
diff --git a/src/main/java/com/luca/pilot/service/impl/BaseModuleViewServiceImpl.java b/src/main/java/com/luca/pilot/service/impl/BaseModuleViewServiceImpl.java
deleted file mode 100644
index a1ee712..0000000
--- a/src/main/java/com/luca/pilot/service/impl/BaseModuleViewServiceImpl.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package com.luca.pilot.service.impl;
-
-import com.luca.pilot.entity.BaseModuleView;
-import com.luca.pilot.entity.ModuleEntity;
-import com.luca.pilot.entity.ScaleModuleDetailsEntity;
-import com.luca.pilot.entity.ScaleModuleEntity;
-import com.luca.pilot.service.BaseModuleViewService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.data.mongodb.core.MongoTemplate;
-import org.springframework.data.mongodb.core.query.Criteria;
-import org.springframework.data.mongodb.core.query.Query;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.Resource;
-import java.util.List;
-import java.util.Objects;
-import java.util.stream.Collectors;
-
-@Slf4j
-@Service
-public class BaseModuleViewServiceImpl implements BaseModuleViewService {
-
-    @Resource(name = "mongoTemplate")
-    private MongoTemplate mongoTemplate;
-
-    @Override
-    public void synchronizeModuleView() {
-        queryScale();
-    }
-
-    private void queryScale() {
-        List<ScaleModuleDetailsEntity> scaleModuleDetailsList = mongoTemplate.findAll(ScaleModuleDetailsEntity.class);
-        List<ScaleModuleEntity> scaleModuleList = mongoTemplate.findAll(ScaleModuleEntity.class);
-        List<ModuleEntity> moduleList = mongoTemplate.findAll(ModuleEntity.class);
-
-        List<BaseModuleView> views = scaleModuleDetailsList.stream().map(x -> {
-            ScaleModuleEntity sm = scaleModuleList.stream().filter(y -> y.getScaleCode().equals(x.getCode())).findFirst().orElse(null);
-            if(Objects.nonNull(sm)) {
-                ModuleEntity m = moduleList.stream().filter(y -> y.getCode().equals(sm.getModuleCode())).findFirst().orElse(null);
-                BaseModuleView view = new BaseModuleView()
-                        .setId(x.getId())
-                        .setName(x.getName())
-                        .setStatus(x.getStatus())
-                        .setModuleCode(Objects.isNull(sm) ? "" : sm.getScaleCode())
-                        .setModuleEnabled(Objects.isNull(sm) ? null : sm.getEnabled())
-                        .setModuleType(Objects.isNull(m) ? "" : m.getType())
-                        .setProjectCode(Objects.isNull(m) ? "" : m.getProjectCode())
-                        .setProjectEnabled(Objects.isNull(m) ? null : m.getEnabled());
-                return view;
-            }
-            return null;
-        }).collect(Collectors.toList());
-
-        mongoTemplate.insertAll(views);
-    }
-
-}
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 48f2362..885f8f3 100644
--- a/src/main/java/com/luca/pilot/service/impl/PlanServiceImpl.java
+++ b/src/main/java/com/luca/pilot/service/impl/PlanServiceImpl.java
@@ -7,9 +7,14 @@ import com.luca.pilot.entity.*;
 import com.luca.pilot.service.PlanService;
 import com.luca.pilot.util.CrfUtil;
 import com.mongodb.bulk.BulkWriteResult;
+import com.mongodb.client.model.Filters;
+import com.mongodb.client.model.UpdateOneModel;
+import com.mongodb.client.model.UpdateOptions;
+import com.mongodb.client.model.WriteModel;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.data.mongodb.core.BulkOperations;
 import org.springframework.data.mongodb.core.MongoTemplate;
+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;
@@ -36,42 +41,44 @@ public class PlanServiceImpl implements PlanService {
     private MongoTemplate mongoArchiveTemplate;
 
     @Override
-    @Scheduled(cron ="0 0/5 * * * ?")
+    @Scheduled(cron ="0 0/1 * * * ?")
     public void synchronizePlanTask() {
         log.info("--------------synchronizePlanTask start---------");
-        LocalDateTime now = LocalDateTime.now();
+        String nowTime = parseTimeFromDateTime (LocalDateTime.now());
 
         SynchronizeTime synchronizeTime = findSynchronizeTime();
 
-        LocalDateTime lastSynchronizeTime = null;
+        String lastSynchronizeTime = null;
         if (Objects.nonNull(synchronizeTime)) {
-            lastSynchronizeTime = synchronizeTime.getPlan();
+            lastSynchronizeTime =  synchronizeTime.getPlan();
         }
 
         Query countQuery = new Query();
         if (Objects.nonNull(lastSynchronizeTime)) {
-            countQuery.addCriteria(Criteria.where("last_modified_at").gt(String.valueOf(lastSynchronizeTime)));
+            countQuery.addCriteria(Criteria.where("last_modified_at").gt(lastSynchronizeTime));
         }
         long totalPlanTaskDetailsCount = mongoTemplate.count(countQuery, PlanTaskDetails.class);
         log.info("PlanTaskDetails 鍦ㄥぇ浜� {} 鏃堕棿鍐呮湭鏌ヨ鍒版暟鎹� {} 鏉�", lastSynchronizeTime, totalPlanTaskDetailsCount);
+
         if (totalPlanTaskDetailsCount == 0) {
             return;
         }
 
-        saveSynchronizeTime(synchronizeTime, now);
+        saveSynchronizeTime(synchronizeTime, nowTime);
 
-        long skip = totalPlanTaskDetailsCount / 10000;
-        if (totalPlanTaskDetailsCount % 10000 > 0) {
+        long skip = totalPlanTaskDetailsCount / 1000;
+        if (totalPlanTaskDetailsCount % 1000 > 0) {
             skip++;
         }
 
-        long totalPlanModuleCount = mongoTemplate.count(countQuery, PlanModule.class);
+        long totalPlanModuleCount = mongoTemplate.count(new Query(), PlanModule.class);
 
         BulkOperations bulkOps = mongoTemplate.bulkOps(BulkOperations.BulkMode.UNORDERED, PlanModule.class);
+//        BulkOperations bulkOps = mongoTemplate.bulkOps(BulkOperations.BulkMode.UNORDERED, PlanTaskDetails.class);
 
         for (int i = 0; i < skip; i++) {
-            countQuery.skip(i * 10000L);
-            countQuery.limit(10000);
+            countQuery.skip(i * 1000L);
+            countQuery.limit(1000);
             List<PlanTaskDetails> planTaskDetails = mongoTemplate.find(countQuery, PlanTaskDetails.class);
             log.info("绗瑊}娆℃煡璇� planTaskDetails count:{}", i + 1, planTaskDetails.size());
             // 鑾峰彇瀵瑰簲妗f锛屽彇subjectId 鍜� randomId
@@ -95,7 +102,6 @@ public class PlanServiceImpl implements PlanService {
 
             List<PlanModule> planMoudles = new ArrayList<>();
 
-
             //浠� planTaskDetail 鍜� planMoudleRelate 涓哄熀鍑�
             // 涓€涓� planTaskDetail 鑳藉搴斿涓� planMoudleRelate锛屽嵆涓€娆′换鍔¢厤缃簡澶氬皯涓ā鍧楋紙闂嵎锛岄噺琛紝鏁板瓧闈剁偣锛�
             for (PlanTaskDetails planTaskDetail : planTaskDetails) {
@@ -230,21 +236,22 @@ public class PlanServiceImpl implements PlanService {
                 }
             }
 
-            log.info("planMoudles size:{}", planMoudles.size());
 
             // 鏄惁绗竴娆″叏閲忔彃鍏�
             if (totalPlanModuleCount > 0) {
-                BulkWriteResult execute = bulkOps.execute();
-                log.info("BulkWriteResult:{} ", JSONUtil.toJsonStr(execute));
+                bulkOps.execute();
+                log.info("bulkOps 鏇存柊鎴栨彃鍏� {}  鏉℃暟鎹�", planMoudles.size());
             } else {
                 if (!CollectionUtils.isEmpty(planMoudles)) {
                     mongoTemplate.insert(planMoudles, PlanModule.class);
+                    log.info("mongoTemplate insert {} 鏉℃暟鎹� ", planMoudles.size());
                 }
             }
 
         }
 
-        log.info("synchronizePlanTask end, 鑰楁椂:{} 绉�", LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) - now.toEpochSecond(ZoneOffset.of("+8")));
+        log.info("synchronizePlanTask end, 鑰楁椂:{} 绉�", LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) -
+                LocalDateTime.parse(nowTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")).toEpochSecond(ZoneOffset.of("+8")));
 
     }
 
@@ -253,7 +260,7 @@ public class PlanServiceImpl implements PlanService {
         return mongoTemplate.findOne(query, SynchronizeTime.class);
     }
 
-    private void saveSynchronizeTime(SynchronizeTime synchronizeTime, LocalDateTime now) {
+    private void saveSynchronizeTime(SynchronizeTime synchronizeTime, String now) {
         if (Objects.isNull(synchronizeTime)) {
             SynchronizeTime time = new SynchronizeTime();
             time.setPlan(now);
@@ -314,11 +321,20 @@ public class PlanServiceImpl implements PlanService {
     }
 
 
+    public static void main(String[] args) {
+        String yim ="2024-08-30 10:14:45";
+        System.out.println(LocalDateTime.parse(yim, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+    }
+
     private String parseTimeFromDate(LocalDate timeStr) {
         LocalDateTime localDateTime = timeStr.atStartOfDay();
         DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
         return localDateTime.format(fmt);
     }
+    private String parseTimeFromDateTime(LocalDateTime timeStr) {
+        DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        return timeStr.format(fmt);
+    }
 
     private List<PlanTaskDetailsModule> queryPlanTaskDetaiMoudles(List<PlanTaskDetails> planTaskDetails) {
 
diff --git a/src/test/java/com/luca/pilot/PlanTaskTest.java b/src/test/java/com/luca/pilot/PlanTaskTest.java
index 9460f7c..f2b58c9 100644
--- a/src/test/java/com/luca/pilot/PlanTaskTest.java
+++ b/src/test/java/com/luca/pilot/PlanTaskTest.java
@@ -1,8 +1,6 @@
 package com.luca.pilot;
 
-import cn.hutool.json.JSONUtil;
 import com.luca.pilot.entity.UserArchive;
-import com.luca.pilot.service.BaseModuleViewService;
 import com.luca.pilot.service.PlanService;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
@@ -24,8 +22,6 @@ public class PlanTaskTest {
     private MongoTemplate mongoTemplate;
     @Autowired
     private PlanService planService;
-    @Autowired
-    private BaseModuleViewService baseModuleViewService;
 
 
     @Test
@@ -51,11 +47,6 @@ public class PlanTaskTest {
 
     }
 
-    @Test
-    void synchronizeModuleView() {
-        baseModuleViewService.synchronizeModuleView();
-    }
-
 
 
     @Test
-- 
GitLab