1
zhang
2 天以前 2a6e27f1c0064690d6fc6ab137d64c02fc0742da
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java
@@ -106,22 +106,29 @@
    @Override
    public Boolean judgeEnable(Long agvId) {
        return this.judgeEnable(agvId, false);
        return this.judgeEnable(agvId, false,false);
    }
    /**
     * 判断AGV是否可用
     * @param agvId
     * @param isLowBattery 低电量判断
     * @param force 是否强制操作
     * @return
     */
    @Override
    public Boolean judgeEnable(Long agvId, Boolean isLowBattery) {
    public Boolean judgeEnable(Long agvId, Boolean isLowBattery, Boolean force) {
        String agvNo = this.getAgvNo(agvId);
        AgvModel agvModel = agvModelService.getByAgvId(agvId);
        if (0 < segmentService.count(new LambdaQueryWrapper<Segment>()
                        .eq(Segment::getAgvId, agvId)
                        .eq(Segment::getState, SegmentStateType.RUNNING.toString())
        )) {
            log.warn("[{}]号Agv正在忙碌 - segment......", agvNo);
//            log.warn("[{}]号Agv正在忙碌 - segment......", agvNo);
            return false;
        }
        if (!this.judgeOnline(agvId)) {
            log.warn("[{}]号Agv不是在线状态......", agvNo);
//            log.warn("[{}]号Agv不是在线状态......", agvNo);
            return false;
        }
        AgvDetail agvDetail = agvDetailService.selectMajorByAgvId(agvId);
@@ -137,8 +144,14 @@
            return false;
        }
        if (agvDetail.getAgvStatus().equals(AgvStatusType.CHARGE)) {
            if (agvDetail.getVol() < agvModel.getQuaBattery()) {
                return false;
            if (force){
                if (agvDetail.getVol() < agvModel.getLowBattery()) {
                    return false;
                }
            }else {
                if (agvDetail.getVol() < agvModel.getQuaBattery()) {
                    return false;
                }
            }
        }
        if (!agvDetail.getAgvStatus().equals(AgvStatusType.CHARGE)) {
@@ -163,6 +176,8 @@
        return true;
    }
    @Override
    public Boolean judgeOnline(Long agvId) {
        Agv agv = this.getById(agvId);