From c83b3ad4e7d3fc8da48eafcd45dd46de0262f138 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期三, 08 一月 2025 16:51:50 +0800
Subject: [PATCH] #
---
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java | 4 +---
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/CodeGapServiceImpl.java | 50 +++++++++++++++++++++++++++++++++++++++++++++++---
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/CodeGapService.java | 2 ++
3 files changed, 50 insertions(+), 6 deletions(-)
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
index 02c7732..b1652e5 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
@@ -669,7 +669,6 @@
}
boolean first = true;
- long startTime = System.currentTimeMillis();
for (Segment segment : segmentList) {
// 鍒嗘鎵�灞炵殑Task
@@ -968,7 +967,6 @@
}
}
- System.out.println("save data: " + (System.currentTimeMillis() - startTime));
// finish
actionList.add(new Action(
@@ -1021,7 +1019,7 @@
}
}
- log.info(agvNo + "鍙稟gv鍔ㄤ綔缁勮瀹屾垚锛屾寚浠ゆ暟閲忥細" + newActionList.size());
+ log.info("{}鍙稟gv鍔ㄤ綔缁勮瀹屾垚锛屾寚浠ゆ暟閲忥細{}", agvNo, newActionList.size());
} catch (Exception e) {
log.error("mainService.generateAction", e);
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/CodeGapService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/CodeGapService.java
index 390c8a8..9c05ec9 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/CodeGapService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/CodeGapService.java
@@ -10,4 +10,6 @@
CodeGap findByCodeOfBoth(Long code0, Long code1);
+ Double findDistanceByCode(Long code0, Long code1);
+
}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/CodeGapServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/CodeGapServiceImpl.java
index 78a5f57..138afec 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/CodeGapServiceImpl.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/CodeGapServiceImpl.java
@@ -2,22 +2,42 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zy.acs.framework.common.Cools;
import com.zy.acs.framework.exception.CoolException;
import com.zy.acs.manager.core.service.MapService;
import com.zy.acs.manager.manager.entity.Code;
import com.zy.acs.manager.manager.entity.CodeGap;
import com.zy.acs.manager.manager.mapper.CodeGapMapper;
import com.zy.acs.manager.manager.service.CodeGapService;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import javax.annotation.PostConstruct;
import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+@Slf4j
@Service("codeGapService")
public class CodeGapServiceImpl extends ServiceImpl<CodeGapMapper, CodeGap> implements CodeGapService {
+ public static final Map<String, CodeGap> GAP_DISTANCE_CACHE = new HashMap<>();
+
@Autowired
private MapService mapService;
+
+ @PostConstruct
+ public void init() {
+ for (CodeGap codeGap : this.list()) {
+ String gapKey = generateGapKey(codeGap.getCode0(), codeGap.getCode1());
+ if (!Cools.isEmpty(gapKey)) {
+ GAP_DISTANCE_CACHE.put(gapKey, codeGap);
+ }
+ }
+ log.info("The gap cache was initialized...");
+ }
+
@Override
public CodeGap createCodeGapByCode(Code code0, Code code1, Long userId) {
@@ -48,11 +68,35 @@
@Override
public CodeGap findByCodeOfBoth(Long code0, Long code1) {
- CodeGap codeGap = getOne(new LambdaQueryWrapper<CodeGap>().eq(CodeGap::getCode0, code0).eq(CodeGap::getCode1, code1));
- if (codeGap == null) {
- codeGap = getOne(new LambdaQueryWrapper<CodeGap>().eq(CodeGap::getCode1, code0).eq(CodeGap::getCode0, code1));
+ CodeGap codeGap = null;
+ String gapKey = generateGapKey(code0, code1);
+ if (!Cools.isEmpty(gapKey)) {
+ codeGap = GAP_DISTANCE_CACHE.get(gapKey);
}
+
+ if (null == codeGap) {
+ codeGap = getOne(new LambdaQueryWrapper<CodeGap>().eq(CodeGap::getCode0, code0).eq(CodeGap::getCode1, code1));
+ if (codeGap == null) {
+ codeGap = getOne(new LambdaQueryWrapper<CodeGap>().eq(CodeGap::getCode1, code0).eq(CodeGap::getCode0, code1));
+ }
+ }
+
return codeGap;
}
+ @Override
+ public Double findDistanceByCode(Long code0, Long code1) {
+ return 0.0;
+ }
+
+ private static String generateGapKey(Long code0, Long code1) {
+ if (Cools.isEmpty(code0, code1)) {
+ return null;
+ }
+ if (code1 < code0) {
+ return code1 + "-" + code0;
+ }
+ return code0 + "-" + code1;
+ }
+
}
--
Gitblit v1.9.1