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