Kaynağa Gözat

Merge branch 'han' of uskycloud/usky-modules into server-165

hanzhengyi 10 ay önce
ebeveyn
işleme
916ee8b292

+ 4 - 0
service-agbox/service-agbox-biz/pom.xml

@@ -62,6 +62,10 @@
             <version>0.0.1</version>
             <scope>compile</scope>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-amqp</artifactId>
+        </dependency>
     </dependencies>
 
     <build>

+ 3 - 2
service-agbox/service-agbox-biz/src/main/java/com/usky/agbox/controller/MybatisGeneratorUtils.java

@@ -44,7 +44,8 @@ public class MybatisGeneratorUtils {
         //2、数据源配置
         //修改数据源
         DataSourceConfig dsc = new DataSourceConfig();
-        dsc.setUrl("jdbc:mysql://172.16.120.165:3306/usky-cloud?useUnicode=true&serverTimezone=GMT&useSSL=false&characterEncoding=utf8");
+        dsc.setUrl("jdbc:mysql://172.16.120.165:3306/usky-fire?useUnicode=true&serverTimezone=GMT&useSSL=false" +
+                "&characterEncoding=utf8");
         dsc.setDriverName("com.mysql.jdbc.Driver");
         dsc.setUsername("usky");
         dsc.setPassword("Yt#75Usky");
@@ -72,7 +73,7 @@ public class MybatisGeneratorUtils {
         // strategy.setTablePrefix("t_"); // 表名前缀
         strategy.setEntityLombokModel(true); //使用lombok
         //修改自己想要生成的表
-        strategy.setInclude("sys_user");  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
+        strategy.setInclude("patrol_inspection_agbox");  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
         mpg.setStrategy(strategy);
 
         // 关闭默认 xml 生成,调整生成 至 根目录

+ 53 - 0
service-agbox/service-agbox-biz/src/main/java/com/usky/agbox/controller/web/PatrolInspectionAgboxController.java

@@ -0,0 +1,53 @@
+package com.usky.agbox.controller.web;
+
+
+import com.usky.agbox.domain.PatrolInspectionAgbox;
+import com.usky.agbox.service.PatrolInspectionAgboxService;
+import com.usky.common.core.bean.ApiResult;
+import com.usky.common.core.bean.CommonPage;
+import com.usky.common.log.annotation.Log;
+import com.usky.common.log.enums.BusinessType;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import org.springframework.stereotype.Controller;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author han
+ * @since 2024-05-23
+ */
+@RestController
+@RequestMapping("/patrolInspectionAgbox")
+public class PatrolInspectionAgboxController {
+    @Autowired
+    private PatrolInspectionAgboxService patrolInspectionAgboxService;
+
+    /**
+     * 修改
+     * @param patrolInspectionAgbox
+     * @return
+     */
+    @PutMapping("/update")
+    public ApiResult<Void> update(@RequestBody PatrolInspectionAgbox patrolInspectionAgbox){
+        patrolInspectionAgboxService.update(patrolInspectionAgbox);
+        return ApiResult.success();
+    }
+
+    /**
+     * 分页
+     * @param current
+     * @param size
+     * @return
+     */
+    @GetMapping("/page")
+    public ApiResult<CommonPage<PatrolInspectionAgbox>> page(@RequestParam(value = "current", required = false, defaultValue = "1") Integer current,
+                                                             @RequestParam(value = "size", required = false, defaultValue = "10") Integer size)
+    {
+        return ApiResult.success(patrolInspectionAgboxService.page(current,size));
+    }
+}
+

+ 61 - 0
service-agbox/service-agbox-biz/src/main/java/com/usky/agbox/domain/PatrolInspectionAgbox.java

@@ -0,0 +1,61 @@
+package com.usky.agbox.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author han
+ * @since 2024-05-23
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class PatrolInspectionAgbox implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * agboxKey
+     */
+    private String agboxKey;
+
+    /**
+     * agbox转发路径
+     */
+    private String agboxUrl;
+
+    /**
+     * 更新人
+     */
+    private String updateBy;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateTime;
+
+    /**
+     * 组织机构ID
+     */
+    private Integer deptId;
+
+    /**
+     * 租户ID
+     */
+    private Integer tenantId;
+
+
+}

+ 16 - 0
service-agbox/service-agbox-biz/src/main/java/com/usky/agbox/mapper/PatrolInspectionAgboxMapper.java

@@ -0,0 +1,16 @@
+package com.usky.agbox.mapper;
+
+import com.usky.agbox.domain.PatrolInspectionAgbox;
+import com.usky.common.mybatis.core.CrudMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author han
+ * @since 2024-05-23
+ */
+public interface PatrolInspectionAgboxMapper extends CrudMapper<PatrolInspectionAgbox> {
+
+}

+ 19 - 0
service-agbox/service-agbox-biz/src/main/java/com/usky/agbox/service/PatrolInspectionAgboxService.java

@@ -0,0 +1,19 @@
+package com.usky.agbox.service;
+
+import com.usky.agbox.domain.PatrolInspectionAgbox;
+import com.usky.common.core.bean.CommonPage;
+import com.usky.common.mybatis.core.CrudService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author han
+ * @since 2024-05-23
+ */
+public interface PatrolInspectionAgboxService extends CrudService<PatrolInspectionAgbox> {
+    void update(PatrolInspectionAgbox patrolInspectionAgbox);
+
+    CommonPage<PatrolInspectionAgbox> page(Integer pageNum,Integer pageSize);
+}

+ 61 - 0
service-agbox/service-agbox-biz/src/main/java/com/usky/agbox/service/config/rabbitmq/RabbitMQConfig.java

@@ -0,0 +1,61 @@
+package com.usky.agbox.service.config.rabbitmq;
+
+import com.rabbitmq.client.AMQP;
+import org.springframework.amqp.core.*;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class RabbitMQConfig {
+    //队列
+    public String patrolEventQueue = "Patrol_QEvent";
+    //交换机
+    public String patrolEventExchange = "Patrol_EEvent";
+    //路由
+    public String patrolEventRoute = "Patrol_REvent";
+
+    //注册一个队列
+    @Bean
+    public Queue patrolQueue(){
+        return QueueBuilder.durable(patrolEventQueue).maxLength(100).build();    //启动的时候,它会根据这个名称先去查找有没有这个队列,如果有什么都不做,如果没有就创建一个新的
+    }
+
+    //注册交换机
+    @Bean
+    public DirectExchange patrolExchange(){
+        return ExchangeBuilder.directExchange(patrolEventExchange).build();
+    }
+
+    //绑定交换机与队列关系
+    @Bean
+    public Binding bindingPatrolExchangeMessage(){
+        return BindingBuilder.bind(patrolQueue()).to(patrolExchange()).with(patrolEventRoute);
+    }
+
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+ 42 - 0
service-agbox/service-agbox-biz/src/main/java/com/usky/agbox/service/impl/PatrolInspectionAgboxServiceImpl.java

@@ -0,0 +1,42 @@
+package com.usky.agbox.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.usky.agbox.domain.PatrolInspectionAgbox;
+import com.usky.agbox.mapper.PatrolInspectionAgboxMapper;
+import com.usky.agbox.service.PatrolInspectionAgboxService;
+import com.usky.common.core.bean.CommonPage;
+import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.common.security.utils.SecurityUtils;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author han
+ * @since 2024-05-23
+ */
+@Service
+public class PatrolInspectionAgboxServiceImpl extends AbstractCrudService<PatrolInspectionAgboxMapper, PatrolInspectionAgbox> implements PatrolInspectionAgboxService {
+    @Override
+    public void update(PatrolInspectionAgbox patrolInspectionAgbox) {
+        patrolInspectionAgbox.setUpdateTime(LocalDateTime.now());
+        patrolInspectionAgbox.setUpdateBy(SecurityUtils.getUsername());
+        this.updateById(patrolInspectionAgbox);
+    }
+
+    @Override
+    public CommonPage<PatrolInspectionAgbox> page(Integer pageNum,Integer pageSize) {
+        IPage<PatrolInspectionAgbox> page = new Page<>(pageNum, pageSize);
+        LambdaQueryWrapper<PatrolInspectionAgbox> lambdaQuery = Wrappers.lambdaQuery();
+        page = this.page(page,lambdaQuery);
+        return new CommonPage<>(page.getRecords(),page.getTotal(),page.getCurrent(),page.getSize());
+    }
+}

+ 34 - 10
service-agbox/service-agbox-biz/src/main/java/com/usky/agbox/service/job/patrolAgbox.java

@@ -1,10 +1,16 @@
 package com.usky.agbox.service.job;
 
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.usky.agbox.domain.PatrolInspectionAgbox;
+import com.usky.agbox.service.PatrolInspectionAgboxService;
 import com.usky.agbox.service.util.HttpClientUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 import java.util.HashMap;
+import java.util.List;
 
 @Component
 public class patrolAgbox {
@@ -14,15 +20,29 @@ public class patrolAgbox {
     @Value("${agBox.url}")
     private String URL;
 
+    @Autowired
+    private PatrolInspectionAgboxService patrolInspectionAgboxService;
+
+    /**
+     * 获取推送配置信息
+     * @return
+     */
+    public List<PatrolInspectionAgbox> getAgBox() {
+        LambdaQueryWrapper<PatrolInspectionAgbox> lambdaQuery = Wrappers.lambdaQuery();
+        List<PatrolInspectionAgbox> list = patrolInspectionAgboxService.list(lambdaQuery);
+        return list;
+    }
+
     /**
      * 获取事件编码信息
      * @return
      */
     public JSONObject getEventCode() {
+        List<PatrolInspectionAgbox> list = this.getAgBox();
         HashMap map = new HashMap();
-        map.put("key", KEY);
+        map.put("key", list.get(0).getAgboxKey());
         map.put("json", "{\"jsonrpc\":\"2.0\",\"method\":\"getPatrolEventCode\"}");
-        String resultString = HttpClientUtils.doPost(URL,map);
+        String resultString = HttpClientUtils.doPost(list.get(0).getAgboxUrl(),map);
         JSONObject resultVO = JSONObject.parseObject(resultString);
         return resultVO;
     }
@@ -32,10 +52,11 @@ public class patrolAgbox {
      * @return
      */
     public JSONObject getDeviceList() {
+        List<PatrolInspectionAgbox> list = this.getAgBox();
         HashMap map = new HashMap();
-        map.put("key", KEY);
+        map.put("key", list.get(0).getAgboxKey());
         map.put("json", "{\"jsonrpc\":\"2.0\",\"method\":\"getDeviceList\"}");
-        String resultString = HttpClientUtils.doPost(URL,map);
+        String resultString = HttpClientUtils.doPost(list.get(0).getAgboxUrl(),map);
         JSONObject resultVO = JSONObject.parseObject(resultString);
         return resultVO;
     }
@@ -45,13 +66,14 @@ public class patrolAgbox {
      * @return
      */
     public JSONObject addEvent(String requestBody) {
+        List<PatrolInspectionAgbox> list = this.getAgBox();
         JSONObject eventVO = JSONObject.parseObject(requestBody);
         HashMap map = new HashMap();
-        map.put("key", KEY);
+        map.put("key", list.get(0).getAgboxKey());
         map.put("json", "{\"jsonrpc\":\"2.0\",\"method\":\"addEvent\",\"params\":{\"deviceId\":\""+eventVO.get("deviceId").toString()+"\"," +
                 "\"triggerTime\":\""+eventVO.get("triggerTime").toString()+"\",\"eventCode\":"+eventVO.get("eventCode")+",\"name" +
                 "\":\""+eventVO.get("name").toString()+"\",\"certifiedNo\":\""+eventVO.get("certifiedNo").toString()+"\"}}");
-        String resultString = HttpClientUtils.doPost(URL,map);
+        String resultString = HttpClientUtils.doPost(list.get(0).getAgboxUrl(),map);
         JSONObject resultVO = JSONObject.parseObject(resultString);
         return resultVO;
     }
@@ -61,12 +83,13 @@ public class patrolAgbox {
      * @return
      */
     public JSONObject updateHeart(String requestBody) {
+        List<PatrolInspectionAgbox> list = this.getAgBox();
         JSONObject eventVO = JSONObject.parseObject(requestBody);
         HashMap map = new HashMap();
-        map.put("key", KEY);
+        map.put("key", list.get(0).getAgboxKey());
         map.put("json",
                 "{\"jsonrpc\":\"2.0\",\"method\":\"updateHeart\",\"params\":{\"deviceId\":\""+eventVO.get("deviceId").toString()+"\"}}");
-        String resultString = HttpClientUtils.doPost(URL,map);
+        String resultString = HttpClientUtils.doPost(list.get(0).getAgboxUrl(),map);
         JSONObject resultVO = JSONObject.parseObject(resultString);
         return resultVO;
     }
@@ -76,11 +99,12 @@ public class patrolAgbox {
      * @return
      */
     public JSONObject getEvent(String requestBody) {
+        List<PatrolInspectionAgbox> list = this.getAgBox();
         JSONObject eventVO = JSONObject.parseObject(requestBody);
         HashMap map = new HashMap();
-        map.put("key", KEY);
+        map.put("key", list.get(0).getAgboxKey());
         map.put("json", "{\"jsonrpc\":\"2.0\",\"method\":\"getEvent\",\"params\":{\"eventId\":\""+eventVO.get("eventId").toString()+"\"}}");
-        String resultString = HttpClientUtils.doPost(URL,map);
+        String resultString = HttpClientUtils.doPost(list.get(0).getAgboxUrl(),map);
         JSONObject resultVO = JSONObject.parseObject(resultString);
         return resultVO;
     }

+ 63 - 0
service-agbox/service-agbox-biz/src/main/java/com/usky/agbox/service/listener/RabbitMQListener.java

@@ -0,0 +1,63 @@
+package com.usky.agbox.service.listener;
+
+import com.alibaba.fastjson.JSONObject;
+import com.usky.agbox.service.job.patrolAgbox;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.core.ExchangeTypes;
+import org.springframework.amqp.core.Message;
+import org.springframework.amqp.rabbit.annotation.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+@Slf4j
+@Component
+public class RabbitMQListener {
+    @Autowired
+    private patrolAgbox PatrolAgbox;
+    @RabbitHandler
+    @RabbitListener(bindings = @QueueBinding(
+            value = @Queue(),
+            exchange = @Exchange(value = "Patrol_FEvent",type = ExchangeTypes.FANOUT)
+    ))
+    public void getData(Message message){
+        try {
+            String str = new String(message.getBody(),"utf-8");
+            JSONObject eventVO1 = JSONObject.parseObject(str);
+            JSONObject eventVO = new JSONObject();
+            String timeWithT = eventVO1.get("createTime").toString();
+            eventVO.put("deviceId",eventVO1.get("deviceId"));
+            eventVO.put("triggerTime",timeWithT.replace("T", " "));
+            if (eventVO1.get("eventType").equals(31)){
+                eventVO.put("eventCode",1);
+            }else if (eventVO1.get("eventType").equals(32)){
+                eventVO.put("eventCode",2);
+            }else {
+                eventVO.put("eventCode",16);
+            }
+            eventVO.put("name",eventVO1.get("createBy"));
+            eventVO.put("certifiedNo","");
+            PatrolAgbox.addEvent(eventVO.toJSONString());
+            System.out.println("FEventReceiver消费者收到消息: " + str);
+        } catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+    @RabbitHandler
+    @RabbitListener(bindings = @QueueBinding(
+            value = @Queue(),
+            exchange = @Exchange(value = "Patrol_FInfo",type = ExchangeTypes.FANOUT)
+    ))
+    public void getDataInfo(Message message){
+        try {
+            String str = new String(message.getBody(),"utf-8");
+            JSONObject eventVO1 = JSONObject.parseObject(str);
+            JSONObject eventVO = new JSONObject();
+            eventVO.put("deviceId",eventVO1.get("deviceId"));
+            PatrolAgbox.updateHeart(eventVO.toJSONString());
+            System.out.println("FInfoReceiver消费者收到消息: " + str);
+        } catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+}

+ 2 - 2
service-agbox/service-agbox-biz/src/main/resources/bootstrap.yml

@@ -14,10 +14,10 @@ spring:
     nacos:
       discovery:
         # 服务注册地址
-        server-addr: 172.16.120.165:8848
+        server-addr: usky-cloud-nacos:8848
       config:
         # 配置中心地址
-        server-addr: 172.16.120.165:8848
+        server-addr: usky-cloud-nacos:8848
         # 配置文件格式
         file-extension: yml
         # 共享配置

+ 16 - 0
service-agbox/service-agbox-biz/src/main/resources/mapper/agbox/PatrolInspectionAgboxMapper.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.usky.agbox.mapper.PatrolInspectionAgboxMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.usky.agbox.domain.PatrolInspectionAgbox">
+        <id column="id" property="id" />
+        <result column="agbox_key" property="agboxKey" />
+        <result column="agbox_url" property="agboxUrl" />
+        <result column="update_by" property="updateBy" />
+        <result column="update_time" property="updateTime" />
+        <result column="dept_id" property="deptId" />
+        <result column="tenant_id" property="tenantId" />
+    </resultMap>
+
+</mapper>