From 6324d391d2b0aa5b96128f5e07a612ec7ebf8c20 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期一, 11 十一月 2024 10:35:28 +0800 Subject: [PATCH] # --- zy-acs-flow/src/map/header/FakeFab.jsx | 18 +++++++- zy-acs-manager/src/main/java/com/zy/acs/manager/fake/FakeService.java | 8 ---- zy-acs-common/src/main/java/com/zy/acs/common/constant/RedisConstant.java | 4 ++ zy-acs-manager/src/main/java/com/zy/acs/manager/fake/FakeController.java | 7 +++ zy-acs-gateway/src/main/java/com/zy/acs/gateway/handler/AgvPackageServerHandler.java | 2 zy-acs-gateway/src/main/java/com/zy/acs/gateway/listen/MessageListener.java | 17 +++----- zy-acs-manager/src/main/java/com/zy/acs/manager/fake/FakeProcessor.java | 44 +++++++++++++++++++++ zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvCmdService.java | 14 +++++- 8 files changed, 88 insertions(+), 26 deletions(-) diff --git a/zy-acs-common/src/main/java/com/zy/acs/common/constant/RedisConstant.java b/zy-acs-common/src/main/java/com/zy/acs/common/constant/RedisConstant.java index db6e533..493f911 100644 --- a/zy-acs-common/src/main/java/com/zy/acs/common/constant/RedisConstant.java +++ b/zy-acs-common/src/main/java/com/zy/acs/common/constant/RedisConstant.java @@ -5,6 +5,10 @@ */ public class RedisConstant { + public static final String AGV_PATH_UP_FLAG = "AGV_PATH_UP_FLAG"; + + public static final String AGV_PATH_DOWN_FLAG = "AGV_PATH_DOWN_FLAG"; + public static final String AGV_CMD_DOWN_FLAG = "AGV_CMD_DOWN_FLAG"; public static final String AGV_CMD_UP_FLAG = "AGV_CMD_UP_FLAG"; diff --git a/zy-acs-flow/src/map/header/FakeFab.jsx b/zy-acs-flow/src/map/header/FakeFab.jsx index c26bf57..ecaae12 100644 --- a/zy-acs-flow/src/map/header/FakeFab.jsx +++ b/zy-acs-flow/src/map/header/FakeFab.jsx @@ -16,9 +16,21 @@ const handleToggle = () => { getFakeSign(null, (res) => { - setFakeSign(!res, (updatedSign) => { - setFakeRun(updatedSign); - }); + let pass = true; + if (!res) { + const pwd = prompt("please enter password:"); + if (pwd === 'xltys1995') { + pass = true; + } else { + pass = false; + alert('Incorrect password'); + } + } + if (pass) { + setFakeSign(!res, (updatedSign) => { + setFakeRun(updatedSign); + }); + } }); } diff --git a/zy-acs-gateway/src/main/java/com/zy/acs/gateway/handler/AgvPackageServerHandler.java b/zy-acs-gateway/src/main/java/com/zy/acs/gateway/handler/AgvPackageServerHandler.java index 3981f3f..5a9d201 100644 --- a/zy-acs-gateway/src/main/java/com/zy/acs/gateway/handler/AgvPackageServerHandler.java +++ b/zy-acs-gateway/src/main/java/com/zy/acs/gateway/handler/AgvPackageServerHandler.java @@ -44,7 +44,7 @@ AGV_01_UP agv_01_up = (AGV_01_UP) pac.getBody().getMessageBody(); - redis.setObject(RedisConstant.AGV_CMD_UP_FLAG + redis.setObject(RedisConstant.AGV_PATH_UP_FLAG , pac.getHeader().getUniqueNo() + "_" + agv_01_up.getSerialNo() , agv_01_up); diff --git a/zy-acs-gateway/src/main/java/com/zy/acs/gateway/listen/MessageListener.java b/zy-acs-gateway/src/main/java/com/zy/acs/gateway/listen/MessageListener.java index 6e6ced0..31b0ad8 100644 --- a/zy-acs-gateway/src/main/java/com/zy/acs/gateway/listen/MessageListener.java +++ b/zy-acs-gateway/src/main/java/com/zy/acs/gateway/listen/MessageListener.java @@ -2,18 +2,16 @@ import com.alibaba.fastjson.JSON; import com.zy.acs.common.constant.RedisConstant; -import com.zy.acs.common.domain.AgvCommand; import com.zy.acs.common.domain.AgvProtocol; -import com.zy.acs.gateway.config.SystemProperties; -import com.zy.acs.gateway.domain.AgvPackage; -import com.zy.acs.gateway.job.DispatcherPublisher; import com.zy.acs.common.utils.RedisSupport; +import com.zy.acs.framework.common.Cools; +import com.zy.acs.gateway.config.SystemProperties; +import com.zy.acs.gateway.job.DispatcherPublisher; import com.zy.acs.gateway.utils.ProtocolUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import org.springframework.util.StringUtils; import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; @@ -39,19 +37,18 @@ private void start(){ thread = new Thread(() -> { while (!Thread.currentThread().isInterrupted()) { - AgvProtocol protocol = redis.pop(RedisConstant.AGV_CMD_DOWN_FLAG); - if (null != protocol){ + AgvProtocol protocol = redis.pop(RedisConstant.AGV_PATH_DOWN_FLAG); + if (null != protocol) { if (systemProperties.isPrintPacLog()) { log.info("鐩戝惉鍣� >>> {}", JSON.toJSONString(protocol)); } - if (!StringUtils.isEmpty(protocol.getAgvNo())){ - + if (!Cools.isEmpty(protocol.getAgvNo())) { publisher.publish(ProtocolUtils.installDownProtocol(protocol)); } } // 闂撮殧 try { - Thread.sleep(1000); + Thread.sleep(500); } catch (Exception ignore) {} } }); diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvCmdService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvCmdService.java index 8263b1b..00fa403 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvCmdService.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvCmdService.java @@ -12,6 +12,7 @@ import com.zy.acs.common.domain.protocol.IMessageBody; import com.zy.acs.common.utils.RedisSupport; import com.zy.acs.common.utils.RequestSupport; +import com.zy.acs.manager.system.service.ConfigService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -29,6 +30,8 @@ @Autowired private SnowflakeIdWorker snowflakeIdWorker; + @Autowired + private ConfigService configService; public BaseResult<?> executeAgvActionCmd(AgvAction agvAction) { @@ -38,6 +41,11 @@ String serialNo = agvAction.getSerialNo(); AgvProtocol protocol = AgvProtocol.build(agvAction.getAgvNo()).setMessageBody(agvAction.beMesBody(serialNo)); + + // fake + if (configService.getVal("fakeSign", Boolean.class)) { + return BaseResult.ok(); + } return this.requestProcess(serialNo, protocol , (RequestSupport<AGV_01_UP>) result -> result.getSerialNo().equals(serialNo)); @@ -74,7 +82,7 @@ @SuppressWarnings("all") private IMessageBody executeRequest(String serialNo, AgvProtocol protocol) throws TimeoutException { - redis.push(RedisConstant.AGV_CMD_DOWN_FLAG, protocol); + redis.push(RedisConstant.AGV_PATH_DOWN_FLAG, protocol); IMessageBody messageBody = null; @@ -82,8 +90,8 @@ // 鑾峰彇鍝嶅簲 long startTime = System.currentTimeMillis(); while ((System.currentTimeMillis() - startTime) < RedisConstant.CMD_TIMEOUT_LIMIT) { - if ((messageBody = redis.getObject(RedisConstant.AGV_CMD_UP_FLAG, redisKey)) != null){ - redis.deleteObject(RedisConstant.AGV_CMD_UP_FLAG, redisKey); + if ((messageBody = redis.getObject(RedisConstant.AGV_PATH_UP_FLAG, redisKey)) != null){ + redis.deleteObject(RedisConstant.AGV_PATH_UP_FLAG, redisKey); return messageBody; } try{ diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/fake/FakeController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/fake/FakeController.java index 4ecac00..4e327e6 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/fake/FakeController.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/fake/FakeController.java @@ -8,6 +8,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.annotation.PostConstruct; + /** * Created by vincent on 11/9/2024 */ @@ -18,6 +20,11 @@ @Autowired private ConfigService configService; + @PostConstruct + public void init() { + configService.setVal("fakeSign", Boolean.FALSE); + } + @GetMapping("/sign/get") public R getSign() { return R.ok().add(configService.getVal("fakeSign", Boolean.class)); diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/fake/FakeProcessor.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/fake/FakeProcessor.java index 66800d0..9587fab 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/fake/FakeProcessor.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/fake/FakeProcessor.java @@ -1,10 +1,20 @@ 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 @@ -12,23 +22,55 @@ @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 + * 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<Agv> agvList = agvService.list(new LambdaQueryWrapper<Agv>().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); + } } } diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/fake/FakeService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/fake/FakeService.java index fc53c78..bc6cc72 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/fake/FakeService.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/fake/FakeService.java @@ -13,13 +13,5 @@ @Autowired private ConfigService configService; - public boolean fakeStartup() { - return configService.setVal("fakeSign", Boolean.TRUE); - } - - public boolean fakeShutdown() { - return configService.setVal("fakeSign", Boolean.FALSE); - } - } -- Gitblit v1.9.1