From 9fb7c7678174c0fea9bf7c96dca8c24b165d0a48 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期六, 04 一月 2025 13:20:57 +0800 Subject: [PATCH] # --- zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvDetailServiceImpl.java | 3 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/FaultProcessor.java | 5 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java | 6 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/ActionServiceImpl.java | 5 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvDataService.java | 11 +- zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNode.java | 41 ---------- /dev/null | 69 ----------------- zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java | 12 +- zy-acs-manager/src/main/java/com/zy/acs/manager/common/utils/MapDataUtils.java | 5 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/JamServiceImpl.java | 11 +- zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java | 9 +- zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvService.java | 5 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java | 35 +++++++- 13 files changed, 66 insertions(+), 151 deletions(-) diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/common/utils/MapDataUtils.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/common/utils/MapDataUtils.java index 8afc00d..979dfa9 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/common/utils/MapDataUtils.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/common/utils/MapDataUtils.java @@ -1,7 +1,6 @@ package com.zy.acs.manager.common.utils; import com.alibaba.fastjson.JSON; -import com.zy.acs.common.utils.GsonUtils; import com.zy.acs.framework.common.Cools; import java.util.*; @@ -36,10 +35,10 @@ } public static String generateWaveNode(String originStr, String waveNode) { - List<String> originNode = GsonUtils.fromJsonToList(originStr, String.class); + List<String> originNode = JSON.parseArray(originStr, String.class); Set<String> set = new HashSet<>(originNode); set.add(waveNode); - return GsonUtils.toJson(set); + return JSON.toJSONString(set); } public static Double getVehicleWaveSafeDistance(Integer diameter, Double factor) { diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvDataService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvDataService.java index d6805f7..4918fd8 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvDataService.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvDataService.java @@ -12,7 +12,6 @@ import com.zy.acs.manager.core.constant.MapDataConstant; import com.zy.acs.manager.core.domain.BackpackDto; import com.zy.acs.manager.core.domain.VehicleFaultDto; -import com.zy.acs.manager.manager.entity.Agv; import com.zy.acs.manager.manager.entity.AgvDetail; import com.zy.acs.manager.manager.entity.Code; import com.zy.acs.manager.manager.service.*; @@ -64,15 +63,15 @@ IMessageBody msgBody = protocol.getMessageBody(); assert msgBody != null; - Agv agv = agvService.selectByUuid(protocol.getAgvNo()); - if (null == agv) { + Long agvId = agvService.getAgvId(protocol.getAgvNo()); + if (null == agvId) { log.warn("Agv [{}] 灏氭湭閴存潈 锛侊紒锛�", protocol.getAgvNo()); return; } - AgvDetail detail = agvDetailService.selectByAgvId(agv.getId()); + AgvDetail detail = agvDetailService.selectByAgvId(agvId); if (null == detail) { detail = new AgvDetail(); - detail.setAgvId(agv.getId()); + detail.setAgvId(agvId); if (!agvDetailService.save(detail)) { log.error("Agv [{}] 璇︽儏鏇存柊澶辫触 锛侊紒锛�", protocol.getAgvNo()); return; @@ -89,7 +88,7 @@ mapService.unlockPath(protocol.getAgvNo(), agv_12_up.getQrCode()); }); // finish jam - threadPoolRegulator.getInstance().execute(() -> jamService.checkIfFinish(agv.getId(), agv_12_up.getQrCode())); + threadPoolRegulator.getInstance().execute(() -> jamService.checkIfFinish(agvId, agv_12_up.getQrCode())); // websocketService.agvInfoBroadcastOnPos(new WebsocketDto<AGV_12_UP>("agv", agv.getUuid(), agv_12_up)); this.sync(agv_12_up, detail); diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java index 69163e1..b389fe9 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java @@ -187,17 +187,17 @@ // calculate wight = backpack + distance private int calcAllocateWeight(String agvNo, Task task) { int weight = 0; - Agv agv = agvService.selectByUuid(agvNo); + Long agvId = agvService.getAgvId(agvNo); // backpack - List<Task> transportTasks = taskService.findTransportTasksByAgv(agv.getId()); + List<Task> transportTasks = taskService.findTransportTasksByAgv(agvId); if (!Cools.isEmpty(transportTasks)) { weight = weight + transportTasks.size() * 100000; } // distance // from - AgvDetail agvDetail = agvDetailService.selectByAgvId(agv.getId()); + AgvDetail agvDetail = agvDetailService.selectByAgvId(agvId); Code agvCurrCode = codeService.getById(agvDetail.getRecentCode()); Double[] fromPosition = new Double[]{agvCurrCode.getX(), agvCurrCode.getY()}; // to diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/FaultProcessor.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/FaultProcessor.java index 3a76b5a..00eed5b 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/FaultProcessor.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/FaultProcessor.java @@ -7,7 +7,6 @@ import com.zy.acs.framework.common.RadixTools; import com.zy.acs.framework.common.SnowflakeIdWorker; import com.zy.acs.manager.core.domain.VehicleFaultDto; -import com.zy.acs.manager.manager.entity.Agv; import com.zy.acs.manager.manager.entity.VehFaultRec; import com.zy.acs.manager.manager.service.AgvDetailService; import com.zy.acs.manager.manager.service.AgvService; @@ -44,11 +43,11 @@ AgvErrorType errorType = AgvErrorType.query(agv_04_up.getHexFaultId()); - Agv agv = agvService.selectByUuid(vehicle); + Long agvId = agvService.getAgvId(vehicle); VehFaultRec vehFaultRec = new VehFaultRec(); vehFaultRec.setUuid(String.valueOf(snowflakeIdWorker.nextId()).substring(3)); - vehFaultRec.setAgvId(agv.getId()); + vehFaultRec.setAgvId(agvId); vehFaultRec.setFaultNo(String.valueOf(agv_04_up.getFaultId())); vehFaultRec.setFaultHex(agv_04_up.getHexFaultId()); vehFaultRec.setFaultName(null != errorType ? errorType.desc : "undefined"); diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java index d213f35..bbc1028 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java @@ -66,17 +66,18 @@ } private void patrolOfMove(String agvNo) { - Agv agv = agvService.selectByUuid(agvNo); - AgvDetail agvDetail = agvDetailService.selectMajorByAgvId(agv.getId()); + Long agvId = agvService.getAgvId(agvNo); + AgvDetail agvDetail = agvDetailService.selectMajorByAgvId(agvId); if (taskService.count(new LambdaQueryWrapper<Task>() - .eq(Task::getAgvId, agv.getId()) + .eq(Task::getAgvId, agvId) .in(Task::getTaskSts, TaskStsType.ASSIGN.val(), TaskStsType.PROGRESS.val()) ) > 0) { return; } - if (!agvService.judgeEnable(agv.getId())) { + if (!agvService.judgeEnable(agvId)) { return; } + Agv agv = agvService.getById(agvId); Code destinationCode = this.getDestinationCode(agv, agvDetail); if (null == destinationCode) { return; diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java index 8f7ed9f..e556498 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java @@ -304,25 +304,25 @@ } else { // block vehicle info - Agv blockAgv = agvService.selectByUuid(blockAgvNo); - String blockAgvCode = codeService.getById(agvDetailService.selectByAgvId(blockAgv.getId()).getRecentCode()).getData(); + Long blockAgvId = agvService.getAgvId(blockAgvNo); + String blockAgvCode = codeService.getById(agvDetailService.selectByAgvId(blockAgvId).getRecentCode()).getData(); // create new jam if already notify the avoid vehicle - if (!Cools.isEmpty(jam.getAvoAgv(), jam.getAvoSeg()) && !blockAgv.getId().equals(jam.getAvoAgv())) { + if (!Cools.isEmpty(jam.getAvoAgv(), jam.getAvoSeg()) && !blockAgvId.equals(jam.getAvoAgv())) { jam = this.setupNewJam(jam, agv, startCode, segment, draftPath); } do { // 闃诲杞﹁締姝e湪鍘熷湴浣滀笟锛岀瓑寰� ===>> 瓒呰繃绛夊緟鏃堕棿锛岀粫璺� - List<Segment> runningSegList = segmentService.getByAgvAndState(blockAgv.getId(), SegmentStateType.RUNNING.toString()); + List<Segment> runningSegList = segmentService.getByAgvAndState(blockAgvId, SegmentStateType.RUNNING.toString()); if (!Cools.isEmpty(runningSegList)) { maxJamTimeoutFactor = 1; break; } // 鍒ゆ柇涓嬩釜浠诲姟鏄惁涓哄師鍦颁换鍔★紝濡傛灉鏄垯绛夊緟 ===>> 瓒呰繃绛夊緟鏃堕棿锛岀粫璺紱濡傛灉涓嶆槸锛岃闃诲杞﹁締閬胯 - List<Segment> waitingSegList = segmentService.getJustWaitingSeg(blockAgv.getId()); + List<Segment> waitingSegList = segmentService.getJustWaitingSeg(blockAgvId); if (null != waitingSegList && waitingSegList.stream().anyMatch( waitingSeg -> waitingSeg.getEndNode().equals(codeService.selectByData(blockAgvCode).getId()) @@ -336,7 +336,7 @@ if (jam.getCycleAvo() == 1) { jam.setCycleCode(endCode.getId()); } - jam.setAvoAgv(blockAgv.getId()); + jam.setAvoAgv(blockAgvId); jam.setNotifyTime(new Date()); if (!jamService.updateById(jam)) { throw new CoolException(jam.getUuid() + "-jam failed to update锛侊紒锛�"); diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNode.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNode.java index 0210277..d202df8 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNode.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNode.java @@ -4,10 +4,9 @@ import java.io.Serializable; import java.util.Objects; -import java.util.Optional; /** - * A*瀵昏矾绠楁硶Node鑺傜偣 + * Node鑺傜偣 */ @Data public class NavigateNode implements Comparable<NavigateNode>, Cloneable, Serializable { @@ -19,14 +18,8 @@ private int z; //鍧愭爣z(楂樺害) private int F; //缁煎悎鑺辫垂鐨勬鏁� - private int G; //宸茬粡鑺辫垂鐨勬鏁� - private int H; //灏嗚鑺辫垂鐨勬鏁� private NavigateNode parent; //鐖惰妭鐐� - private Boolean turningPoint; //鏄惁涓烘嫄鐐� - private String direction; //琛岃蛋鏂瑰悜 - private Integer lastDistance; // 璺濈涓婁釜鑺傜偣璺濈 - private Integer moveDistance; // 鎬昏璧拌窛绂� private Integer weight; // G 鏉冮噸 private String codeData; @@ -40,25 +33,6 @@ this.x = x; this.y = y; this.codeData = codeData; - } - - //閫氳繃缁撶偣鐨勫潗鏍囧拰鐩爣缁撶偣鐨勫潗鏍囧彲浠ヨ绠楀嚭F锛� G锛� H涓変釜灞炴�� - //闇�瑕佷紶鍏ヨ繖涓妭鐐圭殑涓婁竴涓妭鐐瑰拰鏈�缁堢殑缁撶偣 - public void initNode(NavigateNode father, NavigateNode end) { - this.parent = father; - if (this.parent != null) { - //璧拌繃鐨勬鏁扮瓑浜庣埗鑺傜偣璧拌繃鐨勬鏁板姞涓� - this.G = father.G - + Optional.ofNullable(this.lastDistance).orElse(0) - + Optional.ofNullable(this.weight).orElse(0); - } else { //鐖惰妭鐐逛负绌轰唬琛ㄥ畠鏄涓�涓粨鐐� - this.G = 0; - } - - //浠ヤ笅璁$畻鏂规涓虹畻娉曞師濮嬫柟妗堬紝娌℃湁鍘绘嫄鐐规柟妗堛�傚凡琚玈olution璁$畻鏃惰嚜鍔ㄨ鐩栥�� - //璁$畻閫氳繃鐜板湪鐨勭粨鐐圭殑浣嶇疆鍜屾渶缁堢粨鐐圭殑浣嶇疆璁$畻H鍊�(鏇煎搱椤挎硶锛氬潗鏍囧垎鍒彇宸�肩浉鍔�) - this.H = Math.abs(this.x - end.x) + Math.abs(this.y - end.y); - this.F = this.G + this.H; } @Override @@ -87,19 +61,6 @@ @Override public int hashCode() { return Objects.hash(x, y); - } - - public void reset() { - this.F = 0; - this.G = 0; - this.H = 0; - this.parent = null; - this.turningPoint = null; - this.direction = null; - this.lastDistance = null; - this.moveDistance = null; - this.weight = null; - this.codeData = null; } } diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNodeFactory.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNodeFactory.java deleted file mode 100644 index 9834a0a..0000000 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNodeFactory.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.zy.acs.manager.core.service.astart; - -import org.apache.commons.pool2.BasePooledObjectFactory; -import org.apache.commons.pool2.PooledObject; -import org.apache.commons.pool2.impl.DefaultPooledObject; - -public class NavigateNodeFactory extends BasePooledObjectFactory<NavigateNode> { - - @Override - public NavigateNode create() throws Exception { - // 鍒涘缓涓�涓粯璁ょ殑 NavigateNode 瀹炰緥锛屽潗鏍囧皢鍦ㄤ娇鐢ㄦ椂璁剧疆 - return new NavigateNode(0, 0); - } - - @Override - public PooledObject<NavigateNode> wrap(NavigateNode node) { - return new DefaultPooledObject<>(node); - } - - @Override - public void passivateObject(PooledObject<NavigateNode> p) throws Exception { - // 鍦ㄥ璞¤褰掕繕鍒版睜涓椂閲嶇疆鍏剁姸鎬� - p.getObject().reset(); - } -} \ No newline at end of file diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNodePool.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNodePool.java deleted file mode 100644 index 7a51eb7..0000000 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNodePool.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.zy.acs.manager.core.service.astart; - -import com.alibaba.fastjson.JSON; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.pool2.ObjectPool; -import org.apache.commons.pool2.impl.GenericObjectPool; -import org.apache.commons.pool2.impl.GenericObjectPoolConfig; -import org.springframework.stereotype.Component; - -import javax.annotation.PostConstruct; - -@Slf4j -@Component -public class NavigateNodePool { - - private ObjectPool<NavigateNode> pool; - - @PostConstruct - public void init() { - GenericObjectPoolConfig<NavigateNode> config = new GenericObjectPoolConfig<>(); - config.setMaxTotal(30000); // 閰嶇疆姹犵殑鏈�澶у璞℃暟閲� - config.setMinIdle(30000); // 鏈�灏忕┖闂插璞℃暟锛屽彲浠ユ牴鎹渶姹傝皟鏁� - config.setMaxIdle(30000); // 鏈�澶х┖闂插璞℃暟锛屽彲浠ユ牴鎹渶姹傝皟鏁� - config.setBlockWhenExhausted(true); // 姹犺�楀敖鏃堕樆濉� - config.setMaxWaitMillis(1000); // 姹犺�楀敖鏃舵渶澶х瓑寰呮椂闂� - pool = new GenericObjectPool<>(new NavigateNodeFactory(), config); - } - - - // 鑾峰彇瀵硅薄 - public NavigateNode borrowObject() { - try { -// System.out.println("numActive:" + pool.getNumActive()); -// System.out.println("numIdle:" + pool.getNumIdle()); - return pool.borrowObject(); - } catch (Exception e) { - log.error("borrowObject", e); - throw new RuntimeException("Failed to borrow NavigateNode from pool", e); - } - } - - // 褰掕繕瀵硅薄 - public void returnObject(NavigateNode node) { - if (node != null) { - try { - pool.returnObject(node); - System.out.println("numIdle:" + pool.getNumIdle()); - } catch (Exception e) { - log.error("returnObject", e); - // 濡傛灉褰掕繕澶辫触锛屽彲浠ラ�夋嫨閿�姣佸璞� - try { - pool.invalidateObject(node); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - } - } - } - - - // 閿�姣佸璞℃睜 - public void close() { - try { - pool.close(); - } catch (Exception e) { - log.error("close", e); - } - } -} \ No newline at end of file diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvService.java index 82a11cc..521c282 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvService.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvService.java @@ -7,7 +7,6 @@ import com.zy.acs.manager.core.domain.VehicleDto; import com.zy.acs.manager.manager.controller.result.AgvResult; import com.zy.acs.manager.manager.entity.Agv; -import com.zy.acs.manager.manager.entity.Task; import java.util.List; @@ -23,7 +22,9 @@ Agv selectByUuid(String uuid); - Agv queryIdle(Task task); + Long getAgvId(String uuid); + + String getAgvNo(Long agvId); Boolean judgeEnable(Long agvId); diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/ActionServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/ActionServiceImpl.java index 80c01df..b65be67 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/ActionServiceImpl.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/ActionServiceImpl.java @@ -2,7 +2,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zy.acs.manager.manager.entity.Action; -import com.zy.acs.manager.manager.entity.Agv; import com.zy.acs.manager.manager.enums.ActionStsType; import com.zy.acs.manager.manager.enums.ActionTypeType; import com.zy.acs.manager.manager.mapper.ActionMapper; @@ -108,8 +107,8 @@ @Override public List<String> getPathListByAgv(String agvNo) { - Agv agv = agvService.selectByUuid(agvNo); - return this.baseMapper.selectSortCodeByAgv(agv.getId()); + Long agvId = agvService.getAgvId(agvNo); + return this.baseMapper.selectSortCodeByAgv(agvId); } @Override diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvDetailServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvDetailServiceImpl.java index ee09499..df6f396 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvDetailServiceImpl.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvDetailServiceImpl.java @@ -32,8 +32,7 @@ @Override public AgvDetail selectByAgvNo(String agvNo) { - Agv agv = agvService.selectByUuid(agvNo); - return this.selectByAgvId(agv.getId()); + return this.selectByAgvId(agvService.getAgvId(agvNo)); } @Override diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java index 296f944..d30882b 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java @@ -11,7 +11,10 @@ import com.zy.acs.manager.common.domain.PageResult; import com.zy.acs.manager.core.domain.VehicleDto; import com.zy.acs.manager.manager.controller.result.AgvResult; -import com.zy.acs.manager.manager.entity.*; +import com.zy.acs.manager.manager.entity.Agv; +import com.zy.acs.manager.manager.entity.AgvDetail; +import com.zy.acs.manager.manager.entity.AgvModel; +import com.zy.acs.manager.manager.entity.Segment; import com.zy.acs.manager.manager.enums.SegmentStateType; import com.zy.acs.manager.manager.mapper.AgvMapper; import com.zy.acs.manager.manager.service.*; @@ -20,8 +23,11 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.annotation.PostConstruct; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 瀛楀吀鏁版嵁Service瀹炵幇 @@ -34,6 +40,10 @@ public class AgvServiceImpl extends ServiceImpl<AgvMapper, Agv> implements AgvService { private final RedisSupport redis = RedisSupport.defaultRedisSupport; + + private static final Map<String, Long> AGV_ID_MAP = new HashMap<>(); + + private static final Map<Long, String> AGV_NO_MAP = new HashMap<>(); @Autowired private AgvDetailService agvDetailService; @@ -48,6 +58,14 @@ @Autowired private TaskService taskService; + @PostConstruct + public void init() { + for (Agv agv : this.list()) { + AGV_ID_MAP.put(agv.getUuid(), agv.getId()); + AGV_NO_MAP.put(agv.getId(), agv.getUuid()); + } + } + @Override public PageResult<AgvResult> pageRel(PageParam<Agv, BaseParam> pageParam) { return new PageResult<>(this.baseMapper.selectPageRel(pageParam, pageParam.checkoutMap()), pageParam.getTotal()); @@ -59,14 +77,23 @@ } @Override - public Agv queryIdle(Task task) { - if (Cools.isEmpty(task)) { + public Long getAgvId(String uuid) { + if (Cools.isEmpty(uuid)) { return null; } - return null; + return AGV_ID_MAP.get(uuid); } @Override + public String getAgvNo(Long agvId) { + if (Cools.isEmpty(agvId)) { + return null; + } + return AGV_NO_MAP.get(agvId); + } + + + @Override public Boolean judgeEnable(Long agvId) { return this.judgeEnable(agvId, false); } diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/JamServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/JamServiceImpl.java index 137f08f..7f37644 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/JamServiceImpl.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/JamServiceImpl.java @@ -3,7 +3,6 @@ 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.manager.manager.entity.Agv; import com.zy.acs.manager.manager.entity.Code; import com.zy.acs.manager.manager.entity.Jam; import com.zy.acs.manager.manager.entity.Segment; @@ -56,7 +55,7 @@ List<Jam> jams = this.list(new LambdaQueryWrapper<Jam>() .eq(Jam::getJamAgv, jamAgv) .eq(Jam::getJamSeg, jamSeg) - .eq(Jam::getAvoAgv, agvService.selectByUuid(avoAgvNo).getId()) + .eq(Jam::getAvoAgv, agvService.getAgvId(avoAgvNo)) .eq(Jam::getCycleAvo, 1) .ne(Jam::getState, JamStateType.DEPRECATED.toString()) // .eq(Jam::getState, JamStateType.RUNNING.toString()) @@ -69,14 +68,14 @@ @Override public List<Jam> getJamFromSegmentByAvo(Segment jamSeg, String avoAgvNo) { - Agv avoAgv = agvService.selectByUuid(avoAgvNo); - return this.baseMapper.selectJamFromSegmentByAvo(jamSeg.getId(), avoAgv.getId()); + Long avoAgvId = agvService.getAgvId(avoAgvNo); + return this.baseMapper.selectJamFromSegmentByAvo(jamSeg.getId(), avoAgvId); } @Override public List<Jam> getUnfinishedAvoSegByAvo(String avoAgvNo, Segment currSeg) { - Agv avoAgv = agvService.selectByUuid(avoAgvNo); - return this.baseMapper.selectUnfinishedAvoSegByAvo(avoAgv.getId(), null); + Long agvId = agvService.getAgvId(avoAgvNo); + return this.baseMapper.selectUnfinishedAvoSegByAvo(agvId, null); } @Override -- Gitblit v1.9.1