| | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.core.common.SpringUtils; |
| | | import com.core.exception.CoolException; |
| | | import com.fasterxml.jackson.databind.ObjectMapper; |
| | | import com.zy.asrs.entity.BasMap; |
| | | import com.zy.asrs.entity.DeviceConfig; |
| | | import com.zy.asrs.entity.LocMast; |
| | |
| | | import com.zy.asrs.service.LocMastService; |
| | | import com.zy.asrs.utils.Utils; |
| | | import com.zy.common.model.MapNode; |
| | | import com.zy.common.model.NavigateNode; |
| | | import com.zy.common.model.enums.NavigationMapType; |
| | | import com.zy.core.cache.SlaveConnection; |
| | | import com.zy.core.enums.MapNodeType; |
| | | import com.zy.core.enums.RedisKeyType; |
| | | import com.zy.core.enums.ShuttleCommandModeType; |
| | | import com.zy.core.enums.SlaveType; |
| | | import com.zy.core.model.TrafficControlDataModel; |
| | | import com.zy.core.model.command.ShuttleAssignCommand; |
| | | import com.zy.core.model.command.ShuttleCommand; |
| | | import com.zy.core.model.command.ShuttleRedisCommand; |
| | | import com.zy.core.model.protocol.ForkLiftStaProtocol; |
| | | import com.zy.core.thread.ForkLiftThread; |
| | | import com.zy.core.thread.TrafficControlThread; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.io.IOException; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | |
| | | private DeviceConfigService deviceConfigService; |
| | | @Autowired |
| | | private BasMapService basMapService; |
| | | @Autowired |
| | | private ObjectMapper objectMapper; |
| | | |
| | | public int[][] getData(Integer lev, List<NavigationMapType> mapTypes, List<int[]> whitePoints, List<int[]> shuttlePoints) { |
| | | try { |
| | |
| | | if(mapType.equals(NavigationMapType.PATH_LOCK)) { |
| | | //加载路径锁 |
| | | lists = loadPathLock(lists, lev); |
| | | } |
| | | |
| | | if(mapType.equals(NavigationMapType.TRAFFIC_CONTROL)) { |
| | | //加载交通管制 |
| | | lists = loadTrafficControl(lists, lev); |
| | | } |
| | | } |
| | | |
| | |
| | | return lists; |
| | | } |
| | | |
| | | //加载交通管制 |
| | | public List<List<MapNode>> loadTrafficControl(List<List<MapNode>> lists, Integer lev) { |
| | | try { |
| | | TrafficControlThread trafficControlThread = (TrafficControlThread) SlaveConnection.get(SlaveType.TrafficControl, 1); |
| | | if (trafficControlThread == null) { |
| | | throw new CoolException("init traffic control thread error"); |
| | | } |
| | | |
| | | List<TrafficControlDataModel> trafficList = trafficControlThread.getAllTrafficControl(); |
| | | for (TrafficControlDataModel trafficControlDataModel : trafficList) { |
| | | List<NavigateNode> totalNodeList = trafficControlDataModel.getTotalNodeList(); |
| | | NavigateNode startNode = totalNodeList.get(0); |
| | | if (startNode.getZ() != lev) { |
| | | continue; |
| | | } |
| | | |
| | | for (NavigateNode node : totalNodeList) { |
| | | int row = node.getX(); |
| | | int bay = node.getY(); |
| | | |
| | | List<MapNode> list = lists.get(row); |
| | | MapNode mapNode = list.get(bay); |
| | | |
| | | //节点设置成Disable |
| | | mapNode.setValue(MapNodeType.DISABLE.id); |
| | | |
| | | //更新list |
| | | list.set(bay, mapNode); |
| | | lists.set(row, list); |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return lists; |
| | | } |
| | | |
| | | } |