Pārlūkot izejas kodu

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/mapper/EartagDeviceRegisterMapper.java
#	huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/mapper/xml/EartagDeviceRegisterMapper.xml
#	huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/pojo/EartagDeviceRegister.java
#	huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/impl/EartagDeviceRegisterServiceImpl.java
zhuoning 2 gadi atpakaļ
vecāks
revīzija
63be3b3ac2
38 mainītis faili ar 952 papildinājumiem un 79 dzēšanām
  1. 8 2
      huimv-eartag2-platform/gateway/src/main/resources/application-dev.yml
  2. 1 1
      huimv-eartag2-platform/huimv-eartag2-admin/src/main/resources/application-dev.yml
  3. 2 8
      huimv-eartag2-platform/huimv-eartag2-common/pom.xml
  4. 5 1
      huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/entity/SysBaseConfigEntity.java
  5. 5 1
      huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/repo/SysBaseConfigRepo.java
  6. 5 0
      huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/mq/Const.java
  7. 25 0
      huimv-eartag2-platform/huimv-eartag2-input/src/main/java/com/huimv/eartag2/config/TopicRabbitMQConfig.java
  8. 1 1
      huimv-eartag2-platform/huimv-eartag2-manage/pom.xml
  9. 25 11
      huimv-eartag2-platform/huimv-eartag2-manage/src/main/java/com/huimv/eartag2/manage/controller/SysBaseConfigController.java
  10. 5 1
      huimv-eartag2-platform/huimv-eartag2-manage/src/main/java/com/huimv/eartag2/manage/service/ISysBaseConfigService.java
  11. 1 1
      huimv-eartag2-platform/huimv-eartag2-manage/src/main/java/com/huimv/eartag2/manage/service/impl/EartagServiceImpl.java
  12. 5 3
      huimv-eartag2-platform/huimv-eartag2-manage/src/main/java/com/huimv/eartag2/manage/service/impl/SysBaseConfigServiceImpl.java
  13. 24 0
      huimv-eartag2-platform/huimv-eartag2-manage2/pom.xml
  14. 12 4
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/HuimvManageApplication.java
  15. 16 1
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/controller/EartagDataController.java
  16. 84 10
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/controller/SysBaseConfigController.java
  17. 2 2
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/mapper/EartagDeviceRegisterMapper.java
  18. 16 0
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/mapper/EartagEartagRegisterMapper.java
  19. 10 0
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/mapper/SysBaseConfigMapper.java
  20. 0 5
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/mapper/xml/EartagDeviceRegisterMapper.xml
  21. 25 0
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/mapper/xml/EartagEartagRegisterMapper.xml
  22. 21 2
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/mapper/xml/SysBaseConfigMapper.xml
  23. 111 0
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/netty/EartagServer.java
  24. 139 0
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/netty/EartagServerHandler2.java
  25. 7 4
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/pojo/EartagData.java
  26. 15 11
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/pojo/EartagDeviceRegister.java
  27. 65 0
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/pojo/EartagEartagRegister.java
  28. 0 2
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/pojo/SysBaseConfig.java
  29. 4 0
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/EartagDataService.java
  30. 16 0
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/IEartagDeviceRegisterService.java
  31. 16 0
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/IEartagEartagRegisterService.java
  32. 16 0
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/SysBaseConfigService.java
  33. 34 0
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/impl/EartagDataServiceImpl.java
  34. 4 4
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/impl/EartagDeviceRegisterServiceImpl.java
  35. 20 0
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/impl/EartagEartagRegisterServiceImpl.java
  36. 172 0
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/impl/SysBaseConfigServiceImpl.java
  37. 31 0
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/vo/SysBaseConfigVo.java
  38. 4 4
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/resources/application-dev2.yml

+ 8 - 2
huimv-eartag2-platform/gateway/src/main/resources/application-dev.yml

@@ -1,5 +1,5 @@
 server:
-  port: 8010
+  port: 8016
 
 spring:
   application:
@@ -9,11 +9,17 @@ spring:
       enabled: true
       routes:
         - id: admin
-          uri: http://127.0.0.1:8098
+          uri: http://127.0.0.1:8093
           predicates:
             - Path=/admin/**
           filters:
             - StripPrefix=1
+        - id: manage2
+          uri: http://127.0.0.1:8099
+          predicates:
+            - Path=/manage2/**
+          filters:
+            - StripPrefix=1
 
 logging:
   level:

+ 1 - 1
huimv-eartag2-platform/huimv-eartag2-admin/src/main/resources/application-dev.yml

@@ -5,7 +5,7 @@ spring:
     name: huimv-eartag2-process
 
   datasource:
-    url: jdbc:mysql://122.112.224.199:3306/huimv_cattle?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&serverTimezone=Asia/Shanghai
+    url: jdbc:mysql://122.112.224.199:3306/huimv-eartag-smart2?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&serverTimezone=Asia/Shanghai
     username: root
     password: hm123456
     driver-class-name: com.mysql.cj.jdbc.Driver

+ 2 - 8
huimv-eartag2-platform/huimv-eartag2-common/pom.xml

@@ -13,7 +13,7 @@
 
     <groupId>com.huimv</groupId>
     <artifactId>huimv-eartag2-common</artifactId>
-    <version>0.0.1-SNAPSHOT</version>
+    <version>0.0.1</version>
 
     <dependencies>
 
@@ -97,13 +97,7 @@
                     -->
                     <mainClass>com.huimv.eartag2.common</mainClass>
                 </configuration>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>repackage</goal>
-                        </goals>
-                    </execution>
-                </executions>
+
             </plugin>
         </plugins>
     </build>

+ 5 - 1
huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/entity/SysBaseConfigEntity.java

@@ -1,3 +1,4 @@
+/*
 package com.huimv.eartag2.common.dao.entity;
 
 import lombok.AllArgsConstructor;
@@ -8,12 +9,14 @@ import org.springframework.stereotype.Component;
 import javax.persistence.*;
 import java.io.Serializable;
 
+*/
 /**
  * @Description: 基础配置信息表
  * @Author: 静静
  * @CreateTime: 2022-07-19  08:44
  * @Version: 1.0
- */
+ *//*
+
 @Entity
 @Table(name = "sys_base_config")
 @AllArgsConstructor
@@ -43,3 +46,4 @@ public class SysBaseConfigEntity implements Serializable {
     @Column(name = "row_id")
     private String rowId;
 }
+*/

+ 5 - 1
huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/repo/SysBaseConfigRepo.java

