From 8c7b4949dfcf875cc537304d34a7f6960cbb0c10 Mon Sep 17 00:00:00 2001
From: qlsxk <qlsxk@qq.com>
Date: 星期四, 16 十月 2025 14:57:12 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/utils/Utils.java | 107 +++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 87 insertions(+), 20 deletions(-)
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index 8d2466b..26132f4 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -1,27 +1,28 @@
package com.zy.asrs.utils;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Arith;
import com.core.common.Cools;
import com.core.common.SpringUtils;
+import com.zy.asrs.entity.DeviceConfig;
import com.zy.asrs.entity.LocMast;
+import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.service.DeviceConfigService;
import com.zy.asrs.service.LocMastService;
+import com.zy.asrs.service.WrkMastService;
import com.zy.common.model.NavigateNode;
import com.zy.common.model.enums.NavigationMapType;
import com.zy.common.utils.NavigatePositionConvert;
import com.zy.common.utils.NavigateUtils;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.SlaveType;
-import com.zy.core.model.ShuttleSlave;
import com.zy.core.model.protocol.ShuttleProtocol;
-import com.zy.core.properties.SlaveProperties;
import com.zy.core.thread.ShuttleThread;
import java.text.DecimalFormat;
import java.util.*;
-/**
- * Created by vincent on 2020/8/27
- */
public class Utils {
private static final DecimalFormat fmt = new DecimalFormat("##0.00");
@@ -85,7 +86,7 @@
return null;
}
- //鑾峰彇闄ょ櫧鍚嶅崟澶栫殑鎸囧畾妤煎眰鍏ㄩ儴绌挎杞y鍧愭爣鐐�
+ //鑾峰彇绌挎杞y鍧愭爣鐐�
public static int[] getShuttlePoint(Integer shuttleNo) {
//鑾峰彇绌挎杞︽墍鍦ㄨ妭鐐逛綅缃�
ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttleNo);
@@ -110,15 +111,18 @@
//鑾峰彇闄ょ櫧鍚嶅崟澶栫殑鎸囧畾妤煎眰鍏ㄩ儴绌挎杞y鍧愭爣鐐�
public static List<int[]> getShuttlePoints(Integer whiteShuttle, Integer lev) {
- SlaveProperties slaveProperties = SpringUtils.getBean(SlaveProperties.class);
+ DeviceConfigService deviceConfigService = SpringUtils.getBean(DeviceConfigService.class);
ArrayList<int[]> list = new ArrayList<>();
- for (ShuttleSlave slave : slaveProperties.getShuttle()) {
- if (slave.getId().intValue() == whiteShuttle) {
+
+ List<DeviceConfig> shuttleList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
+ .eq("device_type", String.valueOf(SlaveType.Shuttle)));
+ for (DeviceConfig device : shuttleList) {
+ if (device.getDeviceNo().intValue() == whiteShuttle) {
continue;//璺宠繃鐧藉悕鍗�
}
//鑾峰彇绌挎杞︽墍鍦ㄨ妭鐐逛綅缃�
- ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, slave.getId());
+ ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, device.getDeviceNo());
if (shuttleThread == null) {
continue;
}
@@ -145,12 +149,44 @@
return list;
}
- //妫�娴嬫ゼ灞傛槸鍚︽湁绌挎杞�
+ public static ShuttleThread searchShuttle(String locNo) {
+ DeviceConfigService deviceConfigService = SpringUtils.getBean(DeviceConfigService.class);
+ List<DeviceConfig> shuttleList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
+ .eq("device_type", String.valueOf(SlaveType.Shuttle)));
+ for (DeviceConfig device : shuttleList) {
+ //鑾峰彇绌挎杞︽墍鍦ㄨ妭鐐逛綅缃�
+ ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, device.getDeviceNo());
+ if (shuttleThread == null) {
+ continue;
+ }
+ ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
+ if (shuttleProtocol == null) {
+ continue;
+ }
+
+ String currentLocNo = shuttleProtocol.getCurrentLocNo();
+ if (currentLocNo == null) {
+ continue;
+ }
+
+ if (currentLocNo.equals(locNo)) {
+ return shuttleThread;
+ }
+ }
+
+ return null;
+ }
+
+ //妫�娴嬫ゼ灞傛槸鍚︽湁鍙敤绌挎杞�
public static boolean checkLevHasShuttle(Integer lev) {
- SlaveProperties slaveProperties = SpringUtils.getBean(SlaveProperties.class);
- for (ShuttleSlave shuttle : slaveProperties.getShuttle()) {
+ DeviceConfigService deviceConfigService = SpringUtils.getBean(DeviceConfigService.class);
+ WrkMastService wrkMastService = SpringUtils.getBean(WrkMastService.class);
+
+ List<DeviceConfig> shuttleList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
+ .eq("device_type", String.valueOf(SlaveType.Shuttle)));
+ for (DeviceConfig device : shuttleList) {
//鑾峰彇鍥涘悜绌挎杞︾嚎绋�
- ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttle.getId());
+ ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, device.getDeviceNo());
if (shuttleThread == null) {
continue;
}
@@ -160,6 +196,22 @@
}
String currentLocNo = shuttleProtocol.getCurrentLocNo();
if (currentLocNo == null) {
+ continue;
+ }
+
+ //灏忚溅姝e湪鍏呯數
+ if (shuttleThread.isCharging()) {
+ continue;
+ }
+
+ //灏忚溅鏈夊厖鐢典换鍔�
+ WrkMast chargeWorking = wrkMastService.selectChargeWorking(shuttleProtocol.getShuttleNo());
+ if (chargeWorking != null) {//宸叉湁鍏呯數浠诲姟
+ continue;
+ }
+
+ //灏忚溅澶勪簬鏁呴殰鐘舵��
+ if (shuttleThread.isFault()) {
continue;
}
@@ -181,14 +233,17 @@
return null;
}
- SlaveProperties slaveProperties = SpringUtils.getBean(SlaveProperties.class);
- if (slaveProperties == null) {
+ DeviceConfigService deviceConfigService = SpringUtils.getBean(DeviceConfigService.class);
+ if (deviceConfigService == null) {
return null;
}
+ List<DeviceConfig> shuttleList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
+ .eq("device_type", String.valueOf(SlaveType.Shuttle)));
+
for (String loc : groupLoc) {
- for (ShuttleSlave slave : slaveProperties.getShuttle()) {
- ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, slave.getId());
+ for (DeviceConfig device : shuttleList) {
+ ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, device.getDeviceNo());
if (shuttleThread == null) {
continue;
}
@@ -204,7 +259,7 @@
if (shuttleProtocol.getCurrentLocNo().equals(loc)) {
//瀛樺湪灏忚溅
- return slave.getId();
+ return device.getDeviceNo();
}
}
}
@@ -227,7 +282,7 @@
String recentLocNo = null;
for (LocMast locMast : locMasts) {
//寰呮満浣嶅埌鐩爣鐐硅窛绂�
- List<NavigateNode> currentShuttlePath = navigateUtils.calc(locNo, locMast.getLocNo(), NavigationMapType.NORMAL.id, Utils.getShuttlePoints(0, Utils.getLev(locNo)), null);//鎼滅储绌洪棽绌挎杞︼紝浣跨敤姝e父閫氶亾鍦板浘
+ List<NavigateNode> currentShuttlePath = navigateUtils.calc(locNo, locMast.getLocNo(), NavigationMapType.getMapTypes(NavigationMapType.NORMAL), Utils.getShuttlePoints(0, Utils.getLev(locNo)), null);//鎼滅储绌洪棽绌挎杞︼紝浣跨敤姝e父閫氶亾鍦板浘
if (currentShuttlePath == null) {
continue;
}
@@ -240,4 +295,16 @@
return recentLocNo;
}
+
+ public static boolean isJSON(String value) {
+ try {
+ JSONObject jsonData = JSON.parseObject(value);
+ if (jsonData == null) {
+ return false;
+ }
+ return true;
+ } catch (Exception e) {
+ return false;
+ }
+ }
}
--
Gitblit v1.9.1