component/component-Influxdb/target/component-Influxdb-1.0.0.jarBinary files differ
component/component-Influxdb/target/maven-archiver/pom.properties
File was deleted component/component-Influxdb/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
component/component-Influxdb/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
File was deleted component/component-Influxdb/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
component/component-Influxdb/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
zy-acs-cv/src/main/java/com/zy/asrs/controller/WmsController.java
@@ -3,6 +3,7 @@ import com.core.common.R; import com.zy.asrs.controller.requestParam.StaParam; import com.zy.asrs.controller.responseParam.StationResponseParam; import com.zy.asrs.controller.vo.PlcErrorTableVo; import com.zy.asrs.entity.Job; import com.zy.asrs.service.JobService; import com.zy.common.web.BaseController; @@ -38,7 +39,7 @@ @ResponseBody @PostMapping("/station/getTaskNo") public R query(@RequestBody StaParam param) { log.info("根据站点查询taskNo:{}", param); log.info("根据站点查询staNo:{}", param); String staNo = param.getStaNo(); DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, param.getDevpId()); List<StationResponseParam> list = new ArrayList<>(); @@ -55,4 +56,125 @@ } /** * 查询异常 */ @ResponseBody @PostMapping("/station/getError") public R getError(@RequestBody StaParam param) { log.info("根据站点查询staNo:{}", param); String staNo = param.getStaNo(); DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, param.getDevpId()); Map<Integer, StaProtocol> station = devpThread.getStation(); StaProtocol staProtocol = station.get(Integer.parseInt(staNo)); return R.ok(staPlcErr(staProtocol)); } private List<PlcErrorTableVo> staPlcErr(StaProtocol staProtocol) { if (staProtocol == null) { return null; } List<PlcErrorTableVo> list = new ArrayList<>(); if (staProtocol.getBreakerErr()) { PlcErrorTableVo vo = new PlcErrorTableVo(); vo.setStaNo(staProtocol.getSiteId()); // 序号 vo.setPlcDesc("断路器故障"); vo.setError("断路器故障"); list.add(vo); } if (staProtocol.getInfraredErr()) { PlcErrorTableVo vo = new PlcErrorTableVo(); vo.setStaNo(staProtocol.getSiteId()); // 序号 vo.setPlcDesc("光电异常"); vo.setError("光电异常"); list.add(vo); } if (staProtocol.getOutTimeErr()) { PlcErrorTableVo vo = new PlcErrorTableVo(); vo.setStaNo(staProtocol.getSiteId()); // 序号 vo.setPlcDesc("运行超时"); vo.setError("运行超时"); list.add(vo); } if (staProtocol.getSeizeSeatErr()) { PlcErrorTableVo vo = new PlcErrorTableVo(); vo.setStaNo(staProtocol.getSiteId()); // 序号 vo.setPlcDesc("占位超时"); vo.setError("占位超时"); list.add(vo); } if (staProtocol.getWrkYgoodsN()) { PlcErrorTableVo vo = new PlcErrorTableVo(); vo.setStaNo(staProtocol.getSiteId()); // 序号 vo.setPlcDesc("有任务无货故障"); vo.setError("有任务无货故障"); list.add(vo); } if (staProtocol.getInverterErr()) { PlcErrorTableVo vo = new PlcErrorTableVo(); vo.setStaNo(staProtocol.getSiteId()); // 序号 vo.setPlcDesc("变频器故障"); vo.setError("变频器故障"); list.add(vo); } if (staProtocol.getContactErr()) { PlcErrorTableVo vo = new PlcErrorTableVo(); vo.setStaNo(staProtocol.getSiteId()); // 序号 vo.setPlcDesc("电机接触器故障"); vo.setError("电机接触器故障"); list.add(vo); } if (staProtocol.getUpcontactErr()) { PlcErrorTableVo vo = new PlcErrorTableVo(); vo.setStaNo(staProtocol.getSiteId()); // 序号 vo.setPlcDesc("顶升电机接触器故障"); vo.setError("顶升电机接触器故障"); list.add(vo); } if (staProtocol.isFrontErr()) { PlcErrorTableVo vo = new PlcErrorTableVo(); vo.setStaNo(staProtocol.getSiteId()); // 序号 vo.setPlcDesc("前超限"); vo.setError("前超限"); list.add(vo); } if (staProtocol.isBackErr()) { PlcErrorTableVo vo = new PlcErrorTableVo(); vo.setStaNo(staProtocol.getSiteId()); // 序号 vo.setPlcDesc("后超限"); vo.setError("后超限"); list.add(vo); } if (staProtocol.isHighErr()) { PlcErrorTableVo vo = new PlcErrorTableVo(); vo.setStaNo(staProtocol.getSiteId()); // 序号 vo.setPlcDesc("高超限"); vo.setError("高超限"); list.add(vo); } if (staProtocol.isLeftErr()) { PlcErrorTableVo vo = new PlcErrorTableVo(); vo.setStaNo(staProtocol.getSiteId()); // 序号 vo.setPlcDesc("左超限"); vo.setError("左超限"); list.add(vo); } if (staProtocol.isRightErr()) { PlcErrorTableVo vo = new PlcErrorTableVo(); vo.setStaNo(staProtocol.getSiteId()); // 序号 vo.setPlcDesc("右超限"); vo.setError("右超限"); list.add(vo); } if (staProtocol.isBarcodeErr()) { PlcErrorTableVo vo = new PlcErrorTableVo(); vo.setStaNo(staProtocol.getSiteId()); // 序号 vo.setPlcDesc("扫码失败"); vo.setError("扫码失败"); list.add(vo); } return list; } } zy-acs-cv/src/main/java/com/zy/asrs/controller/vo/PlcErrorTableVo.java
@@ -9,7 +9,7 @@ public class PlcErrorTableVo { // 序号 private Integer no; private Integer staNo; // plc异常描述 private String plcDesc; zy-acs-gateway/pom.xml
@@ -43,10 +43,10 @@ <artifactId>acs-common</artifactId> <version>1.0.0</version> </dependency> <!-- SpringBoot RabbitMQ --> <dependency> <groupId>com.zy</groupId> <artifactId>component-Influxdb</artifactId> <version>1.0.0</version> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> </dependencies> zy-acs-gateway/src/main/java/com/zy/acs/gateway/constant/RabbitmqConstant.java
New file @@ -0,0 +1,12 @@ package com.zy.acs.gateway.constant; public class RabbitmqConstant { public static final String TOPIC_EXCHANGE = "rcs_topic_exchange"; public static final String ROUTING_KEY_UP = "rcs.up.*.*"; public static final String ROUTING_KEY_DOWN = "rcs.down.*.*"; public static final String SPILT_REGEX = "\\*"; } zy-acs-gateway/src/main/java/com/zy/acs/gateway/handler/AgvPackageServerHandler.java
@@ -7,12 +7,14 @@ import com.zy.acs.gateway.AbstractInboundHandler; import com.zy.acs.gateway.Executors; import com.zy.acs.gateway.constant.ProtocolType; import com.zy.acs.gateway.constant.RabbitmqConstant; import com.zy.acs.gateway.domain.AgvPackage; import com.zy.acs.gateway.process.AckMsgBuilder; import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelHandlerContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -30,6 +32,11 @@ @Autowired private Executors executors; @Autowired private RabbitTemplate rabbitTemplate; @Override @SuppressWarnings("all") @@ -55,12 +62,18 @@ agv_b1_down.setPathLen(agv_01_up.getPathLen()); ctx.writeAndFlush(pathAckPac); // 写入队列 rabbitTemplate.convertAndSend(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_UP.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ProtocolType.PATH_ACK.name()), agv_01_up); rabbitTemplate.convertAndSend(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_DOWN.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ProtocolType.PATH_ACK_RESPONSE.name()), agv_b1_down); break label; case PICK_PLACE_REQUEST: // 取放货请求包 AGV_06_UP agv_06_up = (AGV_06_UP) pac.getBody().getMessageBody(); redis.push(RedisConstant.AGV_COMPLETE_FLAG, AgvProtocol.build(uniqueNo).setMessageBody(agv_06_up)); // 写入队列 rabbitTemplate.convertAndSend(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_UP.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ProtocolType.PICK_PLACE_REQUEST.name()), agv_06_up); break label; @@ -71,6 +84,8 @@ redis.setObject(RedisConstant.AGV_CMD_UP_FLAG , pac.getHeader().getUniqueNo() + "_" + agv_02_up.getSerialNo() , agv_02_up); // 写入队列 rabbitTemplate.convertAndSend(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_UP.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ProtocolType.COMMAND_ACK.name()), agv_02_up); break label; @@ -80,6 +95,9 @@ AGV_11_UP agv_11_up = (AGV_11_UP) pac.getBody().getMessageBody(); redis.push(RedisConstant.AGV_COMPLETE_FLAG, AgvProtocol.build(uniqueNo).setMessageBody(agv_11_up)); // 写入队列 rabbitTemplate.convertAndSend(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_UP.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ProtocolType.ACTION_COMPLETE.name()), agv_11_up); // 动作完成应答 if (null != ackType) { AgvPackage ackPac = AckMsgBuilder.ofSuccess(pac, ackType); @@ -88,8 +106,9 @@ agv_a1_down.setAckSign((byte) agv_11_up.getCompleteCode()); ctx.writeAndFlush(ackPac); } rabbitTemplate.convertAndSend(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_DOWN.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ackType.name()), agv_a1_down); } break label; @@ -105,6 +124,8 @@ // } // // }); // 写入队列 rabbitTemplate.convertAndSend(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_UP.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ProtocolType.DATA_CODE_REPORT.name()), agv_12_up); break label; @@ -121,6 +142,8 @@ // // }); // 写入队列 rabbitTemplate.convertAndSend(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_UP.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ProtocolType.DATA_WITHOUT_CODE_REPORT.name()), agv_13_up); break label; @@ -143,6 +166,8 @@ // } // // }); // 写入队列 rabbitTemplate.convertAndSend(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_UP.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ProtocolType.HEARTBEAT_REPORT.name()), agv_03_up); break label; @@ -159,6 +184,8 @@ // // }); // 写入队列 rabbitTemplate.convertAndSend(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_UP.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ProtocolType.SILO_REPORT.name()), agv_70_up); break label; @@ -166,12 +193,15 @@ AGV_F0_UP agv_f0_up = (AGV_F0_UP) pac.getBody().getMessageBody(); redis.push(RedisConstant.AGV_DATA_FLAG, AgvProtocol.build(uniqueNo).setMessageBody(agv_f0_up)); // 写入队列 rabbitTemplate.convertAndSend(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_UP.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ProtocolType.LOGIN_REPORT.name()), agv_f0_up); // 登录应答 if (null != ackType) { AgvPackage ackPac = AckMsgBuilder.ofSuccess(pac, ackType); ctx.writeAndFlush(ackPac); rabbitTemplate.convertAndSend(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_DOWN.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ackType.name()), ackPac.getBody().getMessageBody()); } // 30s redis @@ -184,6 +214,8 @@ AGV_04_UP agv_04_up = (AGV_04_UP) pac.getBody().getMessageBody(); redis.push(RedisConstant.AGV_DATA_FLAG, AgvProtocol.build(uniqueNo).setMessageBody(agv_04_up)); // 写入队列 rabbitTemplate.convertAndSend(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_UP.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ProtocolType.FAULT_REPORT.name()), agv_04_up); break label; zy-acs-gateway/src/main/java/com/zy/acs/gateway/listen/MessageListener.java
@@ -6,10 +6,14 @@ 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.constant.ProtocolType; import com.zy.acs.gateway.constant.RabbitmqConstant; import com.zy.acs.gateway.domain.AgvPackage; 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.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -33,6 +37,10 @@ @Autowired private SystemProperties systemProperties; @Autowired private RabbitTemplate rabbitTemplate; @PostConstruct private void start(){ thread = new Thread(() -> { @@ -43,7 +51,11 @@ log.info("监听器 >>> {}", JSON.toJSONString(protocol)); } if (!Cools.isEmpty(protocol.getAgvNo())) { publisher.publish(ProtocolUtils.installDownProtocol(protocol)); AgvPackage agvPackage = ProtocolUtils.installDownProtocol(protocol); publisher.publish(agvPackage); // 写入队列 rabbitTemplate.convertAndSend(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_DOWN.replaceFirst(RabbitmqConstant.SPILT_REGEX, protocol.getAgvNo()).replaceFirst(RabbitmqConstant.SPILT_REGEX, agvPackage.getHeader().getProtocolType().name()), agvPackage.getBody().getMessageBody()); } } // 间隔 zy-acs-gateway/src/main/resources/application.yml
@@ -10,6 +10,17 @@ username: root password: xltys1995 rabbitmq: host: localhost port: 5672 username: root password: xltys1995 # 虚拟host可以不设置,默认/ virtual-host: / # 生产者确认配置 publisher-confirm-type: correlated publisher-returns: true eureka: client: enabled: false