1
zhang
2 天以前 2a6e27f1c0064690d6fc6ab137d64c02fc0742da
1
9个文件已修改
52 ■■■■■ 已修改文件
zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MaintainScheduler.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainLockWrapService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java
@@ -134,10 +134,12 @@
            log.info(agv.getUuid() + "号AGV不可用,已经存在进行中的任务...");
            return R.error();
        }
        if (!agvService.judgeEnable(agv.getId())) {
        // zhangc 在用户手动控制时,需要用户主观判断,所以小车只要高于低电量阈值就可以手动控制,所以注释
        if (!agvService.judgeEnable(agv.getId(),true,true)) {
            log.info(agv.getUuid() + "号AGV不可用,任务无法计算...");
            return R.error();
        }
        // generate
        Loc oriLoc = null;
@@ -157,13 +159,13 @@
                if (null == endCode) {
                    return R.error();
                }
                if (!mainLockWrapService.buildMinorTask(agv.getId(), param.getTaskMode(), endCode.getData(), null)) {
                if (!mainLockWrapService.buildMinorTask(agv.getId(), param.getTaskMode(), endCode.getData(), null, true)) {
                    return R.error();
                }
                break;
            case TO_CHARGE:
            case TO_STANDBY:
                if (!mainLockWrapService.buildMinorTask(agv.getId(), param.getTaskMode(), null, null)) {
                if (!mainLockWrapService.buildMinorTask(agv.getId(), param.getTaskMode(), null, null, true)) {
                    return R.error();
                }
                break;
zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MaintainScheduler.java
@@ -81,7 +81,7 @@
                    continue;
                }
                mainLockWrapService.buildMinorTask(agv.getId(), TaskTypeType.TO_CHARGE, null, null);
                mainLockWrapService.buildMinorTask(agv.getId(), TaskTypeType.TO_CHARGE, null, null,false);
            }
        }
    }
@@ -144,7 +144,7 @@
                }
//            }
            mainLockWrapService.buildMinorTask(agv.getId(), TaskTypeType.TO_STANDBY, null, null);
            mainLockWrapService.buildMinorTask(agv.getId(), TaskTypeType.TO_STANDBY, null, null,false);
        }
    }
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java
@@ -82,7 +82,7 @@
                continue;
            }
            // 2. in idle status
            if (!agvService.judgeEnable(agv.getId(), true)) {
            if (!agvService.judgeEnable(agv.getId(), true,false)) {
                continue;
            }
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainLockWrapService.java
@@ -46,7 +46,7 @@
        }
    }
    public boolean buildMinorTask(Long agvId, TaskTypeType taskType, String destination, Jam jam) {
    public boolean buildMinorTask(Long agvId, TaskTypeType taskType, String destination, Jam jam, Boolean force) {
        boolean lockAcquired = false;
        try {
            if (!(lockAcquired = this.lock.tryLock(LOCK_TIMEOUT, TimeUnit.SECONDS))) {
@@ -54,7 +54,7 @@
            }
//            log.info("buildMinorTask AGV[{}] lock time: {}", agv.getUuid(), System.currentTimeMillis());
            return mainService.buildMinorTask(agvId, taskType, destination, jam);
            return mainService.buildMinorTask(agvId, taskType, destination, jam,force);
        } catch (Exception e) {
            log.error("MainLockWrapService.buildMinorTask[task]", e);
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
@@ -288,7 +288,7 @@
        try {
            // valid -----------------------------------------------
            Agv agv = agvService.getById(agvId);
            if (!agvService.judgeEnable(agv.getId(), false)) {
            if (!agvService.judgeEnable(agv.getId(), false,  false)) {
                return;
            }
            if (!Cools.isEmpty(taskService.selectInSts(agvId, TaskStsType.ASSIGN, TaskStsType.PROGRESS))) {
@@ -529,13 +529,14 @@
    /**
     * 充电 回待机位任务
     * zc 新增了是否强制,强制说明由用户发起,小车在超过低电量就可以做移动充电去待机位
     */
    @Transactional(propagation = Propagation.REQUIRES_NEW) // although there is a Transactional here that the lock is isolated, but we can't join the caller's Transactional
    public boolean buildMinorTask(Long agvId, TaskTypeType taskType, String destination, Jam jam) {
    public boolean buildMinorTask(Long agvId, TaskTypeType taskType, String destination, Jam jam,boolean force) {
        if (Cools.isEmpty(agvId, taskType)) { return false; }
        try {
            String agvNo = agvService.getAgvNo(agvId);
            if (!agvService.judgeEnable(agvId)) {
            if (!agvService.judgeEnable(agvId,false, force)) {
                return false;
            }
            if (!Cools.isEmpty(taskService.selectInSts(agvId, TaskStsType.ASSIGN, TaskStsType.PROGRESS))) {
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java
@@ -125,7 +125,7 @@
            return;
        }
        if (mainLockWrapService.buildMinorTask(agvId, TaskTypeType.MOVE, destinationCodeData, null)) {
        if (mainLockWrapService.buildMinorTask(agvId, TaskTypeType.MOVE, destinationCodeData, null,false)) {
            log.info( "{}开始作业演示...", agvNo);
            CoreCache.AGV_MOCK_STEP_CACHE.put(agvId, CodeStepDto.build(destinationCodeData, jobType));
@@ -180,7 +180,7 @@
        if (Cools.isEmpty(destinationCodeData)) {
            return;
        }
        if (mainLockWrapService.buildMinorTask(agvId, TaskTypeType.MOVE, destinationCodeData, null)) {
        if (mainLockWrapService.buildMinorTask(agvId, TaskTypeType.MOVE, destinationCodeData, null,false)) {
            log.info( "{}开始走行演示...", agvNo);
        }
    }
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java
@@ -601,7 +601,7 @@
        } else {
            return mainLockWrapService.buildMinorTask(agvId, TaskTypeType.MOVE, endCodeData, jam);
            return mainLockWrapService.buildMinorTask(agvId, TaskTypeType.MOVE, endCodeData, jam, false);
        }
        return true;
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvService.java
@@ -28,7 +28,7 @@
    Boolean judgeEnable(Long agvId);
    Boolean judgeEnable(Long agvId, Boolean withBattery);
    Boolean judgeEnable(Long agvId, Boolean withBattery, Boolean force);
    Boolean judgeOnline(Long agvId);
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java
@@ -106,11 +106,18 @@
    @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>()
@@ -137,8 +144,14 @@
            return false;
        }
        if (agvDetail.getAgvStatus().equals(AgvStatusType.CHARGE)) {
            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);