From 4d8bb57c9eb3fda399fd7b9e9de7ecbf754244f7 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期一, 20 五月 2024 08:53:26 +0800
Subject: [PATCH] #
---
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java | 82 +++++++++++++++++++++++++++-------------
1 files changed, 55 insertions(+), 27 deletions(-)
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
index 6901e42..56a8231 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
@@ -6,6 +6,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.SnowflakeIdWorker;
+import com.zy.asrs.wcs.core.domain.dto.RedisMapDto;
import com.zy.asrs.wcs.core.entity.*;
import com.zy.asrs.wcs.core.kernel.AnalyzeService;
import com.zy.asrs.wcs.core.model.MapNode;
@@ -20,13 +21,11 @@
import com.zy.asrs.wcs.rcs.cache.SlaveConnection;
import com.zy.asrs.wcs.rcs.constant.DeviceRedisConstant;
import com.zy.asrs.wcs.rcs.entity.Device;
-import com.zy.asrs.wcs.rcs.entity.DeviceType;
import com.zy.asrs.wcs.rcs.model.enums.ShuttleProtocolStatusType;
import com.zy.asrs.wcs.rcs.model.enums.SlaveType;
import com.zy.asrs.wcs.rcs.model.protocol.ShuttleProtocol;
import com.zy.asrs.wcs.rcs.model.protocol.StaProtocol;
import com.zy.asrs.wcs.rcs.service.DeviceService;
-import com.zy.asrs.wcs.rcs.service.DeviceTypeService;
import com.zy.asrs.wcs.rcs.thread.DevpThread;
import com.zy.asrs.wcs.rcs.thread.ShuttleThread;
import com.zy.asrs.wcs.system.entity.Dict;
@@ -56,8 +55,6 @@
@Autowired
private DeviceService deviceService;
@Autowired
- private DeviceTypeService deviceTypeService;
- @Autowired
private LocCtgService locCtgService;
@Autowired
private LocService locService;
@@ -86,7 +83,7 @@
public synchronized void initRealtimeBasMap() {
try {
List<Dict> dicts = dictService.list(new LambdaQueryWrapper<Dict>()
- .like(Dict::getFlag, "map")
+ .like(Dict::getFlag, "map-")
.eq(Dict::getStatus, 1));
TreeMap<Integer, ArrayList<ArrayList<MapNode>>> levData = new TreeMap<>();
@@ -117,7 +114,7 @@
ArrayList<MapNode> nodes = new ArrayList<>();
for (JSONObject object : entry.getValue()) {
MapNode mapNode = new MapNode();
- mapNode.setValue(object.getInteger("value"));
+ mapNode.setValue(object.getInteger("shelfType"));
mapNode.setTop(object.getInteger("top"));
mapNode.setBottom(object.getInteger("bottom"));
mapNode.setLeft(object.getInteger("left"));
@@ -125,6 +122,8 @@
mapNode.setRow(object.getInteger("row"));
mapNode.setBay(object.getInteger("bay"));
mapNode.setNo(object.getString("row") + "-" + object.getString("bay"));
+ mapNode.setXBase(object.getInteger("refx"));
+ mapNode.setYBase(object.getInteger("refy"));
nodes.add(mapNode);
}
@@ -144,13 +143,47 @@
for (Map.Entry<Integer, ArrayList<ArrayList<MapNode>>> entry : levData.entrySet()) {
ArrayList<ArrayList<MapNode>> lists = entry.getValue();//鑾峰彇鍦板浘
+ MapNode mapNode = new MapNode();
+ mapNode.setValue(-1);
+ mapNode.setTop(1000);
+ mapNode.setBottom(1000);
+ mapNode.setLeft(1000);
+ mapNode.setRight(1000);
+ mapNode.setRow(0);
+ mapNode.setBay(0);
+ mapNode.setNo("0-0");
+ mapNode.setXBase(0);
+ mapNode.setYBase(0);
+
+ //鑾峰彇鏈�闀縭ow
+ int row = 0;
+ //缁欐瘡涓猺ow棣栧熬澧炲姞-1鑺傜偣
+ for (ArrayList<MapNode> list : lists) {
+ if (list.size() > row) {
+ row = list.size();
+ }
+
+ list.add(0, mapNode.clone());
+ list.add(mapNode.clone());
+ }
+
+ ArrayList<MapNode> headNodes = new ArrayList<>();
+ ArrayList<MapNode> footerNodes = new ArrayList<>();
+ for (int i = 0; i < row+2; i++) {
+ headNodes.add(mapNode.clone());
+ footerNodes.add(mapNode.clone());
+ }
+
+ lists.add(0, headNodes);
+ lists.add(footerNodes);
+
Integer lev = entry.getKey();
Date now = new Date();
- HashMap<String, Object> map = new HashMap<>();
- map.put("data", JSON.toJSONString(lists));
- map.put("create_time", now);
- map.put("update_time", now);
- map.put("lev", lev);
+ RedisMapDto map = new RedisMapDto();
+ map.setData(JSON.toJSONString(lists));
+ map.setCreateTime(now);
+ map.setUpdateTime(now);
+ map.setLev(lev);
//灏嗗湴鍥炬暟鎹瓨鍏edis
redisUtil.set(DeviceRedisConstant.MAP + lev, JSON.toJSONString(map));
@@ -259,15 +292,8 @@
return;
}
- DeviceType deviceType = deviceTypeService.getOne(new LambdaQueryWrapper<DeviceType>()
- .eq(DeviceType::getFlag, String.valueOf(SlaveType.Shuttle))
- .eq(DeviceType::getStatus, 1));
- if (deviceType == null) {
- return;
- }
-
List<Device> list = deviceService.list(new LambdaQueryWrapper<Device>()
- .eq(Device::getDeviceType, deviceType.getId())
+ .eq(Device::getDeviceType, DeviceCtgType.SHUTTLE.val())
.eq(Device::getStatus, 1));
for (Device device : list) {
//鑾峰彇鍥涘悜绌挎杞︾嚎绋�
@@ -282,6 +308,10 @@
}
if (!shuttleProtocol.getProtocolStatusType().equals(ShuttleProtocolStatusType.IDLE)) {
+ continue;
+ }
+
+ if (!shuttleThread.isRequireCharge()) {
continue;
}
@@ -406,15 +436,8 @@
return;
}
- DeviceType deviceType = deviceTypeService.getOne(new LambdaQueryWrapper<DeviceType>()
- .eq(DeviceType::getFlag, String.valueOf(SlaveType.Shuttle))
- .eq(DeviceType::getStatus, 1));
- if (deviceType == null) {
- return;
- }
-
List<Device> list = deviceService.list(new LambdaQueryWrapper<Device>()
- .eq(Device::getDeviceType, deviceType.getId())
+ .eq(Device::getDeviceType, DeviceCtgType.SHUTTLE.val())
.eq(Device::getStatus, 1));
for (Device device : list) {
//鑾峰彇鍥涘悜绌挎杞︾嚎绋�
@@ -423,6 +446,11 @@
continue;
}
+ ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
+ if (shuttleProtocol == null) {
+ continue;
+ }
+
if (!shuttleThread.isCharging()) {
continue;
}
--
Gitblit v1.9.1