package com.zy.acs.manager.fake; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.zy.acs.common.constant.RedisConstant; import com.zy.acs.common.domain.AgvProtocol; import com.zy.acs.common.utils.RedisSupport; import com.zy.acs.manager.manager.entity.Agv; import com.zy.acs.manager.manager.entity.AgvDetail; import com.zy.acs.manager.manager.enums.StatusType; import com.zy.acs.manager.manager.service.AgvDetailService; import com.zy.acs.manager.manager.service.AgvService; import com.zy.acs.manager.system.service.ConfigService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.util.List; /** * Created by vincent on 11/9/2024 */ @Component public class FakeProcessor { private final RedisSupport redis = RedisSupport.defaultRedisSupport; @Autowired private AgvService agvService; @Autowired private AgvDetailService agvDetailService; @Autowired private ConfigService configService; /** * 1.AgvDataService.dataProcess [ agvDetail: vol, code, agvAngle, agvStatus ] * 2.MainService.upDataSubscribe * 3.AgvCmdService.executeRequest {@link com.zy.acs.manager.core.service.AgvCmdService#executeAgvActionCmd} * 4.AgvServiceImpl.judgeOnline * 5. */ @Scheduled(cron = "0/1 * * * * ? ") public void process() { Boolean fakeSign = configService.getVal("fakeSign", Boolean.class); if (null == fakeSign || !fakeSign) { return; } List agvList = agvService.list(new LambdaQueryWrapper().eq(Agv::getStatus, StatusType.ENABLE.val)); for (Agv agv : agvList) { AgvDetail agvDetail = agvDetailService.selectByAgvId(agv.getId()); this.processOnline(agv); } } private void processOnline(Agv agv) { redis.setObject(RedisConstant.AGV_ONLINE_FLAG, agv.getUuid(), 1, 30); } private void responseTheRequest() { AgvProtocol protocol = redis.pop(RedisConstant.AGV_PATH_DOWN_FLAG); if (null != protocol) { try { Thread.sleep(100); } catch (InterruptedException ignore) {} // redis.setObject(RedisConstant.AGV_PATH_UP_FLAG // , protocol.getAgvNo() + "_" + agv_01_up.getSerialNo() // , agv_01_up); } } }