From 9934bdd6043c55155fea761d0dd687c443849b4b Mon Sep 17 00:00:00 2001
From: jiazx0107@163.com <jiazx0107@163.com>
Date: 星期二, 31 十月 2023 17:53:57 +0800
Subject: [PATCH] 四川省网关接口相关13

---
 src/main/java/com/fzzy/gateway/hx2023/service/HxGatewaySyncGrainImpl.java  |    4 
 src/main/java/com/fzzy/conf/KafkaConfig.java                               |   82 +++++++
 src/main/java/com/fzzy/gateway/api/DeviceReportService.java                |    4 
 src/main/java/com/fzzy/gateway/service/GatewayDeviceService.java           |  127 +++++++----
 src/main/resources/logback-spring.xml                                      |   52 ++++
 src/main/java/com/fzzy/gateway/api/GatewaySyncGranService.java             |    4 
 src/main/java/com/fzzy/gateway/hx2023/data/KafkaGrainTH.java               |   24 ++
 pom.xml                                                                    |    2 
 /dev/null                                                                  |   57 -----
 src/main/java/com/fzzy/gateway/hx2023/data/KafkaGrainDataDetail.java       |   58 +++++
 src/main/resources/application-devGateway.yml                              |   75 ++++++
 src/main/java/com/fzzy/gateway/hx2023/data/KafaGrainData.java              |   20 
 src/main/java/com/fzzy/gateway/hx2023/kafka/KafkaDeviceReport.java         |    4 
 src/main/resources/application-proGateway.yml                              |   81 +++++++
 src/main/java/com/fzzy/gateway/hx2023/data/TRHInfo.java                    |   15 +
 src/main/resources/application-dev.yml                                     |   22 -
 src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java |    4 
 src/main/resources/application.yml                                         |    2 
 18 files changed, 501 insertions(+), 136 deletions(-)

diff --git a/pom.xml b/pom.xml
index d5e0c5b..f07fe00 100644
--- a/pom.xml
+++ b/pom.xml
@@ -149,7 +149,7 @@
 		<dependency>
 			<groupId>org.springframework.kafka</groupId>
 			<artifactId>spring-kafka</artifactId>
-			<version>2.2.1.RELEASE</version>
+			<version>2.2.0.RELEASE</version>
 		</dependency>
 
 		<dependency>
diff --git a/src/main/java/com/fzzy/conf/KafkaConfig.java b/src/main/java/com/fzzy/conf/KafkaConfig.java
new file mode 100644
index 0000000..7f4c881
--- /dev/null
+++ b/src/main/java/com/fzzy/conf/KafkaConfig.java
@@ -0,0 +1,82 @@
+package com.fzzy.conf;
+
+import lombok.AllArgsConstructor;
+import org.apache.kafka.clients.producer.ProducerConfig;
+import org.apache.kafka.common.config.SaslConfigs;
+import org.apache.kafka.common.serialization.IntegerSerializer;
+import org.apache.kafka.common.serialization.StringSerializer;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.kafka.annotation.EnableKafka;
+import org.springframework.kafka.core.DefaultKafkaProducerFactory;
+import org.springframework.kafka.core.KafkaTemplate;
+import org.springframework.kafka.core.ProducerFactory;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@Configuration
+@EnableKafka
+public class KafkaConfig {
+
+    private String defaultSaslJaasConfig="org.apache.kafka.common.security.scram.ScramLoginModule required username=\"{username}\" password=\"{password}\";";
+
+
+    @Value("${spring.kafka.bootstrap-servers}")
+    private String bootstrapServers;
+
+    @Value("${spring.kafka.properties.security.protocol}")
+    private String securityProtocol;
+
+    @Value("${spring.kafka.properties.sasl.mechanism}")
+    private String saslMechanism;
+
+    @Value("${spring.kafka.properties.sasl.jaas.config}")
+    private String saslJaasConfig;
+
+    @Value("${spring.kafka.properties.sasl.username}")
+    private String saslUsername;
+
+    @Value("${spring.kafka.properties.sasl.password}")
+    private String saslPassword;
+
+
+    @Bean
+    public ProducerFactory<String, String> producerFactory() {
+        DefaultKafkaProducerFactory<String, String> producerFactory = new DefaultKafkaProducerFactory<>(producerConfigs());
+        return producerFactory;
+    }
+    @Bean
+    public Map<String, Object> producerConfigs() {
+        Map<String, Object> props = new HashMap<>();
+        props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers);
+        props.put(ProducerConfig.RETRIES_CONFIG, 0);
+        props.put(ProducerConfig.REQUEST_TIMEOUT_MS_CONFIG, 5000);
+        props.put(ProducerConfig.LINGER_MS_CONFIG, 10);
+        props.put(ProducerConfig.BUFFER_MEMORY_CONFIG, 33554432);
+        props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, IntegerSerializer.class);
+        props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
+        props.put(ProducerConfig.MAX_BLOCK_MS_CONFIG, 10000);
+
+
+        props.put("security.protocol", securityProtocol);
+        props.put("sasl.mechanism", saslMechanism);
+        props.put("sasl.username", saslUsername);
+        props.put("sasl.password", saslPassword);
+
+
+      //  props.put("sasl.jaas.config", "org.apache.kafka.common.security.scram.ScramLoginModule required username='sc001' password='wCV0ISwmoKwbx1lpBKMW';");
+
+
+        props.put("sasl.jaas.config",saslJaasConfig);
+
+        return props;
+    }
+
+    @Bean
+    public KafkaTemplate<String, String> kafkaTemplate(ProducerFactory<String, String> producerFactory) {
+        return new KafkaTemplate<>(producerFactory);
+    }
+}
diff --git a/src/main/java/com/fzzy/conf/MyPartitionTemplate.java b/src/main/java/com/fzzy/conf/MyPartitionTemplate.java
deleted file mode 100644
index de6e212..0000000
--- a/src/main/java/com/fzzy/conf/MyPartitionTemplate.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package com.fzzy.conf;
-
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang.StringUtils;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.kafka.core.DefaultKafkaProducerFactory;
-import org.springframework.kafka.core.KafkaTemplate;
-
-import javax.annotation.PostConstruct;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * 鑷畾涔夐厤缃被
- */
-@Slf4j
-@Configuration
-@ConfigurationProperties(prefix = "spring.kafka")
-public class MyPartitionTemplate {
-
-    private String bootstrapServers;
-
-
-    private String securityProtocol;
-
-
-    private String saslMechanism;
-
-
-    private String saslJaasConfig;
-
-
-    private String saslUsername;
-
-
-    private String saslPassword;
-
-    KafkaTemplate<String, String> kafkaTemplate;
-
-    @PostConstruct
-    public void setKafkaTemplate() {
-        Map<String, Object> props = new HashMap<>();
-
-        props.put("bootstrap.servers", bootstrapServers);
-        props.put("security.protocol", securityProtocol);
-        props.put("sasl.mechanism", saslMechanism);
-
-        if (StringUtils.isNotEmpty(saslUsername) && StringUtils.isNotEmpty(saslPassword)) {
-            saslJaasConfig = saslJaasConfig.replace("{username}", saslUsername)
-                    .replace("{password}", saslPassword);
-            props.put("sasl.jaas.config", saslJaasConfig);
-
-            log.debug("----sasl.jaas.config---{}", saslJaasConfig);
-        }
-
-        this.kafkaTemplate = new KafkaTemplate<>(new DefaultKafkaProducerFactory<>(props));
-    }
-
-    public KafkaTemplate<String, String> getKafkaTemplate() {
-        return kafkaTemplate;
-    }
-
-}
diff --git a/src/main/java/com/fzzy/gateway/api/DeviceReportService.java b/src/main/java/com/fzzy/gateway/api/DeviceReportService.java
index a5e5aaf..762cced 100644
--- a/src/main/java/com/fzzy/gateway/api/DeviceReportService.java
+++ b/src/main/java/com/fzzy/gateway/api/DeviceReportService.java
@@ -1,7 +1,7 @@
 package com.fzzy.gateway.api;
 
 import com.fzzy.gateway.entity.GatewayDevice;