@@ -1,15 +1,19 @@
+/*
 package com.huimv.eartag2.common.dao.repo;
 
 import com.huimv.eartag2.common.dao.entity.SysBaseConfigEntity;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 
+*/
 /**
  * @Description: 基础配置信息表
  * @Author: 静静
  * @CreateTime: 2022-07-19  08:43
  * @Version: 1.0
- */
+ *//*
+
 public interface SysBaseConfigRepo extends JpaRepository<SysBaseConfigEntity,Integer>, JpaSpecificationExecutor<SysBaseConfigEntity> {
 
 }
+*/

+ 5 - 0
huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/mq/Const.java

@@ -56,4 +56,9 @@ public class Const {
      */
     public final static String QUEUE_SYNC_DEVICE_FANOUT="fanout.syncDevice.queue";
     public final static String EXCHANGE_SYNC_DEVICE_FANOUT="fanout.syncDevice.exchange";
+
+    //同步牧场配置消息
+    public final static String QUEUE_SYNC_SYS_CONFIG = "topic.syncSysConfig.queue";
+    public final static String EXCHANGE_SYNC_SYS_CONFIG = "topic.syncSysConfig.exchange";
+    public final static String ROUTING_KEY_SYNC_SYS_CONFIG = "topic.syncSysConfig.routeKey";
 }

+ 25 - 0
huimv-eartag2-platform/huimv-eartag2-input/src/main/java/com/huimv/eartag2/config/TopicRabbitMQConfig.java

@@ -48,6 +48,31 @@ public class TopicRabbitMQConfig {
         return BindingBuilder.bind(askEartagQueue()).to(askEartagExchange()).with(Const.ROUTING_KEY_ASK_EARTAG);
     }
 
+    // 同步配置消息 原始数据队列
+    @Bean
+    public Queue SysConfigQueue() {
+        return new Queue(Const.QUEUE_SYNC_SYS_CONFIG);
+    }
+    // 同步配置消息 原始数据交换机
+    @Bean
+    TopicExchange SysConfigExchange() {
+        return new TopicExchange(Const.EXCHANGE_SYNC_SYS_CONFIG);
+    }
+    //同步配置消息 原始数据绑定关系
+    @Bean
+    Binding bindingSysConfigExchangeMessage() {
+        return BindingBuilder.bind(SysConfigQueue()).to(SysConfigExchange()).with(Const.ROUTING_KEY_SYNC_SYS_CONFIG);
+    }
+
+
+
+
+
+
+
+
+
+
 //    //采集器注册队列路由键
 //    public final static String deviceRegister = "topic.device.register";
 //    //采集器在线记录队列路由键

+ 1 - 1
huimv-eartag2-platform/huimv-eartag2-manage/pom.xml

@@ -16,7 +16,7 @@
         <dependency>
             <groupId>com.huimv</groupId>
             <artifactId>huimv-eartag2-common</artifactId>
-            <version>0.0.1-SNAPSHOT</version>
+            <version>0.0.2-SNAPSHOT</version>
         </dependency>
         <!--rabbitmq-->
         <dependency>

+ 25 - 11
huimv-eartag2-platform/huimv-eartag2-manage/src/main/java/com/huimv/eartag2/manage/controller/SysBaseConfigController.java

@@ -1,3 +1,4 @@
+/*
 package com.huimv.eartag2.manage.controller;
 
 import com.huimv.eartag2.common.utils.Result;
@@ -12,12 +13,14 @@ import javax.annotation.Resource;
 import java.util.List;
 import java.util.Map;
 
+*/
 /**
  * @Description: 系统基础配置
  * @Author: 静静
  * @CreateTime: 2022-07-19  09:14
  * @Version: 1.0
- */
+ *//*
+
 @RestController
 @RequestMapping(value = "/config")
 @Slf4j
@@ -26,60 +29,71 @@ public class SysBaseConfigController {
     @Resource
     private ISysBaseConfigService sysBaseConfigService;
 
-    /**
+    */
+/**
      * @description: 【增加】
      * @author: 静静
      * @date: 2022/7/19 5:08 下午
      * @param: maps
-     **/
+     **//*
+
     @PostMapping("/add")
     public Result addConfig(@RequestBody List<Map<String, String>> maps){
         return sysBaseConfigService.add(maps);
     }
 
-    /**
+    */
+/**
      * @description: 【删除】
      * @author: 静静
      * @date: 2022/7/19 5:10 下午
      * @param: ids
-     **/
+     **//*
+
     @PostMapping("/remove")
     public Result removeConfig(@RequestBody List<Integer> ids){
         return sysBaseConfigService.remove(ids);
     }
 
-    /**
+    */
+/**
      * @description: 【修改】
      * @author: 静静
      * @date: 2022/7/19 5:10 下午
      * @param: maps
-     **/
+     **//*
+
     @PostMapping("/update")
     public Result updateConfig(@RequestBody  List<Map<String, String>> maps){
         return sysBaseConfigService.update(maps);
     }
 
-    /**
+    */
+/**
      * @description: 【查询】根据id查询配置
      * @author: 静静
      * @date: 2022/7/19 5:11 下午
      * @param: ids
-     **/
+     **//*
+
     @PostMapping("/getDateById")
     public Result getDateById(@RequestBody List<Integer> ids){
         return sysBaseConfigService.getDateById(ids);
     }
 
 
-    /**
+    */
+/**
      * @description: 【查询】 分页查询配置表
      * @author: 静静
      * @date: 2022/7/19 5:11 下午
      * @param: paramsMap
-     **/
+     **//*
+
     @PostMapping("/list")
     public Result list(@RequestBody Map<String,String> paramsMap){
         return sysBaseConfigService.list(paramsMap);
     }
 
 }
+*/

+ 5 - 1
huimv-eartag2-platform/huimv-eartag2-manage/src/main/java/com/huimv/eartag2/manage/service/ISysBaseConfigService.java

@@ -1,3 +1,4 @@
+/*
 package com.huimv.eartag2.manage.service;
 
 import com.huimv.eartag2.common.utils.Result;
@@ -5,12 +6,14 @@ import com.huimv.eartag2.common.utils.Result;
 import java.util.List;
 import java.util.Map;
 
+*/
 /**
  * @Description: 基础配置增删改查相关
  * @Author: 静静
  * @CreateTime: 2022-07-19  10:42
  * @Version: 1.0
- */
+ *//*
+
 public interface ISysBaseConfigService {
     Result add(List<Map<String, String>> mapList);
 
@@ -23,3 +26,4 @@ public interface ISysBaseConfigService {
     Result getDateById(List<Integer> ids);
 
 }
+*/

+ 1 - 1
huimv-eartag2-platform/huimv-eartag2-manage/src/main/java/com/huimv/eartag2/manage/service/impl/EartagServiceImpl.java

@@ -286,7 +286,7 @@ public class EartagServiceImpl implements IEartagService {
             criteriaQuery.where(and);
             //
             List<Order> orders = new ArrayList<>();
-            orders.add(criteriaBuilder.desc(root.get("id")));
+            orders.add(criteriaBuilder.desc(root.get("lastTime")));
             return criteriaQuery.orderBy(orders).getRestriction();
         };
         Pageable pageable = PageRequest.of(pageNo - 1, pageSize);

+ 5 - 3
huimv-eartag2-platform/huimv-eartag2-manage/src/main/java/com/huimv/eartag2/manage/service/impl/SysBaseConfigServiceImpl.java

@@ -1,7 +1,6 @@
+/*
 package com.huimv.eartag2.manage.service.impl;
 
-import cn.hutool.db.PageResult;
-import com.huimv.eartag2.common.common.utils.PageOf;
 import com.huimv.eartag2.common.dao.entity.SysBaseConfigEntity;
 import com.huimv.eartag2.common.dao.repo.SysBaseConfigRepo;
 import com.huimv.eartag2.common.utils.Result;
@@ -20,12 +19,14 @@ import javax.persistence.criteria.Predicate;
 import java.util.*;
 import java.util.stream.Collectors;
 
+*/
 /**
  * @Description: 基础配置相关
  * @Author: 静静
  * @CreateTime: 2022-07-19  10:44
  * @Version: 1.0
- */
+ *//*
+
 @Service
 public class SysBaseConfigServiceImpl implements ISysBaseConfigService {
 
@@ -143,3 +144,4 @@ public class SysBaseConfigServiceImpl implements ISysBaseConfigService {
 
     }
 }
+*/

+ 24 - 0
huimv-eartag2-platform/huimv-eartag2-manage2/pom.xml

@@ -106,6 +106,30 @@
             <groupId>org.junit.platform</groupId>
             <artifactId>junit-platform-commons</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.huimv</groupId>
+            <artifactId>huimv-eartag2-common</artifactId>
+            <version>0.0.2-SNAPSHOT</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.huimv</groupId>
+            <artifactId>huimv-eartag2-common</artifactId>
+            <version>0.0.2-SNAPSHOT</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.huimv</groupId>
+            <artifactId>huimv-eartag2-common</artifactId>
+            <version>0.0.2-SNAPSHOT</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.huimv</groupId>
+            <artifactId>huimv-eartag2-manage</artifactId>
+            <version>0.0.1-SNAPSHOT</version>
+            <scope>compile</scope>
+        </dependency>
         <!-- 基准测试 start -->
         <!--        <dependency>-->
         <!--            <groupId>org.openjdk.jmh</groupId>-->

+ 12 - 4
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/HuimvManageApplication.java

@@ -1,10 +1,12 @@
 package com.huimv.eartag2.manage2;
 
+import com.huimv.eartag2.manage2.netty.EartagServer;
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.autoconfigure.domain.EntityScan;
-import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.Bean;
+import org.springframework.web.client.RestTemplate;
 
 /**
  * @Project : huimv.shiwan
@@ -17,7 +19,13 @@ import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
 @SpringBootApplication
 @MapperScan("com.huimv.eartag2.manage2.mapper")
 public class HuimvManageApplication {
-    public static void main(String[] args) {
-        SpringApplication.run(HuimvManageApplication.class, args);
+    public static void main(String[] args) throws InterruptedException {
+
+        ApplicationContext applicationContext =   SpringApplication.run(HuimvManageApplication.class, args);
+        applicationContext.getBean(EartagServer.class).run();
+    }
+    @Bean
+    public static RestTemplate getRestTemplate(){
+        return new RestTemplate();
     }
 }

+ 16 - 1
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/controller/EartagDataController.java

@@ -1,10 +1,18 @@
 package com.huimv.eartag2.manage2.controller;
 
 
+import com.huimv.eartag2.common.utils.Result;
+import com.huimv.eartag2.manage2.pojo.EartagData;
+import com.huimv.eartag2.manage2.service.EartagDataService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.Map;
+
 /**
  * <p>
  *  前端控制器
@@ -14,8 +22,15 @@ import org.springframework.web.bind.annotation.RestController;
  * @since 2022-07-18
  */
 @RestController
-@RequestMapping("/eartag-data")
+@RequestMapping("/eartagData")
 public class EartagDataController {
+    @Autowired
+    private EartagDataService eartagDataService;
+
+    @PostMapping("getEnvByTime")
+    public Result getEnvByTime(@RequestBody Map<String,String> map){
+       return eartagDataService.getEnvByTime(map);
+    }
 
 }
 

+ 84 - 10
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/controller/SysBaseConfigController.java

@@ -1,21 +1,95 @@
 package com.huimv.eartag2.manage2.controller;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
+import com.huimv.eartag2.common.utils.Result;
+import com.huimv.eartag2.manage2.service.SysBaseConfigService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.web.bind.annotation.*;
 
-import org.springframework.web.bind.annotation.RestController;
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
 
 /**
- * <p>
- *  前端控制器
- * </p>
- *
- * @author zn
- * @since 2022-07-19
+ * @Description: 系统基础配置
+ * @Author: 静静
+ * @CreateTime: 2022-07-19  09:14
+ * @Version: 1.0
  */
 @RestController
-@RequestMapping("/sys-base-config")
+@RequestMapping(value = "/config")
+@Slf4j
 public class SysBaseConfigController {
 
-}
+    @Resource
+    private SysBaseConfigService sysBaseConfigService;
+
+    /**
+     * @description: 【增加】
+     * @author: 静静
+     * @date: 2022/7/19 5:08 下午
+     * @param: maps
+     **/
+    @PostMapping("/add")
+    public Result addConfig(@RequestBody List<Map<String, String>> maps){
+        return sysBaseConfigService.add(maps);
+    }
+
+    /**
+     * @description: 【删除】
+     * @author: 静静
+     * @date: 2022/7/19 5:10 下午
+     * @param: ids
+     **/
+    @PostMapping("/remove")
+    public Result removeConfig(@RequestBody List<String> ids){
+        return sysBaseConfigService.remove(ids);
+    }
+
+    /**
+     * @description: 【修改】
+     * @author: 静静
+     * @date: 2022/7/19 5:10 下午
+     * @param: maps
+     **/
+    @PostMapping("/update")
+    public Result updateConfig(@RequestBody  List<Map<String, String>> maps){
+        return sysBaseConfigService.update(maps);
+    }
+
+    /**
+     * @description: 【查询】根据id查询配置
+     * @author: 静静
+     * @date: 2022/7/19 5:11 下午
+     * @param: ids
+     **/
+    @GetMapping("/getDateById")
+    public Result getDateById(@Param("id") String id){
+        return sysBaseConfigService.getDateById(id);
+    }
 
+
+    /**
+     * @description: 【查询】 分页查询配置表
+     * @author: 静静
+     * @date: 2022/7/19 5:11 下午
+     * @param: paramsMap
+     **/
+    @PostMapping("/list")
+    public Result list(@RequestBody Map<String,String> paramsMap){
+        return sysBaseConfigService.list(paramsMap);
+    }
+
+    /**
+     * @description: 【数据同步】 将牧场数据同步到注册中心
+     * @author: 静静
+     * @date: 2022/7/20 3:37 下午
+     * @param: farmCode
+     **/
+    @PostMapping("/sync")
+    public Result syncConfig(@RequestBody Map<String,String> paramsMap){
+        return sysBaseConfigService.syncCong(paramsMap);
+    }
+
+}

