package com.zy.acs.fake.service; import com.zy.acs.fake.domain.DynamicNode; import com.zy.acs.framework.common.Cools; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.List; /** * Created by vincent on 2023/6/14 */ @Slf4j @Component("mapService") public class MapService { @Autowired private MapDataDispatcher mapDataDispatcher; public synchronized void unlockPath(String agvNo, String codeData) { try { if (Cools.isEmpty(agvNo, codeData)) { return; } Integer lev = null; String[][] codeMatrix = mapDataDispatcher.getCodeMatrix(null); int[] codeMatrixIdx = mapDataDispatcher.getCodeMatrixIdx(lev, codeData); DynamicNode[][] dynamicMatrix = mapDataDispatcher.getDynamicMatrix(lev); DynamicNode dynamicNode = dynamicMatrix[codeMatrixIdx[0]][codeMatrixIdx[1]]; Integer serial = dynamicNode.getSerial(); List resetCodeList = new ArrayList<>(); for (int i = 0; i < dynamicMatrix.length; i++) { for (int j = 0; j < dynamicMatrix[i].length; j++) { DynamicNode node = dynamicMatrix[i][j]; if (node.getVehicle().equals(agvNo) && node.getSerial() < serial) { resetCodeList.add(codeMatrix[i][j]); } } } if (!Cools.isEmpty(resetCodeList)) { mapDataDispatcher.clearDynamicMatrixByCodeList(lev, resetCodeList); } } catch (Exception e) { log.error("TrafficService.unlockPath", e); } } }