-import com.fzzy.gateway.hx2023.data.GrainData;
+import com.fzzy.gateway.hx2023.data.KafaGrainData;
 
 
 public interface DeviceReportService {
@@ -28,6 +28,6 @@
      * @param data
      * @return
      */
-    String pushGrainData2Cloud(GrainData data);
+    String pushGrainData2Cloud(KafaGrainData data);
 
 }
diff --git a/src/main/java/com/fzzy/gateway/api/GatewaySyncGranService.java b/src/main/java/com/fzzy/gateway/api/GatewaySyncGranService.java
index cb8846c..343555f 100644
--- a/src/main/java/com/fzzy/gateway/api/GatewaySyncGranService.java
+++ b/src/main/java/com/fzzy/gateway/api/GatewaySyncGranService.java
@@ -1,7 +1,7 @@
 package com.fzzy.gateway.api;
 
 
-import com.fzzy.gateway.hx2023.data.GrainData;
+import com.fzzy.gateway.hx2023.data.KafaGrainData;
 import com.fzzy.gateway.hx2023.data.*;
 
 /**
@@ -22,7 +22,7 @@
      * @param reqData
      * @return
      */
-    public GrainData syncGrain(SyncReqData reqData);
+    public KafaGrainData syncGrain(SyncReqData reqData);
 
 
 }
diff --git a/src/main/java/com/fzzy/gateway/hx2023/data/GrainDataDetail.java b/src/main/java/com/fzzy/gateway/hx2023/data/GrainDataDetail.java
deleted file mode 100644
index 834a557..0000000
--- a/src/main/java/com/fzzy/gateway/hx2023/data/GrainDataDetail.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.fzzy.gateway.hx2023.data;
-
-import lombok.Data;
-
-/**
- * 绮儏淇℃伅璇︾粏
- */
-@Data
-public class GrainDataDetail {
-
-    //鏍瑰彿
-    private String cableNum;
-
-    //灞傚彿
-    private String layerNumber;
-
-    //绱㈠紩
-    private String position;
-
-    //娓╁害鍊�
-    private String temperature;
-
-    public GrainDataDetail() {
-    }
-
-    public GrainDataDetail(int cableNum, int layerNumber, int position, String temperature) {
-        this.cableNum = cableNum + "";
-        this.layerNumber = layerNumber + "";
-        this.position = position + "";
-        this.temperature = temperature;
-    }
-}
diff --git a/src/main/java/com/fzzy/gateway/hx2023/data/GrainData.java b/src/main/java/com/fzzy/gateway/hx2023/data/KafaGrainData.java
similarity index 65%
rename from src/main/java/com/fzzy/gateway/hx2023/data/GrainData.java
rename to src/main/java/com/fzzy/gateway/hx2023/data/KafaGrainData.java
index 8e73894..d7c2e06 100644
--- a/src/main/java/com/fzzy/gateway/hx2023/data/GrainData.java
+++ b/src/main/java/com/fzzy/gateway/hx2023/data/KafaGrainData.java
@@ -1,14 +1,14 @@
 package com.fzzy.gateway.hx2023.data;
 