+ 2 - 2
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/mapper/EartagDeviceRegisterMapper.java

@@ -8,8 +8,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  *  Mapper 接口
  * </p>
  *
- * @author zn
- * @since 2022-07-22
+ * @author author
+ * @since 2022-07-20
  */
 public interface EartagDeviceRegisterMapper extends BaseMapper<EartagDeviceRegister> {
 

+ 16 - 0
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/mapper/EartagEartagRegisterMapper.java

@@ -0,0 +1,16 @@
+package com.huimv.eartag2.manage2.mapper;
+
+import com.huimv.eartag2.manage2.pojo.EartagEartagRegister;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2022-07-20
+ */
+public interface EartagEartagRegisterMapper extends BaseMapper<EartagEartagRegister> {
+
+}

+ 10 - 0
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/mapper/SysBaseConfigMapper.java

@@ -2,6 +2,10 @@ package com.huimv.eartag2.manage2.mapper;
 
 import com.huimv.eartag2.manage2.pojo.SysBaseConfig;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import io.lettuce.core.dynamic.annotation.Param;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
 
 /**
  * <p>
@@ -11,6 +15,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @author zn
  * @since 2022-07-19
  */
+
+@Component
 public interface SysBaseConfigMapper extends BaseMapper<SysBaseConfig> {
 
+    List<SysBaseConfig> selectByRowIdList(@Param("rowIds") List<String> rowIds);
+
+    List<SysBaseConfig> selectSysBaseConfig(String rowId);
+
 }

+ 0 - 5
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/mapper/xml/EartagDeviceRegisterMapper.xml

@@ -28,9 +28,4 @@
         <result column="sync_time" property="syncTime" />
     </resultMap>
 
-    <!-- 通用查询结果列 -->
-    <sql id="Base_Column_List">
-        id, device_code, chip_id, county_code, county_name, farm_id, farm_name, type_f, stage, pigpen_id, unit_id, register_time, last_time, active_status, active_time, device_status, device_alias, location, remark, create_date, update_type, sync_time
-    </sql>
-
 </mapper>

+ 25 - 0
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/mapper/xml/EartagEartagRegisterMapper.xml

@@ -0,0 +1,25 @@
+<?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.huimv.eartag2.manage2.mapper.EartagEartagRegisterMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.huimv.eartag2.manage2.pojo.EartagEartagRegister">
+        <id column="id" property="id" />
+        <result column="earmark" property="earmark" />
+        <result column="first_time" property="firstTime" />
+        <result column="last_time" property="lastTime" />
+        <result column="first_device" property="firstDevice" />
+        <result column="belong_device" property="belongDevice" />
+        <result column="last_device" property="lastDevice" />
+        <result column="register_time" property="registerTime" />
+        <result column="register_type" property="registerType" />
+        <result column="remark" property="remark" />
+        <result column="farm_id" property="farmId" />
+        <result column="active_status" property="activeStatus" />
+        <result column="active_time" property="activeTime" />
+        <result column="live_status" property="liveStatus" />
+        <result column="create_date" property="createDate" />
+        <result column="bat" property="bat" />
+    </resultMap>
+
+</mapper>

+ 21 - 2
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/mapper/xml/SysBaseConfigMapper.xml

@@ -8,13 +8,32 @@
         <result column="config_name" property="configName" />
         <result column="config_key" property="configKey" />
         <result column="config_value" property="configValue" />
-        <result column="area_name" property="areaName" />
         <result column="row_id" property="rowId" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, config_name, config_key, config_value, area_name, row_id
+        id, config_name, config_key, config_value, row_id
     </sql>
 
+    <select id="selectByRowIdList" resultMap="BaseResultMap" parameterType="list">
+        select id, config_name, config_key, config_value, row_id
+        from sys_base_config
+
+        <where>
+            <if test=" rowIds != null and rowIds.size > 0 ">
+                AND row_id in
+                <foreach item="item" collection="rowIds" separator="," open="(" close=")" index="">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+    </select>
+
+    <select id="selectSysBaseConfig" resultMap="BaseResultMap" parameterType="String">
+         select id, config_name, config_key, config_value, row_id
+         from sys_base_config
+         where row_id = #{rowId}
+    </select>
+
 </mapper>

+ 111 - 0
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/netty/EartagServer.java

@@ -0,0 +1,111 @@
+package com.huimv.eartag2.manage2.netty;
+
+import io.netty.bootstrap.ServerBootstrap;
+import io.netty.buffer.ByteBuf;
+import io.netty.channel.*;
+import io.netty.channel.nio.NioEventLoopGroup;
+import io.netty.channel.socket.SocketChannel;
+import io.netty.channel.socket.nio.NioServerSocketChannel;
+import io.netty.handler.logging.LogLevel;
+import io.netty.handler.logging.LoggingHandler;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+@Component
+public class EartagServer {
+    @Autowired
+    private EartagServerHandler2 serverHandler;
+    //监听端口
+    private int port = 10023;
+    private int port2 = 10024;
+    //创建构造方法
+    public EartagServer(){
+    }
+
+    public static void main(String[] args) throws InterruptedException {
+        new EartagServer().run();
+    }
+/**
+ *
+ * 功能描述: 启动方法前台多个服务  处理多个线程
+ *
+ * @param:
+ * @return:
+ * @auther: LiGang
+ * @date: 2019/3/26 11:31
+ */
+    /**
+     * 启动流程
+     */
+    public void run() throws InterruptedException {
+        //配置服务端线程组
+        EventLoopGroup bossGroup=new NioEventLoopGroup();
+        EventLoopGroup workGroup=new NioEventLoopGroup();
+
+        try{
+            //引导整个server的启动
+            ServerBootstrap serverBootstrap = new ServerBootstrap();
+
+           serverBootstrap.group(bossGroup, workGroup)
+                    .channel(NioServerSocketChannel.class)    //指定处理的连接类型
+                    .option(ChannelOption.SO_REUSEADDR, true)
+                    .childHandler(new ChannelInitializer<SocketChannel>() {
+                        @Override
+                        protected void initChannel(SocketChannel socketChannel) throws Exception {
+                            socketChannel.pipeline().addLast(serverHandler);
+                        }
+                    });
+            System.out.println("# 耳标及采集器设备数据接收服务器已经启动。#");
+            System.out.println("# 准备接收数据:");
+            //绑定端口,同步等待成功
+            ChannelFuture cf = serverBootstrap.bind(port).sync();
+            ChannelFuture cf2 = serverBootstrap.bind(port2).sync();
+            // 等待服务端监听端口关闭
+            cf.channel().closeFuture().sync();
+            cf2.channel().closeFuture().sync();
+        }finally {
+            //优雅的退出
+            bossGroup.shutdownGracefully();
+            workGroup.shutdownGracefully();
+        }
+    }
+
+    public void run2() throws InterruptedException {
+        ServerBootstrap b = new ServerBootstrap();
+        EventLoopGroup bossGroup = new NioEventLoopGroup();
+        EventLoopGroup workerGroup = new NioEventLoopGroup();
+
+        b.group(bossGroup, workerGroup).channel(NioServerSocketChannel.class)
+                .option(ChannelOption.SO_REUSEADDR, true)
+                .childHandler(new ChannelInitializer() {
+                    @Override
+                    protected void initChannel(Channel ch) throws Exception {
+                        ch.pipeline()
+                                .addLast("logging", new LoggingHandler(LogLevel.INFO))
+                                .addLast(new SimpleChannelInboundHandler() {
+                                    @Override
+                                    protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Exception {
+                                        ByteBuf data = (ByteBuf) msg;
+                                        String clientAskText = data.toString(io.netty.util.CharsetUtil.UTF_8);
+//                                        String strMsg = msg.toString(CharsetUtil.UTF_8);
+                                        System.out.println("clientAskText>>"+clientAskText);
+                                    }
+                                });
+                    }
+                });
+
+//        b.bind(port).sync();
+//        System.out.println("tcp server("+port+") is started..");
+
+        b.bind(port2).sync();
+        System.out.println("tcp server("+port2+") is started..");
+    }
+}

+ 139 - 0
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/netty/EartagServerHandler2.java

@@ -0,0 +1,139 @@
+package com.huimv.eartag2.manage2.netty;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.json.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.huimv.eartag2.manage2.pojo.EartagDeviceRegister;
+import com.huimv.eartag2.manage2.pojo.EartagEartagRegister;
+import com.huimv.eartag2.manage2.service.IEartagDeviceRegisterService;
+import com.huimv.eartag2.manage2.service.IEartagEartagRegisterService;
+import io.netty.buffer.ByteBuf;
+import io.netty.buffer.Unpooled;
+import io.netty.channel.ChannelHandler;
+import io.netty.channel.ChannelHandlerContext;
+import io.netty.channel.ChannelInboundHandlerAdapter;
+import io.netty.util.CharsetUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+import org.springframework.web.client.RestTemplate;
+
+import java.text.ParseException;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+@ChannelHandler.Sharable
+@Component
+@Slf4j
+public class EartagServerHandler2 extends ChannelInboundHandlerAdapter {
+    private StringBuilder askTextSb = null;
+@Autowired
+private IEartagEartagRegisterService eartagRegisterService;
+    @Autowired
+    private IEartagDeviceRegisterService deviceRegisterService;
+
+    @Autowired
+    private RestTemplate restTemplate ;
+    //
+    public void appendClientAsk(String text){
+        if(this.askTextSb == null){
+            askTextSb = new StringBuilder();
+        }
+        askTextSb.append(text);
+    }
+
+    @Override
+    public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
+        ByteBuf data = (ByteBuf) msg;
+        String clientAskText = data.toString(CharsetUtil.UTF_8);
+//        System.out.println((++num)+"次, 客户端消息clientAskText>>"+clientAskText);
+        //保存实例内的客户端请求
+        appendClientAsk(clientAskText);
+    }
+
+    @Override
+    public void channelReadComplete(ChannelHandlerContext ctx) throws Exception {
+//        ctx.writeAndFlush("111");
+//        System.out.println("EchoServerHandle channelReadComplete");
+        if(askTextSb.toString().indexOf("end") != -1){
+//            System.out.println("askTextSb.内容()>>"+askTextSb.toString());
+//            System.out.println("askTextSb.内容长度>>"+askTextSb.length());
+//            System.out.println("输入完成.");
+            // 处理客户端消息
+            handleClientEartagMessage(askTextSb.toString(),ctx);
+            //清空重置;
+            askTextSb.delete(0,askTextSb.length());
+//            System.out.println("清空sb实例. 长度>>"+askTextSb.length());
+        }
+    }
+
+    @Override
+    public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
+//        System.out.println("cause.getMessage()>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"+cause.getMessage());
+        if(cause.getMessage().indexOf("Connection reset") != -1){
+            log.info("相关采集器设备正在重启:"+cause.toString());
+        }
+//        cause.printStackTrace();
+        ctx.close();
+    }
+
+
+
+    private   void handleClientEartagMessage(String clientAskText, ChannelHandlerContext ctx) throws ParseException, JsonProcessingException {
+        clientAskText = clientAskText.replaceAll("\r","").replaceAll("\n","");
+        System.out.println("clientAskText--------------->" +clientAskText);
+//hm+7+868977051335099+122083123610011+0+end
+
+        String[] split = clientAskText.split("\\+");
+
+
+//        if ("6".equals(split[1])){
+//
+//            System.out.println("pliersDemo------------->" +clientAskText);
+//            ctx.writeAndFlush(Unpooled.copiedBuffer("hm+6+0+115.238.57.190+8013+8+end".getBytes()));
+//        }
+
+        if ("7".equals(split[1])){
+
+
+            //hm+7+868977051335099+122083123610011+22450+184902913+0+end
+            String eartag = split[3];
+            String device = split[2];
+            EartagDeviceRegister deviceRegister = deviceRegisterService.getOne(new QueryWrapper<EartagDeviceRegister>().eq("device_code", device));
+            if(ObjectUtil.isNotEmpty(deviceRegister)){
+                EartagEartagRegister eartagEartagRegister = new EartagEartagRegister();
+                eartagEartagRegister.setEarmark(eartag);
+                eartagEartagRegister.setFirstDevice(device);
+                eartagEartagRegister.setRegisterTime(new Date());
+                eartagEartagRegister.setRegisterType(2);
+                eartagEartagRegister.setFarmId(deviceRegister.getFarmId());
+                eartagEartagRegister.setCreateDate(new Date());
+
+                eartagRegisterService.save(eartagEartagRegister);
+                ctx.writeAndFlush(Unpooled.copiedBuffer("hm+7+8+end".getBytes()));
+            }
+
+
+
+
+
+        }
+
+    }
+
+
+//hm+7+868977051335099+122083123610011+0+end
+    //hm+6+868977051335099+0+end
+
+}

+ 7 - 4
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/pojo/EartagData.java

@@ -5,6 +5,8 @@ import java.util.Date;
 import com.baomidou.mybatisplus.annotation.Version;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.io.Serializable;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -47,16 +49,17 @@ public class EartagData implements Serializable {
 
     private Integer signal1;
 
-    private String askTime;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date askTime;
 
     private String other;
-
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
     private Date addTime;
-
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
     private Date createDate;
 
     private String farmId;
-
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
     private Date askDate;
 
 

+ 15 - 11
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/pojo/EartagDeviceRegister.java

@@ -1,28 +1,32 @@
 package com.huimv.eartag2.manage2.pojo;
 
+import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
-import java.util.Date;
-import com.baomidou.mybatisplus.annotation.Version;
+import java.time.LocalDate;
 import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
 import java.io.Serializable;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
 
 /**
  * <p>
  * 
  * </p>
  *
- * @author zn
- * @since 2022-07-22
+ * @author author
+ * @since 2022-07-20
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("eartag_device_register")
 public class EartagDeviceRegister implements Serializable {
 
-    private static final long serialVersionUID=1L;
+    private static final long serialVersionUID = 1L;
 
-      @TableId(value = "id", type = IdType.AUTO)
+    @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
 
     private String deviceCode;
@@ -45,13 +49,13 @@ public class EartagDeviceRegister implements Serializable {
 
     private Integer unitId;
 
-    private Date registerTime;
+    private LocalDateTime registerTime;
 
-    private Date lastTime;
+    private LocalDateTime lastTime;
 
     private Integer activeStatus;
 
-    private Date activeTime;
+    private LocalDateTime activeTime;
 
     private Integer deviceStatus;
 
@@ -61,11 +65,11 @@ public class EartagDeviceRegister implements Serializable {
 
     private String remark;
 
-    private Date createDate;
+    private LocalDate createDate;
 
     private String updateType;
 
-    private Date syncTime;
+    private LocalDateTime syncTime;
 
 
 }

+ 65 - 0
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/pojo/EartagEartagRegister.java

@@ -0,0 +1,65 @@
+package com.huimv.eartag2.manage2.pojo;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.time.LocalDate;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author author
+ * @since 2022-07-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("eartag_eartag_register")
+public class EartagEartagRegister implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String earmark;
+
+    private LocalDateTime firstTime;
+
+    private LocalDateTime lastTime;
+
+    private String firstDevice;
+
+    private String belongDevice;
+
+    private String lastDevice;
+
+    private Date registerTime;
+
+    private Integer registerType;
+
+    private String remark;
+
+    private String farmId;
+
+    private Integer activeStatus;
+
+    private LocalDateTime activeTime;
+
+    private Integer liveStatus;
+
+    private Date createDate;
+
+    private Integer bat;
+
+
+}

+ 0 - 2
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/pojo/SysBaseConfig.java

@@ -30,8 +30,6 @@ public class SysBaseConfig implements Serializable {
 
     private String configValue;
 
-    private String areaName;
-
     private String rowId;
 
 

+ 4 - 0
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/EartagDataService.java

@@ -1,8 +1,11 @@
 package com.huimv.eartag2.manage2.service;
 
+import com.huimv.eartag2.common.utils.Result;
 import com.huimv.eartag2.manage2.pojo.EartagData;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.Map;
+
 /**
  * <p>
  *  服务类
@@ -13,4 +16,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface EartagDataService extends IService<EartagData> {
 
+    Result getEnvByTime(Map<String, String> map);
 }

+ 16 - 0
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/IEartagDeviceRegisterService.java

@@ -0,0 +1,16 @@
+package com.huimv.eartag2.manage2.service;
+
+import com.huimv.eartag2.manage2.pojo.EartagDeviceRegister;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author author
+ * @since 2022-07-20
+ */
+public interface IEartagDeviceRegisterService extends IService<EartagDeviceRegister> {
+
+}

+ 16 - 0
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/IEartagEartagRegisterService.java

@@ -0,0 +1,16 @@
+package com.huimv.eartag2.manage2.service;
+
+import com.huimv.eartag2.manage2.pojo.EartagEartagRegister;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author author
+ * @since 2022-07-20
+ */
+public interface IEartagEartagRegisterService extends IService<EartagEartagRegister> {
+
+}

+ 16 - 0
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/SysBaseConfigService.java

@@ -1,8 +1,12 @@
 package com.huimv.eartag2.manage2.service;
 
+import com.huimv.eartag2.common.utils.Result;
 import com.huimv.eartag2.manage2.pojo.SysBaseConfig;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * <p>
  *  服务类
@@ -13,4 +17,16 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface SysBaseConfigService extends IService<SysBaseConfig> {
 
+    Result add(List<Map<String, String>> mapList);
+
+    Result remove(List<String> id);
+
+    Result update(List<Map<String, String>> maps);
+
+    Result list(Map<String,String> paramsMap);
+
+    Result getDateById(String ids);
+
+    Result syncCong(Map<String,String> paramsMap);
+
 }

+ 34 - 0
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/impl/EartagDataServiceImpl.java

@@ -1,11 +1,20 @@
 package com.huimv.eartag2.manage2.service.impl;
 
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.huimv.eartag2.common.utils.Result;
+import com.huimv.eartag2.common.utils.ResultCode;
 import com.huimv.eartag2.manage2.pojo.EartagData;
 import com.huimv.eartag2.manage2.mapper.EartagDataMapper;
 import com.huimv.eartag2.manage2.service.EartagDataService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
 /**
  * <p>
  *  服务实现类
@@ -17,4 +26,29 @@ import org.springframework.stereotype.Service;
 @Service
 public class EartagDataServiceImpl extends ServiceImpl<EartagDataMapper, EartagData> implements EartagDataService {
 
+    @Override
+    public Result getEnvByTime(Map<String, String> map) {
+        String earmark = map.get("earmark");
+        String startDate = map.get("startDate");
+        String endDate = map.get("endDate");
+        Date now = new Date();
+
+        if (StringUtils.isBlank(earmark)){
+            return new Result(10001,"请选择耳标",false);
+        }
+        QueryWrapper<EartagData> wrapper = new QueryWrapper<>();
+        wrapper.eq("earmark",earmark);
+        if (StringUtils.isBlank(startDate)){
+            wrapper.ge("ask_time", DateUtil.beginOfDay(now));
+        }else {
+            wrapper.between("ask_time",startDate,endDate);
+        }
+
+        wrapper.orderByAsc("ask_time");
+        List<EartagData> list = this.list(wrapper);
+
+        return new Result(ResultCode.SUCCESS,list);
+    }
+
+
 }

+ 4 - 4
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/impl/EartagDeviceRegisterServiceImpl.java

@@ -2,7 +2,7 @@ package com.huimv.eartag2.manage2.service.impl;
 
 import com.huimv.eartag2.manage2.pojo.EartagDeviceRegister;
 import com.huimv.eartag2.manage2.mapper.EartagDeviceRegisterMapper;
-import com.huimv.eartag2.manage2.service.EartagDeviceRegisterService;
+import com.huimv.eartag2.manage2.service.IEartagDeviceRegisterService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
@@ -11,10 +11,10 @@ import org.springframework.stereotype.Service;
  *  服务实现类
  * </p>
  *
- * @author zn
- * @since 2022-07-22
+ * @author author
+ * @since 2022-07-20
  */
 @Service
-public class EartagDeviceRegisterServiceImpl extends ServiceImpl<EartagDeviceRegisterMapper, EartagDeviceRegister> implements EartagDeviceRegisterService {
+public class EartagDeviceRegisterServiceImpl extends ServiceImpl<EartagDeviceRegisterMapper, EartagDeviceRegister> implements IEartagDeviceRegisterService {
 
 }

+ 20 - 0
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/impl/EartagEartagRegisterServiceImpl.java

@@ -0,0 +1,20 @@
+package com.huimv.eartag2.manage2.service.impl;
+
+import com.huimv.eartag2.manage2.pojo.EartagEartagRegister;
+import com.huimv.eartag2.manage2.mapper.EartagEartagRegisterMapper;
+import com.huimv.eartag2.manage2.service.IEartagEartagRegisterService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2022-07-20
+ */
+@Service
+public class EartagEartagRegisterServiceImpl extends ServiceImpl<EartagEartagRegisterMapper, EartagEartagRegister> implements IEartagEartagRegisterService {
+
+}

+ 172 - 0
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/impl/SysBaseConfigServiceImpl.java

@@ -1,11 +1,21 @@
 package com.huimv.eartag2.manage2.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.eartag2.common.utils.Result;
+import com.huimv.eartag2.common.utils.ResultCode;
 import com.huimv.eartag2.manage2.pojo.SysBaseConfig;
 import com.huimv.eartag2.manage2.mapper.SysBaseConfigMapper;
 import com.huimv.eartag2.manage2.service.SysBaseConfigService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.huimv.eartag2.manage2.vo.SysBaseConfigVo;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+import java.util.*;
+import java.util.stream.Collectors;
+
 /**
  * <p>
  *  服务实现类
@@ -17,4 +27,166 @@ import org.springframework.stereotype.Service;
 @Service
 public class SysBaseConfigServiceImpl extends ServiceImpl<SysBaseConfigMapper, SysBaseConfig> implements SysBaseConfigService {
 
+    @Resource
+    private SysBaseConfigMapper sysBaseConfigMapper;
+
+    @Resource
+    RabbitTemplate rabbitTemplate;
+
+    @Override
+    public Result add(List<Map<String, String>> mapList) {
+        //SysBaseConfigEntity
+        //存入数据库
+        String fitId = UUID.randomUUID().toString();
+        for (Map<String, String> stringStringMap : mapList) {
+            SysBaseConfig sysBaseConfigEntity = new SysBaseConfig();
+            sysBaseConfigEntity.setConfigName(stringStringMap.get("configName"));
+            sysBaseConfigEntity.setConfigKey(stringStringMap.get("configKey"));
+            sysBaseConfigEntity.setConfigValue(stringStringMap.get("configValue"));
+            sysBaseConfigEntity.setRowId(fitId);
+            sysBaseConfigMapper.insert(sysBaseConfigEntity);
+        }
+        return new Result(ResultCode.SUCCESS);
+    }
+
+    @Override
+    public Result remove(List<String> id) {
+        //先根据row_id查询出对应的数据
+        List<SysBaseConfig> sysBaseConfigs = sysBaseConfigMapper.selectByRowIdList(id);
+        List<Integer> ids = sysBaseConfigs.stream().map(SysBaseConfig::getId).collect(Collectors.toList());
+        sysBaseConfigMapper.deleteBatchIds(ids);
+        return new Result(ResultCode.SUCCESS);
+    }
+
+    @Override
+    public Result update(List<Map<String, String>> maps) {
+        String rowId = maps.get(0).get("id");
+
+        List<SysBaseConfig> sysBaseConfigs = sysBaseConfigMapper.selectSysBaseConfig(rowId);
+
+        HashMap<String, String> stringHashMap = new HashMap<>();
+        for (Map<String, String> map : maps) {
+            if ("farmName".equals(map.get("configKey"))){
+                stringHashMap.put("farmName",map.get("configValue"));
+            }
+            if ("ip".equals(map.get("configKey"))){
+                stringHashMap.put("ip",map.get("configValue"));
+            }
+            if ("port".equals(map.get("configKey"))){
+                stringHashMap.put("port",map.get("configValue"));
+            }
+            if ("farmCode".equals(map.get("configKey"))){
+                stringHashMap.put("farmCode",map.get("configValue"));
+            }
+            if ("areaName".equals(map.get("configKey"))){
+                stringHashMap.put("areaName",map.get("configValue"));
+            }
+        }
+
+        for (SysBaseConfig sysBaseConfig : sysBaseConfigs) {
+            if ("farmCode".equals(sysBaseConfig.getConfigKey())){
+                sysBaseConfig.setConfigValue(stringHashMap.get("farmCode"));
+            }
+            if ("ip".equals(sysBaseConfig.getConfigKey())){
+                sysBaseConfig.setConfigValue(stringHashMap.get("ip"));
+            }
+            if ("farmName".equals(sysBaseConfig.getConfigKey())){
+                sysBaseConfig.setConfigValue(stringHashMap.get("farmName"));
+            }
+            if ("port".equals(sysBaseConfig.getConfigKey())){
+                sysBaseConfig.setConfigValue(stringHashMap.get("port"));
+            }
+            if ("areaName".equals(sysBaseConfig.getConfigKey())){
+                sysBaseConfig.setConfigValue(stringHashMap.get("areaName"));
+            }
+            sysBaseConfigMapper.updateById(sysBaseConfig);
+        }
+        return new Result(ResultCode.SUCCESS);
+    }
+
+    @Override
+    public Result list(Map<String, String> paramsMap) {
+        //先分页查询
+
+       // Page<SysBaseConfig> page = new Page<>(pageNo, Integer.valueOf(paramsMap.get("pageSize")));
+        QueryWrapper<SysBaseConfig> queryWrapper = new QueryWrapper<>();
+        queryWrapper.like(StringUtils.isNotBlank(paramsMap.get("farmName")),"config_value", paramsMap.get("farmName"));
+        queryWrapper.like(StringUtils.isNotBlank(paramsMap.get("farmCode")),"config_value", paramsMap.get("farmCode"));
+        queryWrapper.like(StringUtils.isNotBlank(paramsMap.get("ip")),"config_value", paramsMap.get("ip"));
+        //创建时间降序
+        queryWrapper.orderByDesc("id");
+
+        //获取到的只是当前传入参数的值的那条数据、需要再根据每个对象中的row_id获取到当前一组的数据、再进行拼装
+        List<SysBaseConfig> pageBizDeviceRegister = sysBaseConfigMapper.selectList(queryWrapper);
+
+        List<String> rowIds = pageBizDeviceRegister.stream().map(SysBaseConfig::getRowId).collect(Collectors.toList());
+
+        //根据row_id分组查询数据
+        List<SysBaseConfig> sysBaseConfigs = sysBaseConfigMapper.selectByRowIdList(rowIds);
+        //将查询出来的数据  按照row_id进行分组
+        Map<String, List<SysBaseConfig>> groupResult = sysBaseConfigs.stream().collect(Collectors.groupingBy(SysBaseConfig::getRowId));
+
+        Set<String> strings = groupResult.keySet();
+
+        //最终返回的拼装好的数据
+        ArrayList<SysBaseConfigVo> resultList = new ArrayList<>();
+        strings.forEach(rId->{
+            List<SysBaseConfig> sysBaseConfigEntities = groupResult.get(rId);
+            SysBaseConfigVo sysBaseConfigVo = convertSysBaseConfigVo(sysBaseConfigEntities);
+            resultList.add(sysBaseConfigVo);
+        });
+
+        return new Result(ResultCode.SUCCESS,resultList);
+
+    }
+
+    @Override
+    public Result getDateById(String ids) {
+        List<SysBaseConfig> sysBaseConfigs = sysBaseConfigMapper.selectSysBaseConfig(ids);
+        SysBaseConfigVo sysBaseConfigVo = convertSysBaseConfigVo(sysBaseConfigs);
+        return new Result(ResultCode.SUCCESS,sysBaseConfigVo);
+    }
+
+    //同步牧场配置消息
+    public final static String EXCHANGE_SYNC_SYS_CONFIG = "topic.syncSysConfig.exchange";
+    public final static String ROUTING_KEY_SYNC_SYS_CONFIG = "topic.syncSysConfig.routeKey";
+
+    @Override
+    public Result syncCong(Map<String,String> paramsMap) {
+        String farmCode = paramsMap.get("farmId");
+        //查询牧场信息
+        QueryWrapper<SysBaseConfig> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(StringUtils.isNotBlank(farmCode),"config_value", farmCode);
+        List<SysBaseConfig> sysBaseConfigs = sysBaseConfigMapper.selectList(queryWrapper);
+        String rowId = "";
+        if (null == sysBaseConfigs || sysBaseConfigs.size() == 0){
+            return new Result(ResultCode.FAIL);
+        }else {
+            rowId = sysBaseConfigs.get(0).getRowId();
+        }
+        List<SysBaseConfig> syncDate = sysBaseConfigMapper.selectSysBaseConfig(rowId);
+        SysBaseConfigVo sysBaseConfigVo = convertSysBaseConfigVo(syncDate);
+        paramsMap.put("farmName",sysBaseConfigVo.getFarmName());
+        paramsMap.put("farmCode",sysBaseConfigVo.getFarmCode());
+        paramsMap.put("ip",sysBaseConfigVo.getIp());
+        paramsMap.put("port",sysBaseConfigVo.getPort());
+        paramsMap.put("areaName",sysBaseConfigVo.getAreaName());
+        rabbitTemplate.convertAndSend(EXCHANGE_SYNC_SYS_CONFIG,ROUTING_KEY_SYNC_SYS_CONFIG,paramsMap);
+        System.out.println("--------------------------------------- 发送设备请求原始数据 >>"+paramsMap);
+        return new Result(ResultCode.SUCCESS);
+    }
+
+    private SysBaseConfigVo convertSysBaseConfigVo(List<SysBaseConfig> list){
+        Map<String, String> map = list.stream().collect(Collectors.toMap(SysBaseConfig::getConfigKey, SysBaseConfig::getConfigValue,(item1,item2) ->item1));
+        SysBaseConfigVo sysBaseConfigVo = new SysBaseConfigVo();
+        sysBaseConfigVo.setId(list.get(0).getRowId());
+        sysBaseConfigVo.setFarmCode(map.get("farmCode"));
+        sysBaseConfigVo.setFarmName(map.get("farmName"));
+        sysBaseConfigVo.setIp(map.get("ip"));
+        sysBaseConfigVo.setPort(map.get("port"));
+        sysBaseConfigVo.setAreaName(map.get("areaName"));
+        return sysBaseConfigVo;
+
+    }
+
 }

+ 31 - 0
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/vo/SysBaseConfigVo.java

@@ -0,0 +1,31 @@
+package com.huimv.eartag2.manage2.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @Description: 系统配置页面展示字段
+ * @Author: 静静
+ * @CreateTime: 2022-07-19  13:29
+ * @Version: 1.0
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class SysBaseConfigVo {
+
+    private String id;
+
+    private String farmName;
+
+    private String farmCode;
+
+    private String ip;
+
+    private String port;
+
+    private String areaName;
+
+
+}

+ 4 - 4
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/resources/application-dev2.yml

@@ -1,5 +1,5 @@
 server:
-  port: 8096
+  port: 8099
 spring:
   application:
     name: huimv-eartag2-manage
@@ -18,13 +18,13 @@ spring:
     open-in-view: true
 
   rabbitmq:
-    host: 192.168.1.170
-#    host: 192.168.1.75
+    host: 121.36.134.218
+    #    host: 10.0.0.14
     port: 5672
     username: admin
     password: admin
     #虚拟host 可以不设置,使用server默认host
-    virtual-host: /
+    virtual-host: /registration_center
     listener:
       simple:
         acknowledge-mode: none