1
zhang
昨天 3a49654f51096d4f9f95f4a5e8198e168e38a0c5
1
7个文件已修改
418 ■■■■ 已修改文件
zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/AutoRunScheduler.java 205 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/LaneService.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java 83 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/Action.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/Sta.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/StaType.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/AutoRunScheduler.java
@@ -57,13 +57,19 @@
    @Autowired
    private SnowflakeIdWorker snowflakeIdWorker;
//    @Scheduled(fixedRate = 500) // 固定频率执行,不同步
    private Integer num = 0;
    private Integer max = 2;
    //    @Scheduled(fixedRate = 500) // 固定频率执行,不同步
    @Scheduled(fixedDelay = 1000) // 固定频率执行,同步
//    @Scheduled(cron = "0/1 * * * * ? ")
    private void execute() {
        if (configService.getVal("TaskAssignMode", Boolean.class)) {
            String autoRunAreas = configService.getVal("autoRunAreas", String.class);
            if (Cools.isEmpty(autoRunAreas)) { return; }
            if (Cools.isEmpty(autoRunAreas)) {
                return;
            }
            for (char c : autoRunAreas.toCharArray()) {
                switch (c) {
                    case '1':
@@ -85,10 +91,12 @@
                        break;
                }
            }
        }else {
            if (configService.getVal("InAndOutMode", Boolean.class,false)) {
        } else {
            if (configService.getVal("InAndOutMode", Boolean.class, false)) {
                String autoRunAreas = configService.getVal("autoRunAreas", String.class);
                if (Cools.isEmpty(autoRunAreas)) { return; }
                if (Cools.isEmpty(autoRunAreas)) {
                    return;
                }
                for (char c : autoRunAreas.toCharArray()) {
                    switch (c) {
                        case '1':
@@ -116,7 +124,9 @@
    private void autoRun(List<Integer> locGroupList, List<String> staGroupList, List<String> agvGroupList) {
        int availableAgvCount = this.getAvailableAgvCount(agvGroupList);
        if (0 == availableAgvCount) { return; }
        if (0 == availableAgvCount) {
            return;
        }
        List<String> staPreNos = getStaPrefixes(staGroupList);
        String staTaskMemo = "DEMO_STA_" + String.join("-", staPreNos);
@@ -132,18 +142,22 @@
    private void autoOut(List<Integer> locGroupList, List<String> staGroupList, List<String> agvGroupList) {
        int availableAgvCount = this.getAvailableAgvCount(agvGroupList);
        if (0 == availableAgvCount) { return; }
        if (0 == availableAgvCount) {
            return;
        }
        List<String> staPreNos = getStaPrefixes(staGroupList);
        String staTaskMemo = "DEMO_STA_" + String.join("-", staPreNos);
        // 出库
        this.runLocToSta(locGroupList, staGroupList, staTaskMemo);
        // 入库
        if (staGroupList.contains("1007")){
            this.runStaToLoc(locGroupList, staGroupList, staTaskMemo);
        List<Task> list = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getDestSta, 33).in(Task::getTaskSts, TaskStsType.INIT.val(), TaskStsType.WAITING.val(), TaskStsType.ASSIGN.val(), TaskStsType.PROGRESS.val()));
        if (Cools.isEmpty(list) && num < max) {
            // 出库
            this.runLocToSSXSta(locGroupList, staGroupList, staTaskMemo);
        }
        List<Task> list2 = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getOriSta, 34).in(Task::getTaskSts, TaskStsType.INIT.val(), TaskStsType.WAITING.val(), TaskStsType.ASSIGN.val(), TaskStsType.PROGRESS.val()));
        if (Cools.isEmpty(list2) && num > 0) {
            // 入库
            this.runXXSStaToLoc(locGroupList, staGroupList, staTaskMemo);
        }
    }
    // 入库
@@ -153,31 +167,39 @@
        AgvModel agvModel = agvModelService.getOne(new LambdaQueryWrapper<AgvModel>().eq(AgvModel::getType, AgvModelType.CTU_BOX_TRANSPORT_AGV.toString()));
//        if (null == agvModel) {
//            return;
//        }
        if (null == agvModel) {
            return;
        }
        // STOCK
        LambdaQueryWrapper<Sta> stockWrapper = new LambdaQueryWrapper<Sta>()
                .eq(Sta::getStaSts, StaStsType.STOCK.val())
                .eq(Sta::getStatus, StatusType.ENABLE.val)
                .eq(Sta::getInEnable,"Y")
                .eq(Sta::getInEnable, "Y")
                .in(Sta::getStaNo, staGroupList);
        List<Sta> stockList = staService.list(stockWrapper);
        if (Cools.isEmpty(stockList)) { return; }
        if (Cools.isEmpty(stockList)) {
            return;
        }
        Collections.shuffle(stockList);
        // IDLE
        LambdaQueryWrapper<Loc> idleWrapper = new LambdaQueryWrapper<Loc>().eq(Loc::getLocSts, LocStsType.IDLE.val());
        if (null != startRow) { idleWrapper.ge(Loc::getRow, startRow); }
        if (null != endRow) { idleWrapper.le(Loc::getRow, endRow); }
        if (null != startRow) {
            idleWrapper.ge(Loc::getRow, startRow);
        }
        if (null != endRow) {
            idleWrapper.le(Loc::getRow, endRow);
        }
        List<Loc> idleList = locService.list(idleWrapper);
        if (Cools.isEmpty(idleList)) { return; }
        if (Cools.isEmpty(idleList)) {
            return;
        }
        Collections.shuffle(idleList);
        OpenBusSubmitParam param = new OpenBusSubmitParam();
        param.setBatch(String.valueOf(snowflakeIdWorker.nextId()).substring(13, 19));
        for (int i = 0; i < Math.min(agvModel.getBackpack(), Math.min(stockList.size(), idleList.size())) ; i++) {
        for (int i = 0; i < Math.min(agvModel.getBackpack(), Math.min(stockList.size(), idleList.size())); i++) {
            Sta stockSta = stockList.get(i);
            Loc idleLoc = idleList.get(i);
@@ -188,6 +210,61 @@
            taskDto.setSeqNum(String.valueOf(snowflakeIdWorker.nextId()).substring(15, 19));
            param.getTaskList().add(taskDto);
        }
        mainService.generateBusAndTask(param, memo);
    }
    private void runXXSStaToLoc(List<Integer> locGroupList, List<String> staGroupList, String memo) {
        Integer startRow = Collections.min(locGroupList);
        Integer endRow = Collections.max(locGroupList);
        AgvModel agvModel = agvModelService.getOne(new LambdaQueryWrapper<AgvModel>().eq(AgvModel::getType, AgvModelType.CTU_BOX_TRANSPORT_AGV.toString()));
        if (null == agvModel) {
            return;
        }
        // STOCK
        LambdaQueryWrapper<Sta> stockWrapper = new LambdaQueryWrapper<Sta>()
                //.eq(Sta::getStaSts, StaStsType.STOCK.val())
                .eq(Sta::getStatus, StatusType.ENABLE.val)
                .eq(Sta::getInEnable, "Y")
                .in(Sta::getStaNo, staGroupList);
        List<Sta> stockList = staService.list(stockWrapper);
        if (Cools.isEmpty(stockList)) {
            return;
        }
        Collections.shuffle(stockList);
        // IDLE
        LambdaQueryWrapper<Loc> idleWrapper = new LambdaQueryWrapper<Loc>().eq(Loc::getLocSts, LocStsType.IDLE.val());
        if (null != startRow) {
            idleWrapper.ge(Loc::getRow, startRow);
        }
        if (null != endRow) {
            idleWrapper.le(Loc::getRow, endRow);
        }
        List<Loc> idleList = locService.list(idleWrapper);
        if (Cools.isEmpty(idleList)) {
            return;
        }
        Collections.shuffle(idleList);
        OpenBusSubmitParam param = new OpenBusSubmitParam();
        param.setBatch(String.valueOf(snowflakeIdWorker.nextId()).substring(13, 19));
        for (int i = 0; i < max; i++) {
            Sta stockSta = stockList.get(0);
            Loc idleLoc = idleList.get(i);
            TaskDto taskDto = new TaskDto();
            taskDto.setOriSta(stockSta.getStaNo());
            taskDto.setDestLoc(idleLoc.getLocNo());
            taskDto.setPriority(99);
            taskDto.setSeqNum(String.valueOf(snowflakeIdWorker.nextId()).substring(15, 19));
            param.getTaskList().add(taskDto);
            num--;
        }
        mainService.generateBusAndTask(param, memo);
@@ -208,7 +285,7 @@
        LambdaQueryWrapper<Sta> idleWrapper = new LambdaQueryWrapper<Sta>()
                .eq(Sta::getStaSts, StaStsType.IDLE.val())
                .eq(Sta::getStatus, StatusType.ENABLE.val)
                .eq(Sta::getOutEnable,"Y")
                .eq(Sta::getOutEnable, "Y")
                .in(Sta::getStaNo, staGroupList);
        List<Sta> idleList = staService.list(idleWrapper);
        if (Cools.isEmpty(idleList)) {
@@ -218,8 +295,12 @@
        // LOC STOCK
        LambdaQueryWrapper<Loc> stockWrapper = new LambdaQueryWrapper<Loc>().eq(Loc::getLocSts, LocStsType.STOCK.val());
        if (null != startRow) { stockWrapper.ge(Loc::getRow, startRow); }
        if (null != endRow) { stockWrapper.le(Loc::getRow, endRow); }
        if (null != startRow) {
            stockWrapper.ge(Loc::getRow, startRow);
        }
        if (null != endRow) {
            stockWrapper.le(Loc::getRow, endRow);
        }
        List<Loc> stockList = locService.list(stockWrapper);
        if (Cools.isEmpty(stockList)) {
            return;
@@ -239,6 +320,62 @@
            taskDto.setSeqNum(String.valueOf(snowflakeIdWorker.nextId()).substring(15, 19));
            param.getTaskList().add(taskDto);
        }
        mainService.generateBusAndTask(param, memo);
    }
    private void runLocToSSXSta(List<Integer> locGroupList, List<String> staGroupList, String memo) {
        Integer startRow = Collections.min(locGroupList);
        Integer endRow = Collections.max(locGroupList);
        AgvModel agvModel = agvModelService.getOne(new LambdaQueryWrapper<AgvModel>().eq(AgvModel::getType, AgvModelType.CTU_BOX_TRANSPORT_AGV.toString()));
        if (null == agvModel) {
            return;
        }
        int maxCapacity = agvModel.getBackpack();
        // STA IDLE
        LambdaQueryWrapper<Sta> idleWrapper = new LambdaQueryWrapper<Sta>()
                //.eq(Sta::getStaSts, StaStsType.IDLE.val())
                .eq(Sta::getStatus, StatusType.ENABLE.val)
                .eq(Sta::getOutEnable, "Y")
                .in(Sta::getStaNo, staGroupList);
        List<Sta> idleList = staService.list(idleWrapper);
        if (Cools.isEmpty(idleList)) {
            return;
        }
        Collections.shuffle(idleList);
        // LOC STOCK
        LambdaQueryWrapper<Loc> stockWrapper = new LambdaQueryWrapper<Loc>().eq(Loc::getLocSts, LocStsType.STOCK.val());
        if (null != startRow) {
            stockWrapper.ge(Loc::getRow, startRow);
        }
        if (null != endRow) {
            stockWrapper.le(Loc::getRow, endRow);
        }
        List<Loc> stockList = locService.list(stockWrapper);
        if (Cools.isEmpty(stockList)) {
            return;
        }
        Collections.shuffle(stockList);
        OpenBusSubmitParam param = new OpenBusSubmitParam();
        param.setBatch(String.valueOf(snowflakeIdWorker.nextId()).substring(13, 19));
        for (int i = 0; i < max; i++) {
            Loc stockLoc = stockList.get(i);
            Sta idleSta = idleList.get(0);
            TaskDto taskDto = new TaskDto();
            taskDto.setOriLoc(stockLoc.getLocNo());
            taskDto.setDestSta(idleSta.getStaNo());
            taskDto.setPriority(100);
            taskDto.setSeqNum(String.valueOf(snowflakeIdWorker.nextId()).substring(15, 19));
            param.getTaskList().add(taskDto);
            num++;
        }
        mainService.generateBusAndTask(param, memo);
@@ -269,8 +406,12 @@
        // STOCK
        LambdaQueryWrapper<Loc> stockWrapper = new LambdaQueryWrapper<Loc>().eq(Loc::getLocSts, LocStsType.STOCK.val());
        if (null != startRow) { stockWrapper.ge(Loc::getRow, startRow); }
        if (null != endRow) { stockWrapper.le(Loc::getRow, endRow); }
        if (null != startRow) {
            stockWrapper.ge(Loc::getRow, startRow);
        }
        if (null != endRow) {
            stockWrapper.le(Loc::getRow, endRow);
        }
        List<Loc> stockList = locService.list(stockWrapper);
        if (Cools.isEmpty(stockList) || stockList.size() < agvModel.getBackpack()) {
            return;
@@ -279,8 +420,12 @@
        // IDLE
        LambdaQueryWrapper<Loc> idleWrapper = new LambdaQueryWrapper<Loc>().eq(Loc::getLocSts, LocStsType.IDLE.val());
        if (null != startRow) { idleWrapper.ge(Loc::getRow, startRow); }
        if (null != endRow) { idleWrapper.le(Loc::getRow, endRow); }
        if (null != startRow) {
            idleWrapper.ge(Loc::getRow, startRow);
        }
        if (null != endRow) {
            idleWrapper.le(Loc::getRow, endRow);
        }
        List<Loc> idleList = locService.list(idleWrapper);
        if (Cools.isEmpty(idleList)) {
            return;
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/LaneService.java
@@ -20,7 +20,6 @@
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.*;
@@ -149,6 +148,10 @@
            if (this.adjacencyCodeMap.get(codeData).size() != 2) {
                List<String> neighbors = this.adjacencyCodeMap.get(codeData);
                for (String neighbor : neighbors) {
                    if (this.adjacencyCodeMap.get(neighbor) == null) {
                        log.info("cunzai");
                        continue;
                    }
                    if (this.adjacencyCodeMap.get(neighbor).size() == 2 && !visited.contains(neighbor)) {
                        Lane lane = new Lane(String.valueOf(snowflakeIdWorker.nextId()).substring(3));
                        lane.getCodes().add(codeData); // 包含起点
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
@@ -1,6 +1,7 @@
package com.zy.acs.manager.core.service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.acs.common.domain.AgvAction;
import com.zy.acs.common.domain.AgvActionItem;
@@ -26,6 +27,7 @@
import com.zy.acs.manager.core.domain.Lane;
import com.zy.acs.manager.core.domain.TaskPosDto;
import com.zy.acs.manager.core.service.astart.MapDataDispatcher;
import com.zy.acs.manager.core.utils.HttpHandler;
import com.zy.acs.manager.manager.controller.param.OpenBusSubmitParam;
import com.zy.acs.manager.manager.entity.*;
import com.zy.acs.manager.manager.enums.*;
@@ -40,7 +42,9 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.io.IOException;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
@@ -182,8 +186,10 @@
                    }
                    destSta = staService.getById(task.getDestSta());
                    if (locStaStatusCheck && !destSta.getStaSts().equals(StaStsType.IDLE.val())) {
                        throw new BusinessException("destSta:" + task.getDestSta$() + " is not in IDLE status");
                    if (destSta.getStaTypeIsCheck() != 1) {
                        if (locStaStatusCheck && !destSta.getStaSts().equals(StaStsType.IDLE.val())) {
                            throw new BusinessException("destSta:" + task.getDestSta$() + " is not in IDLE status");
                        }
                    }
                    destSta.setStaSts(StaStsType.READY_RELEASE.val());
                    destSta.setUpdateTime(now);
@@ -193,8 +199,10 @@
                    break;
                case STA_TO_LOC:
                    oriSta = staService.getById(task.getOriSta());
                    if (locStaStatusCheck && !oriSta.getStaSts().equals(StaStsType.STOCK.val())) {
                        throw new BusinessException("oriSta:" + task.getOriSta$() + " is not in STOCK status");
                    if (oriSta.getStaTypeIsCheck() != 1) {
                        if (locStaStatusCheck && !oriSta.getStaSts().equals(StaStsType.STOCK.val())) {
                            throw new BusinessException("oriSta:" + task.getOriSta$() + " is not in STOCK status");
                        }
                    }
                    oriSta.setStaSts(StaStsType.READY_TAKE.val());
                    oriSta.setUpdateTime(now);
@@ -214,8 +222,10 @@
                    break;
                case STA_TO_STA:
                    oriSta = staService.getById(task.getOriSta());
                    if (locStaStatusCheck && !oriSta.getStaSts().equals(StaStsType.STOCK.val())) {
                        throw new BusinessException("oriSta:" + task.getOriSta$() + " is not in STOCK status");
                    if (oriSta.getStaTypeIsCheck() != 1) {
                        if (locStaStatusCheck && !oriSta.getStaSts().equals(StaStsType.STOCK.val())) {
                            throw new BusinessException("oriSta:" + task.getOriSta$() + " is not in STOCK status");
                        }
                    }
                    oriSta.setStaSts(StaStsType.READY_TAKE.val());
                    oriSta.setUpdateTime(now);
@@ -224,8 +234,10 @@
                    }
                    destSta = staService.getById(task.getDestSta());
                    if (locStaStatusCheck && !destSta.getStaSts().equals(StaStsType.IDLE.val())) {
                        throw new BusinessException("destSta:" + task.getDestSta$() + " is not in IDLE status");
                    if (destSta.getStaTypeIsCheck() != 1) {
                        if (locStaStatusCheck && !destSta.getStaSts().equals(StaStsType.IDLE.val())) {
                            throw new BusinessException("destSta:" + task.getDestSta$() + " is not in IDLE status");
                        }
                    }
                    destSta.setStaSts(StaStsType.READY_RELEASE.val());
                    destSta.setUpdateTime(now);
@@ -279,7 +291,7 @@
                if (!taskService.updateById(task)) {
                    throw new BusinessException("seqNum: " + task.getSeqNum() + " failed to update");
                }
                report(task,null, TaskReportStsType.START);
                report(task, null, TaskReportStsType.START);
            }
        } catch (Exception e) {
            log.error("mainService.infuseAgvForTask", e);
@@ -1017,7 +1029,9 @@
                                ActionTypeType.ReadyTakeFromConveyorSta.val(),    // 动作类型
                                actionPrepareSts,    // 动作进度
                                agvId,    // AGV
                                now    // 工作时间
                                now,    // 工作时间
                                oriSta.getStaTypeIsCheck() == 1 ? 1 : 0,
                                oriSta.getStaNo()
                        ));
                        // 暂存点放货
                        assert backpackType != null;
@@ -1060,7 +1074,7 @@
                                    ActionTypeType.TurnCorner.val(),    // 动作类型
                                    actionPrepareSts,    // 动作进度
                                    agvId,    // AGV
                                    now    // 工作时间
                                    now   // 工作时间
                            ));
                            lastDirection = destStaWorkDirection;
                        }
@@ -1079,7 +1093,9 @@
                                ActionTypeType.ReadyTakeFromAgvSite.val(),    // 动作类型
                                actionPrepareSts,    // 动作进度
                                agvId,    // AGV
                                now    // 工作时间
                                now,    // 工作时间
                                destSta.getStaTypeIsCheck() == 1 ? 2 : 0,
                                destSta.getStaNo()
                        ));
                        // 计算货叉工作方向
                        staWorkDirection = mapService.calculateAgvWorkDirectionByStation(destStaWorkDirection, lastDirection);
@@ -1264,7 +1280,7 @@
    public void publishAction(String actionGroupId) {
        try {
            Date now = new Date();
            boolean flag = true;
            // action
            List<Action> actionList = actionService.list(new LambdaQueryWrapper<Action>()
                    .eq(Action::getGroupId, actionGroupId).eq(Action::getActionSts, ActionStsType.PREPARE.val())
@@ -1395,9 +1411,14 @@
                    default:
                        break;
                }
                if (!Cools.isEmpty(action.getAskType()) && (action.getAskType() == 1 || action.getAskType() == 2)) {
                    flag = askSta(action.getAskType(), action.getAskSta());
                }
            }
            if (!flag) {
                log.error("任务组 [{}] 动作指令下发失败 ,向输送线询问报错!!!", actionGroupId);
                throw new CoolException("任务组 [{" + actionGroupId + "}] 动作指令下发失败 !!!");
            }
            BaseResult<?> result = agvCmdService.executeAgvActionCmd(agvAction);
            if (result.success()) {
                log.info("任务组 [{}] 动作指令已下发 ===>> 指令数量:{}", actionGroupId, actionList.size());
@@ -1666,4 +1687,36 @@
            log.info("Task [{}] 状态记录插入数据库 ==========>> ", task.getSeqNum());
        }
    }
    private boolean askSta(Integer askType, String askSta) {
        log.info("来询问输送线了,{},{}", askType, askSta);
        String wmsUrl = configService.getVal("WMS_URL", String.class);
        String wmsPath = configService.getVal("WMS_STA", String.class);
        if (Cools.isEmpty(wmsPath) || Cools.isEmpty(wmsUrl)) {
            return true;
        }
        Integer time = configService.getVal("TIMEOUT", Integer.class, 5);
        //Integer times = configService.getVal("REPORT_TIMES", Integer.class, 2);
        Map<String, Object> data = new HashMap<>();
        data.put("askType", askType);
        data.put("askSta", askSta);
        String response = null;
        try {
            response = new HttpHandler.Builder()
                    .setUri(wmsUrl)
                    .setPath(wmsPath)
                    .setTimeout(time, TimeUnit.SECONDS)
                    .setJson(JSON.toJSONString(data))
                    .build()
                    .doPost();
            log.info("返回参数:{}", response);
            JSONObject jsonObject = JSON.parseObject(response);
            if (jsonObject.getInteger("code").equals(200)) {
                return true;
            }
        } catch (IOException e) {
            log.info("报错了,{}", e);
        }
        return false;
    }
}
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java
@@ -255,24 +255,24 @@
            } else {
                // complete first segment then merge behind segment
                int serial = segment.getSerial();
                boolean interrupt = false;
                while (!interrupt) {
                    Segment nextStep = segmentService.getNextStepOfInit(travel.getId(), serial);
                    serial ++;
                    if (null == nextStep) {
                        interrupt = true;
                    } else {
                        if (nextStep.getEndNode() == endNode) {
                            segmentList.add(nextStep);
                        } else {
                            interrupt = true;
                        }
                    }
                }
//                int serial = segment.getSerial();
//                boolean interrupt = false;
//                while (!interrupt) {
//
//                    Segment nextStep = segmentService.getNextStepOfInit(travel.getId(), serial);
//                    serial ++;
//                    if (null == nextStep) {
//                        interrupt = true;
//                    } else {
//                        if (nextStep.getEndNode() == endNode) {
//
//                            segmentList.add(nextStep);
//                        } else {
//                            interrupt = true;
//                        }
//                    }
//
//                }
            }
            mapService.lockPath(null, pathList, agv.getUuid());
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/Action.java
@@ -61,6 +61,16 @@
     */
    @ApiModelProperty(value= "优先级")
    private Integer priority;
    /**
     * 取还是放,1取,2放
     */
    @ApiModelProperty(value= "取还是放,1取,2放")
    private Integer askType;
    /**
     * 是否询问站点
     */
    @ApiModelProperty(value= "是否询问站点")
    private String askSta;
    /**
     * 名称
@@ -201,6 +211,24 @@
        this.ioTime = ioTime;
    }
    public Action(String uuid, Long busId, Long taskId, String seqNum, Integer priority, String name, Double val, String code, String params, Long actionType, Long actionSts, Long agvId, Date ioTime,Integer askType,String askSta) {
        this.uuid = uuid;
        this.busId = busId;
        this.taskId = taskId;
        this.seqNum = seqNum;
        this.priority = priority;
        this.name = name;
        this.val = val;
        this.code = code;
        this.params = params;
        this.actionType = actionType;
        this.actionSts = actionSts;
        this.agvId = agvId;
        this.ioTime = ioTime;
        this.askType = askType;
        this.askSta = askSta;
    }
    public String getBusId$(){
        BusService service = SpringUtils.getBean(BusService.class);
        Bus bus = service.getById(this.busId);
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/Sta.java
@@ -56,7 +56,7 @@
     * 站类型
     */
    @ApiModelProperty(value= "站类型")
    private Long staType;
    private Integer staType;
    /**
     * 条码
@@ -178,6 +178,15 @@
        return null;
    }
    public Integer getStaTypeIsCheck(){
        StaTypeService service = SpringUtils.getBean(StaTypeService.class);
        StaType staType = service.getById(this.staType);
        if (!Cools.isEmpty(staType)){
            return staType.getCheckType();
        }
        return 0;
    }
    public String getCode$(){
        CodeService service = SpringUtils.getBean(CodeService.class);
        Code code = service.getById(this.code);
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/StaType.java
@@ -18,73 +18,77 @@
    /**
     * ID
     */
    @ApiModelProperty(value= "ID")
    @ApiModelProperty(value = "ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * 标识
     */
    @ApiModelProperty(value= "标识")
    @ApiModelProperty(value = "标识")
    private String uuid;
    /**
     * 名称
     */
    @ApiModelProperty(value= "名称")
    @ApiModelProperty(value = "名称")
    private String name;
    @ApiModelProperty(value = "是否检测信号")
    private Integer checkType;
    /**
     * 状态 1: 正常  0: 冻结
     * 状态 1: 正常  0: 冻结
     */
    @ApiModelProperty(value= "状态 1: 正常  0: 冻结  ")
    @ApiModelProperty(value = "状态 1: 正常  0: 冻结  ")
    private Integer status;
    /**
     * 是否删除 1: 是  0: 否
     * 是否删除 1: 是  0: 否
     */
    @ApiModelProperty(value= "是否删除 1: 是  0: 否  ")
    @ApiModelProperty(value = "是否删除 1: 是  0: 否  ")
    private Integer deleted;
    /**
     * 租户
     */
    @ApiModelProperty(value= "租户")
    @ApiModelProperty(value = "租户")
    private Long tenantId;
    /**
     * 添加人员
     */
    @ApiModelProperty(value= "添加人员")
    @ApiModelProperty(value = "添加人员")
    private Long createBy;
    /**
     * 添加时间
     */
    @ApiModelProperty(value= "添加时间")
    @ApiModelProperty(value = "添加时间")
    private Date createTime;
    /**
     * 修改人员
     */
    @ApiModelProperty(value= "修改人员")
    @ApiModelProperty(value = "修改人员")
    private Long updateBy;
    /**
     * 修改时间
     */
    @ApiModelProperty(value= "修改时间")
    @ApiModelProperty(value = "修改时间")
    private Date updateTime;
    /**
     * 备注
     */
    @ApiModelProperty(value= "备注")
    @ApiModelProperty(value = "备注")
    private String memo;
    public StaType() {}
    public StaType() {
    }
    public StaType(String uuid,String name,Integer status,Integer deleted,Long tenantId,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) {
    public StaType(String uuid, String name, Integer status, Integer deleted, Long tenantId, Long createBy, Date createTime, Long updateBy, Date updateTime, String memo) {
        this.uuid = uuid;
        this.name = name;
        this.status = status;
@@ -110,9 +114,11 @@
//            null    // 备注
//    );
    public String getStatus$(){
        if (null == this.status){ return null; }
        switch (this.status){
    public String getStatus$() {
        if (null == this.status) {
            return null;
        }
        switch (this.status) {
            case 1:
                return "正常";
            case 0:
@@ -122,9 +128,11 @@
        }
    }
    public Boolean getStatusBool(){
        if (null == this.status){ return null; }
        switch (this.status){
    public Boolean getStatusBool() {
        if (null == this.status) {
            return null;
        }
        switch (this.status) {
            case 1:
                return true;
            case 0: