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