+import com.alibaba.fastjson2.JSONObject;
 import lombok.Data;
 
-import java.util.List;
 
 /**
  * 绮儏淇℃伅
  */
 @Data
-public class GrainData {
+public class KafaGrainData {
 
     //娑堟伅 ID
     private String messageId;
@@ -28,22 +28,22 @@
     //妫�娴嬫椂闂�-鏍煎紡锛歽yyy-MM-dd HH:mm:ss
     private String collectTime;
 
-    private String minX = "0";
+    private int minX = 0;
 
-    private String minY = "0";
+    private int minY = 0;
 
-    private String minZ = "0";
+    private int minZ = 0;
 
-    private String maxX = "0";
+    private int maxX = 0;
 
-    private String maxY = "0";
+    private int maxY = 0;
 
-    private String maxZ = "0";
+    private int maxZ = 0;
 
     //妯″潡璇嗗埆鐮�-甯搁噺锛屽浐瀹氫紶 apiTemperature
     private String apISource = "apiTemperature";
 
-    //绮俯璇︾粏
-    private List<GrainDataDetail> temperature;
+
+    private JSONObject params;
 
 }
diff --git a/src/main/java/com/fzzy/gateway/hx2023/data/KafkaGrainDataDetail.java b/src/main/java/com/fzzy/gateway/hx2023/data/KafkaGrainDataDetail.java
new file mode 100644
index 0000000..ba10261
--- /dev/null
+++ b/src/main/java/com/fzzy/gateway/hx2023/data/KafkaGrainDataDetail.java
@@ -0,0 +1,58 @@
+package com.fzzy.gateway.hx2023.data;
+
+import lombok.Data;
+
+/**
+ * 绮儏淇℃伅璇︾粏
+ */
+@Data
+public class KafkaGrainDataDetail {
+
+    //鏍瑰彿
+    private String cableNum;
+
+    //灞傚彿
+    private String layerNumber;
+
+    //娓╁害鍊�
+    private String temperature;
+
+    //绱㈠紩锛屼粠0寮�濮�
+    private String position;
+
+    //璇ユ俯搴︾偣鎵�鍦ㄧ殑鍒�,骞虫柟浠撱�佸湴涓嬩粨蹇呭~
+    private int linex;
+
+    //璇ユ俯搴︾偣鎵�鍦ㄧ殑琛�,骞虫柟浠撱�佸湴涓嬩粨蹇呭~
+    private int rowy;
+
+    //娴呭渾浠撱�佺瓛浠撳繀濉紝绀轰緥锛歿\"totalCircle\":3,\"smallCircle\":\"4,10,16\"}锛宼otalCircle锛氭�诲湀鏁帮紝smallCircle锛氭瘡鍦堟湁鍑犳牴缂�
+    private int total_circle;
+
+
+    //鍏蜂綋鍦堟暟--娴呭渾浠撱�佺瓛浠撳繀濉�
+    private int circle;
+
+    public KafkaGrainDataDetail() {
+    }
+
+    public KafkaGrainDataDetail(String cableNum, String layerNumber, String temperature, String position, int linex, int rowy, int total_circle, int circle) {
+        this.cableNum = cableNum;
+        this.layerNumber = layerNumber;
+        this.temperature = temperature;
+        this.position = position;
+        this.linex = linex;
+        this.rowy = rowy;
+        this.total_circle = total_circle;
+        this.circle = circle;
+    }
+
+    public KafkaGrainDataDetail(String cableNum, String layerNumber, String temperature, String position, int linex, int rowy) {
+        this.cableNum = cableNum;
+        this.layerNumber = layerNumber;
+        this.temperature = temperature;
+        this.position = position;
+        this.linex = linex;
+        this.rowy = rowy;
+    }
+}
diff --git a/src/main/java/com/fzzy/gateway/hx2023/data/KafkaGrainTH.java b/src/main/java/com/fzzy/gateway/hx2023/data/KafkaGrainTH.java
new file mode 100644
index 0000000..e013074
--- /dev/null
+++ b/src/main/java/com/fzzy/gateway/hx2023/data/KafkaGrainTH.java
@@ -0,0 +1,24 @@
+package com.fzzy.gateway.hx2023.data;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ *绮儏淇℃伅娓╂箍搴︿俊鎭�
+ */
+@Data
+public class KafkaGrainTH {
+
+    //浠撴箍
+    private String humidity;
+
+    //浠撴俯
+    private String temperature;
+
+    //姘旀俯
+    private String airTemperature;
+
+    //姘旀箍
+    private String airHumidity;
+}
diff --git a/src/main/java/com/fzzy/gateway/hx2023/data/TRHInfo.java b/src/main/java/com/fzzy/gateway/hx2023/data/TRHInfo.java
new file mode 100644
index 0000000..695ab11
--- /dev/null
+++ b/src/main/java/com/fzzy/gateway/hx2023/data/TRHInfo.java
@@ -0,0 +1,15 @@
+package com.fzzy.gateway.hx2023.data;
+
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class TRHInfo {
+
+    private List<KafkaGrainDataDetail> temperature;
+
+
+    private List<KafkaGrainTH> temperatureAndhumidity;
+}
diff --git a/src/main/java/com/fzzy/gateway/hx2023/kafka/KafkaDeviceReport.java b/src/main/java/com/fzzy/gateway/hx2023/kafka/KafkaDeviceReport.java
index 5fa5291..684bdd8 100644
--- a/src/main/java/com/fzzy/gateway/hx2023/kafka/KafkaDeviceReport.java
+++ b/src/main/java/com/fzzy/gateway/hx2023/kafka/KafkaDeviceReport.java
@@ -1,7 +1,7 @@
 package com.fzzy.gateway.hx2023.kafka;
 
 import com.alibaba.fastjson2.JSONObject;
-import com.fzzy.gateway.hx2023.data.GrainData;
+import com.fzzy.gateway.hx2023.data.KafaGrainData;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -30,7 +30,7 @@
      * @param data
      * @return
      */
-    public String sendGrainData2Cloud(GrainData data) {
+    public String sendGrainData2Cloud(KafaGrainData data) {
 
 
         String strData = JSONObject.toJSONString(data);
diff --git a/src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java b/src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java
index 6051cb7..d321e96 100644
--- a/src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java
+++ b/src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java
@@ -6,7 +6,7 @@
 import com.fzzy.gateway.api.DeviceReportService;
 import com.fzzy.gateway.entity.GatewayDevice;
 import com.fzzy.gateway.hx2023.ScConstant;
-import com.fzzy.gateway.hx2023.data.GrainData;
+import com.fzzy.gateway.hx2023.data.KafaGrainData;
 import com.fzzy.gateway.hx2023.data.WebSocketPacket;
 import com.fzzy.gateway.hx2023.data.WebSocketPacketHeader;
 import com.fzzy.gateway.hx2023.data.WeightInfo;
@@ -77,7 +77,7 @@
     }
 
     @Override
-    public String pushGrainData2Cloud(GrainData data) {
+    public String pushGrainData2Cloud(KafaGrainData data) {
 
         return kafkaDeviceReport.sendGrainData2Cloud(data);
     }
diff --git a/src/main/java/com/fzzy/gateway/hx2023/service/HxGatewaySyncGrainImpl.java b/src/main/java/com/fzzy/gateway/hx2023/service/HxGatewaySyncGrainImpl.java
index 2e0b694..424ff4b 100644
--- a/src/main/java/com/fzzy/gateway/hx2023/service/HxGatewaySyncGrainImpl.java
+++ b/src/main/java/com/fzzy/gateway/hx2023/service/HxGatewaySyncGrainImpl.java
@@ -1,7 +1,7 @@
 package com.fzzy.gateway.hx2023.service;
 
 import com.fzzy.gateway.api.GatewaySyncGranService;
-import com.fzzy.gateway.hx2023.data.GrainData;
+import com.fzzy.gateway.hx2023.data.KafaGrainData;
 import com.fzzy.gateway.hx2023.data.SyncReqData;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
@@ -22,7 +22,7 @@
     }
 
     @Override
-    public GrainData syncGrain(SyncReqData reqData) {
+    public KafaGrainData syncGrain(SyncReqData reqData) {
         return null;
     }
 }
diff --git a/src/main/java/com/fzzy/gateway/service/GatewayDeviceService.java b/src/main/java/com/fzzy/gateway/service/GatewayDeviceService.java
index 1135ee6..b3b59e9 100644
--- a/src/main/java/com/fzzy/gateway/service/GatewayDeviceService.java
+++ b/src/main/java/com/fzzy/gateway/service/GatewayDeviceService.java
@@ -1,5 +1,6 @@
 package com.fzzy.gateway.service;
 
+import com.alibaba.fastjson2.JSONObject;
 import com.bstek.dorado.annotation.DataProvider;
 import com.bstek.dorado.annotation.DataResolver;
 import com.bstek.dorado.annotation.Expose;
@@ -10,11 +11,12 @@
 import com.fzzy.gateway.GatewayUtils;
 import com.fzzy.gateway.api.DeviceReportService;
 import com.fzzy.gateway.api.GatewayRemoteManager;
-import com.fzzy.gateway.data.QueryParam;
 import com.fzzy.gateway.entity.GatewayDevice;
 import com.fzzy.gateway.hx2023.ScConstant;
-import com.fzzy.gateway.hx2023.data.GrainData;
-import com.fzzy.gateway.hx2023.data.GrainDataDetail;
+import com.fzzy.gateway.hx2023.data.KafaGrainData;
+import com.fzzy.gateway.hx2023.data.KafkaGrainDataDetail;
+import com.fzzy.gateway.hx2023.data.KafkaGrainTH;
+import com.fzzy.gateway.hx2023.data.TRHInfo;
 import com.fzzy.gateway.service.repository.GatewayDeviceRep;
 
 import lombok.extern.slf4j.Slf4j;
@@ -121,7 +123,7 @@
      * @return
      */
     @Expose
-    public String ajaxTestGrain(Map<String,Object> parameter) {
+    public String ajaxTestGrain(Map<String, Object> parameter) {
 
         //鑾峰彇璁惧閰嶇疆锛屽彧閽堝绮儏璁惧杩涜鎵ц
 
@@ -139,32 +141,32 @@
 
 
         //濡傛灉閮ㄧ讲FZZY-IGDS-V40鐗堟湰绯荤粺
-        return this.pushByV40(list, start,end);
+        return this.pushByV40(list, start, end);
 
     }
 
-    private String pushByV40(List<GatewayDevice> list, Date start,Date end) {
+    private String pushByV40(List<GatewayDevice> list, Date start, Date end) {
 
         String depotIdSys;
         List<Fz40Grain> listGrain;
 
         Fz40Grain lastData;
 
-        GrainData pushData;
+        KafaGrainData pushData;
 
         DeviceReportService deviceReportService = null;
         for (GatewayDevice device : list) {
             depotIdSys = device.getDepotIdSys();
 
             if (StringUtils.isEmpty(depotIdSys)) {
-                log.info("--------璁惧--{}-鏈厤缃郴缁熺浉鍏充粨搴撶紪鐮侊紝鏃犳硶鎵ц褰撳墠鎿嶄綔",device.getDeviceName());
+                log.info("--------璁惧--{}-鏈厤缃郴缁熺浉鍏充粨搴撶紪鐮侊紝鏃犳硶鎵ц褰撳墠鎿嶄綔", device.getDeviceName());
                 continue;
             }
 
             listGrain = fzzy40CommonService.listGrain(depotIdSys, start, end);
 
             if (null == listGrain || listGrain.isEmpty()) {
-                log.info("---------璁惧---{}--鏈悓姝ュ埌绮儏淇℃伅锛岃纭褰撳墠鏉′欢涓嬫槸鍚︽湁鏁版嵁",device.getDeviceName());
+                log.info("---------璁惧---{}--鏈悓姝ュ埌绮儏淇℃伅锛岃纭褰撳墠鏉′欢涓嬫槸鍚︽湁鏁版嵁", device.getDeviceName());
                 continue;
             }
 
@@ -193,8 +195,8 @@
      * @param lastData
      * @return
      */
-    private GrainData lastData2PushData(Fz40Grain lastData, GatewayDevice device) {
-        GrainData result = new GrainData();
+    private KafaGrainData lastData2PushData(Fz40Grain lastData, GatewayDevice device) {
+        KafaGrainData result = new KafaGrainData();
 
         result.setMessageId(ScConstant.getMessageId());
         result.setDeviceID(device.getDeviceId());
@@ -206,63 +208,100 @@
         //灞�-琛�-鍒�
         String[] attrCable = lastData.getCable().split("-");
 
-        //灞傞厤缃�
-        int layMax = Integer.valueOf(attrCable[0]);
 
-        //閽堝绛掍粨閰嶇疆
-        String[] cableCirAtt = new String[0];
         if (StringUtils.isNotEmpty(lastData.getCableCir())) {
-            cableCirAtt = lastData.getCableCir().split("-");
+            return lastData2PushData2(lastData, device);
         }
+
+        //灞傝鍒�
+        int cableZ = Integer.valueOf(attrCable[0]);
+        int cableY = Integer.valueOf(attrCable[1]);
+        int cableX = Integer.valueOf(attrCable[2]);
 
         //娓╁害闆嗗悎
         String[] attr = lastData.getPoints().split(",");
 
         //鏍瑰彿
-        int cableNum = 1, layerNumber = 1, position = 0;
+        int cableNum = 1, position = 0;
 
-        int curCir = 1;//鎵�鍦ㄥ湀
-        int cirLay = 1;//褰撳墠鍦堢殑灞�
         String curTemp;
-        List<GrainDataDetail> details = new ArrayList<>();
+        List<KafkaGrainDataDetail> temperature = new ArrayList<>();
+
+        int x = 0, y = 0, z = 0;
         for (int i = 0; i < attr.length; i++) {
+
             position = i;
-            curTemp = attr[i];
+
+            z = i % cableZ + 1;
+            x = i / (cableZ * cableY);
+            y = x * (cableZ * cableY);
+            y = (i - y) / cableZ;
+
+            // 鍊掕浆X杞�
+            x = cableX - 1 - x;
+
             //鏍瑰彿
-            cableNum = (i / layMax) + 1;
-            layerNumber = (i % layMax) + 1;
+            cableNum = (i / cableZ) + 1;
 
-            if (cableCirAtt.length > 0) {
-                curCir = getCurCir(cableNum, attrCable);
-                cirLay = Integer.valueOf(cableCirAtt[curCir - 1]);
-
-                details.add(new GrainDataDetail(cableNum, cirLay, position, curTemp));
-            } else {
-
-                //鍒ゆ柇鏈�澶� TODO 寰呬紭鍖�
-                if (curTemp.equals(result.getMaxTemperature())) {
-                    result.setMaxX(cableNum + "");
-                    result.setMaxZ(curTemp);
-                }
+            curTemp = attr[i];
 
 
-                //鍒ゆ柇鏈�灏� TODO 寰呬紭鍖�
-                if (curTemp.equals(result.getMinTemperature())) {
-                    result.setMinX(cableNum + "");
-                    result.setMinZ(curTemp);
-                }
-
-
-                details.add(new GrainDataDetail(cableNum, layerNumber, position, curTemp));
+            //鍒ゆ柇鏈�澶�
+            if (curTemp.equals(result.getMaxTemperature())) {
+                result.setMaxX(x);
+                result.setMaxY(y);
+                result.setMaxZ(position);
             }
 
+
+            //鍒ゆ柇鏈�灏�
+            if (curTemp.equals(result.getMinTemperature())) {
+                result.setMinX(x);
+                result.setMinY(y);
+                result.setMinZ(position);
+            }
+
+            temperature.add(new KafkaGrainDataDetail(cableNum + "", z + "", curTemp, position + "", x, y));
         }
 
-        result.setTemperature(details);
+        //绮俯淇℃伅
+        TRHInfo trhInfo = new TRHInfo();
+        trhInfo.setTemperature(temperature);
+
+
+        //浠撴俯搴︿俊鎭�
+        KafkaGrainTH grainTH = new KafkaGrainTH();
+        grainTH.setHumidity(lastData.getHumidityIn() + "");
+        grainTH.setTemperature(lastData.getTempIn() + "");
+        grainTH.setAirHumidity(lastData.getHumidityOut() + "");
+        grainTH.setAirTemperature(lastData.getTempOut() + "");
+
+        List<KafkaGrainTH> temperatureAndhumidity = new ArrayList<>();
+        temperatureAndhumidity.add(grainTH);
+
+        trhInfo.setTemperatureAndhumidity(temperatureAndhumidity);
+
+
+        JSONObject params = new JSONObject();
+        params.put("TRHInfo", trhInfo);
+
+        result.setParams(params);
 
         return result;
     }
 
+    /**
+     * 閽堝绛掍粨  TODO -----
+     *
+     * @param lastData
+     * @param device
+     * @return
+     */
+    private KafaGrainData lastData2PushData2(Fz40Grain lastData, GatewayDevice device) {
+
+        return null;
+    }
+
     private int getCurCir(int curRoot, String[] cableRuleAtt) {
 
         int sum = 0;
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 81dde70..edd09d6 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -82,21 +82,17 @@
     sasl-jaas-config: org.apache.kafka.common.security.scram.ScramLoginModule required username=\"{username}\" password=\"{password}\";"
     sasl-username: sc001
     sasl-password: wCV0ISwmoKwbx1lpBKMW
-    producer: # producer 鐢熶骇鑰�
-      retries: 0 # 閲嶈瘯娆℃暟
-      acks: 1 # 搴旂瓟绾у埆:澶氬皯涓垎鍖哄壇鏈浠藉畬鎴愭椂鍚戠敓浜ц�呭彂閫乤ck纭(鍙��0銆�1銆乤ll/-1)
-      batch-size: 16384 # 鎵归噺澶у皬
-      buffer-memory: 33554432 # 鐢熶骇绔紦鍐插尯澶у皬
+    producer:
+      retries: 0
+      acks: 1
+      batch-size: 16384
+      buffer-memory: 33554432
       key-serializer: org.apache.kafka.common.serialization.StringSerializer
       value-serializer: org.apache.kafka.common.serialization.StringSerializer
-    consumer: # consumer娑堣垂鑰�
-      group-id: fzzygroup # 榛樿鐨勬秷璐圭粍ID
-      enable-auto-commit: true # 鏄惁鑷姩鎻愪氦offset
-      auto-commit-interval: 100  # 鎻愪氦offset寤舵椂(鎺ユ敹鍒版秷鎭悗澶氫箙鎻愪氦offset)
-
-      # earliest:褰撳悇鍒嗗尯涓嬫湁宸叉彁浜ょ殑offset鏃讹紝浠庢彁浜ょ殑offset寮�濮嬫秷璐癸紱鏃犳彁浜ょ殑offset鏃讹紝浠庡ご寮�濮嬫秷璐�
-      # latest:褰撳悇鍒嗗尯涓嬫湁宸叉彁浜ょ殑offset鏃讹紝浠庢彁浜ょ殑offset寮�濮嬫秷璐癸紱鏃犳彁浜ょ殑offset鏃讹紝娑堣垂鏂颁骇鐢熺殑璇ュ垎鍖轰笅鐨勬暟鎹�
-      # none:topic鍚勫垎鍖洪兘瀛樺湪宸叉彁浜ょ殑offset鏃讹紝浠巓ffset鍚庡紑濮嬫秷璐癸紱鍙鏈変竴涓垎鍖轰笉瀛樺湪宸叉彁浜ょ殑offset锛屽垯鎶涘嚭寮傚父
+    consumer:
+      group-id: fzzygroup
+      enable-auto-commit: true
+      auto-commit-interval: 100
       auto-offset-reset: latest
       key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
       value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
diff --git a/src/main/resources/application-devGateway.yml b/src/main/resources/application-devGateway.yml
new file mode 100644
index 0000000..e6029e2
--- /dev/null
+++ b/src/main/resources/application-devGateway.yml
@@ -0,0 +1,75 @@
+server:
+  port: 8090
+
+spring:
+  datasource:
+    #涓绘暟鎹簮
+    primary:
+      url: jdbc:mysql://127.0.0.1:3306/igds_api_5012?useUnicode=true&useSSL=false&characterEncoding=utf-8
+      username: root
+      password: Abc123..
+      driver-class-name: com.mysql.jdbc.Driver
+    #娆℃暟鎹簮
+    secondary:
+      url: jdbc:mysql://127.0.0.1:3306/igds_5012?useUnicode=true&useSSL=false&characterEncoding=utf-8
+
+      username: root
+      password: Abc123..
+      driver-class-name: com.mysql.jdbc.Driver
+  jpa:
+    #涓籮pa閰嶇疆
+    primary:
+      show-sql: true
+      properties:
+        hibernate:
+          hbm2ddl:
+            auto: update
+          dialect: org.hibernate.dialect.MySQL5InnoDBDialect
+    #娆pa閰嶇疆
+    secondary:
+      show-sql: true
+      properties:
+        hibernate:
+          hbm2ddl:
+            auto: none
+          dialect: org.hibernate.dialect.MySQL5InnoDBDialect
+  # Redis鐩稿叧閰嶇疆
+  redis:
+    database: 5
+    host: 127.0.0.1
+    port: 6379
+    password: Redispwd..
+    # 杩炴帴姹犳渶澶ц繛鎺ユ暟锛堜娇鐢ㄨ礋鍊艰〃绀烘病鏈夐檺鍒讹級
+    pool:
+      max-active: 200
+      max-wait: -1
+      max-idle: 10
+      min-idle: 0
+      timeout: 6000
+  kafka:
+    bootstrap-servers: 103.203.217.16:9092
+    properties:
+      security.protocol: sasl_plaintext
+      sasl.mechanism: PLAIN
+      sasl.username: sc001
+      sasl.password: wCV0ISwmoKwbx1lpBKMW
+      sasl.jaas.config: org.apache.kafka.common.security.scram.ScramLoginModule required username='sc001' password='wCV0ISwmoKwbx1lpBKMW';
+    consumer:
+      group-id: fzzygroup
+      enable-auto-commit: true
+      auto-commit-interval: 100
+      auto-offset-reset: latest
+      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
+      value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
+
+mqtt:
+  host: tcp://10.13.4.84:11883
+  client-id:
+  client-username:
+  client-password:
+  client-timeout: 10
+  client-alive-time: 20
+  client-max-connect-times: 5
+  client-topics:
+  client-qos: 0
+  isOpen: false
diff --git a/src/main/resources/application-gateway.yml b/src/main/resources/application-gateway.yml
deleted file mode 100644
index ae10889..0000000
--- a/src/main/resources/application-gateway.yml
+++ /dev/null
@@ -1,57 +0,0 @@
-##########################  缃戝叧妯″紡鎺ュ彛   ##########################
-server:
-  port: 8083
-  jetty:
-    max-http-post-size: 209715200
-  tomcat:
-    max-http-post-size: 209715200
-spring:
-  datasource:
-    #涓绘暟鎹簮
-    primary:
-      url: jdbc:mysql://127.0.0.1:3306/igds_api?useUnicode=true&characterEncoding=utf-8
-      username: root
-      password: Abc123..
-      driver-class-name: com.mysql.jdbc.Driver
-    #娆℃暟鎹簮
-    secondary:
-      url: jdbc:mysql://127.0.0.1:3306/igds_master?useUnicode=true&characterEncoding=utf-8
-      username: root
-      password: Abc123..
-      driver-class-name: com.mysql.jdbc.Driver
-  jpa:
-    #涓籮pa閰嶇疆
-    primary:
-      show-sql: true
-      properties:
-        hibernate:
-          hbm2ddl:
-            auto: update
-          dialect: org.hibernate.dialect.MySQL5InnoDBDialect
-    #娆pa閰嶇疆
-    secondary:
-      show-sql: true
-      properties:
-        hibernate:
-          hbm2ddl:
-            auto: none
-          dialect: org.hibernate.dialect.MySQL5InnoDBDialect
-  # Redis鐩稿叧閰嶇疆
-  redis:
-    database: 1
-    host: 127.0.0.1
-    port: 6379
-    password: Redispwd..
-    # 杩炴帴姹犳渶澶ц繛鎺ユ暟锛堜娇鐢ㄨ礋鍊艰〃绀烘病鏈夐檺鍒讹級
-    pool:
-      max-active: 200
-      max-wait: -1
-      max-idle: 10
-      min-idle: 0
-      timeout: 6000
-igds:
-  default:
-    companyId: 5326
-
-  file-path: D:/IGDS-API/FILE/
-  img-path: D:/IGDS/FILE/
\ No newline at end of file
diff --git a/src/main/resources/application-proGateway.yml b/src/main/resources/application-proGateway.yml
new file mode 100644
index 0000000..8d688f9
--- /dev/null
+++ b/src/main/resources/application-proGateway.yml
@@ -0,0 +1,81 @@
+server:
+  port: 8090
+
+spring:
+  datasource:
+    #涓绘暟鎹簮
+    primary:
+      url: jdbc:mysql://127.0.0.1:3306/igds_api_5012?useUnicode=true&useSSL=false&characterEncoding=utf-8
+      username: root
+      password: Abc123..
+      driver-class-name: com.mysql.jdbc.Driver
+    #娆℃暟鎹簮
+    secondary:
+      url: jdbc:mysql://127.0.0.1:3306/igds_5012?useUnicode=true&useSSL=false&characterEncoding=utf-8
+
+      username: root
+      password: Abc123..
+      driver-class-name: com.mysql.jdbc.Driver
+  jpa:
+    #涓籮pa閰嶇疆
+    primary:
+      show-sql: true
+      properties:
+        hibernate:
+          hbm2ddl:
+            auto: update
+          dialect: org.hibernate.dialect.MySQL5InnoDBDialect
+    #娆pa閰嶇疆
+    secondary:
+      show-sql: true
+      properties:
+        hibernate:
+          hbm2ddl:
+            auto: none
+          dialect: org.hibernate.dialect.MySQL5InnoDBDialect
+  # Redis鐩稿叧閰嶇疆
+  redis:
+    database: 5
+    host: 127.0.0.1
+    port: 6379
+    password: Redispwd..
+    # 杩炴帴姹犳渶澶ц繛鎺ユ暟锛堜娇鐢ㄨ礋鍊艰〃绀烘病鏈夐檺鍒讹級
+    pool:
+      max-active: 200
+      max-wait: -1
+      max-idle: 10
+      min-idle: 0
+      timeout: 6000
+  kafka:
+    bootstrap-servers: 103.203.217.16:9092
+    security-protocol: SASL_PLAINTEXT
+    sasl-mechanism: PLAIN
+    sasl-jaas-config: org.apache.kafka.common.security.scram.ScramLoginModule required username=\"{username}\" password=\"{password}\";"
+    sasl-username: sc001
+    sasl-password: wCV0ISwmoKwbx1lpBKMW
+    producer:
+      retries: 0
+      acks: 1
+      batch-size: 16384
+      buffer-memory: 33554432
+      key-serializer: org.apache.kafka.common.serialization.StringSerializer
+      value-serializer: org.apache.kafka.common.serialization.StringSerializer
+    consumer:
+      group-id: fzzygroup
+      enable-auto-commit: true
+      auto-commit-interval: 100
+      auto-offset-reset: latest
+      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
+      value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
+
+mqtt:
+  host: tcp://10.13.4.84:11883
+  client-id:
+  client-username:
+  client-password:
+  client-timeout: 10
+  client-alive-time: 20
+  client-max-connect-times: 5
+  client-topics:
+  client-qos: 0
+  isOpen: false
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index a862643..55d6b10 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -1,7 +1,7 @@
 ##########################  Server   ##########################
 spring:
   profiles:
-    active: dev
+    active: devGateway
   application:
     name: igds-api
   main:
diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml
index 5b068c4..6c4d4fd 100644
--- a/src/main/resources/logback-spring.xml
+++ b/src/main/resources/logback-spring.xml
@@ -33,6 +33,24 @@
 		</root>
 	</springProfile>
 
+	<!-- dev鐜 -->
+	<springProfile name="devGateway">
+		<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+			<encoder>
+				<pattern>${PATTERN}</pattern>
+			</encoder>
+		</appender>
+		<logger name="com.fzzy" level="DEBUG"/>
+		<logger name="com.fzzy" level="DEBUG"/>
+		<logger name="org.hibernate.tool" level="WARN"/>
+		<logger name="com.bstek.dorado" level="WARN"/>
+		<logger name="org.springframework.beans" level="WARN"/>
+
+		<root level="info">
+			<appender-ref ref="CONSOLE"/>
+		</root>
+	</springProfile>
+
 	<!-- 鐢熶骇鐜 -->
 	<springProfile name="pro">
 		<!-- 姣忓ぉ浜х敓涓�涓枃浠� -->
@@ -69,6 +87,40 @@
 
 
 	<!-- 鐢熶骇鐜 -->
+	<springProfile name="proGateway">
+		<!-- 姣忓ぉ浜х敓涓�涓枃浠� -->
+		<appender name="PRO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+			<!-- 鏂囦欢璺緞 -->
+			<file>${PRO_LOG_HOME}/${APP_MODEL}-info.log</file>
+			<!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+			<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+				<!-- 鏂囦欢鍚嶇О -->
+				<fileNamePattern>${PRO_LOG_HOME}/${APP_MODEL}-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+				<!--鏃ュ織鏂囦欢淇濈暀澶╂暟 -->
+				<maxHistory>60</maxHistory>
+				<!-- 鏃ュ織澶у皬 -->
+				<timeBasedFileNamingAndTriggeringPolicy
+						class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+					<maxFileSize>100MB</maxFileSize>
+				</timeBasedFileNamingAndTriggeringPolicy>
+			</rollingPolicy>
+			<encoder>
+				<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+				<charset>UTF-8</charset>
+			</encoder>
+			<layout class="ch.qos.logback.classic.PatternLayout">
+				<pattern>${PATTERN}</pattern>
+			</layout>
+		</appender>
+
+		<logger name="org.hibernate.tool" level="WARN"/>
+		<logger name="com.bstek.dorado" level="WARN"/>
+		<root level="info">
+			<appender-ref ref="PRO_FILE"/>
+		</root>
+	</springProfile>
+
+	<!-- 鐢熶骇鐜 -->
 	<springProfile name="linux">
 		<!-- 姣忓ぉ浜х敓涓�涓枃浠� -->
 		<appender name="PRO_LINUX_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">

--
Gitblit v1.9.3