#
vincentlu
2025-01-20 7efbe2a7e375a315970830ae0704bea1a11734d0
zy-acs-manager/src/main/java/com/zy/acs/manager/fake/AgvSimulatorTask.java
@@ -1,15 +1,16 @@
package com.zy.acs.manager.fake;
import com.zy.acs.common.constant.RedisConstant;
import com.zy.acs.common.domain.AgvProtocol;
import com.zy.acs.common.domain.protocol.AGV_11_UP;
import com.zy.acs.common.enums.AgvCompleteType;
import com.zy.acs.common.utils.RedisSupport;
import com.zy.acs.manager.core.cache.CoreCache;
import com.zy.acs.manager.core.domain.CodeStepDto;
import com.zy.acs.manager.core.scheduler.MapDataWsScheduler;
import com.zy.acs.manager.core.service.MainService;
import com.zy.acs.manager.core.service.MapService;
import com.zy.acs.manager.manager.entity.Action;
import com.zy.acs.manager.manager.entity.Agv;
import com.zy.acs.manager.manager.entity.AgvDetail;
import com.zy.acs.manager.manager.entity.Code;
import com.zy.acs.manager.manager.enums.ActionStsType;
import com.zy.acs.manager.manager.enums.ActionTypeType;
@@ -34,6 +35,7 @@
    private final CodeService codeService;
    private final MapService mapService;
    private final JamService jamService;
    private final MainService mainService;
    private final List<Action> actionList;
    private final RedisSupport redis;
@@ -48,6 +50,7 @@
            , CodeService codeService
            , MapService mapService
            , JamService jamService
            , MainService mainService
            , List<Action> actionList
    ) {
        this.agv = agv;
@@ -57,6 +60,7 @@
        this.codeService = codeService;
        this.mapService = mapService;
        this.jamService = jamService;
        this.mainService = mainService;
        this.actionList = actionList;
        this.groupId = actionList.get(0).getGroupId();
@@ -104,7 +108,7 @@
    private void simulateWalking(Agv agv, Action action) throws InterruptedException {
        Code code = codeService.selectByData(action.getCode());
        Code code = codeService.getCacheByData(action.getCode());
//        agvDetail.setPos(1);
//        agvDetail.setCode(code.getId());
        // 模拟电量消耗
@@ -141,7 +145,15 @@
    }
    private void finishActionList(String qrCode) {
        // 1.complete data
        // 1.show effect
        CodeStepDto codeStepDto = CoreCache.AGV_MOCK_STEP_CACHE.get(this.agv.getId());
        if (null != codeStepDto && qrCode.equals(codeStepDto.getCodeData())) {
//            Code currentCode = agvDetailService.getCurrentCode(this.agv.getId());
            try { Thread.sleep(codeStepDto.getJobType().waitTime); } catch (InterruptedException ignore) {}
            CoreCache.AGV_MOCK_STEP_CACHE.remove(this.agv.getId());
        }
        // 2.complete data
        AGV_11_UP agv_11_up = new AGV_11_UP();
        agv_11_up.setSerialNo(groupId);
        agv_11_up.setCompleteCode(AgvCompleteType.ENTIRE_PATH_COMPLETE.getCode());
@@ -149,6 +161,7 @@
        agv_11_up.setQrCode(qrCode);
        AgvProtocol agvProtocol = AgvProtocol.build(this.agv.getUuid()).setMessageBody(agv_11_up);
        redis.push(RedisConstant.AGV_COMPLETE_FLAG, agvProtocol);
        mainService.upDataSubscribe(agvProtocol);
//        redis.push(RedisConstant.AGV_COMPLETE_FLAG, agvProtocol);
    }
}