diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/casic/config/AliYunConfig.java b/src/main/java/com/casic/config/AliYunConfig.java deleted file mode 100644 index 090b6ab..0000000 --- a/src/main/java/com/casic/config/AliYunConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Slf4j -@Configuration -@ConfigurationProperties(prefix = "casic.ali") -@Data -public class AliYunConfig { - - private String key; - private String screct; - private String url; - private String signNameJson; - private String templateCode; - -} diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/casic/config/AliYunConfig.java b/src/main/java/com/casic/config/AliYunConfig.java deleted file mode 100644 index 090b6ab..0000000 --- a/src/main/java/com/casic/config/AliYunConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Slf4j -@Configuration -@ConfigurationProperties(prefix = "casic.ali") -@Data -public class AliYunConfig { - - private String key; - private String screct; - private String url; - private String signNameJson; - private String templateCode; - -} diff --git a/src/main/java/com/casic/config/ApiHikomConfig.java b/src/main/java/com/casic/config/ApiHikomConfig.java deleted file mode 100644 index 73b3550..0000000 --- a/src/main/java/com/casic/config/ApiHikomConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -@Data -public class ApiHikomConfig { - @Value("${casic.hikom.host}") - private String hikomHost; - @Value("${casic.hikom.url}") - private String hikomUrl; -} diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/casic/config/AliYunConfig.java b/src/main/java/com/casic/config/AliYunConfig.java deleted file mode 100644 index 090b6ab..0000000 --- a/src/main/java/com/casic/config/AliYunConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Slf4j -@Configuration -@ConfigurationProperties(prefix = "casic.ali") -@Data -public class AliYunConfig { - - private String key; - private String screct; - private String url; - private String signNameJson; - private String templateCode; - -} diff --git a/src/main/java/com/casic/config/ApiHikomConfig.java b/src/main/java/com/casic/config/ApiHikomConfig.java deleted file mode 100644 index 73b3550..0000000 --- a/src/main/java/com/casic/config/ApiHikomConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -@Data -public class ApiHikomConfig { - @Value("${casic.hikom.host}") - private String hikomHost; - @Value("${casic.hikom.url}") - private String hikomUrl; -} diff --git a/src/main/java/com/casic/config/task/TaskConfigurer.java b/src/main/java/com/casic/config/task/TaskConfigurer.java new file mode 100644 index 0000000..43282d3 --- /dev/null +++ b/src/main/java/com/casic/config/task/TaskConfigurer.java @@ -0,0 +1,44 @@ +package com.casic.config.task; + +import com.casic.service.DeviceDataService; +import com.casic.service.ThirdDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.config.TriggerTask; +import org.springframework.scheduling.support.CronTrigger; + +/** + * @author cz + */ +@Configuration +@EnableScheduling +public class TaskConfigurer implements SchedulingConfigurer { + + @Value("${casic.device.online.corn}") + private String timeConfig; + @Autowired + private DeviceDataService deviceDataService; + + @Override + public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + TriggerTask triggrtTask = new TriggerTask(nextDayDevice(), + triggerContext -> { + return new CronTrigger(timeConfig).nextExecutionTime(triggerContext); + }); + taskRegistrar.addTriggerTask(triggrtTask); + } + + private Runnable nextDayDevice() { + return new Runnable() { + @Override + public void run() { + deviceDataService.checkAndUpdateDeviceOnline(); + } + }; + } + +} \ No newline at end of file diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/casic/config/AliYunConfig.java b/src/main/java/com/casic/config/AliYunConfig.java deleted file mode 100644 index 090b6ab..0000000 --- a/src/main/java/com/casic/config/AliYunConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Slf4j -@Configuration -@ConfigurationProperties(prefix = "casic.ali") -@Data -public class AliYunConfig { - - private String key; - private String screct; - private String url; - private String signNameJson; - private String templateCode; - -} diff --git a/src/main/java/com/casic/config/ApiHikomConfig.java b/src/main/java/com/casic/config/ApiHikomConfig.java deleted file mode 100644 index 73b3550..0000000 --- a/src/main/java/com/casic/config/ApiHikomConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -@Data -public class ApiHikomConfig { - @Value("${casic.hikom.host}") - private String hikomHost; - @Value("${casic.hikom.url}") - private String hikomUrl; -} diff --git a/src/main/java/com/casic/config/task/TaskConfigurer.java b/src/main/java/com/casic/config/task/TaskConfigurer.java new file mode 100644 index 0000000..43282d3 --- /dev/null +++ b/src/main/java/com/casic/config/task/TaskConfigurer.java @@ -0,0 +1,44 @@ +package com.casic.config.task; + +import com.casic.service.DeviceDataService; +import com.casic.service.ThirdDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.config.TriggerTask; +import org.springframework.scheduling.support.CronTrigger; + +/** + * @author cz + */ +@Configuration +@EnableScheduling +public class TaskConfigurer implements SchedulingConfigurer { + + @Value("${casic.device.online.corn}") + private String timeConfig; + @Autowired + private DeviceDataService deviceDataService; + + @Override + public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + TriggerTask triggrtTask = new TriggerTask(nextDayDevice(), + triggerContext -> { + return new CronTrigger(timeConfig).nextExecutionTime(triggerContext); + }); + taskRegistrar.addTriggerTask(triggrtTask); + } + + private Runnable nextDayDevice() { + return new Runnable() { + @Override + public void run() { + deviceDataService.checkAndUpdateDeviceOnline(); + } + }; + } + +} \ No newline at end of file diff --git a/src/main/java/com/casic/controller/AlarmController.java b/src/main/java/com/casic/controller/AlarmController.java deleted file mode 100644 index 957fc36..0000000 --- a/src/main/java/com/casic/controller/AlarmController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmConfigParam; -import com.casic.service.AlarmService; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/alarm") -public class AlarmController { - - private final AlarmService alarmService; - - public AlarmController(AlarmService alarmService) { - this.alarmService = alarmService; - } - - @RequestMapping("/records") - public Object getAlarmRecord(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "currentIndex", required = true) Integer currentIndex, - @RequestParam(value = "devcode",required =false) String devcode, - @RequestParam(value = "pageSize", required = true) Integer pageSize) { - return alarmService.getAlarmRecord(deviceType,currentIndex,pageSize,devcode); - } - - @RequestMapping("/batch/cancel") - public Object excuteAlramBatchCancel(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "devcode",required =false) String devcode) { - return alarmService.excuteAlramBatchCancel(deviceType,devcode); - } - - @RequestMapping("/config/add") - public Object addAlarmConfig(@RequestBody AlarmConfigParam alarmConfigParam) { - return alarmService.addAlarmConfig(alarmConfigParam); - } -} diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/casic/config/AliYunConfig.java b/src/main/java/com/casic/config/AliYunConfig.java deleted file mode 100644 index 090b6ab..0000000 --- a/src/main/java/com/casic/config/AliYunConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Slf4j -@Configuration -@ConfigurationProperties(prefix = "casic.ali") -@Data -public class AliYunConfig { - - private String key; - private String screct; - private String url; - private String signNameJson; - private String templateCode; - -} diff --git a/src/main/java/com/casic/config/ApiHikomConfig.java b/src/main/java/com/casic/config/ApiHikomConfig.java deleted file mode 100644 index 73b3550..0000000 --- a/src/main/java/com/casic/config/ApiHikomConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -@Data -public class ApiHikomConfig { - @Value("${casic.hikom.host}") - private String hikomHost; - @Value("${casic.hikom.url}") - private String hikomUrl; -} diff --git a/src/main/java/com/casic/config/task/TaskConfigurer.java b/src/main/java/com/casic/config/task/TaskConfigurer.java new file mode 100644 index 0000000..43282d3 --- /dev/null +++ b/src/main/java/com/casic/config/task/TaskConfigurer.java @@ -0,0 +1,44 @@ +package com.casic.config.task; + +import com.casic.service.DeviceDataService; +import com.casic.service.ThirdDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.config.TriggerTask; +import org.springframework.scheduling.support.CronTrigger; + +/** + * @author cz + */ +@Configuration +@EnableScheduling +public class TaskConfigurer implements SchedulingConfigurer { + + @Value("${casic.device.online.corn}") + private String timeConfig; + @Autowired + private DeviceDataService deviceDataService; + + @Override + public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + TriggerTask triggrtTask = new TriggerTask(nextDayDevice(), + triggerContext -> { + return new CronTrigger(timeConfig).nextExecutionTime(triggerContext); + }); + taskRegistrar.addTriggerTask(triggrtTask); + } + + private Runnable nextDayDevice() { + return new Runnable() { + @Override + public void run() { + deviceDataService.checkAndUpdateDeviceOnline(); + } + }; + } + +} \ No newline at end of file diff --git a/src/main/java/com/casic/controller/AlarmController.java b/src/main/java/com/casic/controller/AlarmController.java deleted file mode 100644 index 957fc36..0000000 --- a/src/main/java/com/casic/controller/AlarmController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmConfigParam; -import com.casic.service.AlarmService; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/alarm") -public class AlarmController { - - private final AlarmService alarmService; - - public AlarmController(AlarmService alarmService) { - this.alarmService = alarmService; - } - - @RequestMapping("/records") - public Object getAlarmRecord(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "currentIndex", required = true) Integer currentIndex, - @RequestParam(value = "devcode",required =false) String devcode, - @RequestParam(value = "pageSize", required = true) Integer pageSize) { - return alarmService.getAlarmRecord(deviceType,currentIndex,pageSize,devcode); - } - - @RequestMapping("/batch/cancel") - public Object excuteAlramBatchCancel(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "devcode",required =false) String devcode) { - return alarmService.excuteAlramBatchCancel(deviceType,devcode); - } - - @RequestMapping("/config/add") - public Object addAlarmConfig(@RequestBody AlarmConfigParam alarmConfigParam) { - return alarmService.addAlarmConfig(alarmConfigParam); - } -} diff --git a/src/main/java/com/casic/controller/AlarmPushController.java b/src/main/java/com/casic/controller/AlarmPushController.java deleted file mode 100644 index 1642f9b..0000000 --- a/src/main/java/com/casic/controller/AlarmPushController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmPushConfig; -import com.casic.service.AlarmPushService; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.*; - -@RestController -@AllArgsConstructor -@RequestMapping("/alarm") -public class AlarmPushController { - - private AlarmPushService alarmPushService; - - @RequestMapping("/push/config") - @ResponseBody - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - return alarmPushService.alarmPushConfig(alarmSwitchConfig); - } - - @RequestMapping("/push/query") - public Object alarmPushQuery(@RequestParam(value = "scene", required = true) String scene) { - return alarmPushService.getAlarmPush(scene); - } - -} diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/casic/config/AliYunConfig.java b/src/main/java/com/casic/config/AliYunConfig.java deleted file mode 100644 index 090b6ab..0000000 --- a/src/main/java/com/casic/config/AliYunConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Slf4j -@Configuration -@ConfigurationProperties(prefix = "casic.ali") -@Data -public class AliYunConfig { - - private String key; - private String screct; - private String url; - private String signNameJson; - private String templateCode; - -} diff --git a/src/main/java/com/casic/config/ApiHikomConfig.java b/src/main/java/com/casic/config/ApiHikomConfig.java deleted file mode 100644 index 73b3550..0000000 --- a/src/main/java/com/casic/config/ApiHikomConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -@Data -public class ApiHikomConfig { - @Value("${casic.hikom.host}") - private String hikomHost; - @Value("${casic.hikom.url}") - private String hikomUrl; -} diff --git a/src/main/java/com/casic/config/task/TaskConfigurer.java b/src/main/java/com/casic/config/task/TaskConfigurer.java new file mode 100644 index 0000000..43282d3 --- /dev/null +++ b/src/main/java/com/casic/config/task/TaskConfigurer.java @@ -0,0 +1,44 @@ +package com.casic.config.task; + +import com.casic.service.DeviceDataService; +import com.casic.service.ThirdDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.config.TriggerTask; +import org.springframework.scheduling.support.CronTrigger; + +/** + * @author cz + */ +@Configuration +@EnableScheduling +public class TaskConfigurer implements SchedulingConfigurer { + + @Value("${casic.device.online.corn}") + private String timeConfig; + @Autowired + private DeviceDataService deviceDataService; + + @Override + public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + TriggerTask triggrtTask = new TriggerTask(nextDayDevice(), + triggerContext -> { + return new CronTrigger(timeConfig).nextExecutionTime(triggerContext); + }); + taskRegistrar.addTriggerTask(triggrtTask); + } + + private Runnable nextDayDevice() { + return new Runnable() { + @Override + public void run() { + deviceDataService.checkAndUpdateDeviceOnline(); + } + }; + } + +} \ No newline at end of file diff --git a/src/main/java/com/casic/controller/AlarmController.java b/src/main/java/com/casic/controller/AlarmController.java deleted file mode 100644 index 957fc36..0000000 --- a/src/main/java/com/casic/controller/AlarmController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmConfigParam; -import com.casic.service.AlarmService; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/alarm") -public class AlarmController { - - private final AlarmService alarmService; - - public AlarmController(AlarmService alarmService) { - this.alarmService = alarmService; - } - - @RequestMapping("/records") - public Object getAlarmRecord(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "currentIndex", required = true) Integer currentIndex, - @RequestParam(value = "devcode",required =false) String devcode, - @RequestParam(value = "pageSize", required = true) Integer pageSize) { - return alarmService.getAlarmRecord(deviceType,currentIndex,pageSize,devcode); - } - - @RequestMapping("/batch/cancel") - public Object excuteAlramBatchCancel(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "devcode",required =false) String devcode) { - return alarmService.excuteAlramBatchCancel(deviceType,devcode); - } - - @RequestMapping("/config/add") - public Object addAlarmConfig(@RequestBody AlarmConfigParam alarmConfigParam) { - return alarmService.addAlarmConfig(alarmConfigParam); - } -} diff --git a/src/main/java/com/casic/controller/AlarmPushController.java b/src/main/java/com/casic/controller/AlarmPushController.java deleted file mode 100644 index 1642f9b..0000000 --- a/src/main/java/com/casic/controller/AlarmPushController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmPushConfig; -import com.casic.service.AlarmPushService; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.*; - -@RestController -@AllArgsConstructor -@RequestMapping("/alarm") -public class AlarmPushController { - - private AlarmPushService alarmPushService; - - @RequestMapping("/push/config") - @ResponseBody - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - return alarmPushService.alarmPushConfig(alarmSwitchConfig); - } - - @RequestMapping("/push/query") - public Object alarmPushQuery(@RequestParam(value = "scene", required = true) String scene) { - return alarmPushService.getAlarmPush(scene); - } - -} diff --git a/src/main/java/com/casic/controller/ArtemisValidController.java b/src/main/java/com/casic/controller/ArtemisValidController.java deleted file mode 100644 index 1d52576..0000000 --- a/src/main/java/com/casic/controller/ArtemisValidController.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.controller; - -import com.casic.model.HkvideoValidParam; -import com.casic.model.ResponseData; -import com.casic.util.ArtemisPostUtil; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 海康接口 - */ -@AllArgsConstructor -@RestController -public class ArtemisValidController { - private final ArtemisPostUtil artemisPostUtill; - - @RequestMapping("/hkvideo/getVideoUrl") - public ResponseData getVideoUrl(@RequestBody HkvideoValidParam hkvideoValidParam) { - - return artemisPostUtill.artemisPost(hkvideoValidParam); - } - -} diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/casic/config/AliYunConfig.java b/src/main/java/com/casic/config/AliYunConfig.java deleted file mode 100644 index 090b6ab..0000000 --- a/src/main/java/com/casic/config/AliYunConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Slf4j -@Configuration -@ConfigurationProperties(prefix = "casic.ali") -@Data -public class AliYunConfig { - - private String key; - private String screct; - private String url; - private String signNameJson; - private String templateCode; - -} diff --git a/src/main/java/com/casic/config/ApiHikomConfig.java b/src/main/java/com/casic/config/ApiHikomConfig.java deleted file mode 100644 index 73b3550..0000000 --- a/src/main/java/com/casic/config/ApiHikomConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -@Data -public class ApiHikomConfig { - @Value("${casic.hikom.host}") - private String hikomHost; - @Value("${casic.hikom.url}") - private String hikomUrl; -} diff --git a/src/main/java/com/casic/config/task/TaskConfigurer.java b/src/main/java/com/casic/config/task/TaskConfigurer.java new file mode 100644 index 0000000..43282d3 --- /dev/null +++ b/src/main/java/com/casic/config/task/TaskConfigurer.java @@ -0,0 +1,44 @@ +package com.casic.config.task; + +import com.casic.service.DeviceDataService; +import com.casic.service.ThirdDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.config.TriggerTask; +import org.springframework.scheduling.support.CronTrigger; + +/** + * @author cz + */ +@Configuration +@EnableScheduling +public class TaskConfigurer implements SchedulingConfigurer { + + @Value("${casic.device.online.corn}") + private String timeConfig; + @Autowired + private DeviceDataService deviceDataService; + + @Override + public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + TriggerTask triggrtTask = new TriggerTask(nextDayDevice(), + triggerContext -> { + return new CronTrigger(timeConfig).nextExecutionTime(triggerContext); + }); + taskRegistrar.addTriggerTask(triggrtTask); + } + + private Runnable nextDayDevice() { + return new Runnable() { + @Override + public void run() { + deviceDataService.checkAndUpdateDeviceOnline(); + } + }; + } + +} \ No newline at end of file diff --git a/src/main/java/com/casic/controller/AlarmController.java b/src/main/java/com/casic/controller/AlarmController.java deleted file mode 100644 index 957fc36..0000000 --- a/src/main/java/com/casic/controller/AlarmController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmConfigParam; -import com.casic.service.AlarmService; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/alarm") -public class AlarmController { - - private final AlarmService alarmService; - - public AlarmController(AlarmService alarmService) { - this.alarmService = alarmService; - } - - @RequestMapping("/records") - public Object getAlarmRecord(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "currentIndex", required = true) Integer currentIndex, - @RequestParam(value = "devcode",required =false) String devcode, - @RequestParam(value = "pageSize", required = true) Integer pageSize) { - return alarmService.getAlarmRecord(deviceType,currentIndex,pageSize,devcode); - } - - @RequestMapping("/batch/cancel") - public Object excuteAlramBatchCancel(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "devcode",required =false) String devcode) { - return alarmService.excuteAlramBatchCancel(deviceType,devcode); - } - - @RequestMapping("/config/add") - public Object addAlarmConfig(@RequestBody AlarmConfigParam alarmConfigParam) { - return alarmService.addAlarmConfig(alarmConfigParam); - } -} diff --git a/src/main/java/com/casic/controller/AlarmPushController.java b/src/main/java/com/casic/controller/AlarmPushController.java deleted file mode 100644 index 1642f9b..0000000 --- a/src/main/java/com/casic/controller/AlarmPushController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmPushConfig; -import com.casic.service.AlarmPushService; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.*; - -@RestController -@AllArgsConstructor -@RequestMapping("/alarm") -public class AlarmPushController { - - private AlarmPushService alarmPushService; - - @RequestMapping("/push/config") - @ResponseBody - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - return alarmPushService.alarmPushConfig(alarmSwitchConfig); - } - - @RequestMapping("/push/query") - public Object alarmPushQuery(@RequestParam(value = "scene", required = true) String scene) { - return alarmPushService.getAlarmPush(scene); - } - -} diff --git a/src/main/java/com/casic/controller/ArtemisValidController.java b/src/main/java/com/casic/controller/ArtemisValidController.java deleted file mode 100644 index 1d52576..0000000 --- a/src/main/java/com/casic/controller/ArtemisValidController.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.controller; - -import com.casic.model.HkvideoValidParam; -import com.casic.model.ResponseData; -import com.casic.util.ArtemisPostUtil; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 海康接口 - */ -@AllArgsConstructor -@RestController -public class ArtemisValidController { - private final ArtemisPostUtil artemisPostUtill; - - @RequestMapping("/hkvideo/getVideoUrl") - public ResponseData getVideoUrl(@RequestBody HkvideoValidParam hkvideoValidParam) { - - return artemisPostUtill.artemisPost(hkvideoValidParam); - } - -} diff --git a/src/main/java/com/casic/controller/MessagePusherController.java b/src/main/java/com/casic/controller/MessagePusherController.java index d447c05..b97dcd1 100644 --- a/src/main/java/com/casic/controller/MessagePusherController.java +++ b/src/main/java/com/casic/controller/MessagePusherController.java @@ -32,8 +32,7 @@ } catch (UnsupportedEncodingException e) { e.printStackTrace(); } - return retMap; - } + return retMap; } //报警开关按钮 // diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/casic/config/AliYunConfig.java b/src/main/java/com/casic/config/AliYunConfig.java deleted file mode 100644 index 090b6ab..0000000 --- a/src/main/java/com/casic/config/AliYunConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Slf4j -@Configuration -@ConfigurationProperties(prefix = "casic.ali") -@Data -public class AliYunConfig { - - private String key; - private String screct; - private String url; - private String signNameJson; - private String templateCode; - -} diff --git a/src/main/java/com/casic/config/ApiHikomConfig.java b/src/main/java/com/casic/config/ApiHikomConfig.java deleted file mode 100644 index 73b3550..0000000 --- a/src/main/java/com/casic/config/ApiHikomConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -@Data -public class ApiHikomConfig { - @Value("${casic.hikom.host}") - private String hikomHost; - @Value("${casic.hikom.url}") - private String hikomUrl; -} diff --git a/src/main/java/com/casic/config/task/TaskConfigurer.java b/src/main/java/com/casic/config/task/TaskConfigurer.java new file mode 100644 index 0000000..43282d3 --- /dev/null +++ b/src/main/java/com/casic/config/task/TaskConfigurer.java @@ -0,0 +1,44 @@ +package com.casic.config.task; + +import com.casic.service.DeviceDataService; +import com.casic.service.ThirdDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.config.TriggerTask; +import org.springframework.scheduling.support.CronTrigger; + +/** + * @author cz + */ +@Configuration +@EnableScheduling +public class TaskConfigurer implements SchedulingConfigurer { + + @Value("${casic.device.online.corn}") + private String timeConfig; + @Autowired + private DeviceDataService deviceDataService; + + @Override + public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + TriggerTask triggrtTask = new TriggerTask(nextDayDevice(), + triggerContext -> { + return new CronTrigger(timeConfig).nextExecutionTime(triggerContext); + }); + taskRegistrar.addTriggerTask(triggrtTask); + } + + private Runnable nextDayDevice() { + return new Runnable() { + @Override + public void run() { + deviceDataService.checkAndUpdateDeviceOnline(); + } + }; + } + +} \ No newline at end of file diff --git a/src/main/java/com/casic/controller/AlarmController.java b/src/main/java/com/casic/controller/AlarmController.java deleted file mode 100644 index 957fc36..0000000 --- a/src/main/java/com/casic/controller/AlarmController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmConfigParam; -import com.casic.service.AlarmService; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/alarm") -public class AlarmController { - - private final AlarmService alarmService; - - public AlarmController(AlarmService alarmService) { - this.alarmService = alarmService; - } - - @RequestMapping("/records") - public Object getAlarmRecord(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "currentIndex", required = true) Integer currentIndex, - @RequestParam(value = "devcode",required =false) String devcode, - @RequestParam(value = "pageSize", required = true) Integer pageSize) { - return alarmService.getAlarmRecord(deviceType,currentIndex,pageSize,devcode); - } - - @RequestMapping("/batch/cancel") - public Object excuteAlramBatchCancel(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "devcode",required =false) String devcode) { - return alarmService.excuteAlramBatchCancel(deviceType,devcode); - } - - @RequestMapping("/config/add") - public Object addAlarmConfig(@RequestBody AlarmConfigParam alarmConfigParam) { - return alarmService.addAlarmConfig(alarmConfigParam); - } -} diff --git a/src/main/java/com/casic/controller/AlarmPushController.java b/src/main/java/com/casic/controller/AlarmPushController.java deleted file mode 100644 index 1642f9b..0000000 --- a/src/main/java/com/casic/controller/AlarmPushController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmPushConfig; -import com.casic.service.AlarmPushService; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.*; - -@RestController -@AllArgsConstructor -@RequestMapping("/alarm") -public class AlarmPushController { - - private AlarmPushService alarmPushService; - - @RequestMapping("/push/config") - @ResponseBody - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - return alarmPushService.alarmPushConfig(alarmSwitchConfig); - } - - @RequestMapping("/push/query") - public Object alarmPushQuery(@RequestParam(value = "scene", required = true) String scene) { - return alarmPushService.getAlarmPush(scene); - } - -} diff --git a/src/main/java/com/casic/controller/ArtemisValidController.java b/src/main/java/com/casic/controller/ArtemisValidController.java deleted file mode 100644 index 1d52576..0000000 --- a/src/main/java/com/casic/controller/ArtemisValidController.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.controller; - -import com.casic.model.HkvideoValidParam; -import com.casic.model.ResponseData; -import com.casic.util.ArtemisPostUtil; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 海康接口 - */ -@AllArgsConstructor -@RestController -public class ArtemisValidController { - private final ArtemisPostUtil artemisPostUtill; - - @RequestMapping("/hkvideo/getVideoUrl") - public ResponseData getVideoUrl(@RequestBody HkvideoValidParam hkvideoValidParam) { - - return artemisPostUtill.artemisPost(hkvideoValidParam); - } - -} diff --git a/src/main/java/com/casic/controller/MessagePusherController.java b/src/main/java/com/casic/controller/MessagePusherController.java index d447c05..b97dcd1 100644 --- a/src/main/java/com/casic/controller/MessagePusherController.java +++ b/src/main/java/com/casic/controller/MessagePusherController.java @@ -32,8 +32,7 @@ } catch (UnsupportedEncodingException e) { e.printStackTrace(); } - return retMap; - } + return retMap; } //报警开关按钮 // diff --git a/src/main/java/com/casic/controller/ThirdDataController.java b/src/main/java/com/casic/controller/ThirdDataController.java index d910a7d..fbd8e59 100644 --- a/src/main/java/com/casic/controller/ThirdDataController.java +++ b/src/main/java/com/casic/controller/ThirdDataController.java @@ -1,8 +1,6 @@ package com.casic.controller; import com.alibaba.fastjson.JSON; -import com.casic.model.CommConfigDTO; -import com.casic.model.PressureDataParam; import com.casic.model.ResponseData; import com.casic.service.ThirdDataService; import lombok.extern.slf4j.Slf4j; @@ -10,7 +8,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.HashMap; import java.util.Map; @RestController @@ -24,22 +21,25 @@ this.thirdDataService = thirdDataService; } - @RequestMapping("/pressure/data") - public Object getDeviceRecentData(@RequestBody PressureDataParam pressureData) { - return thirdDataService.getDeviceRecentData(pressureData); + /** + * 硫化氢订阅接口 + * + * @param h2sDataMap + * @return + */ + @RequestMapping("/h2s-data") + public Object h2sData(@RequestBody Map h2sDataMap) { + System.out.println(JSON.toJSON(h2sDataMap)); + return thirdDataService.h2sData(h2sDataMap); } - @RequestMapping("/data") - public Object getDeviceData(@RequestBody Map pressureDataMap) { - System.out.println(JSON.toJSON(pressureDataMap)); - Map map = new HashMap(); - map.put("method", "setParams"); - Map param = new HashMap(); - param.put("ip", "大胆猜测下"); - map.put("status", 200); - map.put("params", param); - map.put("timeout", "3000"); - return map; + @RequestMapping("/test") + public Object testNbResponse (@RequestBody Map h2sDataMap){ + ResponseData responseData=new ResponseData(); + responseData.setCode(200); + responseData.setData("oyAAGDcgFAEAAcMAAQWfAXOJd1POnas6zxTmU7jQkVJinQ=="); + System.out.println(JSON.toJSON(h2sDataMap)); + return responseData; } } diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/casic/config/AliYunConfig.java b/src/main/java/com/casic/config/AliYunConfig.java deleted file mode 100644 index 090b6ab..0000000 --- a/src/main/java/com/casic/config/AliYunConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Slf4j -@Configuration -@ConfigurationProperties(prefix = "casic.ali") -@Data -public class AliYunConfig { - - private String key; - private String screct; - private String url; - private String signNameJson; - private String templateCode; - -} diff --git a/src/main/java/com/casic/config/ApiHikomConfig.java b/src/main/java/com/casic/config/ApiHikomConfig.java deleted file mode 100644 index 73b3550..0000000 --- a/src/main/java/com/casic/config/ApiHikomConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -@Data -public class ApiHikomConfig { - @Value("${casic.hikom.host}") - private String hikomHost; - @Value("${casic.hikom.url}") - private String hikomUrl; -} diff --git a/src/main/java/com/casic/config/task/TaskConfigurer.java b/src/main/java/com/casic/config/task/TaskConfigurer.java new file mode 100644 index 0000000..43282d3 --- /dev/null +++ b/src/main/java/com/casic/config/task/TaskConfigurer.java @@ -0,0 +1,44 @@ +package com.casic.config.task; + +import com.casic.service.DeviceDataService; +import com.casic.service.ThirdDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.config.TriggerTask; +import org.springframework.scheduling.support.CronTrigger; + +/** + * @author cz + */ +@Configuration +@EnableScheduling +public class TaskConfigurer implements SchedulingConfigurer { + + @Value("${casic.device.online.corn}") + private String timeConfig; + @Autowired + private DeviceDataService deviceDataService; + + @Override + public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + TriggerTask triggrtTask = new TriggerTask(nextDayDevice(), + triggerContext -> { + return new CronTrigger(timeConfig).nextExecutionTime(triggerContext); + }); + taskRegistrar.addTriggerTask(triggrtTask); + } + + private Runnable nextDayDevice() { + return new Runnable() { + @Override + public void run() { + deviceDataService.checkAndUpdateDeviceOnline(); + } + }; + } + +} \ No newline at end of file diff --git a/src/main/java/com/casic/controller/AlarmController.java b/src/main/java/com/casic/controller/AlarmController.java deleted file mode 100644 index 957fc36..0000000 --- a/src/main/java/com/casic/controller/AlarmController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmConfigParam; -import com.casic.service.AlarmService; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/alarm") -public class AlarmController { - - private final AlarmService alarmService; - - public AlarmController(AlarmService alarmService) { - this.alarmService = alarmService; - } - - @RequestMapping("/records") - public Object getAlarmRecord(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "currentIndex", required = true) Integer currentIndex, - @RequestParam(value = "devcode",required =false) String devcode, - @RequestParam(value = "pageSize", required = true) Integer pageSize) { - return alarmService.getAlarmRecord(deviceType,currentIndex,pageSize,devcode); - } - - @RequestMapping("/batch/cancel") - public Object excuteAlramBatchCancel(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "devcode",required =false) String devcode) { - return alarmService.excuteAlramBatchCancel(deviceType,devcode); - } - - @RequestMapping("/config/add") - public Object addAlarmConfig(@RequestBody AlarmConfigParam alarmConfigParam) { - return alarmService.addAlarmConfig(alarmConfigParam); - } -} diff --git a/src/main/java/com/casic/controller/AlarmPushController.java b/src/main/java/com/casic/controller/AlarmPushController.java deleted file mode 100644 index 1642f9b..0000000 --- a/src/main/java/com/casic/controller/AlarmPushController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmPushConfig; -import com.casic.service.AlarmPushService; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.*; - -@RestController -@AllArgsConstructor -@RequestMapping("/alarm") -public class AlarmPushController { - - private AlarmPushService alarmPushService; - - @RequestMapping("/push/config") - @ResponseBody - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - return alarmPushService.alarmPushConfig(alarmSwitchConfig); - } - - @RequestMapping("/push/query") - public Object alarmPushQuery(@RequestParam(value = "scene", required = true) String scene) { - return alarmPushService.getAlarmPush(scene); - } - -} diff --git a/src/main/java/com/casic/controller/ArtemisValidController.java b/src/main/java/com/casic/controller/ArtemisValidController.java deleted file mode 100644 index 1d52576..0000000 --- a/src/main/java/com/casic/controller/ArtemisValidController.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.controller; - -import com.casic.model.HkvideoValidParam; -import com.casic.model.ResponseData; -import com.casic.util.ArtemisPostUtil; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 海康接口 - */ -@AllArgsConstructor -@RestController -public class ArtemisValidController { - private final ArtemisPostUtil artemisPostUtill; - - @RequestMapping("/hkvideo/getVideoUrl") - public ResponseData getVideoUrl(@RequestBody HkvideoValidParam hkvideoValidParam) { - - return artemisPostUtill.artemisPost(hkvideoValidParam); - } - -} diff --git a/src/main/java/com/casic/controller/MessagePusherController.java b/src/main/java/com/casic/controller/MessagePusherController.java index d447c05..b97dcd1 100644 --- a/src/main/java/com/casic/controller/MessagePusherController.java +++ b/src/main/java/com/casic/controller/MessagePusherController.java @@ -32,8 +32,7 @@ } catch (UnsupportedEncodingException e) { e.printStackTrace(); } - return retMap; - } + return retMap; } //报警开关按钮 // diff --git a/src/main/java/com/casic/controller/ThirdDataController.java b/src/main/java/com/casic/controller/ThirdDataController.java index d910a7d..fbd8e59 100644 --- a/src/main/java/com/casic/controller/ThirdDataController.java +++ b/src/main/java/com/casic/controller/ThirdDataController.java @@ -1,8 +1,6 @@ package com.casic.controller; import com.alibaba.fastjson.JSON; -import com.casic.model.CommConfigDTO; -import com.casic.model.PressureDataParam; import com.casic.model.ResponseData; import com.casic.service.ThirdDataService; import lombok.extern.slf4j.Slf4j; @@ -10,7 +8,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.HashMap; import java.util.Map; @RestController @@ -24,22 +21,25 @@ this.thirdDataService = thirdDataService; } - @RequestMapping("/pressure/data") - public Object getDeviceRecentData(@RequestBody PressureDataParam pressureData) { - return thirdDataService.getDeviceRecentData(pressureData); + /** + * 硫化氢订阅接口 + * + * @param h2sDataMap + * @return + */ + @RequestMapping("/h2s-data") + public Object h2sData(@RequestBody Map h2sDataMap) { + System.out.println(JSON.toJSON(h2sDataMap)); + return thirdDataService.h2sData(h2sDataMap); } - @RequestMapping("/data") - public Object getDeviceData(@RequestBody Map pressureDataMap) { - System.out.println(JSON.toJSON(pressureDataMap)); - Map map = new HashMap(); - map.put("method", "setParams"); - Map param = new HashMap(); - param.put("ip", "大胆猜测下"); - map.put("status", 200); - map.put("params", param); - map.put("timeout", "3000"); - return map; + @RequestMapping("/test") + public Object testNbResponse (@RequestBody Map h2sDataMap){ + ResponseData responseData=new ResponseData(); + responseData.setCode(200); + responseData.setData("oyAAGDcgFAEAAcMAAQWfAXOJd1POnas6zxTmU7jQkVJinQ=="); + System.out.println(JSON.toJSON(h2sDataMap)); + return responseData; } } diff --git a/src/main/java/com/casic/dao/AlarmPushMapper.java b/src/main/java/com/casic/dao/AlarmPushMapper.java deleted file mode 100644 index 9d7484b..0000000 --- a/src/main/java/com/casic/dao/AlarmPushMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.AlarmPushConfig; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface AlarmPushMapper extends BaseMapper { -} diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/casic/config/AliYunConfig.java b/src/main/java/com/casic/config/AliYunConfig.java deleted file mode 100644 index 090b6ab..0000000 --- a/src/main/java/com/casic/config/AliYunConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Slf4j -@Configuration -@ConfigurationProperties(prefix = "casic.ali") -@Data -public class AliYunConfig { - - private String key; - private String screct; - private String url; - private String signNameJson; - private String templateCode; - -} diff --git a/src/main/java/com/casic/config/ApiHikomConfig.java b/src/main/java/com/casic/config/ApiHikomConfig.java deleted file mode 100644 index 73b3550..0000000 --- a/src/main/java/com/casic/config/ApiHikomConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -@Data -public class ApiHikomConfig { - @Value("${casic.hikom.host}") - private String hikomHost; - @Value("${casic.hikom.url}") - private String hikomUrl; -} diff --git a/src/main/java/com/casic/config/task/TaskConfigurer.java b/src/main/java/com/casic/config/task/TaskConfigurer.java new file mode 100644 index 0000000..43282d3 --- /dev/null +++ b/src/main/java/com/casic/config/task/TaskConfigurer.java @@ -0,0 +1,44 @@ +package com.casic.config.task; + +import com.casic.service.DeviceDataService; +import com.casic.service.ThirdDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.config.TriggerTask; +import org.springframework.scheduling.support.CronTrigger; + +/** + * @author cz + */ +@Configuration +@EnableScheduling +public class TaskConfigurer implements SchedulingConfigurer { + + @Value("${casic.device.online.corn}") + private String timeConfig; + @Autowired + private DeviceDataService deviceDataService; + + @Override + public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + TriggerTask triggrtTask = new TriggerTask(nextDayDevice(), + triggerContext -> { + return new CronTrigger(timeConfig).nextExecutionTime(triggerContext); + }); + taskRegistrar.addTriggerTask(triggrtTask); + } + + private Runnable nextDayDevice() { + return new Runnable() { + @Override + public void run() { + deviceDataService.checkAndUpdateDeviceOnline(); + } + }; + } + +} \ No newline at end of file diff --git a/src/main/java/com/casic/controller/AlarmController.java b/src/main/java/com/casic/controller/AlarmController.java deleted file mode 100644 index 957fc36..0000000 --- a/src/main/java/com/casic/controller/AlarmController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmConfigParam; -import com.casic.service.AlarmService; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/alarm") -public class AlarmController { - - private final AlarmService alarmService; - - public AlarmController(AlarmService alarmService) { - this.alarmService = alarmService; - } - - @RequestMapping("/records") - public Object getAlarmRecord(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "currentIndex", required = true) Integer currentIndex, - @RequestParam(value = "devcode",required =false) String devcode, - @RequestParam(value = "pageSize", required = true) Integer pageSize) { - return alarmService.getAlarmRecord(deviceType,currentIndex,pageSize,devcode); - } - - @RequestMapping("/batch/cancel") - public Object excuteAlramBatchCancel(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "devcode",required =false) String devcode) { - return alarmService.excuteAlramBatchCancel(deviceType,devcode); - } - - @RequestMapping("/config/add") - public Object addAlarmConfig(@RequestBody AlarmConfigParam alarmConfigParam) { - return alarmService.addAlarmConfig(alarmConfigParam); - } -} diff --git a/src/main/java/com/casic/controller/AlarmPushController.java b/src/main/java/com/casic/controller/AlarmPushController.java deleted file mode 100644 index 1642f9b..0000000 --- a/src/main/java/com/casic/controller/AlarmPushController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmPushConfig; -import com.casic.service.AlarmPushService; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.*; - -@RestController -@AllArgsConstructor -@RequestMapping("/alarm") -public class AlarmPushController { - - private AlarmPushService alarmPushService; - - @RequestMapping("/push/config") - @ResponseBody - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - return alarmPushService.alarmPushConfig(alarmSwitchConfig); - } - - @RequestMapping("/push/query") - public Object alarmPushQuery(@RequestParam(value = "scene", required = true) String scene) { - return alarmPushService.getAlarmPush(scene); - } - -} diff --git a/src/main/java/com/casic/controller/ArtemisValidController.java b/src/main/java/com/casic/controller/ArtemisValidController.java deleted file mode 100644 index 1d52576..0000000 --- a/src/main/java/com/casic/controller/ArtemisValidController.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.controller; - -import com.casic.model.HkvideoValidParam; -import com.casic.model.ResponseData; -import com.casic.util.ArtemisPostUtil; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 海康接口 - */ -@AllArgsConstructor -@RestController -public class ArtemisValidController { - private final ArtemisPostUtil artemisPostUtill; - - @RequestMapping("/hkvideo/getVideoUrl") - public ResponseData getVideoUrl(@RequestBody HkvideoValidParam hkvideoValidParam) { - - return artemisPostUtill.artemisPost(hkvideoValidParam); - } - -} diff --git a/src/main/java/com/casic/controller/MessagePusherController.java b/src/main/java/com/casic/controller/MessagePusherController.java index d447c05..b97dcd1 100644 --- a/src/main/java/com/casic/controller/MessagePusherController.java +++ b/src/main/java/com/casic/controller/MessagePusherController.java @@ -32,8 +32,7 @@ } catch (UnsupportedEncodingException e) { e.printStackTrace(); } - return retMap; - } + return retMap; } //报警开关按钮 // diff --git a/src/main/java/com/casic/controller/ThirdDataController.java b/src/main/java/com/casic/controller/ThirdDataController.java index d910a7d..fbd8e59 100644 --- a/src/main/java/com/casic/controller/ThirdDataController.java +++ b/src/main/java/com/casic/controller/ThirdDataController.java @@ -1,8 +1,6 @@ package com.casic.controller; import com.alibaba.fastjson.JSON; -import com.casic.model.CommConfigDTO; -import com.casic.model.PressureDataParam; import com.casic.model.ResponseData; import com.casic.service.ThirdDataService; import lombok.extern.slf4j.Slf4j; @@ -10,7 +8,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.HashMap; import java.util.Map; @RestController @@ -24,22 +21,25 @@ this.thirdDataService = thirdDataService; } - @RequestMapping("/pressure/data") - public Object getDeviceRecentData(@RequestBody PressureDataParam pressureData) { - return thirdDataService.getDeviceRecentData(pressureData); + /** + * 硫化氢订阅接口 + * + * @param h2sDataMap + * @return + */ + @RequestMapping("/h2s-data") + public Object h2sData(@RequestBody Map h2sDataMap) { + System.out.println(JSON.toJSON(h2sDataMap)); + return thirdDataService.h2sData(h2sDataMap); } - @RequestMapping("/data") - public Object getDeviceData(@RequestBody Map pressureDataMap) { - System.out.println(JSON.toJSON(pressureDataMap)); - Map map = new HashMap(); - map.put("method", "setParams"); - Map param = new HashMap(); - param.put("ip", "大胆猜测下"); - map.put("status", 200); - map.put("params", param); - map.put("timeout", "3000"); - return map; + @RequestMapping("/test") + public Object testNbResponse (@RequestBody Map h2sDataMap){ + ResponseData responseData=new ResponseData(); + responseData.setCode(200); + responseData.setData("oyAAGDcgFAEAAcMAAQWfAXOJd1POnas6zxTmU7jQkVJinQ=="); + System.out.println(JSON.toJSON(h2sDataMap)); + return responseData; } } diff --git a/src/main/java/com/casic/dao/AlarmPushMapper.java b/src/main/java/com/casic/dao/AlarmPushMapper.java deleted file mode 100644 index 9d7484b..0000000 --- a/src/main/java/com/casic/dao/AlarmPushMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.AlarmPushConfig; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface AlarmPushMapper extends BaseMapper { -} diff --git a/src/main/java/com/casic/dao/AlarmRecordMapper.java b/src/main/java/com/casic/dao/AlarmRecordMapper.java new file mode 100644 index 0000000..d8a4911 --- /dev/null +++ b/src/main/java/com/casic/dao/AlarmRecordMapper.java @@ -0,0 +1,12 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.AlarmRecord; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AlarmRecordMapper extends BaseMapper { + + + +} diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/casic/config/AliYunConfig.java b/src/main/java/com/casic/config/AliYunConfig.java deleted file mode 100644 index 090b6ab..0000000 --- a/src/main/java/com/casic/config/AliYunConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Slf4j -@Configuration -@ConfigurationProperties(prefix = "casic.ali") -@Data -public class AliYunConfig { - - private String key; - private String screct; - private String url; - private String signNameJson; - private String templateCode; - -} diff --git a/src/main/java/com/casic/config/ApiHikomConfig.java b/src/main/java/com/casic/config/ApiHikomConfig.java deleted file mode 100644 index 73b3550..0000000 --- a/src/main/java/com/casic/config/ApiHikomConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -@Data -public class ApiHikomConfig { - @Value("${casic.hikom.host}") - private String hikomHost; - @Value("${casic.hikom.url}") - private String hikomUrl; -} diff --git a/src/main/java/com/casic/config/task/TaskConfigurer.java b/src/main/java/com/casic/config/task/TaskConfigurer.java new file mode 100644 index 0000000..43282d3 --- /dev/null +++ b/src/main/java/com/casic/config/task/TaskConfigurer.java @@ -0,0 +1,44 @@ +package com.casic.config.task; + +import com.casic.service.DeviceDataService; +import com.casic.service.ThirdDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.config.TriggerTask; +import org.springframework.scheduling.support.CronTrigger; + +/** + * @author cz + */ +@Configuration +@EnableScheduling +public class TaskConfigurer implements SchedulingConfigurer { + + @Value("${casic.device.online.corn}") + private String timeConfig; + @Autowired + private DeviceDataService deviceDataService; + + @Override + public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + TriggerTask triggrtTask = new TriggerTask(nextDayDevice(), + triggerContext -> { + return new CronTrigger(timeConfig).nextExecutionTime(triggerContext); + }); + taskRegistrar.addTriggerTask(triggrtTask); + } + + private Runnable nextDayDevice() { + return new Runnable() { + @Override + public void run() { + deviceDataService.checkAndUpdateDeviceOnline(); + } + }; + } + +} \ No newline at end of file diff --git a/src/main/java/com/casic/controller/AlarmController.java b/src/main/java/com/casic/controller/AlarmController.java deleted file mode 100644 index 957fc36..0000000 --- a/src/main/java/com/casic/controller/AlarmController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmConfigParam; -import com.casic.service.AlarmService; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/alarm") -public class AlarmController { - - private final AlarmService alarmService; - - public AlarmController(AlarmService alarmService) { - this.alarmService = alarmService; - } - - @RequestMapping("/records") - public Object getAlarmRecord(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "currentIndex", required = true) Integer currentIndex, - @RequestParam(value = "devcode",required =false) String devcode, - @RequestParam(value = "pageSize", required = true) Integer pageSize) { - return alarmService.getAlarmRecord(deviceType,currentIndex,pageSize,devcode); - } - - @RequestMapping("/batch/cancel") - public Object excuteAlramBatchCancel(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "devcode",required =false) String devcode) { - return alarmService.excuteAlramBatchCancel(deviceType,devcode); - } - - @RequestMapping("/config/add") - public Object addAlarmConfig(@RequestBody AlarmConfigParam alarmConfigParam) { - return alarmService.addAlarmConfig(alarmConfigParam); - } -} diff --git a/src/main/java/com/casic/controller/AlarmPushController.java b/src/main/java/com/casic/controller/AlarmPushController.java deleted file mode 100644 index 1642f9b..0000000 --- a/src/main/java/com/casic/controller/AlarmPushController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmPushConfig; -import com.casic.service.AlarmPushService; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.*; - -@RestController -@AllArgsConstructor -@RequestMapping("/alarm") -public class AlarmPushController { - - private AlarmPushService alarmPushService; - - @RequestMapping("/push/config") - @ResponseBody - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - return alarmPushService.alarmPushConfig(alarmSwitchConfig); - } - - @RequestMapping("/push/query") - public Object alarmPushQuery(@RequestParam(value = "scene", required = true) String scene) { - return alarmPushService.getAlarmPush(scene); - } - -} diff --git a/src/main/java/com/casic/controller/ArtemisValidController.java b/src/main/java/com/casic/controller/ArtemisValidController.java deleted file mode 100644 index 1d52576..0000000 --- a/src/main/java/com/casic/controller/ArtemisValidController.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.controller; - -import com.casic.model.HkvideoValidParam; -import com.casic.model.ResponseData; -import com.casic.util.ArtemisPostUtil; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 海康接口 - */ -@AllArgsConstructor -@RestController -public class ArtemisValidController { - private final ArtemisPostUtil artemisPostUtill; - - @RequestMapping("/hkvideo/getVideoUrl") - public ResponseData getVideoUrl(@RequestBody HkvideoValidParam hkvideoValidParam) { - - return artemisPostUtill.artemisPost(hkvideoValidParam); - } - -} diff --git a/src/main/java/com/casic/controller/MessagePusherController.java b/src/main/java/com/casic/controller/MessagePusherController.java index d447c05..b97dcd1 100644 --- a/src/main/java/com/casic/controller/MessagePusherController.java +++ b/src/main/java/com/casic/controller/MessagePusherController.java @@ -32,8 +32,7 @@ } catch (UnsupportedEncodingException e) { e.printStackTrace(); } - return retMap; - } + return retMap; } //报警开关按钮 // diff --git a/src/main/java/com/casic/controller/ThirdDataController.java b/src/main/java/com/casic/controller/ThirdDataController.java index d910a7d..fbd8e59 100644 --- a/src/main/java/com/casic/controller/ThirdDataController.java +++ b/src/main/java/com/casic/controller/ThirdDataController.java @@ -1,8 +1,6 @@ package com.casic.controller; import com.alibaba.fastjson.JSON; -import com.casic.model.CommConfigDTO; -import com.casic.model.PressureDataParam; import com.casic.model.ResponseData; import com.casic.service.ThirdDataService; import lombok.extern.slf4j.Slf4j; @@ -10,7 +8,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.HashMap; import java.util.Map; @RestController @@ -24,22 +21,25 @@ this.thirdDataService = thirdDataService; } - @RequestMapping("/pressure/data") - public Object getDeviceRecentData(@RequestBody PressureDataParam pressureData) { - return thirdDataService.getDeviceRecentData(pressureData); + /** + * 硫化氢订阅接口 + * + * @param h2sDataMap + * @return + */ + @RequestMapping("/h2s-data") + public Object h2sData(@RequestBody Map h2sDataMap) { + System.out.println(JSON.toJSON(h2sDataMap)); + return thirdDataService.h2sData(h2sDataMap); } - @RequestMapping("/data") - public Object getDeviceData(@RequestBody Map pressureDataMap) { - System.out.println(JSON.toJSON(pressureDataMap)); - Map map = new HashMap(); - map.put("method", "setParams"); - Map param = new HashMap(); - param.put("ip", "大胆猜测下"); - map.put("status", 200); - map.put("params", param); - map.put("timeout", "3000"); - return map; + @RequestMapping("/test") + public Object testNbResponse (@RequestBody Map h2sDataMap){ + ResponseData responseData=new ResponseData(); + responseData.setCode(200); + responseData.setData("oyAAGDcgFAEAAcMAAQWfAXOJd1POnas6zxTmU7jQkVJinQ=="); + System.out.println(JSON.toJSON(h2sDataMap)); + return responseData; } } diff --git a/src/main/java/com/casic/dao/AlarmPushMapper.java b/src/main/java/com/casic/dao/AlarmPushMapper.java deleted file mode 100644 index 9d7484b..0000000 --- a/src/main/java/com/casic/dao/AlarmPushMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.AlarmPushConfig; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface AlarmPushMapper extends BaseMapper { -} diff --git a/src/main/java/com/casic/dao/AlarmRecordMapper.java b/src/main/java/com/casic/dao/AlarmRecordMapper.java new file mode 100644 index 0000000..d8a4911 --- /dev/null +++ b/src/main/java/com/casic/dao/AlarmRecordMapper.java @@ -0,0 +1,12 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.AlarmRecord; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AlarmRecordMapper extends BaseMapper { + + + +} diff --git a/src/main/java/com/casic/dao/DataH2sMapper.java b/src/main/java/com/casic/dao/DataH2sMapper.java new file mode 100644 index 0000000..434f1e2 --- /dev/null +++ b/src/main/java/com/casic/dao/DataH2sMapper.java @@ -0,0 +1,27 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.DataH2s; +import com.casic.model.DataPressure; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; + +@Mapper +public interface DataH2sMapper extends BaseMapper { + + int clearOnline(@Param("devcode") String devcode); + + String getWellCode(@Param("devcode") String devcode); + + Float getRuleValue(@Param("deviceType") String deviceType); + + int cancelAlarm(@Param("devcode") String devcode, @Param("status") String status); + + String getImeiByDevcode(@Param("devcode") String devcode); + + int updateImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); + + int addImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); +} diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/casic/config/AliYunConfig.java b/src/main/java/com/casic/config/AliYunConfig.java deleted file mode 100644 index 090b6ab..0000000 --- a/src/main/java/com/casic/config/AliYunConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Slf4j -@Configuration -@ConfigurationProperties(prefix = "casic.ali") -@Data -public class AliYunConfig { - - private String key; - private String screct; - private String url; - private String signNameJson; - private String templateCode; - -} diff --git a/src/main/java/com/casic/config/ApiHikomConfig.java b/src/main/java/com/casic/config/ApiHikomConfig.java deleted file mode 100644 index 73b3550..0000000 --- a/src/main/java/com/casic/config/ApiHikomConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -@Data -public class ApiHikomConfig { - @Value("${casic.hikom.host}") - private String hikomHost; - @Value("${casic.hikom.url}") - private String hikomUrl; -} diff --git a/src/main/java/com/casic/config/task/TaskConfigurer.java b/src/main/java/com/casic/config/task/TaskConfigurer.java new file mode 100644 index 0000000..43282d3 --- /dev/null +++ b/src/main/java/com/casic/config/task/TaskConfigurer.java @@ -0,0 +1,44 @@ +package com.casic.config.task; + +import com.casic.service.DeviceDataService; +import com.casic.service.ThirdDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.config.TriggerTask; +import org.springframework.scheduling.support.CronTrigger; + +/** + * @author cz + */ +@Configuration +@EnableScheduling +public class TaskConfigurer implements SchedulingConfigurer { + + @Value("${casic.device.online.corn}") + private String timeConfig; + @Autowired + private DeviceDataService deviceDataService; + + @Override + public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + TriggerTask triggrtTask = new TriggerTask(nextDayDevice(), + triggerContext -> { + return new CronTrigger(timeConfig).nextExecutionTime(triggerContext); + }); + taskRegistrar.addTriggerTask(triggrtTask); + } + + private Runnable nextDayDevice() { + return new Runnable() { + @Override + public void run() { + deviceDataService.checkAndUpdateDeviceOnline(); + } + }; + } + +} \ No newline at end of file diff --git a/src/main/java/com/casic/controller/AlarmController.java b/src/main/java/com/casic/controller/AlarmController.java deleted file mode 100644 index 957fc36..0000000 --- a/src/main/java/com/casic/controller/AlarmController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmConfigParam; -import com.casic.service.AlarmService; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/alarm") -public class AlarmController { - - private final AlarmService alarmService; - - public AlarmController(AlarmService alarmService) { - this.alarmService = alarmService; - } - - @RequestMapping("/records") - public Object getAlarmRecord(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "currentIndex", required = true) Integer currentIndex, - @RequestParam(value = "devcode",required =false) String devcode, - @RequestParam(value = "pageSize", required = true) Integer pageSize) { - return alarmService.getAlarmRecord(deviceType,currentIndex,pageSize,devcode); - } - - @RequestMapping("/batch/cancel") - public Object excuteAlramBatchCancel(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "devcode",required =false) String devcode) { - return alarmService.excuteAlramBatchCancel(deviceType,devcode); - } - - @RequestMapping("/config/add") - public Object addAlarmConfig(@RequestBody AlarmConfigParam alarmConfigParam) { - return alarmService.addAlarmConfig(alarmConfigParam); - } -} diff --git a/src/main/java/com/casic/controller/AlarmPushController.java b/src/main/java/com/casic/controller/AlarmPushController.java deleted file mode 100644 index 1642f9b..0000000 --- a/src/main/java/com/casic/controller/AlarmPushController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmPushConfig; -import com.casic.service.AlarmPushService; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.*; - -@RestController -@AllArgsConstructor -@RequestMapping("/alarm") -public class AlarmPushController { - - private AlarmPushService alarmPushService; - - @RequestMapping("/push/config") - @ResponseBody - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - return alarmPushService.alarmPushConfig(alarmSwitchConfig); - } - - @RequestMapping("/push/query") - public Object alarmPushQuery(@RequestParam(value = "scene", required = true) String scene) { - return alarmPushService.getAlarmPush(scene); - } - -} diff --git a/src/main/java/com/casic/controller/ArtemisValidController.java b/src/main/java/com/casic/controller/ArtemisValidController.java deleted file mode 100644 index 1d52576..0000000 --- a/src/main/java/com/casic/controller/ArtemisValidController.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.controller; - -import com.casic.model.HkvideoValidParam; -import com.casic.model.ResponseData; -import com.casic.util.ArtemisPostUtil; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 海康接口 - */ -@AllArgsConstructor -@RestController -public class ArtemisValidController { - private final ArtemisPostUtil artemisPostUtill; - - @RequestMapping("/hkvideo/getVideoUrl") - public ResponseData getVideoUrl(@RequestBody HkvideoValidParam hkvideoValidParam) { - - return artemisPostUtill.artemisPost(hkvideoValidParam); - } - -} diff --git a/src/main/java/com/casic/controller/MessagePusherController.java b/src/main/java/com/casic/controller/MessagePusherController.java index d447c05..b97dcd1 100644 --- a/src/main/java/com/casic/controller/MessagePusherController.java +++ b/src/main/java/com/casic/controller/MessagePusherController.java @@ -32,8 +32,7 @@ } catch (UnsupportedEncodingException e) { e.printStackTrace(); } - return retMap; - } + return retMap; } //报警开关按钮 // diff --git a/src/main/java/com/casic/controller/ThirdDataController.java b/src/main/java/com/casic/controller/ThirdDataController.java index d910a7d..fbd8e59 100644 --- a/src/main/java/com/casic/controller/ThirdDataController.java +++ b/src/main/java/com/casic/controller/ThirdDataController.java @@ -1,8 +1,6 @@ package com.casic.controller; import com.alibaba.fastjson.JSON; -import com.casic.model.CommConfigDTO; -import com.casic.model.PressureDataParam; import com.casic.model.ResponseData; import com.casic.service.ThirdDataService; import lombok.extern.slf4j.Slf4j; @@ -10,7 +8,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.HashMap; import java.util.Map; @RestController @@ -24,22 +21,25 @@ this.thirdDataService = thirdDataService; } - @RequestMapping("/pressure/data") - public Object getDeviceRecentData(@RequestBody PressureDataParam pressureData) { - return thirdDataService.getDeviceRecentData(pressureData); + /** + * 硫化氢订阅接口 + * + * @param h2sDataMap + * @return + */ + @RequestMapping("/h2s-data") + public Object h2sData(@RequestBody Map h2sDataMap) { + System.out.println(JSON.toJSON(h2sDataMap)); + return thirdDataService.h2sData(h2sDataMap); } - @RequestMapping("/data") - public Object getDeviceData(@RequestBody Map pressureDataMap) { - System.out.println(JSON.toJSON(pressureDataMap)); - Map map = new HashMap(); - map.put("method", "setParams"); - Map param = new HashMap(); - param.put("ip", "大胆猜测下"); - map.put("status", 200); - map.put("params", param); - map.put("timeout", "3000"); - return map; + @RequestMapping("/test") + public Object testNbResponse (@RequestBody Map h2sDataMap){ + ResponseData responseData=new ResponseData(); + responseData.setCode(200); + responseData.setData("oyAAGDcgFAEAAcMAAQWfAXOJd1POnas6zxTmU7jQkVJinQ=="); + System.out.println(JSON.toJSON(h2sDataMap)); + return responseData; } } diff --git a/src/main/java/com/casic/dao/AlarmPushMapper.java b/src/main/java/com/casic/dao/AlarmPushMapper.java deleted file mode 100644 index 9d7484b..0000000 --- a/src/main/java/com/casic/dao/AlarmPushMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.AlarmPushConfig; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface AlarmPushMapper extends BaseMapper { -} diff --git a/src/main/java/com/casic/dao/AlarmRecordMapper.java b/src/main/java/com/casic/dao/AlarmRecordMapper.java new file mode 100644 index 0000000..d8a4911 --- /dev/null +++ b/src/main/java/com/casic/dao/AlarmRecordMapper.java @@ -0,0 +1,12 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.AlarmRecord; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AlarmRecordMapper extends BaseMapper { + + + +} diff --git a/src/main/java/com/casic/dao/DataH2sMapper.java b/src/main/java/com/casic/dao/DataH2sMapper.java new file mode 100644 index 0000000..434f1e2 --- /dev/null +++ b/src/main/java/com/casic/dao/DataH2sMapper.java @@ -0,0 +1,27 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.DataH2s; +import com.casic.model.DataPressure; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; + +@Mapper +public interface DataH2sMapper extends BaseMapper { + + int clearOnline(@Param("devcode") String devcode); + + String getWellCode(@Param("devcode") String devcode); + + Float getRuleValue(@Param("deviceType") String deviceType); + + int cancelAlarm(@Param("devcode") String devcode, @Param("status") String status); + + String getImeiByDevcode(@Param("devcode") String devcode); + + int updateImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); + + int addImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); +} diff --git a/src/main/java/com/casic/dao/DataPressureMapper.java b/src/main/java/com/casic/dao/DataPressureMapper.java deleted file mode 100644 index 05f4329..0000000 --- a/src/main/java/com/casic/dao/DataPressureMapper.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.DataPressure; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.Date; - -@Mapper -public interface DataPressureMapper extends BaseMapper { - - String getWellCode(@Param("devcode") String devcode); - - Float getRuleValue(@Param("deviceType") String deviceType); - - void saveRecords(@Param("reValue") String reValue, @Param("alarmTime") Date alarmTime); - -} diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/casic/config/AliYunConfig.java b/src/main/java/com/casic/config/AliYunConfig.java deleted file mode 100644 index 090b6ab..0000000 --- a/src/main/java/com/casic/config/AliYunConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Slf4j -@Configuration -@ConfigurationProperties(prefix = "casic.ali") -@Data -public class AliYunConfig { - - private String key; - private String screct; - private String url; - private String signNameJson; - private String templateCode; - -} diff --git a/src/main/java/com/casic/config/ApiHikomConfig.java b/src/main/java/com/casic/config/ApiHikomConfig.java deleted file mode 100644 index 73b3550..0000000 --- a/src/main/java/com/casic/config/ApiHikomConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -@Data -public class ApiHikomConfig { - @Value("${casic.hikom.host}") - private String hikomHost; - @Value("${casic.hikom.url}") - private String hikomUrl; -} diff --git a/src/main/java/com/casic/config/task/TaskConfigurer.java b/src/main/java/com/casic/config/task/TaskConfigurer.java new file mode 100644 index 0000000..43282d3 --- /dev/null +++ b/src/main/java/com/casic/config/task/TaskConfigurer.java @@ -0,0 +1,44 @@ +package com.casic.config.task; + +import com.casic.service.DeviceDataService; +import com.casic.service.ThirdDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.config.TriggerTask; +import org.springframework.scheduling.support.CronTrigger; + +/** + * @author cz + */ +@Configuration +@EnableScheduling +public class TaskConfigurer implements SchedulingConfigurer { + + @Value("${casic.device.online.corn}") + private String timeConfig; + @Autowired + private DeviceDataService deviceDataService; + + @Override + public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + TriggerTask triggrtTask = new TriggerTask(nextDayDevice(), + triggerContext -> { + return new CronTrigger(timeConfig).nextExecutionTime(triggerContext); + }); + taskRegistrar.addTriggerTask(triggrtTask); + } + + private Runnable nextDayDevice() { + return new Runnable() { + @Override + public void run() { + deviceDataService.checkAndUpdateDeviceOnline(); + } + }; + } + +} \ No newline at end of file diff --git a/src/main/java/com/casic/controller/AlarmController.java b/src/main/java/com/casic/controller/AlarmController.java deleted file mode 100644 index 957fc36..0000000 --- a/src/main/java/com/casic/controller/AlarmController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmConfigParam; -import com.casic.service.AlarmService; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/alarm") -public class AlarmController { - - private final AlarmService alarmService; - - public AlarmController(AlarmService alarmService) { - this.alarmService = alarmService; - } - - @RequestMapping("/records") - public Object getAlarmRecord(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "currentIndex", required = true) Integer currentIndex, - @RequestParam(value = "devcode",required =false) String devcode, - @RequestParam(value = "pageSize", required = true) Integer pageSize) { - return alarmService.getAlarmRecord(deviceType,currentIndex,pageSize,devcode); - } - - @RequestMapping("/batch/cancel") - public Object excuteAlramBatchCancel(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "devcode",required =false) String devcode) { - return alarmService.excuteAlramBatchCancel(deviceType,devcode); - } - - @RequestMapping("/config/add") - public Object addAlarmConfig(@RequestBody AlarmConfigParam alarmConfigParam) { - return alarmService.addAlarmConfig(alarmConfigParam); - } -} diff --git a/src/main/java/com/casic/controller/AlarmPushController.java b/src/main/java/com/casic/controller/AlarmPushController.java deleted file mode 100644 index 1642f9b..0000000 --- a/src/main/java/com/casic/controller/AlarmPushController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmPushConfig; -import com.casic.service.AlarmPushService; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.*; - -@RestController -@AllArgsConstructor -@RequestMapping("/alarm") -public class AlarmPushController { - - private AlarmPushService alarmPushService; - - @RequestMapping("/push/config") - @ResponseBody - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - return alarmPushService.alarmPushConfig(alarmSwitchConfig); - } - - @RequestMapping("/push/query") - public Object alarmPushQuery(@RequestParam(value = "scene", required = true) String scene) { - return alarmPushService.getAlarmPush(scene); - } - -} diff --git a/src/main/java/com/casic/controller/ArtemisValidController.java b/src/main/java/com/casic/controller/ArtemisValidController.java deleted file mode 100644 index 1d52576..0000000 --- a/src/main/java/com/casic/controller/ArtemisValidController.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.controller; - -import com.casic.model.HkvideoValidParam; -import com.casic.model.ResponseData; -import com.casic.util.ArtemisPostUtil; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 海康接口 - */ -@AllArgsConstructor -@RestController -public class ArtemisValidController { - private final ArtemisPostUtil artemisPostUtill; - - @RequestMapping("/hkvideo/getVideoUrl") - public ResponseData getVideoUrl(@RequestBody HkvideoValidParam hkvideoValidParam) { - - return artemisPostUtill.artemisPost(hkvideoValidParam); - } - -} diff --git a/src/main/java/com/casic/controller/MessagePusherController.java b/src/main/java/com/casic/controller/MessagePusherController.java index d447c05..b97dcd1 100644 --- a/src/main/java/com/casic/controller/MessagePusherController.java +++ b/src/main/java/com/casic/controller/MessagePusherController.java @@ -32,8 +32,7 @@ } catch (UnsupportedEncodingException e) { e.printStackTrace(); } - return retMap; - } + return retMap; } //报警开关按钮 // diff --git a/src/main/java/com/casic/controller/ThirdDataController.java b/src/main/java/com/casic/controller/ThirdDataController.java index d910a7d..fbd8e59 100644 --- a/src/main/java/com/casic/controller/ThirdDataController.java +++ b/src/main/java/com/casic/controller/ThirdDataController.java @@ -1,8 +1,6 @@ package com.casic.controller; import com.alibaba.fastjson.JSON; -import com.casic.model.CommConfigDTO; -import com.casic.model.PressureDataParam; import com.casic.model.ResponseData; import com.casic.service.ThirdDataService; import lombok.extern.slf4j.Slf4j; @@ -10,7 +8,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.HashMap; import java.util.Map; @RestController @@ -24,22 +21,25 @@ this.thirdDataService = thirdDataService; } - @RequestMapping("/pressure/data") - public Object getDeviceRecentData(@RequestBody PressureDataParam pressureData) { - return thirdDataService.getDeviceRecentData(pressureData); + /** + * 硫化氢订阅接口 + * + * @param h2sDataMap + * @return + */ + @RequestMapping("/h2s-data") + public Object h2sData(@RequestBody Map h2sDataMap) { + System.out.println(JSON.toJSON(h2sDataMap)); + return thirdDataService.h2sData(h2sDataMap); } - @RequestMapping("/data") - public Object getDeviceData(@RequestBody Map pressureDataMap) { - System.out.println(JSON.toJSON(pressureDataMap)); - Map map = new HashMap(); - map.put("method", "setParams"); - Map param = new HashMap(); - param.put("ip", "大胆猜测下"); - map.put("status", 200); - map.put("params", param); - map.put("timeout", "3000"); - return map; + @RequestMapping("/test") + public Object testNbResponse (@RequestBody Map h2sDataMap){ + ResponseData responseData=new ResponseData(); + responseData.setCode(200); + responseData.setData("oyAAGDcgFAEAAcMAAQWfAXOJd1POnas6zxTmU7jQkVJinQ=="); + System.out.println(JSON.toJSON(h2sDataMap)); + return responseData; } } diff --git a/src/main/java/com/casic/dao/AlarmPushMapper.java b/src/main/java/com/casic/dao/AlarmPushMapper.java deleted file mode 100644 index 9d7484b..0000000 --- a/src/main/java/com/casic/dao/AlarmPushMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.AlarmPushConfig; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface AlarmPushMapper extends BaseMapper { -} diff --git a/src/main/java/com/casic/dao/AlarmRecordMapper.java b/src/main/java/com/casic/dao/AlarmRecordMapper.java new file mode 100644 index 0000000..d8a4911 --- /dev/null +++ b/src/main/java/com/casic/dao/AlarmRecordMapper.java @@ -0,0 +1,12 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.AlarmRecord; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AlarmRecordMapper extends BaseMapper { + + + +} diff --git a/src/main/java/com/casic/dao/DataH2sMapper.java b/src/main/java/com/casic/dao/DataH2sMapper.java new file mode 100644 index 0000000..434f1e2 --- /dev/null +++ b/src/main/java/com/casic/dao/DataH2sMapper.java @@ -0,0 +1,27 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.DataH2s; +import com.casic.model.DataPressure; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; + +@Mapper +public interface DataH2sMapper extends BaseMapper { + + int clearOnline(@Param("devcode") String devcode); + + String getWellCode(@Param("devcode") String devcode); + + Float getRuleValue(@Param("deviceType") String deviceType); + + int cancelAlarm(@Param("devcode") String devcode, @Param("status") String status); + + String getImeiByDevcode(@Param("devcode") String devcode); + + int updateImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); + + int addImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); +} diff --git a/src/main/java/com/casic/dao/DataPressureMapper.java b/src/main/java/com/casic/dao/DataPressureMapper.java deleted file mode 100644 index 05f4329..0000000 --- a/src/main/java/com/casic/dao/DataPressureMapper.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.DataPressure; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.Date; - -@Mapper -public interface DataPressureMapper extends BaseMapper { - - String getWellCode(@Param("devcode") String devcode); - - Float getRuleValue(@Param("deviceType") String deviceType); - - void saveRecords(@Param("reValue") String reValue, @Param("alarmTime") Date alarmTime); - -} diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java index d9e18a0..e62d526 100644 --- a/src/main/java/com/casic/dao/DeviceDataMapper.java +++ b/src/main/java/com/casic/dao/DeviceDataMapper.java @@ -23,5 +23,14 @@ @Param("pageSize") Integer pageSize, @Param("devcode") String devcode); - String getLevelByType(@Param("deviceType")String deviceType); + String getLevelByType(@Param("deviceType") String deviceType); + + + List getDevcodeByType(@Param("devciceType") Integer devciceType); + + List getRecentData(@Param("devciceType") Integer dataDay); + + List updateOnlineByDevs(@Param("dataSortDevcodeList") List dataSortDevcodeList); + + } diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/casic/config/AliYunConfig.java b/src/main/java/com/casic/config/AliYunConfig.java deleted file mode 100644 index 090b6ab..0000000 --- a/src/main/java/com/casic/config/AliYunConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Slf4j -@Configuration -@ConfigurationProperties(prefix = "casic.ali") -@Data -public class AliYunConfig { - - private String key; - private String screct; - private String url; - private String signNameJson; - private String templateCode; - -} diff --git a/src/main/java/com/casic/config/ApiHikomConfig.java b/src/main/java/com/casic/config/ApiHikomConfig.java deleted file mode 100644 index 73b3550..0000000 --- a/src/main/java/com/casic/config/ApiHikomConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -@Data -public class ApiHikomConfig { - @Value("${casic.hikom.host}") - private String hikomHost; - @Value("${casic.hikom.url}") - private String hikomUrl; -} diff --git a/src/main/java/com/casic/config/task/TaskConfigurer.java b/src/main/java/com/casic/config/task/TaskConfigurer.java new file mode 100644 index 0000000..43282d3 --- /dev/null +++ b/src/main/java/com/casic/config/task/TaskConfigurer.java @@ -0,0 +1,44 @@ +package com.casic.config.task; + +import com.casic.service.DeviceDataService; +import com.casic.service.ThirdDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.config.TriggerTask; +import org.springframework.scheduling.support.CronTrigger; + +/** + * @author cz + */ +@Configuration +@EnableScheduling +public class TaskConfigurer implements SchedulingConfigurer { + + @Value("${casic.device.online.corn}") + private String timeConfig; + @Autowired + private DeviceDataService deviceDataService; + + @Override + public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + TriggerTask triggrtTask = new TriggerTask(nextDayDevice(), + triggerContext -> { + return new CronTrigger(timeConfig).nextExecutionTime(triggerContext); + }); + taskRegistrar.addTriggerTask(triggrtTask); + } + + private Runnable nextDayDevice() { + return new Runnable() { + @Override + public void run() { + deviceDataService.checkAndUpdateDeviceOnline(); + } + }; + } + +} \ No newline at end of file diff --git a/src/main/java/com/casic/controller/AlarmController.java b/src/main/java/com/casic/controller/AlarmController.java deleted file mode 100644 index 957fc36..0000000 --- a/src/main/java/com/casic/controller/AlarmController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmConfigParam; -import com.casic.service.AlarmService; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/alarm") -public class AlarmController { - - private final AlarmService alarmService; - - public AlarmController(AlarmService alarmService) { - this.alarmService = alarmService; - } - - @RequestMapping("/records") - public Object getAlarmRecord(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "currentIndex", required = true) Integer currentIndex, - @RequestParam(value = "devcode",required =false) String devcode, - @RequestParam(value = "pageSize", required = true) Integer pageSize) { - return alarmService.getAlarmRecord(deviceType,currentIndex,pageSize,devcode); - } - - @RequestMapping("/batch/cancel") - public Object excuteAlramBatchCancel(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "devcode",required =false) String devcode) { - return alarmService.excuteAlramBatchCancel(deviceType,devcode); - } - - @RequestMapping("/config/add") - public Object addAlarmConfig(@RequestBody AlarmConfigParam alarmConfigParam) { - return alarmService.addAlarmConfig(alarmConfigParam); - } -} diff --git a/src/main/java/com/casic/controller/AlarmPushController.java b/src/main/java/com/casic/controller/AlarmPushController.java deleted file mode 100644 index 1642f9b..0000000 --- a/src/main/java/com/casic/controller/AlarmPushController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmPushConfig; -import com.casic.service.AlarmPushService; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.*; - -@RestController -@AllArgsConstructor -@RequestMapping("/alarm") -public class AlarmPushController { - - private AlarmPushService alarmPushService; - - @RequestMapping("/push/config") - @ResponseBody - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - return alarmPushService.alarmPushConfig(alarmSwitchConfig); - } - - @RequestMapping("/push/query") - public Object alarmPushQuery(@RequestParam(value = "scene", required = true) String scene) { - return alarmPushService.getAlarmPush(scene); - } - -} diff --git a/src/main/java/com/casic/controller/ArtemisValidController.java b/src/main/java/com/casic/controller/ArtemisValidController.java deleted file mode 100644 index 1d52576..0000000 --- a/src/main/java/com/casic/controller/ArtemisValidController.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.controller; - -import com.casic.model.HkvideoValidParam; -import com.casic.model.ResponseData; -import com.casic.util.ArtemisPostUtil; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 海康接口 - */ -@AllArgsConstructor -@RestController -public class ArtemisValidController { - private final ArtemisPostUtil artemisPostUtill; - - @RequestMapping("/hkvideo/getVideoUrl") - public ResponseData getVideoUrl(@RequestBody HkvideoValidParam hkvideoValidParam) { - - return artemisPostUtill.artemisPost(hkvideoValidParam); - } - -} diff --git a/src/main/java/com/casic/controller/MessagePusherController.java b/src/main/java/com/casic/controller/MessagePusherController.java index d447c05..b97dcd1 100644 --- a/src/main/java/com/casic/controller/MessagePusherController.java +++ b/src/main/java/com/casic/controller/MessagePusherController.java @@ -32,8 +32,7 @@ } catch (UnsupportedEncodingException e) { e.printStackTrace(); } - return retMap; - } + return retMap; } //报警开关按钮 // diff --git a/src/main/java/com/casic/controller/ThirdDataController.java b/src/main/java/com/casic/controller/ThirdDataController.java index d910a7d..fbd8e59 100644 --- a/src/main/java/com/casic/controller/ThirdDataController.java +++ b/src/main/java/com/casic/controller/ThirdDataController.java @@ -1,8 +1,6 @@ package com.casic.controller; import com.alibaba.fastjson.JSON; -import com.casic.model.CommConfigDTO; -import com.casic.model.PressureDataParam; import com.casic.model.ResponseData; import com.casic.service.ThirdDataService; import lombok.extern.slf4j.Slf4j; @@ -10,7 +8,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.HashMap; import java.util.Map; @RestController @@ -24,22 +21,25 @@ this.thirdDataService = thirdDataService; } - @RequestMapping("/pressure/data") - public Object getDeviceRecentData(@RequestBody PressureDataParam pressureData) { - return thirdDataService.getDeviceRecentData(pressureData); + /** + * 硫化氢订阅接口 + * + * @param h2sDataMap + * @return + */ + @RequestMapping("/h2s-data") + public Object h2sData(@RequestBody Map h2sDataMap) { + System.out.println(JSON.toJSON(h2sDataMap)); + return thirdDataService.h2sData(h2sDataMap); } - @RequestMapping("/data") - public Object getDeviceData(@RequestBody Map pressureDataMap) { - System.out.println(JSON.toJSON(pressureDataMap)); - Map map = new HashMap(); - map.put("method", "setParams"); - Map param = new HashMap(); - param.put("ip", "大胆猜测下"); - map.put("status", 200); - map.put("params", param); - map.put("timeout", "3000"); - return map; + @RequestMapping("/test") + public Object testNbResponse (@RequestBody Map h2sDataMap){ + ResponseData responseData=new ResponseData(); + responseData.setCode(200); + responseData.setData("oyAAGDcgFAEAAcMAAQWfAXOJd1POnas6zxTmU7jQkVJinQ=="); + System.out.println(JSON.toJSON(h2sDataMap)); + return responseData; } } diff --git a/src/main/java/com/casic/dao/AlarmPushMapper.java b/src/main/java/com/casic/dao/AlarmPushMapper.java deleted file mode 100644 index 9d7484b..0000000 --- a/src/main/java/com/casic/dao/AlarmPushMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.AlarmPushConfig; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface AlarmPushMapper extends BaseMapper { -} diff --git a/src/main/java/com/casic/dao/AlarmRecordMapper.java b/src/main/java/com/casic/dao/AlarmRecordMapper.java new file mode 100644 index 0000000..d8a4911 --- /dev/null +++ b/src/main/java/com/casic/dao/AlarmRecordMapper.java @@ -0,0 +1,12 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.AlarmRecord; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AlarmRecordMapper extends BaseMapper { + + + +} diff --git a/src/main/java/com/casic/dao/DataH2sMapper.java b/src/main/java/com/casic/dao/DataH2sMapper.java new file mode 100644 index 0000000..434f1e2 --- /dev/null +++ b/src/main/java/com/casic/dao/DataH2sMapper.java @@ -0,0 +1,27 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.DataH2s; +import com.casic.model.DataPressure; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; + +@Mapper +public interface DataH2sMapper extends BaseMapper { + + int clearOnline(@Param("devcode") String devcode); + + String getWellCode(@Param("devcode") String devcode); + + Float getRuleValue(@Param("deviceType") String deviceType); + + int cancelAlarm(@Param("devcode") String devcode, @Param("status") String status); + + String getImeiByDevcode(@Param("devcode") String devcode); + + int updateImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); + + int addImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); +} diff --git a/src/main/java/com/casic/dao/DataPressureMapper.java b/src/main/java/com/casic/dao/DataPressureMapper.java deleted file mode 100644 index 05f4329..0000000 --- a/src/main/java/com/casic/dao/DataPressureMapper.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.DataPressure; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.Date; - -@Mapper -public interface DataPressureMapper extends BaseMapper { - - String getWellCode(@Param("devcode") String devcode); - - Float getRuleValue(@Param("deviceType") String deviceType); - - void saveRecords(@Param("reValue") String reValue, @Param("alarmTime") Date alarmTime); - -} diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java index d9e18a0..e62d526 100644 --- a/src/main/java/com/casic/dao/DeviceDataMapper.java +++ b/src/main/java/com/casic/dao/DeviceDataMapper.java @@ -23,5 +23,14 @@ @Param("pageSize") Integer pageSize, @Param("devcode") String devcode); - String getLevelByType(@Param("deviceType")String deviceType); + String getLevelByType(@Param("deviceType") String deviceType); + + + List getDevcodeByType(@Param("devciceType") Integer devciceType); + + List getRecentData(@Param("devciceType") Integer dataDay); + + List updateOnlineByDevs(@Param("dataSortDevcodeList") List dataSortDevcodeList); + + } diff --git a/src/main/java/com/casic/enums/DeviceTypeEnum.java b/src/main/java/com/casic/enums/DeviceTypeEnum.java new file mode 100644 index 0000000..8d5a6e6 --- /dev/null +++ b/src/main/java/com/casic/enums/DeviceTypeEnum.java @@ -0,0 +1,64 @@ +package com.casic.enums; + + +public enum DeviceTypeEnum { + Well("井盖状态监测仪", 1), + Liquid("液位监测仪", 2), + WasteGas("有害气体监测仪", 3), + Methane("燃气智能监测终端", 4), + TempHumi("温湿度监测仪", 5), + Dig("开挖监测仪", 6), + WellLocator("井盖定位监测仪", 7), + Noise("噪声记录仪", 8), + TempPressure("温度压力监测仪", 9), + FireHydrant("消防栓防盗水监测仪", 11), + Tube("管盯", 12), + LG("井盖液位一体机", 13), + H2s("硫化氢检测终端", 14); + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private DeviceTypeEnum(String name, int index) { + this.name = name; + this.index = index; + } + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } + + public static DeviceTypeEnum getByIndex(String index) { + try { + for (DeviceTypeEnum deviceTypeEnum : values()) { + if (deviceTypeEnum.index == Integer.parseInt(index)) { + return deviceTypeEnum; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } +} \ No newline at end of file diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/casic/config/AliYunConfig.java b/src/main/java/com/casic/config/AliYunConfig.java deleted file mode 100644 index 090b6ab..0000000 --- a/src/main/java/com/casic/config/AliYunConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Slf4j -@Configuration -@ConfigurationProperties(prefix = "casic.ali") -@Data -public class AliYunConfig { - - private String key; - private String screct; - private String url; - private String signNameJson; - private String templateCode; - -} diff --git a/src/main/java/com/casic/config/ApiHikomConfig.java b/src/main/java/com/casic/config/ApiHikomConfig.java deleted file mode 100644 index 73b3550..0000000 --- a/src/main/java/com/casic/config/ApiHikomConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -@Data -public class ApiHikomConfig { - @Value("${casic.hikom.host}") - private String hikomHost; - @Value("${casic.hikom.url}") - private String hikomUrl; -} diff --git a/src/main/java/com/casic/config/task/TaskConfigurer.java b/src/main/java/com/casic/config/task/TaskConfigurer.java new file mode 100644 index 0000000..43282d3 --- /dev/null +++ b/src/main/java/com/casic/config/task/TaskConfigurer.java @@ -0,0 +1,44 @@ +package com.casic.config.task; + +import com.casic.service.DeviceDataService; +import com.casic.service.ThirdDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.config.TriggerTask; +import org.springframework.scheduling.support.CronTrigger; + +/** + * @author cz + */ +@Configuration +@EnableScheduling +public class TaskConfigurer implements SchedulingConfigurer { + + @Value("${casic.device.online.corn}") + private String timeConfig; + @Autowired + private DeviceDataService deviceDataService; + + @Override + public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + TriggerTask triggrtTask = new TriggerTask(nextDayDevice(), + triggerContext -> { + return new CronTrigger(timeConfig).nextExecutionTime(triggerContext); + }); + taskRegistrar.addTriggerTask(triggrtTask); + } + + private Runnable nextDayDevice() { + return new Runnable() { + @Override + public void run() { + deviceDataService.checkAndUpdateDeviceOnline(); + } + }; + } + +} \ No newline at end of file diff --git a/src/main/java/com/casic/controller/AlarmController.java b/src/main/java/com/casic/controller/AlarmController.java deleted file mode 100644 index 957fc36..0000000 --- a/src/main/java/com/casic/controller/AlarmController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmConfigParam; -import com.casic.service.AlarmService; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/alarm") -public class AlarmController { - - private final AlarmService alarmService; - - public AlarmController(AlarmService alarmService) { - this.alarmService = alarmService; - } - - @RequestMapping("/records") - public Object getAlarmRecord(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "currentIndex", required = true) Integer currentIndex, - @RequestParam(value = "devcode",required =false) String devcode, - @RequestParam(value = "pageSize", required = true) Integer pageSize) { - return alarmService.getAlarmRecord(deviceType,currentIndex,pageSize,devcode); - } - - @RequestMapping("/batch/cancel") - public Object excuteAlramBatchCancel(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "devcode",required =false) String devcode) { - return alarmService.excuteAlramBatchCancel(deviceType,devcode); - } - - @RequestMapping("/config/add") - public Object addAlarmConfig(@RequestBody AlarmConfigParam alarmConfigParam) { - return alarmService.addAlarmConfig(alarmConfigParam); - } -} diff --git a/src/main/java/com/casic/controller/AlarmPushController.java b/src/main/java/com/casic/controller/AlarmPushController.java deleted file mode 100644 index 1642f9b..0000000 --- a/src/main/java/com/casic/controller/AlarmPushController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmPushConfig; -import com.casic.service.AlarmPushService; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.*; - -@RestController -@AllArgsConstructor -@RequestMapping("/alarm") -public class AlarmPushController { - - private AlarmPushService alarmPushService; - - @RequestMapping("/push/config") - @ResponseBody - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - return alarmPushService.alarmPushConfig(alarmSwitchConfig); - } - - @RequestMapping("/push/query") - public Object alarmPushQuery(@RequestParam(value = "scene", required = true) String scene) { - return alarmPushService.getAlarmPush(scene); - } - -} diff --git a/src/main/java/com/casic/controller/ArtemisValidController.java b/src/main/java/com/casic/controller/ArtemisValidController.java deleted file mode 100644 index 1d52576..0000000 --- a/src/main/java/com/casic/controller/ArtemisValidController.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.controller; - -import com.casic.model.HkvideoValidParam; -import com.casic.model.ResponseData; -import com.casic.util.ArtemisPostUtil; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 海康接口 - */ -@AllArgsConstructor -@RestController -public class ArtemisValidController { - private final ArtemisPostUtil artemisPostUtill; - - @RequestMapping("/hkvideo/getVideoUrl") - public ResponseData getVideoUrl(@RequestBody HkvideoValidParam hkvideoValidParam) { - - return artemisPostUtill.artemisPost(hkvideoValidParam); - } - -} diff --git a/src/main/java/com/casic/controller/MessagePusherController.java b/src/main/java/com/casic/controller/MessagePusherController.java index d447c05..b97dcd1 100644 --- a/src/main/java/com/casic/controller/MessagePusherController.java +++ b/src/main/java/com/casic/controller/MessagePusherController.java @@ -32,8 +32,7 @@ } catch (UnsupportedEncodingException e) { e.printStackTrace(); } - return retMap; - } + return retMap; } //报警开关按钮 // diff --git a/src/main/java/com/casic/controller/ThirdDataController.java b/src/main/java/com/casic/controller/ThirdDataController.java index d910a7d..fbd8e59 100644 --- a/src/main/java/com/casic/controller/ThirdDataController.java +++ b/src/main/java/com/casic/controller/ThirdDataController.java @@ -1,8 +1,6 @@ package com.casic.controller; import com.alibaba.fastjson.JSON; -import com.casic.model.CommConfigDTO; -import com.casic.model.PressureDataParam; import com.casic.model.ResponseData; import com.casic.service.ThirdDataService; import lombok.extern.slf4j.Slf4j; @@ -10,7 +8,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.HashMap; import java.util.Map; @RestController @@ -24,22 +21,25 @@ this.thirdDataService = thirdDataService; } - @RequestMapping("/pressure/data") - public Object getDeviceRecentData(@RequestBody PressureDataParam pressureData) { - return thirdDataService.getDeviceRecentData(pressureData); + /** + * 硫化氢订阅接口 + * + * @param h2sDataMap + * @return + */ + @RequestMapping("/h2s-data") + public Object h2sData(@RequestBody Map h2sDataMap) { + System.out.println(JSON.toJSON(h2sDataMap)); + return thirdDataService.h2sData(h2sDataMap); } - @RequestMapping("/data") - public Object getDeviceData(@RequestBody Map pressureDataMap) { - System.out.println(JSON.toJSON(pressureDataMap)); - Map map = new HashMap(); - map.put("method", "setParams"); - Map param = new HashMap(); - param.put("ip", "大胆猜测下"); - map.put("status", 200); - map.put("params", param); - map.put("timeout", "3000"); - return map; + @RequestMapping("/test") + public Object testNbResponse (@RequestBody Map h2sDataMap){ + ResponseData responseData=new ResponseData(); + responseData.setCode(200); + responseData.setData("oyAAGDcgFAEAAcMAAQWfAXOJd1POnas6zxTmU7jQkVJinQ=="); + System.out.println(JSON.toJSON(h2sDataMap)); + return responseData; } } diff --git a/src/main/java/com/casic/dao/AlarmPushMapper.java b/src/main/java/com/casic/dao/AlarmPushMapper.java deleted file mode 100644 index 9d7484b..0000000 --- a/src/main/java/com/casic/dao/AlarmPushMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.AlarmPushConfig; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface AlarmPushMapper extends BaseMapper { -} diff --git a/src/main/java/com/casic/dao/AlarmRecordMapper.java b/src/main/java/com/casic/dao/AlarmRecordMapper.java new file mode 100644 index 0000000..d8a4911 --- /dev/null +++ b/src/main/java/com/casic/dao/AlarmRecordMapper.java @@ -0,0 +1,12 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.AlarmRecord; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AlarmRecordMapper extends BaseMapper { + + + +} diff --git a/src/main/java/com/casic/dao/DataH2sMapper.java b/src/main/java/com/casic/dao/DataH2sMapper.java new file mode 100644 index 0000000..434f1e2 --- /dev/null +++ b/src/main/java/com/casic/dao/DataH2sMapper.java @@ -0,0 +1,27 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.DataH2s; +import com.casic.model.DataPressure; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; + +@Mapper +public interface DataH2sMapper extends BaseMapper { + + int clearOnline(@Param("devcode") String devcode); + + String getWellCode(@Param("devcode") String devcode); + + Float getRuleValue(@Param("deviceType") String deviceType); + + int cancelAlarm(@Param("devcode") String devcode, @Param("status") String status); + + String getImeiByDevcode(@Param("devcode") String devcode); + + int updateImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); + + int addImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); +} diff --git a/src/main/java/com/casic/dao/DataPressureMapper.java b/src/main/java/com/casic/dao/DataPressureMapper.java deleted file mode 100644 index 05f4329..0000000 --- a/src/main/java/com/casic/dao/DataPressureMapper.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.DataPressure; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.Date; - -@Mapper -public interface DataPressureMapper extends BaseMapper { - - String getWellCode(@Param("devcode") String devcode); - - Float getRuleValue(@Param("deviceType") String deviceType); - - void saveRecords(@Param("reValue") String reValue, @Param("alarmTime") Date alarmTime); - -} diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java index d9e18a0..e62d526 100644 --- a/src/main/java/com/casic/dao/DeviceDataMapper.java +++ b/src/main/java/com/casic/dao/DeviceDataMapper.java @@ -23,5 +23,14 @@ @Param("pageSize") Integer pageSize, @Param("devcode") String devcode); - String getLevelByType(@Param("deviceType")String deviceType); + String getLevelByType(@Param("deviceType") String deviceType); + + + List getDevcodeByType(@Param("devciceType") Integer devciceType); + + List getRecentData(@Param("devciceType") Integer dataDay); + + List updateOnlineByDevs(@Param("dataSortDevcodeList") List dataSortDevcodeList); + + } diff --git a/src/main/java/com/casic/enums/DeviceTypeEnum.java b/src/main/java/com/casic/enums/DeviceTypeEnum.java new file mode 100644 index 0000000..8d5a6e6 --- /dev/null +++ b/src/main/java/com/casic/enums/DeviceTypeEnum.java @@ -0,0 +1,64 @@ +package com.casic.enums; + + +public enum DeviceTypeEnum { + Well("井盖状态监测仪", 1), + Liquid("液位监测仪", 2), + WasteGas("有害气体监测仪", 3), + Methane("燃气智能监测终端", 4), + TempHumi("温湿度监测仪", 5), + Dig("开挖监测仪", 6), + WellLocator("井盖定位监测仪", 7), + Noise("噪声记录仪", 8), + TempPressure("温度压力监测仪", 9), + FireHydrant("消防栓防盗水监测仪", 11), + Tube("管盯", 12), + LG("井盖液位一体机", 13), + H2s("硫化氢检测终端", 14); + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private DeviceTypeEnum(String name, int index) { + this.name = name; + this.index = index; + } + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } + + public static DeviceTypeEnum getByIndex(String index) { + try { + for (DeviceTypeEnum deviceTypeEnum : values()) { + if (deviceTypeEnum.index == Integer.parseInt(index)) { + return deviceTypeEnum; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } +} \ No newline at end of file diff --git a/src/main/java/com/casic/enums/H2sParamsEnum.java b/src/main/java/com/casic/enums/H2sParamsEnum.java new file mode 100644 index 0000000..74eec50 --- /dev/null +++ b/src/main/java/com/casic/enums/H2sParamsEnum.java @@ -0,0 +1,35 @@ +package com.casic.enums; + +public interface H2sParamsEnum { + + /** + * 下发配置参数 + */ + String IP = "ip"; + String PORT = "port"; + String CTNET = "ctnet"; + String PERIOD = "period"; + String CYCLE = "cycle"; + /** + * 三码上报 + */ + String ICCID = "iccid"; + String IMEI = "imei"; + String DEVCODE = "devcode"; + /** + * 上传时间 + */ + String TS = "ts"; + /** + * 数据上报(电量、硫化氢数据值、设备编号) + * 数据值 + */ + String H2S_VALUE = "h2sValue"; + /** + * 电量 + */ + String BATTERY_VALUE = "batteryValue"; + + + +} diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/casic/config/AliYunConfig.java b/src/main/java/com/casic/config/AliYunConfig.java deleted file mode 100644 index 090b6ab..0000000 --- a/src/main/java/com/casic/config/AliYunConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Slf4j -@Configuration -@ConfigurationProperties(prefix = "casic.ali") -@Data -public class AliYunConfig { - - private String key; - private String screct; - private String url; - private String signNameJson; - private String templateCode; - -} diff --git a/src/main/java/com/casic/config/ApiHikomConfig.java b/src/main/java/com/casic/config/ApiHikomConfig.java deleted file mode 100644 index 73b3550..0000000 --- a/src/main/java/com/casic/config/ApiHikomConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -@Data -public class ApiHikomConfig { - @Value("${casic.hikom.host}") - private String hikomHost; - @Value("${casic.hikom.url}") - private String hikomUrl; -} diff --git a/src/main/java/com/casic/config/task/TaskConfigurer.java b/src/main/java/com/casic/config/task/TaskConfigurer.java new file mode 100644 index 0000000..43282d3 --- /dev/null +++ b/src/main/java/com/casic/config/task/TaskConfigurer.java @@ -0,0 +1,44 @@ +package com.casic.config.task; + +import com.casic.service.DeviceDataService; +import com.casic.service.ThirdDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.config.TriggerTask; +import org.springframework.scheduling.support.CronTrigger; + +/** + * @author cz + */ +@Configuration +@EnableScheduling +public class TaskConfigurer implements SchedulingConfigurer { + + @Value("${casic.device.online.corn}") + private String timeConfig; + @Autowired + private DeviceDataService deviceDataService; + + @Override + public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + TriggerTask triggrtTask = new TriggerTask(nextDayDevice(), + triggerContext -> { + return new CronTrigger(timeConfig).nextExecutionTime(triggerContext); + }); + taskRegistrar.addTriggerTask(triggrtTask); + } + + private Runnable nextDayDevice() { + return new Runnable() { + @Override + public void run() { + deviceDataService.checkAndUpdateDeviceOnline(); + } + }; + } + +} \ No newline at end of file diff --git a/src/main/java/com/casic/controller/AlarmController.java b/src/main/java/com/casic/controller/AlarmController.java deleted file mode 100644 index 957fc36..0000000 --- a/src/main/java/com/casic/controller/AlarmController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmConfigParam; -import com.casic.service.AlarmService; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/alarm") -public class AlarmController { - - private final AlarmService alarmService; - - public AlarmController(AlarmService alarmService) { - this.alarmService = alarmService; - } - - @RequestMapping("/records") - public Object getAlarmRecord(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "currentIndex", required = true) Integer currentIndex, - @RequestParam(value = "devcode",required =false) String devcode, - @RequestParam(value = "pageSize", required = true) Integer pageSize) { - return alarmService.getAlarmRecord(deviceType,currentIndex,pageSize,devcode); - } - - @RequestMapping("/batch/cancel") - public Object excuteAlramBatchCancel(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "devcode",required =false) String devcode) { - return alarmService.excuteAlramBatchCancel(deviceType,devcode); - } - - @RequestMapping("/config/add") - public Object addAlarmConfig(@RequestBody AlarmConfigParam alarmConfigParam) { - return alarmService.addAlarmConfig(alarmConfigParam); - } -} diff --git a/src/main/java/com/casic/controller/AlarmPushController.java b/src/main/java/com/casic/controller/AlarmPushController.java deleted file mode 100644 index 1642f9b..0000000 --- a/src/main/java/com/casic/controller/AlarmPushController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmPushConfig; -import com.casic.service.AlarmPushService; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.*; - -@RestController -@AllArgsConstructor -@RequestMapping("/alarm") -public class AlarmPushController { - - private AlarmPushService alarmPushService; - - @RequestMapping("/push/config") - @ResponseBody - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - return alarmPushService.alarmPushConfig(alarmSwitchConfig); - } - - @RequestMapping("/push/query") - public Object alarmPushQuery(@RequestParam(value = "scene", required = true) String scene) { - return alarmPushService.getAlarmPush(scene); - } - -} diff --git a/src/main/java/com/casic/controller/ArtemisValidController.java b/src/main/java/com/casic/controller/ArtemisValidController.java deleted file mode 100644 index 1d52576..0000000 --- a/src/main/java/com/casic/controller/ArtemisValidController.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.controller; - -import com.casic.model.HkvideoValidParam; -import com.casic.model.ResponseData; -import com.casic.util.ArtemisPostUtil; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 海康接口 - */ -@AllArgsConstructor -@RestController -public class ArtemisValidController { - private final ArtemisPostUtil artemisPostUtill; - - @RequestMapping("/hkvideo/getVideoUrl") - public ResponseData getVideoUrl(@RequestBody HkvideoValidParam hkvideoValidParam) { - - return artemisPostUtill.artemisPost(hkvideoValidParam); - } - -} diff --git a/src/main/java/com/casic/controller/MessagePusherController.java b/src/main/java/com/casic/controller/MessagePusherController.java index d447c05..b97dcd1 100644 --- a/src/main/java/com/casic/controller/MessagePusherController.java +++ b/src/main/java/com/casic/controller/MessagePusherController.java @@ -32,8 +32,7 @@ } catch (UnsupportedEncodingException e) { e.printStackTrace(); } - return retMap; - } + return retMap; } //报警开关按钮 // diff --git a/src/main/java/com/casic/controller/ThirdDataController.java b/src/main/java/com/casic/controller/ThirdDataController.java index d910a7d..fbd8e59 100644 --- a/src/main/java/com/casic/controller/ThirdDataController.java +++ b/src/main/java/com/casic/controller/ThirdDataController.java @@ -1,8 +1,6 @@ package com.casic.controller; import com.alibaba.fastjson.JSON; -import com.casic.model.CommConfigDTO; -import com.casic.model.PressureDataParam; import com.casic.model.ResponseData; import com.casic.service.ThirdDataService; import lombok.extern.slf4j.Slf4j; @@ -10,7 +8,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.HashMap; import java.util.Map; @RestController @@ -24,22 +21,25 @@ this.thirdDataService = thirdDataService; } - @RequestMapping("/pressure/data") - public Object getDeviceRecentData(@RequestBody PressureDataParam pressureData) { - return thirdDataService.getDeviceRecentData(pressureData); + /** + * 硫化氢订阅接口 + * + * @param h2sDataMap + * @return + */ + @RequestMapping("/h2s-data") + public Object h2sData(@RequestBody Map h2sDataMap) { + System.out.println(JSON.toJSON(h2sDataMap)); + return thirdDataService.h2sData(h2sDataMap); } - @RequestMapping("/data") - public Object getDeviceData(@RequestBody Map pressureDataMap) { - System.out.println(JSON.toJSON(pressureDataMap)); - Map map = new HashMap(); - map.put("method", "setParams"); - Map param = new HashMap(); - param.put("ip", "大胆猜测下"); - map.put("status", 200); - map.put("params", param); - map.put("timeout", "3000"); - return map; + @RequestMapping("/test") + public Object testNbResponse (@RequestBody Map h2sDataMap){ + ResponseData responseData=new ResponseData(); + responseData.setCode(200); + responseData.setData("oyAAGDcgFAEAAcMAAQWfAXOJd1POnas6zxTmU7jQkVJinQ=="); + System.out.println(JSON.toJSON(h2sDataMap)); + return responseData; } } diff --git a/src/main/java/com/casic/dao/AlarmPushMapper.java b/src/main/java/com/casic/dao/AlarmPushMapper.java deleted file mode 100644 index 9d7484b..0000000 --- a/src/main/java/com/casic/dao/AlarmPushMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.AlarmPushConfig; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface AlarmPushMapper extends BaseMapper { -} diff --git a/src/main/java/com/casic/dao/AlarmRecordMapper.java b/src/main/java/com/casic/dao/AlarmRecordMapper.java new file mode 100644 index 0000000..d8a4911 --- /dev/null +++ b/src/main/java/com/casic/dao/AlarmRecordMapper.java @@ -0,0 +1,12 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.AlarmRecord; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AlarmRecordMapper extends BaseMapper { + + + +} diff --git a/src/main/java/com/casic/dao/DataH2sMapper.java b/src/main/java/com/casic/dao/DataH2sMapper.java new file mode 100644 index 0000000..434f1e2 --- /dev/null +++ b/src/main/java/com/casic/dao/DataH2sMapper.java @@ -0,0 +1,27 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.DataH2s; +import com.casic.model.DataPressure; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; + +@Mapper +public interface DataH2sMapper extends BaseMapper { + + int clearOnline(@Param("devcode") String devcode); + + String getWellCode(@Param("devcode") String devcode); + + Float getRuleValue(@Param("deviceType") String deviceType); + + int cancelAlarm(@Param("devcode") String devcode, @Param("status") String status); + + String getImeiByDevcode(@Param("devcode") String devcode); + + int updateImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); + + int addImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); +} diff --git a/src/main/java/com/casic/dao/DataPressureMapper.java b/src/main/java/com/casic/dao/DataPressureMapper.java deleted file mode 100644 index 05f4329..0000000 --- a/src/main/java/com/casic/dao/DataPressureMapper.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.DataPressure; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.Date; - -@Mapper -public interface DataPressureMapper extends BaseMapper { - - String getWellCode(@Param("devcode") String devcode); - - Float getRuleValue(@Param("deviceType") String deviceType); - - void saveRecords(@Param("reValue") String reValue, @Param("alarmTime") Date alarmTime); - -} diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java index d9e18a0..e62d526 100644 --- a/src/main/java/com/casic/dao/DeviceDataMapper.java +++ b/src/main/java/com/casic/dao/DeviceDataMapper.java @@ -23,5 +23,14 @@ @Param("pageSize") Integer pageSize, @Param("devcode") String devcode); - String getLevelByType(@Param("deviceType")String deviceType); + String getLevelByType(@Param("deviceType") String deviceType); + + + List getDevcodeByType(@Param("devciceType") Integer devciceType); + + List getRecentData(@Param("devciceType") Integer dataDay); + + List updateOnlineByDevs(@Param("dataSortDevcodeList") List dataSortDevcodeList); + + } diff --git a/src/main/java/com/casic/enums/DeviceTypeEnum.java b/src/main/java/com/casic/enums/DeviceTypeEnum.java new file mode 100644 index 0000000..8d5a6e6 --- /dev/null +++ b/src/main/java/com/casic/enums/DeviceTypeEnum.java @@ -0,0 +1,64 @@ +package com.casic.enums; + + +public enum DeviceTypeEnum { + Well("井盖状态监测仪", 1), + Liquid("液位监测仪", 2), + WasteGas("有害气体监测仪", 3), + Methane("燃气智能监测终端", 4), + TempHumi("温湿度监测仪", 5), + Dig("开挖监测仪", 6), + WellLocator("井盖定位监测仪", 7), + Noise("噪声记录仪", 8), + TempPressure("温度压力监测仪", 9), + FireHydrant("消防栓防盗水监测仪", 11), + Tube("管盯", 12), + LG("井盖液位一体机", 13), + H2s("硫化氢检测终端", 14); + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private DeviceTypeEnum(String name, int index) { + this.name = name; + this.index = index; + } + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } + + public static DeviceTypeEnum getByIndex(String index) { + try { + for (DeviceTypeEnum deviceTypeEnum : values()) { + if (deviceTypeEnum.index == Integer.parseInt(index)) { + return deviceTypeEnum; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } +} \ No newline at end of file diff --git a/src/main/java/com/casic/enums/H2sParamsEnum.java b/src/main/java/com/casic/enums/H2sParamsEnum.java new file mode 100644 index 0000000..74eec50 --- /dev/null +++ b/src/main/java/com/casic/enums/H2sParamsEnum.java @@ -0,0 +1,35 @@ +package com.casic.enums; + +public interface H2sParamsEnum { + + /** + * 下发配置参数 + */ + String IP = "ip"; + String PORT = "port"; + String CTNET = "ctnet"; + String PERIOD = "period"; + String CYCLE = "cycle"; + /** + * 三码上报 + */ + String ICCID = "iccid"; + String IMEI = "imei"; + String DEVCODE = "devcode"; + /** + * 上传时间 + */ + String TS = "ts"; + /** + * 数据上报(电量、硫化氢数据值、设备编号) + * 数据值 + */ + String H2S_VALUE = "h2sValue"; + /** + * 电量 + */ + String BATTERY_VALUE = "batteryValue"; + + + +} diff --git a/src/main/java/com/casic/model/AlarmRecord.java b/src/main/java/com/casic/model/AlarmRecord.java new file mode 100644 index 0000000..600fe5a --- /dev/null +++ b/src/main/java/com/casic/model/AlarmRecord.java @@ -0,0 +1,81 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; + +import java.util.Date; + +@Builder +@TableName("alarm_records") +public class AlarmRecord { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 设备ID + */ + @TableField("DEVICE_ID") + private Long deviceId; + /** + * 设备编号 + */ + @TableField("DEVCODE") + private String devcode; + /** + * 闸井编号 + */ + @TableField("WELL_CODE") + private String wellCode; + /** + * 告警类型 + */ + @TableField("ALARM_TYPE") + private String alarmType; + /** + * 告警内容 + */ + @TableField("ALARM_CONTENT") + private String alarmContent; + /** + * 告警数值 + */ + @TableField("ALARM_VALUE") + private String alarmValue; + /** + * 告警等级 + */ + @TableField("ALARM_LEVEL") + private Integer alarmLevel; + /** + * 告警详情 + */ + @TableField("ALARM_MSG") + private String alarmMessage; + /** + * 告警时间 + */ + @TableField("ALARM_TIME") + private Date alarmTime; + /** + * 告警状态 + */ + @TableField("STATUS") + private String status; + /** + * 工单编号 + */ + @TableField("JOB_ID") + private Long jobId; + + @TableField(exist = false) + private Integer jobStatus; + +} diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/casic/config/AliYunConfig.java b/src/main/java/com/casic/config/AliYunConfig.java deleted file mode 100644 index 090b6ab..0000000 --- a/src/main/java/com/casic/config/AliYunConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Slf4j -@Configuration -@ConfigurationProperties(prefix = "casic.ali") -@Data -public class AliYunConfig { - - private String key; - private String screct; - private String url; - private String signNameJson; - private String templateCode; - -} diff --git a/src/main/java/com/casic/config/ApiHikomConfig.java b/src/main/java/com/casic/config/ApiHikomConfig.java deleted file mode 100644 index 73b3550..0000000 --- a/src/main/java/com/casic/config/ApiHikomConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -@Data -public class ApiHikomConfig { - @Value("${casic.hikom.host}") - private String hikomHost; - @Value("${casic.hikom.url}") - private String hikomUrl; -} diff --git a/src/main/java/com/casic/config/task/TaskConfigurer.java b/src/main/java/com/casic/config/task/TaskConfigurer.java new file mode 100644 index 0000000..43282d3 --- /dev/null +++ b/src/main/java/com/casic/config/task/TaskConfigurer.java @@ -0,0 +1,44 @@ +package com.casic.config.task; + +import com.casic.service.DeviceDataService; +import com.casic.service.ThirdDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.config.TriggerTask; +import org.springframework.scheduling.support.CronTrigger; + +/** + * @author cz + */ +@Configuration +@EnableScheduling +public class TaskConfigurer implements SchedulingConfigurer { + + @Value("${casic.device.online.corn}") + private String timeConfig; + @Autowired + private DeviceDataService deviceDataService; + + @Override + public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + TriggerTask triggrtTask = new TriggerTask(nextDayDevice(), + triggerContext -> { + return new CronTrigger(timeConfig).nextExecutionTime(triggerContext); + }); + taskRegistrar.addTriggerTask(triggrtTask); + } + + private Runnable nextDayDevice() { + return new Runnable() { + @Override + public void run() { + deviceDataService.checkAndUpdateDeviceOnline(); + } + }; + } + +} \ No newline at end of file diff --git a/src/main/java/com/casic/controller/AlarmController.java b/src/main/java/com/casic/controller/AlarmController.java deleted file mode 100644 index 957fc36..0000000 --- a/src/main/java/com/casic/controller/AlarmController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmConfigParam; -import com.casic.service.AlarmService; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/alarm") -public class AlarmController { - - private final AlarmService alarmService; - - public AlarmController(AlarmService alarmService) { - this.alarmService = alarmService; - } - - @RequestMapping("/records") - public Object getAlarmRecord(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "currentIndex", required = true) Integer currentIndex, - @RequestParam(value = "devcode",required =false) String devcode, - @RequestParam(value = "pageSize", required = true) Integer pageSize) { - return alarmService.getAlarmRecord(deviceType,currentIndex,pageSize,devcode); - } - - @RequestMapping("/batch/cancel") - public Object excuteAlramBatchCancel(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "devcode",required =false) String devcode) { - return alarmService.excuteAlramBatchCancel(deviceType,devcode); - } - - @RequestMapping("/config/add") - public Object addAlarmConfig(@RequestBody AlarmConfigParam alarmConfigParam) { - return alarmService.addAlarmConfig(alarmConfigParam); - } -} diff --git a/src/main/java/com/casic/controller/AlarmPushController.java b/src/main/java/com/casic/controller/AlarmPushController.java deleted file mode 100644 index 1642f9b..0000000 --- a/src/main/java/com/casic/controller/AlarmPushController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmPushConfig; -import com.casic.service.AlarmPushService; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.*; - -@RestController -@AllArgsConstructor -@RequestMapping("/alarm") -public class AlarmPushController { - - private AlarmPushService alarmPushService; - - @RequestMapping("/push/config") - @ResponseBody - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - return alarmPushService.alarmPushConfig(alarmSwitchConfig); - } - - @RequestMapping("/push/query") - public Object alarmPushQuery(@RequestParam(value = "scene", required = true) String scene) { - return alarmPushService.getAlarmPush(scene); - } - -} diff --git a/src/main/java/com/casic/controller/ArtemisValidController.java b/src/main/java/com/casic/controller/ArtemisValidController.java deleted file mode 100644 index 1d52576..0000000 --- a/src/main/java/com/casic/controller/ArtemisValidController.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.controller; - -import com.casic.model.HkvideoValidParam; -import com.casic.model.ResponseData; -import com.casic.util.ArtemisPostUtil; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 海康接口 - */ -@AllArgsConstructor -@RestController -public class ArtemisValidController { - private final ArtemisPostUtil artemisPostUtill; - - @RequestMapping("/hkvideo/getVideoUrl") - public ResponseData getVideoUrl(@RequestBody HkvideoValidParam hkvideoValidParam) { - - return artemisPostUtill.artemisPost(hkvideoValidParam); - } - -} diff --git a/src/main/java/com/casic/controller/MessagePusherController.java b/src/main/java/com/casic/controller/MessagePusherController.java index d447c05..b97dcd1 100644 --- a/src/main/java/com/casic/controller/MessagePusherController.java +++ b/src/main/java/com/casic/controller/MessagePusherController.java @@ -32,8 +32,7 @@ } catch (UnsupportedEncodingException e) { e.printStackTrace(); } - return retMap; - } + return retMap; } //报警开关按钮 // diff --git a/src/main/java/com/casic/controller/ThirdDataController.java b/src/main/java/com/casic/controller/ThirdDataController.java index d910a7d..fbd8e59 100644 --- a/src/main/java/com/casic/controller/ThirdDataController.java +++ b/src/main/java/com/casic/controller/ThirdDataController.java @@ -1,8 +1,6 @@ package com.casic.controller; import com.alibaba.fastjson.JSON; -import com.casic.model.CommConfigDTO; -import com.casic.model.PressureDataParam; import com.casic.model.ResponseData; import com.casic.service.ThirdDataService; import lombok.extern.slf4j.Slf4j; @@ -10,7 +8,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.HashMap; import java.util.Map; @RestController @@ -24,22 +21,25 @@ this.thirdDataService = thirdDataService; } - @RequestMapping("/pressure/data") - public Object getDeviceRecentData(@RequestBody PressureDataParam pressureData) { - return thirdDataService.getDeviceRecentData(pressureData); + /** + * 硫化氢订阅接口 + * + * @param h2sDataMap + * @return + */ + @RequestMapping("/h2s-data") + public Object h2sData(@RequestBody Map h2sDataMap) { + System.out.println(JSON.toJSON(h2sDataMap)); + return thirdDataService.h2sData(h2sDataMap); } - @RequestMapping("/data") - public Object getDeviceData(@RequestBody Map pressureDataMap) { - System.out.println(JSON.toJSON(pressureDataMap)); - Map map = new HashMap(); - map.put("method", "setParams"); - Map param = new HashMap(); - param.put("ip", "大胆猜测下"); - map.put("status", 200); - map.put("params", param); - map.put("timeout", "3000"); - return map; + @RequestMapping("/test") + public Object testNbResponse (@RequestBody Map h2sDataMap){ + ResponseData responseData=new ResponseData(); + responseData.setCode(200); + responseData.setData("oyAAGDcgFAEAAcMAAQWfAXOJd1POnas6zxTmU7jQkVJinQ=="); + System.out.println(JSON.toJSON(h2sDataMap)); + return responseData; } } diff --git a/src/main/java/com/casic/dao/AlarmPushMapper.java b/src/main/java/com/casic/dao/AlarmPushMapper.java deleted file mode 100644 index 9d7484b..0000000 --- a/src/main/java/com/casic/dao/AlarmPushMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.AlarmPushConfig; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface AlarmPushMapper extends BaseMapper { -} diff --git a/src/main/java/com/casic/dao/AlarmRecordMapper.java b/src/main/java/com/casic/dao/AlarmRecordMapper.java new file mode 100644 index 0000000..d8a4911 --- /dev/null +++ b/src/main/java/com/casic/dao/AlarmRecordMapper.java @@ -0,0 +1,12 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.AlarmRecord; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AlarmRecordMapper extends BaseMapper { + + + +} diff --git a/src/main/java/com/casic/dao/DataH2sMapper.java b/src/main/java/com/casic/dao/DataH2sMapper.java new file mode 100644 index 0000000..434f1e2 --- /dev/null +++ b/src/main/java/com/casic/dao/DataH2sMapper.java @@ -0,0 +1,27 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.DataH2s; +import com.casic.model.DataPressure; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; + +@Mapper +public interface DataH2sMapper extends BaseMapper { + + int clearOnline(@Param("devcode") String devcode); + + String getWellCode(@Param("devcode") String devcode); + + Float getRuleValue(@Param("deviceType") String deviceType); + + int cancelAlarm(@Param("devcode") String devcode, @Param("status") String status); + + String getImeiByDevcode(@Param("devcode") String devcode); + + int updateImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); + + int addImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); +} diff --git a/src/main/java/com/casic/dao/DataPressureMapper.java b/src/main/java/com/casic/dao/DataPressureMapper.java deleted file mode 100644 index 05f4329..0000000 --- a/src/main/java/com/casic/dao/DataPressureMapper.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.DataPressure; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.Date; - -@Mapper -public interface DataPressureMapper extends BaseMapper { - - String getWellCode(@Param("devcode") String devcode); - - Float getRuleValue(@Param("deviceType") String deviceType); - - void saveRecords(@Param("reValue") String reValue, @Param("alarmTime") Date alarmTime); - -} diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java index d9e18a0..e62d526 100644 --- a/src/main/java/com/casic/dao/DeviceDataMapper.java +++ b/src/main/java/com/casic/dao/DeviceDataMapper.java @@ -23,5 +23,14 @@ @Param("pageSize") Integer pageSize, @Param("devcode") String devcode); - String getLevelByType(@Param("deviceType")String deviceType); + String getLevelByType(@Param("deviceType") String deviceType); + + + List getDevcodeByType(@Param("devciceType") Integer devciceType); + + List getRecentData(@Param("devciceType") Integer dataDay); + + List updateOnlineByDevs(@Param("dataSortDevcodeList") List dataSortDevcodeList); + + } diff --git a/src/main/java/com/casic/enums/DeviceTypeEnum.java b/src/main/java/com/casic/enums/DeviceTypeEnum.java new file mode 100644 index 0000000..8d5a6e6 --- /dev/null +++ b/src/main/java/com/casic/enums/DeviceTypeEnum.java @@ -0,0 +1,64 @@ +package com.casic.enums; + + +public enum DeviceTypeEnum { + Well("井盖状态监测仪", 1), + Liquid("液位监测仪", 2), + WasteGas("有害气体监测仪", 3), + Methane("燃气智能监测终端", 4), + TempHumi("温湿度监测仪", 5), + Dig("开挖监测仪", 6), + WellLocator("井盖定位监测仪", 7), + Noise("噪声记录仪", 8), + TempPressure("温度压力监测仪", 9), + FireHydrant("消防栓防盗水监测仪", 11), + Tube("管盯", 12), + LG("井盖液位一体机", 13), + H2s("硫化氢检测终端", 14); + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private DeviceTypeEnum(String name, int index) { + this.name = name; + this.index = index; + } + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } + + public static DeviceTypeEnum getByIndex(String index) { + try { + for (DeviceTypeEnum deviceTypeEnum : values()) { + if (deviceTypeEnum.index == Integer.parseInt(index)) { + return deviceTypeEnum; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } +} \ No newline at end of file diff --git a/src/main/java/com/casic/enums/H2sParamsEnum.java b/src/main/java/com/casic/enums/H2sParamsEnum.java new file mode 100644 index 0000000..74eec50 --- /dev/null +++ b/src/main/java/com/casic/enums/H2sParamsEnum.java @@ -0,0 +1,35 @@ +package com.casic.enums; + +public interface H2sParamsEnum { + + /** + * 下发配置参数 + */ + String IP = "ip"; + String PORT = "port"; + String CTNET = "ctnet"; + String PERIOD = "period"; + String CYCLE = "cycle"; + /** + * 三码上报 + */ + String ICCID = "iccid"; + String IMEI = "imei"; + String DEVCODE = "devcode"; + /** + * 上传时间 + */ + String TS = "ts"; + /** + * 数据上报(电量、硫化氢数据值、设备编号) + * 数据值 + */ + String H2S_VALUE = "h2sValue"; + /** + * 电量 + */ + String BATTERY_VALUE = "batteryValue"; + + + +} diff --git a/src/main/java/com/casic/model/AlarmRecord.java b/src/main/java/com/casic/model/AlarmRecord.java new file mode 100644 index 0000000..600fe5a --- /dev/null +++ b/src/main/java/com/casic/model/AlarmRecord.java @@ -0,0 +1,81 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; + +import java.util.Date; + +@Builder +@TableName("alarm_records") +public class AlarmRecord { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 设备ID + */ + @TableField("DEVICE_ID") + private Long deviceId; + /** + * 设备编号 + */ + @TableField("DEVCODE") + private String devcode; + /** + * 闸井编号 + */ + @TableField("WELL_CODE") + private String wellCode; + /** + * 告警类型 + */ + @TableField("ALARM_TYPE") + private String alarmType; + /** + * 告警内容 + */ + @TableField("ALARM_CONTENT") + private String alarmContent; + /** + * 告警数值 + */ + @TableField("ALARM_VALUE") + private String alarmValue; + /** + * 告警等级 + */ + @TableField("ALARM_LEVEL") + private Integer alarmLevel; + /** + * 告警详情 + */ + @TableField("ALARM_MSG") + private String alarmMessage; + /** + * 告警时间 + */ + @TableField("ALARM_TIME") + private Date alarmTime; + /** + * 告警状态 + */ + @TableField("STATUS") + private String status; + /** + * 工单编号 + */ + @TableField("JOB_ID") + private Long jobId; + + @TableField(exist = false) + private Integer jobStatus; + +} diff --git a/src/main/java/com/casic/model/DataH2s.java b/src/main/java/com/casic/model/DataH2s.java new file mode 100644 index 0000000..16ecc7a --- /dev/null +++ b/src/main/java/com/casic/model/DataH2s.java @@ -0,0 +1,37 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + */ +@Data +@TableName("data_h2s") +public class DataH2s { + + private Long id; + + private String devcode; + + private String wellCode; + + private String cell; + + private String strength; + + private String uptime; + + private String logtime; + + private String descn; + + private String rsrp; + + private String pci; + + private String snr; + +} diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/casic/config/AliYunConfig.java b/src/main/java/com/casic/config/AliYunConfig.java deleted file mode 100644 index 090b6ab..0000000 --- a/src/main/java/com/casic/config/AliYunConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Slf4j -@Configuration -@ConfigurationProperties(prefix = "casic.ali") -@Data -public class AliYunConfig { - - private String key; - private String screct; - private String url; - private String signNameJson; - private String templateCode; - -} diff --git a/src/main/java/com/casic/config/ApiHikomConfig.java b/src/main/java/com/casic/config/ApiHikomConfig.java deleted file mode 100644 index 73b3550..0000000 --- a/src/main/java/com/casic/config/ApiHikomConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -@Data -public class ApiHikomConfig { - @Value("${casic.hikom.host}") - private String hikomHost; - @Value("${casic.hikom.url}") - private String hikomUrl; -} diff --git a/src/main/java/com/casic/config/task/TaskConfigurer.java b/src/main/java/com/casic/config/task/TaskConfigurer.java new file mode 100644 index 0000000..43282d3 --- /dev/null +++ b/src/main/java/com/casic/config/task/TaskConfigurer.java @@ -0,0 +1,44 @@ +package com.casic.config.task; + +import com.casic.service.DeviceDataService; +import com.casic.service.ThirdDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.config.TriggerTask; +import org.springframework.scheduling.support.CronTrigger; + +/** + * @author cz + */ +@Configuration +@EnableScheduling +public class TaskConfigurer implements SchedulingConfigurer { + + @Value("${casic.device.online.corn}") + private String timeConfig; + @Autowired + private DeviceDataService deviceDataService; + + @Override + public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + TriggerTask triggrtTask = new TriggerTask(nextDayDevice(), + triggerContext -> { + return new CronTrigger(timeConfig).nextExecutionTime(triggerContext); + }); + taskRegistrar.addTriggerTask(triggrtTask); + } + + private Runnable nextDayDevice() { + return new Runnable() { + @Override + public void run() { + deviceDataService.checkAndUpdateDeviceOnline(); + } + }; + } + +} \ No newline at end of file diff --git a/src/main/java/com/casic/controller/AlarmController.java b/src/main/java/com/casic/controller/AlarmController.java deleted file mode 100644 index 957fc36..0000000 --- a/src/main/java/com/casic/controller/AlarmController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmConfigParam; -import com.casic.service.AlarmService; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/alarm") -public class AlarmController { - - private final AlarmService alarmService; - - public AlarmController(AlarmService alarmService) { - this.alarmService = alarmService; - } - - @RequestMapping("/records") - public Object getAlarmRecord(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "currentIndex", required = true) Integer currentIndex, - @RequestParam(value = "devcode",required =false) String devcode, - @RequestParam(value = "pageSize", required = true) Integer pageSize) { - return alarmService.getAlarmRecord(deviceType,currentIndex,pageSize,devcode); - } - - @RequestMapping("/batch/cancel") - public Object excuteAlramBatchCancel(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "devcode",required =false) String devcode) { - return alarmService.excuteAlramBatchCancel(deviceType,devcode); - } - - @RequestMapping("/config/add") - public Object addAlarmConfig(@RequestBody AlarmConfigParam alarmConfigParam) { - return alarmService.addAlarmConfig(alarmConfigParam); - } -} diff --git a/src/main/java/com/casic/controller/AlarmPushController.java b/src/main/java/com/casic/controller/AlarmPushController.java deleted file mode 100644 index 1642f9b..0000000 --- a/src/main/java/com/casic/controller/AlarmPushController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmPushConfig; -import com.casic.service.AlarmPushService; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.*; - -@RestController -@AllArgsConstructor -@RequestMapping("/alarm") -public class AlarmPushController { - - private AlarmPushService alarmPushService; - - @RequestMapping("/push/config") - @ResponseBody - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - return alarmPushService.alarmPushConfig(alarmSwitchConfig); - } - - @RequestMapping("/push/query") - public Object alarmPushQuery(@RequestParam(value = "scene", required = true) String scene) { - return alarmPushService.getAlarmPush(scene); - } - -} diff --git a/src/main/java/com/casic/controller/ArtemisValidController.java b/src/main/java/com/casic/controller/ArtemisValidController.java deleted file mode 100644 index 1d52576..0000000 --- a/src/main/java/com/casic/controller/ArtemisValidController.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.controller; - -import com.casic.model.HkvideoValidParam; -import com.casic.model.ResponseData; -import com.casic.util.ArtemisPostUtil; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 海康接口 - */ -@AllArgsConstructor -@RestController -public class ArtemisValidController { - private final ArtemisPostUtil artemisPostUtill; - - @RequestMapping("/hkvideo/getVideoUrl") - public ResponseData getVideoUrl(@RequestBody HkvideoValidParam hkvideoValidParam) { - - return artemisPostUtill.artemisPost(hkvideoValidParam); - } - -} diff --git a/src/main/java/com/casic/controller/MessagePusherController.java b/src/main/java/com/casic/controller/MessagePusherController.java index d447c05..b97dcd1 100644 --- a/src/main/java/com/casic/controller/MessagePusherController.java +++ b/src/main/java/com/casic/controller/MessagePusherController.java @@ -32,8 +32,7 @@ } catch (UnsupportedEncodingException e) { e.printStackTrace(); } - return retMap; - } + return retMap; } //报警开关按钮 // diff --git a/src/main/java/com/casic/controller/ThirdDataController.java b/src/main/java/com/casic/controller/ThirdDataController.java index d910a7d..fbd8e59 100644 --- a/src/main/java/com/casic/controller/ThirdDataController.java +++ b/src/main/java/com/casic/controller/ThirdDataController.java @@ -1,8 +1,6 @@ package com.casic.controller; import com.alibaba.fastjson.JSON; -import com.casic.model.CommConfigDTO; -import com.casic.model.PressureDataParam; import com.casic.model.ResponseData; import com.casic.service.ThirdDataService; import lombok.extern.slf4j.Slf4j; @@ -10,7 +8,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.HashMap; import java.util.Map; @RestController @@ -24,22 +21,25 @@ this.thirdDataService = thirdDataService; } - @RequestMapping("/pressure/data") - public Object getDeviceRecentData(@RequestBody PressureDataParam pressureData) { - return thirdDataService.getDeviceRecentData(pressureData); + /** + * 硫化氢订阅接口 + * + * @param h2sDataMap + * @return + */ + @RequestMapping("/h2s-data") + public Object h2sData(@RequestBody Map h2sDataMap) { + System.out.println(JSON.toJSON(h2sDataMap)); + return thirdDataService.h2sData(h2sDataMap); } - @RequestMapping("/data") - public Object getDeviceData(@RequestBody Map pressureDataMap) { - System.out.println(JSON.toJSON(pressureDataMap)); - Map map = new HashMap(); - map.put("method", "setParams"); - Map param = new HashMap(); - param.put("ip", "大胆猜测下"); - map.put("status", 200); - map.put("params", param); - map.put("timeout", "3000"); - return map; + @RequestMapping("/test") + public Object testNbResponse (@RequestBody Map h2sDataMap){ + ResponseData responseData=new ResponseData(); + responseData.setCode(200); + responseData.setData("oyAAGDcgFAEAAcMAAQWfAXOJd1POnas6zxTmU7jQkVJinQ=="); + System.out.println(JSON.toJSON(h2sDataMap)); + return responseData; } } diff --git a/src/main/java/com/casic/dao/AlarmPushMapper.java b/src/main/java/com/casic/dao/AlarmPushMapper.java deleted file mode 100644 index 9d7484b..0000000 --- a/src/main/java/com/casic/dao/AlarmPushMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.AlarmPushConfig; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface AlarmPushMapper extends BaseMapper { -} diff --git a/src/main/java/com/casic/dao/AlarmRecordMapper.java b/src/main/java/com/casic/dao/AlarmRecordMapper.java new file mode 100644 index 0000000..d8a4911 --- /dev/null +++ b/src/main/java/com/casic/dao/AlarmRecordMapper.java @@ -0,0 +1,12 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.AlarmRecord; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AlarmRecordMapper extends BaseMapper { + + + +} diff --git a/src/main/java/com/casic/dao/DataH2sMapper.java b/src/main/java/com/casic/dao/DataH2sMapper.java new file mode 100644 index 0000000..434f1e2 --- /dev/null +++ b/src/main/java/com/casic/dao/DataH2sMapper.java @@ -0,0 +1,27 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.DataH2s; +import com.casic.model.DataPressure; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; + +@Mapper +public interface DataH2sMapper extends BaseMapper { + + int clearOnline(@Param("devcode") String devcode); + + String getWellCode(@Param("devcode") String devcode); + + Float getRuleValue(@Param("deviceType") String deviceType); + + int cancelAlarm(@Param("devcode") String devcode, @Param("status") String status); + + String getImeiByDevcode(@Param("devcode") String devcode); + + int updateImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); + + int addImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); +} diff --git a/src/main/java/com/casic/dao/DataPressureMapper.java b/src/main/java/com/casic/dao/DataPressureMapper.java deleted file mode 100644 index 05f4329..0000000 --- a/src/main/java/com/casic/dao/DataPressureMapper.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.DataPressure; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.Date; - -@Mapper -public interface DataPressureMapper extends BaseMapper { - - String getWellCode(@Param("devcode") String devcode); - - Float getRuleValue(@Param("deviceType") String deviceType); - - void saveRecords(@Param("reValue") String reValue, @Param("alarmTime") Date alarmTime); - -} diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java index d9e18a0..e62d526 100644 --- a/src/main/java/com/casic/dao/DeviceDataMapper.java +++ b/src/main/java/com/casic/dao/DeviceDataMapper.java @@ -23,5 +23,14 @@ @Param("pageSize") Integer pageSize, @Param("devcode") String devcode); - String getLevelByType(@Param("deviceType")String deviceType); + String getLevelByType(@Param("deviceType") String deviceType); + + + List getDevcodeByType(@Param("devciceType") Integer devciceType); + + List getRecentData(@Param("devciceType") Integer dataDay); + + List updateOnlineByDevs(@Param("dataSortDevcodeList") List dataSortDevcodeList); + + } diff --git a/src/main/java/com/casic/enums/DeviceTypeEnum.java b/src/main/java/com/casic/enums/DeviceTypeEnum.java new file mode 100644 index 0000000..8d5a6e6 --- /dev/null +++ b/src/main/java/com/casic/enums/DeviceTypeEnum.java @@ -0,0 +1,64 @@ +package com.casic.enums; + + +public enum DeviceTypeEnum { + Well("井盖状态监测仪", 1), + Liquid("液位监测仪", 2), + WasteGas("有害气体监测仪", 3), + Methane("燃气智能监测终端", 4), + TempHumi("温湿度监测仪", 5), + Dig("开挖监测仪", 6), + WellLocator("井盖定位监测仪", 7), + Noise("噪声记录仪", 8), + TempPressure("温度压力监测仪", 9), + FireHydrant("消防栓防盗水监测仪", 11), + Tube("管盯", 12), + LG("井盖液位一体机", 13), + H2s("硫化氢检测终端", 14); + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private DeviceTypeEnum(String name, int index) { + this.name = name; + this.index = index; + } + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } + + public static DeviceTypeEnum getByIndex(String index) { + try { + for (DeviceTypeEnum deviceTypeEnum : values()) { + if (deviceTypeEnum.index == Integer.parseInt(index)) { + return deviceTypeEnum; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } +} \ No newline at end of file diff --git a/src/main/java/com/casic/enums/H2sParamsEnum.java b/src/main/java/com/casic/enums/H2sParamsEnum.java new file mode 100644 index 0000000..74eec50 --- /dev/null +++ b/src/main/java/com/casic/enums/H2sParamsEnum.java @@ -0,0 +1,35 @@ +package com.casic.enums; + +public interface H2sParamsEnum { + + /** + * 下发配置参数 + */ + String IP = "ip"; + String PORT = "port"; + String CTNET = "ctnet"; + String PERIOD = "period"; + String CYCLE = "cycle"; + /** + * 三码上报 + */ + String ICCID = "iccid"; + String IMEI = "imei"; + String DEVCODE = "devcode"; + /** + * 上传时间 + */ + String TS = "ts"; + /** + * 数据上报(电量、硫化氢数据值、设备编号) + * 数据值 + */ + String H2S_VALUE = "h2sValue"; + /** + * 电量 + */ + String BATTERY_VALUE = "batteryValue"; + + + +} diff --git a/src/main/java/com/casic/model/AlarmRecord.java b/src/main/java/com/casic/model/AlarmRecord.java new file mode 100644 index 0000000..600fe5a --- /dev/null +++ b/src/main/java/com/casic/model/AlarmRecord.java @@ -0,0 +1,81 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; + +import java.util.Date; + +@Builder +@TableName("alarm_records") +public class AlarmRecord { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 设备ID + */ + @TableField("DEVICE_ID") + private Long deviceId; + /** + * 设备编号 + */ + @TableField("DEVCODE") + private String devcode; + /** + * 闸井编号 + */ + @TableField("WELL_CODE") + private String wellCode; + /** + * 告警类型 + */ + @TableField("ALARM_TYPE") + private String alarmType; + /** + * 告警内容 + */ + @TableField("ALARM_CONTENT") + private String alarmContent; + /** + * 告警数值 + */ + @TableField("ALARM_VALUE") + private String alarmValue; + /** + * 告警等级 + */ + @TableField("ALARM_LEVEL") + private Integer alarmLevel; + /** + * 告警详情 + */ + @TableField("ALARM_MSG") + private String alarmMessage; + /** + * 告警时间 + */ + @TableField("ALARM_TIME") + private Date alarmTime; + /** + * 告警状态 + */ + @TableField("STATUS") + private String status; + /** + * 工单编号 + */ + @TableField("JOB_ID") + private Long jobId; + + @TableField(exist = false) + private Integer jobStatus; + +} diff --git a/src/main/java/com/casic/model/DataH2s.java b/src/main/java/com/casic/model/DataH2s.java new file mode 100644 index 0000000..16ecc7a --- /dev/null +++ b/src/main/java/com/casic/model/DataH2s.java @@ -0,0 +1,37 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + */ +@Data +@TableName("data_h2s") +public class DataH2s { + + private Long id; + + private String devcode; + + private String wellCode; + + private String cell; + + private String strength; + + private String uptime; + + private String logtime; + + private String descn; + + private String rsrp; + + private String pci; + + private String snr; + +} diff --git a/src/main/java/com/casic/model/DeviceTypeEnum.java b/src/main/java/com/casic/model/DeviceTypeEnum.java deleted file mode 100644 index 26c685f..0000000 --- a/src/main/java/com/casic/model/DeviceTypeEnum.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.casic.model; - - -public enum DeviceTypeEnum { - Well("井盖状态监测仪", 1), - Liquid("液位监测仪", 2), - WasteGas("有害气体监测仪", 3), - Methane("燃气智能监测终端", 4), - TempHumi("温湿度监测仪", 5), - Dig("开挖监测仪", 6), - WellLocator("井盖定位监测仪", 7), - Noise("噪声记录仪", 8), - TempPressure("温度压力监测仪", 9), - FireHydrant("消防栓防盗水监测仪", 11), - Tube("管盯", 12), - LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); - - // 成员变量 - private String name; - private int index; - - // 构造方法 - private DeviceTypeEnum(String name, int index) { - this.name = name; - this.index = index; - } - - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public int getIndex() { - return index; - } - - public void setIndex(int index) { - this.index = index; - } - - public static DeviceTypeEnum getByIndex(String index) { - try { - for (DeviceTypeEnum deviceTypeEnum : values()) { - if (deviceTypeEnum.index == Integer.parseInt(index)) { - return deviceTypeEnum; - } - } - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - //覆盖方法 - @Override - public String toString() { - return this.name; - } -} \ No newline at end of file diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/casic/config/AliYunConfig.java b/src/main/java/com/casic/config/AliYunConfig.java deleted file mode 100644 index 090b6ab..0000000 --- a/src/main/java/com/casic/config/AliYunConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Slf4j -@Configuration -@ConfigurationProperties(prefix = "casic.ali") -@Data -public class AliYunConfig { - - private String key; - private String screct; - private String url; - private String signNameJson; - private String templateCode; - -} diff --git a/src/main/java/com/casic/config/ApiHikomConfig.java b/src/main/java/com/casic/config/ApiHikomConfig.java deleted file mode 100644 index 73b3550..0000000 --- a/src/main/java/com/casic/config/ApiHikomConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -@Data -public class ApiHikomConfig { - @Value("${casic.hikom.host}") - private String hikomHost; - @Value("${casic.hikom.url}") - private String hikomUrl; -} diff --git a/src/main/java/com/casic/config/task/TaskConfigurer.java b/src/main/java/com/casic/config/task/TaskConfigurer.java new file mode 100644 index 0000000..43282d3 --- /dev/null +++ b/src/main/java/com/casic/config/task/TaskConfigurer.java @@ -0,0 +1,44 @@ +package com.casic.config.task; + +import com.casic.service.DeviceDataService; +import com.casic.service.ThirdDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.config.TriggerTask; +import org.springframework.scheduling.support.CronTrigger; + +/** + * @author cz + */ +@Configuration +@EnableScheduling +public class TaskConfigurer implements SchedulingConfigurer { + + @Value("${casic.device.online.corn}") + private String timeConfig; + @Autowired + private DeviceDataService deviceDataService; + + @Override + public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + TriggerTask triggrtTask = new TriggerTask(nextDayDevice(), + triggerContext -> { + return new CronTrigger(timeConfig).nextExecutionTime(triggerContext); + }); + taskRegistrar.addTriggerTask(triggrtTask); + } + + private Runnable nextDayDevice() { + return new Runnable() { + @Override + public void run() { + deviceDataService.checkAndUpdateDeviceOnline(); + } + }; + } + +} \ No newline at end of file diff --git a/src/main/java/com/casic/controller/AlarmController.java b/src/main/java/com/casic/controller/AlarmController.java deleted file mode 100644 index 957fc36..0000000 --- a/src/main/java/com/casic/controller/AlarmController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmConfigParam; -import com.casic.service.AlarmService; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/alarm") -public class AlarmController { - - private final AlarmService alarmService; - - public AlarmController(AlarmService alarmService) { - this.alarmService = alarmService; - } - - @RequestMapping("/records") - public Object getAlarmRecord(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "currentIndex", required = true) Integer currentIndex, - @RequestParam(value = "devcode",required =false) String devcode, - @RequestParam(value = "pageSize", required = true) Integer pageSize) { - return alarmService.getAlarmRecord(deviceType,currentIndex,pageSize,devcode); - } - - @RequestMapping("/batch/cancel") - public Object excuteAlramBatchCancel(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "devcode",required =false) String devcode) { - return alarmService.excuteAlramBatchCancel(deviceType,devcode); - } - - @RequestMapping("/config/add") - public Object addAlarmConfig(@RequestBody AlarmConfigParam alarmConfigParam) { - return alarmService.addAlarmConfig(alarmConfigParam); - } -} diff --git a/src/main/java/com/casic/controller/AlarmPushController.java b/src/main/java/com/casic/controller/AlarmPushController.java deleted file mode 100644 index 1642f9b..0000000 --- a/src/main/java/com/casic/controller/AlarmPushController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmPushConfig; -import com.casic.service.AlarmPushService; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.*; - -@RestController -@AllArgsConstructor -@RequestMapping("/alarm") -public class AlarmPushController { - - private AlarmPushService alarmPushService; - - @RequestMapping("/push/config") - @ResponseBody - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - return alarmPushService.alarmPushConfig(alarmSwitchConfig); - } - - @RequestMapping("/push/query") - public Object alarmPushQuery(@RequestParam(value = "scene", required = true) String scene) { - return alarmPushService.getAlarmPush(scene); - } - -} diff --git a/src/main/java/com/casic/controller/ArtemisValidController.java b/src/main/java/com/casic/controller/ArtemisValidController.java deleted file mode 100644 index 1d52576..0000000 --- a/src/main/java/com/casic/controller/ArtemisValidController.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.controller; - -import com.casic.model.HkvideoValidParam; -import com.casic.model.ResponseData; -import com.casic.util.ArtemisPostUtil; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 海康接口 - */ -@AllArgsConstructor -@RestController -public class ArtemisValidController { - private final ArtemisPostUtil artemisPostUtill; - - @RequestMapping("/hkvideo/getVideoUrl") - public ResponseData getVideoUrl(@RequestBody HkvideoValidParam hkvideoValidParam) { - - return artemisPostUtill.artemisPost(hkvideoValidParam); - } - -} diff --git a/src/main/java/com/casic/controller/MessagePusherController.java b/src/main/java/com/casic/controller/MessagePusherController.java index d447c05..b97dcd1 100644 --- a/src/main/java/com/casic/controller/MessagePusherController.java +++ b/src/main/java/com/casic/controller/MessagePusherController.java @@ -32,8 +32,7 @@ } catch (UnsupportedEncodingException e) { e.printStackTrace(); } - return retMap; - } + return retMap; } //报警开关按钮 // diff --git a/src/main/java/com/casic/controller/ThirdDataController.java b/src/main/java/com/casic/controller/ThirdDataController.java index d910a7d..fbd8e59 100644 --- a/src/main/java/com/casic/controller/ThirdDataController.java +++ b/src/main/java/com/casic/controller/ThirdDataController.java @@ -1,8 +1,6 @@ package com.casic.controller; import com.alibaba.fastjson.JSON; -import com.casic.model.CommConfigDTO; -import com.casic.model.PressureDataParam; import com.casic.model.ResponseData; import com.casic.service.ThirdDataService; import lombok.extern.slf4j.Slf4j; @@ -10,7 +8,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.HashMap; import java.util.Map; @RestController @@ -24,22 +21,25 @@ this.thirdDataService = thirdDataService; } - @RequestMapping("/pressure/data") - public Object getDeviceRecentData(@RequestBody PressureDataParam pressureData) { - return thirdDataService.getDeviceRecentData(pressureData); + /** + * 硫化氢订阅接口 + * + * @param h2sDataMap + * @return + */ + @RequestMapping("/h2s-data") + public Object h2sData(@RequestBody Map h2sDataMap) { + System.out.println(JSON.toJSON(h2sDataMap)); + return thirdDataService.h2sData(h2sDataMap); } - @RequestMapping("/data") - public Object getDeviceData(@RequestBody Map pressureDataMap) { - System.out.println(JSON.toJSON(pressureDataMap)); - Map map = new HashMap(); - map.put("method", "setParams"); - Map param = new HashMap(); - param.put("ip", "大胆猜测下"); - map.put("status", 200); - map.put("params", param); - map.put("timeout", "3000"); - return map; + @RequestMapping("/test") + public Object testNbResponse (@RequestBody Map h2sDataMap){ + ResponseData responseData=new ResponseData(); + responseData.setCode(200); + responseData.setData("oyAAGDcgFAEAAcMAAQWfAXOJd1POnas6zxTmU7jQkVJinQ=="); + System.out.println(JSON.toJSON(h2sDataMap)); + return responseData; } } diff --git a/src/main/java/com/casic/dao/AlarmPushMapper.java b/src/main/java/com/casic/dao/AlarmPushMapper.java deleted file mode 100644 index 9d7484b..0000000 --- a/src/main/java/com/casic/dao/AlarmPushMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.AlarmPushConfig; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface AlarmPushMapper extends BaseMapper { -} diff --git a/src/main/java/com/casic/dao/AlarmRecordMapper.java b/src/main/java/com/casic/dao/AlarmRecordMapper.java new file mode 100644 index 0000000..d8a4911 --- /dev/null +++ b/src/main/java/com/casic/dao/AlarmRecordMapper.java @@ -0,0 +1,12 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.AlarmRecord; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AlarmRecordMapper extends BaseMapper { + + + +} diff --git a/src/main/java/com/casic/dao/DataH2sMapper.java b/src/main/java/com/casic/dao/DataH2sMapper.java new file mode 100644 index 0000000..434f1e2 --- /dev/null +++ b/src/main/java/com/casic/dao/DataH2sMapper.java @@ -0,0 +1,27 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.DataH2s; +import com.casic.model.DataPressure; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; + +@Mapper +public interface DataH2sMapper extends BaseMapper { + + int clearOnline(@Param("devcode") String devcode); + + String getWellCode(@Param("devcode") String devcode); + + Float getRuleValue(@Param("deviceType") String deviceType); + + int cancelAlarm(@Param("devcode") String devcode, @Param("status") String status); + + String getImeiByDevcode(@Param("devcode") String devcode); + + int updateImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); + + int addImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); +} diff --git a/src/main/java/com/casic/dao/DataPressureMapper.java b/src/main/java/com/casic/dao/DataPressureMapper.java deleted file mode 100644 index 05f4329..0000000 --- a/src/main/java/com/casic/dao/DataPressureMapper.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.DataPressure; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.Date; - -@Mapper -public interface DataPressureMapper extends BaseMapper { - - String getWellCode(@Param("devcode") String devcode); - - Float getRuleValue(@Param("deviceType") String deviceType); - - void saveRecords(@Param("reValue") String reValue, @Param("alarmTime") Date alarmTime); - -} diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java index d9e18a0..e62d526 100644 --- a/src/main/java/com/casic/dao/DeviceDataMapper.java +++ b/src/main/java/com/casic/dao/DeviceDataMapper.java @@ -23,5 +23,14 @@ @Param("pageSize") Integer pageSize, @Param("devcode") String devcode); - String getLevelByType(@Param("deviceType")String deviceType); + String getLevelByType(@Param("deviceType") String deviceType); + + + List getDevcodeByType(@Param("devciceType") Integer devciceType); + + List getRecentData(@Param("devciceType") Integer dataDay); + + List updateOnlineByDevs(@Param("dataSortDevcodeList") List dataSortDevcodeList); + + } diff --git a/src/main/java/com/casic/enums/DeviceTypeEnum.java b/src/main/java/com/casic/enums/DeviceTypeEnum.java new file mode 100644 index 0000000..8d5a6e6 --- /dev/null +++ b/src/main/java/com/casic/enums/DeviceTypeEnum.java @@ -0,0 +1,64 @@ +package com.casic.enums; + + +public enum DeviceTypeEnum { + Well("井盖状态监测仪", 1), + Liquid("液位监测仪", 2), + WasteGas("有害气体监测仪", 3), + Methane("燃气智能监测终端", 4), + TempHumi("温湿度监测仪", 5), + Dig("开挖监测仪", 6), + WellLocator("井盖定位监测仪", 7), + Noise("噪声记录仪", 8), + TempPressure("温度压力监测仪", 9), + FireHydrant("消防栓防盗水监测仪", 11), + Tube("管盯", 12), + LG("井盖液位一体机", 13), + H2s("硫化氢检测终端", 14); + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private DeviceTypeEnum(String name, int index) { + this.name = name; + this.index = index; + } + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } + + public static DeviceTypeEnum getByIndex(String index) { + try { + for (DeviceTypeEnum deviceTypeEnum : values()) { + if (deviceTypeEnum.index == Integer.parseInt(index)) { + return deviceTypeEnum; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } +} \ No newline at end of file diff --git a/src/main/java/com/casic/enums/H2sParamsEnum.java b/src/main/java/com/casic/enums/H2sParamsEnum.java new file mode 100644 index 0000000..74eec50 --- /dev/null +++ b/src/main/java/com/casic/enums/H2sParamsEnum.java @@ -0,0 +1,35 @@ +package com.casic.enums; + +public interface H2sParamsEnum { + + /** + * 下发配置参数 + */ + String IP = "ip"; + String PORT = "port"; + String CTNET = "ctnet"; + String PERIOD = "period"; + String CYCLE = "cycle"; + /** + * 三码上报 + */ + String ICCID = "iccid"; + String IMEI = "imei"; + String DEVCODE = "devcode"; + /** + * 上传时间 + */ + String TS = "ts"; + /** + * 数据上报(电量、硫化氢数据值、设备编号) + * 数据值 + */ + String H2S_VALUE = "h2sValue"; + /** + * 电量 + */ + String BATTERY_VALUE = "batteryValue"; + + + +} diff --git a/src/main/java/com/casic/model/AlarmRecord.java b/src/main/java/com/casic/model/AlarmRecord.java new file mode 100644 index 0000000..600fe5a --- /dev/null +++ b/src/main/java/com/casic/model/AlarmRecord.java @@ -0,0 +1,81 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; + +import java.util.Date; + +@Builder +@TableName("alarm_records") +public class AlarmRecord { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 设备ID + */ + @TableField("DEVICE_ID") + private Long deviceId; + /** + * 设备编号 + */ + @TableField("DEVCODE") + private String devcode; + /** + * 闸井编号 + */ + @TableField("WELL_CODE") + private String wellCode; + /** + * 告警类型 + */ + @TableField("ALARM_TYPE") + private String alarmType; + /** + * 告警内容 + */ + @TableField("ALARM_CONTENT") + private String alarmContent; + /** + * 告警数值 + */ + @TableField("ALARM_VALUE") + private String alarmValue; + /** + * 告警等级 + */ + @TableField("ALARM_LEVEL") + private Integer alarmLevel; + /** + * 告警详情 + */ + @TableField("ALARM_MSG") + private String alarmMessage; + /** + * 告警时间 + */ + @TableField("ALARM_TIME") + private Date alarmTime; + /** + * 告警状态 + */ + @TableField("STATUS") + private String status; + /** + * 工单编号 + */ + @TableField("JOB_ID") + private Long jobId; + + @TableField(exist = false) + private Integer jobStatus; + +} diff --git a/src/main/java/com/casic/model/DataH2s.java b/src/main/java/com/casic/model/DataH2s.java new file mode 100644 index 0000000..16ecc7a --- /dev/null +++ b/src/main/java/com/casic/model/DataH2s.java @@ -0,0 +1,37 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + */ +@Data +@TableName("data_h2s") +public class DataH2s { + + private Long id; + + private String devcode; + + private String wellCode; + + private String cell; + + private String strength; + + private String uptime; + + private String logtime; + + private String descn; + + private String rsrp; + + private String pci; + + private String snr; + +} diff --git a/src/main/java/com/casic/model/DeviceTypeEnum.java b/src/main/java/com/casic/model/DeviceTypeEnum.java deleted file mode 100644 index 26c685f..0000000 --- a/src/main/java/com/casic/model/DeviceTypeEnum.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.casic.model; - - -public enum DeviceTypeEnum { - Well("井盖状态监测仪", 1), - Liquid("液位监测仪", 2), - WasteGas("有害气体监测仪", 3), - Methane("燃气智能监测终端", 4), - TempHumi("温湿度监测仪", 5), - Dig("开挖监测仪", 6), - WellLocator("井盖定位监测仪", 7), - Noise("噪声记录仪", 8), - TempPressure("温度压力监测仪", 9), - FireHydrant("消防栓防盗水监测仪", 11), - Tube("管盯", 12), - LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); - - // 成员变量 - private String name; - private int index; - - // 构造方法 - private DeviceTypeEnum(String name, int index) { - this.name = name; - this.index = index; - } - - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public int getIndex() { - return index; - } - - public void setIndex(int index) { - this.index = index; - } - - public static DeviceTypeEnum getByIndex(String index) { - try { - for (DeviceTypeEnum deviceTypeEnum : values()) { - if (deviceTypeEnum.index == Integer.parseInt(index)) { - return deviceTypeEnum; - } - } - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - //覆盖方法 - @Override - public String toString() { - return this.name; - } -} \ No newline at end of file diff --git a/src/main/java/com/casic/service/AlarmPushService.java b/src/main/java/com/casic/service/AlarmPushService.java deleted file mode 100644 index d180eb2..0000000 --- a/src/main/java/com/casic/service/AlarmPushService.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.service; - -import com.casic.model.AlarmPushConfig; - -public interface AlarmPushService { - - Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig); - - Object getAlarmPush(String scene); - -} - - - diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/casic/config/AliYunConfig.java b/src/main/java/com/casic/config/AliYunConfig.java deleted file mode 100644 index 090b6ab..0000000 --- a/src/main/java/com/casic/config/AliYunConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Slf4j -@Configuration -@ConfigurationProperties(prefix = "casic.ali") -@Data -public class AliYunConfig { - - private String key; - private String screct; - private String url; - private String signNameJson; - private String templateCode; - -} diff --git a/src/main/java/com/casic/config/ApiHikomConfig.java b/src/main/java/com/casic/config/ApiHikomConfig.java deleted file mode 100644 index 73b3550..0000000 --- a/src/main/java/com/casic/config/ApiHikomConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -@Data -public class ApiHikomConfig { - @Value("${casic.hikom.host}") - private String hikomHost; - @Value("${casic.hikom.url}") - private String hikomUrl; -} diff --git a/src/main/java/com/casic/config/task/TaskConfigurer.java b/src/main/java/com/casic/config/task/TaskConfigurer.java new file mode 100644 index 0000000..43282d3 --- /dev/null +++ b/src/main/java/com/casic/config/task/TaskConfigurer.java @@ -0,0 +1,44 @@ +package com.casic.config.task; + +import com.casic.service.DeviceDataService; +import com.casic.service.ThirdDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.config.TriggerTask; +import org.springframework.scheduling.support.CronTrigger; + +/** + * @author cz + */ +@Configuration +@EnableScheduling +public class TaskConfigurer implements SchedulingConfigurer { + + @Value("${casic.device.online.corn}") + private String timeConfig; + @Autowired + private DeviceDataService deviceDataService; + + @Override + public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + TriggerTask triggrtTask = new TriggerTask(nextDayDevice(), + triggerContext -> { + return new CronTrigger(timeConfig).nextExecutionTime(triggerContext); + }); + taskRegistrar.addTriggerTask(triggrtTask); + } + + private Runnable nextDayDevice() { + return new Runnable() { + @Override + public void run() { + deviceDataService.checkAndUpdateDeviceOnline(); + } + }; + } + +} \ No newline at end of file diff --git a/src/main/java/com/casic/controller/AlarmController.java b/src/main/java/com/casic/controller/AlarmController.java deleted file mode 100644 index 957fc36..0000000 --- a/src/main/java/com/casic/controller/AlarmController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmConfigParam; -import com.casic.service.AlarmService; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/alarm") -public class AlarmController { - - private final AlarmService alarmService; - - public AlarmController(AlarmService alarmService) { - this.alarmService = alarmService; - } - - @RequestMapping("/records") - public Object getAlarmRecord(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "currentIndex", required = true) Integer currentIndex, - @RequestParam(value = "devcode",required =false) String devcode, - @RequestParam(value = "pageSize", required = true) Integer pageSize) { - return alarmService.getAlarmRecord(deviceType,currentIndex,pageSize,devcode); - } - - @RequestMapping("/batch/cancel") - public Object excuteAlramBatchCancel(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "devcode",required =false) String devcode) { - return alarmService.excuteAlramBatchCancel(deviceType,devcode); - } - - @RequestMapping("/config/add") - public Object addAlarmConfig(@RequestBody AlarmConfigParam alarmConfigParam) { - return alarmService.addAlarmConfig(alarmConfigParam); - } -} diff --git a/src/main/java/com/casic/controller/AlarmPushController.java b/src/main/java/com/casic/controller/AlarmPushController.java deleted file mode 100644 index 1642f9b..0000000 --- a/src/main/java/com/casic/controller/AlarmPushController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmPushConfig; -import com.casic.service.AlarmPushService; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.*; - -@RestController -@AllArgsConstructor -@RequestMapping("/alarm") -public class AlarmPushController { - - private AlarmPushService alarmPushService; - - @RequestMapping("/push/config") - @ResponseBody - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - return alarmPushService.alarmPushConfig(alarmSwitchConfig); - } - - @RequestMapping("/push/query") - public Object alarmPushQuery(@RequestParam(value = "scene", required = true) String scene) { - return alarmPushService.getAlarmPush(scene); - } - -} diff --git a/src/main/java/com/casic/controller/ArtemisValidController.java b/src/main/java/com/casic/controller/ArtemisValidController.java deleted file mode 100644 index 1d52576..0000000 --- a/src/main/java/com/casic/controller/ArtemisValidController.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.controller; - -import com.casic.model.HkvideoValidParam; -import com.casic.model.ResponseData; -import com.casic.util.ArtemisPostUtil; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 海康接口 - */ -@AllArgsConstructor -@RestController -public class ArtemisValidController { - private final ArtemisPostUtil artemisPostUtill; - - @RequestMapping("/hkvideo/getVideoUrl") - public ResponseData getVideoUrl(@RequestBody HkvideoValidParam hkvideoValidParam) { - - return artemisPostUtill.artemisPost(hkvideoValidParam); - } - -} diff --git a/src/main/java/com/casic/controller/MessagePusherController.java b/src/main/java/com/casic/controller/MessagePusherController.java index d447c05..b97dcd1 100644 --- a/src/main/java/com/casic/controller/MessagePusherController.java +++ b/src/main/java/com/casic/controller/MessagePusherController.java @@ -32,8 +32,7 @@ } catch (UnsupportedEncodingException e) { e.printStackTrace(); } - return retMap; - } + return retMap; } //报警开关按钮 // diff --git a/src/main/java/com/casic/controller/ThirdDataController.java b/src/main/java/com/casic/controller/ThirdDataController.java index d910a7d..fbd8e59 100644 --- a/src/main/java/com/casic/controller/ThirdDataController.java +++ b/src/main/java/com/casic/controller/ThirdDataController.java @@ -1,8 +1,6 @@ package com.casic.controller; import com.alibaba.fastjson.JSON; -import com.casic.model.CommConfigDTO; -import com.casic.model.PressureDataParam; import com.casic.model.ResponseData; import com.casic.service.ThirdDataService; import lombok.extern.slf4j.Slf4j; @@ -10,7 +8,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.HashMap; import java.util.Map; @RestController @@ -24,22 +21,25 @@ this.thirdDataService = thirdDataService; } - @RequestMapping("/pressure/data") - public Object getDeviceRecentData(@RequestBody PressureDataParam pressureData) { - return thirdDataService.getDeviceRecentData(pressureData); + /** + * 硫化氢订阅接口 + * + * @param h2sDataMap + * @return + */ + @RequestMapping("/h2s-data") + public Object h2sData(@RequestBody Map h2sDataMap) { + System.out.println(JSON.toJSON(h2sDataMap)); + return thirdDataService.h2sData(h2sDataMap); } - @RequestMapping("/data") - public Object getDeviceData(@RequestBody Map pressureDataMap) { - System.out.println(JSON.toJSON(pressureDataMap)); - Map map = new HashMap(); - map.put("method", "setParams"); - Map param = new HashMap(); - param.put("ip", "大胆猜测下"); - map.put("status", 200); - map.put("params", param); - map.put("timeout", "3000"); - return map; + @RequestMapping("/test") + public Object testNbResponse (@RequestBody Map h2sDataMap){ + ResponseData responseData=new ResponseData(); + responseData.setCode(200); + responseData.setData("oyAAGDcgFAEAAcMAAQWfAXOJd1POnas6zxTmU7jQkVJinQ=="); + System.out.println(JSON.toJSON(h2sDataMap)); + return responseData; } } diff --git a/src/main/java/com/casic/dao/AlarmPushMapper.java b/src/main/java/com/casic/dao/AlarmPushMapper.java deleted file mode 100644 index 9d7484b..0000000 --- a/src/main/java/com/casic/dao/AlarmPushMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.AlarmPushConfig; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface AlarmPushMapper extends BaseMapper { -} diff --git a/src/main/java/com/casic/dao/AlarmRecordMapper.java b/src/main/java/com/casic/dao/AlarmRecordMapper.java new file mode 100644 index 0000000..d8a4911 --- /dev/null +++ b/src/main/java/com/casic/dao/AlarmRecordMapper.java @@ -0,0 +1,12 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.AlarmRecord; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AlarmRecordMapper extends BaseMapper { + + + +} diff --git a/src/main/java/com/casic/dao/DataH2sMapper.java b/src/main/java/com/casic/dao/DataH2sMapper.java new file mode 100644 index 0000000..434f1e2 --- /dev/null +++ b/src/main/java/com/casic/dao/DataH2sMapper.java @@ -0,0 +1,27 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.DataH2s; +import com.casic.model.DataPressure; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; + +@Mapper +public interface DataH2sMapper extends BaseMapper { + + int clearOnline(@Param("devcode") String devcode); + + String getWellCode(@Param("devcode") String devcode); + + Float getRuleValue(@Param("deviceType") String deviceType); + + int cancelAlarm(@Param("devcode") String devcode, @Param("status") String status); + + String getImeiByDevcode(@Param("devcode") String devcode); + + int updateImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); + + int addImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); +} diff --git a/src/main/java/com/casic/dao/DataPressureMapper.java b/src/main/java/com/casic/dao/DataPressureMapper.java deleted file mode 100644 index 05f4329..0000000 --- a/src/main/java/com/casic/dao/DataPressureMapper.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.DataPressure; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.Date; - -@Mapper -public interface DataPressureMapper extends BaseMapper { - - String getWellCode(@Param("devcode") String devcode); - - Float getRuleValue(@Param("deviceType") String deviceType); - - void saveRecords(@Param("reValue") String reValue, @Param("alarmTime") Date alarmTime); - -} diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java index d9e18a0..e62d526 100644 --- a/src/main/java/com/casic/dao/DeviceDataMapper.java +++ b/src/main/java/com/casic/dao/DeviceDataMapper.java @@ -23,5 +23,14 @@ @Param("pageSize") Integer pageSize, @Param("devcode") String devcode); - String getLevelByType(@Param("deviceType")String deviceType); + String getLevelByType(@Param("deviceType") String deviceType); + + + List getDevcodeByType(@Param("devciceType") Integer devciceType); + + List getRecentData(@Param("devciceType") Integer dataDay); + + List updateOnlineByDevs(@Param("dataSortDevcodeList") List dataSortDevcodeList); + + } diff --git a/src/main/java/com/casic/enums/DeviceTypeEnum.java b/src/main/java/com/casic/enums/DeviceTypeEnum.java new file mode 100644 index 0000000..8d5a6e6 --- /dev/null +++ b/src/main/java/com/casic/enums/DeviceTypeEnum.java @@ -0,0 +1,64 @@ +package com.casic.enums; + + +public enum DeviceTypeEnum { + Well("井盖状态监测仪", 1), + Liquid("液位监测仪", 2), + WasteGas("有害气体监测仪", 3), + Methane("燃气智能监测终端", 4), + TempHumi("温湿度监测仪", 5), + Dig("开挖监测仪", 6), + WellLocator("井盖定位监测仪", 7), + Noise("噪声记录仪", 8), + TempPressure("温度压力监测仪", 9), + FireHydrant("消防栓防盗水监测仪", 11), + Tube("管盯", 12), + LG("井盖液位一体机", 13), + H2s("硫化氢检测终端", 14); + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private DeviceTypeEnum(String name, int index) { + this.name = name; + this.index = index; + } + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } + + public static DeviceTypeEnum getByIndex(String index) { + try { + for (DeviceTypeEnum deviceTypeEnum : values()) { + if (deviceTypeEnum.index == Integer.parseInt(index)) { + return deviceTypeEnum; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } +} \ No newline at end of file diff --git a/src/main/java/com/casic/enums/H2sParamsEnum.java b/src/main/java/com/casic/enums/H2sParamsEnum.java new file mode 100644 index 0000000..74eec50 --- /dev/null +++ b/src/main/java/com/casic/enums/H2sParamsEnum.java @@ -0,0 +1,35 @@ +package com.casic.enums; + +public interface H2sParamsEnum { + + /** + * 下发配置参数 + */ + String IP = "ip"; + String PORT = "port"; + String CTNET = "ctnet"; + String PERIOD = "period"; + String CYCLE = "cycle"; + /** + * 三码上报 + */ + String ICCID = "iccid"; + String IMEI = "imei"; + String DEVCODE = "devcode"; + /** + * 上传时间 + */ + String TS = "ts"; + /** + * 数据上报(电量、硫化氢数据值、设备编号) + * 数据值 + */ + String H2S_VALUE = "h2sValue"; + /** + * 电量 + */ + String BATTERY_VALUE = "batteryValue"; + + + +} diff --git a/src/main/java/com/casic/model/AlarmRecord.java b/src/main/java/com/casic/model/AlarmRecord.java new file mode 100644 index 0000000..600fe5a --- /dev/null +++ b/src/main/java/com/casic/model/AlarmRecord.java @@ -0,0 +1,81 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; + +import java.util.Date; + +@Builder +@TableName("alarm_records") +public class AlarmRecord { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 设备ID + */ + @TableField("DEVICE_ID") + private Long deviceId; + /** + * 设备编号 + */ + @TableField("DEVCODE") + private String devcode; + /** + * 闸井编号 + */ + @TableField("WELL_CODE") + private String wellCode; + /** + * 告警类型 + */ + @TableField("ALARM_TYPE") + private String alarmType; + /** + * 告警内容 + */ + @TableField("ALARM_CONTENT") + private String alarmContent; + /** + * 告警数值 + */ + @TableField("ALARM_VALUE") + private String alarmValue; + /** + * 告警等级 + */ + @TableField("ALARM_LEVEL") + private Integer alarmLevel; + /** + * 告警详情 + */ + @TableField("ALARM_MSG") + private String alarmMessage; + /** + * 告警时间 + */ + @TableField("ALARM_TIME") + private Date alarmTime; + /** + * 告警状态 + */ + @TableField("STATUS") + private String status; + /** + * 工单编号 + */ + @TableField("JOB_ID") + private Long jobId; + + @TableField(exist = false) + private Integer jobStatus; + +} diff --git a/src/main/java/com/casic/model/DataH2s.java b/src/main/java/com/casic/model/DataH2s.java new file mode 100644 index 0000000..16ecc7a --- /dev/null +++ b/src/main/java/com/casic/model/DataH2s.java @@ -0,0 +1,37 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + */ +@Data +@TableName("data_h2s") +public class DataH2s { + + private Long id; + + private String devcode; + + private String wellCode; + + private String cell; + + private String strength; + + private String uptime; + + private String logtime; + + private String descn; + + private String rsrp; + + private String pci; + + private String snr; + +} diff --git a/src/main/java/com/casic/model/DeviceTypeEnum.java b/src/main/java/com/casic/model/DeviceTypeEnum.java deleted file mode 100644 index 26c685f..0000000 --- a/src/main/java/com/casic/model/DeviceTypeEnum.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.casic.model; - - -public enum DeviceTypeEnum { - Well("井盖状态监测仪", 1), - Liquid("液位监测仪", 2), - WasteGas("有害气体监测仪", 3), - Methane("燃气智能监测终端", 4), - TempHumi("温湿度监测仪", 5), - Dig("开挖监测仪", 6), - WellLocator("井盖定位监测仪", 7), - Noise("噪声记录仪", 8), - TempPressure("温度压力监测仪", 9), - FireHydrant("消防栓防盗水监测仪", 11), - Tube("管盯", 12), - LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); - - // 成员变量 - private String name; - private int index; - - // 构造方法 - private DeviceTypeEnum(String name, int index) { - this.name = name; - this.index = index; - } - - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public int getIndex() { - return index; - } - - public void setIndex(int index) { - this.index = index; - } - - public static DeviceTypeEnum getByIndex(String index) { - try { - for (DeviceTypeEnum deviceTypeEnum : values()) { - if (deviceTypeEnum.index == Integer.parseInt(index)) { - return deviceTypeEnum; - } - } - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - //覆盖方法 - @Override - public String toString() { - return this.name; - } -} \ No newline at end of file diff --git a/src/main/java/com/casic/service/AlarmPushService.java b/src/main/java/com/casic/service/AlarmPushService.java deleted file mode 100644 index d180eb2..0000000 --- a/src/main/java/com/casic/service/AlarmPushService.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.service; - -import com.casic.model.AlarmPushConfig; - -public interface AlarmPushService { - - Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig); - - Object getAlarmPush(String scene); - -} - - - diff --git a/src/main/java/com/casic/service/AlarmService.java b/src/main/java/com/casic/service/AlarmService.java deleted file mode 100644 index 4f41038..0000000 --- a/src/main/java/com/casic/service/AlarmService.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.casic.service; - -import com.casic.model.AlarmConfigParam; - -public interface AlarmService { - - Object getAlarmRecord(String deviceType, Integer currentIndex, Integer pageSize, String devcode); - - Object excuteAlramBatchCancel(String deviceType, String devcode); - - Object addAlarmConfig(AlarmConfigParam alarmConfig); - -} diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/casic/config/AliYunConfig.java b/src/main/java/com/casic/config/AliYunConfig.java deleted file mode 100644 index 090b6ab..0000000 --- a/src/main/java/com/casic/config/AliYunConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Slf4j -@Configuration -@ConfigurationProperties(prefix = "casic.ali") -@Data -public class AliYunConfig { - - private String key; - private String screct; - private String url; - private String signNameJson; - private String templateCode; - -} diff --git a/src/main/java/com/casic/config/ApiHikomConfig.java b/src/main/java/com/casic/config/ApiHikomConfig.java deleted file mode 100644 index 73b3550..0000000 --- a/src/main/java/com/casic/config/ApiHikomConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -@Data -public class ApiHikomConfig { - @Value("${casic.hikom.host}") - private String hikomHost; - @Value("${casic.hikom.url}") - private String hikomUrl; -} diff --git a/src/main/java/com/casic/config/task/TaskConfigurer.java b/src/main/java/com/casic/config/task/TaskConfigurer.java new file mode 100644 index 0000000..43282d3 --- /dev/null +++ b/src/main/java/com/casic/config/task/TaskConfigurer.java @@ -0,0 +1,44 @@ +package com.casic.config.task; + +import com.casic.service.DeviceDataService; +import com.casic.service.ThirdDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.config.TriggerTask; +import org.springframework.scheduling.support.CronTrigger; + +/** + * @author cz + */ +@Configuration +@EnableScheduling +public class TaskConfigurer implements SchedulingConfigurer { + + @Value("${casic.device.online.corn}") + private String timeConfig; + @Autowired + private DeviceDataService deviceDataService; + + @Override + public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + TriggerTask triggrtTask = new TriggerTask(nextDayDevice(), + triggerContext -> { + return new CronTrigger(timeConfig).nextExecutionTime(triggerContext); + }); + taskRegistrar.addTriggerTask(triggrtTask); + } + + private Runnable nextDayDevice() { + return new Runnable() { + @Override + public void run() { + deviceDataService.checkAndUpdateDeviceOnline(); + } + }; + } + +} \ No newline at end of file diff --git a/src/main/java/com/casic/controller/AlarmController.java b/src/main/java/com/casic/controller/AlarmController.java deleted file mode 100644 index 957fc36..0000000 --- a/src/main/java/com/casic/controller/AlarmController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmConfigParam; -import com.casic.service.AlarmService; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/alarm") -public class AlarmController { - - private final AlarmService alarmService; - - public AlarmController(AlarmService alarmService) { - this.alarmService = alarmService; - } - - @RequestMapping("/records") - public Object getAlarmRecord(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "currentIndex", required = true) Integer currentIndex, - @RequestParam(value = "devcode",required =false) String devcode, - @RequestParam(value = "pageSize", required = true) Integer pageSize) { - return alarmService.getAlarmRecord(deviceType,currentIndex,pageSize,devcode); - } - - @RequestMapping("/batch/cancel") - public Object excuteAlramBatchCancel(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "devcode",required =false) String devcode) { - return alarmService.excuteAlramBatchCancel(deviceType,devcode); - } - - @RequestMapping("/config/add") - public Object addAlarmConfig(@RequestBody AlarmConfigParam alarmConfigParam) { - return alarmService.addAlarmConfig(alarmConfigParam); - } -} diff --git a/src/main/java/com/casic/controller/AlarmPushController.java b/src/main/java/com/casic/controller/AlarmPushController.java deleted file mode 100644 index 1642f9b..0000000 --- a/src/main/java/com/casic/controller/AlarmPushController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmPushConfig; -import com.casic.service.AlarmPushService; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.*; - -@RestController -@AllArgsConstructor -@RequestMapping("/alarm") -public class AlarmPushController { - - private AlarmPushService alarmPushService; - - @RequestMapping("/push/config") - @ResponseBody - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - return alarmPushService.alarmPushConfig(alarmSwitchConfig); - } - - @RequestMapping("/push/query") - public Object alarmPushQuery(@RequestParam(value = "scene", required = true) String scene) { - return alarmPushService.getAlarmPush(scene); - } - -} diff --git a/src/main/java/com/casic/controller/ArtemisValidController.java b/src/main/java/com/casic/controller/ArtemisValidController.java deleted file mode 100644 index 1d52576..0000000 --- a/src/main/java/com/casic/controller/ArtemisValidController.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.controller; - -import com.casic.model.HkvideoValidParam; -import com.casic.model.ResponseData; -import com.casic.util.ArtemisPostUtil; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 海康接口 - */ -@AllArgsConstructor -@RestController -public class ArtemisValidController { - private final ArtemisPostUtil artemisPostUtill; - - @RequestMapping("/hkvideo/getVideoUrl") - public ResponseData getVideoUrl(@RequestBody HkvideoValidParam hkvideoValidParam) { - - return artemisPostUtill.artemisPost(hkvideoValidParam); - } - -} diff --git a/src/main/java/com/casic/controller/MessagePusherController.java b/src/main/java/com/casic/controller/MessagePusherController.java index d447c05..b97dcd1 100644 --- a/src/main/java/com/casic/controller/MessagePusherController.java +++ b/src/main/java/com/casic/controller/MessagePusherController.java @@ -32,8 +32,7 @@ } catch (UnsupportedEncodingException e) { e.printStackTrace(); } - return retMap; - } + return retMap; } //报警开关按钮 // diff --git a/src/main/java/com/casic/controller/ThirdDataController.java b/src/main/java/com/casic/controller/ThirdDataController.java index d910a7d..fbd8e59 100644 --- a/src/main/java/com/casic/controller/ThirdDataController.java +++ b/src/main/java/com/casic/controller/ThirdDataController.java @@ -1,8 +1,6 @@ package com.casic.controller; import com.alibaba.fastjson.JSON; -import com.casic.model.CommConfigDTO; -import com.casic.model.PressureDataParam; import com.casic.model.ResponseData; import com.casic.service.ThirdDataService; import lombok.extern.slf4j.Slf4j; @@ -10,7 +8,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.HashMap; import java.util.Map; @RestController @@ -24,22 +21,25 @@ this.thirdDataService = thirdDataService; } - @RequestMapping("/pressure/data") - public Object getDeviceRecentData(@RequestBody PressureDataParam pressureData) { - return thirdDataService.getDeviceRecentData(pressureData); + /** + * 硫化氢订阅接口 + * + * @param h2sDataMap + * @return + */ + @RequestMapping("/h2s-data") + public Object h2sData(@RequestBody Map h2sDataMap) { + System.out.println(JSON.toJSON(h2sDataMap)); + return thirdDataService.h2sData(h2sDataMap); } - @RequestMapping("/data") - public Object getDeviceData(@RequestBody Map pressureDataMap) { - System.out.println(JSON.toJSON(pressureDataMap)); - Map map = new HashMap(); - map.put("method", "setParams"); - Map param = new HashMap(); - param.put("ip", "大胆猜测下"); - map.put("status", 200); - map.put("params", param); - map.put("timeout", "3000"); - return map; + @RequestMapping("/test") + public Object testNbResponse (@RequestBody Map h2sDataMap){ + ResponseData responseData=new ResponseData(); + responseData.setCode(200); + responseData.setData("oyAAGDcgFAEAAcMAAQWfAXOJd1POnas6zxTmU7jQkVJinQ=="); + System.out.println(JSON.toJSON(h2sDataMap)); + return responseData; } } diff --git a/src/main/java/com/casic/dao/AlarmPushMapper.java b/src/main/java/com/casic/dao/AlarmPushMapper.java deleted file mode 100644 index 9d7484b..0000000 --- a/src/main/java/com/casic/dao/AlarmPushMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.AlarmPushConfig; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface AlarmPushMapper extends BaseMapper { -} diff --git a/src/main/java/com/casic/dao/AlarmRecordMapper.java b/src/main/java/com/casic/dao/AlarmRecordMapper.java new file mode 100644 index 0000000..d8a4911 --- /dev/null +++ b/src/main/java/com/casic/dao/AlarmRecordMapper.java @@ -0,0 +1,12 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.AlarmRecord; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AlarmRecordMapper extends BaseMapper { + + + +} diff --git a/src/main/java/com/casic/dao/DataH2sMapper.java b/src/main/java/com/casic/dao/DataH2sMapper.java new file mode 100644 index 0000000..434f1e2 --- /dev/null +++ b/src/main/java/com/casic/dao/DataH2sMapper.java @@ -0,0 +1,27 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.DataH2s; +import com.casic.model.DataPressure; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; + +@Mapper +public interface DataH2sMapper extends BaseMapper { + + int clearOnline(@Param("devcode") String devcode); + + String getWellCode(@Param("devcode") String devcode); + + Float getRuleValue(@Param("deviceType") String deviceType); + + int cancelAlarm(@Param("devcode") String devcode, @Param("status") String status); + + String getImeiByDevcode(@Param("devcode") String devcode); + + int updateImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); + + int addImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); +} diff --git a/src/main/java/com/casic/dao/DataPressureMapper.java b/src/main/java/com/casic/dao/DataPressureMapper.java deleted file mode 100644 index 05f4329..0000000 --- a/src/main/java/com/casic/dao/DataPressureMapper.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.DataPressure; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.Date; - -@Mapper -public interface DataPressureMapper extends BaseMapper { - - String getWellCode(@Param("devcode") String devcode); - - Float getRuleValue(@Param("deviceType") String deviceType); - - void saveRecords(@Param("reValue") String reValue, @Param("alarmTime") Date alarmTime); - -} diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java index d9e18a0..e62d526 100644 --- a/src/main/java/com/casic/dao/DeviceDataMapper.java +++ b/src/main/java/com/casic/dao/DeviceDataMapper.java @@ -23,5 +23,14 @@ @Param("pageSize") Integer pageSize, @Param("devcode") String devcode); - String getLevelByType(@Param("deviceType")String deviceType); + String getLevelByType(@Param("deviceType") String deviceType); + + + List getDevcodeByType(@Param("devciceType") Integer devciceType); + + List getRecentData(@Param("devciceType") Integer dataDay); + + List updateOnlineByDevs(@Param("dataSortDevcodeList") List dataSortDevcodeList); + + } diff --git a/src/main/java/com/casic/enums/DeviceTypeEnum.java b/src/main/java/com/casic/enums/DeviceTypeEnum.java new file mode 100644 index 0000000..8d5a6e6 --- /dev/null +++ b/src/main/java/com/casic/enums/DeviceTypeEnum.java @@ -0,0 +1,64 @@ +package com.casic.enums; + + +public enum DeviceTypeEnum { + Well("井盖状态监测仪", 1), + Liquid("液位监测仪", 2), + WasteGas("有害气体监测仪", 3), + Methane("燃气智能监测终端", 4), + TempHumi("温湿度监测仪", 5), + Dig("开挖监测仪", 6), + WellLocator("井盖定位监测仪", 7), + Noise("噪声记录仪", 8), + TempPressure("温度压力监测仪", 9), + FireHydrant("消防栓防盗水监测仪", 11), + Tube("管盯", 12), + LG("井盖液位一体机", 13), + H2s("硫化氢检测终端", 14); + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private DeviceTypeEnum(String name, int index) { + this.name = name; + this.index = index; + } + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } + + public static DeviceTypeEnum getByIndex(String index) { + try { + for (DeviceTypeEnum deviceTypeEnum : values()) { + if (deviceTypeEnum.index == Integer.parseInt(index)) { + return deviceTypeEnum; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } +} \ No newline at end of file diff --git a/src/main/java/com/casic/enums/H2sParamsEnum.java b/src/main/java/com/casic/enums/H2sParamsEnum.java new file mode 100644 index 0000000..74eec50 --- /dev/null +++ b/src/main/java/com/casic/enums/H2sParamsEnum.java @@ -0,0 +1,35 @@ +package com.casic.enums; + +public interface H2sParamsEnum { + + /** + * 下发配置参数 + */ + String IP = "ip"; + String PORT = "port"; + String CTNET = "ctnet"; + String PERIOD = "period"; + String CYCLE = "cycle"; + /** + * 三码上报 + */ + String ICCID = "iccid"; + String IMEI = "imei"; + String DEVCODE = "devcode"; + /** + * 上传时间 + */ + String TS = "ts"; + /** + * 数据上报(电量、硫化氢数据值、设备编号) + * 数据值 + */ + String H2S_VALUE = "h2sValue"; + /** + * 电量 + */ + String BATTERY_VALUE = "batteryValue"; + + + +} diff --git a/src/main/java/com/casic/model/AlarmRecord.java b/src/main/java/com/casic/model/AlarmRecord.java new file mode 100644 index 0000000..600fe5a --- /dev/null +++ b/src/main/java/com/casic/model/AlarmRecord.java @@ -0,0 +1,81 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; + +import java.util.Date; + +@Builder +@TableName("alarm_records") +public class AlarmRecord { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 设备ID + */ + @TableField("DEVICE_ID") + private Long deviceId; + /** + * 设备编号 + */ + @TableField("DEVCODE") + private String devcode; + /** + * 闸井编号 + */ + @TableField("WELL_CODE") + private String wellCode; + /** + * 告警类型 + */ + @TableField("ALARM_TYPE") + private String alarmType; + /** + * 告警内容 + */ + @TableField("ALARM_CONTENT") + private String alarmContent; + /** + * 告警数值 + */ + @TableField("ALARM_VALUE") + private String alarmValue; + /** + * 告警等级 + */ + @TableField("ALARM_LEVEL") + private Integer alarmLevel; + /** + * 告警详情 + */ + @TableField("ALARM_MSG") + private String alarmMessage; + /** + * 告警时间 + */ + @TableField("ALARM_TIME") + private Date alarmTime; + /** + * 告警状态 + */ + @TableField("STATUS") + private String status; + /** + * 工单编号 + */ + @TableField("JOB_ID") + private Long jobId; + + @TableField(exist = false) + private Integer jobStatus; + +} diff --git a/src/main/java/com/casic/model/DataH2s.java b/src/main/java/com/casic/model/DataH2s.java new file mode 100644 index 0000000..16ecc7a --- /dev/null +++ b/src/main/java/com/casic/model/DataH2s.java @@ -0,0 +1,37 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + */ +@Data +@TableName("data_h2s") +public class DataH2s { + + private Long id; + + private String devcode; + + private String wellCode; + + private String cell; + + private String strength; + + private String uptime; + + private String logtime; + + private String descn; + + private String rsrp; + + private String pci; + + private String snr; + +} diff --git a/src/main/java/com/casic/model/DeviceTypeEnum.java b/src/main/java/com/casic/model/DeviceTypeEnum.java deleted file mode 100644 index 26c685f..0000000 --- a/src/main/java/com/casic/model/DeviceTypeEnum.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.casic.model; - - -public enum DeviceTypeEnum { - Well("井盖状态监测仪", 1), - Liquid("液位监测仪", 2), - WasteGas("有害气体监测仪", 3), - Methane("燃气智能监测终端", 4), - TempHumi("温湿度监测仪", 5), - Dig("开挖监测仪", 6), - WellLocator("井盖定位监测仪", 7), - Noise("噪声记录仪", 8), - TempPressure("温度压力监测仪", 9), - FireHydrant("消防栓防盗水监测仪", 11), - Tube("管盯", 12), - LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); - - // 成员变量 - private String name; - private int index; - - // 构造方法 - private DeviceTypeEnum(String name, int index) { - this.name = name; - this.index = index; - } - - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public int getIndex() { - return index; - } - - public void setIndex(int index) { - this.index = index; - } - - public static DeviceTypeEnum getByIndex(String index) { - try { - for (DeviceTypeEnum deviceTypeEnum : values()) { - if (deviceTypeEnum.index == Integer.parseInt(index)) { - return deviceTypeEnum; - } - } - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - //覆盖方法 - @Override - public String toString() { - return this.name; - } -} \ No newline at end of file diff --git a/src/main/java/com/casic/service/AlarmPushService.java b/src/main/java/com/casic/service/AlarmPushService.java deleted file mode 100644 index d180eb2..0000000 --- a/src/main/java/com/casic/service/AlarmPushService.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.service; - -import com.casic.model.AlarmPushConfig; - -public interface AlarmPushService { - - Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig); - - Object getAlarmPush(String scene); - -} - - - diff --git a/src/main/java/com/casic/service/AlarmService.java b/src/main/java/com/casic/service/AlarmService.java deleted file mode 100644 index 4f41038..0000000 --- a/src/main/java/com/casic/service/AlarmService.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.casic.service; - -import com.casic.model.AlarmConfigParam; - -public interface AlarmService { - - Object getAlarmRecord(String deviceType, Integer currentIndex, Integer pageSize, String devcode); - - Object excuteAlramBatchCancel(String deviceType, String devcode); - - Object addAlarmConfig(AlarmConfigParam alarmConfig); - -} diff --git a/src/main/java/com/casic/service/DeviceDataService.java b/src/main/java/com/casic/service/DeviceDataService.java index db656c1..71f8ce9 100644 --- a/src/main/java/com/casic/service/DeviceDataService.java +++ b/src/main/java/com/casic/service/DeviceDataService.java @@ -7,4 +7,6 @@ Object getDeviceListPage(String deviceType, Integer currentIndex, Integer pageSize, String devcode); Object getLevel(String deviceType); + + void checkAndUpdateDeviceOnline(); } diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/casic/config/AliYunConfig.java b/src/main/java/com/casic/config/AliYunConfig.java deleted file mode 100644 index 090b6ab..0000000 --- a/src/main/java/com/casic/config/AliYunConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Slf4j -@Configuration -@ConfigurationProperties(prefix = "casic.ali") -@Data -public class AliYunConfig { - - private String key; - private String screct; - private String url; - private String signNameJson; - private String templateCode; - -} diff --git a/src/main/java/com/casic/config/ApiHikomConfig.java b/src/main/java/com/casic/config/ApiHikomConfig.java deleted file mode 100644 index 73b3550..0000000 --- a/src/main/java/com/casic/config/ApiHikomConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -@Data -public class ApiHikomConfig { - @Value("${casic.hikom.host}") - private String hikomHost; - @Value("${casic.hikom.url}") - private String hikomUrl; -} diff --git a/src/main/java/com/casic/config/task/TaskConfigurer.java b/src/main/java/com/casic/config/task/TaskConfigurer.java new file mode 100644 index 0000000..43282d3 --- /dev/null +++ b/src/main/java/com/casic/config/task/TaskConfigurer.java @@ -0,0 +1,44 @@ +package com.casic.config.task; + +import com.casic.service.DeviceDataService; +import com.casic.service.ThirdDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.config.TriggerTask; +import org.springframework.scheduling.support.CronTrigger; + +/** + * @author cz + */ +@Configuration +@EnableScheduling +public class TaskConfigurer implements SchedulingConfigurer { + + @Value("${casic.device.online.corn}") + private String timeConfig; + @Autowired + private DeviceDataService deviceDataService; + + @Override + public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + TriggerTask triggrtTask = new TriggerTask(nextDayDevice(), + triggerContext -> { + return new CronTrigger(timeConfig).nextExecutionTime(triggerContext); + }); + taskRegistrar.addTriggerTask(triggrtTask); + } + + private Runnable nextDayDevice() { + return new Runnable() { + @Override + public void run() { + deviceDataService.checkAndUpdateDeviceOnline(); + } + }; + } + +} \ No newline at end of file diff --git a/src/main/java/com/casic/controller/AlarmController.java b/src/main/java/com/casic/controller/AlarmController.java deleted file mode 100644 index 957fc36..0000000 --- a/src/main/java/com/casic/controller/AlarmController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmConfigParam; -import com.casic.service.AlarmService; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/alarm") -public class AlarmController { - - private final AlarmService alarmService; - - public AlarmController(AlarmService alarmService) { - this.alarmService = alarmService; - } - - @RequestMapping("/records") - public Object getAlarmRecord(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "currentIndex", required = true) Integer currentIndex, - @RequestParam(value = "devcode",required =false) String devcode, - @RequestParam(value = "pageSize", required = true) Integer pageSize) { - return alarmService.getAlarmRecord(deviceType,currentIndex,pageSize,devcode); - } - - @RequestMapping("/batch/cancel") - public Object excuteAlramBatchCancel(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "devcode",required =false) String devcode) { - return alarmService.excuteAlramBatchCancel(deviceType,devcode); - } - - @RequestMapping("/config/add") - public Object addAlarmConfig(@RequestBody AlarmConfigParam alarmConfigParam) { - return alarmService.addAlarmConfig(alarmConfigParam); - } -} diff --git a/src/main/java/com/casic/controller/AlarmPushController.java b/src/main/java/com/casic/controller/AlarmPushController.java deleted file mode 100644 index 1642f9b..0000000 --- a/src/main/java/com/casic/controller/AlarmPushController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmPushConfig; -import com.casic.service.AlarmPushService; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.*; - -@RestController -@AllArgsConstructor -@RequestMapping("/alarm") -public class AlarmPushController { - - private AlarmPushService alarmPushService; - - @RequestMapping("/push/config") - @ResponseBody - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - return alarmPushService.alarmPushConfig(alarmSwitchConfig); - } - - @RequestMapping("/push/query") - public Object alarmPushQuery(@RequestParam(value = "scene", required = true) String scene) { - return alarmPushService.getAlarmPush(scene); - } - -} diff --git a/src/main/java/com/casic/controller/ArtemisValidController.java b/src/main/java/com/casic/controller/ArtemisValidController.java deleted file mode 100644 index 1d52576..0000000 --- a/src/main/java/com/casic/controller/ArtemisValidController.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.controller; - -import com.casic.model.HkvideoValidParam; -import com.casic.model.ResponseData; -import com.casic.util.ArtemisPostUtil; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 海康接口 - */ -@AllArgsConstructor -@RestController -public class ArtemisValidController { - private final ArtemisPostUtil artemisPostUtill; - - @RequestMapping("/hkvideo/getVideoUrl") - public ResponseData getVideoUrl(@RequestBody HkvideoValidParam hkvideoValidParam) { - - return artemisPostUtill.artemisPost(hkvideoValidParam); - } - -} diff --git a/src/main/java/com/casic/controller/MessagePusherController.java b/src/main/java/com/casic/controller/MessagePusherController.java index d447c05..b97dcd1 100644 --- a/src/main/java/com/casic/controller/MessagePusherController.java +++ b/src/main/java/com/casic/controller/MessagePusherController.java @@ -32,8 +32,7 @@ } catch (UnsupportedEncodingException e) { e.printStackTrace(); } - return retMap; - } + return retMap; } //报警开关按钮 // diff --git a/src/main/java/com/casic/controller/ThirdDataController.java b/src/main/java/com/casic/controller/ThirdDataController.java index d910a7d..fbd8e59 100644 --- a/src/main/java/com/casic/controller/ThirdDataController.java +++ b/src/main/java/com/casic/controller/ThirdDataController.java @@ -1,8 +1,6 @@ package com.casic.controller; import com.alibaba.fastjson.JSON; -import com.casic.model.CommConfigDTO; -import com.casic.model.PressureDataParam; import com.casic.model.ResponseData; import com.casic.service.ThirdDataService; import lombok.extern.slf4j.Slf4j; @@ -10,7 +8,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.HashMap; import java.util.Map; @RestController @@ -24,22 +21,25 @@ this.thirdDataService = thirdDataService; } - @RequestMapping("/pressure/data") - public Object getDeviceRecentData(@RequestBody PressureDataParam pressureData) { - return thirdDataService.getDeviceRecentData(pressureData); + /** + * 硫化氢订阅接口 + * + * @param h2sDataMap + * @return + */ + @RequestMapping("/h2s-data") + public Object h2sData(@RequestBody Map h2sDataMap) { + System.out.println(JSON.toJSON(h2sDataMap)); + return thirdDataService.h2sData(h2sDataMap); } - @RequestMapping("/data") - public Object getDeviceData(@RequestBody Map pressureDataMap) { - System.out.println(JSON.toJSON(pressureDataMap)); - Map map = new HashMap(); - map.put("method", "setParams"); - Map param = new HashMap(); - param.put("ip", "大胆猜测下"); - map.put("status", 200); - map.put("params", param); - map.put("timeout", "3000"); - return map; + @RequestMapping("/test") + public Object testNbResponse (@RequestBody Map h2sDataMap){ + ResponseData responseData=new ResponseData(); + responseData.setCode(200); + responseData.setData("oyAAGDcgFAEAAcMAAQWfAXOJd1POnas6zxTmU7jQkVJinQ=="); + System.out.println(JSON.toJSON(h2sDataMap)); + return responseData; } } diff --git a/src/main/java/com/casic/dao/AlarmPushMapper.java b/src/main/java/com/casic/dao/AlarmPushMapper.java deleted file mode 100644 index 9d7484b..0000000 --- a/src/main/java/com/casic/dao/AlarmPushMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.AlarmPushConfig; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface AlarmPushMapper extends BaseMapper { -} diff --git a/src/main/java/com/casic/dao/AlarmRecordMapper.java b/src/main/java/com/casic/dao/AlarmRecordMapper.java new file mode 100644 index 0000000..d8a4911 --- /dev/null +++ b/src/main/java/com/casic/dao/AlarmRecordMapper.java @@ -0,0 +1,12 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.AlarmRecord; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AlarmRecordMapper extends BaseMapper { + + + +} diff --git a/src/main/java/com/casic/dao/DataH2sMapper.java b/src/main/java/com/casic/dao/DataH2sMapper.java new file mode 100644 index 0000000..434f1e2 --- /dev/null +++ b/src/main/java/com/casic/dao/DataH2sMapper.java @@ -0,0 +1,27 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.DataH2s; +import com.casic.model.DataPressure; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; + +@Mapper +public interface DataH2sMapper extends BaseMapper { + + int clearOnline(@Param("devcode") String devcode); + + String getWellCode(@Param("devcode") String devcode); + + Float getRuleValue(@Param("deviceType") String deviceType); + + int cancelAlarm(@Param("devcode") String devcode, @Param("status") String status); + + String getImeiByDevcode(@Param("devcode") String devcode); + + int updateImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); + + int addImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); +} diff --git a/src/main/java/com/casic/dao/DataPressureMapper.java b/src/main/java/com/casic/dao/DataPressureMapper.java deleted file mode 100644 index 05f4329..0000000 --- a/src/main/java/com/casic/dao/DataPressureMapper.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.DataPressure; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.Date; - -@Mapper -public interface DataPressureMapper extends BaseMapper { - - String getWellCode(@Param("devcode") String devcode); - - Float getRuleValue(@Param("deviceType") String deviceType); - - void saveRecords(@Param("reValue") String reValue, @Param("alarmTime") Date alarmTime); - -} diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java index d9e18a0..e62d526 100644 --- a/src/main/java/com/casic/dao/DeviceDataMapper.java +++ b/src/main/java/com/casic/dao/DeviceDataMapper.java @@ -23,5 +23,14 @@ @Param("pageSize") Integer pageSize, @Param("devcode") String devcode); - String getLevelByType(@Param("deviceType")String deviceType); + String getLevelByType(@Param("deviceType") String deviceType); + + + List getDevcodeByType(@Param("devciceType") Integer devciceType); + + List getRecentData(@Param("devciceType") Integer dataDay); + + List updateOnlineByDevs(@Param("dataSortDevcodeList") List dataSortDevcodeList); + + } diff --git a/src/main/java/com/casic/enums/DeviceTypeEnum.java b/src/main/java/com/casic/enums/DeviceTypeEnum.java new file mode 100644 index 0000000..8d5a6e6 --- /dev/null +++ b/src/main/java/com/casic/enums/DeviceTypeEnum.java @@ -0,0 +1,64 @@ +package com.casic.enums; + + +public enum DeviceTypeEnum { + Well("井盖状态监测仪", 1), + Liquid("液位监测仪", 2), + WasteGas("有害气体监测仪", 3), + Methane("燃气智能监测终端", 4), + TempHumi("温湿度监测仪", 5), + Dig("开挖监测仪", 6), + WellLocator("井盖定位监测仪", 7), + Noise("噪声记录仪", 8), + TempPressure("温度压力监测仪", 9), + FireHydrant("消防栓防盗水监测仪", 11), + Tube("管盯", 12), + LG("井盖液位一体机", 13), + H2s("硫化氢检测终端", 14); + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private DeviceTypeEnum(String name, int index) { + this.name = name; + this.index = index; + } + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } + + public static DeviceTypeEnum getByIndex(String index) { + try { + for (DeviceTypeEnum deviceTypeEnum : values()) { + if (deviceTypeEnum.index == Integer.parseInt(index)) { + return deviceTypeEnum; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } +} \ No newline at end of file diff --git a/src/main/java/com/casic/enums/H2sParamsEnum.java b/src/main/java/com/casic/enums/H2sParamsEnum.java new file mode 100644 index 0000000..74eec50 --- /dev/null +++ b/src/main/java/com/casic/enums/H2sParamsEnum.java @@ -0,0 +1,35 @@ +package com.casic.enums; + +public interface H2sParamsEnum { + + /** + * 下发配置参数 + */ + String IP = "ip"; + String PORT = "port"; + String CTNET = "ctnet"; + String PERIOD = "period"; + String CYCLE = "cycle"; + /** + * 三码上报 + */ + String ICCID = "iccid"; + String IMEI = "imei"; + String DEVCODE = "devcode"; + /** + * 上传时间 + */ + String TS = "ts"; + /** + * 数据上报(电量、硫化氢数据值、设备编号) + * 数据值 + */ + String H2S_VALUE = "h2sValue"; + /** + * 电量 + */ + String BATTERY_VALUE = "batteryValue"; + + + +} diff --git a/src/main/java/com/casic/model/AlarmRecord.java b/src/main/java/com/casic/model/AlarmRecord.java new file mode 100644 index 0000000..600fe5a --- /dev/null +++ b/src/main/java/com/casic/model/AlarmRecord.java @@ -0,0 +1,81 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; + +import java.util.Date; + +@Builder +@TableName("alarm_records") +public class AlarmRecord { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 设备ID + */ + @TableField("DEVICE_ID") + private Long deviceId; + /** + * 设备编号 + */ + @TableField("DEVCODE") + private String devcode; + /** + * 闸井编号 + */ + @TableField("WELL_CODE") + private String wellCode; + /** + * 告警类型 + */ + @TableField("ALARM_TYPE") + private String alarmType; + /** + * 告警内容 + */ + @TableField("ALARM_CONTENT") + private String alarmContent; + /** + * 告警数值 + */ + @TableField("ALARM_VALUE") + private String alarmValue; + /** + * 告警等级 + */ + @TableField("ALARM_LEVEL") + private Integer alarmLevel; + /** + * 告警详情 + */ + @TableField("ALARM_MSG") + private String alarmMessage; + /** + * 告警时间 + */ + @TableField("ALARM_TIME") + private Date alarmTime; + /** + * 告警状态 + */ + @TableField("STATUS") + private String status; + /** + * 工单编号 + */ + @TableField("JOB_ID") + private Long jobId; + + @TableField(exist = false) + private Integer jobStatus; + +} diff --git a/src/main/java/com/casic/model/DataH2s.java b/src/main/java/com/casic/model/DataH2s.java new file mode 100644 index 0000000..16ecc7a --- /dev/null +++ b/src/main/java/com/casic/model/DataH2s.java @@ -0,0 +1,37 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + */ +@Data +@TableName("data_h2s") +public class DataH2s { + + private Long id; + + private String devcode; + + private String wellCode; + + private String cell; + + private String strength; + + private String uptime; + + private String logtime; + + private String descn; + + private String rsrp; + + private String pci; + + private String snr; + +} diff --git a/src/main/java/com/casic/model/DeviceTypeEnum.java b/src/main/java/com/casic/model/DeviceTypeEnum.java deleted file mode 100644 index 26c685f..0000000 --- a/src/main/java/com/casic/model/DeviceTypeEnum.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.casic.model; - - -public enum DeviceTypeEnum { - Well("井盖状态监测仪", 1), - Liquid("液位监测仪", 2), - WasteGas("有害气体监测仪", 3), - Methane("燃气智能监测终端", 4), - TempHumi("温湿度监测仪", 5), - Dig("开挖监测仪", 6), - WellLocator("井盖定位监测仪", 7), - Noise("噪声记录仪", 8), - TempPressure("温度压力监测仪", 9), - FireHydrant("消防栓防盗水监测仪", 11), - Tube("管盯", 12), - LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); - - // 成员变量 - private String name; - private int index; - - // 构造方法 - private DeviceTypeEnum(String name, int index) { - this.name = name; - this.index = index; - } - - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public int getIndex() { - return index; - } - - public void setIndex(int index) { - this.index = index; - } - - public static DeviceTypeEnum getByIndex(String index) { - try { - for (DeviceTypeEnum deviceTypeEnum : values()) { - if (deviceTypeEnum.index == Integer.parseInt(index)) { - return deviceTypeEnum; - } - } - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - //覆盖方法 - @Override - public String toString() { - return this.name; - } -} \ No newline at end of file diff --git a/src/main/java/com/casic/service/AlarmPushService.java b/src/main/java/com/casic/service/AlarmPushService.java deleted file mode 100644 index d180eb2..0000000 --- a/src/main/java/com/casic/service/AlarmPushService.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.service; - -import com.casic.model.AlarmPushConfig; - -public interface AlarmPushService { - - Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig); - - Object getAlarmPush(String scene); - -} - - - diff --git a/src/main/java/com/casic/service/AlarmService.java b/src/main/java/com/casic/service/AlarmService.java deleted file mode 100644 index 4f41038..0000000 --- a/src/main/java/com/casic/service/AlarmService.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.casic.service; - -import com.casic.model.AlarmConfigParam; - -public interface AlarmService { - - Object getAlarmRecord(String deviceType, Integer currentIndex, Integer pageSize, String devcode); - - Object excuteAlramBatchCancel(String deviceType, String devcode); - - Object addAlarmConfig(AlarmConfigParam alarmConfig); - -} diff --git a/src/main/java/com/casic/service/DeviceDataService.java b/src/main/java/com/casic/service/DeviceDataService.java index db656c1..71f8ce9 100644 --- a/src/main/java/com/casic/service/DeviceDataService.java +++ b/src/main/java/com/casic/service/DeviceDataService.java @@ -7,4 +7,6 @@ Object getDeviceListPage(String deviceType, Integer currentIndex, Integer pageSize, String devcode); Object getLevel(String deviceType); + + void checkAndUpdateDeviceOnline(); } diff --git a/src/main/java/com/casic/service/ThirdDataService.java b/src/main/java/com/casic/service/ThirdDataService.java index 795e0b2..31dc516 100644 --- a/src/main/java/com/casic/service/ThirdDataService.java +++ b/src/main/java/com/casic/service/ThirdDataService.java @@ -1,8 +1,11 @@ package com.casic.service; -import com.casic.model.PressureDataParam; +import java.util.Map; public interface ThirdDataService { - Object getDeviceRecentData(PressureDataParam pressureData); + + Object h2sData(Map h2sDataMap); + + } diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/casic/config/AliYunConfig.java b/src/main/java/com/casic/config/AliYunConfig.java deleted file mode 100644 index 090b6ab..0000000 --- a/src/main/java/com/casic/config/AliYunConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Slf4j -@Configuration -@ConfigurationProperties(prefix = "casic.ali") -@Data -public class AliYunConfig { - - private String key; - private String screct; - private String url; - private String signNameJson; - private String templateCode; - -} diff --git a/src/main/java/com/casic/config/ApiHikomConfig.java b/src/main/java/com/casic/config/ApiHikomConfig.java deleted file mode 100644 index 73b3550..0000000 --- a/src/main/java/com/casic/config/ApiHikomConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -@Data -public class ApiHikomConfig { - @Value("${casic.hikom.host}") - private String hikomHost; - @Value("${casic.hikom.url}") - private String hikomUrl; -} diff --git a/src/main/java/com/casic/config/task/TaskConfigurer.java b/src/main/java/com/casic/config/task/TaskConfigurer.java new file mode 100644 index 0000000..43282d3 --- /dev/null +++ b/src/main/java/com/casic/config/task/TaskConfigurer.java @@ -0,0 +1,44 @@ +package com.casic.config.task; + +import com.casic.service.DeviceDataService; +import com.casic.service.ThirdDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.config.TriggerTask; +import org.springframework.scheduling.support.CronTrigger; + +/** + * @author cz + */ +@Configuration +@EnableScheduling +public class TaskConfigurer implements SchedulingConfigurer { + + @Value("${casic.device.online.corn}") + private String timeConfig; + @Autowired + private DeviceDataService deviceDataService; + + @Override + public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + TriggerTask triggrtTask = new TriggerTask(nextDayDevice(), + triggerContext -> { + return new CronTrigger(timeConfig).nextExecutionTime(triggerContext); + }); + taskRegistrar.addTriggerTask(triggrtTask); + } + + private Runnable nextDayDevice() { + return new Runnable() { + @Override + public void run() { + deviceDataService.checkAndUpdateDeviceOnline(); + } + }; + } + +} \ No newline at end of file diff --git a/src/main/java/com/casic/controller/AlarmController.java b/src/main/java/com/casic/controller/AlarmController.java deleted file mode 100644 index 957fc36..0000000 --- a/src/main/java/com/casic/controller/AlarmController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmConfigParam; -import com.casic.service.AlarmService; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/alarm") -public class AlarmController { - - private final AlarmService alarmService; - - public AlarmController(AlarmService alarmService) { - this.alarmService = alarmService; - } - - @RequestMapping("/records") - public Object getAlarmRecord(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "currentIndex", required = true) Integer currentIndex, - @RequestParam(value = "devcode",required =false) String devcode, - @RequestParam(value = "pageSize", required = true) Integer pageSize) { - return alarmService.getAlarmRecord(deviceType,currentIndex,pageSize,devcode); - } - - @RequestMapping("/batch/cancel") - public Object excuteAlramBatchCancel(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "devcode",required =false) String devcode) { - return alarmService.excuteAlramBatchCancel(deviceType,devcode); - } - - @RequestMapping("/config/add") - public Object addAlarmConfig(@RequestBody AlarmConfigParam alarmConfigParam) { - return alarmService.addAlarmConfig(alarmConfigParam); - } -} diff --git a/src/main/java/com/casic/controller/AlarmPushController.java b/src/main/java/com/casic/controller/AlarmPushController.java deleted file mode 100644 index 1642f9b..0000000 --- a/src/main/java/com/casic/controller/AlarmPushController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmPushConfig; -import com.casic.service.AlarmPushService; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.*; - -@RestController -@AllArgsConstructor -@RequestMapping("/alarm") -public class AlarmPushController { - - private AlarmPushService alarmPushService; - - @RequestMapping("/push/config") - @ResponseBody - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - return alarmPushService.alarmPushConfig(alarmSwitchConfig); - } - - @RequestMapping("/push/query") - public Object alarmPushQuery(@RequestParam(value = "scene", required = true) String scene) { - return alarmPushService.getAlarmPush(scene); - } - -} diff --git a/src/main/java/com/casic/controller/ArtemisValidController.java b/src/main/java/com/casic/controller/ArtemisValidController.java deleted file mode 100644 index 1d52576..0000000 --- a/src/main/java/com/casic/controller/ArtemisValidController.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.controller; - -import com.casic.model.HkvideoValidParam; -import com.casic.model.ResponseData; -import com.casic.util.ArtemisPostUtil; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 海康接口 - */ -@AllArgsConstructor -@RestController -public class ArtemisValidController { - private final ArtemisPostUtil artemisPostUtill; - - @RequestMapping("/hkvideo/getVideoUrl") - public ResponseData getVideoUrl(@RequestBody HkvideoValidParam hkvideoValidParam) { - - return artemisPostUtill.artemisPost(hkvideoValidParam); - } - -} diff --git a/src/main/java/com/casic/controller/MessagePusherController.java b/src/main/java/com/casic/controller/MessagePusherController.java index d447c05..b97dcd1 100644 --- a/src/main/java/com/casic/controller/MessagePusherController.java +++ b/src/main/java/com/casic/controller/MessagePusherController.java @@ -32,8 +32,7 @@ } catch (UnsupportedEncodingException e) { e.printStackTrace(); } - return retMap; - } + return retMap; } //报警开关按钮 // diff --git a/src/main/java/com/casic/controller/ThirdDataController.java b/src/main/java/com/casic/controller/ThirdDataController.java index d910a7d..fbd8e59 100644 --- a/src/main/java/com/casic/controller/ThirdDataController.java +++ b/src/main/java/com/casic/controller/ThirdDataController.java @@ -1,8 +1,6 @@ package com.casic.controller; import com.alibaba.fastjson.JSON; -import com.casic.model.CommConfigDTO; -import com.casic.model.PressureDataParam; import com.casic.model.ResponseData; import com.casic.service.ThirdDataService; import lombok.extern.slf4j.Slf4j; @@ -10,7 +8,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.HashMap; import java.util.Map; @RestController @@ -24,22 +21,25 @@ this.thirdDataService = thirdDataService; } - @RequestMapping("/pressure/data") - public Object getDeviceRecentData(@RequestBody PressureDataParam pressureData) { - return thirdDataService.getDeviceRecentData(pressureData); + /** + * 硫化氢订阅接口 + * + * @param h2sDataMap + * @return + */ + @RequestMapping("/h2s-data") + public Object h2sData(@RequestBody Map h2sDataMap) { + System.out.println(JSON.toJSON(h2sDataMap)); + return thirdDataService.h2sData(h2sDataMap); } - @RequestMapping("/data") - public Object getDeviceData(@RequestBody Map pressureDataMap) { - System.out.println(JSON.toJSON(pressureDataMap)); - Map map = new HashMap(); - map.put("method", "setParams"); - Map param = new HashMap(); - param.put("ip", "大胆猜测下"); - map.put("status", 200); - map.put("params", param); - map.put("timeout", "3000"); - return map; + @RequestMapping("/test") + public Object testNbResponse (@RequestBody Map h2sDataMap){ + ResponseData responseData=new ResponseData(); + responseData.setCode(200); + responseData.setData("oyAAGDcgFAEAAcMAAQWfAXOJd1POnas6zxTmU7jQkVJinQ=="); + System.out.println(JSON.toJSON(h2sDataMap)); + return responseData; } } diff --git a/src/main/java/com/casic/dao/AlarmPushMapper.java b/src/main/java/com/casic/dao/AlarmPushMapper.java deleted file mode 100644 index 9d7484b..0000000 --- a/src/main/java/com/casic/dao/AlarmPushMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.AlarmPushConfig; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface AlarmPushMapper extends BaseMapper { -} diff --git a/src/main/java/com/casic/dao/AlarmRecordMapper.java b/src/main/java/com/casic/dao/AlarmRecordMapper.java new file mode 100644 index 0000000..d8a4911 --- /dev/null +++ b/src/main/java/com/casic/dao/AlarmRecordMapper.java @@ -0,0 +1,12 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.AlarmRecord; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AlarmRecordMapper extends BaseMapper { + + + +} diff --git a/src/main/java/com/casic/dao/DataH2sMapper.java b/src/main/java/com/casic/dao/DataH2sMapper.java new file mode 100644 index 0000000..434f1e2 --- /dev/null +++ b/src/main/java/com/casic/dao/DataH2sMapper.java @@ -0,0 +1,27 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.DataH2s; +import com.casic.model.DataPressure; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; + +@Mapper +public interface DataH2sMapper extends BaseMapper { + + int clearOnline(@Param("devcode") String devcode); + + String getWellCode(@Param("devcode") String devcode); + + Float getRuleValue(@Param("deviceType") String deviceType); + + int cancelAlarm(@Param("devcode") String devcode, @Param("status") String status); + + String getImeiByDevcode(@Param("devcode") String devcode); + + int updateImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); + + int addImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); +} diff --git a/src/main/java/com/casic/dao/DataPressureMapper.java b/src/main/java/com/casic/dao/DataPressureMapper.java deleted file mode 100644 index 05f4329..0000000 --- a/src/main/java/com/casic/dao/DataPressureMapper.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.DataPressure; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.Date; - -@Mapper -public interface DataPressureMapper extends BaseMapper { - - String getWellCode(@Param("devcode") String devcode); - - Float getRuleValue(@Param("deviceType") String deviceType); - - void saveRecords(@Param("reValue") String reValue, @Param("alarmTime") Date alarmTime); - -} diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java index d9e18a0..e62d526 100644 --- a/src/main/java/com/casic/dao/DeviceDataMapper.java +++ b/src/main/java/com/casic/dao/DeviceDataMapper.java @@ -23,5 +23,14 @@ @Param("pageSize") Integer pageSize, @Param("devcode") String devcode); - String getLevelByType(@Param("deviceType")String deviceType); + String getLevelByType(@Param("deviceType") String deviceType); + + + List getDevcodeByType(@Param("devciceType") Integer devciceType); + + List getRecentData(@Param("devciceType") Integer dataDay); + + List updateOnlineByDevs(@Param("dataSortDevcodeList") List dataSortDevcodeList); + + } diff --git a/src/main/java/com/casic/enums/DeviceTypeEnum.java b/src/main/java/com/casic/enums/DeviceTypeEnum.java new file mode 100644 index 0000000..8d5a6e6 --- /dev/null +++ b/src/main/java/com/casic/enums/DeviceTypeEnum.java @@ -0,0 +1,64 @@ +package com.casic.enums; + + +public enum DeviceTypeEnum { + Well("井盖状态监测仪", 1), + Liquid("液位监测仪", 2), + WasteGas("有害气体监测仪", 3), + Methane("燃气智能监测终端", 4), + TempHumi("温湿度监测仪", 5), + Dig("开挖监测仪", 6), + WellLocator("井盖定位监测仪", 7), + Noise("噪声记录仪", 8), + TempPressure("温度压力监测仪", 9), + FireHydrant("消防栓防盗水监测仪", 11), + Tube("管盯", 12), + LG("井盖液位一体机", 13), + H2s("硫化氢检测终端", 14); + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private DeviceTypeEnum(String name, int index) { + this.name = name; + this.index = index; + } + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } + + public static DeviceTypeEnum getByIndex(String index) { + try { + for (DeviceTypeEnum deviceTypeEnum : values()) { + if (deviceTypeEnum.index == Integer.parseInt(index)) { + return deviceTypeEnum; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } +} \ No newline at end of file diff --git a/src/main/java/com/casic/enums/H2sParamsEnum.java b/src/main/java/com/casic/enums/H2sParamsEnum.java new file mode 100644 index 0000000..74eec50 --- /dev/null +++ b/src/main/java/com/casic/enums/H2sParamsEnum.java @@ -0,0 +1,35 @@ +package com.casic.enums; + +public interface H2sParamsEnum { + + /** + * 下发配置参数 + */ + String IP = "ip"; + String PORT = "port"; + String CTNET = "ctnet"; + String PERIOD = "period"; + String CYCLE = "cycle"; + /** + * 三码上报 + */ + String ICCID = "iccid"; + String IMEI = "imei"; + String DEVCODE = "devcode"; + /** + * 上传时间 + */ + String TS = "ts"; + /** + * 数据上报(电量、硫化氢数据值、设备编号) + * 数据值 + */ + String H2S_VALUE = "h2sValue"; + /** + * 电量 + */ + String BATTERY_VALUE = "batteryValue"; + + + +} diff --git a/src/main/java/com/casic/model/AlarmRecord.java b/src/main/java/com/casic/model/AlarmRecord.java new file mode 100644 index 0000000..600fe5a --- /dev/null +++ b/src/main/java/com/casic/model/AlarmRecord.java @@ -0,0 +1,81 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; + +import java.util.Date; + +@Builder +@TableName("alarm_records") +public class AlarmRecord { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 设备ID + */ + @TableField("DEVICE_ID") + private Long deviceId; + /** + * 设备编号 + */ + @TableField("DEVCODE") + private String devcode; + /** + * 闸井编号 + */ + @TableField("WELL_CODE") + private String wellCode; + /** + * 告警类型 + */ + @TableField("ALARM_TYPE") + private String alarmType; + /** + * 告警内容 + */ + @TableField("ALARM_CONTENT") + private String alarmContent; + /** + * 告警数值 + */ + @TableField("ALARM_VALUE") + private String alarmValue; + /** + * 告警等级 + */ + @TableField("ALARM_LEVEL") + private Integer alarmLevel; + /** + * 告警详情 + */ + @TableField("ALARM_MSG") + private String alarmMessage; + /** + * 告警时间 + */ + @TableField("ALARM_TIME") + private Date alarmTime; + /** + * 告警状态 + */ + @TableField("STATUS") + private String status; + /** + * 工单编号 + */ + @TableField("JOB_ID") + private Long jobId; + + @TableField(exist = false) + private Integer jobStatus; + +} diff --git a/src/main/java/com/casic/model/DataH2s.java b/src/main/java/com/casic/model/DataH2s.java new file mode 100644 index 0000000..16ecc7a --- /dev/null +++ b/src/main/java/com/casic/model/DataH2s.java @@ -0,0 +1,37 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + */ +@Data +@TableName("data_h2s") +public class DataH2s { + + private Long id; + + private String devcode; + + private String wellCode; + + private String cell; + + private String strength; + + private String uptime; + + private String logtime; + + private String descn; + + private String rsrp; + + private String pci; + + private String snr; + +} diff --git a/src/main/java/com/casic/model/DeviceTypeEnum.java b/src/main/java/com/casic/model/DeviceTypeEnum.java deleted file mode 100644 index 26c685f..0000000 --- a/src/main/java/com/casic/model/DeviceTypeEnum.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.casic.model; - - -public enum DeviceTypeEnum { - Well("井盖状态监测仪", 1), - Liquid("液位监测仪", 2), - WasteGas("有害气体监测仪", 3), - Methane("燃气智能监测终端", 4), - TempHumi("温湿度监测仪", 5), - Dig("开挖监测仪", 6), - WellLocator("井盖定位监测仪", 7), - Noise("噪声记录仪", 8), - TempPressure("温度压力监测仪", 9), - FireHydrant("消防栓防盗水监测仪", 11), - Tube("管盯", 12), - LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); - - // 成员变量 - private String name; - private int index; - - // 构造方法 - private DeviceTypeEnum(String name, int index) { - this.name = name; - this.index = index; - } - - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public int getIndex() { - return index; - } - - public void setIndex(int index) { - this.index = index; - } - - public static DeviceTypeEnum getByIndex(String index) { - try { - for (DeviceTypeEnum deviceTypeEnum : values()) { - if (deviceTypeEnum.index == Integer.parseInt(index)) { - return deviceTypeEnum; - } - } - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - //覆盖方法 - @Override - public String toString() { - return this.name; - } -} \ No newline at end of file diff --git a/src/main/java/com/casic/service/AlarmPushService.java b/src/main/java/com/casic/service/AlarmPushService.java deleted file mode 100644 index d180eb2..0000000 --- a/src/main/java/com/casic/service/AlarmPushService.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.service; - -import com.casic.model.AlarmPushConfig; - -public interface AlarmPushService { - - Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig); - - Object getAlarmPush(String scene); - -} - - - diff --git a/src/main/java/com/casic/service/AlarmService.java b/src/main/java/com/casic/service/AlarmService.java deleted file mode 100644 index 4f41038..0000000 --- a/src/main/java/com/casic/service/AlarmService.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.casic.service; - -import com.casic.model.AlarmConfigParam; - -public interface AlarmService { - - Object getAlarmRecord(String deviceType, Integer currentIndex, Integer pageSize, String devcode); - - Object excuteAlramBatchCancel(String deviceType, String devcode); - - Object addAlarmConfig(AlarmConfigParam alarmConfig); - -} diff --git a/src/main/java/com/casic/service/DeviceDataService.java b/src/main/java/com/casic/service/DeviceDataService.java index db656c1..71f8ce9 100644 --- a/src/main/java/com/casic/service/DeviceDataService.java +++ b/src/main/java/com/casic/service/DeviceDataService.java @@ -7,4 +7,6 @@ Object getDeviceListPage(String deviceType, Integer currentIndex, Integer pageSize, String devcode); Object getLevel(String deviceType); + + void checkAndUpdateDeviceOnline(); } diff --git a/src/main/java/com/casic/service/ThirdDataService.java b/src/main/java/com/casic/service/ThirdDataService.java index 795e0b2..31dc516 100644 --- a/src/main/java/com/casic/service/ThirdDataService.java +++ b/src/main/java/com/casic/service/ThirdDataService.java @@ -1,8 +1,11 @@ package com.casic.service; -import com.casic.model.PressureDataParam; +import java.util.Map; public interface ThirdDataService { - Object getDeviceRecentData(PressureDataParam pressureData); + + Object h2sData(Map h2sDataMap); + + } diff --git a/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java b/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java deleted file mode 100644 index d193905..0000000 --- a/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.casic.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.dao.AlarmPushMapper; -import com.casic.model.AlarmPushConfig; -import com.casic.model.ResponseData; -import com.casic.service.AlarmPushService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.dao.DataAccessException; -import org.springframework.stereotype.Service; - -import java.util.List; -import java.util.Optional; - -@Service -@Slf4j -public class AlarmPushServiceImpl extends ServiceImpl implements AlarmPushService { - - @Override - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - ResponseData responseData = new ResponseData(); - try { - QueryWrapper queryWrapper = new QueryWrapper() - .eq("scene", alarmSwitchConfig.getScene()); -// this.baseMapper.delete(deleteWrapper); - this.baseMapper.update(alarmSwitchConfig, queryWrapper); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("报警推送配置新增异常,场景{},异常信息{}", alarmSwitchConfig.getScene(), dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - @Override - public Object getAlarmPush(String scene) { - ResponseData responseData = new ResponseData(); - try { - QueryWrapper queryWrapper = new QueryWrapper() - .eq("scene", scene); - List alarmPushConfigList = this.baseMapper.selectList(queryWrapper); - Optional alarmPushConfigOptional = alarmPushConfigList.stream().findFirst(); - responseData.setData(alarmPushConfigOptional.isPresent() ? alarmPushConfigOptional.get() : new Object()); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("报警推送配置查询异常,场景{},异常信息{}", scene, dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } -} diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/casic/config/AliYunConfig.java b/src/main/java/com/casic/config/AliYunConfig.java deleted file mode 100644 index 090b6ab..0000000 --- a/src/main/java/com/casic/config/AliYunConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Slf4j -@Configuration -@ConfigurationProperties(prefix = "casic.ali") -@Data -public class AliYunConfig { - - private String key; - private String screct; - private String url; - private String signNameJson; - private String templateCode; - -} diff --git a/src/main/java/com/casic/config/ApiHikomConfig.java b/src/main/java/com/casic/config/ApiHikomConfig.java deleted file mode 100644 index 73b3550..0000000 --- a/src/main/java/com/casic/config/ApiHikomConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -@Data -public class ApiHikomConfig { - @Value("${casic.hikom.host}") - private String hikomHost; - @Value("${casic.hikom.url}") - private String hikomUrl; -} diff --git a/src/main/java/com/casic/config/task/TaskConfigurer.java b/src/main/java/com/casic/config/task/TaskConfigurer.java new file mode 100644 index 0000000..43282d3 --- /dev/null +++ b/src/main/java/com/casic/config/task/TaskConfigurer.java @@ -0,0 +1,44 @@ +package com.casic.config.task; + +import com.casic.service.DeviceDataService; +import com.casic.service.ThirdDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.config.TriggerTask; +import org.springframework.scheduling.support.CronTrigger; + +/** + * @author cz + */ +@Configuration +@EnableScheduling +public class TaskConfigurer implements SchedulingConfigurer { + + @Value("${casic.device.online.corn}") + private String timeConfig; + @Autowired + private DeviceDataService deviceDataService; + + @Override + public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + TriggerTask triggrtTask = new TriggerTask(nextDayDevice(), + triggerContext -> { + return new CronTrigger(timeConfig).nextExecutionTime(triggerContext); + }); + taskRegistrar.addTriggerTask(triggrtTask); + } + + private Runnable nextDayDevice() { + return new Runnable() { + @Override + public void run() { + deviceDataService.checkAndUpdateDeviceOnline(); + } + }; + } + +} \ No newline at end of file diff --git a/src/main/java/com/casic/controller/AlarmController.java b/src/main/java/com/casic/controller/AlarmController.java deleted file mode 100644 index 957fc36..0000000 --- a/src/main/java/com/casic/controller/AlarmController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmConfigParam; -import com.casic.service.AlarmService; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/alarm") -public class AlarmController { - - private final AlarmService alarmService; - - public AlarmController(AlarmService alarmService) { - this.alarmService = alarmService; - } - - @RequestMapping("/records") - public Object getAlarmRecord(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "currentIndex", required = true) Integer currentIndex, - @RequestParam(value = "devcode",required =false) String devcode, - @RequestParam(value = "pageSize", required = true) Integer pageSize) { - return alarmService.getAlarmRecord(deviceType,currentIndex,pageSize,devcode); - } - - @RequestMapping("/batch/cancel") - public Object excuteAlramBatchCancel(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "devcode",required =false) String devcode) { - return alarmService.excuteAlramBatchCancel(deviceType,devcode); - } - - @RequestMapping("/config/add") - public Object addAlarmConfig(@RequestBody AlarmConfigParam alarmConfigParam) { - return alarmService.addAlarmConfig(alarmConfigParam); - } -} diff --git a/src/main/java/com/casic/controller/AlarmPushController.java b/src/main/java/com/casic/controller/AlarmPushController.java deleted file mode 100644 index 1642f9b..0000000 --- a/src/main/java/com/casic/controller/AlarmPushController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmPushConfig; -import com.casic.service.AlarmPushService; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.*; - -@RestController -@AllArgsConstructor -@RequestMapping("/alarm") -public class AlarmPushController { - - private AlarmPushService alarmPushService; - - @RequestMapping("/push/config") - @ResponseBody - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - return alarmPushService.alarmPushConfig(alarmSwitchConfig); - } - - @RequestMapping("/push/query") - public Object alarmPushQuery(@RequestParam(value = "scene", required = true) String scene) { - return alarmPushService.getAlarmPush(scene); - } - -} diff --git a/src/main/java/com/casic/controller/ArtemisValidController.java b/src/main/java/com/casic/controller/ArtemisValidController.java deleted file mode 100644 index 1d52576..0000000 --- a/src/main/java/com/casic/controller/ArtemisValidController.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.controller; - -import com.casic.model.HkvideoValidParam; -import com.casic.model.ResponseData; -import com.casic.util.ArtemisPostUtil; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 海康接口 - */ -@AllArgsConstructor -@RestController -public class ArtemisValidController { - private final ArtemisPostUtil artemisPostUtill; - - @RequestMapping("/hkvideo/getVideoUrl") - public ResponseData getVideoUrl(@RequestBody HkvideoValidParam hkvideoValidParam) { - - return artemisPostUtill.artemisPost(hkvideoValidParam); - } - -} diff --git a/src/main/java/com/casic/controller/MessagePusherController.java b/src/main/java/com/casic/controller/MessagePusherController.java index d447c05..b97dcd1 100644 --- a/src/main/java/com/casic/controller/MessagePusherController.java +++ b/src/main/java/com/casic/controller/MessagePusherController.java @@ -32,8 +32,7 @@ } catch (UnsupportedEncodingException e) { e.printStackTrace(); } - return retMap; - } + return retMap; } //报警开关按钮 // diff --git a/src/main/java/com/casic/controller/ThirdDataController.java b/src/main/java/com/casic/controller/ThirdDataController.java index d910a7d..fbd8e59 100644 --- a/src/main/java/com/casic/controller/ThirdDataController.java +++ b/src/main/java/com/casic/controller/ThirdDataController.java @@ -1,8 +1,6 @@ package com.casic.controller; import com.alibaba.fastjson.JSON; -import com.casic.model.CommConfigDTO; -import com.casic.model.PressureDataParam; import com.casic.model.ResponseData; import com.casic.service.ThirdDataService; import lombok.extern.slf4j.Slf4j; @@ -10,7 +8,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.HashMap; import java.util.Map; @RestController @@ -24,22 +21,25 @@ this.thirdDataService = thirdDataService; } - @RequestMapping("/pressure/data") - public Object getDeviceRecentData(@RequestBody PressureDataParam pressureData) { - return thirdDataService.getDeviceRecentData(pressureData); + /** + * 硫化氢订阅接口 + * + * @param h2sDataMap + * @return + */ + @RequestMapping("/h2s-data") + public Object h2sData(@RequestBody Map h2sDataMap) { + System.out.println(JSON.toJSON(h2sDataMap)); + return thirdDataService.h2sData(h2sDataMap); } - @RequestMapping("/data") - public Object getDeviceData(@RequestBody Map pressureDataMap) { - System.out.println(JSON.toJSON(pressureDataMap)); - Map map = new HashMap(); - map.put("method", "setParams"); - Map param = new HashMap(); - param.put("ip", "大胆猜测下"); - map.put("status", 200); - map.put("params", param); - map.put("timeout", "3000"); - return map; + @RequestMapping("/test") + public Object testNbResponse (@RequestBody Map h2sDataMap){ + ResponseData responseData=new ResponseData(); + responseData.setCode(200); + responseData.setData("oyAAGDcgFAEAAcMAAQWfAXOJd1POnas6zxTmU7jQkVJinQ=="); + System.out.println(JSON.toJSON(h2sDataMap)); + return responseData; } } diff --git a/src/main/java/com/casic/dao/AlarmPushMapper.java b/src/main/java/com/casic/dao/AlarmPushMapper.java deleted file mode 100644 index 9d7484b..0000000 --- a/src/main/java/com/casic/dao/AlarmPushMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.AlarmPushConfig; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface AlarmPushMapper extends BaseMapper { -} diff --git a/src/main/java/com/casic/dao/AlarmRecordMapper.java b/src/main/java/com/casic/dao/AlarmRecordMapper.java new file mode 100644 index 0000000..d8a4911 --- /dev/null +++ b/src/main/java/com/casic/dao/AlarmRecordMapper.java @@ -0,0 +1,12 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.AlarmRecord; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AlarmRecordMapper extends BaseMapper { + + + +} diff --git a/src/main/java/com/casic/dao/DataH2sMapper.java b/src/main/java/com/casic/dao/DataH2sMapper.java new file mode 100644 index 0000000..434f1e2 --- /dev/null +++ b/src/main/java/com/casic/dao/DataH2sMapper.java @@ -0,0 +1,27 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.DataH2s; +import com.casic.model.DataPressure; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; + +@Mapper +public interface DataH2sMapper extends BaseMapper { + + int clearOnline(@Param("devcode") String devcode); + + String getWellCode(@Param("devcode") String devcode); + + Float getRuleValue(@Param("deviceType") String deviceType); + + int cancelAlarm(@Param("devcode") String devcode, @Param("status") String status); + + String getImeiByDevcode(@Param("devcode") String devcode); + + int updateImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); + + int addImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); +} diff --git a/src/main/java/com/casic/dao/DataPressureMapper.java b/src/main/java/com/casic/dao/DataPressureMapper.java deleted file mode 100644 index 05f4329..0000000 --- a/src/main/java/com/casic/dao/DataPressureMapper.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.DataPressure; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.Date; - -@Mapper -public interface DataPressureMapper extends BaseMapper { - - String getWellCode(@Param("devcode") String devcode); - - Float getRuleValue(@Param("deviceType") String deviceType); - - void saveRecords(@Param("reValue") String reValue, @Param("alarmTime") Date alarmTime); - -} diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java index d9e18a0..e62d526 100644 --- a/src/main/java/com/casic/dao/DeviceDataMapper.java +++ b/src/main/java/com/casic/dao/DeviceDataMapper.java @@ -23,5 +23,14 @@ @Param("pageSize") Integer pageSize, @Param("devcode") String devcode); - String getLevelByType(@Param("deviceType")String deviceType); + String getLevelByType(@Param("deviceType") String deviceType); + + + List getDevcodeByType(@Param("devciceType") Integer devciceType); + + List getRecentData(@Param("devciceType") Integer dataDay); + + List updateOnlineByDevs(@Param("dataSortDevcodeList") List dataSortDevcodeList); + + } diff --git a/src/main/java/com/casic/enums/DeviceTypeEnum.java b/src/main/java/com/casic/enums/DeviceTypeEnum.java new file mode 100644 index 0000000..8d5a6e6 --- /dev/null +++ b/src/main/java/com/casic/enums/DeviceTypeEnum.java @@ -0,0 +1,64 @@ +package com.casic.enums; + + +public enum DeviceTypeEnum { + Well("井盖状态监测仪", 1), + Liquid("液位监测仪", 2), + WasteGas("有害气体监测仪", 3), + Methane("燃气智能监测终端", 4), + TempHumi("温湿度监测仪", 5), + Dig("开挖监测仪", 6), + WellLocator("井盖定位监测仪", 7), + Noise("噪声记录仪", 8), + TempPressure("温度压力监测仪", 9), + FireHydrant("消防栓防盗水监测仪", 11), + Tube("管盯", 12), + LG("井盖液位一体机", 13), + H2s("硫化氢检测终端", 14); + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private DeviceTypeEnum(String name, int index) { + this.name = name; + this.index = index; + } + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } + + public static DeviceTypeEnum getByIndex(String index) { + try { + for (DeviceTypeEnum deviceTypeEnum : values()) { + if (deviceTypeEnum.index == Integer.parseInt(index)) { + return deviceTypeEnum; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } +} \ No newline at end of file diff --git a/src/main/java/com/casic/enums/H2sParamsEnum.java b/src/main/java/com/casic/enums/H2sParamsEnum.java new file mode 100644 index 0000000..74eec50 --- /dev/null +++ b/src/main/java/com/casic/enums/H2sParamsEnum.java @@ -0,0 +1,35 @@ +package com.casic.enums; + +public interface H2sParamsEnum { + + /** + * 下发配置参数 + */ + String IP = "ip"; + String PORT = "port"; + String CTNET = "ctnet"; + String PERIOD = "period"; + String CYCLE = "cycle"; + /** + * 三码上报 + */ + String ICCID = "iccid"; + String IMEI = "imei"; + String DEVCODE = "devcode"; + /** + * 上传时间 + */ + String TS = "ts"; + /** + * 数据上报(电量、硫化氢数据值、设备编号) + * 数据值 + */ + String H2S_VALUE = "h2sValue"; + /** + * 电量 + */ + String BATTERY_VALUE = "batteryValue"; + + + +} diff --git a/src/main/java/com/casic/model/AlarmRecord.java b/src/main/java/com/casic/model/AlarmRecord.java new file mode 100644 index 0000000..600fe5a --- /dev/null +++ b/src/main/java/com/casic/model/AlarmRecord.java @@ -0,0 +1,81 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; + +import java.util.Date; + +@Builder +@TableName("alarm_records") +public class AlarmRecord { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 设备ID + */ + @TableField("DEVICE_ID") + private Long deviceId; + /** + * 设备编号 + */ + @TableField("DEVCODE") + private String devcode; + /** + * 闸井编号 + */ + @TableField("WELL_CODE") + private String wellCode; + /** + * 告警类型 + */ + @TableField("ALARM_TYPE") + private String alarmType; + /** + * 告警内容 + */ + @TableField("ALARM_CONTENT") + private String alarmContent; + /** + * 告警数值 + */ + @TableField("ALARM_VALUE") + private String alarmValue; + /** + * 告警等级 + */ + @TableField("ALARM_LEVEL") + private Integer alarmLevel; + /** + * 告警详情 + */ + @TableField("ALARM_MSG") + private String alarmMessage; + /** + * 告警时间 + */ + @TableField("ALARM_TIME") + private Date alarmTime; + /** + * 告警状态 + */ + @TableField("STATUS") + private String status; + /** + * 工单编号 + */ + @TableField("JOB_ID") + private Long jobId; + + @TableField(exist = false) + private Integer jobStatus; + +} diff --git a/src/main/java/com/casic/model/DataH2s.java b/src/main/java/com/casic/model/DataH2s.java new file mode 100644 index 0000000..16ecc7a --- /dev/null +++ b/src/main/java/com/casic/model/DataH2s.java @@ -0,0 +1,37 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + */ +@Data +@TableName("data_h2s") +public class DataH2s { + + private Long id; + + private String devcode; + + private String wellCode; + + private String cell; + + private String strength; + + private String uptime; + + private String logtime; + + private String descn; + + private String rsrp; + + private String pci; + + private String snr; + +} diff --git a/src/main/java/com/casic/model/DeviceTypeEnum.java b/src/main/java/com/casic/model/DeviceTypeEnum.java deleted file mode 100644 index 26c685f..0000000 --- a/src/main/java/com/casic/model/DeviceTypeEnum.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.casic.model; - - -public enum DeviceTypeEnum { - Well("井盖状态监测仪", 1), - Liquid("液位监测仪", 2), - WasteGas("有害气体监测仪", 3), - Methane("燃气智能监测终端", 4), - TempHumi("温湿度监测仪", 5), - Dig("开挖监测仪", 6), - WellLocator("井盖定位监测仪", 7), - Noise("噪声记录仪", 8), - TempPressure("温度压力监测仪", 9), - FireHydrant("消防栓防盗水监测仪", 11), - Tube("管盯", 12), - LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); - - // 成员变量 - private String name; - private int index; - - // 构造方法 - private DeviceTypeEnum(String name, int index) { - this.name = name; - this.index = index; - } - - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public int getIndex() { - return index; - } - - public void setIndex(int index) { - this.index = index; - } - - public static DeviceTypeEnum getByIndex(String index) { - try { - for (DeviceTypeEnum deviceTypeEnum : values()) { - if (deviceTypeEnum.index == Integer.parseInt(index)) { - return deviceTypeEnum; - } - } - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - //覆盖方法 - @Override - public String toString() { - return this.name; - } -} \ No newline at end of file diff --git a/src/main/java/com/casic/service/AlarmPushService.java b/src/main/java/com/casic/service/AlarmPushService.java deleted file mode 100644 index d180eb2..0000000 --- a/src/main/java/com/casic/service/AlarmPushService.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.service; - -import com.casic.model.AlarmPushConfig; - -public interface AlarmPushService { - - Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig); - - Object getAlarmPush(String scene); - -} - - - diff --git a/src/main/java/com/casic/service/AlarmService.java b/src/main/java/com/casic/service/AlarmService.java deleted file mode 100644 index 4f41038..0000000 --- a/src/main/java/com/casic/service/AlarmService.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.casic.service; - -import com.casic.model.AlarmConfigParam; - -public interface AlarmService { - - Object getAlarmRecord(String deviceType, Integer currentIndex, Integer pageSize, String devcode); - - Object excuteAlramBatchCancel(String deviceType, String devcode); - - Object addAlarmConfig(AlarmConfigParam alarmConfig); - -} diff --git a/src/main/java/com/casic/service/DeviceDataService.java b/src/main/java/com/casic/service/DeviceDataService.java index db656c1..71f8ce9 100644 --- a/src/main/java/com/casic/service/DeviceDataService.java +++ b/src/main/java/com/casic/service/DeviceDataService.java @@ -7,4 +7,6 @@ Object getDeviceListPage(String deviceType, Integer currentIndex, Integer pageSize, String devcode); Object getLevel(String deviceType); + + void checkAndUpdateDeviceOnline(); } diff --git a/src/main/java/com/casic/service/ThirdDataService.java b/src/main/java/com/casic/service/ThirdDataService.java index 795e0b2..31dc516 100644 --- a/src/main/java/com/casic/service/ThirdDataService.java +++ b/src/main/java/com/casic/service/ThirdDataService.java @@ -1,8 +1,11 @@ package com.casic.service; -import com.casic.model.PressureDataParam; +import java.util.Map; public interface ThirdDataService { - Object getDeviceRecentData(PressureDataParam pressureData); + + Object h2sData(Map h2sDataMap); + + } diff --git a/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java b/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java deleted file mode 100644 index d193905..0000000 --- a/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.casic.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.dao.AlarmPushMapper; -import com.casic.model.AlarmPushConfig; -import com.casic.model.ResponseData; -import com.casic.service.AlarmPushService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.dao.DataAccessException; -import org.springframework.stereotype.Service; - -import java.util.List; -import java.util.Optional; - -@Service -@Slf4j -public class AlarmPushServiceImpl extends ServiceImpl implements AlarmPushService { - - @Override - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - ResponseData responseData = new ResponseData(); - try { - QueryWrapper queryWrapper = new QueryWrapper() - .eq("scene", alarmSwitchConfig.getScene()); -// this.baseMapper.delete(deleteWrapper); - this.baseMapper.update(alarmSwitchConfig, queryWrapper); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("报警推送配置新增异常,场景{},异常信息{}", alarmSwitchConfig.getScene(), dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - @Override - public Object getAlarmPush(String scene) { - ResponseData responseData = new ResponseData(); - try { - QueryWrapper queryWrapper = new QueryWrapper() - .eq("scene", scene); - List alarmPushConfigList = this.baseMapper.selectList(queryWrapper); - Optional alarmPushConfigOptional = alarmPushConfigList.stream().findFirst(); - responseData.setData(alarmPushConfigOptional.isPresent() ? alarmPushConfigOptional.get() : new Object()); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("报警推送配置查询异常,场景{},异常信息{}", scene, dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } -} diff --git a/src/main/java/com/casic/service/impl/AlarmServiceImple.java b/src/main/java/com/casic/service/impl/AlarmServiceImple.java deleted file mode 100644 index 8a29af9..0000000 --- a/src/main/java/com/casic/service/impl/AlarmServiceImple.java +++ /dev/null @@ -1,129 +0,0 @@ -package com.casic.service.impl; - -import com.alibaba.druid.util.StringUtils; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.dao.AlarmMapper; -import com.casic.dao.BusConfigMapper; -import com.casic.model.*; -import com.casic.service.AlarmService; -import com.casic.util.DeviceDataTableEnum; -import com.casic.util.RedisCommon; -import lombok.extern.slf4j.Slf4j; -import org.springframework.dao.DataAccessException; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import javax.annotation.Resource; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -@Slf4j -@Service -public class AlarmServiceImple extends ServiceImpl implements AlarmService { - - @Resource - private BusConfigMapper busConfigMapper; - @Resource - private RedisCommon redisCommonUtil; - - @Override - public Object getAlarmRecord(String deviceType, Integer currentIndex, Integer pageSize, String devcode) { - ResponseData responseData = new ResponseData(); - try { - Map page = new HashMap(); - page.put("total", this.baseMapper.getAlarmTotalRecord(deviceType, devcode)); - List> alarmRecordList = this.baseMapper.getAlarmRecord(deviceType, devcode, pageSize * (currentIndex - 1), pageSize); - page.put("rows", alarmRecordList); - responseData.setData(page); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("设备数据查询异常,设备类型{},异常信息{}", deviceType, dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - @Override - @Transactional - public Object excuteAlramBatchCancel(String deviceType, String devcode) { - ResponseData responseData = new ResponseData(); - try { - this.baseMapper.excuteAlramBatchCancel(deviceType, devcode); - this.baseMapper.excuteJobBatchCancel(deviceType, devcode); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("批量消警异常,设备类型{},异常信息{}", deviceType, dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - @Override - @Transactional - public Object addAlarmConfig(AlarmConfigParam alarmConfigParam) { - ResponseData responseData = new ResponseData(); - try { - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - addBusConfig(alarmConfigParam); - addRuleConfig(alarmConfigParam); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("风险配置异常,异常信息{}", dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - private void addRuleConfig(AlarmConfigParam alarmConfigParam) { - Map alarmRuleMap = new HashMap(); - alarmRuleMap.put("DEVICE_TYPE", alarmConfigParam.getDeviceType()); - this.baseMapper.deleteByMap(alarmRuleMap); - AlarmLevel alarmRule = new AlarmLevel(); - DeviceDataTableEnum deviceDataTableEnum = DeviceDataTableEnum.DEVICE_TYPE_TABLE.getTableNameMap() - .get(Integer.valueOf(alarmConfigParam.getDeviceType())); - alarmRule.setName(deviceDataTableEnum.getTypeName()); - alarmRule.setHighValue(Float.valueOf(alarmConfigParam.getThresholdVol())); - alarmRule.setTs(new Date()); - alarmRule.setLevel(1); - alarmRule.setDeviceType(alarmConfigParam.getDeviceType()); - this.baseMapper.insert(alarmRule); - } - - private void addBusConfig(AlarmConfigParam alarmConfigParam) { - String devcode = StringUtils.isEmpty(alarmConfigParam.getDevcode()) ? this.baseMapper.getDeviceDevcode(alarmConfigParam.getDeviceType()) : alarmConfigParam.getDevcode(); - sendBusConfig(alarmConfigParam, devcode); - String devcideId = this.baseMapper.getDeviceByDevcode(alarmConfigParam.getDeviceType(), devcode); - BusConfig busConfig = new BusConfig(); - busConfig.setDeviceId(devcideId); - busConfig.setFramecontent("3," + alarmConfigParam.getCollectInterval() + "," + alarmConfigParam.getCollectInterval() + - "," + alarmConfigParam.getRetryNum() + "," + alarmConfigParam.getIp() + "," + alarmConfigParam.getPort()); - busConfig.setSensorid(""); - busConfig.setStatus("0"); - busConfig.setAttemptscurrent(0); - busConfig.setWritetime(new Date()); - busConfig.setAttemptsmax(3); - busConfigMapper.insert(busConfig); - } - - private void sendBusConfig(AlarmConfigParam alarmConfigParam, String devcode) { - CommConfigDTO commConfigDTO = new CommConfigDTO(); - commConfigDTO.setInterval(StringUtils.isEmpty(alarmConfigParam.getCollectInterval()) ? 300 : Long.valueOf(alarmConfigParam.getCollectInterval())); - commConfigDTO.setRepeat(StringUtils.isEmpty(alarmConfigParam.getRetryNum()) ? 300 : Long.valueOf(alarmConfigParam.getRetryNum())); -// commConfigDTO.setTimes(Long.valueOf(1)); -// commConfigDTO.setIp(alarmConfigParam.getIp()); -// commConfigDTO.setPort(StringUtils.isEmpty(alarmConfigParam.getPort()) ? 8080 : Long.valueOf(alarmConfigParam.getPort())); - commConfigDTO.setPeriod(StringUtils.isEmpty(alarmConfigParam.getUploadCycle()) ? 300 : Long.valueOf(alarmConfigParam.getUploadCycle())); -// commConfigDTO.setThresh(); - commConfigDTO.setThresh(StringUtils.isEmpty(alarmConfigParam.getThresholdVol()) ? 50 : Float.valueOf(alarmConfigParam.getThresholdVol())); - redisCommonUtil.send(commConfigDTO, devcode); - } - - -} diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/casic/config/AliYunConfig.java b/src/main/java/com/casic/config/AliYunConfig.java deleted file mode 100644 index 090b6ab..0000000 --- a/src/main/java/com/casic/config/AliYunConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Slf4j -@Configuration -@ConfigurationProperties(prefix = "casic.ali") -@Data -public class AliYunConfig { - - private String key; - private String screct; - private String url; - private String signNameJson; - private String templateCode; - -} diff --git a/src/main/java/com/casic/config/ApiHikomConfig.java b/src/main/java/com/casic/config/ApiHikomConfig.java deleted file mode 100644 index 73b3550..0000000 --- a/src/main/java/com/casic/config/ApiHikomConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -@Data -public class ApiHikomConfig { - @Value("${casic.hikom.host}") - private String hikomHost; - @Value("${casic.hikom.url}") - private String hikomUrl; -} diff --git a/src/main/java/com/casic/config/task/TaskConfigurer.java b/src/main/java/com/casic/config/task/TaskConfigurer.java new file mode 100644 index 0000000..43282d3 --- /dev/null +++ b/src/main/java/com/casic/config/task/TaskConfigurer.java @@ -0,0 +1,44 @@ +package com.casic.config.task; + +import com.casic.service.DeviceDataService; +import com.casic.service.ThirdDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.config.TriggerTask; +import org.springframework.scheduling.support.CronTrigger; + +/** + * @author cz + */ +@Configuration +@EnableScheduling +public class TaskConfigurer implements SchedulingConfigurer { + + @Value("${casic.device.online.corn}") + private String timeConfig; + @Autowired + private DeviceDataService deviceDataService; + + @Override + public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + TriggerTask triggrtTask = new TriggerTask(nextDayDevice(), + triggerContext -> { + return new CronTrigger(timeConfig).nextExecutionTime(triggerContext); + }); + taskRegistrar.addTriggerTask(triggrtTask); + } + + private Runnable nextDayDevice() { + return new Runnable() { + @Override + public void run() { + deviceDataService.checkAndUpdateDeviceOnline(); + } + }; + } + +} \ No newline at end of file diff --git a/src/main/java/com/casic/controller/AlarmController.java b/src/main/java/com/casic/controller/AlarmController.java deleted file mode 100644 index 957fc36..0000000 --- a/src/main/java/com/casic/controller/AlarmController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmConfigParam; -import com.casic.service.AlarmService; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/alarm") -public class AlarmController { - - private final AlarmService alarmService; - - public AlarmController(AlarmService alarmService) { - this.alarmService = alarmService; - } - - @RequestMapping("/records") - public Object getAlarmRecord(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "currentIndex", required = true) Integer currentIndex, - @RequestParam(value = "devcode",required =false) String devcode, - @RequestParam(value = "pageSize", required = true) Integer pageSize) { - return alarmService.getAlarmRecord(deviceType,currentIndex,pageSize,devcode); - } - - @RequestMapping("/batch/cancel") - public Object excuteAlramBatchCancel(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "devcode",required =false) String devcode) { - return alarmService.excuteAlramBatchCancel(deviceType,devcode); - } - - @RequestMapping("/config/add") - public Object addAlarmConfig(@RequestBody AlarmConfigParam alarmConfigParam) { - return alarmService.addAlarmConfig(alarmConfigParam); - } -} diff --git a/src/main/java/com/casic/controller/AlarmPushController.java b/src/main/java/com/casic/controller/AlarmPushController.java deleted file mode 100644 index 1642f9b..0000000 --- a/src/main/java/com/casic/controller/AlarmPushController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmPushConfig; -import com.casic.service.AlarmPushService; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.*; - -@RestController -@AllArgsConstructor -@RequestMapping("/alarm") -public class AlarmPushController { - - private AlarmPushService alarmPushService; - - @RequestMapping("/push/config") - @ResponseBody - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - return alarmPushService.alarmPushConfig(alarmSwitchConfig); - } - - @RequestMapping("/push/query") - public Object alarmPushQuery(@RequestParam(value = "scene", required = true) String scene) { - return alarmPushService.getAlarmPush(scene); - } - -} diff --git a/src/main/java/com/casic/controller/ArtemisValidController.java b/src/main/java/com/casic/controller/ArtemisValidController.java deleted file mode 100644 index 1d52576..0000000 --- a/src/main/java/com/casic/controller/ArtemisValidController.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.controller; - -import com.casic.model.HkvideoValidParam; -import com.casic.model.ResponseData; -import com.casic.util.ArtemisPostUtil; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 海康接口 - */ -@AllArgsConstructor -@RestController -public class ArtemisValidController { - private final ArtemisPostUtil artemisPostUtill; - - @RequestMapping("/hkvideo/getVideoUrl") - public ResponseData getVideoUrl(@RequestBody HkvideoValidParam hkvideoValidParam) { - - return artemisPostUtill.artemisPost(hkvideoValidParam); - } - -} diff --git a/src/main/java/com/casic/controller/MessagePusherController.java b/src/main/java/com/casic/controller/MessagePusherController.java index d447c05..b97dcd1 100644 --- a/src/main/java/com/casic/controller/MessagePusherController.java +++ b/src/main/java/com/casic/controller/MessagePusherController.java @@ -32,8 +32,7 @@ } catch (UnsupportedEncodingException e) { e.printStackTrace(); } - return retMap; - } + return retMap; } //报警开关按钮 // diff --git a/src/main/java/com/casic/controller/ThirdDataController.java b/src/main/java/com/casic/controller/ThirdDataController.java index d910a7d..fbd8e59 100644 --- a/src/main/java/com/casic/controller/ThirdDataController.java +++ b/src/main/java/com/casic/controller/ThirdDataController.java @@ -1,8 +1,6 @@ package com.casic.controller; import com.alibaba.fastjson.JSON; -import com.casic.model.CommConfigDTO; -import com.casic.model.PressureDataParam; import com.casic.model.ResponseData; import com.casic.service.ThirdDataService; import lombok.extern.slf4j.Slf4j; @@ -10,7 +8,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.HashMap; import java.util.Map; @RestController @@ -24,22 +21,25 @@ this.thirdDataService = thirdDataService; } - @RequestMapping("/pressure/data") - public Object getDeviceRecentData(@RequestBody PressureDataParam pressureData) { - return thirdDataService.getDeviceRecentData(pressureData); + /** + * 硫化氢订阅接口 + * + * @param h2sDataMap + * @return + */ + @RequestMapping("/h2s-data") + public Object h2sData(@RequestBody Map h2sDataMap) { + System.out.println(JSON.toJSON(h2sDataMap)); + return thirdDataService.h2sData(h2sDataMap); } - @RequestMapping("/data") - public Object getDeviceData(@RequestBody Map pressureDataMap) { - System.out.println(JSON.toJSON(pressureDataMap)); - Map map = new HashMap(); - map.put("method", "setParams"); - Map param = new HashMap(); - param.put("ip", "大胆猜测下"); - map.put("status", 200); - map.put("params", param); - map.put("timeout", "3000"); - return map; + @RequestMapping("/test") + public Object testNbResponse (@RequestBody Map h2sDataMap){ + ResponseData responseData=new ResponseData(); + responseData.setCode(200); + responseData.setData("oyAAGDcgFAEAAcMAAQWfAXOJd1POnas6zxTmU7jQkVJinQ=="); + System.out.println(JSON.toJSON(h2sDataMap)); + return responseData; } } diff --git a/src/main/java/com/casic/dao/AlarmPushMapper.java b/src/main/java/com/casic/dao/AlarmPushMapper.java deleted file mode 100644 index 9d7484b..0000000 --- a/src/main/java/com/casic/dao/AlarmPushMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.AlarmPushConfig; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface AlarmPushMapper extends BaseMapper { -} diff --git a/src/main/java/com/casic/dao/AlarmRecordMapper.java b/src/main/java/com/casic/dao/AlarmRecordMapper.java new file mode 100644 index 0000000..d8a4911 --- /dev/null +++ b/src/main/java/com/casic/dao/AlarmRecordMapper.java @@ -0,0 +1,12 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.AlarmRecord; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AlarmRecordMapper extends BaseMapper { + + + +} diff --git a/src/main/java/com/casic/dao/DataH2sMapper.java b/src/main/java/com/casic/dao/DataH2sMapper.java new file mode 100644 index 0000000..434f1e2 --- /dev/null +++ b/src/main/java/com/casic/dao/DataH2sMapper.java @@ -0,0 +1,27 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.DataH2s; +import com.casic.model.DataPressure; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; + +@Mapper +public interface DataH2sMapper extends BaseMapper { + + int clearOnline(@Param("devcode") String devcode); + + String getWellCode(@Param("devcode") String devcode); + + Float getRuleValue(@Param("deviceType") String deviceType); + + int cancelAlarm(@Param("devcode") String devcode, @Param("status") String status); + + String getImeiByDevcode(@Param("devcode") String devcode); + + int updateImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); + + int addImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); +} diff --git a/src/main/java/com/casic/dao/DataPressureMapper.java b/src/main/java/com/casic/dao/DataPressureMapper.java deleted file mode 100644 index 05f4329..0000000 --- a/src/main/java/com/casic/dao/DataPressureMapper.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.DataPressure; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.Date; - -@Mapper -public interface DataPressureMapper extends BaseMapper { - - String getWellCode(@Param("devcode") String devcode); - - Float getRuleValue(@Param("deviceType") String deviceType); - - void saveRecords(@Param("reValue") String reValue, @Param("alarmTime") Date alarmTime); - -} diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java index d9e18a0..e62d526 100644 --- a/src/main/java/com/casic/dao/DeviceDataMapper.java +++ b/src/main/java/com/casic/dao/DeviceDataMapper.java @@ -23,5 +23,14 @@ @Param("pageSize") Integer pageSize, @Param("devcode") String devcode); - String getLevelByType(@Param("deviceType")String deviceType); + String getLevelByType(@Param("deviceType") String deviceType); + + + List getDevcodeByType(@Param("devciceType") Integer devciceType); + + List getRecentData(@Param("devciceType") Integer dataDay); + + List updateOnlineByDevs(@Param("dataSortDevcodeList") List dataSortDevcodeList); + + } diff --git a/src/main/java/com/casic/enums/DeviceTypeEnum.java b/src/main/java/com/casic/enums/DeviceTypeEnum.java new file mode 100644 index 0000000..8d5a6e6 --- /dev/null +++ b/src/main/java/com/casic/enums/DeviceTypeEnum.java @@ -0,0 +1,64 @@ +package com.casic.enums; + + +public enum DeviceTypeEnum { + Well("井盖状态监测仪", 1), + Liquid("液位监测仪", 2), + WasteGas("有害气体监测仪", 3), + Methane("燃气智能监测终端", 4), + TempHumi("温湿度监测仪", 5), + Dig("开挖监测仪", 6), + WellLocator("井盖定位监测仪", 7), + Noise("噪声记录仪", 8), + TempPressure("温度压力监测仪", 9), + FireHydrant("消防栓防盗水监测仪", 11), + Tube("管盯", 12), + LG("井盖液位一体机", 13), + H2s("硫化氢检测终端", 14); + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private DeviceTypeEnum(String name, int index) { + this.name = name; + this.index = index; + } + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } + + public static DeviceTypeEnum getByIndex(String index) { + try { + for (DeviceTypeEnum deviceTypeEnum : values()) { + if (deviceTypeEnum.index == Integer.parseInt(index)) { + return deviceTypeEnum; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } +} \ No newline at end of file diff --git a/src/main/java/com/casic/enums/H2sParamsEnum.java b/src/main/java/com/casic/enums/H2sParamsEnum.java new file mode 100644 index 0000000..74eec50 --- /dev/null +++ b/src/main/java/com/casic/enums/H2sParamsEnum.java @@ -0,0 +1,35 @@ +package com.casic.enums; + +public interface H2sParamsEnum { + + /** + * 下发配置参数 + */ + String IP = "ip"; + String PORT = "port"; + String CTNET = "ctnet"; + String PERIOD = "period"; + String CYCLE = "cycle"; + /** + * 三码上报 + */ + String ICCID = "iccid"; + String IMEI = "imei"; + String DEVCODE = "devcode"; + /** + * 上传时间 + */ + String TS = "ts"; + /** + * 数据上报(电量、硫化氢数据值、设备编号) + * 数据值 + */ + String H2S_VALUE = "h2sValue"; + /** + * 电量 + */ + String BATTERY_VALUE = "batteryValue"; + + + +} diff --git a/src/main/java/com/casic/model/AlarmRecord.java b/src/main/java/com/casic/model/AlarmRecord.java new file mode 100644 index 0000000..600fe5a --- /dev/null +++ b/src/main/java/com/casic/model/AlarmRecord.java @@ -0,0 +1,81 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; + +import java.util.Date; + +@Builder +@TableName("alarm_records") +public class AlarmRecord { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 设备ID + */ + @TableField("DEVICE_ID") + private Long deviceId; + /** + * 设备编号 + */ + @TableField("DEVCODE") + private String devcode; + /** + * 闸井编号 + */ + @TableField("WELL_CODE") + private String wellCode; + /** + * 告警类型 + */ + @TableField("ALARM_TYPE") + private String alarmType; + /** + * 告警内容 + */ + @TableField("ALARM_CONTENT") + private String alarmContent; + /** + * 告警数值 + */ + @TableField("ALARM_VALUE") + private String alarmValue; + /** + * 告警等级 + */ + @TableField("ALARM_LEVEL") + private Integer alarmLevel; + /** + * 告警详情 + */ + @TableField("ALARM_MSG") + private String alarmMessage; + /** + * 告警时间 + */ + @TableField("ALARM_TIME") + private Date alarmTime; + /** + * 告警状态 + */ + @TableField("STATUS") + private String status; + /** + * 工单编号 + */ + @TableField("JOB_ID") + private Long jobId; + + @TableField(exist = false) + private Integer jobStatus; + +} diff --git a/src/main/java/com/casic/model/DataH2s.java b/src/main/java/com/casic/model/DataH2s.java new file mode 100644 index 0000000..16ecc7a --- /dev/null +++ b/src/main/java/com/casic/model/DataH2s.java @@ -0,0 +1,37 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + */ +@Data +@TableName("data_h2s") +public class DataH2s { + + private Long id; + + private String devcode; + + private String wellCode; + + private String cell; + + private String strength; + + private String uptime; + + private String logtime; + + private String descn; + + private String rsrp; + + private String pci; + + private String snr; + +} diff --git a/src/main/java/com/casic/model/DeviceTypeEnum.java b/src/main/java/com/casic/model/DeviceTypeEnum.java deleted file mode 100644 index 26c685f..0000000 --- a/src/main/java/com/casic/model/DeviceTypeEnum.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.casic.model; - - -public enum DeviceTypeEnum { - Well("井盖状态监测仪", 1), - Liquid("液位监测仪", 2), - WasteGas("有害气体监测仪", 3), - Methane("燃气智能监测终端", 4), - TempHumi("温湿度监测仪", 5), - Dig("开挖监测仪", 6), - WellLocator("井盖定位监测仪", 7), - Noise("噪声记录仪", 8), - TempPressure("温度压力监测仪", 9), - FireHydrant("消防栓防盗水监测仪", 11), - Tube("管盯", 12), - LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); - - // 成员变量 - private String name; - private int index; - - // 构造方法 - private DeviceTypeEnum(String name, int index) { - this.name = name; - this.index = index; - } - - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public int getIndex() { - return index; - } - - public void setIndex(int index) { - this.index = index; - } - - public static DeviceTypeEnum getByIndex(String index) { - try { - for (DeviceTypeEnum deviceTypeEnum : values()) { - if (deviceTypeEnum.index == Integer.parseInt(index)) { - return deviceTypeEnum; - } - } - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - //覆盖方法 - @Override - public String toString() { - return this.name; - } -} \ No newline at end of file diff --git a/src/main/java/com/casic/service/AlarmPushService.java b/src/main/java/com/casic/service/AlarmPushService.java deleted file mode 100644 index d180eb2..0000000 --- a/src/main/java/com/casic/service/AlarmPushService.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.service; - -import com.casic.model.AlarmPushConfig; - -public interface AlarmPushService { - - Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig); - - Object getAlarmPush(String scene); - -} - - - diff --git a/src/main/java/com/casic/service/AlarmService.java b/src/main/java/com/casic/service/AlarmService.java deleted file mode 100644 index 4f41038..0000000 --- a/src/main/java/com/casic/service/AlarmService.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.casic.service; - -import com.casic.model.AlarmConfigParam; - -public interface AlarmService { - - Object getAlarmRecord(String deviceType, Integer currentIndex, Integer pageSize, String devcode); - - Object excuteAlramBatchCancel(String deviceType, String devcode); - - Object addAlarmConfig(AlarmConfigParam alarmConfig); - -} diff --git a/src/main/java/com/casic/service/DeviceDataService.java b/src/main/java/com/casic/service/DeviceDataService.java index db656c1..71f8ce9 100644 --- a/src/main/java/com/casic/service/DeviceDataService.java +++ b/src/main/java/com/casic/service/DeviceDataService.java @@ -7,4 +7,6 @@ Object getDeviceListPage(String deviceType, Integer currentIndex, Integer pageSize, String devcode); Object getLevel(String deviceType); + + void checkAndUpdateDeviceOnline(); } diff --git a/src/main/java/com/casic/service/ThirdDataService.java b/src/main/java/com/casic/service/ThirdDataService.java index 795e0b2..31dc516 100644 --- a/src/main/java/com/casic/service/ThirdDataService.java +++ b/src/main/java/com/casic/service/ThirdDataService.java @@ -1,8 +1,11 @@ package com.casic.service; -import com.casic.model.PressureDataParam; +import java.util.Map; public interface ThirdDataService { - Object getDeviceRecentData(PressureDataParam pressureData); + + Object h2sData(Map h2sDataMap); + + } diff --git a/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java b/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java deleted file mode 100644 index d193905..0000000 --- a/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.casic.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.dao.AlarmPushMapper; -import com.casic.model.AlarmPushConfig; -import com.casic.model.ResponseData; -import com.casic.service.AlarmPushService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.dao.DataAccessException; -import org.springframework.stereotype.Service; - -import java.util.List; -import java.util.Optional; - -@Service -@Slf4j -public class AlarmPushServiceImpl extends ServiceImpl implements AlarmPushService { - - @Override - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - ResponseData responseData = new ResponseData(); - try { - QueryWrapper queryWrapper = new QueryWrapper() - .eq("scene", alarmSwitchConfig.getScene()); -// this.baseMapper.delete(deleteWrapper); - this.baseMapper.update(alarmSwitchConfig, queryWrapper); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("报警推送配置新增异常,场景{},异常信息{}", alarmSwitchConfig.getScene(), dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - @Override - public Object getAlarmPush(String scene) { - ResponseData responseData = new ResponseData(); - try { - QueryWrapper queryWrapper = new QueryWrapper() - .eq("scene", scene); - List alarmPushConfigList = this.baseMapper.selectList(queryWrapper); - Optional alarmPushConfigOptional = alarmPushConfigList.stream().findFirst(); - responseData.setData(alarmPushConfigOptional.isPresent() ? alarmPushConfigOptional.get() : new Object()); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("报警推送配置查询异常,场景{},异常信息{}", scene, dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } -} diff --git a/src/main/java/com/casic/service/impl/AlarmServiceImple.java b/src/main/java/com/casic/service/impl/AlarmServiceImple.java deleted file mode 100644 index 8a29af9..0000000 --- a/src/main/java/com/casic/service/impl/AlarmServiceImple.java +++ /dev/null @@ -1,129 +0,0 @@ -package com.casic.service.impl; - -import com.alibaba.druid.util.StringUtils; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.dao.AlarmMapper; -import com.casic.dao.BusConfigMapper; -import com.casic.model.*; -import com.casic.service.AlarmService; -import com.casic.util.DeviceDataTableEnum; -import com.casic.util.RedisCommon; -import lombok.extern.slf4j.Slf4j; -import org.springframework.dao.DataAccessException; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import javax.annotation.Resource; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -@Slf4j -@Service -public class AlarmServiceImple extends ServiceImpl implements AlarmService { - - @Resource - private BusConfigMapper busConfigMapper; - @Resource - private RedisCommon redisCommonUtil; - - @Override - public Object getAlarmRecord(String deviceType, Integer currentIndex, Integer pageSize, String devcode) { - ResponseData responseData = new ResponseData(); - try { - Map page = new HashMap(); - page.put("total", this.baseMapper.getAlarmTotalRecord(deviceType, devcode)); - List> alarmRecordList = this.baseMapper.getAlarmRecord(deviceType, devcode, pageSize * (currentIndex - 1), pageSize); - page.put("rows", alarmRecordList); - responseData.setData(page); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("设备数据查询异常,设备类型{},异常信息{}", deviceType, dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - @Override - @Transactional - public Object excuteAlramBatchCancel(String deviceType, String devcode) { - ResponseData responseData = new ResponseData(); - try { - this.baseMapper.excuteAlramBatchCancel(deviceType, devcode); - this.baseMapper.excuteJobBatchCancel(deviceType, devcode); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("批量消警异常,设备类型{},异常信息{}", deviceType, dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - @Override - @Transactional - public Object addAlarmConfig(AlarmConfigParam alarmConfigParam) { - ResponseData responseData = new ResponseData(); - try { - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - addBusConfig(alarmConfigParam); - addRuleConfig(alarmConfigParam); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("风险配置异常,异常信息{}", dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - private void addRuleConfig(AlarmConfigParam alarmConfigParam) { - Map alarmRuleMap = new HashMap(); - alarmRuleMap.put("DEVICE_TYPE", alarmConfigParam.getDeviceType()); - this.baseMapper.deleteByMap(alarmRuleMap); - AlarmLevel alarmRule = new AlarmLevel(); - DeviceDataTableEnum deviceDataTableEnum = DeviceDataTableEnum.DEVICE_TYPE_TABLE.getTableNameMap() - .get(Integer.valueOf(alarmConfigParam.getDeviceType())); - alarmRule.setName(deviceDataTableEnum.getTypeName()); - alarmRule.setHighValue(Float.valueOf(alarmConfigParam.getThresholdVol())); - alarmRule.setTs(new Date()); - alarmRule.setLevel(1); - alarmRule.setDeviceType(alarmConfigParam.getDeviceType()); - this.baseMapper.insert(alarmRule); - } - - private void addBusConfig(AlarmConfigParam alarmConfigParam) { - String devcode = StringUtils.isEmpty(alarmConfigParam.getDevcode()) ? this.baseMapper.getDeviceDevcode(alarmConfigParam.getDeviceType()) : alarmConfigParam.getDevcode(); - sendBusConfig(alarmConfigParam, devcode); - String devcideId = this.baseMapper.getDeviceByDevcode(alarmConfigParam.getDeviceType(), devcode); - BusConfig busConfig = new BusConfig(); - busConfig.setDeviceId(devcideId); - busConfig.setFramecontent("3," + alarmConfigParam.getCollectInterval() + "," + alarmConfigParam.getCollectInterval() + - "," + alarmConfigParam.getRetryNum() + "," + alarmConfigParam.getIp() + "," + alarmConfigParam.getPort()); - busConfig.setSensorid(""); - busConfig.setStatus("0"); - busConfig.setAttemptscurrent(0); - busConfig.setWritetime(new Date()); - busConfig.setAttemptsmax(3); - busConfigMapper.insert(busConfig); - } - - private void sendBusConfig(AlarmConfigParam alarmConfigParam, String devcode) { - CommConfigDTO commConfigDTO = new CommConfigDTO(); - commConfigDTO.setInterval(StringUtils.isEmpty(alarmConfigParam.getCollectInterval()) ? 300 : Long.valueOf(alarmConfigParam.getCollectInterval())); - commConfigDTO.setRepeat(StringUtils.isEmpty(alarmConfigParam.getRetryNum()) ? 300 : Long.valueOf(alarmConfigParam.getRetryNum())); -// commConfigDTO.setTimes(Long.valueOf(1)); -// commConfigDTO.setIp(alarmConfigParam.getIp()); -// commConfigDTO.setPort(StringUtils.isEmpty(alarmConfigParam.getPort()) ? 8080 : Long.valueOf(alarmConfigParam.getPort())); - commConfigDTO.setPeriod(StringUtils.isEmpty(alarmConfigParam.getUploadCycle()) ? 300 : Long.valueOf(alarmConfigParam.getUploadCycle())); -// commConfigDTO.setThresh(); - commConfigDTO.setThresh(StringUtils.isEmpty(alarmConfigParam.getThresholdVol()) ? 50 : Float.valueOf(alarmConfigParam.getThresholdVol())); - redisCommonUtil.send(commConfigDTO, devcode); - } - - -} diff --git a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java index e35daef..136912f 100644 --- a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java +++ b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java @@ -1,27 +1,36 @@ package com.casic.service.impl; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.casic.dao.DeviceDataMapper; import com.casic.model.ResponseData; import com.casic.service.DeviceDataService; import com.casic.util.DeviceDataFieldTableEnum; import com.casic.util.DeviceDataTableEnum; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collector; +import java.util.stream.Collectors; @Service @Slf4j +@RequiredArgsConstructor public class DeviceDataServiceImpl implements DeviceDataService { - private final DeviceDataMapper deviceDataMapper; + @Value("${casic.device.type}") + private Integer devciceType; - public DeviceDataServiceImpl(DeviceDataMapper deviceDataMapper) { - this.deviceDataMapper = deviceDataMapper; - } + @Value("${casic.device.data-day}") + private Integer dataDay; + + private final DeviceDataMapper deviceDataMapper; @Override public Object getDeviceRecentData(String deviceType, String recentNum, String devcode) { @@ -80,4 +89,26 @@ return responseData; } + @Override + @Transactional + public void checkAndUpdateDeviceOnline() { + //查询硫化氢设备 + List String = deviceDataMapper.getDevcodeByType(devciceType); + //统一查询所有设备的3天内数据的设备编号,然后设备编号转成map,进行 + List dataList = deviceDataMapper.getRecentData(dataDay); + List dataSortDevcodeList = dataList; + if (dataList != null) { + Map devOnlineMap = new HashMap<>(); + for (String devcodeData : dataList) { + devOnlineMap.put(devcodeData, ""); + } + dataSortDevcodeList = dataSortDevcodeList.stream().filter( + e -> !devOnlineMap.containsKey(e)).collect(Collectors.toList()); + } + //统一更新 + if (CollectionUtils.isNotEmpty(dataList)) { + deviceDataMapper.updateOnlineByDevs(dataSortDevcodeList); + } + } + } diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/casic/config/AliYunConfig.java b/src/main/java/com/casic/config/AliYunConfig.java deleted file mode 100644 index 090b6ab..0000000 --- a/src/main/java/com/casic/config/AliYunConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Slf4j -@Configuration -@ConfigurationProperties(prefix = "casic.ali") -@Data -public class AliYunConfig { - - private String key; - private String screct; - private String url; - private String signNameJson; - private String templateCode; - -} diff --git a/src/main/java/com/casic/config/ApiHikomConfig.java b/src/main/java/com/casic/config/ApiHikomConfig.java deleted file mode 100644 index 73b3550..0000000 --- a/src/main/java/com/casic/config/ApiHikomConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -@Data -public class ApiHikomConfig { - @Value("${casic.hikom.host}") - private String hikomHost; - @Value("${casic.hikom.url}") - private String hikomUrl; -} diff --git a/src/main/java/com/casic/config/task/TaskConfigurer.java b/src/main/java/com/casic/config/task/TaskConfigurer.java new file mode 100644 index 0000000..43282d3 --- /dev/null +++ b/src/main/java/com/casic/config/task/TaskConfigurer.java @@ -0,0 +1,44 @@ +package com.casic.config.task; + +import com.casic.service.DeviceDataService; +import com.casic.service.ThirdDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.config.TriggerTask; +import org.springframework.scheduling.support.CronTrigger; + +/** + * @author cz + */ +@Configuration +@EnableScheduling +public class TaskConfigurer implements SchedulingConfigurer { + + @Value("${casic.device.online.corn}") + private String timeConfig; + @Autowired + private DeviceDataService deviceDataService; + + @Override + public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + TriggerTask triggrtTask = new TriggerTask(nextDayDevice(), + triggerContext -> { + return new CronTrigger(timeConfig).nextExecutionTime(triggerContext); + }); + taskRegistrar.addTriggerTask(triggrtTask); + } + + private Runnable nextDayDevice() { + return new Runnable() { + @Override + public void run() { + deviceDataService.checkAndUpdateDeviceOnline(); + } + }; + } + +} \ No newline at end of file diff --git a/src/main/java/com/casic/controller/AlarmController.java b/src/main/java/com/casic/controller/AlarmController.java deleted file mode 100644 index 957fc36..0000000 --- a/src/main/java/com/casic/controller/AlarmController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmConfigParam; -import com.casic.service.AlarmService; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/alarm") -public class AlarmController { - - private final AlarmService alarmService; - - public AlarmController(AlarmService alarmService) { - this.alarmService = alarmService; - } - - @RequestMapping("/records") - public Object getAlarmRecord(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "currentIndex", required = true) Integer currentIndex, - @RequestParam(value = "devcode",required =false) String devcode, - @RequestParam(value = "pageSize", required = true) Integer pageSize) { - return alarmService.getAlarmRecord(deviceType,currentIndex,pageSize,devcode); - } - - @RequestMapping("/batch/cancel") - public Object excuteAlramBatchCancel(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "devcode",required =false) String devcode) { - return alarmService.excuteAlramBatchCancel(deviceType,devcode); - } - - @RequestMapping("/config/add") - public Object addAlarmConfig(@RequestBody AlarmConfigParam alarmConfigParam) { - return alarmService.addAlarmConfig(alarmConfigParam); - } -} diff --git a/src/main/java/com/casic/controller/AlarmPushController.java b/src/main/java/com/casic/controller/AlarmPushController.java deleted file mode 100644 index 1642f9b..0000000 --- a/src/main/java/com/casic/controller/AlarmPushController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmPushConfig; -import com.casic.service.AlarmPushService; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.*; - -@RestController -@AllArgsConstructor -@RequestMapping("/alarm") -public class AlarmPushController { - - private AlarmPushService alarmPushService; - - @RequestMapping("/push/config") - @ResponseBody - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - return alarmPushService.alarmPushConfig(alarmSwitchConfig); - } - - @RequestMapping("/push/query") - public Object alarmPushQuery(@RequestParam(value = "scene", required = true) String scene) { - return alarmPushService.getAlarmPush(scene); - } - -} diff --git a/src/main/java/com/casic/controller/ArtemisValidController.java b/src/main/java/com/casic/controller/ArtemisValidController.java deleted file mode 100644 index 1d52576..0000000 --- a/src/main/java/com/casic/controller/ArtemisValidController.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.controller; - -import com.casic.model.HkvideoValidParam; -import com.casic.model.ResponseData; -import com.casic.util.ArtemisPostUtil; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 海康接口 - */ -@AllArgsConstructor -@RestController -public class ArtemisValidController { - private final ArtemisPostUtil artemisPostUtill; - - @RequestMapping("/hkvideo/getVideoUrl") - public ResponseData getVideoUrl(@RequestBody HkvideoValidParam hkvideoValidParam) { - - return artemisPostUtill.artemisPost(hkvideoValidParam); - } - -} diff --git a/src/main/java/com/casic/controller/MessagePusherController.java b/src/main/java/com/casic/controller/MessagePusherController.java index d447c05..b97dcd1 100644 --- a/src/main/java/com/casic/controller/MessagePusherController.java +++ b/src/main/java/com/casic/controller/MessagePusherController.java @@ -32,8 +32,7 @@ } catch (UnsupportedEncodingException e) { e.printStackTrace(); } - return retMap; - } + return retMap; } //报警开关按钮 // diff --git a/src/main/java/com/casic/controller/ThirdDataController.java b/src/main/java/com/casic/controller/ThirdDataController.java index d910a7d..fbd8e59 100644 --- a/src/main/java/com/casic/controller/ThirdDataController.java +++ b/src/main/java/com/casic/controller/ThirdDataController.java @@ -1,8 +1,6 @@ package com.casic.controller; import com.alibaba.fastjson.JSON; -import com.casic.model.CommConfigDTO; -import com.casic.model.PressureDataParam; import com.casic.model.ResponseData; import com.casic.service.ThirdDataService; import lombok.extern.slf4j.Slf4j; @@ -10,7 +8,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.HashMap; import java.util.Map; @RestController @@ -24,22 +21,25 @@ this.thirdDataService = thirdDataService; } - @RequestMapping("/pressure/data") - public Object getDeviceRecentData(@RequestBody PressureDataParam pressureData) { - return thirdDataService.getDeviceRecentData(pressureData); + /** + * 硫化氢订阅接口 + * + * @param h2sDataMap + * @return + */ + @RequestMapping("/h2s-data") + public Object h2sData(@RequestBody Map h2sDataMap) { + System.out.println(JSON.toJSON(h2sDataMap)); + return thirdDataService.h2sData(h2sDataMap); } - @RequestMapping("/data") - public Object getDeviceData(@RequestBody Map pressureDataMap) { - System.out.println(JSON.toJSON(pressureDataMap)); - Map map = new HashMap(); - map.put("method", "setParams"); - Map param = new HashMap(); - param.put("ip", "大胆猜测下"); - map.put("status", 200); - map.put("params", param); - map.put("timeout", "3000"); - return map; + @RequestMapping("/test") + public Object testNbResponse (@RequestBody Map h2sDataMap){ + ResponseData responseData=new ResponseData(); + responseData.setCode(200); + responseData.setData("oyAAGDcgFAEAAcMAAQWfAXOJd1POnas6zxTmU7jQkVJinQ=="); + System.out.println(JSON.toJSON(h2sDataMap)); + return responseData; } } diff --git a/src/main/java/com/casic/dao/AlarmPushMapper.java b/src/main/java/com/casic/dao/AlarmPushMapper.java deleted file mode 100644 index 9d7484b..0000000 --- a/src/main/java/com/casic/dao/AlarmPushMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.AlarmPushConfig; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface AlarmPushMapper extends BaseMapper { -} diff --git a/src/main/java/com/casic/dao/AlarmRecordMapper.java b/src/main/java/com/casic/dao/AlarmRecordMapper.java new file mode 100644 index 0000000..d8a4911 --- /dev/null +++ b/src/main/java/com/casic/dao/AlarmRecordMapper.java @@ -0,0 +1,12 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.AlarmRecord; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AlarmRecordMapper extends BaseMapper { + + + +} diff --git a/src/main/java/com/casic/dao/DataH2sMapper.java b/src/main/java/com/casic/dao/DataH2sMapper.java new file mode 100644 index 0000000..434f1e2 --- /dev/null +++ b/src/main/java/com/casic/dao/DataH2sMapper.java @@ -0,0 +1,27 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.DataH2s; +import com.casic.model.DataPressure; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; + +@Mapper +public interface DataH2sMapper extends BaseMapper { + + int clearOnline(@Param("devcode") String devcode); + + String getWellCode(@Param("devcode") String devcode); + + Float getRuleValue(@Param("deviceType") String deviceType); + + int cancelAlarm(@Param("devcode") String devcode, @Param("status") String status); + + String getImeiByDevcode(@Param("devcode") String devcode); + + int updateImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); + + int addImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); +} diff --git a/src/main/java/com/casic/dao/DataPressureMapper.java b/src/main/java/com/casic/dao/DataPressureMapper.java deleted file mode 100644 index 05f4329..0000000 --- a/src/main/java/com/casic/dao/DataPressureMapper.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.DataPressure; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.Date; - -@Mapper -public interface DataPressureMapper extends BaseMapper { - - String getWellCode(@Param("devcode") String devcode); - - Float getRuleValue(@Param("deviceType") String deviceType); - - void saveRecords(@Param("reValue") String reValue, @Param("alarmTime") Date alarmTime); - -} diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java index d9e18a0..e62d526 100644 --- a/src/main/java/com/casic/dao/DeviceDataMapper.java +++ b/src/main/java/com/casic/dao/DeviceDataMapper.java @@ -23,5 +23,14 @@ @Param("pageSize") Integer pageSize, @Param("devcode") String devcode); - String getLevelByType(@Param("deviceType")String deviceType); + String getLevelByType(@Param("deviceType") String deviceType); + + + List getDevcodeByType(@Param("devciceType") Integer devciceType); + + List getRecentData(@Param("devciceType") Integer dataDay); + + List updateOnlineByDevs(@Param("dataSortDevcodeList") List dataSortDevcodeList); + + } diff --git a/src/main/java/com/casic/enums/DeviceTypeEnum.java b/src/main/java/com/casic/enums/DeviceTypeEnum.java new file mode 100644 index 0000000..8d5a6e6 --- /dev/null +++ b/src/main/java/com/casic/enums/DeviceTypeEnum.java @@ -0,0 +1,64 @@ +package com.casic.enums; + + +public enum DeviceTypeEnum { + Well("井盖状态监测仪", 1), + Liquid("液位监测仪", 2), + WasteGas("有害气体监测仪", 3), + Methane("燃气智能监测终端", 4), + TempHumi("温湿度监测仪", 5), + Dig("开挖监测仪", 6), + WellLocator("井盖定位监测仪", 7), + Noise("噪声记录仪", 8), + TempPressure("温度压力监测仪", 9), + FireHydrant("消防栓防盗水监测仪", 11), + Tube("管盯", 12), + LG("井盖液位一体机", 13), + H2s("硫化氢检测终端", 14); + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private DeviceTypeEnum(String name, int index) { + this.name = name; + this.index = index; + } + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } + + public static DeviceTypeEnum getByIndex(String index) { + try { + for (DeviceTypeEnum deviceTypeEnum : values()) { + if (deviceTypeEnum.index == Integer.parseInt(index)) { + return deviceTypeEnum; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } +} \ No newline at end of file diff --git a/src/main/java/com/casic/enums/H2sParamsEnum.java b/src/main/java/com/casic/enums/H2sParamsEnum.java new file mode 100644 index 0000000..74eec50 --- /dev/null +++ b/src/main/java/com/casic/enums/H2sParamsEnum.java @@ -0,0 +1,35 @@ +package com.casic.enums; + +public interface H2sParamsEnum { + + /** + * 下发配置参数 + */ + String IP = "ip"; + String PORT = "port"; + String CTNET = "ctnet"; + String PERIOD = "period"; + String CYCLE = "cycle"; + /** + * 三码上报 + */ + String ICCID = "iccid"; + String IMEI = "imei"; + String DEVCODE = "devcode"; + /** + * 上传时间 + */ + String TS = "ts"; + /** + * 数据上报(电量、硫化氢数据值、设备编号) + * 数据值 + */ + String H2S_VALUE = "h2sValue"; + /** + * 电量 + */ + String BATTERY_VALUE = "batteryValue"; + + + +} diff --git a/src/main/java/com/casic/model/AlarmRecord.java b/src/main/java/com/casic/model/AlarmRecord.java new file mode 100644 index 0000000..600fe5a --- /dev/null +++ b/src/main/java/com/casic/model/AlarmRecord.java @@ -0,0 +1,81 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; + +import java.util.Date; + +@Builder +@TableName("alarm_records") +public class AlarmRecord { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 设备ID + */ + @TableField("DEVICE_ID") + private Long deviceId; + /** + * 设备编号 + */ + @TableField("DEVCODE") + private String devcode; + /** + * 闸井编号 + */ + @TableField("WELL_CODE") + private String wellCode; + /** + * 告警类型 + */ + @TableField("ALARM_TYPE") + private String alarmType; + /** + * 告警内容 + */ + @TableField("ALARM_CONTENT") + private String alarmContent; + /** + * 告警数值 + */ + @TableField("ALARM_VALUE") + private String alarmValue; + /** + * 告警等级 + */ + @TableField("ALARM_LEVEL") + private Integer alarmLevel; + /** + * 告警详情 + */ + @TableField("ALARM_MSG") + private String alarmMessage; + /** + * 告警时间 + */ + @TableField("ALARM_TIME") + private Date alarmTime; + /** + * 告警状态 + */ + @TableField("STATUS") + private String status; + /** + * 工单编号 + */ + @TableField("JOB_ID") + private Long jobId; + + @TableField(exist = false) + private Integer jobStatus; + +} diff --git a/src/main/java/com/casic/model/DataH2s.java b/src/main/java/com/casic/model/DataH2s.java new file mode 100644 index 0000000..16ecc7a --- /dev/null +++ b/src/main/java/com/casic/model/DataH2s.java @@ -0,0 +1,37 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + */ +@Data +@TableName("data_h2s") +public class DataH2s { + + private Long id; + + private String devcode; + + private String wellCode; + + private String cell; + + private String strength; + + private String uptime; + + private String logtime; + + private String descn; + + private String rsrp; + + private String pci; + + private String snr; + +} diff --git a/src/main/java/com/casic/model/DeviceTypeEnum.java b/src/main/java/com/casic/model/DeviceTypeEnum.java deleted file mode 100644 index 26c685f..0000000 --- a/src/main/java/com/casic/model/DeviceTypeEnum.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.casic.model; - - -public enum DeviceTypeEnum { - Well("井盖状态监测仪", 1), - Liquid("液位监测仪", 2), - WasteGas("有害气体监测仪", 3), - Methane("燃气智能监测终端", 4), - TempHumi("温湿度监测仪", 5), - Dig("开挖监测仪", 6), - WellLocator("井盖定位监测仪", 7), - Noise("噪声记录仪", 8), - TempPressure("温度压力监测仪", 9), - FireHydrant("消防栓防盗水监测仪", 11), - Tube("管盯", 12), - LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); - - // 成员变量 - private String name; - private int index; - - // 构造方法 - private DeviceTypeEnum(String name, int index) { - this.name = name; - this.index = index; - } - - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public int getIndex() { - return index; - } - - public void setIndex(int index) { - this.index = index; - } - - public static DeviceTypeEnum getByIndex(String index) { - try { - for (DeviceTypeEnum deviceTypeEnum : values()) { - if (deviceTypeEnum.index == Integer.parseInt(index)) { - return deviceTypeEnum; - } - } - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - //覆盖方法 - @Override - public String toString() { - return this.name; - } -} \ No newline at end of file diff --git a/src/main/java/com/casic/service/AlarmPushService.java b/src/main/java/com/casic/service/AlarmPushService.java deleted file mode 100644 index d180eb2..0000000 --- a/src/main/java/com/casic/service/AlarmPushService.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.service; - -import com.casic.model.AlarmPushConfig; - -public interface AlarmPushService { - - Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig); - - Object getAlarmPush(String scene); - -} - - - diff --git a/src/main/java/com/casic/service/AlarmService.java b/src/main/java/com/casic/service/AlarmService.java deleted file mode 100644 index 4f41038..0000000 --- a/src/main/java/com/casic/service/AlarmService.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.casic.service; - -import com.casic.model.AlarmConfigParam; - -public interface AlarmService { - - Object getAlarmRecord(String deviceType, Integer currentIndex, Integer pageSize, String devcode); - - Object excuteAlramBatchCancel(String deviceType, String devcode); - - Object addAlarmConfig(AlarmConfigParam alarmConfig); - -} diff --git a/src/main/java/com/casic/service/DeviceDataService.java b/src/main/java/com/casic/service/DeviceDataService.java index db656c1..71f8ce9 100644 --- a/src/main/java/com/casic/service/DeviceDataService.java +++ b/src/main/java/com/casic/service/DeviceDataService.java @@ -7,4 +7,6 @@ Object getDeviceListPage(String deviceType, Integer currentIndex, Integer pageSize, String devcode); Object getLevel(String deviceType); + + void checkAndUpdateDeviceOnline(); } diff --git a/src/main/java/com/casic/service/ThirdDataService.java b/src/main/java/com/casic/service/ThirdDataService.java index 795e0b2..31dc516 100644 --- a/src/main/java/com/casic/service/ThirdDataService.java +++ b/src/main/java/com/casic/service/ThirdDataService.java @@ -1,8 +1,11 @@ package com.casic.service; -import com.casic.model.PressureDataParam; +import java.util.Map; public interface ThirdDataService { - Object getDeviceRecentData(PressureDataParam pressureData); + + Object h2sData(Map h2sDataMap); + + } diff --git a/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java b/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java deleted file mode 100644 index d193905..0000000 --- a/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.casic.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.dao.AlarmPushMapper; -import com.casic.model.AlarmPushConfig; -import com.casic.model.ResponseData; -import com.casic.service.AlarmPushService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.dao.DataAccessException; -import org.springframework.stereotype.Service; - -import java.util.List; -import java.util.Optional; - -@Service -@Slf4j -public class AlarmPushServiceImpl extends ServiceImpl implements AlarmPushService { - - @Override - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - ResponseData responseData = new ResponseData(); - try { - QueryWrapper queryWrapper = new QueryWrapper() - .eq("scene", alarmSwitchConfig.getScene()); -// this.baseMapper.delete(deleteWrapper); - this.baseMapper.update(alarmSwitchConfig, queryWrapper); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("报警推送配置新增异常,场景{},异常信息{}", alarmSwitchConfig.getScene(), dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - @Override - public Object getAlarmPush(String scene) { - ResponseData responseData = new ResponseData(); - try { - QueryWrapper queryWrapper = new QueryWrapper() - .eq("scene", scene); - List alarmPushConfigList = this.baseMapper.selectList(queryWrapper); - Optional alarmPushConfigOptional = alarmPushConfigList.stream().findFirst(); - responseData.setData(alarmPushConfigOptional.isPresent() ? alarmPushConfigOptional.get() : new Object()); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("报警推送配置查询异常,场景{},异常信息{}", scene, dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } -} diff --git a/src/main/java/com/casic/service/impl/AlarmServiceImple.java b/src/main/java/com/casic/service/impl/AlarmServiceImple.java deleted file mode 100644 index 8a29af9..0000000 --- a/src/main/java/com/casic/service/impl/AlarmServiceImple.java +++ /dev/null @@ -1,129 +0,0 @@ -package com.casic.service.impl; - -import com.alibaba.druid.util.StringUtils; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.dao.AlarmMapper; -import com.casic.dao.BusConfigMapper; -import com.casic.model.*; -import com.casic.service.AlarmService; -import com.casic.util.DeviceDataTableEnum; -import com.casic.util.RedisCommon; -import lombok.extern.slf4j.Slf4j; -import org.springframework.dao.DataAccessException; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import javax.annotation.Resource; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -@Slf4j -@Service -public class AlarmServiceImple extends ServiceImpl implements AlarmService { - - @Resource - private BusConfigMapper busConfigMapper; - @Resource - private RedisCommon redisCommonUtil; - - @Override - public Object getAlarmRecord(String deviceType, Integer currentIndex, Integer pageSize, String devcode) { - ResponseData responseData = new ResponseData(); - try { - Map page = new HashMap(); - page.put("total", this.baseMapper.getAlarmTotalRecord(deviceType, devcode)); - List> alarmRecordList = this.baseMapper.getAlarmRecord(deviceType, devcode, pageSize * (currentIndex - 1), pageSize); - page.put("rows", alarmRecordList); - responseData.setData(page); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("设备数据查询异常,设备类型{},异常信息{}", deviceType, dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - @Override - @Transactional - public Object excuteAlramBatchCancel(String deviceType, String devcode) { - ResponseData responseData = new ResponseData(); - try { - this.baseMapper.excuteAlramBatchCancel(deviceType, devcode); - this.baseMapper.excuteJobBatchCancel(deviceType, devcode); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("批量消警异常,设备类型{},异常信息{}", deviceType, dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - @Override - @Transactional - public Object addAlarmConfig(AlarmConfigParam alarmConfigParam) { - ResponseData responseData = new ResponseData(); - try { - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - addBusConfig(alarmConfigParam); - addRuleConfig(alarmConfigParam); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("风险配置异常,异常信息{}", dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - private void addRuleConfig(AlarmConfigParam alarmConfigParam) { - Map alarmRuleMap = new HashMap(); - alarmRuleMap.put("DEVICE_TYPE", alarmConfigParam.getDeviceType()); - this.baseMapper.deleteByMap(alarmRuleMap); - AlarmLevel alarmRule = new AlarmLevel(); - DeviceDataTableEnum deviceDataTableEnum = DeviceDataTableEnum.DEVICE_TYPE_TABLE.getTableNameMap() - .get(Integer.valueOf(alarmConfigParam.getDeviceType())); - alarmRule.setName(deviceDataTableEnum.getTypeName()); - alarmRule.setHighValue(Float.valueOf(alarmConfigParam.getThresholdVol())); - alarmRule.setTs(new Date()); - alarmRule.setLevel(1); - alarmRule.setDeviceType(alarmConfigParam.getDeviceType()); - this.baseMapper.insert(alarmRule); - } - - private void addBusConfig(AlarmConfigParam alarmConfigParam) { - String devcode = StringUtils.isEmpty(alarmConfigParam.getDevcode()) ? this.baseMapper.getDeviceDevcode(alarmConfigParam.getDeviceType()) : alarmConfigParam.getDevcode(); - sendBusConfig(alarmConfigParam, devcode); - String devcideId = this.baseMapper.getDeviceByDevcode(alarmConfigParam.getDeviceType(), devcode); - BusConfig busConfig = new BusConfig(); - busConfig.setDeviceId(devcideId); - busConfig.setFramecontent("3," + alarmConfigParam.getCollectInterval() + "," + alarmConfigParam.getCollectInterval() + - "," + alarmConfigParam.getRetryNum() + "," + alarmConfigParam.getIp() + "," + alarmConfigParam.getPort()); - busConfig.setSensorid(""); - busConfig.setStatus("0"); - busConfig.setAttemptscurrent(0); - busConfig.setWritetime(new Date()); - busConfig.setAttemptsmax(3); - busConfigMapper.insert(busConfig); - } - - private void sendBusConfig(AlarmConfigParam alarmConfigParam, String devcode) { - CommConfigDTO commConfigDTO = new CommConfigDTO(); - commConfigDTO.setInterval(StringUtils.isEmpty(alarmConfigParam.getCollectInterval()) ? 300 : Long.valueOf(alarmConfigParam.getCollectInterval())); - commConfigDTO.setRepeat(StringUtils.isEmpty(alarmConfigParam.getRetryNum()) ? 300 : Long.valueOf(alarmConfigParam.getRetryNum())); -// commConfigDTO.setTimes(Long.valueOf(1)); -// commConfigDTO.setIp(alarmConfigParam.getIp()); -// commConfigDTO.setPort(StringUtils.isEmpty(alarmConfigParam.getPort()) ? 8080 : Long.valueOf(alarmConfigParam.getPort())); - commConfigDTO.setPeriod(StringUtils.isEmpty(alarmConfigParam.getUploadCycle()) ? 300 : Long.valueOf(alarmConfigParam.getUploadCycle())); -// commConfigDTO.setThresh(); - commConfigDTO.setThresh(StringUtils.isEmpty(alarmConfigParam.getThresholdVol()) ? 50 : Float.valueOf(alarmConfigParam.getThresholdVol())); - redisCommonUtil.send(commConfigDTO, devcode); - } - - -} diff --git a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java index e35daef..136912f 100644 --- a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java +++ b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java @@ -1,27 +1,36 @@ package com.casic.service.impl; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.casic.dao.DeviceDataMapper; import com.casic.model.ResponseData; import com.casic.service.DeviceDataService; import com.casic.util.DeviceDataFieldTableEnum; import com.casic.util.DeviceDataTableEnum; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collector; +import java.util.stream.Collectors; @Service @Slf4j +@RequiredArgsConstructor public class DeviceDataServiceImpl implements DeviceDataService { - private final DeviceDataMapper deviceDataMapper; + @Value("${casic.device.type}") + private Integer devciceType; - public DeviceDataServiceImpl(DeviceDataMapper deviceDataMapper) { - this.deviceDataMapper = deviceDataMapper; - } + @Value("${casic.device.data-day}") + private Integer dataDay; + + private final DeviceDataMapper deviceDataMapper; @Override public Object getDeviceRecentData(String deviceType, String recentNum, String devcode) { @@ -80,4 +89,26 @@ return responseData; } + @Override + @Transactional + public void checkAndUpdateDeviceOnline() { + //查询硫化氢设备 + List String = deviceDataMapper.getDevcodeByType(devciceType); + //统一查询所有设备的3天内数据的设备编号,然后设备编号转成map,进行 + List dataList = deviceDataMapper.getRecentData(dataDay); + List dataSortDevcodeList = dataList; + if (dataList != null) { + Map devOnlineMap = new HashMap<>(); + for (String devcodeData : dataList) { + devOnlineMap.put(devcodeData, ""); + } + dataSortDevcodeList = dataSortDevcodeList.stream().filter( + e -> !devOnlineMap.containsKey(e)).collect(Collectors.toList()); + } + //统一更新 + if (CollectionUtils.isNotEmpty(dataList)) { + deviceDataMapper.updateOnlineByDevs(dataSortDevcodeList); + } + } + } diff --git a/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java b/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java index 7ac6bc1..9d28170 100644 --- a/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java +++ b/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java @@ -2,158 +2,194 @@ import com.alibaba.druid.util.StringUtils; import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.config.AliYunConfig; -import com.casic.dao.DataPressureMapper; -import com.casic.model.AlarmPushConfig; -import com.casic.model.DataPressure; -import com.casic.model.PressureDataParam; -import com.casic.model.ResponseData; -import com.casic.service.AlarmPushService; -import com.casic.service.MessagePusherService; +import com.casic.dao.AlarmRecordMapper; +import com.casic.dao.DataH2sMapper; +import com.casic.enums.H2sParamsEnum; +import com.casic.model.AlarmRecord; +import com.casic.model.DataH2s; import com.casic.service.ThirdDataService; -import com.casic.util.SendBatchSmsUtil; +import com.casic.util.RedisCommon; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; -import java.io.UnsupportedEncodingException; -import java.net.URLDecoder; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.*; -import java.util.stream.Collectors; @Service @Slf4j -public class ThirdDataServiceImpl extends ServiceImpl implements ThirdDataService { +@RequiredArgsConstructor +public class ThirdDataServiceImpl extends ServiceImpl implements ThirdDataService, H2sParamsEnum { private final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA); - - @Autowired - private AlarmPushService alarmPushService; - - @Autowired - private MessagePusherService messagePusherService; - - @Autowired - private SendBatchSmsUtil sendBatchSmsUtil; - + private final RedisCommon redisCommon; + private final AlarmRecordMapper alarmRecordMapper; @Override - public Object getDeviceRecentData(PressureDataParam pressureDataParam) { - ResponseData responseData = new ResponseData(); + public Object h2sData(Map h2sDataMap) { try { - batchSave(pressureDataParam); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); + if (h2sDataMap.containsKey(ICCID)) { + //开机上报->存储映射管理->查询是否有下发配置-进行回应 + return powerOnReport(h2sDataMap); + } else if (h2sDataMap.containsKey(H2S_VALUE)) { //数据上报 + if (ObjectUtils.isNotEmpty(h2sDataMap.get(DEVCODE))) { + //清除离线-清除报警-报警-存库-查询是否有下发配置-进行回应 + return dataSave(h2sDataMap); + } + } } catch (DataAccessException dae) { - log.error("设备最近数据查询异常,设备类型{},异常信息{}", dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); + log.error("设备上报数据异常,设备传入的json是{},异常信息{}", dae.getMessage()); } - return responseData; + return defaultDeliveryConfig(null); } - private void batchSave(PressureDataParam pressureDataParam) { - String pressureDataJson = pressureDataParam.getRawData(); - log.info("----" + pressureDataJson); - Map pressureDataMap = JSON.parseObject(pressureDataJson, HashMap.class); - Date uptime = null; - try { - uptime = dateFormat.parse(String.valueOf(pressureDataMap.get("times"))); - } catch (Exception e) { - log.error("主题,采集时间解析异常,异常信息{}", e.getMessage()); - } - List> pressureDataList = (List>) pressureDataMap.get("sensorDatas"); - DataPressure dataPressure = initPrssureData(pressureDataList, uptime); - if (dataPressure == null) { - return; - } - checkAlarm(dataPressure); + + private Map defaultDeliveryConfig(Map configDataMap) { + Map map = new HashMap(); + //必带参数,否则会被thingsboard舍弃 + map.put("method", "setParams"); + //判断是否有下发配置必须 + map.put("status", ObjectUtils.isNotEmpty(configDataMap) ? 200 : 201); + map.put("params", configDataMap); + //可省略 + map.put("timeout", "3000"); + return map; } - private DataPressure initPrssureData(List> pressureDataList, Date uptime) { - DataPressure dataPressure = new DataPressure(); - String devcode = pressureDataList.get(pressureDataList.size() - 1).get("str"); - Map pressureDataMap = pressureDataList.stream().collect( - Collectors.toMap(e -> String.valueOf(e.get("flag")), e -> String.valueOf(e.get("value"))) - ); -// if (CacheUtil.serialBuf.get(devcode)!=null&&CacheUtil.serialBuf.get(devcode).equals(pressureDataMap.get("F"))) { -// return null; -// } + /** + * 开机上报->储存,是否有下发配置,选择合适的格式返回 + * + * @param h2sDataMap + */ + private Map powerOnReport(Map h2sDataMap) { + /** + * 三码上报 + */ + String iccid = (String) h2sDataMap.get(ICCID); + String imei = (String) h2sDataMap.get(IMEI); + String devcode = (String) h2sDataMap.get(DEVCODE); + //清除离线 + this.baseMapper.clearOnline(devcode); + //先查,是否有数据,有数据直接覆盖,否则插入数据 + String isImei = this.baseMapper.getImeiByDevcode(devcode); + int save = StringUtils.isEmpty(isImei) ? this.baseMapper.addImeiDevcode(devcode, imei, iccid) : + this.baseMapper.updateImeiDevcode(devcode, imei, iccid); + if (save > 0) { + //保存三码关系 + Map configDataMap = redisCommon.getMsg((String) h2sDataMap.get(DEVCODE)); + if (ObjectUtils.isNotEmpty(configDataMap)) { + return defaultDeliveryConfig(configDataMap); + } + } else { + throw new RuntimeException("三码上传保存异常,异常数据为" + JSON.toJSON(h2sDataMap)); + } + return defaultDeliveryConfig(null); + } + + private Map dataSave(Map h2sDataMap) { + DataH2s dataH2s = initH2sData(h2sDataMap); + this.baseMapper.clearOnline((String) h2sDataMap.get(DEVCODE)); + if (ObjectUtils.isNotEmpty(dataH2s)) { + checkAlarm(dataH2s); + Map configDataMap = redisCommon.getMsg((String) h2sDataMap.get(DEVCODE)); + if (ObjectUtils.isNotEmpty(configDataMap)) { + return defaultDeliveryConfig(configDataMap); + } + } + return defaultDeliveryConfig(null); + } + + private DataH2s initH2sData(Map h2sDataMap) { + DataH2s dataH2s = new DataH2s(); + String devcode = (String) h2sDataMap.get(DEVCODE); String wellCode = this.baseMapper.getWellCode(devcode); - dataPressure.setWellCode(wellCode); - dataPressure.setDevcode(devcode); - dataPressure.setPci(pressureDataMap.get("Q")); - dataPressure.setCell(Float.valueOf(pressureDataMap.get("V"))); - dataPressure.setTemperature(pressureDataMap.get("T")); - dataPressure.setPress(pressureDataMap.get("F")); - dataPressure.setUptime(dateFormat.format(uptime)); - dataPressure.setLogtime(dateFormat.format(new Date())); - this.baseMapper.insert(dataPressure); -// CacheUtil.serialBuf.put(devcode, pressureDataMap.get("F")); - return dataPressure; + dataH2s.setWellCode(wellCode); + dataH2s.setDevcode(devcode); + dataH2s.setStrength((String) h2sDataMap.get(H2S_VALUE)); + dataH2s.setCell((String) h2sDataMap.get(BATTERY_VALUE)); + dataH2s.setUptime(dateFormat.format(new Date())); + dataH2s.setLogtime(dateFormat.format(new Date())); + this.baseMapper.insert(dataH2s); + return dataH2s; } - private void checkAlarm(DataPressure dataPressure) { + /** + * 检查是否有报警 + * + * @param dataH2s + */ + private void checkAlarm(DataH2s dataH2s) { final Float ruleValue = this.baseMapper.getRuleValue("24"); if (ruleValue == null) { return; } - if (!StringUtils.isEmpty(dataPressure.getPress()) && !dataPressure.getPress().equals("null")) { - if (Float.valueOf(dataPressure.getPress()) > ruleValue) { - this.baseMapper.saveRecords(dataPressure.getPress(), new Date()); - alarmPushBuilder(dataPressure.getDevcode(), dataPressure.getPress()); + if (!StringUtils.isEmpty(dataH2s.getStrength()) && !"null".equals(dataH2s.getStrength())) { + String status = "3"; + if (Float.valueOf(dataH2s.getStrength()) > ruleValue) { + //因新的报警消警 “0” + status = "0"; + alarmRecordMapper.insert(buildAlarmRecord(dataH2s)); } + this.baseMapper.cancelAlarm(dataH2s.getDevcode(), status); } } + private AlarmRecord buildAlarmRecord(DataH2s dataH2s) { + AlarmRecord alarmRecord = AlarmRecord.builder() + .devcode(dataH2s.getDevcode()) + .wellCode(dataH2s.getWellCode()) + .alarmType(dataH2s.getStrength()) + .alarmMessage("浓度超限") + .deviceId(dataH2s.getId()) + .alarmType("1") + .alarmContent("浓度超限") + .status("1") + .build(); + return alarmRecord; + } + // "在2023年1月12号 16时43分23秒,设备41232561发生了压力超标/浓度超限,数值为20" // + "设备" + devcode + "发生了压力超标,压力值为" + presss - // - @Autowired - private AliYunConfig aliYunConfig; - private void alarmPushBuilder(String devcode, String presss) { - ResponseData responseData = (ResponseData) alarmPushService.getAlarmPush("H2S"); - AlarmPushConfig alarmPushConfig = (AlarmPushConfig) responseData.getData(); - if (alarmPushConfig.getEnable().equals(1)) { - if (alarmPushConfig.getWebsocketAlarm().equals(1)) { - String msg = "在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "," - + "设备" + devcode + "发生了压力超标,压力值为" + presss; - try { - messagePusherService.updateSinkJob("", URLDecoder.decode(msg, "UTF-8")); - } catch (UnsupportedEncodingException uee) { - log.error("websocket推送,内容转码出现异常,异常信息为{}", uee.getMessage()); - } - } - if (alarmPushConfig.getShortMessageAlarm().equals(1)) { - JSONArray msglist = new JSONArray(); - JSONObject msgMap = new JSONObject(); - msgMap.put("time", new SimpleDateFormat("yyyyMMdd HH:mm:ss").format(new Date())); - msgMap.put("devcode", devcode); - msgMap.put("value", presss); - msgMap.put("content", "压力超标"); - String phoneJson = ""; - List aliSignNameList = new ArrayList<>(); - String aliSignName = aliYunConfig.getSignNameJson(); - if (!org.apache.commons.lang3.StringUtils.isEmpty(alarmPushConfig.getPhoneArray())) { - String[] phones = alarmPushConfig.getPhoneArray().split(","); - List phoneList = new ArrayList<>(); - for (String phone : phones) { - msglist.add(msgMap); - phoneList.add(phone); - aliSignNameList.add(aliSignName); - } - phoneJson = JSONObject.toJSONString(phoneList); - } - sendBatchSmsUtil.sendMsg(phoneJson, JSON.toJSONString(msgMap),JSONObject.toJSONString(aliSignNameList)); - } - } +// ResponseData responseData = (ResponseData) alarmPushService.getAlarmPush("H2S"); +// AlarmPushConfig alarmPushConfig = (AlarmPushConfig) responseData.getData(); +// if (alarmPushConfig.getEnable().equals(1)) { +// if (alarmPushConfig.getWebsocketAlarm().equals(1)) { +// String msg = "在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "," +// + "设备" + devcode + "发生了压力超标,压力值为" + presss; +// try { +// messagePusherService.updateSinkJob("", URLDecoder.decode(msg, "UTF-8")); +// } catch (UnsupportedEncodingException uee) { +// log.error("websocket推送,内容转码出现异常,异常信息为{}", uee.getMessage()); +// } +// } +// if (alarmPushConfig.getShortMessageAlarm().equals(1)) { +// JSONArray msglist = new JSONArray(); +// JSONObject msgMap = new JSONObject(); +// msgMap.put("time", new SimpleDateFormat("yyyyMMdd HH:mm:ss").format(new Date())); +// msgMap.put("devcode", devcode); +// msgMap.put("value", presss); +// msgMap.put("content", "压力超标"); +// String phoneJson = ""; +// List aliSignNameList = new ArrayList<>(); +// String aliSignName = aliYunConfig.getSignNameJson(); +// if (!org.apache.commons.lang3.StringUtils.isEmpty(alarmPushConfig.getPhoneArray())) { +// String[] phones = alarmPushConfig.getPhoneArray().split(","); +// List phoneList = new ArrayList<>(); +// for (String phone : phones) { +// msglist.add(msgMap); +// phoneList.add(phone); +// aliSignNameList.add(aliSignName); +// } +// phoneJson = JSONObject.toJSONString(phoneList); +// } +// sendBatchSmsUtil.sendMsg(phoneJson, JSON.toJSONString(msgMap), JSONObject.toJSONString(aliSignNameList)); +// } +// } } diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/casic/config/AliYunConfig.java b/src/main/java/com/casic/config/AliYunConfig.java deleted file mode 100644 index 090b6ab..0000000 --- a/src/main/java/com/casic/config/AliYunConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Slf4j -@Configuration -@ConfigurationProperties(prefix = "casic.ali") -@Data -public class AliYunConfig { - - private String key; - private String screct; - private String url; - private String signNameJson; - private String templateCode; - -} diff --git a/src/main/java/com/casic/config/ApiHikomConfig.java b/src/main/java/com/casic/config/ApiHikomConfig.java deleted file mode 100644 index 73b3550..0000000 --- a/src/main/java/com/casic/config/ApiHikomConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -@Data -public class ApiHikomConfig { - @Value("${casic.hikom.host}") - private String hikomHost; - @Value("${casic.hikom.url}") - private String hikomUrl; -} diff --git a/src/main/java/com/casic/config/task/TaskConfigurer.java b/src/main/java/com/casic/config/task/TaskConfigurer.java new file mode 100644 index 0000000..43282d3 --- /dev/null +++ b/src/main/java/com/casic/config/task/TaskConfigurer.java @@ -0,0 +1,44 @@ +package com.casic.config.task; + +import com.casic.service.DeviceDataService; +import com.casic.service.ThirdDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.config.TriggerTask; +import org.springframework.scheduling.support.CronTrigger; + +/** + * @author cz + */ +@Configuration +@EnableScheduling +public class TaskConfigurer implements SchedulingConfigurer { + + @Value("${casic.device.online.corn}") + private String timeConfig; + @Autowired + private DeviceDataService deviceDataService; + + @Override + public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + TriggerTask triggrtTask = new TriggerTask(nextDayDevice(), + triggerContext -> { + return new CronTrigger(timeConfig).nextExecutionTime(triggerContext); + }); + taskRegistrar.addTriggerTask(triggrtTask); + } + + private Runnable nextDayDevice() { + return new Runnable() { + @Override + public void run() { + deviceDataService.checkAndUpdateDeviceOnline(); + } + }; + } + +} \ No newline at end of file diff --git a/src/main/java/com/casic/controller/AlarmController.java b/src/main/java/com/casic/controller/AlarmController.java deleted file mode 100644 index 957fc36..0000000 --- a/src/main/java/com/casic/controller/AlarmController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmConfigParam; -import com.casic.service.AlarmService; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/alarm") -public class AlarmController { - - private final AlarmService alarmService; - - public AlarmController(AlarmService alarmService) { - this.alarmService = alarmService; - } - - @RequestMapping("/records") - public Object getAlarmRecord(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "currentIndex", required = true) Integer currentIndex, - @RequestParam(value = "devcode",required =false) String devcode, - @RequestParam(value = "pageSize", required = true) Integer pageSize) { - return alarmService.getAlarmRecord(deviceType,currentIndex,pageSize,devcode); - } - - @RequestMapping("/batch/cancel") - public Object excuteAlramBatchCancel(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "devcode",required =false) String devcode) { - return alarmService.excuteAlramBatchCancel(deviceType,devcode); - } - - @RequestMapping("/config/add") - public Object addAlarmConfig(@RequestBody AlarmConfigParam alarmConfigParam) { - return alarmService.addAlarmConfig(alarmConfigParam); - } -} diff --git a/src/main/java/com/casic/controller/AlarmPushController.java b/src/main/java/com/casic/controller/AlarmPushController.java deleted file mode 100644 index 1642f9b..0000000 --- a/src/main/java/com/casic/controller/AlarmPushController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmPushConfig; -import com.casic.service.AlarmPushService; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.*; - -@RestController -@AllArgsConstructor -@RequestMapping("/alarm") -public class AlarmPushController { - - private AlarmPushService alarmPushService; - - @RequestMapping("/push/config") - @ResponseBody - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - return alarmPushService.alarmPushConfig(alarmSwitchConfig); - } - - @RequestMapping("/push/query") - public Object alarmPushQuery(@RequestParam(value = "scene", required = true) String scene) { - return alarmPushService.getAlarmPush(scene); - } - -} diff --git a/src/main/java/com/casic/controller/ArtemisValidController.java b/src/main/java/com/casic/controller/ArtemisValidController.java deleted file mode 100644 index 1d52576..0000000 --- a/src/main/java/com/casic/controller/ArtemisValidController.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.controller; - -import com.casic.model.HkvideoValidParam; -import com.casic.model.ResponseData; -import com.casic.util.ArtemisPostUtil; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 海康接口 - */ -@AllArgsConstructor -@RestController -public class ArtemisValidController { - private final ArtemisPostUtil artemisPostUtill; - - @RequestMapping("/hkvideo/getVideoUrl") - public ResponseData getVideoUrl(@RequestBody HkvideoValidParam hkvideoValidParam) { - - return artemisPostUtill.artemisPost(hkvideoValidParam); - } - -} diff --git a/src/main/java/com/casic/controller/MessagePusherController.java b/src/main/java/com/casic/controller/MessagePusherController.java index d447c05..b97dcd1 100644 --- a/src/main/java/com/casic/controller/MessagePusherController.java +++ b/src/main/java/com/casic/controller/MessagePusherController.java @@ -32,8 +32,7 @@ } catch (UnsupportedEncodingException e) { e.printStackTrace(); } - return retMap; - } + return retMap; } //报警开关按钮 // diff --git a/src/main/java/com/casic/controller/ThirdDataController.java b/src/main/java/com/casic/controller/ThirdDataController.java index d910a7d..fbd8e59 100644 --- a/src/main/java/com/casic/controller/ThirdDataController.java +++ b/src/main/java/com/casic/controller/ThirdDataController.java @@ -1,8 +1,6 @@ package com.casic.controller; import com.alibaba.fastjson.JSON; -import com.casic.model.CommConfigDTO; -import com.casic.model.PressureDataParam; import com.casic.model.ResponseData; import com.casic.service.ThirdDataService; import lombok.extern.slf4j.Slf4j; @@ -10,7 +8,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.HashMap; import java.util.Map; @RestController @@ -24,22 +21,25 @@ this.thirdDataService = thirdDataService; } - @RequestMapping("/pressure/data") - public Object getDeviceRecentData(@RequestBody PressureDataParam pressureData) { - return thirdDataService.getDeviceRecentData(pressureData); + /** + * 硫化氢订阅接口 + * + * @param h2sDataMap + * @return + */ + @RequestMapping("/h2s-data") + public Object h2sData(@RequestBody Map h2sDataMap) { + System.out.println(JSON.toJSON(h2sDataMap)); + return thirdDataService.h2sData(h2sDataMap); } - @RequestMapping("/data") - public Object getDeviceData(@RequestBody Map pressureDataMap) { - System.out.println(JSON.toJSON(pressureDataMap)); - Map map = new HashMap(); - map.put("method", "setParams"); - Map param = new HashMap(); - param.put("ip", "大胆猜测下"); - map.put("status", 200); - map.put("params", param); - map.put("timeout", "3000"); - return map; + @RequestMapping("/test") + public Object testNbResponse (@RequestBody Map h2sDataMap){ + ResponseData responseData=new ResponseData(); + responseData.setCode(200); + responseData.setData("oyAAGDcgFAEAAcMAAQWfAXOJd1POnas6zxTmU7jQkVJinQ=="); + System.out.println(JSON.toJSON(h2sDataMap)); + return responseData; } } diff --git a/src/main/java/com/casic/dao/AlarmPushMapper.java b/src/main/java/com/casic/dao/AlarmPushMapper.java deleted file mode 100644 index 9d7484b..0000000 --- a/src/main/java/com/casic/dao/AlarmPushMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.AlarmPushConfig; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface AlarmPushMapper extends BaseMapper { -} diff --git a/src/main/java/com/casic/dao/AlarmRecordMapper.java b/src/main/java/com/casic/dao/AlarmRecordMapper.java new file mode 100644 index 0000000..d8a4911 --- /dev/null +++ b/src/main/java/com/casic/dao/AlarmRecordMapper.java @@ -0,0 +1,12 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.AlarmRecord; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AlarmRecordMapper extends BaseMapper { + + + +} diff --git a/src/main/java/com/casic/dao/DataH2sMapper.java b/src/main/java/com/casic/dao/DataH2sMapper.java new file mode 100644 index 0000000..434f1e2 --- /dev/null +++ b/src/main/java/com/casic/dao/DataH2sMapper.java @@ -0,0 +1,27 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.DataH2s; +import com.casic.model.DataPressure; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; + +@Mapper +public interface DataH2sMapper extends BaseMapper { + + int clearOnline(@Param("devcode") String devcode); + + String getWellCode(@Param("devcode") String devcode); + + Float getRuleValue(@Param("deviceType") String deviceType); + + int cancelAlarm(@Param("devcode") String devcode, @Param("status") String status); + + String getImeiByDevcode(@Param("devcode") String devcode); + + int updateImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); + + int addImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); +} diff --git a/src/main/java/com/casic/dao/DataPressureMapper.java b/src/main/java/com/casic/dao/DataPressureMapper.java deleted file mode 100644 index 05f4329..0000000 --- a/src/main/java/com/casic/dao/DataPressureMapper.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.DataPressure; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.Date; - -@Mapper -public interface DataPressureMapper extends BaseMapper { - - String getWellCode(@Param("devcode") String devcode); - - Float getRuleValue(@Param("deviceType") String deviceType); - - void saveRecords(@Param("reValue") String reValue, @Param("alarmTime") Date alarmTime); - -} diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java index d9e18a0..e62d526 100644 --- a/src/main/java/com/casic/dao/DeviceDataMapper.java +++ b/src/main/java/com/casic/dao/DeviceDataMapper.java @@ -23,5 +23,14 @@ @Param("pageSize") Integer pageSize, @Param("devcode") String devcode); - String getLevelByType(@Param("deviceType")String deviceType); + String getLevelByType(@Param("deviceType") String deviceType); + + + List getDevcodeByType(@Param("devciceType") Integer devciceType); + + List getRecentData(@Param("devciceType") Integer dataDay); + + List updateOnlineByDevs(@Param("dataSortDevcodeList") List dataSortDevcodeList); + + } diff --git a/src/main/java/com/casic/enums/DeviceTypeEnum.java b/src/main/java/com/casic/enums/DeviceTypeEnum.java new file mode 100644 index 0000000..8d5a6e6 --- /dev/null +++ b/src/main/java/com/casic/enums/DeviceTypeEnum.java @@ -0,0 +1,64 @@ +package com.casic.enums; + + +public enum DeviceTypeEnum { + Well("井盖状态监测仪", 1), + Liquid("液位监测仪", 2), + WasteGas("有害气体监测仪", 3), + Methane("燃气智能监测终端", 4), + TempHumi("温湿度监测仪", 5), + Dig("开挖监测仪", 6), + WellLocator("井盖定位监测仪", 7), + Noise("噪声记录仪", 8), + TempPressure("温度压力监测仪", 9), + FireHydrant("消防栓防盗水监测仪", 11), + Tube("管盯", 12), + LG("井盖液位一体机", 13), + H2s("硫化氢检测终端", 14); + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private DeviceTypeEnum(String name, int index) { + this.name = name; + this.index = index; + } + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } + + public static DeviceTypeEnum getByIndex(String index) { + try { + for (DeviceTypeEnum deviceTypeEnum : values()) { + if (deviceTypeEnum.index == Integer.parseInt(index)) { + return deviceTypeEnum; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } +} \ No newline at end of file diff --git a/src/main/java/com/casic/enums/H2sParamsEnum.java b/src/main/java/com/casic/enums/H2sParamsEnum.java new file mode 100644 index 0000000..74eec50 --- /dev/null +++ b/src/main/java/com/casic/enums/H2sParamsEnum.java @@ -0,0 +1,35 @@ +package com.casic.enums; + +public interface H2sParamsEnum { + + /** + * 下发配置参数 + */ + String IP = "ip"; + String PORT = "port"; + String CTNET = "ctnet"; + String PERIOD = "period"; + String CYCLE = "cycle"; + /** + * 三码上报 + */ + String ICCID = "iccid"; + String IMEI = "imei"; + String DEVCODE = "devcode"; + /** + * 上传时间 + */ + String TS = "ts"; + /** + * 数据上报(电量、硫化氢数据值、设备编号) + * 数据值 + */ + String H2S_VALUE = "h2sValue"; + /** + * 电量 + */ + String BATTERY_VALUE = "batteryValue"; + + + +} diff --git a/src/main/java/com/casic/model/AlarmRecord.java b/src/main/java/com/casic/model/AlarmRecord.java new file mode 100644 index 0000000..600fe5a --- /dev/null +++ b/src/main/java/com/casic/model/AlarmRecord.java @@ -0,0 +1,81 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; + +import java.util.Date; + +@Builder +@TableName("alarm_records") +public class AlarmRecord { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 设备ID + */ + @TableField("DEVICE_ID") + private Long deviceId; + /** + * 设备编号 + */ + @TableField("DEVCODE") + private String devcode; + /** + * 闸井编号 + */ + @TableField("WELL_CODE") + private String wellCode; + /** + * 告警类型 + */ + @TableField("ALARM_TYPE") + private String alarmType; + /** + * 告警内容 + */ + @TableField("ALARM_CONTENT") + private String alarmContent; + /** + * 告警数值 + */ + @TableField("ALARM_VALUE") + private String alarmValue; + /** + * 告警等级 + */ + @TableField("ALARM_LEVEL") + private Integer alarmLevel; + /** + * 告警详情 + */ + @TableField("ALARM_MSG") + private String alarmMessage; + /** + * 告警时间 + */ + @TableField("ALARM_TIME") + private Date alarmTime; + /** + * 告警状态 + */ + @TableField("STATUS") + private String status; + /** + * 工单编号 + */ + @TableField("JOB_ID") + private Long jobId; + + @TableField(exist = false) + private Integer jobStatus; + +} diff --git a/src/main/java/com/casic/model/DataH2s.java b/src/main/java/com/casic/model/DataH2s.java new file mode 100644 index 0000000..16ecc7a --- /dev/null +++ b/src/main/java/com/casic/model/DataH2s.java @@ -0,0 +1,37 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + */ +@Data +@TableName("data_h2s") +public class DataH2s { + + private Long id; + + private String devcode; + + private String wellCode; + + private String cell; + + private String strength; + + private String uptime; + + private String logtime; + + private String descn; + + private String rsrp; + + private String pci; + + private String snr; + +} diff --git a/src/main/java/com/casic/model/DeviceTypeEnum.java b/src/main/java/com/casic/model/DeviceTypeEnum.java deleted file mode 100644 index 26c685f..0000000 --- a/src/main/java/com/casic/model/DeviceTypeEnum.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.casic.model; - - -public enum DeviceTypeEnum { - Well("井盖状态监测仪", 1), - Liquid("液位监测仪", 2), - WasteGas("有害气体监测仪", 3), - Methane("燃气智能监测终端", 4), - TempHumi("温湿度监测仪", 5), - Dig("开挖监测仪", 6), - WellLocator("井盖定位监测仪", 7), - Noise("噪声记录仪", 8), - TempPressure("温度压力监测仪", 9), - FireHydrant("消防栓防盗水监测仪", 11), - Tube("管盯", 12), - LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); - - // 成员变量 - private String name; - private int index; - - // 构造方法 - private DeviceTypeEnum(String name, int index) { - this.name = name; - this.index = index; - } - - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public int getIndex() { - return index; - } - - public void setIndex(int index) { - this.index = index; - } - - public static DeviceTypeEnum getByIndex(String index) { - try { - for (DeviceTypeEnum deviceTypeEnum : values()) { - if (deviceTypeEnum.index == Integer.parseInt(index)) { - return deviceTypeEnum; - } - } - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - //覆盖方法 - @Override - public String toString() { - return this.name; - } -} \ No newline at end of file diff --git a/src/main/java/com/casic/service/AlarmPushService.java b/src/main/java/com/casic/service/AlarmPushService.java deleted file mode 100644 index d180eb2..0000000 --- a/src/main/java/com/casic/service/AlarmPushService.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.service; - -import com.casic.model.AlarmPushConfig; - -public interface AlarmPushService { - - Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig); - - Object getAlarmPush(String scene); - -} - - - diff --git a/src/main/java/com/casic/service/AlarmService.java b/src/main/java/com/casic/service/AlarmService.java deleted file mode 100644 index 4f41038..0000000 --- a/src/main/java/com/casic/service/AlarmService.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.casic.service; - -import com.casic.model.AlarmConfigParam; - -public interface AlarmService { - - Object getAlarmRecord(String deviceType, Integer currentIndex, Integer pageSize, String devcode); - - Object excuteAlramBatchCancel(String deviceType, String devcode); - - Object addAlarmConfig(AlarmConfigParam alarmConfig); - -} diff --git a/src/main/java/com/casic/service/DeviceDataService.java b/src/main/java/com/casic/service/DeviceDataService.java index db656c1..71f8ce9 100644 --- a/src/main/java/com/casic/service/DeviceDataService.java +++ b/src/main/java/com/casic/service/DeviceDataService.java @@ -7,4 +7,6 @@ Object getDeviceListPage(String deviceType, Integer currentIndex, Integer pageSize, String devcode); Object getLevel(String deviceType); + + void checkAndUpdateDeviceOnline(); } diff --git a/src/main/java/com/casic/service/ThirdDataService.java b/src/main/java/com/casic/service/ThirdDataService.java index 795e0b2..31dc516 100644 --- a/src/main/java/com/casic/service/ThirdDataService.java +++ b/src/main/java/com/casic/service/ThirdDataService.java @@ -1,8 +1,11 @@ package com.casic.service; -import com.casic.model.PressureDataParam; +import java.util.Map; public interface ThirdDataService { - Object getDeviceRecentData(PressureDataParam pressureData); + + Object h2sData(Map h2sDataMap); + + } diff --git a/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java b/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java deleted file mode 100644 index d193905..0000000 --- a/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.casic.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.dao.AlarmPushMapper; -import com.casic.model.AlarmPushConfig; -import com.casic.model.ResponseData; -import com.casic.service.AlarmPushService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.dao.DataAccessException; -import org.springframework.stereotype.Service; - -import java.util.List; -import java.util.Optional; - -@Service -@Slf4j -public class AlarmPushServiceImpl extends ServiceImpl implements AlarmPushService { - - @Override - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - ResponseData responseData = new ResponseData(); - try { - QueryWrapper queryWrapper = new QueryWrapper() - .eq("scene", alarmSwitchConfig.getScene()); -// this.baseMapper.delete(deleteWrapper); - this.baseMapper.update(alarmSwitchConfig, queryWrapper); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("报警推送配置新增异常,场景{},异常信息{}", alarmSwitchConfig.getScene(), dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - @Override - public Object getAlarmPush(String scene) { - ResponseData responseData = new ResponseData(); - try { - QueryWrapper queryWrapper = new QueryWrapper() - .eq("scene", scene); - List alarmPushConfigList = this.baseMapper.selectList(queryWrapper); - Optional alarmPushConfigOptional = alarmPushConfigList.stream().findFirst(); - responseData.setData(alarmPushConfigOptional.isPresent() ? alarmPushConfigOptional.get() : new Object()); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("报警推送配置查询异常,场景{},异常信息{}", scene, dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } -} diff --git a/src/main/java/com/casic/service/impl/AlarmServiceImple.java b/src/main/java/com/casic/service/impl/AlarmServiceImple.java deleted file mode 100644 index 8a29af9..0000000 --- a/src/main/java/com/casic/service/impl/AlarmServiceImple.java +++ /dev/null @@ -1,129 +0,0 @@ -package com.casic.service.impl; - -import com.alibaba.druid.util.StringUtils; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.dao.AlarmMapper; -import com.casic.dao.BusConfigMapper; -import com.casic.model.*; -import com.casic.service.AlarmService; -import com.casic.util.DeviceDataTableEnum; -import com.casic.util.RedisCommon; -import lombok.extern.slf4j.Slf4j; -import org.springframework.dao.DataAccessException; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import javax.annotation.Resource; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -@Slf4j -@Service -public class AlarmServiceImple extends ServiceImpl implements AlarmService { - - @Resource - private BusConfigMapper busConfigMapper; - @Resource - private RedisCommon redisCommonUtil; - - @Override - public Object getAlarmRecord(String deviceType, Integer currentIndex, Integer pageSize, String devcode) { - ResponseData responseData = new ResponseData(); - try { - Map page = new HashMap(); - page.put("total", this.baseMapper.getAlarmTotalRecord(deviceType, devcode)); - List> alarmRecordList = this.baseMapper.getAlarmRecord(deviceType, devcode, pageSize * (currentIndex - 1), pageSize); - page.put("rows", alarmRecordList); - responseData.setData(page); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("设备数据查询异常,设备类型{},异常信息{}", deviceType, dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - @Override - @Transactional - public Object excuteAlramBatchCancel(String deviceType, String devcode) { - ResponseData responseData = new ResponseData(); - try { - this.baseMapper.excuteAlramBatchCancel(deviceType, devcode); - this.baseMapper.excuteJobBatchCancel(deviceType, devcode); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("批量消警异常,设备类型{},异常信息{}", deviceType, dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - @Override - @Transactional - public Object addAlarmConfig(AlarmConfigParam alarmConfigParam) { - ResponseData responseData = new ResponseData(); - try { - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - addBusConfig(alarmConfigParam); - addRuleConfig(alarmConfigParam); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("风险配置异常,异常信息{}", dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - private void addRuleConfig(AlarmConfigParam alarmConfigParam) { - Map alarmRuleMap = new HashMap(); - alarmRuleMap.put("DEVICE_TYPE", alarmConfigParam.getDeviceType()); - this.baseMapper.deleteByMap(alarmRuleMap); - AlarmLevel alarmRule = new AlarmLevel(); - DeviceDataTableEnum deviceDataTableEnum = DeviceDataTableEnum.DEVICE_TYPE_TABLE.getTableNameMap() - .get(Integer.valueOf(alarmConfigParam.getDeviceType())); - alarmRule.setName(deviceDataTableEnum.getTypeName()); - alarmRule.setHighValue(Float.valueOf(alarmConfigParam.getThresholdVol())); - alarmRule.setTs(new Date()); - alarmRule.setLevel(1); - alarmRule.setDeviceType(alarmConfigParam.getDeviceType()); - this.baseMapper.insert(alarmRule); - } - - private void addBusConfig(AlarmConfigParam alarmConfigParam) { - String devcode = StringUtils.isEmpty(alarmConfigParam.getDevcode()) ? this.baseMapper.getDeviceDevcode(alarmConfigParam.getDeviceType()) : alarmConfigParam.getDevcode(); - sendBusConfig(alarmConfigParam, devcode); - String devcideId = this.baseMapper.getDeviceByDevcode(alarmConfigParam.getDeviceType(), devcode); - BusConfig busConfig = new BusConfig(); - busConfig.setDeviceId(devcideId); - busConfig.setFramecontent("3," + alarmConfigParam.getCollectInterval() + "," + alarmConfigParam.getCollectInterval() + - "," + alarmConfigParam.getRetryNum() + "," + alarmConfigParam.getIp() + "," + alarmConfigParam.getPort()); - busConfig.setSensorid(""); - busConfig.setStatus("0"); - busConfig.setAttemptscurrent(0); - busConfig.setWritetime(new Date()); - busConfig.setAttemptsmax(3); - busConfigMapper.insert(busConfig); - } - - private void sendBusConfig(AlarmConfigParam alarmConfigParam, String devcode) { - CommConfigDTO commConfigDTO = new CommConfigDTO(); - commConfigDTO.setInterval(StringUtils.isEmpty(alarmConfigParam.getCollectInterval()) ? 300 : Long.valueOf(alarmConfigParam.getCollectInterval())); - commConfigDTO.setRepeat(StringUtils.isEmpty(alarmConfigParam.getRetryNum()) ? 300 : Long.valueOf(alarmConfigParam.getRetryNum())); -// commConfigDTO.setTimes(Long.valueOf(1)); -// commConfigDTO.setIp(alarmConfigParam.getIp()); -// commConfigDTO.setPort(StringUtils.isEmpty(alarmConfigParam.getPort()) ? 8080 : Long.valueOf(alarmConfigParam.getPort())); - commConfigDTO.setPeriod(StringUtils.isEmpty(alarmConfigParam.getUploadCycle()) ? 300 : Long.valueOf(alarmConfigParam.getUploadCycle())); -// commConfigDTO.setThresh(); - commConfigDTO.setThresh(StringUtils.isEmpty(alarmConfigParam.getThresholdVol()) ? 50 : Float.valueOf(alarmConfigParam.getThresholdVol())); - redisCommonUtil.send(commConfigDTO, devcode); - } - - -} diff --git a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java index e35daef..136912f 100644 --- a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java +++ b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java @@ -1,27 +1,36 @@ package com.casic.service.impl; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.casic.dao.DeviceDataMapper; import com.casic.model.ResponseData; import com.casic.service.DeviceDataService; import com.casic.util.DeviceDataFieldTableEnum; import com.casic.util.DeviceDataTableEnum; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collector; +import java.util.stream.Collectors; @Service @Slf4j +@RequiredArgsConstructor public class DeviceDataServiceImpl implements DeviceDataService { - private final DeviceDataMapper deviceDataMapper; + @Value("${casic.device.type}") + private Integer devciceType; - public DeviceDataServiceImpl(DeviceDataMapper deviceDataMapper) { - this.deviceDataMapper = deviceDataMapper; - } + @Value("${casic.device.data-day}") + private Integer dataDay; + + private final DeviceDataMapper deviceDataMapper; @Override public Object getDeviceRecentData(String deviceType, String recentNum, String devcode) { @@ -80,4 +89,26 @@ return responseData; } + @Override + @Transactional + public void checkAndUpdateDeviceOnline() { + //查询硫化氢设备 + List String = deviceDataMapper.getDevcodeByType(devciceType); + //统一查询所有设备的3天内数据的设备编号,然后设备编号转成map,进行 + List dataList = deviceDataMapper.getRecentData(dataDay); + List dataSortDevcodeList = dataList; + if (dataList != null) { + Map devOnlineMap = new HashMap<>(); + for (String devcodeData : dataList) { + devOnlineMap.put(devcodeData, ""); + } + dataSortDevcodeList = dataSortDevcodeList.stream().filter( + e -> !devOnlineMap.containsKey(e)).collect(Collectors.toList()); + } + //统一更新 + if (CollectionUtils.isNotEmpty(dataList)) { + deviceDataMapper.updateOnlineByDevs(dataSortDevcodeList); + } + } + } diff --git a/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java b/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java index 7ac6bc1..9d28170 100644 --- a/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java +++ b/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java @@ -2,158 +2,194 @@ import com.alibaba.druid.util.StringUtils; import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.config.AliYunConfig; -import com.casic.dao.DataPressureMapper; -import com.casic.model.AlarmPushConfig; -import com.casic.model.DataPressure; -import com.casic.model.PressureDataParam; -import com.casic.model.ResponseData; -import com.casic.service.AlarmPushService; -import com.casic.service.MessagePusherService; +import com.casic.dao.AlarmRecordMapper; +import com.casic.dao.DataH2sMapper; +import com.casic.enums.H2sParamsEnum; +import com.casic.model.AlarmRecord; +import com.casic.model.DataH2s; import com.casic.service.ThirdDataService; -import com.casic.util.SendBatchSmsUtil; +import com.casic.util.RedisCommon; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; -import java.io.UnsupportedEncodingException; -import java.net.URLDecoder; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.*; -import java.util.stream.Collectors; @Service @Slf4j -public class ThirdDataServiceImpl extends ServiceImpl implements ThirdDataService { +@RequiredArgsConstructor +public class ThirdDataServiceImpl extends ServiceImpl implements ThirdDataService, H2sParamsEnum { private final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA); - - @Autowired - private AlarmPushService alarmPushService; - - @Autowired - private MessagePusherService messagePusherService; - - @Autowired - private SendBatchSmsUtil sendBatchSmsUtil; - + private final RedisCommon redisCommon; + private final AlarmRecordMapper alarmRecordMapper; @Override - public Object getDeviceRecentData(PressureDataParam pressureDataParam) { - ResponseData responseData = new ResponseData(); + public Object h2sData(Map h2sDataMap) { try { - batchSave(pressureDataParam); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); + if (h2sDataMap.containsKey(ICCID)) { + //开机上报->存储映射管理->查询是否有下发配置-进行回应 + return powerOnReport(h2sDataMap); + } else if (h2sDataMap.containsKey(H2S_VALUE)) { //数据上报 + if (ObjectUtils.isNotEmpty(h2sDataMap.get(DEVCODE))) { + //清除离线-清除报警-报警-存库-查询是否有下发配置-进行回应 + return dataSave(h2sDataMap); + } + } } catch (DataAccessException dae) { - log.error("设备最近数据查询异常,设备类型{},异常信息{}", dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); + log.error("设备上报数据异常,设备传入的json是{},异常信息{}", dae.getMessage()); } - return responseData; + return defaultDeliveryConfig(null); } - private void batchSave(PressureDataParam pressureDataParam) { - String pressureDataJson = pressureDataParam.getRawData(); - log.info("----" + pressureDataJson); - Map pressureDataMap = JSON.parseObject(pressureDataJson, HashMap.class); - Date uptime = null; - try { - uptime = dateFormat.parse(String.valueOf(pressureDataMap.get("times"))); - } catch (Exception e) { - log.error("主题,采集时间解析异常,异常信息{}", e.getMessage()); - } - List> pressureDataList = (List>) pressureDataMap.get("sensorDatas"); - DataPressure dataPressure = initPrssureData(pressureDataList, uptime); - if (dataPressure == null) { - return; - } - checkAlarm(dataPressure); + + private Map defaultDeliveryConfig(Map configDataMap) { + Map map = new HashMap(); + //必带参数,否则会被thingsboard舍弃 + map.put("method", "setParams"); + //判断是否有下发配置必须 + map.put("status", ObjectUtils.isNotEmpty(configDataMap) ? 200 : 201); + map.put("params", configDataMap); + //可省略 + map.put("timeout", "3000"); + return map; } - private DataPressure initPrssureData(List> pressureDataList, Date uptime) { - DataPressure dataPressure = new DataPressure(); - String devcode = pressureDataList.get(pressureDataList.size() - 1).get("str"); - Map pressureDataMap = pressureDataList.stream().collect( - Collectors.toMap(e -> String.valueOf(e.get("flag")), e -> String.valueOf(e.get("value"))) - ); -// if (CacheUtil.serialBuf.get(devcode)!=null&&CacheUtil.serialBuf.get(devcode).equals(pressureDataMap.get("F"))) { -// return null; -// } + /** + * 开机上报->储存,是否有下发配置,选择合适的格式返回 + * + * @param h2sDataMap + */ + private Map powerOnReport(Map h2sDataMap) { + /** + * 三码上报 + */ + String iccid = (String) h2sDataMap.get(ICCID); + String imei = (String) h2sDataMap.get(IMEI); + String devcode = (String) h2sDataMap.get(DEVCODE); + //清除离线 + this.baseMapper.clearOnline(devcode); + //先查,是否有数据,有数据直接覆盖,否则插入数据 + String isImei = this.baseMapper.getImeiByDevcode(devcode); + int save = StringUtils.isEmpty(isImei) ? this.baseMapper.addImeiDevcode(devcode, imei, iccid) : + this.baseMapper.updateImeiDevcode(devcode, imei, iccid); + if (save > 0) { + //保存三码关系 + Map configDataMap = redisCommon.getMsg((String) h2sDataMap.get(DEVCODE)); + if (ObjectUtils.isNotEmpty(configDataMap)) { + return defaultDeliveryConfig(configDataMap); + } + } else { + throw new RuntimeException("三码上传保存异常,异常数据为" + JSON.toJSON(h2sDataMap)); + } + return defaultDeliveryConfig(null); + } + + private Map dataSave(Map h2sDataMap) { + DataH2s dataH2s = initH2sData(h2sDataMap); + this.baseMapper.clearOnline((String) h2sDataMap.get(DEVCODE)); + if (ObjectUtils.isNotEmpty(dataH2s)) { + checkAlarm(dataH2s); + Map configDataMap = redisCommon.getMsg((String) h2sDataMap.get(DEVCODE)); + if (ObjectUtils.isNotEmpty(configDataMap)) { + return defaultDeliveryConfig(configDataMap); + } + } + return defaultDeliveryConfig(null); + } + + private DataH2s initH2sData(Map h2sDataMap) { + DataH2s dataH2s = new DataH2s(); + String devcode = (String) h2sDataMap.get(DEVCODE); String wellCode = this.baseMapper.getWellCode(devcode); - dataPressure.setWellCode(wellCode); - dataPressure.setDevcode(devcode); - dataPressure.setPci(pressureDataMap.get("Q")); - dataPressure.setCell(Float.valueOf(pressureDataMap.get("V"))); - dataPressure.setTemperature(pressureDataMap.get("T")); - dataPressure.setPress(pressureDataMap.get("F")); - dataPressure.setUptime(dateFormat.format(uptime)); - dataPressure.setLogtime(dateFormat.format(new Date())); - this.baseMapper.insert(dataPressure); -// CacheUtil.serialBuf.put(devcode, pressureDataMap.get("F")); - return dataPressure; + dataH2s.setWellCode(wellCode); + dataH2s.setDevcode(devcode); + dataH2s.setStrength((String) h2sDataMap.get(H2S_VALUE)); + dataH2s.setCell((String) h2sDataMap.get(BATTERY_VALUE)); + dataH2s.setUptime(dateFormat.format(new Date())); + dataH2s.setLogtime(dateFormat.format(new Date())); + this.baseMapper.insert(dataH2s); + return dataH2s; } - private void checkAlarm(DataPressure dataPressure) { + /** + * 检查是否有报警 + * + * @param dataH2s + */ + private void checkAlarm(DataH2s dataH2s) { final Float ruleValue = this.baseMapper.getRuleValue("24"); if (ruleValue == null) { return; } - if (!StringUtils.isEmpty(dataPressure.getPress()) && !dataPressure.getPress().equals("null")) { - if (Float.valueOf(dataPressure.getPress()) > ruleValue) { - this.baseMapper.saveRecords(dataPressure.getPress(), new Date()); - alarmPushBuilder(dataPressure.getDevcode(), dataPressure.getPress()); + if (!StringUtils.isEmpty(dataH2s.getStrength()) && !"null".equals(dataH2s.getStrength())) { + String status = "3"; + if (Float.valueOf(dataH2s.getStrength()) > ruleValue) { + //因新的报警消警 “0” + status = "0"; + alarmRecordMapper.insert(buildAlarmRecord(dataH2s)); } + this.baseMapper.cancelAlarm(dataH2s.getDevcode(), status); } } + private AlarmRecord buildAlarmRecord(DataH2s dataH2s) { + AlarmRecord alarmRecord = AlarmRecord.builder() + .devcode(dataH2s.getDevcode()) + .wellCode(dataH2s.getWellCode()) + .alarmType(dataH2s.getStrength()) + .alarmMessage("浓度超限") + .deviceId(dataH2s.getId()) + .alarmType("1") + .alarmContent("浓度超限") + .status("1") + .build(); + return alarmRecord; + } + // "在2023年1月12号 16时43分23秒,设备41232561发生了压力超标/浓度超限,数值为20" // + "设备" + devcode + "发生了压力超标,压力值为" + presss - // - @Autowired - private AliYunConfig aliYunConfig; - private void alarmPushBuilder(String devcode, String presss) { - ResponseData responseData = (ResponseData) alarmPushService.getAlarmPush("H2S"); - AlarmPushConfig alarmPushConfig = (AlarmPushConfig) responseData.getData(); - if (alarmPushConfig.getEnable().equals(1)) { - if (alarmPushConfig.getWebsocketAlarm().equals(1)) { - String msg = "在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "," - + "设备" + devcode + "发生了压力超标,压力值为" + presss; - try { - messagePusherService.updateSinkJob("", URLDecoder.decode(msg, "UTF-8")); - } catch (UnsupportedEncodingException uee) { - log.error("websocket推送,内容转码出现异常,异常信息为{}", uee.getMessage()); - } - } - if (alarmPushConfig.getShortMessageAlarm().equals(1)) { - JSONArray msglist = new JSONArray(); - JSONObject msgMap = new JSONObject(); - msgMap.put("time", new SimpleDateFormat("yyyyMMdd HH:mm:ss").format(new Date())); - msgMap.put("devcode", devcode); - msgMap.put("value", presss); - msgMap.put("content", "压力超标"); - String phoneJson = ""; - List aliSignNameList = new ArrayList<>(); - String aliSignName = aliYunConfig.getSignNameJson(); - if (!org.apache.commons.lang3.StringUtils.isEmpty(alarmPushConfig.getPhoneArray())) { - String[] phones = alarmPushConfig.getPhoneArray().split(","); - List phoneList = new ArrayList<>(); - for (String phone : phones) { - msglist.add(msgMap); - phoneList.add(phone); - aliSignNameList.add(aliSignName); - } - phoneJson = JSONObject.toJSONString(phoneList); - } - sendBatchSmsUtil.sendMsg(phoneJson, JSON.toJSONString(msgMap),JSONObject.toJSONString(aliSignNameList)); - } - } +// ResponseData responseData = (ResponseData) alarmPushService.getAlarmPush("H2S"); +// AlarmPushConfig alarmPushConfig = (AlarmPushConfig) responseData.getData(); +// if (alarmPushConfig.getEnable().equals(1)) { +// if (alarmPushConfig.getWebsocketAlarm().equals(1)) { +// String msg = "在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "," +// + "设备" + devcode + "发生了压力超标,压力值为" + presss; +// try { +// messagePusherService.updateSinkJob("", URLDecoder.decode(msg, "UTF-8")); +// } catch (UnsupportedEncodingException uee) { +// log.error("websocket推送,内容转码出现异常,异常信息为{}", uee.getMessage()); +// } +// } +// if (alarmPushConfig.getShortMessageAlarm().equals(1)) { +// JSONArray msglist = new JSONArray(); +// JSONObject msgMap = new JSONObject(); +// msgMap.put("time", new SimpleDateFormat("yyyyMMdd HH:mm:ss").format(new Date())); +// msgMap.put("devcode", devcode); +// msgMap.put("value", presss); +// msgMap.put("content", "压力超标"); +// String phoneJson = ""; +// List aliSignNameList = new ArrayList<>(); +// String aliSignName = aliYunConfig.getSignNameJson(); +// if (!org.apache.commons.lang3.StringUtils.isEmpty(alarmPushConfig.getPhoneArray())) { +// String[] phones = alarmPushConfig.getPhoneArray().split(","); +// List phoneList = new ArrayList<>(); +// for (String phone : phones) { +// msglist.add(msgMap); +// phoneList.add(phone); +// aliSignNameList.add(aliSignName); +// } +// phoneJson = JSONObject.toJSONString(phoneList); +// } +// sendBatchSmsUtil.sendMsg(phoneJson, JSON.toJSONString(msgMap), JSONObject.toJSONString(aliSignNameList)); +// } +// } } diff --git a/src/main/java/com/casic/util/ArtemisPostUtil.java b/src/main/java/com/casic/util/ArtemisPostUtil.java index c6655af..3084bde 100644 --- a/src/main/java/com/casic/util/ArtemisPostUtil.java +++ b/src/main/java/com/casic/util/ArtemisPostUtil.java @@ -1,7 +1,5 @@ package com.casic.util; -import com.alibaba.fastjson.JSONObject; -import com.casic.config.ApiHikomConfig; import com.casic.model.HkvideoValidParam; import com.casic.model.ResponseData; //import com.hikvision.artemis.sdk.ArtemisHttpUtil; @@ -10,8 +8,6 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; -import java.util.HashMap; -import java.util.Map; /** * 海康验证 @@ -20,8 +16,8 @@ @Slf4j public class ArtemisPostUtil { - @Resource - private ApiHikomConfig apiHikomConfig; +// @Resource +// private ApiHikomConfig apiHikomConfig; private final String contentType = "application/json"; public ResponseData artemisPost(HkvideoValidParam hkvideoValidParam) { diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/casic/config/AliYunConfig.java b/src/main/java/com/casic/config/AliYunConfig.java deleted file mode 100644 index 090b6ab..0000000 --- a/src/main/java/com/casic/config/AliYunConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Slf4j -@Configuration -@ConfigurationProperties(prefix = "casic.ali") -@Data -public class AliYunConfig { - - private String key; - private String screct; - private String url; - private String signNameJson; - private String templateCode; - -} diff --git a/src/main/java/com/casic/config/ApiHikomConfig.java b/src/main/java/com/casic/config/ApiHikomConfig.java deleted file mode 100644 index 73b3550..0000000 --- a/src/main/java/com/casic/config/ApiHikomConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -@Data -public class ApiHikomConfig { - @Value("${casic.hikom.host}") - private String hikomHost; - @Value("${casic.hikom.url}") - private String hikomUrl; -} diff --git a/src/main/java/com/casic/config/task/TaskConfigurer.java b/src/main/java/com/casic/config/task/TaskConfigurer.java new file mode 100644 index 0000000..43282d3 --- /dev/null +++ b/src/main/java/com/casic/config/task/TaskConfigurer.java @@ -0,0 +1,44 @@ +package com.casic.config.task; + +import com.casic.service.DeviceDataService; +import com.casic.service.ThirdDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.config.TriggerTask; +import org.springframework.scheduling.support.CronTrigger; + +/** + * @author cz + */ +@Configuration +@EnableScheduling +public class TaskConfigurer implements SchedulingConfigurer { + + @Value("${casic.device.online.corn}") + private String timeConfig; + @Autowired + private DeviceDataService deviceDataService; + + @Override + public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + TriggerTask triggrtTask = new TriggerTask(nextDayDevice(), + triggerContext -> { + return new CronTrigger(timeConfig).nextExecutionTime(triggerContext); + }); + taskRegistrar.addTriggerTask(triggrtTask); + } + + private Runnable nextDayDevice() { + return new Runnable() { + @Override + public void run() { + deviceDataService.checkAndUpdateDeviceOnline(); + } + }; + } + +} \ No newline at end of file diff --git a/src/main/java/com/casic/controller/AlarmController.java b/src/main/java/com/casic/controller/AlarmController.java deleted file mode 100644 index 957fc36..0000000 --- a/src/main/java/com/casic/controller/AlarmController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmConfigParam; -import com.casic.service.AlarmService; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/alarm") -public class AlarmController { - - private final AlarmService alarmService; - - public AlarmController(AlarmService alarmService) { - this.alarmService = alarmService; - } - - @RequestMapping("/records") - public Object getAlarmRecord(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "currentIndex", required = true) Integer currentIndex, - @RequestParam(value = "devcode",required =false) String devcode, - @RequestParam(value = "pageSize", required = true) Integer pageSize) { - return alarmService.getAlarmRecord(deviceType,currentIndex,pageSize,devcode); - } - - @RequestMapping("/batch/cancel") - public Object excuteAlramBatchCancel(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "devcode",required =false) String devcode) { - return alarmService.excuteAlramBatchCancel(deviceType,devcode); - } - - @RequestMapping("/config/add") - public Object addAlarmConfig(@RequestBody AlarmConfigParam alarmConfigParam) { - return alarmService.addAlarmConfig(alarmConfigParam); - } -} diff --git a/src/main/java/com/casic/controller/AlarmPushController.java b/src/main/java/com/casic/controller/AlarmPushController.java deleted file mode 100644 index 1642f9b..0000000 --- a/src/main/java/com/casic/controller/AlarmPushController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmPushConfig; -import com.casic.service.AlarmPushService; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.*; - -@RestController -@AllArgsConstructor -@RequestMapping("/alarm") -public class AlarmPushController { - - private AlarmPushService alarmPushService; - - @RequestMapping("/push/config") - @ResponseBody - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - return alarmPushService.alarmPushConfig(alarmSwitchConfig); - } - - @RequestMapping("/push/query") - public Object alarmPushQuery(@RequestParam(value = "scene", required = true) String scene) { - return alarmPushService.getAlarmPush(scene); - } - -} diff --git a/src/main/java/com/casic/controller/ArtemisValidController.java b/src/main/java/com/casic/controller/ArtemisValidController.java deleted file mode 100644 index 1d52576..0000000 --- a/src/main/java/com/casic/controller/ArtemisValidController.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.controller; - -import com.casic.model.HkvideoValidParam; -import com.casic.model.ResponseData; -import com.casic.util.ArtemisPostUtil; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 海康接口 - */ -@AllArgsConstructor -@RestController -public class ArtemisValidController { - private final ArtemisPostUtil artemisPostUtill; - - @RequestMapping("/hkvideo/getVideoUrl") - public ResponseData getVideoUrl(@RequestBody HkvideoValidParam hkvideoValidParam) { - - return artemisPostUtill.artemisPost(hkvideoValidParam); - } - -} diff --git a/src/main/java/com/casic/controller/MessagePusherController.java b/src/main/java/com/casic/controller/MessagePusherController.java index d447c05..b97dcd1 100644 --- a/src/main/java/com/casic/controller/MessagePusherController.java +++ b/src/main/java/com/casic/controller/MessagePusherController.java @@ -32,8 +32,7 @@ } catch (UnsupportedEncodingException e) { e.printStackTrace(); } - return retMap; - } + return retMap; } //报警开关按钮 // diff --git a/src/main/java/com/casic/controller/ThirdDataController.java b/src/main/java/com/casic/controller/ThirdDataController.java index d910a7d..fbd8e59 100644 --- a/src/main/java/com/casic/controller/ThirdDataController.java +++ b/src/main/java/com/casic/controller/ThirdDataController.java @@ -1,8 +1,6 @@ package com.casic.controller; import com.alibaba.fastjson.JSON; -import com.casic.model.CommConfigDTO; -import com.casic.model.PressureDataParam; import com.casic.model.ResponseData; import com.casic.service.ThirdDataService; import lombok.extern.slf4j.Slf4j; @@ -10,7 +8,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.HashMap; import java.util.Map; @RestController @@ -24,22 +21,25 @@ this.thirdDataService = thirdDataService; } - @RequestMapping("/pressure/data") - public Object getDeviceRecentData(@RequestBody PressureDataParam pressureData) { - return thirdDataService.getDeviceRecentData(pressureData); + /** + * 硫化氢订阅接口 + * + * @param h2sDataMap + * @return + */ + @RequestMapping("/h2s-data") + public Object h2sData(@RequestBody Map h2sDataMap) { + System.out.println(JSON.toJSON(h2sDataMap)); + return thirdDataService.h2sData(h2sDataMap); } - @RequestMapping("/data") - public Object getDeviceData(@RequestBody Map pressureDataMap) { - System.out.println(JSON.toJSON(pressureDataMap)); - Map map = new HashMap(); - map.put("method", "setParams"); - Map param = new HashMap(); - param.put("ip", "大胆猜测下"); - map.put("status", 200); - map.put("params", param); - map.put("timeout", "3000"); - return map; + @RequestMapping("/test") + public Object testNbResponse (@RequestBody Map h2sDataMap){ + ResponseData responseData=new ResponseData(); + responseData.setCode(200); + responseData.setData("oyAAGDcgFAEAAcMAAQWfAXOJd1POnas6zxTmU7jQkVJinQ=="); + System.out.println(JSON.toJSON(h2sDataMap)); + return responseData; } } diff --git a/src/main/java/com/casic/dao/AlarmPushMapper.java b/src/main/java/com/casic/dao/AlarmPushMapper.java deleted file mode 100644 index 9d7484b..0000000 --- a/src/main/java/com/casic/dao/AlarmPushMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.AlarmPushConfig; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface AlarmPushMapper extends BaseMapper { -} diff --git a/src/main/java/com/casic/dao/AlarmRecordMapper.java b/src/main/java/com/casic/dao/AlarmRecordMapper.java new file mode 100644 index 0000000..d8a4911 --- /dev/null +++ b/src/main/java/com/casic/dao/AlarmRecordMapper.java @@ -0,0 +1,12 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.AlarmRecord; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AlarmRecordMapper extends BaseMapper { + + + +} diff --git a/src/main/java/com/casic/dao/DataH2sMapper.java b/src/main/java/com/casic/dao/DataH2sMapper.java new file mode 100644 index 0000000..434f1e2 --- /dev/null +++ b/src/main/java/com/casic/dao/DataH2sMapper.java @@ -0,0 +1,27 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.DataH2s; +import com.casic.model.DataPressure; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; + +@Mapper +public interface DataH2sMapper extends BaseMapper { + + int clearOnline(@Param("devcode") String devcode); + + String getWellCode(@Param("devcode") String devcode); + + Float getRuleValue(@Param("deviceType") String deviceType); + + int cancelAlarm(@Param("devcode") String devcode, @Param("status") String status); + + String getImeiByDevcode(@Param("devcode") String devcode); + + int updateImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); + + int addImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); +} diff --git a/src/main/java/com/casic/dao/DataPressureMapper.java b/src/main/java/com/casic/dao/DataPressureMapper.java deleted file mode 100644 index 05f4329..0000000 --- a/src/main/java/com/casic/dao/DataPressureMapper.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.DataPressure; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.Date; - -@Mapper -public interface DataPressureMapper extends BaseMapper { - - String getWellCode(@Param("devcode") String devcode); - - Float getRuleValue(@Param("deviceType") String deviceType); - - void saveRecords(@Param("reValue") String reValue, @Param("alarmTime") Date alarmTime); - -} diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java index d9e18a0..e62d526 100644 --- a/src/main/java/com/casic/dao/DeviceDataMapper.java +++ b/src/main/java/com/casic/dao/DeviceDataMapper.java @@ -23,5 +23,14 @@ @Param("pageSize") Integer pageSize, @Param("devcode") String devcode); - String getLevelByType(@Param("deviceType")String deviceType); + String getLevelByType(@Param("deviceType") String deviceType); + + + List getDevcodeByType(@Param("devciceType") Integer devciceType); + + List getRecentData(@Param("devciceType") Integer dataDay); + + List updateOnlineByDevs(@Param("dataSortDevcodeList") List dataSortDevcodeList); + + } diff --git a/src/main/java/com/casic/enums/DeviceTypeEnum.java b/src/main/java/com/casic/enums/DeviceTypeEnum.java new file mode 100644 index 0000000..8d5a6e6 --- /dev/null +++ b/src/main/java/com/casic/enums/DeviceTypeEnum.java @@ -0,0 +1,64 @@ +package com.casic.enums; + + +public enum DeviceTypeEnum { + Well("井盖状态监测仪", 1), + Liquid("液位监测仪", 2), + WasteGas("有害气体监测仪", 3), + Methane("燃气智能监测终端", 4), + TempHumi("温湿度监测仪", 5), + Dig("开挖监测仪", 6), + WellLocator("井盖定位监测仪", 7), + Noise("噪声记录仪", 8), + TempPressure("温度压力监测仪", 9), + FireHydrant("消防栓防盗水监测仪", 11), + Tube("管盯", 12), + LG("井盖液位一体机", 13), + H2s("硫化氢检测终端", 14); + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private DeviceTypeEnum(String name, int index) { + this.name = name; + this.index = index; + } + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } + + public static DeviceTypeEnum getByIndex(String index) { + try { + for (DeviceTypeEnum deviceTypeEnum : values()) { + if (deviceTypeEnum.index == Integer.parseInt(index)) { + return deviceTypeEnum; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } +} \ No newline at end of file diff --git a/src/main/java/com/casic/enums/H2sParamsEnum.java b/src/main/java/com/casic/enums/H2sParamsEnum.java new file mode 100644 index 0000000..74eec50 --- /dev/null +++ b/src/main/java/com/casic/enums/H2sParamsEnum.java @@ -0,0 +1,35 @@ +package com.casic.enums; + +public interface H2sParamsEnum { + + /** + * 下发配置参数 + */ + String IP = "ip"; + String PORT = "port"; + String CTNET = "ctnet"; + String PERIOD = "period"; + String CYCLE = "cycle"; + /** + * 三码上报 + */ + String ICCID = "iccid"; + String IMEI = "imei"; + String DEVCODE = "devcode"; + /** + * 上传时间 + */ + String TS = "ts"; + /** + * 数据上报(电量、硫化氢数据值、设备编号) + * 数据值 + */ + String H2S_VALUE = "h2sValue"; + /** + * 电量 + */ + String BATTERY_VALUE = "batteryValue"; + + + +} diff --git a/src/main/java/com/casic/model/AlarmRecord.java b/src/main/java/com/casic/model/AlarmRecord.java new file mode 100644 index 0000000..600fe5a --- /dev/null +++ b/src/main/java/com/casic/model/AlarmRecord.java @@ -0,0 +1,81 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; + +import java.util.Date; + +@Builder +@TableName("alarm_records") +public class AlarmRecord { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 设备ID + */ + @TableField("DEVICE_ID") + private Long deviceId; + /** + * 设备编号 + */ + @TableField("DEVCODE") + private String devcode; + /** + * 闸井编号 + */ + @TableField("WELL_CODE") + private String wellCode; + /** + * 告警类型 + */ + @TableField("ALARM_TYPE") + private String alarmType; + /** + * 告警内容 + */ + @TableField("ALARM_CONTENT") + private String alarmContent; + /** + * 告警数值 + */ + @TableField("ALARM_VALUE") + private String alarmValue; + /** + * 告警等级 + */ + @TableField("ALARM_LEVEL") + private Integer alarmLevel; + /** + * 告警详情 + */ + @TableField("ALARM_MSG") + private String alarmMessage; + /** + * 告警时间 + */ + @TableField("ALARM_TIME") + private Date alarmTime; + /** + * 告警状态 + */ + @TableField("STATUS") + private String status; + /** + * 工单编号 + */ + @TableField("JOB_ID") + private Long jobId; + + @TableField(exist = false) + private Integer jobStatus; + +} diff --git a/src/main/java/com/casic/model/DataH2s.java b/src/main/java/com/casic/model/DataH2s.java new file mode 100644 index 0000000..16ecc7a --- /dev/null +++ b/src/main/java/com/casic/model/DataH2s.java @@ -0,0 +1,37 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + */ +@Data +@TableName("data_h2s") +public class DataH2s { + + private Long id; + + private String devcode; + + private String wellCode; + + private String cell; + + private String strength; + + private String uptime; + + private String logtime; + + private String descn; + + private String rsrp; + + private String pci; + + private String snr; + +} diff --git a/src/main/java/com/casic/model/DeviceTypeEnum.java b/src/main/java/com/casic/model/DeviceTypeEnum.java deleted file mode 100644 index 26c685f..0000000 --- a/src/main/java/com/casic/model/DeviceTypeEnum.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.casic.model; - - -public enum DeviceTypeEnum { - Well("井盖状态监测仪", 1), - Liquid("液位监测仪", 2), - WasteGas("有害气体监测仪", 3), - Methane("燃气智能监测终端", 4), - TempHumi("温湿度监测仪", 5), - Dig("开挖监测仪", 6), - WellLocator("井盖定位监测仪", 7), - Noise("噪声记录仪", 8), - TempPressure("温度压力监测仪", 9), - FireHydrant("消防栓防盗水监测仪", 11), - Tube("管盯", 12), - LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); - - // 成员变量 - private String name; - private int index; - - // 构造方法 - private DeviceTypeEnum(String name, int index) { - this.name = name; - this.index = index; - } - - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public int getIndex() { - return index; - } - - public void setIndex(int index) { - this.index = index; - } - - public static DeviceTypeEnum getByIndex(String index) { - try { - for (DeviceTypeEnum deviceTypeEnum : values()) { - if (deviceTypeEnum.index == Integer.parseInt(index)) { - return deviceTypeEnum; - } - } - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - //覆盖方法 - @Override - public String toString() { - return this.name; - } -} \ No newline at end of file diff --git a/src/main/java/com/casic/service/AlarmPushService.java b/src/main/java/com/casic/service/AlarmPushService.java deleted file mode 100644 index d180eb2..0000000 --- a/src/main/java/com/casic/service/AlarmPushService.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.service; - -import com.casic.model.AlarmPushConfig; - -public interface AlarmPushService { - - Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig); - - Object getAlarmPush(String scene); - -} - - - diff --git a/src/main/java/com/casic/service/AlarmService.java b/src/main/java/com/casic/service/AlarmService.java deleted file mode 100644 index 4f41038..0000000 --- a/src/main/java/com/casic/service/AlarmService.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.casic.service; - -import com.casic.model.AlarmConfigParam; - -public interface AlarmService { - - Object getAlarmRecord(String deviceType, Integer currentIndex, Integer pageSize, String devcode); - - Object excuteAlramBatchCancel(String deviceType, String devcode); - - Object addAlarmConfig(AlarmConfigParam alarmConfig); - -} diff --git a/src/main/java/com/casic/service/DeviceDataService.java b/src/main/java/com/casic/service/DeviceDataService.java index db656c1..71f8ce9 100644 --- a/src/main/java/com/casic/service/DeviceDataService.java +++ b/src/main/java/com/casic/service/DeviceDataService.java @@ -7,4 +7,6 @@ Object getDeviceListPage(String deviceType, Integer currentIndex, Integer pageSize, String devcode); Object getLevel(String deviceType); + + void checkAndUpdateDeviceOnline(); } diff --git a/src/main/java/com/casic/service/ThirdDataService.java b/src/main/java/com/casic/service/ThirdDataService.java index 795e0b2..31dc516 100644 --- a/src/main/java/com/casic/service/ThirdDataService.java +++ b/src/main/java/com/casic/service/ThirdDataService.java @@ -1,8 +1,11 @@ package com.casic.service; -import com.casic.model.PressureDataParam; +import java.util.Map; public interface ThirdDataService { - Object getDeviceRecentData(PressureDataParam pressureData); + + Object h2sData(Map h2sDataMap); + + } diff --git a/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java b/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java deleted file mode 100644 index d193905..0000000 --- a/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.casic.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.dao.AlarmPushMapper; -import com.casic.model.AlarmPushConfig; -import com.casic.model.ResponseData; -import com.casic.service.AlarmPushService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.dao.DataAccessException; -import org.springframework.stereotype.Service; - -import java.util.List; -import java.util.Optional; - -@Service -@Slf4j -public class AlarmPushServiceImpl extends ServiceImpl implements AlarmPushService { - - @Override - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - ResponseData responseData = new ResponseData(); - try { - QueryWrapper queryWrapper = new QueryWrapper() - .eq("scene", alarmSwitchConfig.getScene()); -// this.baseMapper.delete(deleteWrapper); - this.baseMapper.update(alarmSwitchConfig, queryWrapper); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("报警推送配置新增异常,场景{},异常信息{}", alarmSwitchConfig.getScene(), dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - @Override - public Object getAlarmPush(String scene) { - ResponseData responseData = new ResponseData(); - try { - QueryWrapper queryWrapper = new QueryWrapper() - .eq("scene", scene); - List alarmPushConfigList = this.baseMapper.selectList(queryWrapper); - Optional alarmPushConfigOptional = alarmPushConfigList.stream().findFirst(); - responseData.setData(alarmPushConfigOptional.isPresent() ? alarmPushConfigOptional.get() : new Object()); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("报警推送配置查询异常,场景{},异常信息{}", scene, dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } -} diff --git a/src/main/java/com/casic/service/impl/AlarmServiceImple.java b/src/main/java/com/casic/service/impl/AlarmServiceImple.java deleted file mode 100644 index 8a29af9..0000000 --- a/src/main/java/com/casic/service/impl/AlarmServiceImple.java +++ /dev/null @@ -1,129 +0,0 @@ -package com.casic.service.impl; - -import com.alibaba.druid.util.StringUtils; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.dao.AlarmMapper; -import com.casic.dao.BusConfigMapper; -import com.casic.model.*; -import com.casic.service.AlarmService; -import com.casic.util.DeviceDataTableEnum; -import com.casic.util.RedisCommon; -import lombok.extern.slf4j.Slf4j; -import org.springframework.dao.DataAccessException; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import javax.annotation.Resource; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -@Slf4j -@Service -public class AlarmServiceImple extends ServiceImpl implements AlarmService { - - @Resource - private BusConfigMapper busConfigMapper; - @Resource - private RedisCommon redisCommonUtil; - - @Override - public Object getAlarmRecord(String deviceType, Integer currentIndex, Integer pageSize, String devcode) { - ResponseData responseData = new ResponseData(); - try { - Map page = new HashMap(); - page.put("total", this.baseMapper.getAlarmTotalRecord(deviceType, devcode)); - List> alarmRecordList = this.baseMapper.getAlarmRecord(deviceType, devcode, pageSize * (currentIndex - 1), pageSize); - page.put("rows", alarmRecordList); - responseData.setData(page); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("设备数据查询异常,设备类型{},异常信息{}", deviceType, dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - @Override - @Transactional - public Object excuteAlramBatchCancel(String deviceType, String devcode) { - ResponseData responseData = new ResponseData(); - try { - this.baseMapper.excuteAlramBatchCancel(deviceType, devcode); - this.baseMapper.excuteJobBatchCancel(deviceType, devcode); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("批量消警异常,设备类型{},异常信息{}", deviceType, dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - @Override - @Transactional - public Object addAlarmConfig(AlarmConfigParam alarmConfigParam) { - ResponseData responseData = new ResponseData(); - try { - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - addBusConfig(alarmConfigParam); - addRuleConfig(alarmConfigParam); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("风险配置异常,异常信息{}", dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - private void addRuleConfig(AlarmConfigParam alarmConfigParam) { - Map alarmRuleMap = new HashMap(); - alarmRuleMap.put("DEVICE_TYPE", alarmConfigParam.getDeviceType()); - this.baseMapper.deleteByMap(alarmRuleMap); - AlarmLevel alarmRule = new AlarmLevel(); - DeviceDataTableEnum deviceDataTableEnum = DeviceDataTableEnum.DEVICE_TYPE_TABLE.getTableNameMap() - .get(Integer.valueOf(alarmConfigParam.getDeviceType())); - alarmRule.setName(deviceDataTableEnum.getTypeName()); - alarmRule.setHighValue(Float.valueOf(alarmConfigParam.getThresholdVol())); - alarmRule.setTs(new Date()); - alarmRule.setLevel(1); - alarmRule.setDeviceType(alarmConfigParam.getDeviceType()); - this.baseMapper.insert(alarmRule); - } - - private void addBusConfig(AlarmConfigParam alarmConfigParam) { - String devcode = StringUtils.isEmpty(alarmConfigParam.getDevcode()) ? this.baseMapper.getDeviceDevcode(alarmConfigParam.getDeviceType()) : alarmConfigParam.getDevcode(); - sendBusConfig(alarmConfigParam, devcode); - String devcideId = this.baseMapper.getDeviceByDevcode(alarmConfigParam.getDeviceType(), devcode); - BusConfig busConfig = new BusConfig(); - busConfig.setDeviceId(devcideId); - busConfig.setFramecontent("3," + alarmConfigParam.getCollectInterval() + "," + alarmConfigParam.getCollectInterval() + - "," + alarmConfigParam.getRetryNum() + "," + alarmConfigParam.getIp() + "," + alarmConfigParam.getPort()); - busConfig.setSensorid(""); - busConfig.setStatus("0"); - busConfig.setAttemptscurrent(0); - busConfig.setWritetime(new Date()); - busConfig.setAttemptsmax(3); - busConfigMapper.insert(busConfig); - } - - private void sendBusConfig(AlarmConfigParam alarmConfigParam, String devcode) { - CommConfigDTO commConfigDTO = new CommConfigDTO(); - commConfigDTO.setInterval(StringUtils.isEmpty(alarmConfigParam.getCollectInterval()) ? 300 : Long.valueOf(alarmConfigParam.getCollectInterval())); - commConfigDTO.setRepeat(StringUtils.isEmpty(alarmConfigParam.getRetryNum()) ? 300 : Long.valueOf(alarmConfigParam.getRetryNum())); -// commConfigDTO.setTimes(Long.valueOf(1)); -// commConfigDTO.setIp(alarmConfigParam.getIp()); -// commConfigDTO.setPort(StringUtils.isEmpty(alarmConfigParam.getPort()) ? 8080 : Long.valueOf(alarmConfigParam.getPort())); - commConfigDTO.setPeriod(StringUtils.isEmpty(alarmConfigParam.getUploadCycle()) ? 300 : Long.valueOf(alarmConfigParam.getUploadCycle())); -// commConfigDTO.setThresh(); - commConfigDTO.setThresh(StringUtils.isEmpty(alarmConfigParam.getThresholdVol()) ? 50 : Float.valueOf(alarmConfigParam.getThresholdVol())); - redisCommonUtil.send(commConfigDTO, devcode); - } - - -} diff --git a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java index e35daef..136912f 100644 --- a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java +++ b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java @@ -1,27 +1,36 @@ package com.casic.service.impl; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.casic.dao.DeviceDataMapper; import com.casic.model.ResponseData; import com.casic.service.DeviceDataService; import com.casic.util.DeviceDataFieldTableEnum; import com.casic.util.DeviceDataTableEnum; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collector; +import java.util.stream.Collectors; @Service @Slf4j +@RequiredArgsConstructor public class DeviceDataServiceImpl implements DeviceDataService { - private final DeviceDataMapper deviceDataMapper; + @Value("${casic.device.type}") + private Integer devciceType; - public DeviceDataServiceImpl(DeviceDataMapper deviceDataMapper) { - this.deviceDataMapper = deviceDataMapper; - } + @Value("${casic.device.data-day}") + private Integer dataDay; + + private final DeviceDataMapper deviceDataMapper; @Override public Object getDeviceRecentData(String deviceType, String recentNum, String devcode) { @@ -80,4 +89,26 @@ return responseData; } + @Override + @Transactional + public void checkAndUpdateDeviceOnline() { + //查询硫化氢设备 + List String = deviceDataMapper.getDevcodeByType(devciceType); + //统一查询所有设备的3天内数据的设备编号,然后设备编号转成map,进行 + List dataList = deviceDataMapper.getRecentData(dataDay); + List dataSortDevcodeList = dataList; + if (dataList != null) { + Map devOnlineMap = new HashMap<>(); + for (String devcodeData : dataList) { + devOnlineMap.put(devcodeData, ""); + } + dataSortDevcodeList = dataSortDevcodeList.stream().filter( + e -> !devOnlineMap.containsKey(e)).collect(Collectors.toList()); + } + //统一更新 + if (CollectionUtils.isNotEmpty(dataList)) { + deviceDataMapper.updateOnlineByDevs(dataSortDevcodeList); + } + } + } diff --git a/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java b/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java index 7ac6bc1..9d28170 100644 --- a/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java +++ b/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java @@ -2,158 +2,194 @@ import com.alibaba.druid.util.StringUtils; import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.config.AliYunConfig; -import com.casic.dao.DataPressureMapper; -import com.casic.model.AlarmPushConfig; -import com.casic.model.DataPressure; -import com.casic.model.PressureDataParam; -import com.casic.model.ResponseData; -import com.casic.service.AlarmPushService; -import com.casic.service.MessagePusherService; +import com.casic.dao.AlarmRecordMapper; +import com.casic.dao.DataH2sMapper; +import com.casic.enums.H2sParamsEnum; +import com.casic.model.AlarmRecord; +import com.casic.model.DataH2s; import com.casic.service.ThirdDataService; -import com.casic.util.SendBatchSmsUtil; +import com.casic.util.RedisCommon; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; -import java.io.UnsupportedEncodingException; -import java.net.URLDecoder; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.*; -import java.util.stream.Collectors; @Service @Slf4j -public class ThirdDataServiceImpl extends ServiceImpl implements ThirdDataService { +@RequiredArgsConstructor +public class ThirdDataServiceImpl extends ServiceImpl implements ThirdDataService, H2sParamsEnum { private final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA); - - @Autowired - private AlarmPushService alarmPushService; - - @Autowired - private MessagePusherService messagePusherService; - - @Autowired - private SendBatchSmsUtil sendBatchSmsUtil; - + private final RedisCommon redisCommon; + private final AlarmRecordMapper alarmRecordMapper; @Override - public Object getDeviceRecentData(PressureDataParam pressureDataParam) { - ResponseData responseData = new ResponseData(); + public Object h2sData(Map h2sDataMap) { try { - batchSave(pressureDataParam); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); + if (h2sDataMap.containsKey(ICCID)) { + //开机上报->存储映射管理->查询是否有下发配置-进行回应 + return powerOnReport(h2sDataMap); + } else if (h2sDataMap.containsKey(H2S_VALUE)) { //数据上报 + if (ObjectUtils.isNotEmpty(h2sDataMap.get(DEVCODE))) { + //清除离线-清除报警-报警-存库-查询是否有下发配置-进行回应 + return dataSave(h2sDataMap); + } + } } catch (DataAccessException dae) { - log.error("设备最近数据查询异常,设备类型{},异常信息{}", dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); + log.error("设备上报数据异常,设备传入的json是{},异常信息{}", dae.getMessage()); } - return responseData; + return defaultDeliveryConfig(null); } - private void batchSave(PressureDataParam pressureDataParam) { - String pressureDataJson = pressureDataParam.getRawData(); - log.info("----" + pressureDataJson); - Map pressureDataMap = JSON.parseObject(pressureDataJson, HashMap.class); - Date uptime = null; - try { - uptime = dateFormat.parse(String.valueOf(pressureDataMap.get("times"))); - } catch (Exception e) { - log.error("主题,采集时间解析异常,异常信息{}", e.getMessage()); - } - List> pressureDataList = (List>) pressureDataMap.get("sensorDatas"); - DataPressure dataPressure = initPrssureData(pressureDataList, uptime); - if (dataPressure == null) { - return; - } - checkAlarm(dataPressure); + + private Map defaultDeliveryConfig(Map configDataMap) { + Map map = new HashMap(); + //必带参数,否则会被thingsboard舍弃 + map.put("method", "setParams"); + //判断是否有下发配置必须 + map.put("status", ObjectUtils.isNotEmpty(configDataMap) ? 200 : 201); + map.put("params", configDataMap); + //可省略 + map.put("timeout", "3000"); + return map; } - private DataPressure initPrssureData(List> pressureDataList, Date uptime) { - DataPressure dataPressure = new DataPressure(); - String devcode = pressureDataList.get(pressureDataList.size() - 1).get("str"); - Map pressureDataMap = pressureDataList.stream().collect( - Collectors.toMap(e -> String.valueOf(e.get("flag")), e -> String.valueOf(e.get("value"))) - ); -// if (CacheUtil.serialBuf.get(devcode)!=null&&CacheUtil.serialBuf.get(devcode).equals(pressureDataMap.get("F"))) { -// return null; -// } + /** + * 开机上报->储存,是否有下发配置,选择合适的格式返回 + * + * @param h2sDataMap + */ + private Map powerOnReport(Map h2sDataMap) { + /** + * 三码上报 + */ + String iccid = (String) h2sDataMap.get(ICCID); + String imei = (String) h2sDataMap.get(IMEI); + String devcode = (String) h2sDataMap.get(DEVCODE); + //清除离线 + this.baseMapper.clearOnline(devcode); + //先查,是否有数据,有数据直接覆盖,否则插入数据 + String isImei = this.baseMapper.getImeiByDevcode(devcode); + int save = StringUtils.isEmpty(isImei) ? this.baseMapper.addImeiDevcode(devcode, imei, iccid) : + this.baseMapper.updateImeiDevcode(devcode, imei, iccid); + if (save > 0) { + //保存三码关系 + Map configDataMap = redisCommon.getMsg((String) h2sDataMap.get(DEVCODE)); + if (ObjectUtils.isNotEmpty(configDataMap)) { + return defaultDeliveryConfig(configDataMap); + } + } else { + throw new RuntimeException("三码上传保存异常,异常数据为" + JSON.toJSON(h2sDataMap)); + } + return defaultDeliveryConfig(null); + } + + private Map dataSave(Map h2sDataMap) { + DataH2s dataH2s = initH2sData(h2sDataMap); + this.baseMapper.clearOnline((String) h2sDataMap.get(DEVCODE)); + if (ObjectUtils.isNotEmpty(dataH2s)) { + checkAlarm(dataH2s); + Map configDataMap = redisCommon.getMsg((String) h2sDataMap.get(DEVCODE)); + if (ObjectUtils.isNotEmpty(configDataMap)) { + return defaultDeliveryConfig(configDataMap); + } + } + return defaultDeliveryConfig(null); + } + + private DataH2s initH2sData(Map h2sDataMap) { + DataH2s dataH2s = new DataH2s(); + String devcode = (String) h2sDataMap.get(DEVCODE); String wellCode = this.baseMapper.getWellCode(devcode); - dataPressure.setWellCode(wellCode); - dataPressure.setDevcode(devcode); - dataPressure.setPci(pressureDataMap.get("Q")); - dataPressure.setCell(Float.valueOf(pressureDataMap.get("V"))); - dataPressure.setTemperature(pressureDataMap.get("T")); - dataPressure.setPress(pressureDataMap.get("F")); - dataPressure.setUptime(dateFormat.format(uptime)); - dataPressure.setLogtime(dateFormat.format(new Date())); - this.baseMapper.insert(dataPressure); -// CacheUtil.serialBuf.put(devcode, pressureDataMap.get("F")); - return dataPressure; + dataH2s.setWellCode(wellCode); + dataH2s.setDevcode(devcode); + dataH2s.setStrength((String) h2sDataMap.get(H2S_VALUE)); + dataH2s.setCell((String) h2sDataMap.get(BATTERY_VALUE)); + dataH2s.setUptime(dateFormat.format(new Date())); + dataH2s.setLogtime(dateFormat.format(new Date())); + this.baseMapper.insert(dataH2s); + return dataH2s; } - private void checkAlarm(DataPressure dataPressure) { + /** + * 检查是否有报警 + * + * @param dataH2s + */ + private void checkAlarm(DataH2s dataH2s) { final Float ruleValue = this.baseMapper.getRuleValue("24"); if (ruleValue == null) { return; } - if (!StringUtils.isEmpty(dataPressure.getPress()) && !dataPressure.getPress().equals("null")) { - if (Float.valueOf(dataPressure.getPress()) > ruleValue) { - this.baseMapper.saveRecords(dataPressure.getPress(), new Date()); - alarmPushBuilder(dataPressure.getDevcode(), dataPressure.getPress()); + if (!StringUtils.isEmpty(dataH2s.getStrength()) && !"null".equals(dataH2s.getStrength())) { + String status = "3"; + if (Float.valueOf(dataH2s.getStrength()) > ruleValue) { + //因新的报警消警 “0” + status = "0"; + alarmRecordMapper.insert(buildAlarmRecord(dataH2s)); } + this.baseMapper.cancelAlarm(dataH2s.getDevcode(), status); } } + private AlarmRecord buildAlarmRecord(DataH2s dataH2s) { + AlarmRecord alarmRecord = AlarmRecord.builder() + .devcode(dataH2s.getDevcode()) + .wellCode(dataH2s.getWellCode()) + .alarmType(dataH2s.getStrength()) + .alarmMessage("浓度超限") + .deviceId(dataH2s.getId()) + .alarmType("1") + .alarmContent("浓度超限") + .status("1") + .build(); + return alarmRecord; + } + // "在2023年1月12号 16时43分23秒,设备41232561发生了压力超标/浓度超限,数值为20" // + "设备" + devcode + "发生了压力超标,压力值为" + presss - // - @Autowired - private AliYunConfig aliYunConfig; - private void alarmPushBuilder(String devcode, String presss) { - ResponseData responseData = (ResponseData) alarmPushService.getAlarmPush("H2S"); - AlarmPushConfig alarmPushConfig = (AlarmPushConfig) responseData.getData(); - if (alarmPushConfig.getEnable().equals(1)) { - if (alarmPushConfig.getWebsocketAlarm().equals(1)) { - String msg = "在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "," - + "设备" + devcode + "发生了压力超标,压力值为" + presss; - try { - messagePusherService.updateSinkJob("", URLDecoder.decode(msg, "UTF-8")); - } catch (UnsupportedEncodingException uee) { - log.error("websocket推送,内容转码出现异常,异常信息为{}", uee.getMessage()); - } - } - if (alarmPushConfig.getShortMessageAlarm().equals(1)) { - JSONArray msglist = new JSONArray(); - JSONObject msgMap = new JSONObject(); - msgMap.put("time", new SimpleDateFormat("yyyyMMdd HH:mm:ss").format(new Date())); - msgMap.put("devcode", devcode); - msgMap.put("value", presss); - msgMap.put("content", "压力超标"); - String phoneJson = ""; - List aliSignNameList = new ArrayList<>(); - String aliSignName = aliYunConfig.getSignNameJson(); - if (!org.apache.commons.lang3.StringUtils.isEmpty(alarmPushConfig.getPhoneArray())) { - String[] phones = alarmPushConfig.getPhoneArray().split(","); - List phoneList = new ArrayList<>(); - for (String phone : phones) { - msglist.add(msgMap); - phoneList.add(phone); - aliSignNameList.add(aliSignName); - } - phoneJson = JSONObject.toJSONString(phoneList); - } - sendBatchSmsUtil.sendMsg(phoneJson, JSON.toJSONString(msgMap),JSONObject.toJSONString(aliSignNameList)); - } - } +// ResponseData responseData = (ResponseData) alarmPushService.getAlarmPush("H2S"); +// AlarmPushConfig alarmPushConfig = (AlarmPushConfig) responseData.getData(); +// if (alarmPushConfig.getEnable().equals(1)) { +// if (alarmPushConfig.getWebsocketAlarm().equals(1)) { +// String msg = "在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "," +// + "设备" + devcode + "发生了压力超标,压力值为" + presss; +// try { +// messagePusherService.updateSinkJob("", URLDecoder.decode(msg, "UTF-8")); +// } catch (UnsupportedEncodingException uee) { +// log.error("websocket推送,内容转码出现异常,异常信息为{}", uee.getMessage()); +// } +// } +// if (alarmPushConfig.getShortMessageAlarm().equals(1)) { +// JSONArray msglist = new JSONArray(); +// JSONObject msgMap = new JSONObject(); +// msgMap.put("time", new SimpleDateFormat("yyyyMMdd HH:mm:ss").format(new Date())); +// msgMap.put("devcode", devcode); +// msgMap.put("value", presss); +// msgMap.put("content", "压力超标"); +// String phoneJson = ""; +// List aliSignNameList = new ArrayList<>(); +// String aliSignName = aliYunConfig.getSignNameJson(); +// if (!org.apache.commons.lang3.StringUtils.isEmpty(alarmPushConfig.getPhoneArray())) { +// String[] phones = alarmPushConfig.getPhoneArray().split(","); +// List phoneList = new ArrayList<>(); +// for (String phone : phones) { +// msglist.add(msgMap); +// phoneList.add(phone); +// aliSignNameList.add(aliSignName); +// } +// phoneJson = JSONObject.toJSONString(phoneList); +// } +// sendBatchSmsUtil.sendMsg(phoneJson, JSON.toJSONString(msgMap), JSONObject.toJSONString(aliSignNameList)); +// } +// } } diff --git a/src/main/java/com/casic/util/ArtemisPostUtil.java b/src/main/java/com/casic/util/ArtemisPostUtil.java index c6655af..3084bde 100644 --- a/src/main/java/com/casic/util/ArtemisPostUtil.java +++ b/src/main/java/com/casic/util/ArtemisPostUtil.java @@ -1,7 +1,5 @@ package com.casic.util; -import com.alibaba.fastjson.JSONObject; -import com.casic.config.ApiHikomConfig; import com.casic.model.HkvideoValidParam; import com.casic.model.ResponseData; //import com.hikvision.artemis.sdk.ArtemisHttpUtil; @@ -10,8 +8,6 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; -import java.util.HashMap; -import java.util.Map; /** * 海康验证 @@ -20,8 +16,8 @@ @Slf4j public class ArtemisPostUtil { - @Resource - private ApiHikomConfig apiHikomConfig; +// @Resource +// private ApiHikomConfig apiHikomConfig; private final String contentType = "application/json"; public ResponseData artemisPost(HkvideoValidParam hkvideoValidParam) { diff --git a/src/main/java/com/casic/util/RedisCommon.java b/src/main/java/com/casic/util/RedisCommon.java index 617d73b..80562b9 100644 --- a/src/main/java/com/casic/util/RedisCommon.java +++ b/src/main/java/com/casic/util/RedisCommon.java @@ -7,6 +7,7 @@ import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; +import java.util.Map; import java.util.concurrent.TimeUnit; @Component @@ -20,6 +21,15 @@ @Autowired private RedisTemplate redisTemplate; + + public Map getMsg(String key) { + // 判断上次保存时间,如果到期(key失效),再保存新的 + String timeStampKey = configPrefix + key; + Object dataJson = redisTemplate.opsForValue().get(timeStampKey); + return JSON.parseObject((String) dataJson); + } + + public void send(CommConfigDTO commConfigDTO,String devCode) { redisTemplate.opsForValue().set(configPrefix+ devCode, JSON.toJSONString(commConfigDTO), diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/casic/config/AliYunConfig.java b/src/main/java/com/casic/config/AliYunConfig.java deleted file mode 100644 index 090b6ab..0000000 --- a/src/main/java/com/casic/config/AliYunConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Slf4j -@Configuration -@ConfigurationProperties(prefix = "casic.ali") -@Data -public class AliYunConfig { - - private String key; - private String screct; - private String url; - private String signNameJson; - private String templateCode; - -} diff --git a/src/main/java/com/casic/config/ApiHikomConfig.java b/src/main/java/com/casic/config/ApiHikomConfig.java deleted file mode 100644 index 73b3550..0000000 --- a/src/main/java/com/casic/config/ApiHikomConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -@Data -public class ApiHikomConfig { - @Value("${casic.hikom.host}") - private String hikomHost; - @Value("${casic.hikom.url}") - private String hikomUrl; -} diff --git a/src/main/java/com/casic/config/task/TaskConfigurer.java b/src/main/java/com/casic/config/task/TaskConfigurer.java new file mode 100644 index 0000000..43282d3 --- /dev/null +++ b/src/main/java/com/casic/config/task/TaskConfigurer.java @@ -0,0 +1,44 @@ +package com.casic.config.task; + +import com.casic.service.DeviceDataService; +import com.casic.service.ThirdDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.config.TriggerTask; +import org.springframework.scheduling.support.CronTrigger; + +/** + * @author cz + */ +@Configuration +@EnableScheduling +public class TaskConfigurer implements SchedulingConfigurer { + + @Value("${casic.device.online.corn}") + private String timeConfig; + @Autowired + private DeviceDataService deviceDataService; + + @Override + public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + TriggerTask triggrtTask = new TriggerTask(nextDayDevice(), + triggerContext -> { + return new CronTrigger(timeConfig).nextExecutionTime(triggerContext); + }); + taskRegistrar.addTriggerTask(triggrtTask); + } + + private Runnable nextDayDevice() { + return new Runnable() { + @Override + public void run() { + deviceDataService.checkAndUpdateDeviceOnline(); + } + }; + } + +} \ No newline at end of file diff --git a/src/main/java/com/casic/controller/AlarmController.java b/src/main/java/com/casic/controller/AlarmController.java deleted file mode 100644 index 957fc36..0000000 --- a/src/main/java/com/casic/controller/AlarmController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmConfigParam; -import com.casic.service.AlarmService; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/alarm") -public class AlarmController { - - private final AlarmService alarmService; - - public AlarmController(AlarmService alarmService) { - this.alarmService = alarmService; - } - - @RequestMapping("/records") - public Object getAlarmRecord(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "currentIndex", required = true) Integer currentIndex, - @RequestParam(value = "devcode",required =false) String devcode, - @RequestParam(value = "pageSize", required = true) Integer pageSize) { - return alarmService.getAlarmRecord(deviceType,currentIndex,pageSize,devcode); - } - - @RequestMapping("/batch/cancel") - public Object excuteAlramBatchCancel(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "devcode",required =false) String devcode) { - return alarmService.excuteAlramBatchCancel(deviceType,devcode); - } - - @RequestMapping("/config/add") - public Object addAlarmConfig(@RequestBody AlarmConfigParam alarmConfigParam) { - return alarmService.addAlarmConfig(alarmConfigParam); - } -} diff --git a/src/main/java/com/casic/controller/AlarmPushController.java b/src/main/java/com/casic/controller/AlarmPushController.java deleted file mode 100644 index 1642f9b..0000000 --- a/src/main/java/com/casic/controller/AlarmPushController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmPushConfig; -import com.casic.service.AlarmPushService; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.*; - -@RestController -@AllArgsConstructor -@RequestMapping("/alarm") -public class AlarmPushController { - - private AlarmPushService alarmPushService; - - @RequestMapping("/push/config") - @ResponseBody - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - return alarmPushService.alarmPushConfig(alarmSwitchConfig); - } - - @RequestMapping("/push/query") - public Object alarmPushQuery(@RequestParam(value = "scene", required = true) String scene) { - return alarmPushService.getAlarmPush(scene); - } - -} diff --git a/src/main/java/com/casic/controller/ArtemisValidController.java b/src/main/java/com/casic/controller/ArtemisValidController.java deleted file mode 100644 index 1d52576..0000000 --- a/src/main/java/com/casic/controller/ArtemisValidController.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.controller; - -import com.casic.model.HkvideoValidParam; -import com.casic.model.ResponseData; -import com.casic.util.ArtemisPostUtil; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 海康接口 - */ -@AllArgsConstructor -@RestController -public class ArtemisValidController { - private final ArtemisPostUtil artemisPostUtill; - - @RequestMapping("/hkvideo/getVideoUrl") - public ResponseData getVideoUrl(@RequestBody HkvideoValidParam hkvideoValidParam) { - - return artemisPostUtill.artemisPost(hkvideoValidParam); - } - -} diff --git a/src/main/java/com/casic/controller/MessagePusherController.java b/src/main/java/com/casic/controller/MessagePusherController.java index d447c05..b97dcd1 100644 --- a/src/main/java/com/casic/controller/MessagePusherController.java +++ b/src/main/java/com/casic/controller/MessagePusherController.java @@ -32,8 +32,7 @@ } catch (UnsupportedEncodingException e) { e.printStackTrace(); } - return retMap; - } + return retMap; } //报警开关按钮 // diff --git a/src/main/java/com/casic/controller/ThirdDataController.java b/src/main/java/com/casic/controller/ThirdDataController.java index d910a7d..fbd8e59 100644 --- a/src/main/java/com/casic/controller/ThirdDataController.java +++ b/src/main/java/com/casic/controller/ThirdDataController.java @@ -1,8 +1,6 @@ package com.casic.controller; import com.alibaba.fastjson.JSON; -import com.casic.model.CommConfigDTO; -import com.casic.model.PressureDataParam; import com.casic.model.ResponseData; import com.casic.service.ThirdDataService; import lombok.extern.slf4j.Slf4j; @@ -10,7 +8,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.HashMap; import java.util.Map; @RestController @@ -24,22 +21,25 @@ this.thirdDataService = thirdDataService; } - @RequestMapping("/pressure/data") - public Object getDeviceRecentData(@RequestBody PressureDataParam pressureData) { - return thirdDataService.getDeviceRecentData(pressureData); + /** + * 硫化氢订阅接口 + * + * @param h2sDataMap + * @return + */ + @RequestMapping("/h2s-data") + public Object h2sData(@RequestBody Map h2sDataMap) { + System.out.println(JSON.toJSON(h2sDataMap)); + return thirdDataService.h2sData(h2sDataMap); } - @RequestMapping("/data") - public Object getDeviceData(@RequestBody Map pressureDataMap) { - System.out.println(JSON.toJSON(pressureDataMap)); - Map map = new HashMap(); - map.put("method", "setParams"); - Map param = new HashMap(); - param.put("ip", "大胆猜测下"); - map.put("status", 200); - map.put("params", param); - map.put("timeout", "3000"); - return map; + @RequestMapping("/test") + public Object testNbResponse (@RequestBody Map h2sDataMap){ + ResponseData responseData=new ResponseData(); + responseData.setCode(200); + responseData.setData("oyAAGDcgFAEAAcMAAQWfAXOJd1POnas6zxTmU7jQkVJinQ=="); + System.out.println(JSON.toJSON(h2sDataMap)); + return responseData; } } diff --git a/src/main/java/com/casic/dao/AlarmPushMapper.java b/src/main/java/com/casic/dao/AlarmPushMapper.java deleted file mode 100644 index 9d7484b..0000000 --- a/src/main/java/com/casic/dao/AlarmPushMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.AlarmPushConfig; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface AlarmPushMapper extends BaseMapper { -} diff --git a/src/main/java/com/casic/dao/AlarmRecordMapper.java b/src/main/java/com/casic/dao/AlarmRecordMapper.java new file mode 100644 index 0000000..d8a4911 --- /dev/null +++ b/src/main/java/com/casic/dao/AlarmRecordMapper.java @@ -0,0 +1,12 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.AlarmRecord; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AlarmRecordMapper extends BaseMapper { + + + +} diff --git a/src/main/java/com/casic/dao/DataH2sMapper.java b/src/main/java/com/casic/dao/DataH2sMapper.java new file mode 100644 index 0000000..434f1e2 --- /dev/null +++ b/src/main/java/com/casic/dao/DataH2sMapper.java @@ -0,0 +1,27 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.DataH2s; +import com.casic.model.DataPressure; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; + +@Mapper +public interface DataH2sMapper extends BaseMapper { + + int clearOnline(@Param("devcode") String devcode); + + String getWellCode(@Param("devcode") String devcode); + + Float getRuleValue(@Param("deviceType") String deviceType); + + int cancelAlarm(@Param("devcode") String devcode, @Param("status") String status); + + String getImeiByDevcode(@Param("devcode") String devcode); + + int updateImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); + + int addImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); +} diff --git a/src/main/java/com/casic/dao/DataPressureMapper.java b/src/main/java/com/casic/dao/DataPressureMapper.java deleted file mode 100644 index 05f4329..0000000 --- a/src/main/java/com/casic/dao/DataPressureMapper.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.DataPressure; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.Date; - -@Mapper -public interface DataPressureMapper extends BaseMapper { - - String getWellCode(@Param("devcode") String devcode); - - Float getRuleValue(@Param("deviceType") String deviceType); - - void saveRecords(@Param("reValue") String reValue, @Param("alarmTime") Date alarmTime); - -} diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java index d9e18a0..e62d526 100644 --- a/src/main/java/com/casic/dao/DeviceDataMapper.java +++ b/src/main/java/com/casic/dao/DeviceDataMapper.java @@ -23,5 +23,14 @@ @Param("pageSize") Integer pageSize, @Param("devcode") String devcode); - String getLevelByType(@Param("deviceType")String deviceType); + String getLevelByType(@Param("deviceType") String deviceType); + + + List getDevcodeByType(@Param("devciceType") Integer devciceType); + + List getRecentData(@Param("devciceType") Integer dataDay); + + List updateOnlineByDevs(@Param("dataSortDevcodeList") List dataSortDevcodeList); + + } diff --git a/src/main/java/com/casic/enums/DeviceTypeEnum.java b/src/main/java/com/casic/enums/DeviceTypeEnum.java new file mode 100644 index 0000000..8d5a6e6 --- /dev/null +++ b/src/main/java/com/casic/enums/DeviceTypeEnum.java @@ -0,0 +1,64 @@ +package com.casic.enums; + + +public enum DeviceTypeEnum { + Well("井盖状态监测仪", 1), + Liquid("液位监测仪", 2), + WasteGas("有害气体监测仪", 3), + Methane("燃气智能监测终端", 4), + TempHumi("温湿度监测仪", 5), + Dig("开挖监测仪", 6), + WellLocator("井盖定位监测仪", 7), + Noise("噪声记录仪", 8), + TempPressure("温度压力监测仪", 9), + FireHydrant("消防栓防盗水监测仪", 11), + Tube("管盯", 12), + LG("井盖液位一体机", 13), + H2s("硫化氢检测终端", 14); + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private DeviceTypeEnum(String name, int index) { + this.name = name; + this.index = index; + } + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } + + public static DeviceTypeEnum getByIndex(String index) { + try { + for (DeviceTypeEnum deviceTypeEnum : values()) { + if (deviceTypeEnum.index == Integer.parseInt(index)) { + return deviceTypeEnum; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } +} \ No newline at end of file diff --git a/src/main/java/com/casic/enums/H2sParamsEnum.java b/src/main/java/com/casic/enums/H2sParamsEnum.java new file mode 100644 index 0000000..74eec50 --- /dev/null +++ b/src/main/java/com/casic/enums/H2sParamsEnum.java @@ -0,0 +1,35 @@ +package com.casic.enums; + +public interface H2sParamsEnum { + + /** + * 下发配置参数 + */ + String IP = "ip"; + String PORT = "port"; + String CTNET = "ctnet"; + String PERIOD = "period"; + String CYCLE = "cycle"; + /** + * 三码上报 + */ + String ICCID = "iccid"; + String IMEI = "imei"; + String DEVCODE = "devcode"; + /** + * 上传时间 + */ + String TS = "ts"; + /** + * 数据上报(电量、硫化氢数据值、设备编号) + * 数据值 + */ + String H2S_VALUE = "h2sValue"; + /** + * 电量 + */ + String BATTERY_VALUE = "batteryValue"; + + + +} diff --git a/src/main/java/com/casic/model/AlarmRecord.java b/src/main/java/com/casic/model/AlarmRecord.java new file mode 100644 index 0000000..600fe5a --- /dev/null +++ b/src/main/java/com/casic/model/AlarmRecord.java @@ -0,0 +1,81 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; + +import java.util.Date; + +@Builder +@TableName("alarm_records") +public class AlarmRecord { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 设备ID + */ + @TableField("DEVICE_ID") + private Long deviceId; + /** + * 设备编号 + */ + @TableField("DEVCODE") + private String devcode; + /** + * 闸井编号 + */ + @TableField("WELL_CODE") + private String wellCode; + /** + * 告警类型 + */ + @TableField("ALARM_TYPE") + private String alarmType; + /** + * 告警内容 + */ + @TableField("ALARM_CONTENT") + private String alarmContent; + /** + * 告警数值 + */ + @TableField("ALARM_VALUE") + private String alarmValue; + /** + * 告警等级 + */ + @TableField("ALARM_LEVEL") + private Integer alarmLevel; + /** + * 告警详情 + */ + @TableField("ALARM_MSG") + private String alarmMessage; + /** + * 告警时间 + */ + @TableField("ALARM_TIME") + private Date alarmTime; + /** + * 告警状态 + */ + @TableField("STATUS") + private String status; + /** + * 工单编号 + */ + @TableField("JOB_ID") + private Long jobId; + + @TableField(exist = false) + private Integer jobStatus; + +} diff --git a/src/main/java/com/casic/model/DataH2s.java b/src/main/java/com/casic/model/DataH2s.java new file mode 100644 index 0000000..16ecc7a --- /dev/null +++ b/src/main/java/com/casic/model/DataH2s.java @@ -0,0 +1,37 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + */ +@Data +@TableName("data_h2s") +public class DataH2s { + + private Long id; + + private String devcode; + + private String wellCode; + + private String cell; + + private String strength; + + private String uptime; + + private String logtime; + + private String descn; + + private String rsrp; + + private String pci; + + private String snr; + +} diff --git a/src/main/java/com/casic/model/DeviceTypeEnum.java b/src/main/java/com/casic/model/DeviceTypeEnum.java deleted file mode 100644 index 26c685f..0000000 --- a/src/main/java/com/casic/model/DeviceTypeEnum.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.casic.model; - - -public enum DeviceTypeEnum { - Well("井盖状态监测仪", 1), - Liquid("液位监测仪", 2), - WasteGas("有害气体监测仪", 3), - Methane("燃气智能监测终端", 4), - TempHumi("温湿度监测仪", 5), - Dig("开挖监测仪", 6), - WellLocator("井盖定位监测仪", 7), - Noise("噪声记录仪", 8), - TempPressure("温度压力监测仪", 9), - FireHydrant("消防栓防盗水监测仪", 11), - Tube("管盯", 12), - LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); - - // 成员变量 - private String name; - private int index; - - // 构造方法 - private DeviceTypeEnum(String name, int index) { - this.name = name; - this.index = index; - } - - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public int getIndex() { - return index; - } - - public void setIndex(int index) { - this.index = index; - } - - public static DeviceTypeEnum getByIndex(String index) { - try { - for (DeviceTypeEnum deviceTypeEnum : values()) { - if (deviceTypeEnum.index == Integer.parseInt(index)) { - return deviceTypeEnum; - } - } - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - //覆盖方法 - @Override - public String toString() { - return this.name; - } -} \ No newline at end of file diff --git a/src/main/java/com/casic/service/AlarmPushService.java b/src/main/java/com/casic/service/AlarmPushService.java deleted file mode 100644 index d180eb2..0000000 --- a/src/main/java/com/casic/service/AlarmPushService.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.service; - -import com.casic.model.AlarmPushConfig; - -public interface AlarmPushService { - - Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig); - - Object getAlarmPush(String scene); - -} - - - diff --git a/src/main/java/com/casic/service/AlarmService.java b/src/main/java/com/casic/service/AlarmService.java deleted file mode 100644 index 4f41038..0000000 --- a/src/main/java/com/casic/service/AlarmService.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.casic.service; - -import com.casic.model.AlarmConfigParam; - -public interface AlarmService { - - Object getAlarmRecord(String deviceType, Integer currentIndex, Integer pageSize, String devcode); - - Object excuteAlramBatchCancel(String deviceType, String devcode); - - Object addAlarmConfig(AlarmConfigParam alarmConfig); - -} diff --git a/src/main/java/com/casic/service/DeviceDataService.java b/src/main/java/com/casic/service/DeviceDataService.java index db656c1..71f8ce9 100644 --- a/src/main/java/com/casic/service/DeviceDataService.java +++ b/src/main/java/com/casic/service/DeviceDataService.java @@ -7,4 +7,6 @@ Object getDeviceListPage(String deviceType, Integer currentIndex, Integer pageSize, String devcode); Object getLevel(String deviceType); + + void checkAndUpdateDeviceOnline(); } diff --git a/src/main/java/com/casic/service/ThirdDataService.java b/src/main/java/com/casic/service/ThirdDataService.java index 795e0b2..31dc516 100644 --- a/src/main/java/com/casic/service/ThirdDataService.java +++ b/src/main/java/com/casic/service/ThirdDataService.java @@ -1,8 +1,11 @@ package com.casic.service; -import com.casic.model.PressureDataParam; +import java.util.Map; public interface ThirdDataService { - Object getDeviceRecentData(PressureDataParam pressureData); + + Object h2sData(Map h2sDataMap); + + } diff --git a/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java b/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java deleted file mode 100644 index d193905..0000000 --- a/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.casic.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.dao.AlarmPushMapper; -import com.casic.model.AlarmPushConfig; -import com.casic.model.ResponseData; -import com.casic.service.AlarmPushService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.dao.DataAccessException; -import org.springframework.stereotype.Service; - -import java.util.List; -import java.util.Optional; - -@Service -@Slf4j -public class AlarmPushServiceImpl extends ServiceImpl implements AlarmPushService { - - @Override - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - ResponseData responseData = new ResponseData(); - try { - QueryWrapper queryWrapper = new QueryWrapper() - .eq("scene", alarmSwitchConfig.getScene()); -// this.baseMapper.delete(deleteWrapper); - this.baseMapper.update(alarmSwitchConfig, queryWrapper); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("报警推送配置新增异常,场景{},异常信息{}", alarmSwitchConfig.getScene(), dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - @Override - public Object getAlarmPush(String scene) { - ResponseData responseData = new ResponseData(); - try { - QueryWrapper queryWrapper = new QueryWrapper() - .eq("scene", scene); - List alarmPushConfigList = this.baseMapper.selectList(queryWrapper); - Optional alarmPushConfigOptional = alarmPushConfigList.stream().findFirst(); - responseData.setData(alarmPushConfigOptional.isPresent() ? alarmPushConfigOptional.get() : new Object()); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("报警推送配置查询异常,场景{},异常信息{}", scene, dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } -} diff --git a/src/main/java/com/casic/service/impl/AlarmServiceImple.java b/src/main/java/com/casic/service/impl/AlarmServiceImple.java deleted file mode 100644 index 8a29af9..0000000 --- a/src/main/java/com/casic/service/impl/AlarmServiceImple.java +++ /dev/null @@ -1,129 +0,0 @@ -package com.casic.service.impl; - -import com.alibaba.druid.util.StringUtils; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.dao.AlarmMapper; -import com.casic.dao.BusConfigMapper; -import com.casic.model.*; -import com.casic.service.AlarmService; -import com.casic.util.DeviceDataTableEnum; -import com.casic.util.RedisCommon; -import lombok.extern.slf4j.Slf4j; -import org.springframework.dao.DataAccessException; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import javax.annotation.Resource; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -@Slf4j -@Service -public class AlarmServiceImple extends ServiceImpl implements AlarmService { - - @Resource - private BusConfigMapper busConfigMapper; - @Resource - private RedisCommon redisCommonUtil; - - @Override - public Object getAlarmRecord(String deviceType, Integer currentIndex, Integer pageSize, String devcode) { - ResponseData responseData = new ResponseData(); - try { - Map page = new HashMap(); - page.put("total", this.baseMapper.getAlarmTotalRecord(deviceType, devcode)); - List> alarmRecordList = this.baseMapper.getAlarmRecord(deviceType, devcode, pageSize * (currentIndex - 1), pageSize); - page.put("rows", alarmRecordList); - responseData.setData(page); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("设备数据查询异常,设备类型{},异常信息{}", deviceType, dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - @Override - @Transactional - public Object excuteAlramBatchCancel(String deviceType, String devcode) { - ResponseData responseData = new ResponseData(); - try { - this.baseMapper.excuteAlramBatchCancel(deviceType, devcode); - this.baseMapper.excuteJobBatchCancel(deviceType, devcode); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("批量消警异常,设备类型{},异常信息{}", deviceType, dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - @Override - @Transactional - public Object addAlarmConfig(AlarmConfigParam alarmConfigParam) { - ResponseData responseData = new ResponseData(); - try { - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - addBusConfig(alarmConfigParam); - addRuleConfig(alarmConfigParam); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("风险配置异常,异常信息{}", dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - private void addRuleConfig(AlarmConfigParam alarmConfigParam) { - Map alarmRuleMap = new HashMap(); - alarmRuleMap.put("DEVICE_TYPE", alarmConfigParam.getDeviceType()); - this.baseMapper.deleteByMap(alarmRuleMap); - AlarmLevel alarmRule = new AlarmLevel(); - DeviceDataTableEnum deviceDataTableEnum = DeviceDataTableEnum.DEVICE_TYPE_TABLE.getTableNameMap() - .get(Integer.valueOf(alarmConfigParam.getDeviceType())); - alarmRule.setName(deviceDataTableEnum.getTypeName()); - alarmRule.setHighValue(Float.valueOf(alarmConfigParam.getThresholdVol())); - alarmRule.setTs(new Date()); - alarmRule.setLevel(1); - alarmRule.setDeviceType(alarmConfigParam.getDeviceType()); - this.baseMapper.insert(alarmRule); - } - - private void addBusConfig(AlarmConfigParam alarmConfigParam) { - String devcode = StringUtils.isEmpty(alarmConfigParam.getDevcode()) ? this.baseMapper.getDeviceDevcode(alarmConfigParam.getDeviceType()) : alarmConfigParam.getDevcode(); - sendBusConfig(alarmConfigParam, devcode); - String devcideId = this.baseMapper.getDeviceByDevcode(alarmConfigParam.getDeviceType(), devcode); - BusConfig busConfig = new BusConfig(); - busConfig.setDeviceId(devcideId); - busConfig.setFramecontent("3," + alarmConfigParam.getCollectInterval() + "," + alarmConfigParam.getCollectInterval() + - "," + alarmConfigParam.getRetryNum() + "," + alarmConfigParam.getIp() + "," + alarmConfigParam.getPort()); - busConfig.setSensorid(""); - busConfig.setStatus("0"); - busConfig.setAttemptscurrent(0); - busConfig.setWritetime(new Date()); - busConfig.setAttemptsmax(3); - busConfigMapper.insert(busConfig); - } - - private void sendBusConfig(AlarmConfigParam alarmConfigParam, String devcode) { - CommConfigDTO commConfigDTO = new CommConfigDTO(); - commConfigDTO.setInterval(StringUtils.isEmpty(alarmConfigParam.getCollectInterval()) ? 300 : Long.valueOf(alarmConfigParam.getCollectInterval())); - commConfigDTO.setRepeat(StringUtils.isEmpty(alarmConfigParam.getRetryNum()) ? 300 : Long.valueOf(alarmConfigParam.getRetryNum())); -// commConfigDTO.setTimes(Long.valueOf(1)); -// commConfigDTO.setIp(alarmConfigParam.getIp()); -// commConfigDTO.setPort(StringUtils.isEmpty(alarmConfigParam.getPort()) ? 8080 : Long.valueOf(alarmConfigParam.getPort())); - commConfigDTO.setPeriod(StringUtils.isEmpty(alarmConfigParam.getUploadCycle()) ? 300 : Long.valueOf(alarmConfigParam.getUploadCycle())); -// commConfigDTO.setThresh(); - commConfigDTO.setThresh(StringUtils.isEmpty(alarmConfigParam.getThresholdVol()) ? 50 : Float.valueOf(alarmConfigParam.getThresholdVol())); - redisCommonUtil.send(commConfigDTO, devcode); - } - - -} diff --git a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java index e35daef..136912f 100644 --- a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java +++ b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java @@ -1,27 +1,36 @@ package com.casic.service.impl; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.casic.dao.DeviceDataMapper; import com.casic.model.ResponseData; import com.casic.service.DeviceDataService; import com.casic.util.DeviceDataFieldTableEnum; import com.casic.util.DeviceDataTableEnum; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collector; +import java.util.stream.Collectors; @Service @Slf4j +@RequiredArgsConstructor public class DeviceDataServiceImpl implements DeviceDataService { - private final DeviceDataMapper deviceDataMapper; + @Value("${casic.device.type}") + private Integer devciceType; - public DeviceDataServiceImpl(DeviceDataMapper deviceDataMapper) { - this.deviceDataMapper = deviceDataMapper; - } + @Value("${casic.device.data-day}") + private Integer dataDay; + + private final DeviceDataMapper deviceDataMapper; @Override public Object getDeviceRecentData(String deviceType, String recentNum, String devcode) { @@ -80,4 +89,26 @@ return responseData; } + @Override + @Transactional + public void checkAndUpdateDeviceOnline() { + //查询硫化氢设备 + List String = deviceDataMapper.getDevcodeByType(devciceType); + //统一查询所有设备的3天内数据的设备编号,然后设备编号转成map,进行 + List dataList = deviceDataMapper.getRecentData(dataDay); + List dataSortDevcodeList = dataList; + if (dataList != null) { + Map devOnlineMap = new HashMap<>(); + for (String devcodeData : dataList) { + devOnlineMap.put(devcodeData, ""); + } + dataSortDevcodeList = dataSortDevcodeList.stream().filter( + e -> !devOnlineMap.containsKey(e)).collect(Collectors.toList()); + } + //统一更新 + if (CollectionUtils.isNotEmpty(dataList)) { + deviceDataMapper.updateOnlineByDevs(dataSortDevcodeList); + } + } + } diff --git a/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java b/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java index 7ac6bc1..9d28170 100644 --- a/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java +++ b/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java @@ -2,158 +2,194 @@ import com.alibaba.druid.util.StringUtils; import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.config.AliYunConfig; -import com.casic.dao.DataPressureMapper; -import com.casic.model.AlarmPushConfig; -import com.casic.model.DataPressure; -import com.casic.model.PressureDataParam; -import com.casic.model.ResponseData; -import com.casic.service.AlarmPushService; -import com.casic.service.MessagePusherService; +import com.casic.dao.AlarmRecordMapper; +import com.casic.dao.DataH2sMapper; +import com.casic.enums.H2sParamsEnum; +import com.casic.model.AlarmRecord; +import com.casic.model.DataH2s; import com.casic.service.ThirdDataService; -import com.casic.util.SendBatchSmsUtil; +import com.casic.util.RedisCommon; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; -import java.io.UnsupportedEncodingException; -import java.net.URLDecoder; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.*; -import java.util.stream.Collectors; @Service @Slf4j -public class ThirdDataServiceImpl extends ServiceImpl implements ThirdDataService { +@RequiredArgsConstructor +public class ThirdDataServiceImpl extends ServiceImpl implements ThirdDataService, H2sParamsEnum { private final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA); - - @Autowired - private AlarmPushService alarmPushService; - - @Autowired - private MessagePusherService messagePusherService; - - @Autowired - private SendBatchSmsUtil sendBatchSmsUtil; - + private final RedisCommon redisCommon; + private final AlarmRecordMapper alarmRecordMapper; @Override - public Object getDeviceRecentData(PressureDataParam pressureDataParam) { - ResponseData responseData = new ResponseData(); + public Object h2sData(Map h2sDataMap) { try { - batchSave(pressureDataParam); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); + if (h2sDataMap.containsKey(ICCID)) { + //开机上报->存储映射管理->查询是否有下发配置-进行回应 + return powerOnReport(h2sDataMap); + } else if (h2sDataMap.containsKey(H2S_VALUE)) { //数据上报 + if (ObjectUtils.isNotEmpty(h2sDataMap.get(DEVCODE))) { + //清除离线-清除报警-报警-存库-查询是否有下发配置-进行回应 + return dataSave(h2sDataMap); + } + } } catch (DataAccessException dae) { - log.error("设备最近数据查询异常,设备类型{},异常信息{}", dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); + log.error("设备上报数据异常,设备传入的json是{},异常信息{}", dae.getMessage()); } - return responseData; + return defaultDeliveryConfig(null); } - private void batchSave(PressureDataParam pressureDataParam) { - String pressureDataJson = pressureDataParam.getRawData(); - log.info("----" + pressureDataJson); - Map pressureDataMap = JSON.parseObject(pressureDataJson, HashMap.class); - Date uptime = null; - try { - uptime = dateFormat.parse(String.valueOf(pressureDataMap.get("times"))); - } catch (Exception e) { - log.error("主题,采集时间解析异常,异常信息{}", e.getMessage()); - } - List> pressureDataList = (List>) pressureDataMap.get("sensorDatas"); - DataPressure dataPressure = initPrssureData(pressureDataList, uptime); - if (dataPressure == null) { - return; - } - checkAlarm(dataPressure); + + private Map defaultDeliveryConfig(Map configDataMap) { + Map map = new HashMap(); + //必带参数,否则会被thingsboard舍弃 + map.put("method", "setParams"); + //判断是否有下发配置必须 + map.put("status", ObjectUtils.isNotEmpty(configDataMap) ? 200 : 201); + map.put("params", configDataMap); + //可省略 + map.put("timeout", "3000"); + return map; } - private DataPressure initPrssureData(List> pressureDataList, Date uptime) { - DataPressure dataPressure = new DataPressure(); - String devcode = pressureDataList.get(pressureDataList.size() - 1).get("str"); - Map pressureDataMap = pressureDataList.stream().collect( - Collectors.toMap(e -> String.valueOf(e.get("flag")), e -> String.valueOf(e.get("value"))) - ); -// if (CacheUtil.serialBuf.get(devcode)!=null&&CacheUtil.serialBuf.get(devcode).equals(pressureDataMap.get("F"))) { -// return null; -// } + /** + * 开机上报->储存,是否有下发配置,选择合适的格式返回 + * + * @param h2sDataMap + */ + private Map powerOnReport(Map h2sDataMap) { + /** + * 三码上报 + */ + String iccid = (String) h2sDataMap.get(ICCID); + String imei = (String) h2sDataMap.get(IMEI); + String devcode = (String) h2sDataMap.get(DEVCODE); + //清除离线 + this.baseMapper.clearOnline(devcode); + //先查,是否有数据,有数据直接覆盖,否则插入数据 + String isImei = this.baseMapper.getImeiByDevcode(devcode); + int save = StringUtils.isEmpty(isImei) ? this.baseMapper.addImeiDevcode(devcode, imei, iccid) : + this.baseMapper.updateImeiDevcode(devcode, imei, iccid); + if (save > 0) { + //保存三码关系 + Map configDataMap = redisCommon.getMsg((String) h2sDataMap.get(DEVCODE)); + if (ObjectUtils.isNotEmpty(configDataMap)) { + return defaultDeliveryConfig(configDataMap); + } + } else { + throw new RuntimeException("三码上传保存异常,异常数据为" + JSON.toJSON(h2sDataMap)); + } + return defaultDeliveryConfig(null); + } + + private Map dataSave(Map h2sDataMap) { + DataH2s dataH2s = initH2sData(h2sDataMap); + this.baseMapper.clearOnline((String) h2sDataMap.get(DEVCODE)); + if (ObjectUtils.isNotEmpty(dataH2s)) { + checkAlarm(dataH2s); + Map configDataMap = redisCommon.getMsg((String) h2sDataMap.get(DEVCODE)); + if (ObjectUtils.isNotEmpty(configDataMap)) { + return defaultDeliveryConfig(configDataMap); + } + } + return defaultDeliveryConfig(null); + } + + private DataH2s initH2sData(Map h2sDataMap) { + DataH2s dataH2s = new DataH2s(); + String devcode = (String) h2sDataMap.get(DEVCODE); String wellCode = this.baseMapper.getWellCode(devcode); - dataPressure.setWellCode(wellCode); - dataPressure.setDevcode(devcode); - dataPressure.setPci(pressureDataMap.get("Q")); - dataPressure.setCell(Float.valueOf(pressureDataMap.get("V"))); - dataPressure.setTemperature(pressureDataMap.get("T")); - dataPressure.setPress(pressureDataMap.get("F")); - dataPressure.setUptime(dateFormat.format(uptime)); - dataPressure.setLogtime(dateFormat.format(new Date())); - this.baseMapper.insert(dataPressure); -// CacheUtil.serialBuf.put(devcode, pressureDataMap.get("F")); - return dataPressure; + dataH2s.setWellCode(wellCode); + dataH2s.setDevcode(devcode); + dataH2s.setStrength((String) h2sDataMap.get(H2S_VALUE)); + dataH2s.setCell((String) h2sDataMap.get(BATTERY_VALUE)); + dataH2s.setUptime(dateFormat.format(new Date())); + dataH2s.setLogtime(dateFormat.format(new Date())); + this.baseMapper.insert(dataH2s); + return dataH2s; } - private void checkAlarm(DataPressure dataPressure) { + /** + * 检查是否有报警 + * + * @param dataH2s + */ + private void checkAlarm(DataH2s dataH2s) { final Float ruleValue = this.baseMapper.getRuleValue("24"); if (ruleValue == null) { return; } - if (!StringUtils.isEmpty(dataPressure.getPress()) && !dataPressure.getPress().equals("null")) { - if (Float.valueOf(dataPressure.getPress()) > ruleValue) { - this.baseMapper.saveRecords(dataPressure.getPress(), new Date()); - alarmPushBuilder(dataPressure.getDevcode(), dataPressure.getPress()); + if (!StringUtils.isEmpty(dataH2s.getStrength()) && !"null".equals(dataH2s.getStrength())) { + String status = "3"; + if (Float.valueOf(dataH2s.getStrength()) > ruleValue) { + //因新的报警消警 “0” + status = "0"; + alarmRecordMapper.insert(buildAlarmRecord(dataH2s)); } + this.baseMapper.cancelAlarm(dataH2s.getDevcode(), status); } } + private AlarmRecord buildAlarmRecord(DataH2s dataH2s) { + AlarmRecord alarmRecord = AlarmRecord.builder() + .devcode(dataH2s.getDevcode()) + .wellCode(dataH2s.getWellCode()) + .alarmType(dataH2s.getStrength()) + .alarmMessage("浓度超限") + .deviceId(dataH2s.getId()) + .alarmType("1") + .alarmContent("浓度超限") + .status("1") + .build(); + return alarmRecord; + } + // "在2023年1月12号 16时43分23秒,设备41232561发生了压力超标/浓度超限,数值为20" // + "设备" + devcode + "发生了压力超标,压力值为" + presss - // - @Autowired - private AliYunConfig aliYunConfig; - private void alarmPushBuilder(String devcode, String presss) { - ResponseData responseData = (ResponseData) alarmPushService.getAlarmPush("H2S"); - AlarmPushConfig alarmPushConfig = (AlarmPushConfig) responseData.getData(); - if (alarmPushConfig.getEnable().equals(1)) { - if (alarmPushConfig.getWebsocketAlarm().equals(1)) { - String msg = "在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "," - + "设备" + devcode + "发生了压力超标,压力值为" + presss; - try { - messagePusherService.updateSinkJob("", URLDecoder.decode(msg, "UTF-8")); - } catch (UnsupportedEncodingException uee) { - log.error("websocket推送,内容转码出现异常,异常信息为{}", uee.getMessage()); - } - } - if (alarmPushConfig.getShortMessageAlarm().equals(1)) { - JSONArray msglist = new JSONArray(); - JSONObject msgMap = new JSONObject(); - msgMap.put("time", new SimpleDateFormat("yyyyMMdd HH:mm:ss").format(new Date())); - msgMap.put("devcode", devcode); - msgMap.put("value", presss); - msgMap.put("content", "压力超标"); - String phoneJson = ""; - List aliSignNameList = new ArrayList<>(); - String aliSignName = aliYunConfig.getSignNameJson(); - if (!org.apache.commons.lang3.StringUtils.isEmpty(alarmPushConfig.getPhoneArray())) { - String[] phones = alarmPushConfig.getPhoneArray().split(","); - List phoneList = new ArrayList<>(); - for (String phone : phones) { - msglist.add(msgMap); - phoneList.add(phone); - aliSignNameList.add(aliSignName); - } - phoneJson = JSONObject.toJSONString(phoneList); - } - sendBatchSmsUtil.sendMsg(phoneJson, JSON.toJSONString(msgMap),JSONObject.toJSONString(aliSignNameList)); - } - } +// ResponseData responseData = (ResponseData) alarmPushService.getAlarmPush("H2S"); +// AlarmPushConfig alarmPushConfig = (AlarmPushConfig) responseData.getData(); +// if (alarmPushConfig.getEnable().equals(1)) { +// if (alarmPushConfig.getWebsocketAlarm().equals(1)) { +// String msg = "在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "," +// + "设备" + devcode + "发生了压力超标,压力值为" + presss; +// try { +// messagePusherService.updateSinkJob("", URLDecoder.decode(msg, "UTF-8")); +// } catch (UnsupportedEncodingException uee) { +// log.error("websocket推送,内容转码出现异常,异常信息为{}", uee.getMessage()); +// } +// } +// if (alarmPushConfig.getShortMessageAlarm().equals(1)) { +// JSONArray msglist = new JSONArray(); +// JSONObject msgMap = new JSONObject(); +// msgMap.put("time", new SimpleDateFormat("yyyyMMdd HH:mm:ss").format(new Date())); +// msgMap.put("devcode", devcode); +// msgMap.put("value", presss); +// msgMap.put("content", "压力超标"); +// String phoneJson = ""; +// List aliSignNameList = new ArrayList<>(); +// String aliSignName = aliYunConfig.getSignNameJson(); +// if (!org.apache.commons.lang3.StringUtils.isEmpty(alarmPushConfig.getPhoneArray())) { +// String[] phones = alarmPushConfig.getPhoneArray().split(","); +// List phoneList = new ArrayList<>(); +// for (String phone : phones) { +// msglist.add(msgMap); +// phoneList.add(phone); +// aliSignNameList.add(aliSignName); +// } +// phoneJson = JSONObject.toJSONString(phoneList); +// } +// sendBatchSmsUtil.sendMsg(phoneJson, JSON.toJSONString(msgMap), JSONObject.toJSONString(aliSignNameList)); +// } +// } } diff --git a/src/main/java/com/casic/util/ArtemisPostUtil.java b/src/main/java/com/casic/util/ArtemisPostUtil.java index c6655af..3084bde 100644 --- a/src/main/java/com/casic/util/ArtemisPostUtil.java +++ b/src/main/java/com/casic/util/ArtemisPostUtil.java @@ -1,7 +1,5 @@ package com.casic.util; -import com.alibaba.fastjson.JSONObject; -import com.casic.config.ApiHikomConfig; import com.casic.model.HkvideoValidParam; import com.casic.model.ResponseData; //import com.hikvision.artemis.sdk.ArtemisHttpUtil; @@ -10,8 +8,6 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; -import java.util.HashMap; -import java.util.Map; /** * 海康验证 @@ -20,8 +16,8 @@ @Slf4j public class ArtemisPostUtil { - @Resource - private ApiHikomConfig apiHikomConfig; +// @Resource +// private ApiHikomConfig apiHikomConfig; private final String contentType = "application/json"; public ResponseData artemisPost(HkvideoValidParam hkvideoValidParam) { diff --git a/src/main/java/com/casic/util/RedisCommon.java b/src/main/java/com/casic/util/RedisCommon.java index 617d73b..80562b9 100644 --- a/src/main/java/com/casic/util/RedisCommon.java +++ b/src/main/java/com/casic/util/RedisCommon.java @@ -7,6 +7,7 @@ import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; +import java.util.Map; import java.util.concurrent.TimeUnit; @Component @@ -20,6 +21,15 @@ @Autowired private RedisTemplate redisTemplate; + + public Map getMsg(String key) { + // 判断上次保存时间,如果到期(key失效),再保存新的 + String timeStampKey = configPrefix + key; + Object dataJson = redisTemplate.opsForValue().get(timeStampKey); + return JSON.parseObject((String) dataJson); + } + + public void send(CommConfigDTO commConfigDTO,String devCode) { redisTemplate.opsForValue().set(configPrefix+ devCode, JSON.toJSONString(commConfigDTO), diff --git a/src/main/java/com/casic/util/SendBatchSmsUtil.java b/src/main/java/com/casic/util/SendBatchSmsUtil.java deleted file mode 100644 index 6152c60..0000000 --- a/src/main/java/com/casic/util/SendBatchSmsUtil.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.casic.util; -// This file is auto-generated, don't edit it. Thanks. - -import com.alibaba.fastjson.JSONObject; -import com.aliyun.auth.credentials.Credential; -import com.aliyun.auth.credentials.provider.StaticCredentialProvider; -import com.aliyun.sdk.service.dysmsapi20170525.models.*; -import com.aliyun.sdk.service.dysmsapi20170525.*; -import com.casic.config.AliYunConfig; -import com.google.gson.Gson; -import darabonba.core.client.ClientOverrideConfiguration; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import java.text.SimpleDateFormat; -import java.time.Duration; -import java.util.*; -import java.util.concurrent.CompletableFuture; - -@AllArgsConstructor -@Component -@Slf4j -public class SendBatchSmsUtil { - - private AliYunConfig aliYunConfig; - - public void sendMsg(String phoneJson, String msgJson,String aliSignNameJson) { - StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder() - .accessKeyId(aliYunConfig.getKey()) - .accessKeySecret(aliYunConfig.getScrect()) - .build()); - - AsyncClient client = AsyncClient.builder() - .region("cn-shanghai") // Region ID - .credentialsProvider(provider) - .overrideConfiguration( - ClientOverrideConfiguration.create() - .setEndpointOverride(aliYunConfig.getUrl()) - .setConnectTimeout(Duration.ofSeconds(30)) - ) - .build(); - - SendBatchSmsRequest sendBatchSmsRequest = SendBatchSmsRequest.builder() - .phoneNumberJson(phoneJson) - .signNameJson(aliSignNameJson) - .templateCode(aliYunConfig.getTemplateCode()) - .templateParamJson(msgJson) - .build(); - - CompletableFuture response = client.sendBatchSms(sendBatchSmsRequest); - try { - SendBatchSmsResponse resp = response.get(); - System.out.println(new Gson().toJson(resp)); - } catch (Exception ex) { - log.error("发送消息出现异常,手机号内容为{},信息内容为{}",phoneJson,msgJson,ex.getMessage()); - }finally { - client.close(); - } - } - - -// public static void main(String[] args) throws Exception { -// StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder() -// .accessKeyId("LTAI5tDFNucQF2Bdy4fHgzrN") -// .accessKeySecret("hZ22QQPxQue1G0R8Ty2bo6GimrLdoB") -// .build()); -// -// AsyncClient client = AsyncClient.builder() -// .region("cn-shanghai") // Region ID -// .credentialsProvider(provider) -// .overrideConfiguration( -// ClientOverrideConfiguration.create() -// .setEndpointOverride("dysmsapi.aliyuncs.com") -// .setConnectTimeout(Duration.ofSeconds(30)) -// ) -// .build(); -// List> msgList = new ArrayList<>(); -// Map msgMap = new HashMap<>(); -// msgMap.put("time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); -// msgMap.put("devcode", "123456"); -// msgMap.put("value", "24Vol"); -// msgMap.put("content", "浓度超限"); -// msgList.add(msgMap); -// Map msgMapCoye=(Map)((HashMap) msgMap).clone(); -// msgList.add(msgMapCoye); -// System.out.println(JSONObject.toJSONString(msgList)); -// SendBatchSmsRequest sendBatchSmsRequest = SendBatchSmsRequest.builder() -// .phoneNumberJson("[\"13651065090\",\"13652031267\"]") -// .signNameJson("[\"柴壮告警提醒\",\"柴壮告警提醒\"]") -// .templateCode("SMS_268475055") -// .templateParamJson(JSONObject.toJSONString(msgList)) -// .build(); -// -// CompletableFuture response = client.sendBatchSms(sendBatchSmsRequest); -// SendBatchSmsResponse resp = response.get(); -// System.out.println(new Gson().toJson(resp)); -// client.close(); -// } - -} \ No newline at end of file diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/casic/config/AliYunConfig.java b/src/main/java/com/casic/config/AliYunConfig.java deleted file mode 100644 index 090b6ab..0000000 --- a/src/main/java/com/casic/config/AliYunConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Slf4j -@Configuration -@ConfigurationProperties(prefix = "casic.ali") -@Data -public class AliYunConfig { - - private String key; - private String screct; - private String url; - private String signNameJson; - private String templateCode; - -} diff --git a/src/main/java/com/casic/config/ApiHikomConfig.java b/src/main/java/com/casic/config/ApiHikomConfig.java deleted file mode 100644 index 73b3550..0000000 --- a/src/main/java/com/casic/config/ApiHikomConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -@Data -public class ApiHikomConfig { - @Value("${casic.hikom.host}") - private String hikomHost; - @Value("${casic.hikom.url}") - private String hikomUrl; -} diff --git a/src/main/java/com/casic/config/task/TaskConfigurer.java b/src/main/java/com/casic/config/task/TaskConfigurer.java new file mode 100644 index 0000000..43282d3 --- /dev/null +++ b/src/main/java/com/casic/config/task/TaskConfigurer.java @@ -0,0 +1,44 @@ +package com.casic.config.task; + +import com.casic.service.DeviceDataService; +import com.casic.service.ThirdDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.config.TriggerTask; +import org.springframework.scheduling.support.CronTrigger; + +/** + * @author cz + */ +@Configuration +@EnableScheduling +public class TaskConfigurer implements SchedulingConfigurer { + + @Value("${casic.device.online.corn}") + private String timeConfig; + @Autowired + private DeviceDataService deviceDataService; + + @Override + public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + TriggerTask triggrtTask = new TriggerTask(nextDayDevice(), + triggerContext -> { + return new CronTrigger(timeConfig).nextExecutionTime(triggerContext); + }); + taskRegistrar.addTriggerTask(triggrtTask); + } + + private Runnable nextDayDevice() { + return new Runnable() { + @Override + public void run() { + deviceDataService.checkAndUpdateDeviceOnline(); + } + }; + } + +} \ No newline at end of file diff --git a/src/main/java/com/casic/controller/AlarmController.java b/src/main/java/com/casic/controller/AlarmController.java deleted file mode 100644 index 957fc36..0000000 --- a/src/main/java/com/casic/controller/AlarmController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmConfigParam; -import com.casic.service.AlarmService; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/alarm") -public class AlarmController { - - private final AlarmService alarmService; - - public AlarmController(AlarmService alarmService) { - this.alarmService = alarmService; - } - - @RequestMapping("/records") - public Object getAlarmRecord(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "currentIndex", required = true) Integer currentIndex, - @RequestParam(value = "devcode",required =false) String devcode, - @RequestParam(value = "pageSize", required = true) Integer pageSize) { - return alarmService.getAlarmRecord(deviceType,currentIndex,pageSize,devcode); - } - - @RequestMapping("/batch/cancel") - public Object excuteAlramBatchCancel(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "devcode",required =false) String devcode) { - return alarmService.excuteAlramBatchCancel(deviceType,devcode); - } - - @RequestMapping("/config/add") - public Object addAlarmConfig(@RequestBody AlarmConfigParam alarmConfigParam) { - return alarmService.addAlarmConfig(alarmConfigParam); - } -} diff --git a/src/main/java/com/casic/controller/AlarmPushController.java b/src/main/java/com/casic/controller/AlarmPushController.java deleted file mode 100644 index 1642f9b..0000000 --- a/src/main/java/com/casic/controller/AlarmPushController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmPushConfig; -import com.casic.service.AlarmPushService; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.*; - -@RestController -@AllArgsConstructor -@RequestMapping("/alarm") -public class AlarmPushController { - - private AlarmPushService alarmPushService; - - @RequestMapping("/push/config") - @ResponseBody - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - return alarmPushService.alarmPushConfig(alarmSwitchConfig); - } - - @RequestMapping("/push/query") - public Object alarmPushQuery(@RequestParam(value = "scene", required = true) String scene) { - return alarmPushService.getAlarmPush(scene); - } - -} diff --git a/src/main/java/com/casic/controller/ArtemisValidController.java b/src/main/java/com/casic/controller/ArtemisValidController.java deleted file mode 100644 index 1d52576..0000000 --- a/src/main/java/com/casic/controller/ArtemisValidController.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.controller; - -import com.casic.model.HkvideoValidParam; -import com.casic.model.ResponseData; -import com.casic.util.ArtemisPostUtil; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 海康接口 - */ -@AllArgsConstructor -@RestController -public class ArtemisValidController { - private final ArtemisPostUtil artemisPostUtill; - - @RequestMapping("/hkvideo/getVideoUrl") - public ResponseData getVideoUrl(@RequestBody HkvideoValidParam hkvideoValidParam) { - - return artemisPostUtill.artemisPost(hkvideoValidParam); - } - -} diff --git a/src/main/java/com/casic/controller/MessagePusherController.java b/src/main/java/com/casic/controller/MessagePusherController.java index d447c05..b97dcd1 100644 --- a/src/main/java/com/casic/controller/MessagePusherController.java +++ b/src/main/java/com/casic/controller/MessagePusherController.java @@ -32,8 +32,7 @@ } catch (UnsupportedEncodingException e) { e.printStackTrace(); } - return retMap; - } + return retMap; } //报警开关按钮 // diff --git a/src/main/java/com/casic/controller/ThirdDataController.java b/src/main/java/com/casic/controller/ThirdDataController.java index d910a7d..fbd8e59 100644 --- a/src/main/java/com/casic/controller/ThirdDataController.java +++ b/src/main/java/com/casic/controller/ThirdDataController.java @@ -1,8 +1,6 @@ package com.casic.controller; import com.alibaba.fastjson.JSON; -import com.casic.model.CommConfigDTO; -import com.casic.model.PressureDataParam; import com.casic.model.ResponseData; import com.casic.service.ThirdDataService; import lombok.extern.slf4j.Slf4j; @@ -10,7 +8,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.HashMap; import java.util.Map; @RestController @@ -24,22 +21,25 @@ this.thirdDataService = thirdDataService; } - @RequestMapping("/pressure/data") - public Object getDeviceRecentData(@RequestBody PressureDataParam pressureData) { - return thirdDataService.getDeviceRecentData(pressureData); + /** + * 硫化氢订阅接口 + * + * @param h2sDataMap + * @return + */ + @RequestMapping("/h2s-data") + public Object h2sData(@RequestBody Map h2sDataMap) { + System.out.println(JSON.toJSON(h2sDataMap)); + return thirdDataService.h2sData(h2sDataMap); } - @RequestMapping("/data") - public Object getDeviceData(@RequestBody Map pressureDataMap) { - System.out.println(JSON.toJSON(pressureDataMap)); - Map map = new HashMap(); - map.put("method", "setParams"); - Map param = new HashMap(); - param.put("ip", "大胆猜测下"); - map.put("status", 200); - map.put("params", param); - map.put("timeout", "3000"); - return map; + @RequestMapping("/test") + public Object testNbResponse (@RequestBody Map h2sDataMap){ + ResponseData responseData=new ResponseData(); + responseData.setCode(200); + responseData.setData("oyAAGDcgFAEAAcMAAQWfAXOJd1POnas6zxTmU7jQkVJinQ=="); + System.out.println(JSON.toJSON(h2sDataMap)); + return responseData; } } diff --git a/src/main/java/com/casic/dao/AlarmPushMapper.java b/src/main/java/com/casic/dao/AlarmPushMapper.java deleted file mode 100644 index 9d7484b..0000000 --- a/src/main/java/com/casic/dao/AlarmPushMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.AlarmPushConfig; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface AlarmPushMapper extends BaseMapper { -} diff --git a/src/main/java/com/casic/dao/AlarmRecordMapper.java b/src/main/java/com/casic/dao/AlarmRecordMapper.java new file mode 100644 index 0000000..d8a4911 --- /dev/null +++ b/src/main/java/com/casic/dao/AlarmRecordMapper.java @@ -0,0 +1,12 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.AlarmRecord; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AlarmRecordMapper extends BaseMapper { + + + +} diff --git a/src/main/java/com/casic/dao/DataH2sMapper.java b/src/main/java/com/casic/dao/DataH2sMapper.java new file mode 100644 index 0000000..434f1e2 --- /dev/null +++ b/src/main/java/com/casic/dao/DataH2sMapper.java @@ -0,0 +1,27 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.DataH2s; +import com.casic.model.DataPressure; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; + +@Mapper +public interface DataH2sMapper extends BaseMapper { + + int clearOnline(@Param("devcode") String devcode); + + String getWellCode(@Param("devcode") String devcode); + + Float getRuleValue(@Param("deviceType") String deviceType); + + int cancelAlarm(@Param("devcode") String devcode, @Param("status") String status); + + String getImeiByDevcode(@Param("devcode") String devcode); + + int updateImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); + + int addImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); +} diff --git a/src/main/java/com/casic/dao/DataPressureMapper.java b/src/main/java/com/casic/dao/DataPressureMapper.java deleted file mode 100644 index 05f4329..0000000 --- a/src/main/java/com/casic/dao/DataPressureMapper.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.DataPressure; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.Date; - -@Mapper -public interface DataPressureMapper extends BaseMapper { - - String getWellCode(@Param("devcode") String devcode); - - Float getRuleValue(@Param("deviceType") String deviceType); - - void saveRecords(@Param("reValue") String reValue, @Param("alarmTime") Date alarmTime); - -} diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java index d9e18a0..e62d526 100644 --- a/src/main/java/com/casic/dao/DeviceDataMapper.java +++ b/src/main/java/com/casic/dao/DeviceDataMapper.java @@ -23,5 +23,14 @@ @Param("pageSize") Integer pageSize, @Param("devcode") String devcode); - String getLevelByType(@Param("deviceType")String deviceType); + String getLevelByType(@Param("deviceType") String deviceType); + + + List getDevcodeByType(@Param("devciceType") Integer devciceType); + + List getRecentData(@Param("devciceType") Integer dataDay); + + List updateOnlineByDevs(@Param("dataSortDevcodeList") List dataSortDevcodeList); + + } diff --git a/src/main/java/com/casic/enums/DeviceTypeEnum.java b/src/main/java/com/casic/enums/DeviceTypeEnum.java new file mode 100644 index 0000000..8d5a6e6 --- /dev/null +++ b/src/main/java/com/casic/enums/DeviceTypeEnum.java @@ -0,0 +1,64 @@ +package com.casic.enums; + + +public enum DeviceTypeEnum { + Well("井盖状态监测仪", 1), + Liquid("液位监测仪", 2), + WasteGas("有害气体监测仪", 3), + Methane("燃气智能监测终端", 4), + TempHumi("温湿度监测仪", 5), + Dig("开挖监测仪", 6), + WellLocator("井盖定位监测仪", 7), + Noise("噪声记录仪", 8), + TempPressure("温度压力监测仪", 9), + FireHydrant("消防栓防盗水监测仪", 11), + Tube("管盯", 12), + LG("井盖液位一体机", 13), + H2s("硫化氢检测终端", 14); + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private DeviceTypeEnum(String name, int index) { + this.name = name; + this.index = index; + } + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } + + public static DeviceTypeEnum getByIndex(String index) { + try { + for (DeviceTypeEnum deviceTypeEnum : values()) { + if (deviceTypeEnum.index == Integer.parseInt(index)) { + return deviceTypeEnum; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } +} \ No newline at end of file diff --git a/src/main/java/com/casic/enums/H2sParamsEnum.java b/src/main/java/com/casic/enums/H2sParamsEnum.java new file mode 100644 index 0000000..74eec50 --- /dev/null +++ b/src/main/java/com/casic/enums/H2sParamsEnum.java @@ -0,0 +1,35 @@ +package com.casic.enums; + +public interface H2sParamsEnum { + + /** + * 下发配置参数 + */ + String IP = "ip"; + String PORT = "port"; + String CTNET = "ctnet"; + String PERIOD = "period"; + String CYCLE = "cycle"; + /** + * 三码上报 + */ + String ICCID = "iccid"; + String IMEI = "imei"; + String DEVCODE = "devcode"; + /** + * 上传时间 + */ + String TS = "ts"; + /** + * 数据上报(电量、硫化氢数据值、设备编号) + * 数据值 + */ + String H2S_VALUE = "h2sValue"; + /** + * 电量 + */ + String BATTERY_VALUE = "batteryValue"; + + + +} diff --git a/src/main/java/com/casic/model/AlarmRecord.java b/src/main/java/com/casic/model/AlarmRecord.java new file mode 100644 index 0000000..600fe5a --- /dev/null +++ b/src/main/java/com/casic/model/AlarmRecord.java @@ -0,0 +1,81 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; + +import java.util.Date; + +@Builder +@TableName("alarm_records") +public class AlarmRecord { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 设备ID + */ + @TableField("DEVICE_ID") + private Long deviceId; + /** + * 设备编号 + */ + @TableField("DEVCODE") + private String devcode; + /** + * 闸井编号 + */ + @TableField("WELL_CODE") + private String wellCode; + /** + * 告警类型 + */ + @TableField("ALARM_TYPE") + private String alarmType; + /** + * 告警内容 + */ + @TableField("ALARM_CONTENT") + private String alarmContent; + /** + * 告警数值 + */ + @TableField("ALARM_VALUE") + private String alarmValue; + /** + * 告警等级 + */ + @TableField("ALARM_LEVEL") + private Integer alarmLevel; + /** + * 告警详情 + */ + @TableField("ALARM_MSG") + private String alarmMessage; + /** + * 告警时间 + */ + @TableField("ALARM_TIME") + private Date alarmTime; + /** + * 告警状态 + */ + @TableField("STATUS") + private String status; + /** + * 工单编号 + */ + @TableField("JOB_ID") + private Long jobId; + + @TableField(exist = false) + private Integer jobStatus; + +} diff --git a/src/main/java/com/casic/model/DataH2s.java b/src/main/java/com/casic/model/DataH2s.java new file mode 100644 index 0000000..16ecc7a --- /dev/null +++ b/src/main/java/com/casic/model/DataH2s.java @@ -0,0 +1,37 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + */ +@Data +@TableName("data_h2s") +public class DataH2s { + + private Long id; + + private String devcode; + + private String wellCode; + + private String cell; + + private String strength; + + private String uptime; + + private String logtime; + + private String descn; + + private String rsrp; + + private String pci; + + private String snr; + +} diff --git a/src/main/java/com/casic/model/DeviceTypeEnum.java b/src/main/java/com/casic/model/DeviceTypeEnum.java deleted file mode 100644 index 26c685f..0000000 --- a/src/main/java/com/casic/model/DeviceTypeEnum.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.casic.model; - - -public enum DeviceTypeEnum { - Well("井盖状态监测仪", 1), - Liquid("液位监测仪", 2), - WasteGas("有害气体监测仪", 3), - Methane("燃气智能监测终端", 4), - TempHumi("温湿度监测仪", 5), - Dig("开挖监测仪", 6), - WellLocator("井盖定位监测仪", 7), - Noise("噪声记录仪", 8), - TempPressure("温度压力监测仪", 9), - FireHydrant("消防栓防盗水监测仪", 11), - Tube("管盯", 12), - LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); - - // 成员变量 - private String name; - private int index; - - // 构造方法 - private DeviceTypeEnum(String name, int index) { - this.name = name; - this.index = index; - } - - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public int getIndex() { - return index; - } - - public void setIndex(int index) { - this.index = index; - } - - public static DeviceTypeEnum getByIndex(String index) { - try { - for (DeviceTypeEnum deviceTypeEnum : values()) { - if (deviceTypeEnum.index == Integer.parseInt(index)) { - return deviceTypeEnum; - } - } - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - //覆盖方法 - @Override - public String toString() { - return this.name; - } -} \ No newline at end of file diff --git a/src/main/java/com/casic/service/AlarmPushService.java b/src/main/java/com/casic/service/AlarmPushService.java deleted file mode 100644 index d180eb2..0000000 --- a/src/main/java/com/casic/service/AlarmPushService.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.service; - -import com.casic.model.AlarmPushConfig; - -public interface AlarmPushService { - - Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig); - - Object getAlarmPush(String scene); - -} - - - diff --git a/src/main/java/com/casic/service/AlarmService.java b/src/main/java/com/casic/service/AlarmService.java deleted file mode 100644 index 4f41038..0000000 --- a/src/main/java/com/casic/service/AlarmService.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.casic.service; - -import com.casic.model.AlarmConfigParam; - -public interface AlarmService { - - Object getAlarmRecord(String deviceType, Integer currentIndex, Integer pageSize, String devcode); - - Object excuteAlramBatchCancel(String deviceType, String devcode); - - Object addAlarmConfig(AlarmConfigParam alarmConfig); - -} diff --git a/src/main/java/com/casic/service/DeviceDataService.java b/src/main/java/com/casic/service/DeviceDataService.java index db656c1..71f8ce9 100644 --- a/src/main/java/com/casic/service/DeviceDataService.java +++ b/src/main/java/com/casic/service/DeviceDataService.java @@ -7,4 +7,6 @@ Object getDeviceListPage(String deviceType, Integer currentIndex, Integer pageSize, String devcode); Object getLevel(String deviceType); + + void checkAndUpdateDeviceOnline(); } diff --git a/src/main/java/com/casic/service/ThirdDataService.java b/src/main/java/com/casic/service/ThirdDataService.java index 795e0b2..31dc516 100644 --- a/src/main/java/com/casic/service/ThirdDataService.java +++ b/src/main/java/com/casic/service/ThirdDataService.java @@ -1,8 +1,11 @@ package com.casic.service; -import com.casic.model.PressureDataParam; +import java.util.Map; public interface ThirdDataService { - Object getDeviceRecentData(PressureDataParam pressureData); + + Object h2sData(Map h2sDataMap); + + } diff --git a/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java b/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java deleted file mode 100644 index d193905..0000000 --- a/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.casic.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.dao.AlarmPushMapper; -import com.casic.model.AlarmPushConfig; -import com.casic.model.ResponseData; -import com.casic.service.AlarmPushService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.dao.DataAccessException; -import org.springframework.stereotype.Service; - -import java.util.List; -import java.util.Optional; - -@Service -@Slf4j -public class AlarmPushServiceImpl extends ServiceImpl implements AlarmPushService { - - @Override - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - ResponseData responseData = new ResponseData(); - try { - QueryWrapper queryWrapper = new QueryWrapper() - .eq("scene", alarmSwitchConfig.getScene()); -// this.baseMapper.delete(deleteWrapper); - this.baseMapper.update(alarmSwitchConfig, queryWrapper); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("报警推送配置新增异常,场景{},异常信息{}", alarmSwitchConfig.getScene(), dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - @Override - public Object getAlarmPush(String scene) { - ResponseData responseData = new ResponseData(); - try { - QueryWrapper queryWrapper = new QueryWrapper() - .eq("scene", scene); - List alarmPushConfigList = this.baseMapper.selectList(queryWrapper); - Optional alarmPushConfigOptional = alarmPushConfigList.stream().findFirst(); - responseData.setData(alarmPushConfigOptional.isPresent() ? alarmPushConfigOptional.get() : new Object()); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("报警推送配置查询异常,场景{},异常信息{}", scene, dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } -} diff --git a/src/main/java/com/casic/service/impl/AlarmServiceImple.java b/src/main/java/com/casic/service/impl/AlarmServiceImple.java deleted file mode 100644 index 8a29af9..0000000 --- a/src/main/java/com/casic/service/impl/AlarmServiceImple.java +++ /dev/null @@ -1,129 +0,0 @@ -package com.casic.service.impl; - -import com.alibaba.druid.util.StringUtils; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.dao.AlarmMapper; -import com.casic.dao.BusConfigMapper; -import com.casic.model.*; -import com.casic.service.AlarmService; -import com.casic.util.DeviceDataTableEnum; -import com.casic.util.RedisCommon; -import lombok.extern.slf4j.Slf4j; -import org.springframework.dao.DataAccessException; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import javax.annotation.Resource; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -@Slf4j -@Service -public class AlarmServiceImple extends ServiceImpl implements AlarmService { - - @Resource - private BusConfigMapper busConfigMapper; - @Resource - private RedisCommon redisCommonUtil; - - @Override - public Object getAlarmRecord(String deviceType, Integer currentIndex, Integer pageSize, String devcode) { - ResponseData responseData = new ResponseData(); - try { - Map page = new HashMap(); - page.put("total", this.baseMapper.getAlarmTotalRecord(deviceType, devcode)); - List> alarmRecordList = this.baseMapper.getAlarmRecord(deviceType, devcode, pageSize * (currentIndex - 1), pageSize); - page.put("rows", alarmRecordList); - responseData.setData(page); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("设备数据查询异常,设备类型{},异常信息{}", deviceType, dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - @Override - @Transactional - public Object excuteAlramBatchCancel(String deviceType, String devcode) { - ResponseData responseData = new ResponseData(); - try { - this.baseMapper.excuteAlramBatchCancel(deviceType, devcode); - this.baseMapper.excuteJobBatchCancel(deviceType, devcode); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("批量消警异常,设备类型{},异常信息{}", deviceType, dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - @Override - @Transactional - public Object addAlarmConfig(AlarmConfigParam alarmConfigParam) { - ResponseData responseData = new ResponseData(); - try { - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - addBusConfig(alarmConfigParam); - addRuleConfig(alarmConfigParam); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("风险配置异常,异常信息{}", dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - private void addRuleConfig(AlarmConfigParam alarmConfigParam) { - Map alarmRuleMap = new HashMap(); - alarmRuleMap.put("DEVICE_TYPE", alarmConfigParam.getDeviceType()); - this.baseMapper.deleteByMap(alarmRuleMap); - AlarmLevel alarmRule = new AlarmLevel(); - DeviceDataTableEnum deviceDataTableEnum = DeviceDataTableEnum.DEVICE_TYPE_TABLE.getTableNameMap() - .get(Integer.valueOf(alarmConfigParam.getDeviceType())); - alarmRule.setName(deviceDataTableEnum.getTypeName()); - alarmRule.setHighValue(Float.valueOf(alarmConfigParam.getThresholdVol())); - alarmRule.setTs(new Date()); - alarmRule.setLevel(1); - alarmRule.setDeviceType(alarmConfigParam.getDeviceType()); - this.baseMapper.insert(alarmRule); - } - - private void addBusConfig(AlarmConfigParam alarmConfigParam) { - String devcode = StringUtils.isEmpty(alarmConfigParam.getDevcode()) ? this.baseMapper.getDeviceDevcode(alarmConfigParam.getDeviceType()) : alarmConfigParam.getDevcode(); - sendBusConfig(alarmConfigParam, devcode); - String devcideId = this.baseMapper.getDeviceByDevcode(alarmConfigParam.getDeviceType(), devcode); - BusConfig busConfig = new BusConfig(); - busConfig.setDeviceId(devcideId); - busConfig.setFramecontent("3," + alarmConfigParam.getCollectInterval() + "," + alarmConfigParam.getCollectInterval() + - "," + alarmConfigParam.getRetryNum() + "," + alarmConfigParam.getIp() + "," + alarmConfigParam.getPort()); - busConfig.setSensorid(""); - busConfig.setStatus("0"); - busConfig.setAttemptscurrent(0); - busConfig.setWritetime(new Date()); - busConfig.setAttemptsmax(3); - busConfigMapper.insert(busConfig); - } - - private void sendBusConfig(AlarmConfigParam alarmConfigParam, String devcode) { - CommConfigDTO commConfigDTO = new CommConfigDTO(); - commConfigDTO.setInterval(StringUtils.isEmpty(alarmConfigParam.getCollectInterval()) ? 300 : Long.valueOf(alarmConfigParam.getCollectInterval())); - commConfigDTO.setRepeat(StringUtils.isEmpty(alarmConfigParam.getRetryNum()) ? 300 : Long.valueOf(alarmConfigParam.getRetryNum())); -// commConfigDTO.setTimes(Long.valueOf(1)); -// commConfigDTO.setIp(alarmConfigParam.getIp()); -// commConfigDTO.setPort(StringUtils.isEmpty(alarmConfigParam.getPort()) ? 8080 : Long.valueOf(alarmConfigParam.getPort())); - commConfigDTO.setPeriod(StringUtils.isEmpty(alarmConfigParam.getUploadCycle()) ? 300 : Long.valueOf(alarmConfigParam.getUploadCycle())); -// commConfigDTO.setThresh(); - commConfigDTO.setThresh(StringUtils.isEmpty(alarmConfigParam.getThresholdVol()) ? 50 : Float.valueOf(alarmConfigParam.getThresholdVol())); - redisCommonUtil.send(commConfigDTO, devcode); - } - - -} diff --git a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java index e35daef..136912f 100644 --- a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java +++ b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java @@ -1,27 +1,36 @@ package com.casic.service.impl; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.casic.dao.DeviceDataMapper; import com.casic.model.ResponseData; import com.casic.service.DeviceDataService; import com.casic.util.DeviceDataFieldTableEnum; import com.casic.util.DeviceDataTableEnum; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collector; +import java.util.stream.Collectors; @Service @Slf4j +@RequiredArgsConstructor public class DeviceDataServiceImpl implements DeviceDataService { - private final DeviceDataMapper deviceDataMapper; + @Value("${casic.device.type}") + private Integer devciceType; - public DeviceDataServiceImpl(DeviceDataMapper deviceDataMapper) { - this.deviceDataMapper = deviceDataMapper; - } + @Value("${casic.device.data-day}") + private Integer dataDay; + + private final DeviceDataMapper deviceDataMapper; @Override public Object getDeviceRecentData(String deviceType, String recentNum, String devcode) { @@ -80,4 +89,26 @@ return responseData; } + @Override + @Transactional + public void checkAndUpdateDeviceOnline() { + //查询硫化氢设备 + List String = deviceDataMapper.getDevcodeByType(devciceType); + //统一查询所有设备的3天内数据的设备编号,然后设备编号转成map,进行 + List dataList = deviceDataMapper.getRecentData(dataDay); + List dataSortDevcodeList = dataList; + if (dataList != null) { + Map devOnlineMap = new HashMap<>(); + for (String devcodeData : dataList) { + devOnlineMap.put(devcodeData, ""); + } + dataSortDevcodeList = dataSortDevcodeList.stream().filter( + e -> !devOnlineMap.containsKey(e)).collect(Collectors.toList()); + } + //统一更新 + if (CollectionUtils.isNotEmpty(dataList)) { + deviceDataMapper.updateOnlineByDevs(dataSortDevcodeList); + } + } + } diff --git a/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java b/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java index 7ac6bc1..9d28170 100644 --- a/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java +++ b/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java @@ -2,158 +2,194 @@ import com.alibaba.druid.util.StringUtils; import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.config.AliYunConfig; -import com.casic.dao.DataPressureMapper; -import com.casic.model.AlarmPushConfig; -import com.casic.model.DataPressure; -import com.casic.model.PressureDataParam; -import com.casic.model.ResponseData; -import com.casic.service.AlarmPushService; -import com.casic.service.MessagePusherService; +import com.casic.dao.AlarmRecordMapper; +import com.casic.dao.DataH2sMapper; +import com.casic.enums.H2sParamsEnum; +import com.casic.model.AlarmRecord; +import com.casic.model.DataH2s; import com.casic.service.ThirdDataService; -import com.casic.util.SendBatchSmsUtil; +import com.casic.util.RedisCommon; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; -import java.io.UnsupportedEncodingException; -import java.net.URLDecoder; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.*; -import java.util.stream.Collectors; @Service @Slf4j -public class ThirdDataServiceImpl extends ServiceImpl implements ThirdDataService { +@RequiredArgsConstructor +public class ThirdDataServiceImpl extends ServiceImpl implements ThirdDataService, H2sParamsEnum { private final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA); - - @Autowired - private AlarmPushService alarmPushService; - - @Autowired - private MessagePusherService messagePusherService; - - @Autowired - private SendBatchSmsUtil sendBatchSmsUtil; - + private final RedisCommon redisCommon; + private final AlarmRecordMapper alarmRecordMapper; @Override - public Object getDeviceRecentData(PressureDataParam pressureDataParam) { - ResponseData responseData = new ResponseData(); + public Object h2sData(Map h2sDataMap) { try { - batchSave(pressureDataParam); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); + if (h2sDataMap.containsKey(ICCID)) { + //开机上报->存储映射管理->查询是否有下发配置-进行回应 + return powerOnReport(h2sDataMap); + } else if (h2sDataMap.containsKey(H2S_VALUE)) { //数据上报 + if (ObjectUtils.isNotEmpty(h2sDataMap.get(DEVCODE))) { + //清除离线-清除报警-报警-存库-查询是否有下发配置-进行回应 + return dataSave(h2sDataMap); + } + } } catch (DataAccessException dae) { - log.error("设备最近数据查询异常,设备类型{},异常信息{}", dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); + log.error("设备上报数据异常,设备传入的json是{},异常信息{}", dae.getMessage()); } - return responseData; + return defaultDeliveryConfig(null); } - private void batchSave(PressureDataParam pressureDataParam) { - String pressureDataJson = pressureDataParam.getRawData(); - log.info("----" + pressureDataJson); - Map pressureDataMap = JSON.parseObject(pressureDataJson, HashMap.class); - Date uptime = null; - try { - uptime = dateFormat.parse(String.valueOf(pressureDataMap.get("times"))); - } catch (Exception e) { - log.error("主题,采集时间解析异常,异常信息{}", e.getMessage()); - } - List> pressureDataList = (List>) pressureDataMap.get("sensorDatas"); - DataPressure dataPressure = initPrssureData(pressureDataList, uptime); - if (dataPressure == null) { - return; - } - checkAlarm(dataPressure); + + private Map defaultDeliveryConfig(Map configDataMap) { + Map map = new HashMap(); + //必带参数,否则会被thingsboard舍弃 + map.put("method", "setParams"); + //判断是否有下发配置必须 + map.put("status", ObjectUtils.isNotEmpty(configDataMap) ? 200 : 201); + map.put("params", configDataMap); + //可省略 + map.put("timeout", "3000"); + return map; } - private DataPressure initPrssureData(List> pressureDataList, Date uptime) { - DataPressure dataPressure = new DataPressure(); - String devcode = pressureDataList.get(pressureDataList.size() - 1).get("str"); - Map pressureDataMap = pressureDataList.stream().collect( - Collectors.toMap(e -> String.valueOf(e.get("flag")), e -> String.valueOf(e.get("value"))) - ); -// if (CacheUtil.serialBuf.get(devcode)!=null&&CacheUtil.serialBuf.get(devcode).equals(pressureDataMap.get("F"))) { -// return null; -// } + /** + * 开机上报->储存,是否有下发配置,选择合适的格式返回 + * + * @param h2sDataMap + */ + private Map powerOnReport(Map h2sDataMap) { + /** + * 三码上报 + */ + String iccid = (String) h2sDataMap.get(ICCID); + String imei = (String) h2sDataMap.get(IMEI); + String devcode = (String) h2sDataMap.get(DEVCODE); + //清除离线 + this.baseMapper.clearOnline(devcode); + //先查,是否有数据,有数据直接覆盖,否则插入数据 + String isImei = this.baseMapper.getImeiByDevcode(devcode); + int save = StringUtils.isEmpty(isImei) ? this.baseMapper.addImeiDevcode(devcode, imei, iccid) : + this.baseMapper.updateImeiDevcode(devcode, imei, iccid); + if (save > 0) { + //保存三码关系 + Map configDataMap = redisCommon.getMsg((String) h2sDataMap.get(DEVCODE)); + if (ObjectUtils.isNotEmpty(configDataMap)) { + return defaultDeliveryConfig(configDataMap); + } + } else { + throw new RuntimeException("三码上传保存异常,异常数据为" + JSON.toJSON(h2sDataMap)); + } + return defaultDeliveryConfig(null); + } + + private Map dataSave(Map h2sDataMap) { + DataH2s dataH2s = initH2sData(h2sDataMap); + this.baseMapper.clearOnline((String) h2sDataMap.get(DEVCODE)); + if (ObjectUtils.isNotEmpty(dataH2s)) { + checkAlarm(dataH2s); + Map configDataMap = redisCommon.getMsg((String) h2sDataMap.get(DEVCODE)); + if (ObjectUtils.isNotEmpty(configDataMap)) { + return defaultDeliveryConfig(configDataMap); + } + } + return defaultDeliveryConfig(null); + } + + private DataH2s initH2sData(Map h2sDataMap) { + DataH2s dataH2s = new DataH2s(); + String devcode = (String) h2sDataMap.get(DEVCODE); String wellCode = this.baseMapper.getWellCode(devcode); - dataPressure.setWellCode(wellCode); - dataPressure.setDevcode(devcode); - dataPressure.setPci(pressureDataMap.get("Q")); - dataPressure.setCell(Float.valueOf(pressureDataMap.get("V"))); - dataPressure.setTemperature(pressureDataMap.get("T")); - dataPressure.setPress(pressureDataMap.get("F")); - dataPressure.setUptime(dateFormat.format(uptime)); - dataPressure.setLogtime(dateFormat.format(new Date())); - this.baseMapper.insert(dataPressure); -// CacheUtil.serialBuf.put(devcode, pressureDataMap.get("F")); - return dataPressure; + dataH2s.setWellCode(wellCode); + dataH2s.setDevcode(devcode); + dataH2s.setStrength((String) h2sDataMap.get(H2S_VALUE)); + dataH2s.setCell((String) h2sDataMap.get(BATTERY_VALUE)); + dataH2s.setUptime(dateFormat.format(new Date())); + dataH2s.setLogtime(dateFormat.format(new Date())); + this.baseMapper.insert(dataH2s); + return dataH2s; } - private void checkAlarm(DataPressure dataPressure) { + /** + * 检查是否有报警 + * + * @param dataH2s + */ + private void checkAlarm(DataH2s dataH2s) { final Float ruleValue = this.baseMapper.getRuleValue("24"); if (ruleValue == null) { return; } - if (!StringUtils.isEmpty(dataPressure.getPress()) && !dataPressure.getPress().equals("null")) { - if (Float.valueOf(dataPressure.getPress()) > ruleValue) { - this.baseMapper.saveRecords(dataPressure.getPress(), new Date()); - alarmPushBuilder(dataPressure.getDevcode(), dataPressure.getPress()); + if (!StringUtils.isEmpty(dataH2s.getStrength()) && !"null".equals(dataH2s.getStrength())) { + String status = "3"; + if (Float.valueOf(dataH2s.getStrength()) > ruleValue) { + //因新的报警消警 “0” + status = "0"; + alarmRecordMapper.insert(buildAlarmRecord(dataH2s)); } + this.baseMapper.cancelAlarm(dataH2s.getDevcode(), status); } } + private AlarmRecord buildAlarmRecord(DataH2s dataH2s) { + AlarmRecord alarmRecord = AlarmRecord.builder() + .devcode(dataH2s.getDevcode()) + .wellCode(dataH2s.getWellCode()) + .alarmType(dataH2s.getStrength()) + .alarmMessage("浓度超限") + .deviceId(dataH2s.getId()) + .alarmType("1") + .alarmContent("浓度超限") + .status("1") + .build(); + return alarmRecord; + } + // "在2023年1月12号 16时43分23秒,设备41232561发生了压力超标/浓度超限,数值为20" // + "设备" + devcode + "发生了压力超标,压力值为" + presss - // - @Autowired - private AliYunConfig aliYunConfig; - private void alarmPushBuilder(String devcode, String presss) { - ResponseData responseData = (ResponseData) alarmPushService.getAlarmPush("H2S"); - AlarmPushConfig alarmPushConfig = (AlarmPushConfig) responseData.getData(); - if (alarmPushConfig.getEnable().equals(1)) { - if (alarmPushConfig.getWebsocketAlarm().equals(1)) { - String msg = "在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "," - + "设备" + devcode + "发生了压力超标,压力值为" + presss; - try { - messagePusherService.updateSinkJob("", URLDecoder.decode(msg, "UTF-8")); - } catch (UnsupportedEncodingException uee) { - log.error("websocket推送,内容转码出现异常,异常信息为{}", uee.getMessage()); - } - } - if (alarmPushConfig.getShortMessageAlarm().equals(1)) { - JSONArray msglist = new JSONArray(); - JSONObject msgMap = new JSONObject(); - msgMap.put("time", new SimpleDateFormat("yyyyMMdd HH:mm:ss").format(new Date())); - msgMap.put("devcode", devcode); - msgMap.put("value", presss); - msgMap.put("content", "压力超标"); - String phoneJson = ""; - List aliSignNameList = new ArrayList<>(); - String aliSignName = aliYunConfig.getSignNameJson(); - if (!org.apache.commons.lang3.StringUtils.isEmpty(alarmPushConfig.getPhoneArray())) { - String[] phones = alarmPushConfig.getPhoneArray().split(","); - List phoneList = new ArrayList<>(); - for (String phone : phones) { - msglist.add(msgMap); - phoneList.add(phone); - aliSignNameList.add(aliSignName); - } - phoneJson = JSONObject.toJSONString(phoneList); - } - sendBatchSmsUtil.sendMsg(phoneJson, JSON.toJSONString(msgMap),JSONObject.toJSONString(aliSignNameList)); - } - } +// ResponseData responseData = (ResponseData) alarmPushService.getAlarmPush("H2S"); +// AlarmPushConfig alarmPushConfig = (AlarmPushConfig) responseData.getData(); +// if (alarmPushConfig.getEnable().equals(1)) { +// if (alarmPushConfig.getWebsocketAlarm().equals(1)) { +// String msg = "在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "," +// + "设备" + devcode + "发生了压力超标,压力值为" + presss; +// try { +// messagePusherService.updateSinkJob("", URLDecoder.decode(msg, "UTF-8")); +// } catch (UnsupportedEncodingException uee) { +// log.error("websocket推送,内容转码出现异常,异常信息为{}", uee.getMessage()); +// } +// } +// if (alarmPushConfig.getShortMessageAlarm().equals(1)) { +// JSONArray msglist = new JSONArray(); +// JSONObject msgMap = new JSONObject(); +// msgMap.put("time", new SimpleDateFormat("yyyyMMdd HH:mm:ss").format(new Date())); +// msgMap.put("devcode", devcode); +// msgMap.put("value", presss); +// msgMap.put("content", "压力超标"); +// String phoneJson = ""; +// List aliSignNameList = new ArrayList<>(); +// String aliSignName = aliYunConfig.getSignNameJson(); +// if (!org.apache.commons.lang3.StringUtils.isEmpty(alarmPushConfig.getPhoneArray())) { +// String[] phones = alarmPushConfig.getPhoneArray().split(","); +// List phoneList = new ArrayList<>(); +// for (String phone : phones) { +// msglist.add(msgMap); +// phoneList.add(phone); +// aliSignNameList.add(aliSignName); +// } +// phoneJson = JSONObject.toJSONString(phoneList); +// } +// sendBatchSmsUtil.sendMsg(phoneJson, JSON.toJSONString(msgMap), JSONObject.toJSONString(aliSignNameList)); +// } +// } } diff --git a/src/main/java/com/casic/util/ArtemisPostUtil.java b/src/main/java/com/casic/util/ArtemisPostUtil.java index c6655af..3084bde 100644 --- a/src/main/java/com/casic/util/ArtemisPostUtil.java +++ b/src/main/java/com/casic/util/ArtemisPostUtil.java @@ -1,7 +1,5 @@ package com.casic.util; -import com.alibaba.fastjson.JSONObject; -import com.casic.config.ApiHikomConfig; import com.casic.model.HkvideoValidParam; import com.casic.model.ResponseData; //import com.hikvision.artemis.sdk.ArtemisHttpUtil; @@ -10,8 +8,6 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; -import java.util.HashMap; -import java.util.Map; /** * 海康验证 @@ -20,8 +16,8 @@ @Slf4j public class ArtemisPostUtil { - @Resource - private ApiHikomConfig apiHikomConfig; +// @Resource +// private ApiHikomConfig apiHikomConfig; private final String contentType = "application/json"; public ResponseData artemisPost(HkvideoValidParam hkvideoValidParam) { diff --git a/src/main/java/com/casic/util/RedisCommon.java b/src/main/java/com/casic/util/RedisCommon.java index 617d73b..80562b9 100644 --- a/src/main/java/com/casic/util/RedisCommon.java +++ b/src/main/java/com/casic/util/RedisCommon.java @@ -7,6 +7,7 @@ import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; +import java.util.Map; import java.util.concurrent.TimeUnit; @Component @@ -20,6 +21,15 @@ @Autowired private RedisTemplate redisTemplate; + + public Map getMsg(String key) { + // 判断上次保存时间,如果到期(key失效),再保存新的 + String timeStampKey = configPrefix + key; + Object dataJson = redisTemplate.opsForValue().get(timeStampKey); + return JSON.parseObject((String) dataJson); + } + + public void send(CommConfigDTO commConfigDTO,String devCode) { redisTemplate.opsForValue().set(configPrefix+ devCode, JSON.toJSONString(commConfigDTO), diff --git a/src/main/java/com/casic/util/SendBatchSmsUtil.java b/src/main/java/com/casic/util/SendBatchSmsUtil.java deleted file mode 100644 index 6152c60..0000000 --- a/src/main/java/com/casic/util/SendBatchSmsUtil.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.casic.util; -// This file is auto-generated, don't edit it. Thanks. - -import com.alibaba.fastjson.JSONObject; -import com.aliyun.auth.credentials.Credential; -import com.aliyun.auth.credentials.provider.StaticCredentialProvider; -import com.aliyun.sdk.service.dysmsapi20170525.models.*; -import com.aliyun.sdk.service.dysmsapi20170525.*; -import com.casic.config.AliYunConfig; -import com.google.gson.Gson; -import darabonba.core.client.ClientOverrideConfiguration; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import java.text.SimpleDateFormat; -import java.time.Duration; -import java.util.*; -import java.util.concurrent.CompletableFuture; - -@AllArgsConstructor -@Component -@Slf4j -public class SendBatchSmsUtil { - - private AliYunConfig aliYunConfig; - - public void sendMsg(String phoneJson, String msgJson,String aliSignNameJson) { - StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder() - .accessKeyId(aliYunConfig.getKey()) - .accessKeySecret(aliYunConfig.getScrect()) - .build()); - - AsyncClient client = AsyncClient.builder() - .region("cn-shanghai") // Region ID - .credentialsProvider(provider) - .overrideConfiguration( - ClientOverrideConfiguration.create() - .setEndpointOverride(aliYunConfig.getUrl()) - .setConnectTimeout(Duration.ofSeconds(30)) - ) - .build(); - - SendBatchSmsRequest sendBatchSmsRequest = SendBatchSmsRequest.builder() - .phoneNumberJson(phoneJson) - .signNameJson(aliSignNameJson) - .templateCode(aliYunConfig.getTemplateCode()) - .templateParamJson(msgJson) - .build(); - - CompletableFuture response = client.sendBatchSms(sendBatchSmsRequest); - try { - SendBatchSmsResponse resp = response.get(); - System.out.println(new Gson().toJson(resp)); - } catch (Exception ex) { - log.error("发送消息出现异常,手机号内容为{},信息内容为{}",phoneJson,msgJson,ex.getMessage()); - }finally { - client.close(); - } - } - - -// public static void main(String[] args) throws Exception { -// StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder() -// .accessKeyId("LTAI5tDFNucQF2Bdy4fHgzrN") -// .accessKeySecret("hZ22QQPxQue1G0R8Ty2bo6GimrLdoB") -// .build()); -// -// AsyncClient client = AsyncClient.builder() -// .region("cn-shanghai") // Region ID -// .credentialsProvider(provider) -// .overrideConfiguration( -// ClientOverrideConfiguration.create() -// .setEndpointOverride("dysmsapi.aliyuncs.com") -// .setConnectTimeout(Duration.ofSeconds(30)) -// ) -// .build(); -// List> msgList = new ArrayList<>(); -// Map msgMap = new HashMap<>(); -// msgMap.put("time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); -// msgMap.put("devcode", "123456"); -// msgMap.put("value", "24Vol"); -// msgMap.put("content", "浓度超限"); -// msgList.add(msgMap); -// Map msgMapCoye=(Map)((HashMap) msgMap).clone(); -// msgList.add(msgMapCoye); -// System.out.println(JSONObject.toJSONString(msgList)); -// SendBatchSmsRequest sendBatchSmsRequest = SendBatchSmsRequest.builder() -// .phoneNumberJson("[\"13651065090\",\"13652031267\"]") -// .signNameJson("[\"柴壮告警提醒\",\"柴壮告警提醒\"]") -// .templateCode("SMS_268475055") -// .templateParamJson(JSONObject.toJSONString(msgList)) -// .build(); -// -// CompletableFuture response = client.sendBatchSms(sendBatchSmsRequest); -// SendBatchSmsResponse resp = response.get(); -// System.out.println(new Gson().toJson(resp)); -// client.close(); -// } - -} \ No newline at end of file diff --git a/src/main/resources/config/application-dev.yml b/src/main/resources/config/application-dev.yml index 30e52e5..ef7bf6a 100644 --- a/src/main/resources/config/application-dev.yml +++ b/src/main/resources/config/application-dev.yml @@ -3,10 +3,10 @@ ################### spring配置 ################### spring: datasource: - driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11102/smartwell_demos?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=GMT%2B8&&allowMultiQueries=true&&useSSL=true - username: root - password: Casic203! + url: jdbc:dm://111.198.10.15:11211/schema=SMARTWELL?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + driver-class-name: dm.jdbc.driver.DmDriver + username: SMARTWELL + password: Casic20311 session: store-type: redis redis: diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/casic/config/AliYunConfig.java b/src/main/java/com/casic/config/AliYunConfig.java deleted file mode 100644 index 090b6ab..0000000 --- a/src/main/java/com/casic/config/AliYunConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Slf4j -@Configuration -@ConfigurationProperties(prefix = "casic.ali") -@Data -public class AliYunConfig { - - private String key; - private String screct; - private String url; - private String signNameJson; - private String templateCode; - -} diff --git a/src/main/java/com/casic/config/ApiHikomConfig.java b/src/main/java/com/casic/config/ApiHikomConfig.java deleted file mode 100644 index 73b3550..0000000 --- a/src/main/java/com/casic/config/ApiHikomConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -@Data -public class ApiHikomConfig { - @Value("${casic.hikom.host}") - private String hikomHost; - @Value("${casic.hikom.url}") - private String hikomUrl; -} diff --git a/src/main/java/com/casic/config/task/TaskConfigurer.java b/src/main/java/com/casic/config/task/TaskConfigurer.java new file mode 100644 index 0000000..43282d3 --- /dev/null +++ b/src/main/java/com/casic/config/task/TaskConfigurer.java @@ -0,0 +1,44 @@ +package com.casic.config.task; + +import com.casic.service.DeviceDataService; +import com.casic.service.ThirdDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.config.TriggerTask; +import org.springframework.scheduling.support.CronTrigger; + +/** + * @author cz + */ +@Configuration +@EnableScheduling +public class TaskConfigurer implements SchedulingConfigurer { + + @Value("${casic.device.online.corn}") + private String timeConfig; + @Autowired + private DeviceDataService deviceDataService; + + @Override + public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + TriggerTask triggrtTask = new TriggerTask(nextDayDevice(), + triggerContext -> { + return new CronTrigger(timeConfig).nextExecutionTime(triggerContext); + }); + taskRegistrar.addTriggerTask(triggrtTask); + } + + private Runnable nextDayDevice() { + return new Runnable() { + @Override + public void run() { + deviceDataService.checkAndUpdateDeviceOnline(); + } + }; + } + +} \ No newline at end of file diff --git a/src/main/java/com/casic/controller/AlarmController.java b/src/main/java/com/casic/controller/AlarmController.java deleted file mode 100644 index 957fc36..0000000 --- a/src/main/java/com/casic/controller/AlarmController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmConfigParam; -import com.casic.service.AlarmService; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/alarm") -public class AlarmController { - - private final AlarmService alarmService; - - public AlarmController(AlarmService alarmService) { - this.alarmService = alarmService; - } - - @RequestMapping("/records") - public Object getAlarmRecord(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "currentIndex", required = true) Integer currentIndex, - @RequestParam(value = "devcode",required =false) String devcode, - @RequestParam(value = "pageSize", required = true) Integer pageSize) { - return alarmService.getAlarmRecord(deviceType,currentIndex,pageSize,devcode); - } - - @RequestMapping("/batch/cancel") - public Object excuteAlramBatchCancel(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "devcode",required =false) String devcode) { - return alarmService.excuteAlramBatchCancel(deviceType,devcode); - } - - @RequestMapping("/config/add") - public Object addAlarmConfig(@RequestBody AlarmConfigParam alarmConfigParam) { - return alarmService.addAlarmConfig(alarmConfigParam); - } -} diff --git a/src/main/java/com/casic/controller/AlarmPushController.java b/src/main/java/com/casic/controller/AlarmPushController.java deleted file mode 100644 index 1642f9b..0000000 --- a/src/main/java/com/casic/controller/AlarmPushController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmPushConfig; -import com.casic.service.AlarmPushService; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.*; - -@RestController -@AllArgsConstructor -@RequestMapping("/alarm") -public class AlarmPushController { - - private AlarmPushService alarmPushService; - - @RequestMapping("/push/config") - @ResponseBody - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - return alarmPushService.alarmPushConfig(alarmSwitchConfig); - } - - @RequestMapping("/push/query") - public Object alarmPushQuery(@RequestParam(value = "scene", required = true) String scene) { - return alarmPushService.getAlarmPush(scene); - } - -} diff --git a/src/main/java/com/casic/controller/ArtemisValidController.java b/src/main/java/com/casic/controller/ArtemisValidController.java deleted file mode 100644 index 1d52576..0000000 --- a/src/main/java/com/casic/controller/ArtemisValidController.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.controller; - -import com.casic.model.HkvideoValidParam; -import com.casic.model.ResponseData; -import com.casic.util.ArtemisPostUtil; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 海康接口 - */ -@AllArgsConstructor -@RestController -public class ArtemisValidController { - private final ArtemisPostUtil artemisPostUtill; - - @RequestMapping("/hkvideo/getVideoUrl") - public ResponseData getVideoUrl(@RequestBody HkvideoValidParam hkvideoValidParam) { - - return artemisPostUtill.artemisPost(hkvideoValidParam); - } - -} diff --git a/src/main/java/com/casic/controller/MessagePusherController.java b/src/main/java/com/casic/controller/MessagePusherController.java index d447c05..b97dcd1 100644 --- a/src/main/java/com/casic/controller/MessagePusherController.java +++ b/src/main/java/com/casic/controller/MessagePusherController.java @@ -32,8 +32,7 @@ } catch (UnsupportedEncodingException e) { e.printStackTrace(); } - return retMap; - } + return retMap; } //报警开关按钮 // diff --git a/src/main/java/com/casic/controller/ThirdDataController.java b/src/main/java/com/casic/controller/ThirdDataController.java index d910a7d..fbd8e59 100644 --- a/src/main/java/com/casic/controller/ThirdDataController.java +++ b/src/main/java/com/casic/controller/ThirdDataController.java @@ -1,8 +1,6 @@ package com.casic.controller; import com.alibaba.fastjson.JSON; -import com.casic.model.CommConfigDTO; -import com.casic.model.PressureDataParam; import com.casic.model.ResponseData; import com.casic.service.ThirdDataService; import lombok.extern.slf4j.Slf4j; @@ -10,7 +8,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.HashMap; import java.util.Map; @RestController @@ -24,22 +21,25 @@ this.thirdDataService = thirdDataService; } - @RequestMapping("/pressure/data") - public Object getDeviceRecentData(@RequestBody PressureDataParam pressureData) { - return thirdDataService.getDeviceRecentData(pressureData); + /** + * 硫化氢订阅接口 + * + * @param h2sDataMap + * @return + */ + @RequestMapping("/h2s-data") + public Object h2sData(@RequestBody Map h2sDataMap) { + System.out.println(JSON.toJSON(h2sDataMap)); + return thirdDataService.h2sData(h2sDataMap); } - @RequestMapping("/data") - public Object getDeviceData(@RequestBody Map pressureDataMap) { - System.out.println(JSON.toJSON(pressureDataMap)); - Map map = new HashMap(); - map.put("method", "setParams"); - Map param = new HashMap(); - param.put("ip", "大胆猜测下"); - map.put("status", 200); - map.put("params", param); - map.put("timeout", "3000"); - return map; + @RequestMapping("/test") + public Object testNbResponse (@RequestBody Map h2sDataMap){ + ResponseData responseData=new ResponseData(); + responseData.setCode(200); + responseData.setData("oyAAGDcgFAEAAcMAAQWfAXOJd1POnas6zxTmU7jQkVJinQ=="); + System.out.println(JSON.toJSON(h2sDataMap)); + return responseData; } } diff --git a/src/main/java/com/casic/dao/AlarmPushMapper.java b/src/main/java/com/casic/dao/AlarmPushMapper.java deleted file mode 100644 index 9d7484b..0000000 --- a/src/main/java/com/casic/dao/AlarmPushMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.AlarmPushConfig; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface AlarmPushMapper extends BaseMapper { -} diff --git a/src/main/java/com/casic/dao/AlarmRecordMapper.java b/src/main/java/com/casic/dao/AlarmRecordMapper.java new file mode 100644 index 0000000..d8a4911 --- /dev/null +++ b/src/main/java/com/casic/dao/AlarmRecordMapper.java @@ -0,0 +1,12 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.AlarmRecord; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AlarmRecordMapper extends BaseMapper { + + + +} diff --git a/src/main/java/com/casic/dao/DataH2sMapper.java b/src/main/java/com/casic/dao/DataH2sMapper.java new file mode 100644 index 0000000..434f1e2 --- /dev/null +++ b/src/main/java/com/casic/dao/DataH2sMapper.java @@ -0,0 +1,27 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.DataH2s; +import com.casic.model.DataPressure; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; + +@Mapper +public interface DataH2sMapper extends BaseMapper { + + int clearOnline(@Param("devcode") String devcode); + + String getWellCode(@Param("devcode") String devcode); + + Float getRuleValue(@Param("deviceType") String deviceType); + + int cancelAlarm(@Param("devcode") String devcode, @Param("status") String status); + + String getImeiByDevcode(@Param("devcode") String devcode); + + int updateImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); + + int addImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); +} diff --git a/src/main/java/com/casic/dao/DataPressureMapper.java b/src/main/java/com/casic/dao/DataPressureMapper.java deleted file mode 100644 index 05f4329..0000000 --- a/src/main/java/com/casic/dao/DataPressureMapper.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.DataPressure; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.Date; - -@Mapper -public interface DataPressureMapper extends BaseMapper { - - String getWellCode(@Param("devcode") String devcode); - - Float getRuleValue(@Param("deviceType") String deviceType); - - void saveRecords(@Param("reValue") String reValue, @Param("alarmTime") Date alarmTime); - -} diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java index d9e18a0..e62d526 100644 --- a/src/main/java/com/casic/dao/DeviceDataMapper.java +++ b/src/main/java/com/casic/dao/DeviceDataMapper.java @@ -23,5 +23,14 @@ @Param("pageSize") Integer pageSize, @Param("devcode") String devcode); - String getLevelByType(@Param("deviceType")String deviceType); + String getLevelByType(@Param("deviceType") String deviceType); + + + List getDevcodeByType(@Param("devciceType") Integer devciceType); + + List getRecentData(@Param("devciceType") Integer dataDay); + + List updateOnlineByDevs(@Param("dataSortDevcodeList") List dataSortDevcodeList); + + } diff --git a/src/main/java/com/casic/enums/DeviceTypeEnum.java b/src/main/java/com/casic/enums/DeviceTypeEnum.java new file mode 100644 index 0000000..8d5a6e6 --- /dev/null +++ b/src/main/java/com/casic/enums/DeviceTypeEnum.java @@ -0,0 +1,64 @@ +package com.casic.enums; + + +public enum DeviceTypeEnum { + Well("井盖状态监测仪", 1), + Liquid("液位监测仪", 2), + WasteGas("有害气体监测仪", 3), + Methane("燃气智能监测终端", 4), + TempHumi("温湿度监测仪", 5), + Dig("开挖监测仪", 6), + WellLocator("井盖定位监测仪", 7), + Noise("噪声记录仪", 8), + TempPressure("温度压力监测仪", 9), + FireHydrant("消防栓防盗水监测仪", 11), + Tube("管盯", 12), + LG("井盖液位一体机", 13), + H2s("硫化氢检测终端", 14); + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private DeviceTypeEnum(String name, int index) { + this.name = name; + this.index = index; + } + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } + + public static DeviceTypeEnum getByIndex(String index) { + try { + for (DeviceTypeEnum deviceTypeEnum : values()) { + if (deviceTypeEnum.index == Integer.parseInt(index)) { + return deviceTypeEnum; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } +} \ No newline at end of file diff --git a/src/main/java/com/casic/enums/H2sParamsEnum.java b/src/main/java/com/casic/enums/H2sParamsEnum.java new file mode 100644 index 0000000..74eec50 --- /dev/null +++ b/src/main/java/com/casic/enums/H2sParamsEnum.java @@ -0,0 +1,35 @@ +package com.casic.enums; + +public interface H2sParamsEnum { + + /** + * 下发配置参数 + */ + String IP = "ip"; + String PORT = "port"; + String CTNET = "ctnet"; + String PERIOD = "period"; + String CYCLE = "cycle"; + /** + * 三码上报 + */ + String ICCID = "iccid"; + String IMEI = "imei"; + String DEVCODE = "devcode"; + /** + * 上传时间 + */ + String TS = "ts"; + /** + * 数据上报(电量、硫化氢数据值、设备编号) + * 数据值 + */ + String H2S_VALUE = "h2sValue"; + /** + * 电量 + */ + String BATTERY_VALUE = "batteryValue"; + + + +} diff --git a/src/main/java/com/casic/model/AlarmRecord.java b/src/main/java/com/casic/model/AlarmRecord.java new file mode 100644 index 0000000..600fe5a --- /dev/null +++ b/src/main/java/com/casic/model/AlarmRecord.java @@ -0,0 +1,81 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; + +import java.util.Date; + +@Builder +@TableName("alarm_records") +public class AlarmRecord { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 设备ID + */ + @TableField("DEVICE_ID") + private Long deviceId; + /** + * 设备编号 + */ + @TableField("DEVCODE") + private String devcode; + /** + * 闸井编号 + */ + @TableField("WELL_CODE") + private String wellCode; + /** + * 告警类型 + */ + @TableField("ALARM_TYPE") + private String alarmType; + /** + * 告警内容 + */ + @TableField("ALARM_CONTENT") + private String alarmContent; + /** + * 告警数值 + */ + @TableField("ALARM_VALUE") + private String alarmValue; + /** + * 告警等级 + */ + @TableField("ALARM_LEVEL") + private Integer alarmLevel; + /** + * 告警详情 + */ + @TableField("ALARM_MSG") + private String alarmMessage; + /** + * 告警时间 + */ + @TableField("ALARM_TIME") + private Date alarmTime; + /** + * 告警状态 + */ + @TableField("STATUS") + private String status; + /** + * 工单编号 + */ + @TableField("JOB_ID") + private Long jobId; + + @TableField(exist = false) + private Integer jobStatus; + +} diff --git a/src/main/java/com/casic/model/DataH2s.java b/src/main/java/com/casic/model/DataH2s.java new file mode 100644 index 0000000..16ecc7a --- /dev/null +++ b/src/main/java/com/casic/model/DataH2s.java @@ -0,0 +1,37 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + */ +@Data +@TableName("data_h2s") +public class DataH2s { + + private Long id; + + private String devcode; + + private String wellCode; + + private String cell; + + private String strength; + + private String uptime; + + private String logtime; + + private String descn; + + private String rsrp; + + private String pci; + + private String snr; + +} diff --git a/src/main/java/com/casic/model/DeviceTypeEnum.java b/src/main/java/com/casic/model/DeviceTypeEnum.java deleted file mode 100644 index 26c685f..0000000 --- a/src/main/java/com/casic/model/DeviceTypeEnum.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.casic.model; - - -public enum DeviceTypeEnum { - Well("井盖状态监测仪", 1), - Liquid("液位监测仪", 2), - WasteGas("有害气体监测仪", 3), - Methane("燃气智能监测终端", 4), - TempHumi("温湿度监测仪", 5), - Dig("开挖监测仪", 6), - WellLocator("井盖定位监测仪", 7), - Noise("噪声记录仪", 8), - TempPressure("温度压力监测仪", 9), - FireHydrant("消防栓防盗水监测仪", 11), - Tube("管盯", 12), - LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); - - // 成员变量 - private String name; - private int index; - - // 构造方法 - private DeviceTypeEnum(String name, int index) { - this.name = name; - this.index = index; - } - - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public int getIndex() { - return index; - } - - public void setIndex(int index) { - this.index = index; - } - - public static DeviceTypeEnum getByIndex(String index) { - try { - for (DeviceTypeEnum deviceTypeEnum : values()) { - if (deviceTypeEnum.index == Integer.parseInt(index)) { - return deviceTypeEnum; - } - } - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - //覆盖方法 - @Override - public String toString() { - return this.name; - } -} \ No newline at end of file diff --git a/src/main/java/com/casic/service/AlarmPushService.java b/src/main/java/com/casic/service/AlarmPushService.java deleted file mode 100644 index d180eb2..0000000 --- a/src/main/java/com/casic/service/AlarmPushService.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.service; - -import com.casic.model.AlarmPushConfig; - -public interface AlarmPushService { - - Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig); - - Object getAlarmPush(String scene); - -} - - - diff --git a/src/main/java/com/casic/service/AlarmService.java b/src/main/java/com/casic/service/AlarmService.java deleted file mode 100644 index 4f41038..0000000 --- a/src/main/java/com/casic/service/AlarmService.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.casic.service; - -import com.casic.model.AlarmConfigParam; - -public interface AlarmService { - - Object getAlarmRecord(String deviceType, Integer currentIndex, Integer pageSize, String devcode); - - Object excuteAlramBatchCancel(String deviceType, String devcode); - - Object addAlarmConfig(AlarmConfigParam alarmConfig); - -} diff --git a/src/main/java/com/casic/service/DeviceDataService.java b/src/main/java/com/casic/service/DeviceDataService.java index db656c1..71f8ce9 100644 --- a/src/main/java/com/casic/service/DeviceDataService.java +++ b/src/main/java/com/casic/service/DeviceDataService.java @@ -7,4 +7,6 @@ Object getDeviceListPage(String deviceType, Integer currentIndex, Integer pageSize, String devcode); Object getLevel(String deviceType); + + void checkAndUpdateDeviceOnline(); } diff --git a/src/main/java/com/casic/service/ThirdDataService.java b/src/main/java/com/casic/service/ThirdDataService.java index 795e0b2..31dc516 100644 --- a/src/main/java/com/casic/service/ThirdDataService.java +++ b/src/main/java/com/casic/service/ThirdDataService.java @@ -1,8 +1,11 @@ package com.casic.service; -import com.casic.model.PressureDataParam; +import java.util.Map; public interface ThirdDataService { - Object getDeviceRecentData(PressureDataParam pressureData); + + Object h2sData(Map h2sDataMap); + + } diff --git a/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java b/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java deleted file mode 100644 index d193905..0000000 --- a/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.casic.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.dao.AlarmPushMapper; -import com.casic.model.AlarmPushConfig; -import com.casic.model.ResponseData; -import com.casic.service.AlarmPushService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.dao.DataAccessException; -import org.springframework.stereotype.Service; - -import java.util.List; -import java.util.Optional; - -@Service -@Slf4j -public class AlarmPushServiceImpl extends ServiceImpl implements AlarmPushService { - - @Override - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - ResponseData responseData = new ResponseData(); - try { - QueryWrapper queryWrapper = new QueryWrapper() - .eq("scene", alarmSwitchConfig.getScene()); -// this.baseMapper.delete(deleteWrapper); - this.baseMapper.update(alarmSwitchConfig, queryWrapper); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("报警推送配置新增异常,场景{},异常信息{}", alarmSwitchConfig.getScene(), dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - @Override - public Object getAlarmPush(String scene) { - ResponseData responseData = new ResponseData(); - try { - QueryWrapper queryWrapper = new QueryWrapper() - .eq("scene", scene); - List alarmPushConfigList = this.baseMapper.selectList(queryWrapper); - Optional alarmPushConfigOptional = alarmPushConfigList.stream().findFirst(); - responseData.setData(alarmPushConfigOptional.isPresent() ? alarmPushConfigOptional.get() : new Object()); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("报警推送配置查询异常,场景{},异常信息{}", scene, dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } -} diff --git a/src/main/java/com/casic/service/impl/AlarmServiceImple.java b/src/main/java/com/casic/service/impl/AlarmServiceImple.java deleted file mode 100644 index 8a29af9..0000000 --- a/src/main/java/com/casic/service/impl/AlarmServiceImple.java +++ /dev/null @@ -1,129 +0,0 @@ -package com.casic.service.impl; - -import com.alibaba.druid.util.StringUtils; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.dao.AlarmMapper; -import com.casic.dao.BusConfigMapper; -import com.casic.model.*; -import com.casic.service.AlarmService; -import com.casic.util.DeviceDataTableEnum; -import com.casic.util.RedisCommon; -import lombok.extern.slf4j.Slf4j; -import org.springframework.dao.DataAccessException; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import javax.annotation.Resource; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -@Slf4j -@Service -public class AlarmServiceImple extends ServiceImpl implements AlarmService { - - @Resource - private BusConfigMapper busConfigMapper; - @Resource - private RedisCommon redisCommonUtil; - - @Override - public Object getAlarmRecord(String deviceType, Integer currentIndex, Integer pageSize, String devcode) { - ResponseData responseData = new ResponseData(); - try { - Map page = new HashMap(); - page.put("total", this.baseMapper.getAlarmTotalRecord(deviceType, devcode)); - List> alarmRecordList = this.baseMapper.getAlarmRecord(deviceType, devcode, pageSize * (currentIndex - 1), pageSize); - page.put("rows", alarmRecordList); - responseData.setData(page); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("设备数据查询异常,设备类型{},异常信息{}", deviceType, dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - @Override - @Transactional - public Object excuteAlramBatchCancel(String deviceType, String devcode) { - ResponseData responseData = new ResponseData(); - try { - this.baseMapper.excuteAlramBatchCancel(deviceType, devcode); - this.baseMapper.excuteJobBatchCancel(deviceType, devcode); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("批量消警异常,设备类型{},异常信息{}", deviceType, dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - @Override - @Transactional - public Object addAlarmConfig(AlarmConfigParam alarmConfigParam) { - ResponseData responseData = new ResponseData(); - try { - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - addBusConfig(alarmConfigParam); - addRuleConfig(alarmConfigParam); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("风险配置异常,异常信息{}", dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - private void addRuleConfig(AlarmConfigParam alarmConfigParam) { - Map alarmRuleMap = new HashMap(); - alarmRuleMap.put("DEVICE_TYPE", alarmConfigParam.getDeviceType()); - this.baseMapper.deleteByMap(alarmRuleMap); - AlarmLevel alarmRule = new AlarmLevel(); - DeviceDataTableEnum deviceDataTableEnum = DeviceDataTableEnum.DEVICE_TYPE_TABLE.getTableNameMap() - .get(Integer.valueOf(alarmConfigParam.getDeviceType())); - alarmRule.setName(deviceDataTableEnum.getTypeName()); - alarmRule.setHighValue(Float.valueOf(alarmConfigParam.getThresholdVol())); - alarmRule.setTs(new Date()); - alarmRule.setLevel(1); - alarmRule.setDeviceType(alarmConfigParam.getDeviceType()); - this.baseMapper.insert(alarmRule); - } - - private void addBusConfig(AlarmConfigParam alarmConfigParam) { - String devcode = StringUtils.isEmpty(alarmConfigParam.getDevcode()) ? this.baseMapper.getDeviceDevcode(alarmConfigParam.getDeviceType()) : alarmConfigParam.getDevcode(); - sendBusConfig(alarmConfigParam, devcode); - String devcideId = this.baseMapper.getDeviceByDevcode(alarmConfigParam.getDeviceType(), devcode); - BusConfig busConfig = new BusConfig(); - busConfig.setDeviceId(devcideId); - busConfig.setFramecontent("3," + alarmConfigParam.getCollectInterval() + "," + alarmConfigParam.getCollectInterval() + - "," + alarmConfigParam.getRetryNum() + "," + alarmConfigParam.getIp() + "," + alarmConfigParam.getPort()); - busConfig.setSensorid(""); - busConfig.setStatus("0"); - busConfig.setAttemptscurrent(0); - busConfig.setWritetime(new Date()); - busConfig.setAttemptsmax(3); - busConfigMapper.insert(busConfig); - } - - private void sendBusConfig(AlarmConfigParam alarmConfigParam, String devcode) { - CommConfigDTO commConfigDTO = new CommConfigDTO(); - commConfigDTO.setInterval(StringUtils.isEmpty(alarmConfigParam.getCollectInterval()) ? 300 : Long.valueOf(alarmConfigParam.getCollectInterval())); - commConfigDTO.setRepeat(StringUtils.isEmpty(alarmConfigParam.getRetryNum()) ? 300 : Long.valueOf(alarmConfigParam.getRetryNum())); -// commConfigDTO.setTimes(Long.valueOf(1)); -// commConfigDTO.setIp(alarmConfigParam.getIp()); -// commConfigDTO.setPort(StringUtils.isEmpty(alarmConfigParam.getPort()) ? 8080 : Long.valueOf(alarmConfigParam.getPort())); - commConfigDTO.setPeriod(StringUtils.isEmpty(alarmConfigParam.getUploadCycle()) ? 300 : Long.valueOf(alarmConfigParam.getUploadCycle())); -// commConfigDTO.setThresh(); - commConfigDTO.setThresh(StringUtils.isEmpty(alarmConfigParam.getThresholdVol()) ? 50 : Float.valueOf(alarmConfigParam.getThresholdVol())); - redisCommonUtil.send(commConfigDTO, devcode); - } - - -} diff --git a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java index e35daef..136912f 100644 --- a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java +++ b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java @@ -1,27 +1,36 @@ package com.casic.service.impl; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.casic.dao.DeviceDataMapper; import com.casic.model.ResponseData; import com.casic.service.DeviceDataService; import com.casic.util.DeviceDataFieldTableEnum; import com.casic.util.DeviceDataTableEnum; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collector; +import java.util.stream.Collectors; @Service @Slf4j +@RequiredArgsConstructor public class DeviceDataServiceImpl implements DeviceDataService { - private final DeviceDataMapper deviceDataMapper; + @Value("${casic.device.type}") + private Integer devciceType; - public DeviceDataServiceImpl(DeviceDataMapper deviceDataMapper) { - this.deviceDataMapper = deviceDataMapper; - } + @Value("${casic.device.data-day}") + private Integer dataDay; + + private final DeviceDataMapper deviceDataMapper; @Override public Object getDeviceRecentData(String deviceType, String recentNum, String devcode) { @@ -80,4 +89,26 @@ return responseData; } + @Override + @Transactional + public void checkAndUpdateDeviceOnline() { + //查询硫化氢设备 + List String = deviceDataMapper.getDevcodeByType(devciceType); + //统一查询所有设备的3天内数据的设备编号,然后设备编号转成map,进行 + List dataList = deviceDataMapper.getRecentData(dataDay); + List dataSortDevcodeList = dataList; + if (dataList != null) { + Map devOnlineMap = new HashMap<>(); + for (String devcodeData : dataList) { + devOnlineMap.put(devcodeData, ""); + } + dataSortDevcodeList = dataSortDevcodeList.stream().filter( + e -> !devOnlineMap.containsKey(e)).collect(Collectors.toList()); + } + //统一更新 + if (CollectionUtils.isNotEmpty(dataList)) { + deviceDataMapper.updateOnlineByDevs(dataSortDevcodeList); + } + } + } diff --git a/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java b/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java index 7ac6bc1..9d28170 100644 --- a/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java +++ b/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java @@ -2,158 +2,194 @@ import com.alibaba.druid.util.StringUtils; import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.config.AliYunConfig; -import com.casic.dao.DataPressureMapper; -import com.casic.model.AlarmPushConfig; -import com.casic.model.DataPressure; -import com.casic.model.PressureDataParam; -import com.casic.model.ResponseData; -import com.casic.service.AlarmPushService; -import com.casic.service.MessagePusherService; +import com.casic.dao.AlarmRecordMapper; +import com.casic.dao.DataH2sMapper; +import com.casic.enums.H2sParamsEnum; +import com.casic.model.AlarmRecord; +import com.casic.model.DataH2s; import com.casic.service.ThirdDataService; -import com.casic.util.SendBatchSmsUtil; +import com.casic.util.RedisCommon; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; -import java.io.UnsupportedEncodingException; -import java.net.URLDecoder; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.*; -import java.util.stream.Collectors; @Service @Slf4j -public class ThirdDataServiceImpl extends ServiceImpl implements ThirdDataService { +@RequiredArgsConstructor +public class ThirdDataServiceImpl extends ServiceImpl implements ThirdDataService, H2sParamsEnum { private final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA); - - @Autowired - private AlarmPushService alarmPushService; - - @Autowired - private MessagePusherService messagePusherService; - - @Autowired - private SendBatchSmsUtil sendBatchSmsUtil; - + private final RedisCommon redisCommon; + private final AlarmRecordMapper alarmRecordMapper; @Override - public Object getDeviceRecentData(PressureDataParam pressureDataParam) { - ResponseData responseData = new ResponseData(); + public Object h2sData(Map h2sDataMap) { try { - batchSave(pressureDataParam); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); + if (h2sDataMap.containsKey(ICCID)) { + //开机上报->存储映射管理->查询是否有下发配置-进行回应 + return powerOnReport(h2sDataMap); + } else if (h2sDataMap.containsKey(H2S_VALUE)) { //数据上报 + if (ObjectUtils.isNotEmpty(h2sDataMap.get(DEVCODE))) { + //清除离线-清除报警-报警-存库-查询是否有下发配置-进行回应 + return dataSave(h2sDataMap); + } + } } catch (DataAccessException dae) { - log.error("设备最近数据查询异常,设备类型{},异常信息{}", dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); + log.error("设备上报数据异常,设备传入的json是{},异常信息{}", dae.getMessage()); } - return responseData; + return defaultDeliveryConfig(null); } - private void batchSave(PressureDataParam pressureDataParam) { - String pressureDataJson = pressureDataParam.getRawData(); - log.info("----" + pressureDataJson); - Map pressureDataMap = JSON.parseObject(pressureDataJson, HashMap.class); - Date uptime = null; - try { - uptime = dateFormat.parse(String.valueOf(pressureDataMap.get("times"))); - } catch (Exception e) { - log.error("主题,采集时间解析异常,异常信息{}", e.getMessage()); - } - List> pressureDataList = (List>) pressureDataMap.get("sensorDatas"); - DataPressure dataPressure = initPrssureData(pressureDataList, uptime); - if (dataPressure == null) { - return; - } - checkAlarm(dataPressure); + + private Map defaultDeliveryConfig(Map configDataMap) { + Map map = new HashMap(); + //必带参数,否则会被thingsboard舍弃 + map.put("method", "setParams"); + //判断是否有下发配置必须 + map.put("status", ObjectUtils.isNotEmpty(configDataMap) ? 200 : 201); + map.put("params", configDataMap); + //可省略 + map.put("timeout", "3000"); + return map; } - private DataPressure initPrssureData(List> pressureDataList, Date uptime) { - DataPressure dataPressure = new DataPressure(); - String devcode = pressureDataList.get(pressureDataList.size() - 1).get("str"); - Map pressureDataMap = pressureDataList.stream().collect( - Collectors.toMap(e -> String.valueOf(e.get("flag")), e -> String.valueOf(e.get("value"))) - ); -// if (CacheUtil.serialBuf.get(devcode)!=null&&CacheUtil.serialBuf.get(devcode).equals(pressureDataMap.get("F"))) { -// return null; -// } + /** + * 开机上报->储存,是否有下发配置,选择合适的格式返回 + * + * @param h2sDataMap + */ + private Map powerOnReport(Map h2sDataMap) { + /** + * 三码上报 + */ + String iccid = (String) h2sDataMap.get(ICCID); + String imei = (String) h2sDataMap.get(IMEI); + String devcode = (String) h2sDataMap.get(DEVCODE); + //清除离线 + this.baseMapper.clearOnline(devcode); + //先查,是否有数据,有数据直接覆盖,否则插入数据 + String isImei = this.baseMapper.getImeiByDevcode(devcode); + int save = StringUtils.isEmpty(isImei) ? this.baseMapper.addImeiDevcode(devcode, imei, iccid) : + this.baseMapper.updateImeiDevcode(devcode, imei, iccid); + if (save > 0) { + //保存三码关系 + Map configDataMap = redisCommon.getMsg((String) h2sDataMap.get(DEVCODE)); + if (ObjectUtils.isNotEmpty(configDataMap)) { + return defaultDeliveryConfig(configDataMap); + } + } else { + throw new RuntimeException("三码上传保存异常,异常数据为" + JSON.toJSON(h2sDataMap)); + } + return defaultDeliveryConfig(null); + } + + private Map dataSave(Map h2sDataMap) { + DataH2s dataH2s = initH2sData(h2sDataMap); + this.baseMapper.clearOnline((String) h2sDataMap.get(DEVCODE)); + if (ObjectUtils.isNotEmpty(dataH2s)) { + checkAlarm(dataH2s); + Map configDataMap = redisCommon.getMsg((String) h2sDataMap.get(DEVCODE)); + if (ObjectUtils.isNotEmpty(configDataMap)) { + return defaultDeliveryConfig(configDataMap); + } + } + return defaultDeliveryConfig(null); + } + + private DataH2s initH2sData(Map h2sDataMap) { + DataH2s dataH2s = new DataH2s(); + String devcode = (String) h2sDataMap.get(DEVCODE); String wellCode = this.baseMapper.getWellCode(devcode); - dataPressure.setWellCode(wellCode); - dataPressure.setDevcode(devcode); - dataPressure.setPci(pressureDataMap.get("Q")); - dataPressure.setCell(Float.valueOf(pressureDataMap.get("V"))); - dataPressure.setTemperature(pressureDataMap.get("T")); - dataPressure.setPress(pressureDataMap.get("F")); - dataPressure.setUptime(dateFormat.format(uptime)); - dataPressure.setLogtime(dateFormat.format(new Date())); - this.baseMapper.insert(dataPressure); -// CacheUtil.serialBuf.put(devcode, pressureDataMap.get("F")); - return dataPressure; + dataH2s.setWellCode(wellCode); + dataH2s.setDevcode(devcode); + dataH2s.setStrength((String) h2sDataMap.get(H2S_VALUE)); + dataH2s.setCell((String) h2sDataMap.get(BATTERY_VALUE)); + dataH2s.setUptime(dateFormat.format(new Date())); + dataH2s.setLogtime(dateFormat.format(new Date())); + this.baseMapper.insert(dataH2s); + return dataH2s; } - private void checkAlarm(DataPressure dataPressure) { + /** + * 检查是否有报警 + * + * @param dataH2s + */ + private void checkAlarm(DataH2s dataH2s) { final Float ruleValue = this.baseMapper.getRuleValue("24"); if (ruleValue == null) { return; } - if (!StringUtils.isEmpty(dataPressure.getPress()) && !dataPressure.getPress().equals("null")) { - if (Float.valueOf(dataPressure.getPress()) > ruleValue) { - this.baseMapper.saveRecords(dataPressure.getPress(), new Date()); - alarmPushBuilder(dataPressure.getDevcode(), dataPressure.getPress()); + if (!StringUtils.isEmpty(dataH2s.getStrength()) && !"null".equals(dataH2s.getStrength())) { + String status = "3"; + if (Float.valueOf(dataH2s.getStrength()) > ruleValue) { + //因新的报警消警 “0” + status = "0"; + alarmRecordMapper.insert(buildAlarmRecord(dataH2s)); } + this.baseMapper.cancelAlarm(dataH2s.getDevcode(), status); } } + private AlarmRecord buildAlarmRecord(DataH2s dataH2s) { + AlarmRecord alarmRecord = AlarmRecord.builder() + .devcode(dataH2s.getDevcode()) + .wellCode(dataH2s.getWellCode()) + .alarmType(dataH2s.getStrength()) + .alarmMessage("浓度超限") + .deviceId(dataH2s.getId()) + .alarmType("1") + .alarmContent("浓度超限") + .status("1") + .build(); + return alarmRecord; + } + // "在2023年1月12号 16时43分23秒,设备41232561发生了压力超标/浓度超限,数值为20" // + "设备" + devcode + "发生了压力超标,压力值为" + presss - // - @Autowired - private AliYunConfig aliYunConfig; - private void alarmPushBuilder(String devcode, String presss) { - ResponseData responseData = (ResponseData) alarmPushService.getAlarmPush("H2S"); - AlarmPushConfig alarmPushConfig = (AlarmPushConfig) responseData.getData(); - if (alarmPushConfig.getEnable().equals(1)) { - if (alarmPushConfig.getWebsocketAlarm().equals(1)) { - String msg = "在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "," - + "设备" + devcode + "发生了压力超标,压力值为" + presss; - try { - messagePusherService.updateSinkJob("", URLDecoder.decode(msg, "UTF-8")); - } catch (UnsupportedEncodingException uee) { - log.error("websocket推送,内容转码出现异常,异常信息为{}", uee.getMessage()); - } - } - if (alarmPushConfig.getShortMessageAlarm().equals(1)) { - JSONArray msglist = new JSONArray(); - JSONObject msgMap = new JSONObject(); - msgMap.put("time", new SimpleDateFormat("yyyyMMdd HH:mm:ss").format(new Date())); - msgMap.put("devcode", devcode); - msgMap.put("value", presss); - msgMap.put("content", "压力超标"); - String phoneJson = ""; - List aliSignNameList = new ArrayList<>(); - String aliSignName = aliYunConfig.getSignNameJson(); - if (!org.apache.commons.lang3.StringUtils.isEmpty(alarmPushConfig.getPhoneArray())) { - String[] phones = alarmPushConfig.getPhoneArray().split(","); - List phoneList = new ArrayList<>(); - for (String phone : phones) { - msglist.add(msgMap); - phoneList.add(phone); - aliSignNameList.add(aliSignName); - } - phoneJson = JSONObject.toJSONString(phoneList); - } - sendBatchSmsUtil.sendMsg(phoneJson, JSON.toJSONString(msgMap),JSONObject.toJSONString(aliSignNameList)); - } - } +// ResponseData responseData = (ResponseData) alarmPushService.getAlarmPush("H2S"); +// AlarmPushConfig alarmPushConfig = (AlarmPushConfig) responseData.getData(); +// if (alarmPushConfig.getEnable().equals(1)) { +// if (alarmPushConfig.getWebsocketAlarm().equals(1)) { +// String msg = "在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "," +// + "设备" + devcode + "发生了压力超标,压力值为" + presss; +// try { +// messagePusherService.updateSinkJob("", URLDecoder.decode(msg, "UTF-8")); +// } catch (UnsupportedEncodingException uee) { +// log.error("websocket推送,内容转码出现异常,异常信息为{}", uee.getMessage()); +// } +// } +// if (alarmPushConfig.getShortMessageAlarm().equals(1)) { +// JSONArray msglist = new JSONArray(); +// JSONObject msgMap = new JSONObject(); +// msgMap.put("time", new SimpleDateFormat("yyyyMMdd HH:mm:ss").format(new Date())); +// msgMap.put("devcode", devcode); +// msgMap.put("value", presss); +// msgMap.put("content", "压力超标"); +// String phoneJson = ""; +// List aliSignNameList = new ArrayList<>(); +// String aliSignName = aliYunConfig.getSignNameJson(); +// if (!org.apache.commons.lang3.StringUtils.isEmpty(alarmPushConfig.getPhoneArray())) { +// String[] phones = alarmPushConfig.getPhoneArray().split(","); +// List phoneList = new ArrayList<>(); +// for (String phone : phones) { +// msglist.add(msgMap); +// phoneList.add(phone); +// aliSignNameList.add(aliSignName); +// } +// phoneJson = JSONObject.toJSONString(phoneList); +// } +// sendBatchSmsUtil.sendMsg(phoneJson, JSON.toJSONString(msgMap), JSONObject.toJSONString(aliSignNameList)); +// } +// } } diff --git a/src/main/java/com/casic/util/ArtemisPostUtil.java b/src/main/java/com/casic/util/ArtemisPostUtil.java index c6655af..3084bde 100644 --- a/src/main/java/com/casic/util/ArtemisPostUtil.java +++ b/src/main/java/com/casic/util/ArtemisPostUtil.java @@ -1,7 +1,5 @@ package com.casic.util; -import com.alibaba.fastjson.JSONObject; -import com.casic.config.ApiHikomConfig; import com.casic.model.HkvideoValidParam; import com.casic.model.ResponseData; //import com.hikvision.artemis.sdk.ArtemisHttpUtil; @@ -10,8 +8,6 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; -import java.util.HashMap; -import java.util.Map; /** * 海康验证 @@ -20,8 +16,8 @@ @Slf4j public class ArtemisPostUtil { - @Resource - private ApiHikomConfig apiHikomConfig; +// @Resource +// private ApiHikomConfig apiHikomConfig; private final String contentType = "application/json"; public ResponseData artemisPost(HkvideoValidParam hkvideoValidParam) { diff --git a/src/main/java/com/casic/util/RedisCommon.java b/src/main/java/com/casic/util/RedisCommon.java index 617d73b..80562b9 100644 --- a/src/main/java/com/casic/util/RedisCommon.java +++ b/src/main/java/com/casic/util/RedisCommon.java @@ -7,6 +7,7 @@ import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; +import java.util.Map; import java.util.concurrent.TimeUnit; @Component @@ -20,6 +21,15 @@ @Autowired private RedisTemplate redisTemplate; + + public Map getMsg(String key) { + // 判断上次保存时间,如果到期(key失效),再保存新的 + String timeStampKey = configPrefix + key; + Object dataJson = redisTemplate.opsForValue().get(timeStampKey); + return JSON.parseObject((String) dataJson); + } + + public void send(CommConfigDTO commConfigDTO,String devCode) { redisTemplate.opsForValue().set(configPrefix+ devCode, JSON.toJSONString(commConfigDTO), diff --git a/src/main/java/com/casic/util/SendBatchSmsUtil.java b/src/main/java/com/casic/util/SendBatchSmsUtil.java deleted file mode 100644 index 6152c60..0000000 --- a/src/main/java/com/casic/util/SendBatchSmsUtil.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.casic.util; -// This file is auto-generated, don't edit it. Thanks. - -import com.alibaba.fastjson.JSONObject; -import com.aliyun.auth.credentials.Credential; -import com.aliyun.auth.credentials.provider.StaticCredentialProvider; -import com.aliyun.sdk.service.dysmsapi20170525.models.*; -import com.aliyun.sdk.service.dysmsapi20170525.*; -import com.casic.config.AliYunConfig; -import com.google.gson.Gson; -import darabonba.core.client.ClientOverrideConfiguration; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import java.text.SimpleDateFormat; -import java.time.Duration; -import java.util.*; -import java.util.concurrent.CompletableFuture; - -@AllArgsConstructor -@Component -@Slf4j -public class SendBatchSmsUtil { - - private AliYunConfig aliYunConfig; - - public void sendMsg(String phoneJson, String msgJson,String aliSignNameJson) { - StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder() - .accessKeyId(aliYunConfig.getKey()) - .accessKeySecret(aliYunConfig.getScrect()) - .build()); - - AsyncClient client = AsyncClient.builder() - .region("cn-shanghai") // Region ID - .credentialsProvider(provider) - .overrideConfiguration( - ClientOverrideConfiguration.create() - .setEndpointOverride(aliYunConfig.getUrl()) - .setConnectTimeout(Duration.ofSeconds(30)) - ) - .build(); - - SendBatchSmsRequest sendBatchSmsRequest = SendBatchSmsRequest.builder() - .phoneNumberJson(phoneJson) - .signNameJson(aliSignNameJson) - .templateCode(aliYunConfig.getTemplateCode()) - .templateParamJson(msgJson) - .build(); - - CompletableFuture response = client.sendBatchSms(sendBatchSmsRequest); - try { - SendBatchSmsResponse resp = response.get(); - System.out.println(new Gson().toJson(resp)); - } catch (Exception ex) { - log.error("发送消息出现异常,手机号内容为{},信息内容为{}",phoneJson,msgJson,ex.getMessage()); - }finally { - client.close(); - } - } - - -// public static void main(String[] args) throws Exception { -// StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder() -// .accessKeyId("LTAI5tDFNucQF2Bdy4fHgzrN") -// .accessKeySecret("hZ22QQPxQue1G0R8Ty2bo6GimrLdoB") -// .build()); -// -// AsyncClient client = AsyncClient.builder() -// .region("cn-shanghai") // Region ID -// .credentialsProvider(provider) -// .overrideConfiguration( -// ClientOverrideConfiguration.create() -// .setEndpointOverride("dysmsapi.aliyuncs.com") -// .setConnectTimeout(Duration.ofSeconds(30)) -// ) -// .build(); -// List> msgList = new ArrayList<>(); -// Map msgMap = new HashMap<>(); -// msgMap.put("time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); -// msgMap.put("devcode", "123456"); -// msgMap.put("value", "24Vol"); -// msgMap.put("content", "浓度超限"); -// msgList.add(msgMap); -// Map msgMapCoye=(Map)((HashMap) msgMap).clone(); -// msgList.add(msgMapCoye); -// System.out.println(JSONObject.toJSONString(msgList)); -// SendBatchSmsRequest sendBatchSmsRequest = SendBatchSmsRequest.builder() -// .phoneNumberJson("[\"13651065090\",\"13652031267\"]") -// .signNameJson("[\"柴壮告警提醒\",\"柴壮告警提醒\"]") -// .templateCode("SMS_268475055") -// .templateParamJson(JSONObject.toJSONString(msgList)) -// .build(); -// -// CompletableFuture response = client.sendBatchSms(sendBatchSmsRequest); -// SendBatchSmsResponse resp = response.get(); -// System.out.println(new Gson().toJson(resp)); -// client.close(); -// } - -} \ No newline at end of file diff --git a/src/main/resources/config/application-dev.yml b/src/main/resources/config/application-dev.yml index 30e52e5..ef7bf6a 100644 --- a/src/main/resources/config/application-dev.yml +++ b/src/main/resources/config/application-dev.yml @@ -3,10 +3,10 @@ ################### spring配置 ################### spring: datasource: - driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11102/smartwell_demos?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=GMT%2B8&&allowMultiQueries=true&&useSSL=true - username: root - password: Casic203! + url: jdbc:dm://111.198.10.15:11211/schema=SMARTWELL?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + driver-class-name: dm.jdbc.driver.DmDriver + username: SMARTWELL + password: Casic20311 session: store-type: redis redis: diff --git a/src/main/resources/config/application.yml b/src/main/resources/config/application.yml index 81bed8c..9226c8f 100644 --- a/src/main/resources/config/application.yml +++ b/src/main/resources/config/application.yml @@ -32,15 +32,7 @@ port: 6379 password: ew5T4K3#203lwh config-prefix: 'Casic:' - hikom: - url: /artemis/api/video/v1/cameras/previewURLs - host: 118.122.17.165:1443/ - ali: - key: LTAI5tDFNucQF2Bdy4fHgzrN - secret: hZ22QQPxQue1G0R8Ty2bo6GimrLdoB - url: dysmsapi.aliyuncs.com - signNameJson: 柴壮告警提醒 - templateCode: SMS_268475055 + swagger: enable: true groupName: "硫化氢课题" \ No newline at end of file diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/casic/config/AliYunConfig.java b/src/main/java/com/casic/config/AliYunConfig.java deleted file mode 100644 index 090b6ab..0000000 --- a/src/main/java/com/casic/config/AliYunConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Slf4j -@Configuration -@ConfigurationProperties(prefix = "casic.ali") -@Data -public class AliYunConfig { - - private String key; - private String screct; - private String url; - private String signNameJson; - private String templateCode; - -} diff --git a/src/main/java/com/casic/config/ApiHikomConfig.java b/src/main/java/com/casic/config/ApiHikomConfig.java deleted file mode 100644 index 73b3550..0000000 --- a/src/main/java/com/casic/config/ApiHikomConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -@Data -public class ApiHikomConfig { - @Value("${casic.hikom.host}") - private String hikomHost; - @Value("${casic.hikom.url}") - private String hikomUrl; -} diff --git a/src/main/java/com/casic/config/task/TaskConfigurer.java b/src/main/java/com/casic/config/task/TaskConfigurer.java new file mode 100644 index 0000000..43282d3 --- /dev/null +++ b/src/main/java/com/casic/config/task/TaskConfigurer.java @@ -0,0 +1,44 @@ +package com.casic.config.task; + +import com.casic.service.DeviceDataService; +import com.casic.service.ThirdDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.config.TriggerTask; +import org.springframework.scheduling.support.CronTrigger; + +/** + * @author cz + */ +@Configuration +@EnableScheduling +public class TaskConfigurer implements SchedulingConfigurer { + + @Value("${casic.device.online.corn}") + private String timeConfig; + @Autowired + private DeviceDataService deviceDataService; + + @Override + public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + TriggerTask triggrtTask = new TriggerTask(nextDayDevice(), + triggerContext -> { + return new CronTrigger(timeConfig).nextExecutionTime(triggerContext); + }); + taskRegistrar.addTriggerTask(triggrtTask); + } + + private Runnable nextDayDevice() { + return new Runnable() { + @Override + public void run() { + deviceDataService.checkAndUpdateDeviceOnline(); + } + }; + } + +} \ No newline at end of file diff --git a/src/main/java/com/casic/controller/AlarmController.java b/src/main/java/com/casic/controller/AlarmController.java deleted file mode 100644 index 957fc36..0000000 --- a/src/main/java/com/casic/controller/AlarmController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmConfigParam; -import com.casic.service.AlarmService; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/alarm") -public class AlarmController { - - private final AlarmService alarmService; - - public AlarmController(AlarmService alarmService) { - this.alarmService = alarmService; - } - - @RequestMapping("/records") - public Object getAlarmRecord(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "currentIndex", required = true) Integer currentIndex, - @RequestParam(value = "devcode",required =false) String devcode, - @RequestParam(value = "pageSize", required = true) Integer pageSize) { - return alarmService.getAlarmRecord(deviceType,currentIndex,pageSize,devcode); - } - - @RequestMapping("/batch/cancel") - public Object excuteAlramBatchCancel(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "devcode",required =false) String devcode) { - return alarmService.excuteAlramBatchCancel(deviceType,devcode); - } - - @RequestMapping("/config/add") - public Object addAlarmConfig(@RequestBody AlarmConfigParam alarmConfigParam) { - return alarmService.addAlarmConfig(alarmConfigParam); - } -} diff --git a/src/main/java/com/casic/controller/AlarmPushController.java b/src/main/java/com/casic/controller/AlarmPushController.java deleted file mode 100644 index 1642f9b..0000000 --- a/src/main/java/com/casic/controller/AlarmPushController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmPushConfig; -import com.casic.service.AlarmPushService; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.*; - -@RestController -@AllArgsConstructor -@RequestMapping("/alarm") -public class AlarmPushController { - - private AlarmPushService alarmPushService; - - @RequestMapping("/push/config") - @ResponseBody - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - return alarmPushService.alarmPushConfig(alarmSwitchConfig); - } - - @RequestMapping("/push/query") - public Object alarmPushQuery(@RequestParam(value = "scene", required = true) String scene) { - return alarmPushService.getAlarmPush(scene); - } - -} diff --git a/src/main/java/com/casic/controller/ArtemisValidController.java b/src/main/java/com/casic/controller/ArtemisValidController.java deleted file mode 100644 index 1d52576..0000000 --- a/src/main/java/com/casic/controller/ArtemisValidController.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.controller; - -import com.casic.model.HkvideoValidParam; -import com.casic.model.ResponseData; -import com.casic.util.ArtemisPostUtil; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 海康接口 - */ -@AllArgsConstructor -@RestController -public class ArtemisValidController { - private final ArtemisPostUtil artemisPostUtill; - - @RequestMapping("/hkvideo/getVideoUrl") - public ResponseData getVideoUrl(@RequestBody HkvideoValidParam hkvideoValidParam) { - - return artemisPostUtill.artemisPost(hkvideoValidParam); - } - -} diff --git a/src/main/java/com/casic/controller/MessagePusherController.java b/src/main/java/com/casic/controller/MessagePusherController.java index d447c05..b97dcd1 100644 --- a/src/main/java/com/casic/controller/MessagePusherController.java +++ b/src/main/java/com/casic/controller/MessagePusherController.java @@ -32,8 +32,7 @@ } catch (UnsupportedEncodingException e) { e.printStackTrace(); } - return retMap; - } + return retMap; } //报警开关按钮 // diff --git a/src/main/java/com/casic/controller/ThirdDataController.java b/src/main/java/com/casic/controller/ThirdDataController.java index d910a7d..fbd8e59 100644 --- a/src/main/java/com/casic/controller/ThirdDataController.java +++ b/src/main/java/com/casic/controller/ThirdDataController.java @@ -1,8 +1,6 @@ package com.casic.controller; import com.alibaba.fastjson.JSON; -import com.casic.model.CommConfigDTO; -import com.casic.model.PressureDataParam; import com.casic.model.ResponseData; import com.casic.service.ThirdDataService; import lombok.extern.slf4j.Slf4j; @@ -10,7 +8,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.HashMap; import java.util.Map; @RestController @@ -24,22 +21,25 @@ this.thirdDataService = thirdDataService; } - @RequestMapping("/pressure/data") - public Object getDeviceRecentData(@RequestBody PressureDataParam pressureData) { - return thirdDataService.getDeviceRecentData(pressureData); + /** + * 硫化氢订阅接口 + * + * @param h2sDataMap + * @return + */ + @RequestMapping("/h2s-data") + public Object h2sData(@RequestBody Map h2sDataMap) { + System.out.println(JSON.toJSON(h2sDataMap)); + return thirdDataService.h2sData(h2sDataMap); } - @RequestMapping("/data") - public Object getDeviceData(@RequestBody Map pressureDataMap) { - System.out.println(JSON.toJSON(pressureDataMap)); - Map map = new HashMap(); - map.put("method", "setParams"); - Map param = new HashMap(); - param.put("ip", "大胆猜测下"); - map.put("status", 200); - map.put("params", param); - map.put("timeout", "3000"); - return map; + @RequestMapping("/test") + public Object testNbResponse (@RequestBody Map h2sDataMap){ + ResponseData responseData=new ResponseData(); + responseData.setCode(200); + responseData.setData("oyAAGDcgFAEAAcMAAQWfAXOJd1POnas6zxTmU7jQkVJinQ=="); + System.out.println(JSON.toJSON(h2sDataMap)); + return responseData; } } diff --git a/src/main/java/com/casic/dao/AlarmPushMapper.java b/src/main/java/com/casic/dao/AlarmPushMapper.java deleted file mode 100644 index 9d7484b..0000000 --- a/src/main/java/com/casic/dao/AlarmPushMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.AlarmPushConfig; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface AlarmPushMapper extends BaseMapper { -} diff --git a/src/main/java/com/casic/dao/AlarmRecordMapper.java b/src/main/java/com/casic/dao/AlarmRecordMapper.java new file mode 100644 index 0000000..d8a4911 --- /dev/null +++ b/src/main/java/com/casic/dao/AlarmRecordMapper.java @@ -0,0 +1,12 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.AlarmRecord; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AlarmRecordMapper extends BaseMapper { + + + +} diff --git a/src/main/java/com/casic/dao/DataH2sMapper.java b/src/main/java/com/casic/dao/DataH2sMapper.java new file mode 100644 index 0000000..434f1e2 --- /dev/null +++ b/src/main/java/com/casic/dao/DataH2sMapper.java @@ -0,0 +1,27 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.DataH2s; +import com.casic.model.DataPressure; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; + +@Mapper +public interface DataH2sMapper extends BaseMapper { + + int clearOnline(@Param("devcode") String devcode); + + String getWellCode(@Param("devcode") String devcode); + + Float getRuleValue(@Param("deviceType") String deviceType); + + int cancelAlarm(@Param("devcode") String devcode, @Param("status") String status); + + String getImeiByDevcode(@Param("devcode") String devcode); + + int updateImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); + + int addImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); +} diff --git a/src/main/java/com/casic/dao/DataPressureMapper.java b/src/main/java/com/casic/dao/DataPressureMapper.java deleted file mode 100644 index 05f4329..0000000 --- a/src/main/java/com/casic/dao/DataPressureMapper.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.DataPressure; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.Date; - -@Mapper -public interface DataPressureMapper extends BaseMapper { - - String getWellCode(@Param("devcode") String devcode); - - Float getRuleValue(@Param("deviceType") String deviceType); - - void saveRecords(@Param("reValue") String reValue, @Param("alarmTime") Date alarmTime); - -} diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java index d9e18a0..e62d526 100644 --- a/src/main/java/com/casic/dao/DeviceDataMapper.java +++ b/src/main/java/com/casic/dao/DeviceDataMapper.java @@ -23,5 +23,14 @@ @Param("pageSize") Integer pageSize, @Param("devcode") String devcode); - String getLevelByType(@Param("deviceType")String deviceType); + String getLevelByType(@Param("deviceType") String deviceType); + + + List getDevcodeByType(@Param("devciceType") Integer devciceType); + + List getRecentData(@Param("devciceType") Integer dataDay); + + List updateOnlineByDevs(@Param("dataSortDevcodeList") List dataSortDevcodeList); + + } diff --git a/src/main/java/com/casic/enums/DeviceTypeEnum.java b/src/main/java/com/casic/enums/DeviceTypeEnum.java new file mode 100644 index 0000000..8d5a6e6 --- /dev/null +++ b/src/main/java/com/casic/enums/DeviceTypeEnum.java @@ -0,0 +1,64 @@ +package com.casic.enums; + + +public enum DeviceTypeEnum { + Well("井盖状态监测仪", 1), + Liquid("液位监测仪", 2), + WasteGas("有害气体监测仪", 3), + Methane("燃气智能监测终端", 4), + TempHumi("温湿度监测仪", 5), + Dig("开挖监测仪", 6), + WellLocator("井盖定位监测仪", 7), + Noise("噪声记录仪", 8), + TempPressure("温度压力监测仪", 9), + FireHydrant("消防栓防盗水监测仪", 11), + Tube("管盯", 12), + LG("井盖液位一体机", 13), + H2s("硫化氢检测终端", 14); + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private DeviceTypeEnum(String name, int index) { + this.name = name; + this.index = index; + } + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } + + public static DeviceTypeEnum getByIndex(String index) { + try { + for (DeviceTypeEnum deviceTypeEnum : values()) { + if (deviceTypeEnum.index == Integer.parseInt(index)) { + return deviceTypeEnum; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } +} \ No newline at end of file diff --git a/src/main/java/com/casic/enums/H2sParamsEnum.java b/src/main/java/com/casic/enums/H2sParamsEnum.java new file mode 100644 index 0000000..74eec50 --- /dev/null +++ b/src/main/java/com/casic/enums/H2sParamsEnum.java @@ -0,0 +1,35 @@ +package com.casic.enums; + +public interface H2sParamsEnum { + + /** + * 下发配置参数 + */ + String IP = "ip"; + String PORT = "port"; + String CTNET = "ctnet"; + String PERIOD = "period"; + String CYCLE = "cycle"; + /** + * 三码上报 + */ + String ICCID = "iccid"; + String IMEI = "imei"; + String DEVCODE = "devcode"; + /** + * 上传时间 + */ + String TS = "ts"; + /** + * 数据上报(电量、硫化氢数据值、设备编号) + * 数据值 + */ + String H2S_VALUE = "h2sValue"; + /** + * 电量 + */ + String BATTERY_VALUE = "batteryValue"; + + + +} diff --git a/src/main/java/com/casic/model/AlarmRecord.java b/src/main/java/com/casic/model/AlarmRecord.java new file mode 100644 index 0000000..600fe5a --- /dev/null +++ b/src/main/java/com/casic/model/AlarmRecord.java @@ -0,0 +1,81 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; + +import java.util.Date; + +@Builder +@TableName("alarm_records") +public class AlarmRecord { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 设备ID + */ + @TableField("DEVICE_ID") + private Long deviceId; + /** + * 设备编号 + */ + @TableField("DEVCODE") + private String devcode; + /** + * 闸井编号 + */ + @TableField("WELL_CODE") + private String wellCode; + /** + * 告警类型 + */ + @TableField("ALARM_TYPE") + private String alarmType; + /** + * 告警内容 + */ + @TableField("ALARM_CONTENT") + private String alarmContent; + /** + * 告警数值 + */ + @TableField("ALARM_VALUE") + private String alarmValue; + /** + * 告警等级 + */ + @TableField("ALARM_LEVEL") + private Integer alarmLevel; + /** + * 告警详情 + */ + @TableField("ALARM_MSG") + private String alarmMessage; + /** + * 告警时间 + */ + @TableField("ALARM_TIME") + private Date alarmTime; + /** + * 告警状态 + */ + @TableField("STATUS") + private String status; + /** + * 工单编号 + */ + @TableField("JOB_ID") + private Long jobId; + + @TableField(exist = false) + private Integer jobStatus; + +} diff --git a/src/main/java/com/casic/model/DataH2s.java b/src/main/java/com/casic/model/DataH2s.java new file mode 100644 index 0000000..16ecc7a --- /dev/null +++ b/src/main/java/com/casic/model/DataH2s.java @@ -0,0 +1,37 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + */ +@Data +@TableName("data_h2s") +public class DataH2s { + + private Long id; + + private String devcode; + + private String wellCode; + + private String cell; + + private String strength; + + private String uptime; + + private String logtime; + + private String descn; + + private String rsrp; + + private String pci; + + private String snr; + +} diff --git a/src/main/java/com/casic/model/DeviceTypeEnum.java b/src/main/java/com/casic/model/DeviceTypeEnum.java deleted file mode 100644 index 26c685f..0000000 --- a/src/main/java/com/casic/model/DeviceTypeEnum.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.casic.model; - - -public enum DeviceTypeEnum { - Well("井盖状态监测仪", 1), - Liquid("液位监测仪", 2), - WasteGas("有害气体监测仪", 3), - Methane("燃气智能监测终端", 4), - TempHumi("温湿度监测仪", 5), - Dig("开挖监测仪", 6), - WellLocator("井盖定位监测仪", 7), - Noise("噪声记录仪", 8), - TempPressure("温度压力监测仪", 9), - FireHydrant("消防栓防盗水监测仪", 11), - Tube("管盯", 12), - LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); - - // 成员变量 - private String name; - private int index; - - // 构造方法 - private DeviceTypeEnum(String name, int index) { - this.name = name; - this.index = index; - } - - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public int getIndex() { - return index; - } - - public void setIndex(int index) { - this.index = index; - } - - public static DeviceTypeEnum getByIndex(String index) { - try { - for (DeviceTypeEnum deviceTypeEnum : values()) { - if (deviceTypeEnum.index == Integer.parseInt(index)) { - return deviceTypeEnum; - } - } - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - //覆盖方法 - @Override - public String toString() { - return this.name; - } -} \ No newline at end of file diff --git a/src/main/java/com/casic/service/AlarmPushService.java b/src/main/java/com/casic/service/AlarmPushService.java deleted file mode 100644 index d180eb2..0000000 --- a/src/main/java/com/casic/service/AlarmPushService.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.service; - -import com.casic.model.AlarmPushConfig; - -public interface AlarmPushService { - - Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig); - - Object getAlarmPush(String scene); - -} - - - diff --git a/src/main/java/com/casic/service/AlarmService.java b/src/main/java/com/casic/service/AlarmService.java deleted file mode 100644 index 4f41038..0000000 --- a/src/main/java/com/casic/service/AlarmService.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.casic.service; - -import com.casic.model.AlarmConfigParam; - -public interface AlarmService { - - Object getAlarmRecord(String deviceType, Integer currentIndex, Integer pageSize, String devcode); - - Object excuteAlramBatchCancel(String deviceType, String devcode); - - Object addAlarmConfig(AlarmConfigParam alarmConfig); - -} diff --git a/src/main/java/com/casic/service/DeviceDataService.java b/src/main/java/com/casic/service/DeviceDataService.java index db656c1..71f8ce9 100644 --- a/src/main/java/com/casic/service/DeviceDataService.java +++ b/src/main/java/com/casic/service/DeviceDataService.java @@ -7,4 +7,6 @@ Object getDeviceListPage(String deviceType, Integer currentIndex, Integer pageSize, String devcode); Object getLevel(String deviceType); + + void checkAndUpdateDeviceOnline(); } diff --git a/src/main/java/com/casic/service/ThirdDataService.java b/src/main/java/com/casic/service/ThirdDataService.java index 795e0b2..31dc516 100644 --- a/src/main/java/com/casic/service/ThirdDataService.java +++ b/src/main/java/com/casic/service/ThirdDataService.java @@ -1,8 +1,11 @@ package com.casic.service; -import com.casic.model.PressureDataParam; +import java.util.Map; public interface ThirdDataService { - Object getDeviceRecentData(PressureDataParam pressureData); + + Object h2sData(Map h2sDataMap); + + } diff --git a/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java b/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java deleted file mode 100644 index d193905..0000000 --- a/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.casic.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.dao.AlarmPushMapper; -import com.casic.model.AlarmPushConfig; -import com.casic.model.ResponseData; -import com.casic.service.AlarmPushService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.dao.DataAccessException; -import org.springframework.stereotype.Service; - -import java.util.List; -import java.util.Optional; - -@Service -@Slf4j -public class AlarmPushServiceImpl extends ServiceImpl implements AlarmPushService { - - @Override - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - ResponseData responseData = new ResponseData(); - try { - QueryWrapper queryWrapper = new QueryWrapper() - .eq("scene", alarmSwitchConfig.getScene()); -// this.baseMapper.delete(deleteWrapper); - this.baseMapper.update(alarmSwitchConfig, queryWrapper); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("报警推送配置新增异常,场景{},异常信息{}", alarmSwitchConfig.getScene(), dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - @Override - public Object getAlarmPush(String scene) { - ResponseData responseData = new ResponseData(); - try { - QueryWrapper queryWrapper = new QueryWrapper() - .eq("scene", scene); - List alarmPushConfigList = this.baseMapper.selectList(queryWrapper); - Optional alarmPushConfigOptional = alarmPushConfigList.stream().findFirst(); - responseData.setData(alarmPushConfigOptional.isPresent() ? alarmPushConfigOptional.get() : new Object()); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("报警推送配置查询异常,场景{},异常信息{}", scene, dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } -} diff --git a/src/main/java/com/casic/service/impl/AlarmServiceImple.java b/src/main/java/com/casic/service/impl/AlarmServiceImple.java deleted file mode 100644 index 8a29af9..0000000 --- a/src/main/java/com/casic/service/impl/AlarmServiceImple.java +++ /dev/null @@ -1,129 +0,0 @@ -package com.casic.service.impl; - -import com.alibaba.druid.util.StringUtils; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.dao.AlarmMapper; -import com.casic.dao.BusConfigMapper; -import com.casic.model.*; -import com.casic.service.AlarmService; -import com.casic.util.DeviceDataTableEnum; -import com.casic.util.RedisCommon; -import lombok.extern.slf4j.Slf4j; -import org.springframework.dao.DataAccessException; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import javax.annotation.Resource; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -@Slf4j -@Service -public class AlarmServiceImple extends ServiceImpl implements AlarmService { - - @Resource - private BusConfigMapper busConfigMapper; - @Resource - private RedisCommon redisCommonUtil; - - @Override - public Object getAlarmRecord(String deviceType, Integer currentIndex, Integer pageSize, String devcode) { - ResponseData responseData = new ResponseData(); - try { - Map page = new HashMap(); - page.put("total", this.baseMapper.getAlarmTotalRecord(deviceType, devcode)); - List> alarmRecordList = this.baseMapper.getAlarmRecord(deviceType, devcode, pageSize * (currentIndex - 1), pageSize); - page.put("rows", alarmRecordList); - responseData.setData(page); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("设备数据查询异常,设备类型{},异常信息{}", deviceType, dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - @Override - @Transactional - public Object excuteAlramBatchCancel(String deviceType, String devcode) { - ResponseData responseData = new ResponseData(); - try { - this.baseMapper.excuteAlramBatchCancel(deviceType, devcode); - this.baseMapper.excuteJobBatchCancel(deviceType, devcode); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("批量消警异常,设备类型{},异常信息{}", deviceType, dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - @Override - @Transactional - public Object addAlarmConfig(AlarmConfigParam alarmConfigParam) { - ResponseData responseData = new ResponseData(); - try { - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - addBusConfig(alarmConfigParam); - addRuleConfig(alarmConfigParam); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("风险配置异常,异常信息{}", dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - private void addRuleConfig(AlarmConfigParam alarmConfigParam) { - Map alarmRuleMap = new HashMap(); - alarmRuleMap.put("DEVICE_TYPE", alarmConfigParam.getDeviceType()); - this.baseMapper.deleteByMap(alarmRuleMap); - AlarmLevel alarmRule = new AlarmLevel(); - DeviceDataTableEnum deviceDataTableEnum = DeviceDataTableEnum.DEVICE_TYPE_TABLE.getTableNameMap() - .get(Integer.valueOf(alarmConfigParam.getDeviceType())); - alarmRule.setName(deviceDataTableEnum.getTypeName()); - alarmRule.setHighValue(Float.valueOf(alarmConfigParam.getThresholdVol())); - alarmRule.setTs(new Date()); - alarmRule.setLevel(1); - alarmRule.setDeviceType(alarmConfigParam.getDeviceType()); - this.baseMapper.insert(alarmRule); - } - - private void addBusConfig(AlarmConfigParam alarmConfigParam) { - String devcode = StringUtils.isEmpty(alarmConfigParam.getDevcode()) ? this.baseMapper.getDeviceDevcode(alarmConfigParam.getDeviceType()) : alarmConfigParam.getDevcode(); - sendBusConfig(alarmConfigParam, devcode); - String devcideId = this.baseMapper.getDeviceByDevcode(alarmConfigParam.getDeviceType(), devcode); - BusConfig busConfig = new BusConfig(); - busConfig.setDeviceId(devcideId); - busConfig.setFramecontent("3," + alarmConfigParam.getCollectInterval() + "," + alarmConfigParam.getCollectInterval() + - "," + alarmConfigParam.getRetryNum() + "," + alarmConfigParam.getIp() + "," + alarmConfigParam.getPort()); - busConfig.setSensorid(""); - busConfig.setStatus("0"); - busConfig.setAttemptscurrent(0); - busConfig.setWritetime(new Date()); - busConfig.setAttemptsmax(3); - busConfigMapper.insert(busConfig); - } - - private void sendBusConfig(AlarmConfigParam alarmConfigParam, String devcode) { - CommConfigDTO commConfigDTO = new CommConfigDTO(); - commConfigDTO.setInterval(StringUtils.isEmpty(alarmConfigParam.getCollectInterval()) ? 300 : Long.valueOf(alarmConfigParam.getCollectInterval())); - commConfigDTO.setRepeat(StringUtils.isEmpty(alarmConfigParam.getRetryNum()) ? 300 : Long.valueOf(alarmConfigParam.getRetryNum())); -// commConfigDTO.setTimes(Long.valueOf(1)); -// commConfigDTO.setIp(alarmConfigParam.getIp()); -// commConfigDTO.setPort(StringUtils.isEmpty(alarmConfigParam.getPort()) ? 8080 : Long.valueOf(alarmConfigParam.getPort())); - commConfigDTO.setPeriod(StringUtils.isEmpty(alarmConfigParam.getUploadCycle()) ? 300 : Long.valueOf(alarmConfigParam.getUploadCycle())); -// commConfigDTO.setThresh(); - commConfigDTO.setThresh(StringUtils.isEmpty(alarmConfigParam.getThresholdVol()) ? 50 : Float.valueOf(alarmConfigParam.getThresholdVol())); - redisCommonUtil.send(commConfigDTO, devcode); - } - - -} diff --git a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java index e35daef..136912f 100644 --- a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java +++ b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java @@ -1,27 +1,36 @@ package com.casic.service.impl; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.casic.dao.DeviceDataMapper; import com.casic.model.ResponseData; import com.casic.service.DeviceDataService; import com.casic.util.DeviceDataFieldTableEnum; import com.casic.util.DeviceDataTableEnum; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collector; +import java.util.stream.Collectors; @Service @Slf4j +@RequiredArgsConstructor public class DeviceDataServiceImpl implements DeviceDataService { - private final DeviceDataMapper deviceDataMapper; + @Value("${casic.device.type}") + private Integer devciceType; - public DeviceDataServiceImpl(DeviceDataMapper deviceDataMapper) { - this.deviceDataMapper = deviceDataMapper; - } + @Value("${casic.device.data-day}") + private Integer dataDay; + + private final DeviceDataMapper deviceDataMapper; @Override public Object getDeviceRecentData(String deviceType, String recentNum, String devcode) { @@ -80,4 +89,26 @@ return responseData; } + @Override + @Transactional + public void checkAndUpdateDeviceOnline() { + //查询硫化氢设备 + List String = deviceDataMapper.getDevcodeByType(devciceType); + //统一查询所有设备的3天内数据的设备编号,然后设备编号转成map,进行 + List dataList = deviceDataMapper.getRecentData(dataDay); + List dataSortDevcodeList = dataList; + if (dataList != null) { + Map devOnlineMap = new HashMap<>(); + for (String devcodeData : dataList) { + devOnlineMap.put(devcodeData, ""); + } + dataSortDevcodeList = dataSortDevcodeList.stream().filter( + e -> !devOnlineMap.containsKey(e)).collect(Collectors.toList()); + } + //统一更新 + if (CollectionUtils.isNotEmpty(dataList)) { + deviceDataMapper.updateOnlineByDevs(dataSortDevcodeList); + } + } + } diff --git a/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java b/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java index 7ac6bc1..9d28170 100644 --- a/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java +++ b/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java @@ -2,158 +2,194 @@ import com.alibaba.druid.util.StringUtils; import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.config.AliYunConfig; -import com.casic.dao.DataPressureMapper; -import com.casic.model.AlarmPushConfig; -import com.casic.model.DataPressure; -import com.casic.model.PressureDataParam; -import com.casic.model.ResponseData; -import com.casic.service.AlarmPushService; -import com.casic.service.MessagePusherService; +import com.casic.dao.AlarmRecordMapper; +import com.casic.dao.DataH2sMapper; +import com.casic.enums.H2sParamsEnum; +import com.casic.model.AlarmRecord; +import com.casic.model.DataH2s; import com.casic.service.ThirdDataService; -import com.casic.util.SendBatchSmsUtil; +import com.casic.util.RedisCommon; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; -import java.io.UnsupportedEncodingException; -import java.net.URLDecoder; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.*; -import java.util.stream.Collectors; @Service @Slf4j -public class ThirdDataServiceImpl extends ServiceImpl implements ThirdDataService { +@RequiredArgsConstructor +public class ThirdDataServiceImpl extends ServiceImpl implements ThirdDataService, H2sParamsEnum { private final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA); - - @Autowired - private AlarmPushService alarmPushService; - - @Autowired - private MessagePusherService messagePusherService; - - @Autowired - private SendBatchSmsUtil sendBatchSmsUtil; - + private final RedisCommon redisCommon; + private final AlarmRecordMapper alarmRecordMapper; @Override - public Object getDeviceRecentData(PressureDataParam pressureDataParam) { - ResponseData responseData = new ResponseData(); + public Object h2sData(Map h2sDataMap) { try { - batchSave(pressureDataParam); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); + if (h2sDataMap.containsKey(ICCID)) { + //开机上报->存储映射管理->查询是否有下发配置-进行回应 + return powerOnReport(h2sDataMap); + } else if (h2sDataMap.containsKey(H2S_VALUE)) { //数据上报 + if (ObjectUtils.isNotEmpty(h2sDataMap.get(DEVCODE))) { + //清除离线-清除报警-报警-存库-查询是否有下发配置-进行回应 + return dataSave(h2sDataMap); + } + } } catch (DataAccessException dae) { - log.error("设备最近数据查询异常,设备类型{},异常信息{}", dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); + log.error("设备上报数据异常,设备传入的json是{},异常信息{}", dae.getMessage()); } - return responseData; + return defaultDeliveryConfig(null); } - private void batchSave(PressureDataParam pressureDataParam) { - String pressureDataJson = pressureDataParam.getRawData(); - log.info("----" + pressureDataJson); - Map pressureDataMap = JSON.parseObject(pressureDataJson, HashMap.class); - Date uptime = null; - try { - uptime = dateFormat.parse(String.valueOf(pressureDataMap.get("times"))); - } catch (Exception e) { - log.error("主题,采集时间解析异常,异常信息{}", e.getMessage()); - } - List> pressureDataList = (List>) pressureDataMap.get("sensorDatas"); - DataPressure dataPressure = initPrssureData(pressureDataList, uptime); - if (dataPressure == null) { - return; - } - checkAlarm(dataPressure); + + private Map defaultDeliveryConfig(Map configDataMap) { + Map map = new HashMap(); + //必带参数,否则会被thingsboard舍弃 + map.put("method", "setParams"); + //判断是否有下发配置必须 + map.put("status", ObjectUtils.isNotEmpty(configDataMap) ? 200 : 201); + map.put("params", configDataMap); + //可省略 + map.put("timeout", "3000"); + return map; } - private DataPressure initPrssureData(List> pressureDataList, Date uptime) { - DataPressure dataPressure = new DataPressure(); - String devcode = pressureDataList.get(pressureDataList.size() - 1).get("str"); - Map pressureDataMap = pressureDataList.stream().collect( - Collectors.toMap(e -> String.valueOf(e.get("flag")), e -> String.valueOf(e.get("value"))) - ); -// if (CacheUtil.serialBuf.get(devcode)!=null&&CacheUtil.serialBuf.get(devcode).equals(pressureDataMap.get("F"))) { -// return null; -// } + /** + * 开机上报->储存,是否有下发配置,选择合适的格式返回 + * + * @param h2sDataMap + */ + private Map powerOnReport(Map h2sDataMap) { + /** + * 三码上报 + */ + String iccid = (String) h2sDataMap.get(ICCID); + String imei = (String) h2sDataMap.get(IMEI); + String devcode = (String) h2sDataMap.get(DEVCODE); + //清除离线 + this.baseMapper.clearOnline(devcode); + //先查,是否有数据,有数据直接覆盖,否则插入数据 + String isImei = this.baseMapper.getImeiByDevcode(devcode); + int save = StringUtils.isEmpty(isImei) ? this.baseMapper.addImeiDevcode(devcode, imei, iccid) : + this.baseMapper.updateImeiDevcode(devcode, imei, iccid); + if (save > 0) { + //保存三码关系 + Map configDataMap = redisCommon.getMsg((String) h2sDataMap.get(DEVCODE)); + if (ObjectUtils.isNotEmpty(configDataMap)) { + return defaultDeliveryConfig(configDataMap); + } + } else { + throw new RuntimeException("三码上传保存异常,异常数据为" + JSON.toJSON(h2sDataMap)); + } + return defaultDeliveryConfig(null); + } + + private Map dataSave(Map h2sDataMap) { + DataH2s dataH2s = initH2sData(h2sDataMap); + this.baseMapper.clearOnline((String) h2sDataMap.get(DEVCODE)); + if (ObjectUtils.isNotEmpty(dataH2s)) { + checkAlarm(dataH2s); + Map configDataMap = redisCommon.getMsg((String) h2sDataMap.get(DEVCODE)); + if (ObjectUtils.isNotEmpty(configDataMap)) { + return defaultDeliveryConfig(configDataMap); + } + } + return defaultDeliveryConfig(null); + } + + private DataH2s initH2sData(Map h2sDataMap) { + DataH2s dataH2s = new DataH2s(); + String devcode = (String) h2sDataMap.get(DEVCODE); String wellCode = this.baseMapper.getWellCode(devcode); - dataPressure.setWellCode(wellCode); - dataPressure.setDevcode(devcode); - dataPressure.setPci(pressureDataMap.get("Q")); - dataPressure.setCell(Float.valueOf(pressureDataMap.get("V"))); - dataPressure.setTemperature(pressureDataMap.get("T")); - dataPressure.setPress(pressureDataMap.get("F")); - dataPressure.setUptime(dateFormat.format(uptime)); - dataPressure.setLogtime(dateFormat.format(new Date())); - this.baseMapper.insert(dataPressure); -// CacheUtil.serialBuf.put(devcode, pressureDataMap.get("F")); - return dataPressure; + dataH2s.setWellCode(wellCode); + dataH2s.setDevcode(devcode); + dataH2s.setStrength((String) h2sDataMap.get(H2S_VALUE)); + dataH2s.setCell((String) h2sDataMap.get(BATTERY_VALUE)); + dataH2s.setUptime(dateFormat.format(new Date())); + dataH2s.setLogtime(dateFormat.format(new Date())); + this.baseMapper.insert(dataH2s); + return dataH2s; } - private void checkAlarm(DataPressure dataPressure) { + /** + * 检查是否有报警 + * + * @param dataH2s + */ + private void checkAlarm(DataH2s dataH2s) { final Float ruleValue = this.baseMapper.getRuleValue("24"); if (ruleValue == null) { return; } - if (!StringUtils.isEmpty(dataPressure.getPress()) && !dataPressure.getPress().equals("null")) { - if (Float.valueOf(dataPressure.getPress()) > ruleValue) { - this.baseMapper.saveRecords(dataPressure.getPress(), new Date()); - alarmPushBuilder(dataPressure.getDevcode(), dataPressure.getPress()); + if (!StringUtils.isEmpty(dataH2s.getStrength()) && !"null".equals(dataH2s.getStrength())) { + String status = "3"; + if (Float.valueOf(dataH2s.getStrength()) > ruleValue) { + //因新的报警消警 “0” + status = "0"; + alarmRecordMapper.insert(buildAlarmRecord(dataH2s)); } + this.baseMapper.cancelAlarm(dataH2s.getDevcode(), status); } } + private AlarmRecord buildAlarmRecord(DataH2s dataH2s) { + AlarmRecord alarmRecord = AlarmRecord.builder() + .devcode(dataH2s.getDevcode()) + .wellCode(dataH2s.getWellCode()) + .alarmType(dataH2s.getStrength()) + .alarmMessage("浓度超限") + .deviceId(dataH2s.getId()) + .alarmType("1") + .alarmContent("浓度超限") + .status("1") + .build(); + return alarmRecord; + } + // "在2023年1月12号 16时43分23秒,设备41232561发生了压力超标/浓度超限,数值为20" // + "设备" + devcode + "发生了压力超标,压力值为" + presss - // - @Autowired - private AliYunConfig aliYunConfig; - private void alarmPushBuilder(String devcode, String presss) { - ResponseData responseData = (ResponseData) alarmPushService.getAlarmPush("H2S"); - AlarmPushConfig alarmPushConfig = (AlarmPushConfig) responseData.getData(); - if (alarmPushConfig.getEnable().equals(1)) { - if (alarmPushConfig.getWebsocketAlarm().equals(1)) { - String msg = "在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "," - + "设备" + devcode + "发生了压力超标,压力值为" + presss; - try { - messagePusherService.updateSinkJob("", URLDecoder.decode(msg, "UTF-8")); - } catch (UnsupportedEncodingException uee) { - log.error("websocket推送,内容转码出现异常,异常信息为{}", uee.getMessage()); - } - } - if (alarmPushConfig.getShortMessageAlarm().equals(1)) { - JSONArray msglist = new JSONArray(); - JSONObject msgMap = new JSONObject(); - msgMap.put("time", new SimpleDateFormat("yyyyMMdd HH:mm:ss").format(new Date())); - msgMap.put("devcode", devcode); - msgMap.put("value", presss); - msgMap.put("content", "压力超标"); - String phoneJson = ""; - List aliSignNameList = new ArrayList<>(); - String aliSignName = aliYunConfig.getSignNameJson(); - if (!org.apache.commons.lang3.StringUtils.isEmpty(alarmPushConfig.getPhoneArray())) { - String[] phones = alarmPushConfig.getPhoneArray().split(","); - List phoneList = new ArrayList<>(); - for (String phone : phones) { - msglist.add(msgMap); - phoneList.add(phone); - aliSignNameList.add(aliSignName); - } - phoneJson = JSONObject.toJSONString(phoneList); - } - sendBatchSmsUtil.sendMsg(phoneJson, JSON.toJSONString(msgMap),JSONObject.toJSONString(aliSignNameList)); - } - } +// ResponseData responseData = (ResponseData) alarmPushService.getAlarmPush("H2S"); +// AlarmPushConfig alarmPushConfig = (AlarmPushConfig) responseData.getData(); +// if (alarmPushConfig.getEnable().equals(1)) { +// if (alarmPushConfig.getWebsocketAlarm().equals(1)) { +// String msg = "在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "," +// + "设备" + devcode + "发生了压力超标,压力值为" + presss; +// try { +// messagePusherService.updateSinkJob("", URLDecoder.decode(msg, "UTF-8")); +// } catch (UnsupportedEncodingException uee) { +// log.error("websocket推送,内容转码出现异常,异常信息为{}", uee.getMessage()); +// } +// } +// if (alarmPushConfig.getShortMessageAlarm().equals(1)) { +// JSONArray msglist = new JSONArray(); +// JSONObject msgMap = new JSONObject(); +// msgMap.put("time", new SimpleDateFormat("yyyyMMdd HH:mm:ss").format(new Date())); +// msgMap.put("devcode", devcode); +// msgMap.put("value", presss); +// msgMap.put("content", "压力超标"); +// String phoneJson = ""; +// List aliSignNameList = new ArrayList<>(); +// String aliSignName = aliYunConfig.getSignNameJson(); +// if (!org.apache.commons.lang3.StringUtils.isEmpty(alarmPushConfig.getPhoneArray())) { +// String[] phones = alarmPushConfig.getPhoneArray().split(","); +// List phoneList = new ArrayList<>(); +// for (String phone : phones) { +// msglist.add(msgMap); +// phoneList.add(phone); +// aliSignNameList.add(aliSignName); +// } +// phoneJson = JSONObject.toJSONString(phoneList); +// } +// sendBatchSmsUtil.sendMsg(phoneJson, JSON.toJSONString(msgMap), JSONObject.toJSONString(aliSignNameList)); +// } +// } } diff --git a/src/main/java/com/casic/util/ArtemisPostUtil.java b/src/main/java/com/casic/util/ArtemisPostUtil.java index c6655af..3084bde 100644 --- a/src/main/java/com/casic/util/ArtemisPostUtil.java +++ b/src/main/java/com/casic/util/ArtemisPostUtil.java @@ -1,7 +1,5 @@ package com.casic.util; -import com.alibaba.fastjson.JSONObject; -import com.casic.config.ApiHikomConfig; import com.casic.model.HkvideoValidParam; import com.casic.model.ResponseData; //import com.hikvision.artemis.sdk.ArtemisHttpUtil; @@ -10,8 +8,6 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; -import java.util.HashMap; -import java.util.Map; /** * 海康验证 @@ -20,8 +16,8 @@ @Slf4j public class ArtemisPostUtil { - @Resource - private ApiHikomConfig apiHikomConfig; +// @Resource +// private ApiHikomConfig apiHikomConfig; private final String contentType = "application/json"; public ResponseData artemisPost(HkvideoValidParam hkvideoValidParam) { diff --git a/src/main/java/com/casic/util/RedisCommon.java b/src/main/java/com/casic/util/RedisCommon.java index 617d73b..80562b9 100644 --- a/src/main/java/com/casic/util/RedisCommon.java +++ b/src/main/java/com/casic/util/RedisCommon.java @@ -7,6 +7,7 @@ import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; +import java.util.Map; import java.util.concurrent.TimeUnit; @Component @@ -20,6 +21,15 @@ @Autowired private RedisTemplate redisTemplate; + + public Map getMsg(String key) { + // 判断上次保存时间,如果到期(key失效),再保存新的 + String timeStampKey = configPrefix + key; + Object dataJson = redisTemplate.opsForValue().get(timeStampKey); + return JSON.parseObject((String) dataJson); + } + + public void send(CommConfigDTO commConfigDTO,String devCode) { redisTemplate.opsForValue().set(configPrefix+ devCode, JSON.toJSONString(commConfigDTO), diff --git a/src/main/java/com/casic/util/SendBatchSmsUtil.java b/src/main/java/com/casic/util/SendBatchSmsUtil.java deleted file mode 100644 index 6152c60..0000000 --- a/src/main/java/com/casic/util/SendBatchSmsUtil.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.casic.util; -// This file is auto-generated, don't edit it. Thanks. - -import com.alibaba.fastjson.JSONObject; -import com.aliyun.auth.credentials.Credential; -import com.aliyun.auth.credentials.provider.StaticCredentialProvider; -import com.aliyun.sdk.service.dysmsapi20170525.models.*; -import com.aliyun.sdk.service.dysmsapi20170525.*; -import com.casic.config.AliYunConfig; -import com.google.gson.Gson; -import darabonba.core.client.ClientOverrideConfiguration; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import java.text.SimpleDateFormat; -import java.time.Duration; -import java.util.*; -import java.util.concurrent.CompletableFuture; - -@AllArgsConstructor -@Component -@Slf4j -public class SendBatchSmsUtil { - - private AliYunConfig aliYunConfig; - - public void sendMsg(String phoneJson, String msgJson,String aliSignNameJson) { - StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder() - .accessKeyId(aliYunConfig.getKey()) - .accessKeySecret(aliYunConfig.getScrect()) - .build()); - - AsyncClient client = AsyncClient.builder() - .region("cn-shanghai") // Region ID - .credentialsProvider(provider) - .overrideConfiguration( - ClientOverrideConfiguration.create() - .setEndpointOverride(aliYunConfig.getUrl()) - .setConnectTimeout(Duration.ofSeconds(30)) - ) - .build(); - - SendBatchSmsRequest sendBatchSmsRequest = SendBatchSmsRequest.builder() - .phoneNumberJson(phoneJson) - .signNameJson(aliSignNameJson) - .templateCode(aliYunConfig.getTemplateCode()) - .templateParamJson(msgJson) - .build(); - - CompletableFuture response = client.sendBatchSms(sendBatchSmsRequest); - try { - SendBatchSmsResponse resp = response.get(); - System.out.println(new Gson().toJson(resp)); - } catch (Exception ex) { - log.error("发送消息出现异常,手机号内容为{},信息内容为{}",phoneJson,msgJson,ex.getMessage()); - }finally { - client.close(); - } - } - - -// public static void main(String[] args) throws Exception { -// StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder() -// .accessKeyId("LTAI5tDFNucQF2Bdy4fHgzrN") -// .accessKeySecret("hZ22QQPxQue1G0R8Ty2bo6GimrLdoB") -// .build()); -// -// AsyncClient client = AsyncClient.builder() -// .region("cn-shanghai") // Region ID -// .credentialsProvider(provider) -// .overrideConfiguration( -// ClientOverrideConfiguration.create() -// .setEndpointOverride("dysmsapi.aliyuncs.com") -// .setConnectTimeout(Duration.ofSeconds(30)) -// ) -// .build(); -// List> msgList = new ArrayList<>(); -// Map msgMap = new HashMap<>(); -// msgMap.put("time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); -// msgMap.put("devcode", "123456"); -// msgMap.put("value", "24Vol"); -// msgMap.put("content", "浓度超限"); -// msgList.add(msgMap); -// Map msgMapCoye=(Map)((HashMap) msgMap).clone(); -// msgList.add(msgMapCoye); -// System.out.println(JSONObject.toJSONString(msgList)); -// SendBatchSmsRequest sendBatchSmsRequest = SendBatchSmsRequest.builder() -// .phoneNumberJson("[\"13651065090\",\"13652031267\"]") -// .signNameJson("[\"柴壮告警提醒\",\"柴壮告警提醒\"]") -// .templateCode("SMS_268475055") -// .templateParamJson(JSONObject.toJSONString(msgList)) -// .build(); -// -// CompletableFuture response = client.sendBatchSms(sendBatchSmsRequest); -// SendBatchSmsResponse resp = response.get(); -// System.out.println(new Gson().toJson(resp)); -// client.close(); -// } - -} \ No newline at end of file diff --git a/src/main/resources/config/application-dev.yml b/src/main/resources/config/application-dev.yml index 30e52e5..ef7bf6a 100644 --- a/src/main/resources/config/application-dev.yml +++ b/src/main/resources/config/application-dev.yml @@ -3,10 +3,10 @@ ################### spring配置 ################### spring: datasource: - driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11102/smartwell_demos?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=GMT%2B8&&allowMultiQueries=true&&useSSL=true - username: root - password: Casic203! + url: jdbc:dm://111.198.10.15:11211/schema=SMARTWELL?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + driver-class-name: dm.jdbc.driver.DmDriver + username: SMARTWELL + password: Casic20311 session: store-type: redis redis: diff --git a/src/main/resources/config/application.yml b/src/main/resources/config/application.yml index 81bed8c..9226c8f 100644 --- a/src/main/resources/config/application.yml +++ b/src/main/resources/config/application.yml @@ -32,15 +32,7 @@ port: 6379 password: ew5T4K3#203lwh config-prefix: 'Casic:' - hikom: - url: /artemis/api/video/v1/cameras/previewURLs - host: 118.122.17.165:1443/ - ali: - key: LTAI5tDFNucQF2Bdy4fHgzrN - secret: hZ22QQPxQue1G0R8Ty2bo6GimrLdoB - url: dysmsapi.aliyuncs.com - signNameJson: 柴壮告警提醒 - templateCode: SMS_268475055 + swagger: enable: true groupName: "硫化氢课题" \ No newline at end of file diff --git a/src/main/resources/mapper/DataH2sMapper.xml b/src/main/resources/mapper/DataH2sMapper.xml new file mode 100644 index 0000000..73ecb52 --- /dev/null +++ b/src/main/resources/mapper/DataH2sMapper.xml @@ -0,0 +1,50 @@ + + + + + + update bus_device + set ONLINE_STATE=1 + where ONLINE_STATE=0 AND VALID=1 + + + + + + + + UPDATE alarm_record + SET status=#{status} + WHERE devcode=#{devcode} + AND status=1 + + + + + + UPDATE bus_imei_iccid + SET IMEI=#{imei},iccid=#{iccid} + WHERE devcode=#{devcode} + + + + insert into bus_imei_iccid(devcode,imei,iccid) + value(#{devcode},#{imei},#{iccid}) + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/casic/config/AliYunConfig.java b/src/main/java/com/casic/config/AliYunConfig.java deleted file mode 100644 index 090b6ab..0000000 --- a/src/main/java/com/casic/config/AliYunConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Slf4j -@Configuration -@ConfigurationProperties(prefix = "casic.ali") -@Data -public class AliYunConfig { - - private String key; - private String screct; - private String url; - private String signNameJson; - private String templateCode; - -} diff --git a/src/main/java/com/casic/config/ApiHikomConfig.java b/src/main/java/com/casic/config/ApiHikomConfig.java deleted file mode 100644 index 73b3550..0000000 --- a/src/main/java/com/casic/config/ApiHikomConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -@Data -public class ApiHikomConfig { - @Value("${casic.hikom.host}") - private String hikomHost; - @Value("${casic.hikom.url}") - private String hikomUrl; -} diff --git a/src/main/java/com/casic/config/task/TaskConfigurer.java b/src/main/java/com/casic/config/task/TaskConfigurer.java new file mode 100644 index 0000000..43282d3 --- /dev/null +++ b/src/main/java/com/casic/config/task/TaskConfigurer.java @@ -0,0 +1,44 @@ +package com.casic.config.task; + +import com.casic.service.DeviceDataService; +import com.casic.service.ThirdDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.config.TriggerTask; +import org.springframework.scheduling.support.CronTrigger; + +/** + * @author cz + */ +@Configuration +@EnableScheduling +public class TaskConfigurer implements SchedulingConfigurer { + + @Value("${casic.device.online.corn}") + private String timeConfig; + @Autowired + private DeviceDataService deviceDataService; + + @Override + public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + TriggerTask triggrtTask = new TriggerTask(nextDayDevice(), + triggerContext -> { + return new CronTrigger(timeConfig).nextExecutionTime(triggerContext); + }); + taskRegistrar.addTriggerTask(triggrtTask); + } + + private Runnable nextDayDevice() { + return new Runnable() { + @Override + public void run() { + deviceDataService.checkAndUpdateDeviceOnline(); + } + }; + } + +} \ No newline at end of file diff --git a/src/main/java/com/casic/controller/AlarmController.java b/src/main/java/com/casic/controller/AlarmController.java deleted file mode 100644 index 957fc36..0000000 --- a/src/main/java/com/casic/controller/AlarmController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmConfigParam; -import com.casic.service.AlarmService; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/alarm") -public class AlarmController { - - private final AlarmService alarmService; - - public AlarmController(AlarmService alarmService) { - this.alarmService = alarmService; - } - - @RequestMapping("/records") - public Object getAlarmRecord(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "currentIndex", required = true) Integer currentIndex, - @RequestParam(value = "devcode",required =false) String devcode, - @RequestParam(value = "pageSize", required = true) Integer pageSize) { - return alarmService.getAlarmRecord(deviceType,currentIndex,pageSize,devcode); - } - - @RequestMapping("/batch/cancel") - public Object excuteAlramBatchCancel(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "devcode",required =false) String devcode) { - return alarmService.excuteAlramBatchCancel(deviceType,devcode); - } - - @RequestMapping("/config/add") - public Object addAlarmConfig(@RequestBody AlarmConfigParam alarmConfigParam) { - return alarmService.addAlarmConfig(alarmConfigParam); - } -} diff --git a/src/main/java/com/casic/controller/AlarmPushController.java b/src/main/java/com/casic/controller/AlarmPushController.java deleted file mode 100644 index 1642f9b..0000000 --- a/src/main/java/com/casic/controller/AlarmPushController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmPushConfig; -import com.casic.service.AlarmPushService; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.*; - -@RestController -@AllArgsConstructor -@RequestMapping("/alarm") -public class AlarmPushController { - - private AlarmPushService alarmPushService; - - @RequestMapping("/push/config") - @ResponseBody - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - return alarmPushService.alarmPushConfig(alarmSwitchConfig); - } - - @RequestMapping("/push/query") - public Object alarmPushQuery(@RequestParam(value = "scene", required = true) String scene) { - return alarmPushService.getAlarmPush(scene); - } - -} diff --git a/src/main/java/com/casic/controller/ArtemisValidController.java b/src/main/java/com/casic/controller/ArtemisValidController.java deleted file mode 100644 index 1d52576..0000000 --- a/src/main/java/com/casic/controller/ArtemisValidController.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.controller; - -import com.casic.model.HkvideoValidParam; -import com.casic.model.ResponseData; -import com.casic.util.ArtemisPostUtil; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 海康接口 - */ -@AllArgsConstructor -@RestController -public class ArtemisValidController { - private final ArtemisPostUtil artemisPostUtill; - - @RequestMapping("/hkvideo/getVideoUrl") - public ResponseData getVideoUrl(@RequestBody HkvideoValidParam hkvideoValidParam) { - - return artemisPostUtill.artemisPost(hkvideoValidParam); - } - -} diff --git a/src/main/java/com/casic/controller/MessagePusherController.java b/src/main/java/com/casic/controller/MessagePusherController.java index d447c05..b97dcd1 100644 --- a/src/main/java/com/casic/controller/MessagePusherController.java +++ b/src/main/java/com/casic/controller/MessagePusherController.java @@ -32,8 +32,7 @@ } catch (UnsupportedEncodingException e) { e.printStackTrace(); } - return retMap; - } + return retMap; } //报警开关按钮 // diff --git a/src/main/java/com/casic/controller/ThirdDataController.java b/src/main/java/com/casic/controller/ThirdDataController.java index d910a7d..fbd8e59 100644 --- a/src/main/java/com/casic/controller/ThirdDataController.java +++ b/src/main/java/com/casic/controller/ThirdDataController.java @@ -1,8 +1,6 @@ package com.casic.controller; import com.alibaba.fastjson.JSON; -import com.casic.model.CommConfigDTO; -import com.casic.model.PressureDataParam; import com.casic.model.ResponseData; import com.casic.service.ThirdDataService; import lombok.extern.slf4j.Slf4j; @@ -10,7 +8,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.HashMap; import java.util.Map; @RestController @@ -24,22 +21,25 @@ this.thirdDataService = thirdDataService; } - @RequestMapping("/pressure/data") - public Object getDeviceRecentData(@RequestBody PressureDataParam pressureData) { - return thirdDataService.getDeviceRecentData(pressureData); + /** + * 硫化氢订阅接口 + * + * @param h2sDataMap + * @return + */ + @RequestMapping("/h2s-data") + public Object h2sData(@RequestBody Map h2sDataMap) { + System.out.println(JSON.toJSON(h2sDataMap)); + return thirdDataService.h2sData(h2sDataMap); } - @RequestMapping("/data") - public Object getDeviceData(@RequestBody Map pressureDataMap) { - System.out.println(JSON.toJSON(pressureDataMap)); - Map map = new HashMap(); - map.put("method", "setParams"); - Map param = new HashMap(); - param.put("ip", "大胆猜测下"); - map.put("status", 200); - map.put("params", param); - map.put("timeout", "3000"); - return map; + @RequestMapping("/test") + public Object testNbResponse (@RequestBody Map h2sDataMap){ + ResponseData responseData=new ResponseData(); + responseData.setCode(200); + responseData.setData("oyAAGDcgFAEAAcMAAQWfAXOJd1POnas6zxTmU7jQkVJinQ=="); + System.out.println(JSON.toJSON(h2sDataMap)); + return responseData; } } diff --git a/src/main/java/com/casic/dao/AlarmPushMapper.java b/src/main/java/com/casic/dao/AlarmPushMapper.java deleted file mode 100644 index 9d7484b..0000000 --- a/src/main/java/com/casic/dao/AlarmPushMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.AlarmPushConfig; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface AlarmPushMapper extends BaseMapper { -} diff --git a/src/main/java/com/casic/dao/AlarmRecordMapper.java b/src/main/java/com/casic/dao/AlarmRecordMapper.java new file mode 100644 index 0000000..d8a4911 --- /dev/null +++ b/src/main/java/com/casic/dao/AlarmRecordMapper.java @@ -0,0 +1,12 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.AlarmRecord; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AlarmRecordMapper extends BaseMapper { + + + +} diff --git a/src/main/java/com/casic/dao/DataH2sMapper.java b/src/main/java/com/casic/dao/DataH2sMapper.java new file mode 100644 index 0000000..434f1e2 --- /dev/null +++ b/src/main/java/com/casic/dao/DataH2sMapper.java @@ -0,0 +1,27 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.DataH2s; +import com.casic.model.DataPressure; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; + +@Mapper +public interface DataH2sMapper extends BaseMapper { + + int clearOnline(@Param("devcode") String devcode); + + String getWellCode(@Param("devcode") String devcode); + + Float getRuleValue(@Param("deviceType") String deviceType); + + int cancelAlarm(@Param("devcode") String devcode, @Param("status") String status); + + String getImeiByDevcode(@Param("devcode") String devcode); + + int updateImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); + + int addImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); +} diff --git a/src/main/java/com/casic/dao/DataPressureMapper.java b/src/main/java/com/casic/dao/DataPressureMapper.java deleted file mode 100644 index 05f4329..0000000 --- a/src/main/java/com/casic/dao/DataPressureMapper.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.DataPressure; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.Date; - -@Mapper -public interface DataPressureMapper extends BaseMapper { - - String getWellCode(@Param("devcode") String devcode); - - Float getRuleValue(@Param("deviceType") String deviceType); - - void saveRecords(@Param("reValue") String reValue, @Param("alarmTime") Date alarmTime); - -} diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java index d9e18a0..e62d526 100644 --- a/src/main/java/com/casic/dao/DeviceDataMapper.java +++ b/src/main/java/com/casic/dao/DeviceDataMapper.java @@ -23,5 +23,14 @@ @Param("pageSize") Integer pageSize, @Param("devcode") String devcode); - String getLevelByType(@Param("deviceType")String deviceType); + String getLevelByType(@Param("deviceType") String deviceType); + + + List getDevcodeByType(@Param("devciceType") Integer devciceType); + + List getRecentData(@Param("devciceType") Integer dataDay); + + List updateOnlineByDevs(@Param("dataSortDevcodeList") List dataSortDevcodeList); + + } diff --git a/src/main/java/com/casic/enums/DeviceTypeEnum.java b/src/main/java/com/casic/enums/DeviceTypeEnum.java new file mode 100644 index 0000000..8d5a6e6 --- /dev/null +++ b/src/main/java/com/casic/enums/DeviceTypeEnum.java @@ -0,0 +1,64 @@ +package com.casic.enums; + + +public enum DeviceTypeEnum { + Well("井盖状态监测仪", 1), + Liquid("液位监测仪", 2), + WasteGas("有害气体监测仪", 3), + Methane("燃气智能监测终端", 4), + TempHumi("温湿度监测仪", 5), + Dig("开挖监测仪", 6), + WellLocator("井盖定位监测仪", 7), + Noise("噪声记录仪", 8), + TempPressure("温度压力监测仪", 9), + FireHydrant("消防栓防盗水监测仪", 11), + Tube("管盯", 12), + LG("井盖液位一体机", 13), + H2s("硫化氢检测终端", 14); + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private DeviceTypeEnum(String name, int index) { + this.name = name; + this.index = index; + } + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } + + public static DeviceTypeEnum getByIndex(String index) { + try { + for (DeviceTypeEnum deviceTypeEnum : values()) { + if (deviceTypeEnum.index == Integer.parseInt(index)) { + return deviceTypeEnum; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } +} \ No newline at end of file diff --git a/src/main/java/com/casic/enums/H2sParamsEnum.java b/src/main/java/com/casic/enums/H2sParamsEnum.java new file mode 100644 index 0000000..74eec50 --- /dev/null +++ b/src/main/java/com/casic/enums/H2sParamsEnum.java @@ -0,0 +1,35 @@ +package com.casic.enums; + +public interface H2sParamsEnum { + + /** + * 下发配置参数 + */ + String IP = "ip"; + String PORT = "port"; + String CTNET = "ctnet"; + String PERIOD = "period"; + String CYCLE = "cycle"; + /** + * 三码上报 + */ + String ICCID = "iccid"; + String IMEI = "imei"; + String DEVCODE = "devcode"; + /** + * 上传时间 + */ + String TS = "ts"; + /** + * 数据上报(电量、硫化氢数据值、设备编号) + * 数据值 + */ + String H2S_VALUE = "h2sValue"; + /** + * 电量 + */ + String BATTERY_VALUE = "batteryValue"; + + + +} diff --git a/src/main/java/com/casic/model/AlarmRecord.java b/src/main/java/com/casic/model/AlarmRecord.java new file mode 100644 index 0000000..600fe5a --- /dev/null +++ b/src/main/java/com/casic/model/AlarmRecord.java @@ -0,0 +1,81 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; + +import java.util.Date; + +@Builder +@TableName("alarm_records") +public class AlarmRecord { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 设备ID + */ + @TableField("DEVICE_ID") + private Long deviceId; + /** + * 设备编号 + */ + @TableField("DEVCODE") + private String devcode; + /** + * 闸井编号 + */ + @TableField("WELL_CODE") + private String wellCode; + /** + * 告警类型 + */ + @TableField("ALARM_TYPE") + private String alarmType; + /** + * 告警内容 + */ + @TableField("ALARM_CONTENT") + private String alarmContent; + /** + * 告警数值 + */ + @TableField("ALARM_VALUE") + private String alarmValue; + /** + * 告警等级 + */ + @TableField("ALARM_LEVEL") + private Integer alarmLevel; + /** + * 告警详情 + */ + @TableField("ALARM_MSG") + private String alarmMessage; + /** + * 告警时间 + */ + @TableField("ALARM_TIME") + private Date alarmTime; + /** + * 告警状态 + */ + @TableField("STATUS") + private String status; + /** + * 工单编号 + */ + @TableField("JOB_ID") + private Long jobId; + + @TableField(exist = false) + private Integer jobStatus; + +} diff --git a/src/main/java/com/casic/model/DataH2s.java b/src/main/java/com/casic/model/DataH2s.java new file mode 100644 index 0000000..16ecc7a --- /dev/null +++ b/src/main/java/com/casic/model/DataH2s.java @@ -0,0 +1,37 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + */ +@Data +@TableName("data_h2s") +public class DataH2s { + + private Long id; + + private String devcode; + + private String wellCode; + + private String cell; + + private String strength; + + private String uptime; + + private String logtime; + + private String descn; + + private String rsrp; + + private String pci; + + private String snr; + +} diff --git a/src/main/java/com/casic/model/DeviceTypeEnum.java b/src/main/java/com/casic/model/DeviceTypeEnum.java deleted file mode 100644 index 26c685f..0000000 --- a/src/main/java/com/casic/model/DeviceTypeEnum.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.casic.model; - - -public enum DeviceTypeEnum { - Well("井盖状态监测仪", 1), - Liquid("液位监测仪", 2), - WasteGas("有害气体监测仪", 3), - Methane("燃气智能监测终端", 4), - TempHumi("温湿度监测仪", 5), - Dig("开挖监测仪", 6), - WellLocator("井盖定位监测仪", 7), - Noise("噪声记录仪", 8), - TempPressure("温度压力监测仪", 9), - FireHydrant("消防栓防盗水监测仪", 11), - Tube("管盯", 12), - LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); - - // 成员变量 - private String name; - private int index; - - // 构造方法 - private DeviceTypeEnum(String name, int index) { - this.name = name; - this.index = index; - } - - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public int getIndex() { - return index; - } - - public void setIndex(int index) { - this.index = index; - } - - public static DeviceTypeEnum getByIndex(String index) { - try { - for (DeviceTypeEnum deviceTypeEnum : values()) { - if (deviceTypeEnum.index == Integer.parseInt(index)) { - return deviceTypeEnum; - } - } - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - //覆盖方法 - @Override - public String toString() { - return this.name; - } -} \ No newline at end of file diff --git a/src/main/java/com/casic/service/AlarmPushService.java b/src/main/java/com/casic/service/AlarmPushService.java deleted file mode 100644 index d180eb2..0000000 --- a/src/main/java/com/casic/service/AlarmPushService.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.service; - -import com.casic.model.AlarmPushConfig; - -public interface AlarmPushService { - - Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig); - - Object getAlarmPush(String scene); - -} - - - diff --git a/src/main/java/com/casic/service/AlarmService.java b/src/main/java/com/casic/service/AlarmService.java deleted file mode 100644 index 4f41038..0000000 --- a/src/main/java/com/casic/service/AlarmService.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.casic.service; - -import com.casic.model.AlarmConfigParam; - -public interface AlarmService { - - Object getAlarmRecord(String deviceType, Integer currentIndex, Integer pageSize, String devcode); - - Object excuteAlramBatchCancel(String deviceType, String devcode); - - Object addAlarmConfig(AlarmConfigParam alarmConfig); - -} diff --git a/src/main/java/com/casic/service/DeviceDataService.java b/src/main/java/com/casic/service/DeviceDataService.java index db656c1..71f8ce9 100644 --- a/src/main/java/com/casic/service/DeviceDataService.java +++ b/src/main/java/com/casic/service/DeviceDataService.java @@ -7,4 +7,6 @@ Object getDeviceListPage(String deviceType, Integer currentIndex, Integer pageSize, String devcode); Object getLevel(String deviceType); + + void checkAndUpdateDeviceOnline(); } diff --git a/src/main/java/com/casic/service/ThirdDataService.java b/src/main/java/com/casic/service/ThirdDataService.java index 795e0b2..31dc516 100644 --- a/src/main/java/com/casic/service/ThirdDataService.java +++ b/src/main/java/com/casic/service/ThirdDataService.java @@ -1,8 +1,11 @@ package com.casic.service; -import com.casic.model.PressureDataParam; +import java.util.Map; public interface ThirdDataService { - Object getDeviceRecentData(PressureDataParam pressureData); + + Object h2sData(Map h2sDataMap); + + } diff --git a/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java b/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java deleted file mode 100644 index d193905..0000000 --- a/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.casic.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.dao.AlarmPushMapper; -import com.casic.model.AlarmPushConfig; -import com.casic.model.ResponseData; -import com.casic.service.AlarmPushService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.dao.DataAccessException; -import org.springframework.stereotype.Service; - -import java.util.List; -import java.util.Optional; - -@Service -@Slf4j -public class AlarmPushServiceImpl extends ServiceImpl implements AlarmPushService { - - @Override - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - ResponseData responseData = new ResponseData(); - try { - QueryWrapper queryWrapper = new QueryWrapper() - .eq("scene", alarmSwitchConfig.getScene()); -// this.baseMapper.delete(deleteWrapper); - this.baseMapper.update(alarmSwitchConfig, queryWrapper); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("报警推送配置新增异常,场景{},异常信息{}", alarmSwitchConfig.getScene(), dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - @Override - public Object getAlarmPush(String scene) { - ResponseData responseData = new ResponseData(); - try { - QueryWrapper queryWrapper = new QueryWrapper() - .eq("scene", scene); - List alarmPushConfigList = this.baseMapper.selectList(queryWrapper); - Optional alarmPushConfigOptional = alarmPushConfigList.stream().findFirst(); - responseData.setData(alarmPushConfigOptional.isPresent() ? alarmPushConfigOptional.get() : new Object()); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("报警推送配置查询异常,场景{},异常信息{}", scene, dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } -} diff --git a/src/main/java/com/casic/service/impl/AlarmServiceImple.java b/src/main/java/com/casic/service/impl/AlarmServiceImple.java deleted file mode 100644 index 8a29af9..0000000 --- a/src/main/java/com/casic/service/impl/AlarmServiceImple.java +++ /dev/null @@ -1,129 +0,0 @@ -package com.casic.service.impl; - -import com.alibaba.druid.util.StringUtils; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.dao.AlarmMapper; -import com.casic.dao.BusConfigMapper; -import com.casic.model.*; -import com.casic.service.AlarmService; -import com.casic.util.DeviceDataTableEnum; -import com.casic.util.RedisCommon; -import lombok.extern.slf4j.Slf4j; -import org.springframework.dao.DataAccessException; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import javax.annotation.Resource; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -@Slf4j -@Service -public class AlarmServiceImple extends ServiceImpl implements AlarmService { - - @Resource - private BusConfigMapper busConfigMapper; - @Resource - private RedisCommon redisCommonUtil; - - @Override - public Object getAlarmRecord(String deviceType, Integer currentIndex, Integer pageSize, String devcode) { - ResponseData responseData = new ResponseData(); - try { - Map page = new HashMap(); - page.put("total", this.baseMapper.getAlarmTotalRecord(deviceType, devcode)); - List> alarmRecordList = this.baseMapper.getAlarmRecord(deviceType, devcode, pageSize * (currentIndex - 1), pageSize); - page.put("rows", alarmRecordList); - responseData.setData(page); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("设备数据查询异常,设备类型{},异常信息{}", deviceType, dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - @Override - @Transactional - public Object excuteAlramBatchCancel(String deviceType, String devcode) { - ResponseData responseData = new ResponseData(); - try { - this.baseMapper.excuteAlramBatchCancel(deviceType, devcode); - this.baseMapper.excuteJobBatchCancel(deviceType, devcode); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("批量消警异常,设备类型{},异常信息{}", deviceType, dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - @Override - @Transactional - public Object addAlarmConfig(AlarmConfigParam alarmConfigParam) { - ResponseData responseData = new ResponseData(); - try { - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - addBusConfig(alarmConfigParam); - addRuleConfig(alarmConfigParam); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("风险配置异常,异常信息{}", dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - private void addRuleConfig(AlarmConfigParam alarmConfigParam) { - Map alarmRuleMap = new HashMap(); - alarmRuleMap.put("DEVICE_TYPE", alarmConfigParam.getDeviceType()); - this.baseMapper.deleteByMap(alarmRuleMap); - AlarmLevel alarmRule = new AlarmLevel(); - DeviceDataTableEnum deviceDataTableEnum = DeviceDataTableEnum.DEVICE_TYPE_TABLE.getTableNameMap() - .get(Integer.valueOf(alarmConfigParam.getDeviceType())); - alarmRule.setName(deviceDataTableEnum.getTypeName()); - alarmRule.setHighValue(Float.valueOf(alarmConfigParam.getThresholdVol())); - alarmRule.setTs(new Date()); - alarmRule.setLevel(1); - alarmRule.setDeviceType(alarmConfigParam.getDeviceType()); - this.baseMapper.insert(alarmRule); - } - - private void addBusConfig(AlarmConfigParam alarmConfigParam) { - String devcode = StringUtils.isEmpty(alarmConfigParam.getDevcode()) ? this.baseMapper.getDeviceDevcode(alarmConfigParam.getDeviceType()) : alarmConfigParam.getDevcode(); - sendBusConfig(alarmConfigParam, devcode); - String devcideId = this.baseMapper.getDeviceByDevcode(alarmConfigParam.getDeviceType(), devcode); - BusConfig busConfig = new BusConfig(); - busConfig.setDeviceId(devcideId); - busConfig.setFramecontent("3," + alarmConfigParam.getCollectInterval() + "," + alarmConfigParam.getCollectInterval() + - "," + alarmConfigParam.getRetryNum() + "," + alarmConfigParam.getIp() + "," + alarmConfigParam.getPort()); - busConfig.setSensorid(""); - busConfig.setStatus("0"); - busConfig.setAttemptscurrent(0); - busConfig.setWritetime(new Date()); - busConfig.setAttemptsmax(3); - busConfigMapper.insert(busConfig); - } - - private void sendBusConfig(AlarmConfigParam alarmConfigParam, String devcode) { - CommConfigDTO commConfigDTO = new CommConfigDTO(); - commConfigDTO.setInterval(StringUtils.isEmpty(alarmConfigParam.getCollectInterval()) ? 300 : Long.valueOf(alarmConfigParam.getCollectInterval())); - commConfigDTO.setRepeat(StringUtils.isEmpty(alarmConfigParam.getRetryNum()) ? 300 : Long.valueOf(alarmConfigParam.getRetryNum())); -// commConfigDTO.setTimes(Long.valueOf(1)); -// commConfigDTO.setIp(alarmConfigParam.getIp()); -// commConfigDTO.setPort(StringUtils.isEmpty(alarmConfigParam.getPort()) ? 8080 : Long.valueOf(alarmConfigParam.getPort())); - commConfigDTO.setPeriod(StringUtils.isEmpty(alarmConfigParam.getUploadCycle()) ? 300 : Long.valueOf(alarmConfigParam.getUploadCycle())); -// commConfigDTO.setThresh(); - commConfigDTO.setThresh(StringUtils.isEmpty(alarmConfigParam.getThresholdVol()) ? 50 : Float.valueOf(alarmConfigParam.getThresholdVol())); - redisCommonUtil.send(commConfigDTO, devcode); - } - - -} diff --git a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java index e35daef..136912f 100644 --- a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java +++ b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java @@ -1,27 +1,36 @@ package com.casic.service.impl; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.casic.dao.DeviceDataMapper; import com.casic.model.ResponseData; import com.casic.service.DeviceDataService; import com.casic.util.DeviceDataFieldTableEnum; import com.casic.util.DeviceDataTableEnum; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collector; +import java.util.stream.Collectors; @Service @Slf4j +@RequiredArgsConstructor public class DeviceDataServiceImpl implements DeviceDataService { - private final DeviceDataMapper deviceDataMapper; + @Value("${casic.device.type}") + private Integer devciceType; - public DeviceDataServiceImpl(DeviceDataMapper deviceDataMapper) { - this.deviceDataMapper = deviceDataMapper; - } + @Value("${casic.device.data-day}") + private Integer dataDay; + + private final DeviceDataMapper deviceDataMapper; @Override public Object getDeviceRecentData(String deviceType, String recentNum, String devcode) { @@ -80,4 +89,26 @@ return responseData; } + @Override + @Transactional + public void checkAndUpdateDeviceOnline() { + //查询硫化氢设备 + List String = deviceDataMapper.getDevcodeByType(devciceType); + //统一查询所有设备的3天内数据的设备编号,然后设备编号转成map,进行 + List dataList = deviceDataMapper.getRecentData(dataDay); + List dataSortDevcodeList = dataList; + if (dataList != null) { + Map devOnlineMap = new HashMap<>(); + for (String devcodeData : dataList) { + devOnlineMap.put(devcodeData, ""); + } + dataSortDevcodeList = dataSortDevcodeList.stream().filter( + e -> !devOnlineMap.containsKey(e)).collect(Collectors.toList()); + } + //统一更新 + if (CollectionUtils.isNotEmpty(dataList)) { + deviceDataMapper.updateOnlineByDevs(dataSortDevcodeList); + } + } + } diff --git a/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java b/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java index 7ac6bc1..9d28170 100644 --- a/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java +++ b/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java @@ -2,158 +2,194 @@ import com.alibaba.druid.util.StringUtils; import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.config.AliYunConfig; -import com.casic.dao.DataPressureMapper; -import com.casic.model.AlarmPushConfig; -import com.casic.model.DataPressure; -import com.casic.model.PressureDataParam; -import com.casic.model.ResponseData; -import com.casic.service.AlarmPushService; -import com.casic.service.MessagePusherService; +import com.casic.dao.AlarmRecordMapper; +import com.casic.dao.DataH2sMapper; +import com.casic.enums.H2sParamsEnum; +import com.casic.model.AlarmRecord; +import com.casic.model.DataH2s; import com.casic.service.ThirdDataService; -import com.casic.util.SendBatchSmsUtil; +import com.casic.util.RedisCommon; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; -import java.io.UnsupportedEncodingException; -import java.net.URLDecoder; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.*; -import java.util.stream.Collectors; @Service @Slf4j -public class ThirdDataServiceImpl extends ServiceImpl implements ThirdDataService { +@RequiredArgsConstructor +public class ThirdDataServiceImpl extends ServiceImpl implements ThirdDataService, H2sParamsEnum { private final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA); - - @Autowired - private AlarmPushService alarmPushService; - - @Autowired - private MessagePusherService messagePusherService; - - @Autowired - private SendBatchSmsUtil sendBatchSmsUtil; - + private final RedisCommon redisCommon; + private final AlarmRecordMapper alarmRecordMapper; @Override - public Object getDeviceRecentData(PressureDataParam pressureDataParam) { - ResponseData responseData = new ResponseData(); + public Object h2sData(Map h2sDataMap) { try { - batchSave(pressureDataParam); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); + if (h2sDataMap.containsKey(ICCID)) { + //开机上报->存储映射管理->查询是否有下发配置-进行回应 + return powerOnReport(h2sDataMap); + } else if (h2sDataMap.containsKey(H2S_VALUE)) { //数据上报 + if (ObjectUtils.isNotEmpty(h2sDataMap.get(DEVCODE))) { + //清除离线-清除报警-报警-存库-查询是否有下发配置-进行回应 + return dataSave(h2sDataMap); + } + } } catch (DataAccessException dae) { - log.error("设备最近数据查询异常,设备类型{},异常信息{}", dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); + log.error("设备上报数据异常,设备传入的json是{},异常信息{}", dae.getMessage()); } - return responseData; + return defaultDeliveryConfig(null); } - private void batchSave(PressureDataParam pressureDataParam) { - String pressureDataJson = pressureDataParam.getRawData(); - log.info("----" + pressureDataJson); - Map pressureDataMap = JSON.parseObject(pressureDataJson, HashMap.class); - Date uptime = null; - try { - uptime = dateFormat.parse(String.valueOf(pressureDataMap.get("times"))); - } catch (Exception e) { - log.error("主题,采集时间解析异常,异常信息{}", e.getMessage()); - } - List> pressureDataList = (List>) pressureDataMap.get("sensorDatas"); - DataPressure dataPressure = initPrssureData(pressureDataList, uptime); - if (dataPressure == null) { - return; - } - checkAlarm(dataPressure); + + private Map defaultDeliveryConfig(Map configDataMap) { + Map map = new HashMap(); + //必带参数,否则会被thingsboard舍弃 + map.put("method", "setParams"); + //判断是否有下发配置必须 + map.put("status", ObjectUtils.isNotEmpty(configDataMap) ? 200 : 201); + map.put("params", configDataMap); + //可省略 + map.put("timeout", "3000"); + return map; } - private DataPressure initPrssureData(List> pressureDataList, Date uptime) { - DataPressure dataPressure = new DataPressure(); - String devcode = pressureDataList.get(pressureDataList.size() - 1).get("str"); - Map pressureDataMap = pressureDataList.stream().collect( - Collectors.toMap(e -> String.valueOf(e.get("flag")), e -> String.valueOf(e.get("value"))) - ); -// if (CacheUtil.serialBuf.get(devcode)!=null&&CacheUtil.serialBuf.get(devcode).equals(pressureDataMap.get("F"))) { -// return null; -// } + /** + * 开机上报->储存,是否有下发配置,选择合适的格式返回 + * + * @param h2sDataMap + */ + private Map powerOnReport(Map h2sDataMap) { + /** + * 三码上报 + */ + String iccid = (String) h2sDataMap.get(ICCID); + String imei = (String) h2sDataMap.get(IMEI); + String devcode = (String) h2sDataMap.get(DEVCODE); + //清除离线 + this.baseMapper.clearOnline(devcode); + //先查,是否有数据,有数据直接覆盖,否则插入数据 + String isImei = this.baseMapper.getImeiByDevcode(devcode); + int save = StringUtils.isEmpty(isImei) ? this.baseMapper.addImeiDevcode(devcode, imei, iccid) : + this.baseMapper.updateImeiDevcode(devcode, imei, iccid); + if (save > 0) { + //保存三码关系 + Map configDataMap = redisCommon.getMsg((String) h2sDataMap.get(DEVCODE)); + if (ObjectUtils.isNotEmpty(configDataMap)) { + return defaultDeliveryConfig(configDataMap); + } + } else { + throw new RuntimeException("三码上传保存异常,异常数据为" + JSON.toJSON(h2sDataMap)); + } + return defaultDeliveryConfig(null); + } + + private Map dataSave(Map h2sDataMap) { + DataH2s dataH2s = initH2sData(h2sDataMap); + this.baseMapper.clearOnline((String) h2sDataMap.get(DEVCODE)); + if (ObjectUtils.isNotEmpty(dataH2s)) { + checkAlarm(dataH2s); + Map configDataMap = redisCommon.getMsg((String) h2sDataMap.get(DEVCODE)); + if (ObjectUtils.isNotEmpty(configDataMap)) { + return defaultDeliveryConfig(configDataMap); + } + } + return defaultDeliveryConfig(null); + } + + private DataH2s initH2sData(Map h2sDataMap) { + DataH2s dataH2s = new DataH2s(); + String devcode = (String) h2sDataMap.get(DEVCODE); String wellCode = this.baseMapper.getWellCode(devcode); - dataPressure.setWellCode(wellCode); - dataPressure.setDevcode(devcode); - dataPressure.setPci(pressureDataMap.get("Q")); - dataPressure.setCell(Float.valueOf(pressureDataMap.get("V"))); - dataPressure.setTemperature(pressureDataMap.get("T")); - dataPressure.setPress(pressureDataMap.get("F")); - dataPressure.setUptime(dateFormat.format(uptime)); - dataPressure.setLogtime(dateFormat.format(new Date())); - this.baseMapper.insert(dataPressure); -// CacheUtil.serialBuf.put(devcode, pressureDataMap.get("F")); - return dataPressure; + dataH2s.setWellCode(wellCode); + dataH2s.setDevcode(devcode); + dataH2s.setStrength((String) h2sDataMap.get(H2S_VALUE)); + dataH2s.setCell((String) h2sDataMap.get(BATTERY_VALUE)); + dataH2s.setUptime(dateFormat.format(new Date())); + dataH2s.setLogtime(dateFormat.format(new Date())); + this.baseMapper.insert(dataH2s); + return dataH2s; } - private void checkAlarm(DataPressure dataPressure) { + /** + * 检查是否有报警 + * + * @param dataH2s + */ + private void checkAlarm(DataH2s dataH2s) { final Float ruleValue = this.baseMapper.getRuleValue("24"); if (ruleValue == null) { return; } - if (!StringUtils.isEmpty(dataPressure.getPress()) && !dataPressure.getPress().equals("null")) { - if (Float.valueOf(dataPressure.getPress()) > ruleValue) { - this.baseMapper.saveRecords(dataPressure.getPress(), new Date()); - alarmPushBuilder(dataPressure.getDevcode(), dataPressure.getPress()); + if (!StringUtils.isEmpty(dataH2s.getStrength()) && !"null".equals(dataH2s.getStrength())) { + String status = "3"; + if (Float.valueOf(dataH2s.getStrength()) > ruleValue) { + //因新的报警消警 “0” + status = "0"; + alarmRecordMapper.insert(buildAlarmRecord(dataH2s)); } + this.baseMapper.cancelAlarm(dataH2s.getDevcode(), status); } } + private AlarmRecord buildAlarmRecord(DataH2s dataH2s) { + AlarmRecord alarmRecord = AlarmRecord.builder() + .devcode(dataH2s.getDevcode()) + .wellCode(dataH2s.getWellCode()) + .alarmType(dataH2s.getStrength()) + .alarmMessage("浓度超限") + .deviceId(dataH2s.getId()) + .alarmType("1") + .alarmContent("浓度超限") + .status("1") + .build(); + return alarmRecord; + } + // "在2023年1月12号 16时43分23秒,设备41232561发生了压力超标/浓度超限,数值为20" // + "设备" + devcode + "发生了压力超标,压力值为" + presss - // - @Autowired - private AliYunConfig aliYunConfig; - private void alarmPushBuilder(String devcode, String presss) { - ResponseData responseData = (ResponseData) alarmPushService.getAlarmPush("H2S"); - AlarmPushConfig alarmPushConfig = (AlarmPushConfig) responseData.getData(); - if (alarmPushConfig.getEnable().equals(1)) { - if (alarmPushConfig.getWebsocketAlarm().equals(1)) { - String msg = "在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "," - + "设备" + devcode + "发生了压力超标,压力值为" + presss; - try { - messagePusherService.updateSinkJob("", URLDecoder.decode(msg, "UTF-8")); - } catch (UnsupportedEncodingException uee) { - log.error("websocket推送,内容转码出现异常,异常信息为{}", uee.getMessage()); - } - } - if (alarmPushConfig.getShortMessageAlarm().equals(1)) { - JSONArray msglist = new JSONArray(); - JSONObject msgMap = new JSONObject(); - msgMap.put("time", new SimpleDateFormat("yyyyMMdd HH:mm:ss").format(new Date())); - msgMap.put("devcode", devcode); - msgMap.put("value", presss); - msgMap.put("content", "压力超标"); - String phoneJson = ""; - List aliSignNameList = new ArrayList<>(); - String aliSignName = aliYunConfig.getSignNameJson(); - if (!org.apache.commons.lang3.StringUtils.isEmpty(alarmPushConfig.getPhoneArray())) { - String[] phones = alarmPushConfig.getPhoneArray().split(","); - List phoneList = new ArrayList<>(); - for (String phone : phones) { - msglist.add(msgMap); - phoneList.add(phone); - aliSignNameList.add(aliSignName); - } - phoneJson = JSONObject.toJSONString(phoneList); - } - sendBatchSmsUtil.sendMsg(phoneJson, JSON.toJSONString(msgMap),JSONObject.toJSONString(aliSignNameList)); - } - } +// ResponseData responseData = (ResponseData) alarmPushService.getAlarmPush("H2S"); +// AlarmPushConfig alarmPushConfig = (AlarmPushConfig) responseData.getData(); +// if (alarmPushConfig.getEnable().equals(1)) { +// if (alarmPushConfig.getWebsocketAlarm().equals(1)) { +// String msg = "在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "," +// + "设备" + devcode + "发生了压力超标,压力值为" + presss; +// try { +// messagePusherService.updateSinkJob("", URLDecoder.decode(msg, "UTF-8")); +// } catch (UnsupportedEncodingException uee) { +// log.error("websocket推送,内容转码出现异常,异常信息为{}", uee.getMessage()); +// } +// } +// if (alarmPushConfig.getShortMessageAlarm().equals(1)) { +// JSONArray msglist = new JSONArray(); +// JSONObject msgMap = new JSONObject(); +// msgMap.put("time", new SimpleDateFormat("yyyyMMdd HH:mm:ss").format(new Date())); +// msgMap.put("devcode", devcode); +// msgMap.put("value", presss); +// msgMap.put("content", "压力超标"); +// String phoneJson = ""; +// List aliSignNameList = new ArrayList<>(); +// String aliSignName = aliYunConfig.getSignNameJson(); +// if (!org.apache.commons.lang3.StringUtils.isEmpty(alarmPushConfig.getPhoneArray())) { +// String[] phones = alarmPushConfig.getPhoneArray().split(","); +// List phoneList = new ArrayList<>(); +// for (String phone : phones) { +// msglist.add(msgMap); +// phoneList.add(phone); +// aliSignNameList.add(aliSignName); +// } +// phoneJson = JSONObject.toJSONString(phoneList); +// } +// sendBatchSmsUtil.sendMsg(phoneJson, JSON.toJSONString(msgMap), JSONObject.toJSONString(aliSignNameList)); +// } +// } } diff --git a/src/main/java/com/casic/util/ArtemisPostUtil.java b/src/main/java/com/casic/util/ArtemisPostUtil.java index c6655af..3084bde 100644 --- a/src/main/java/com/casic/util/ArtemisPostUtil.java +++ b/src/main/java/com/casic/util/ArtemisPostUtil.java @@ -1,7 +1,5 @@ package com.casic.util; -import com.alibaba.fastjson.JSONObject; -import com.casic.config.ApiHikomConfig; import com.casic.model.HkvideoValidParam; import com.casic.model.ResponseData; //import com.hikvision.artemis.sdk.ArtemisHttpUtil; @@ -10,8 +8,6 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; -import java.util.HashMap; -import java.util.Map; /** * 海康验证 @@ -20,8 +16,8 @@ @Slf4j public class ArtemisPostUtil { - @Resource - private ApiHikomConfig apiHikomConfig; +// @Resource +// private ApiHikomConfig apiHikomConfig; private final String contentType = "application/json"; public ResponseData artemisPost(HkvideoValidParam hkvideoValidParam) { diff --git a/src/main/java/com/casic/util/RedisCommon.java b/src/main/java/com/casic/util/RedisCommon.java index 617d73b..80562b9 100644 --- a/src/main/java/com/casic/util/RedisCommon.java +++ b/src/main/java/com/casic/util/RedisCommon.java @@ -7,6 +7,7 @@ import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; +import java.util.Map; import java.util.concurrent.TimeUnit; @Component @@ -20,6 +21,15 @@ @Autowired private RedisTemplate redisTemplate; + + public Map getMsg(String key) { + // 判断上次保存时间,如果到期(key失效),再保存新的 + String timeStampKey = configPrefix + key; + Object dataJson = redisTemplate.opsForValue().get(timeStampKey); + return JSON.parseObject((String) dataJson); + } + + public void send(CommConfigDTO commConfigDTO,String devCode) { redisTemplate.opsForValue().set(configPrefix+ devCode, JSON.toJSONString(commConfigDTO), diff --git a/src/main/java/com/casic/util/SendBatchSmsUtil.java b/src/main/java/com/casic/util/SendBatchSmsUtil.java deleted file mode 100644 index 6152c60..0000000 --- a/src/main/java/com/casic/util/SendBatchSmsUtil.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.casic.util; -// This file is auto-generated, don't edit it. Thanks. - -import com.alibaba.fastjson.JSONObject; -import com.aliyun.auth.credentials.Credential; -import com.aliyun.auth.credentials.provider.StaticCredentialProvider; -import com.aliyun.sdk.service.dysmsapi20170525.models.*; -import com.aliyun.sdk.service.dysmsapi20170525.*; -import com.casic.config.AliYunConfig; -import com.google.gson.Gson; -import darabonba.core.client.ClientOverrideConfiguration; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import java.text.SimpleDateFormat; -import java.time.Duration; -import java.util.*; -import java.util.concurrent.CompletableFuture; - -@AllArgsConstructor -@Component -@Slf4j -public class SendBatchSmsUtil { - - private AliYunConfig aliYunConfig; - - public void sendMsg(String phoneJson, String msgJson,String aliSignNameJson) { - StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder() - .accessKeyId(aliYunConfig.getKey()) - .accessKeySecret(aliYunConfig.getScrect()) - .build()); - - AsyncClient client = AsyncClient.builder() - .region("cn-shanghai") // Region ID - .credentialsProvider(provider) - .overrideConfiguration( - ClientOverrideConfiguration.create() - .setEndpointOverride(aliYunConfig.getUrl()) - .setConnectTimeout(Duration.ofSeconds(30)) - ) - .build(); - - SendBatchSmsRequest sendBatchSmsRequest = SendBatchSmsRequest.builder() - .phoneNumberJson(phoneJson) - .signNameJson(aliSignNameJson) - .templateCode(aliYunConfig.getTemplateCode()) - .templateParamJson(msgJson) - .build(); - - CompletableFuture response = client.sendBatchSms(sendBatchSmsRequest); - try { - SendBatchSmsResponse resp = response.get(); - System.out.println(new Gson().toJson(resp)); - } catch (Exception ex) { - log.error("发送消息出现异常,手机号内容为{},信息内容为{}",phoneJson,msgJson,ex.getMessage()); - }finally { - client.close(); - } - } - - -// public static void main(String[] args) throws Exception { -// StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder() -// .accessKeyId("LTAI5tDFNucQF2Bdy4fHgzrN") -// .accessKeySecret("hZ22QQPxQue1G0R8Ty2bo6GimrLdoB") -// .build()); -// -// AsyncClient client = AsyncClient.builder() -// .region("cn-shanghai") // Region ID -// .credentialsProvider(provider) -// .overrideConfiguration( -// ClientOverrideConfiguration.create() -// .setEndpointOverride("dysmsapi.aliyuncs.com") -// .setConnectTimeout(Duration.ofSeconds(30)) -// ) -// .build(); -// List> msgList = new ArrayList<>(); -// Map msgMap = new HashMap<>(); -// msgMap.put("time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); -// msgMap.put("devcode", "123456"); -// msgMap.put("value", "24Vol"); -// msgMap.put("content", "浓度超限"); -// msgList.add(msgMap); -// Map msgMapCoye=(Map)((HashMap) msgMap).clone(); -// msgList.add(msgMapCoye); -// System.out.println(JSONObject.toJSONString(msgList)); -// SendBatchSmsRequest sendBatchSmsRequest = SendBatchSmsRequest.builder() -// .phoneNumberJson("[\"13651065090\",\"13652031267\"]") -// .signNameJson("[\"柴壮告警提醒\",\"柴壮告警提醒\"]") -// .templateCode("SMS_268475055") -// .templateParamJson(JSONObject.toJSONString(msgList)) -// .build(); -// -// CompletableFuture response = client.sendBatchSms(sendBatchSmsRequest); -// SendBatchSmsResponse resp = response.get(); -// System.out.println(new Gson().toJson(resp)); -// client.close(); -// } - -} \ No newline at end of file diff --git a/src/main/resources/config/application-dev.yml b/src/main/resources/config/application-dev.yml index 30e52e5..ef7bf6a 100644 --- a/src/main/resources/config/application-dev.yml +++ b/src/main/resources/config/application-dev.yml @@ -3,10 +3,10 @@ ################### spring配置 ################### spring: datasource: - driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11102/smartwell_demos?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=GMT%2B8&&allowMultiQueries=true&&useSSL=true - username: root - password: Casic203! + url: jdbc:dm://111.198.10.15:11211/schema=SMARTWELL?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + driver-class-name: dm.jdbc.driver.DmDriver + username: SMARTWELL + password: Casic20311 session: store-type: redis redis: diff --git a/src/main/resources/config/application.yml b/src/main/resources/config/application.yml index 81bed8c..9226c8f 100644 --- a/src/main/resources/config/application.yml +++ b/src/main/resources/config/application.yml @@ -32,15 +32,7 @@ port: 6379 password: ew5T4K3#203lwh config-prefix: 'Casic:' - hikom: - url: /artemis/api/video/v1/cameras/previewURLs - host: 118.122.17.165:1443/ - ali: - key: LTAI5tDFNucQF2Bdy4fHgzrN - secret: hZ22QQPxQue1G0R8Ty2bo6GimrLdoB - url: dysmsapi.aliyuncs.com - signNameJson: 柴壮告警提醒 - templateCode: SMS_268475055 + swagger: enable: true groupName: "硫化氢课题" \ No newline at end of file diff --git a/src/main/resources/mapper/DataH2sMapper.xml b/src/main/resources/mapper/DataH2sMapper.xml new file mode 100644 index 0000000..73ecb52 --- /dev/null +++ b/src/main/resources/mapper/DataH2sMapper.xml @@ -0,0 +1,50 @@ + + + + + + update bus_device + set ONLINE_STATE=1 + where ONLINE_STATE=0 AND VALID=1 + + + + + + + + UPDATE alarm_record + SET status=#{status} + WHERE devcode=#{devcode} + AND status=1 + + + + + + UPDATE bus_imei_iccid + SET IMEI=#{imei},iccid=#{iccid} + WHERE devcode=#{devcode} + + + + insert into bus_imei_iccid(devcode,imei,iccid) + value(#{devcode},#{imei},#{iccid}) + + + \ No newline at end of file diff --git a/src/main/resources/mapper/DataPressureMapper.xml b/src/main/resources/mapper/DataPressureMapper.xml deleted file mode 100644 index 0b50ba0..0000000 --- a/src/main/resources/mapper/DataPressureMapper.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - INSERT INTO ALARM_RECORDS(DEVICE_ID, DEVCODE, WELL_CODE, ALARM_TYPE,ALARM_CONTENT,ALARM_VALUE,ALARM_MSG,STATUS ) - VALUES ( '1', '89860321472000648836', 'test003', '1', '压力超标',#{reValue},'压力超标','1') - - - \ No newline at end of file diff --git a/pom.xml b/pom.xml index f72f435..9ebfdec 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,6 @@ 4.5.13 - - com.hikvision.ga - artemis-http-client - 1.1.7 - - @@ -188,6 +182,13 @@ [1.0.3, 2.0.0) + + com.dameng + DmJdbcDriver18 + 1.8 + + + diff --git a/smartwell-demos.iml b/smartwell-demos.iml index 649d674..6a586fb 100644 --- a/smartwell-demos.iml +++ b/smartwell-demos.iml @@ -56,7 +56,6 @@ - @@ -120,5 +119,6 @@ + \ No newline at end of file diff --git a/src/main/java/com/casic/config/AliYunConfig.java b/src/main/java/com/casic/config/AliYunConfig.java deleted file mode 100644 index 090b6ab..0000000 --- a/src/main/java/com/casic/config/AliYunConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Slf4j -@Configuration -@ConfigurationProperties(prefix = "casic.ali") -@Data -public class AliYunConfig { - - private String key; - private String screct; - private String url; - private String signNameJson; - private String templateCode; - -} diff --git a/src/main/java/com/casic/config/ApiHikomConfig.java b/src/main/java/com/casic/config/ApiHikomConfig.java deleted file mode 100644 index 73b3550..0000000 --- a/src/main/java/com/casic/config/ApiHikomConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.config; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -@Data -public class ApiHikomConfig { - @Value("${casic.hikom.host}") - private String hikomHost; - @Value("${casic.hikom.url}") - private String hikomUrl; -} diff --git a/src/main/java/com/casic/config/task/TaskConfigurer.java b/src/main/java/com/casic/config/task/TaskConfigurer.java new file mode 100644 index 0000000..43282d3 --- /dev/null +++ b/src/main/java/com/casic/config/task/TaskConfigurer.java @@ -0,0 +1,44 @@ +package com.casic.config.task; + +import com.casic.service.DeviceDataService; +import com.casic.service.ThirdDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.config.TriggerTask; +import org.springframework.scheduling.support.CronTrigger; + +/** + * @author cz + */ +@Configuration +@EnableScheduling +public class TaskConfigurer implements SchedulingConfigurer { + + @Value("${casic.device.online.corn}") + private String timeConfig; + @Autowired + private DeviceDataService deviceDataService; + + @Override + public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + TriggerTask triggrtTask = new TriggerTask(nextDayDevice(), + triggerContext -> { + return new CronTrigger(timeConfig).nextExecutionTime(triggerContext); + }); + taskRegistrar.addTriggerTask(triggrtTask); + } + + private Runnable nextDayDevice() { + return new Runnable() { + @Override + public void run() { + deviceDataService.checkAndUpdateDeviceOnline(); + } + }; + } + +} \ No newline at end of file diff --git a/src/main/java/com/casic/controller/AlarmController.java b/src/main/java/com/casic/controller/AlarmController.java deleted file mode 100644 index 957fc36..0000000 --- a/src/main/java/com/casic/controller/AlarmController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmConfigParam; -import com.casic.service.AlarmService; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/alarm") -public class AlarmController { - - private final AlarmService alarmService; - - public AlarmController(AlarmService alarmService) { - this.alarmService = alarmService; - } - - @RequestMapping("/records") - public Object getAlarmRecord(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "currentIndex", required = true) Integer currentIndex, - @RequestParam(value = "devcode",required =false) String devcode, - @RequestParam(value = "pageSize", required = true) Integer pageSize) { - return alarmService.getAlarmRecord(deviceType,currentIndex,pageSize,devcode); - } - - @RequestMapping("/batch/cancel") - public Object excuteAlramBatchCancel(@RequestParam(value = "deviceType", required = true) String deviceType, - @RequestParam(value = "devcode",required =false) String devcode) { - return alarmService.excuteAlramBatchCancel(deviceType,devcode); - } - - @RequestMapping("/config/add") - public Object addAlarmConfig(@RequestBody AlarmConfigParam alarmConfigParam) { - return alarmService.addAlarmConfig(alarmConfigParam); - } -} diff --git a/src/main/java/com/casic/controller/AlarmPushController.java b/src/main/java/com/casic/controller/AlarmPushController.java deleted file mode 100644 index 1642f9b..0000000 --- a/src/main/java/com/casic/controller/AlarmPushController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.controller; - -import com.casic.model.AlarmPushConfig; -import com.casic.service.AlarmPushService; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.*; - -@RestController -@AllArgsConstructor -@RequestMapping("/alarm") -public class AlarmPushController { - - private AlarmPushService alarmPushService; - - @RequestMapping("/push/config") - @ResponseBody - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - return alarmPushService.alarmPushConfig(alarmSwitchConfig); - } - - @RequestMapping("/push/query") - public Object alarmPushQuery(@RequestParam(value = "scene", required = true) String scene) { - return alarmPushService.getAlarmPush(scene); - } - -} diff --git a/src/main/java/com/casic/controller/ArtemisValidController.java b/src/main/java/com/casic/controller/ArtemisValidController.java deleted file mode 100644 index 1d52576..0000000 --- a/src/main/java/com/casic/controller/ArtemisValidController.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.controller; - -import com.casic.model.HkvideoValidParam; -import com.casic.model.ResponseData; -import com.casic.util.ArtemisPostUtil; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 海康接口 - */ -@AllArgsConstructor -@RestController -public class ArtemisValidController { - private final ArtemisPostUtil artemisPostUtill; - - @RequestMapping("/hkvideo/getVideoUrl") - public ResponseData getVideoUrl(@RequestBody HkvideoValidParam hkvideoValidParam) { - - return artemisPostUtill.artemisPost(hkvideoValidParam); - } - -} diff --git a/src/main/java/com/casic/controller/MessagePusherController.java b/src/main/java/com/casic/controller/MessagePusherController.java index d447c05..b97dcd1 100644 --- a/src/main/java/com/casic/controller/MessagePusherController.java +++ b/src/main/java/com/casic/controller/MessagePusherController.java @@ -32,8 +32,7 @@ } catch (UnsupportedEncodingException e) { e.printStackTrace(); } - return retMap; - } + return retMap; } //报警开关按钮 // diff --git a/src/main/java/com/casic/controller/ThirdDataController.java b/src/main/java/com/casic/controller/ThirdDataController.java index d910a7d..fbd8e59 100644 --- a/src/main/java/com/casic/controller/ThirdDataController.java +++ b/src/main/java/com/casic/controller/ThirdDataController.java @@ -1,8 +1,6 @@ package com.casic.controller; import com.alibaba.fastjson.JSON; -import com.casic.model.CommConfigDTO; -import com.casic.model.PressureDataParam; import com.casic.model.ResponseData; import com.casic.service.ThirdDataService; import lombok.extern.slf4j.Slf4j; @@ -10,7 +8,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.HashMap; import java.util.Map; @RestController @@ -24,22 +21,25 @@ this.thirdDataService = thirdDataService; } - @RequestMapping("/pressure/data") - public Object getDeviceRecentData(@RequestBody PressureDataParam pressureData) { - return thirdDataService.getDeviceRecentData(pressureData); + /** + * 硫化氢订阅接口 + * + * @param h2sDataMap + * @return + */ + @RequestMapping("/h2s-data") + public Object h2sData(@RequestBody Map h2sDataMap) { + System.out.println(JSON.toJSON(h2sDataMap)); + return thirdDataService.h2sData(h2sDataMap); } - @RequestMapping("/data") - public Object getDeviceData(@RequestBody Map pressureDataMap) { - System.out.println(JSON.toJSON(pressureDataMap)); - Map map = new HashMap(); - map.put("method", "setParams"); - Map param = new HashMap(); - param.put("ip", "大胆猜测下"); - map.put("status", 200); - map.put("params", param); - map.put("timeout", "3000"); - return map; + @RequestMapping("/test") + public Object testNbResponse (@RequestBody Map h2sDataMap){ + ResponseData responseData=new ResponseData(); + responseData.setCode(200); + responseData.setData("oyAAGDcgFAEAAcMAAQWfAXOJd1POnas6zxTmU7jQkVJinQ=="); + System.out.println(JSON.toJSON(h2sDataMap)); + return responseData; } } diff --git a/src/main/java/com/casic/dao/AlarmPushMapper.java b/src/main/java/com/casic/dao/AlarmPushMapper.java deleted file mode 100644 index 9d7484b..0000000 --- a/src/main/java/com/casic/dao/AlarmPushMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.AlarmPushConfig; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface AlarmPushMapper extends BaseMapper { -} diff --git a/src/main/java/com/casic/dao/AlarmRecordMapper.java b/src/main/java/com/casic/dao/AlarmRecordMapper.java new file mode 100644 index 0000000..d8a4911 --- /dev/null +++ b/src/main/java/com/casic/dao/AlarmRecordMapper.java @@ -0,0 +1,12 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.AlarmRecord; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AlarmRecordMapper extends BaseMapper { + + + +} diff --git a/src/main/java/com/casic/dao/DataH2sMapper.java b/src/main/java/com/casic/dao/DataH2sMapper.java new file mode 100644 index 0000000..434f1e2 --- /dev/null +++ b/src/main/java/com/casic/dao/DataH2sMapper.java @@ -0,0 +1,27 @@ +package com.casic.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.model.DataH2s; +import com.casic.model.DataPressure; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; + +@Mapper +public interface DataH2sMapper extends BaseMapper { + + int clearOnline(@Param("devcode") String devcode); + + String getWellCode(@Param("devcode") String devcode); + + Float getRuleValue(@Param("deviceType") String deviceType); + + int cancelAlarm(@Param("devcode") String devcode, @Param("status") String status); + + String getImeiByDevcode(@Param("devcode") String devcode); + + int updateImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); + + int addImeiDevcode(@Param("devcode") String devcode, @Param("imei") String imei, @Param("iccid") String iccid); +} diff --git a/src/main/java/com/casic/dao/DataPressureMapper.java b/src/main/java/com/casic/dao/DataPressureMapper.java deleted file mode 100644 index 05f4329..0000000 --- a/src/main/java/com/casic/dao/DataPressureMapper.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.casic.dao; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.casic.model.DataPressure; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.Date; - -@Mapper -public interface DataPressureMapper extends BaseMapper { - - String getWellCode(@Param("devcode") String devcode); - - Float getRuleValue(@Param("deviceType") String deviceType); - - void saveRecords(@Param("reValue") String reValue, @Param("alarmTime") Date alarmTime); - -} diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java index d9e18a0..e62d526 100644 --- a/src/main/java/com/casic/dao/DeviceDataMapper.java +++ b/src/main/java/com/casic/dao/DeviceDataMapper.java @@ -23,5 +23,14 @@ @Param("pageSize") Integer pageSize, @Param("devcode") String devcode); - String getLevelByType(@Param("deviceType")String deviceType); + String getLevelByType(@Param("deviceType") String deviceType); + + + List getDevcodeByType(@Param("devciceType") Integer devciceType); + + List getRecentData(@Param("devciceType") Integer dataDay); + + List updateOnlineByDevs(@Param("dataSortDevcodeList") List dataSortDevcodeList); + + } diff --git a/src/main/java/com/casic/enums/DeviceTypeEnum.java b/src/main/java/com/casic/enums/DeviceTypeEnum.java new file mode 100644 index 0000000..8d5a6e6 --- /dev/null +++ b/src/main/java/com/casic/enums/DeviceTypeEnum.java @@ -0,0 +1,64 @@ +package com.casic.enums; + + +public enum DeviceTypeEnum { + Well("井盖状态监测仪", 1), + Liquid("液位监测仪", 2), + WasteGas("有害气体监测仪", 3), + Methane("燃气智能监测终端", 4), + TempHumi("温湿度监测仪", 5), + Dig("开挖监测仪", 6), + WellLocator("井盖定位监测仪", 7), + Noise("噪声记录仪", 8), + TempPressure("温度压力监测仪", 9), + FireHydrant("消防栓防盗水监测仪", 11), + Tube("管盯", 12), + LG("井盖液位一体机", 13), + H2s("硫化氢检测终端", 14); + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private DeviceTypeEnum(String name, int index) { + this.name = name; + this.index = index; + } + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } + + public static DeviceTypeEnum getByIndex(String index) { + try { + for (DeviceTypeEnum deviceTypeEnum : values()) { + if (deviceTypeEnum.index == Integer.parseInt(index)) { + return deviceTypeEnum; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } +} \ No newline at end of file diff --git a/src/main/java/com/casic/enums/H2sParamsEnum.java b/src/main/java/com/casic/enums/H2sParamsEnum.java new file mode 100644 index 0000000..74eec50 --- /dev/null +++ b/src/main/java/com/casic/enums/H2sParamsEnum.java @@ -0,0 +1,35 @@ +package com.casic.enums; + +public interface H2sParamsEnum { + + /** + * 下发配置参数 + */ + String IP = "ip"; + String PORT = "port"; + String CTNET = "ctnet"; + String PERIOD = "period"; + String CYCLE = "cycle"; + /** + * 三码上报 + */ + String ICCID = "iccid"; + String IMEI = "imei"; + String DEVCODE = "devcode"; + /** + * 上传时间 + */ + String TS = "ts"; + /** + * 数据上报(电量、硫化氢数据值、设备编号) + * 数据值 + */ + String H2S_VALUE = "h2sValue"; + /** + * 电量 + */ + String BATTERY_VALUE = "batteryValue"; + + + +} diff --git a/src/main/java/com/casic/model/AlarmRecord.java b/src/main/java/com/casic/model/AlarmRecord.java new file mode 100644 index 0000000..600fe5a --- /dev/null +++ b/src/main/java/com/casic/model/AlarmRecord.java @@ -0,0 +1,81 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; + +import java.util.Date; + +@Builder +@TableName("alarm_records") +public class AlarmRecord { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + /** + * 设备ID + */ + @TableField("DEVICE_ID") + private Long deviceId; + /** + * 设备编号 + */ + @TableField("DEVCODE") + private String devcode; + /** + * 闸井编号 + */ + @TableField("WELL_CODE") + private String wellCode; + /** + * 告警类型 + */ + @TableField("ALARM_TYPE") + private String alarmType; + /** + * 告警内容 + */ + @TableField("ALARM_CONTENT") + private String alarmContent; + /** + * 告警数值 + */ + @TableField("ALARM_VALUE") + private String alarmValue; + /** + * 告警等级 + */ + @TableField("ALARM_LEVEL") + private Integer alarmLevel; + /** + * 告警详情 + */ + @TableField("ALARM_MSG") + private String alarmMessage; + /** + * 告警时间 + */ + @TableField("ALARM_TIME") + private Date alarmTime; + /** + * 告警状态 + */ + @TableField("STATUS") + private String status; + /** + * 工单编号 + */ + @TableField("JOB_ID") + private Long jobId; + + @TableField(exist = false) + private Integer jobStatus; + +} diff --git a/src/main/java/com/casic/model/DataH2s.java b/src/main/java/com/casic/model/DataH2s.java new file mode 100644 index 0000000..16ecc7a --- /dev/null +++ b/src/main/java/com/casic/model/DataH2s.java @@ -0,0 +1,37 @@ +package com.casic.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + */ +@Data +@TableName("data_h2s") +public class DataH2s { + + private Long id; + + private String devcode; + + private String wellCode; + + private String cell; + + private String strength; + + private String uptime; + + private String logtime; + + private String descn; + + private String rsrp; + + private String pci; + + private String snr; + +} diff --git a/src/main/java/com/casic/model/DeviceTypeEnum.java b/src/main/java/com/casic/model/DeviceTypeEnum.java deleted file mode 100644 index 26c685f..0000000 --- a/src/main/java/com/casic/model/DeviceTypeEnum.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.casic.model; - - -public enum DeviceTypeEnum { - Well("井盖状态监测仪", 1), - Liquid("液位监测仪", 2), - WasteGas("有害气体监测仪", 3), - Methane("燃气智能监测终端", 4), - TempHumi("温湿度监测仪", 5), - Dig("开挖监测仪", 6), - WellLocator("井盖定位监测仪", 7), - Noise("噪声记录仪", 8), - TempPressure("温度压力监测仪", 9), - FireHydrant("消防栓防盗水监测仪", 11), - Tube("管盯", 12), - LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); - - // 成员变量 - private String name; - private int index; - - // 构造方法 - private DeviceTypeEnum(String name, int index) { - this.name = name; - this.index = index; - } - - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public int getIndex() { - return index; - } - - public void setIndex(int index) { - this.index = index; - } - - public static DeviceTypeEnum getByIndex(String index) { - try { - for (DeviceTypeEnum deviceTypeEnum : values()) { - if (deviceTypeEnum.index == Integer.parseInt(index)) { - return deviceTypeEnum; - } - } - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - //覆盖方法 - @Override - public String toString() { - return this.name; - } -} \ No newline at end of file diff --git a/src/main/java/com/casic/service/AlarmPushService.java b/src/main/java/com/casic/service/AlarmPushService.java deleted file mode 100644 index d180eb2..0000000 --- a/src/main/java/com/casic/service/AlarmPushService.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.casic.service; - -import com.casic.model.AlarmPushConfig; - -public interface AlarmPushService { - - Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig); - - Object getAlarmPush(String scene); - -} - - - diff --git a/src/main/java/com/casic/service/AlarmService.java b/src/main/java/com/casic/service/AlarmService.java deleted file mode 100644 index 4f41038..0000000 --- a/src/main/java/com/casic/service/AlarmService.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.casic.service; - -import com.casic.model.AlarmConfigParam; - -public interface AlarmService { - - Object getAlarmRecord(String deviceType, Integer currentIndex, Integer pageSize, String devcode); - - Object excuteAlramBatchCancel(String deviceType, String devcode); - - Object addAlarmConfig(AlarmConfigParam alarmConfig); - -} diff --git a/src/main/java/com/casic/service/DeviceDataService.java b/src/main/java/com/casic/service/DeviceDataService.java index db656c1..71f8ce9 100644 --- a/src/main/java/com/casic/service/DeviceDataService.java +++ b/src/main/java/com/casic/service/DeviceDataService.java @@ -7,4 +7,6 @@ Object getDeviceListPage(String deviceType, Integer currentIndex, Integer pageSize, String devcode); Object getLevel(String deviceType); + + void checkAndUpdateDeviceOnline(); } diff --git a/src/main/java/com/casic/service/ThirdDataService.java b/src/main/java/com/casic/service/ThirdDataService.java index 795e0b2..31dc516 100644 --- a/src/main/java/com/casic/service/ThirdDataService.java +++ b/src/main/java/com/casic/service/ThirdDataService.java @@ -1,8 +1,11 @@ package com.casic.service; -import com.casic.model.PressureDataParam; +import java.util.Map; public interface ThirdDataService { - Object getDeviceRecentData(PressureDataParam pressureData); + + Object h2sData(Map h2sDataMap); + + } diff --git a/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java b/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java deleted file mode 100644 index d193905..0000000 --- a/src/main/java/com/casic/service/impl/AlarmPushServiceImpl.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.casic.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.dao.AlarmPushMapper; -import com.casic.model.AlarmPushConfig; -import com.casic.model.ResponseData; -import com.casic.service.AlarmPushService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.dao.DataAccessException; -import org.springframework.stereotype.Service; - -import java.util.List; -import java.util.Optional; - -@Service -@Slf4j -public class AlarmPushServiceImpl extends ServiceImpl implements AlarmPushService { - - @Override - public Object alarmPushConfig(AlarmPushConfig alarmSwitchConfig) { - ResponseData responseData = new ResponseData(); - try { - QueryWrapper queryWrapper = new QueryWrapper() - .eq("scene", alarmSwitchConfig.getScene()); -// this.baseMapper.delete(deleteWrapper); - this.baseMapper.update(alarmSwitchConfig, queryWrapper); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("报警推送配置新增异常,场景{},异常信息{}", alarmSwitchConfig.getScene(), dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - @Override - public Object getAlarmPush(String scene) { - ResponseData responseData = new ResponseData(); - try { - QueryWrapper queryWrapper = new QueryWrapper() - .eq("scene", scene); - List alarmPushConfigList = this.baseMapper.selectList(queryWrapper); - Optional alarmPushConfigOptional = alarmPushConfigList.stream().findFirst(); - responseData.setData(alarmPushConfigOptional.isPresent() ? alarmPushConfigOptional.get() : new Object()); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("报警推送配置查询异常,场景{},异常信息{}", scene, dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } -} diff --git a/src/main/java/com/casic/service/impl/AlarmServiceImple.java b/src/main/java/com/casic/service/impl/AlarmServiceImple.java deleted file mode 100644 index 8a29af9..0000000 --- a/src/main/java/com/casic/service/impl/AlarmServiceImple.java +++ /dev/null @@ -1,129 +0,0 @@ -package com.casic.service.impl; - -import com.alibaba.druid.util.StringUtils; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.dao.AlarmMapper; -import com.casic.dao.BusConfigMapper; -import com.casic.model.*; -import com.casic.service.AlarmService; -import com.casic.util.DeviceDataTableEnum; -import com.casic.util.RedisCommon; -import lombok.extern.slf4j.Slf4j; -import org.springframework.dao.DataAccessException; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import javax.annotation.Resource; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -@Slf4j -@Service -public class AlarmServiceImple extends ServiceImpl implements AlarmService { - - @Resource - private BusConfigMapper busConfigMapper; - @Resource - private RedisCommon redisCommonUtil; - - @Override - public Object getAlarmRecord(String deviceType, Integer currentIndex, Integer pageSize, String devcode) { - ResponseData responseData = new ResponseData(); - try { - Map page = new HashMap(); - page.put("total", this.baseMapper.getAlarmTotalRecord(deviceType, devcode)); - List> alarmRecordList = this.baseMapper.getAlarmRecord(deviceType, devcode, pageSize * (currentIndex - 1), pageSize); - page.put("rows", alarmRecordList); - responseData.setData(page); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("设备数据查询异常,设备类型{},异常信息{}", deviceType, dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - @Override - @Transactional - public Object excuteAlramBatchCancel(String deviceType, String devcode) { - ResponseData responseData = new ResponseData(); - try { - this.baseMapper.excuteAlramBatchCancel(deviceType, devcode); - this.baseMapper.excuteJobBatchCancel(deviceType, devcode); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("批量消警异常,设备类型{},异常信息{}", deviceType, dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - @Override - @Transactional - public Object addAlarmConfig(AlarmConfigParam alarmConfigParam) { - ResponseData responseData = new ResponseData(); - try { - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - addBusConfig(alarmConfigParam); - addRuleConfig(alarmConfigParam); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); - } catch (DataAccessException dae) { - log.error("风险配置异常,异常信息{}", dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); - } - return responseData; - } - - private void addRuleConfig(AlarmConfigParam alarmConfigParam) { - Map alarmRuleMap = new HashMap(); - alarmRuleMap.put("DEVICE_TYPE", alarmConfigParam.getDeviceType()); - this.baseMapper.deleteByMap(alarmRuleMap); - AlarmLevel alarmRule = new AlarmLevel(); - DeviceDataTableEnum deviceDataTableEnum = DeviceDataTableEnum.DEVICE_TYPE_TABLE.getTableNameMap() - .get(Integer.valueOf(alarmConfigParam.getDeviceType())); - alarmRule.setName(deviceDataTableEnum.getTypeName()); - alarmRule.setHighValue(Float.valueOf(alarmConfigParam.getThresholdVol())); - alarmRule.setTs(new Date()); - alarmRule.setLevel(1); - alarmRule.setDeviceType(alarmConfigParam.getDeviceType()); - this.baseMapper.insert(alarmRule); - } - - private void addBusConfig(AlarmConfigParam alarmConfigParam) { - String devcode = StringUtils.isEmpty(alarmConfigParam.getDevcode()) ? this.baseMapper.getDeviceDevcode(alarmConfigParam.getDeviceType()) : alarmConfigParam.getDevcode(); - sendBusConfig(alarmConfigParam, devcode); - String devcideId = this.baseMapper.getDeviceByDevcode(alarmConfigParam.getDeviceType(), devcode); - BusConfig busConfig = new BusConfig(); - busConfig.setDeviceId(devcideId); - busConfig.setFramecontent("3," + alarmConfigParam.getCollectInterval() + "," + alarmConfigParam.getCollectInterval() + - "," + alarmConfigParam.getRetryNum() + "," + alarmConfigParam.getIp() + "," + alarmConfigParam.getPort()); - busConfig.setSensorid(""); - busConfig.setStatus("0"); - busConfig.setAttemptscurrent(0); - busConfig.setWritetime(new Date()); - busConfig.setAttemptsmax(3); - busConfigMapper.insert(busConfig); - } - - private void sendBusConfig(AlarmConfigParam alarmConfigParam, String devcode) { - CommConfigDTO commConfigDTO = new CommConfigDTO(); - commConfigDTO.setInterval(StringUtils.isEmpty(alarmConfigParam.getCollectInterval()) ? 300 : Long.valueOf(alarmConfigParam.getCollectInterval())); - commConfigDTO.setRepeat(StringUtils.isEmpty(alarmConfigParam.getRetryNum()) ? 300 : Long.valueOf(alarmConfigParam.getRetryNum())); -// commConfigDTO.setTimes(Long.valueOf(1)); -// commConfigDTO.setIp(alarmConfigParam.getIp()); -// commConfigDTO.setPort(StringUtils.isEmpty(alarmConfigParam.getPort()) ? 8080 : Long.valueOf(alarmConfigParam.getPort())); - commConfigDTO.setPeriod(StringUtils.isEmpty(alarmConfigParam.getUploadCycle()) ? 300 : Long.valueOf(alarmConfigParam.getUploadCycle())); -// commConfigDTO.setThresh(); - commConfigDTO.setThresh(StringUtils.isEmpty(alarmConfigParam.getThresholdVol()) ? 50 : Float.valueOf(alarmConfigParam.getThresholdVol())); - redisCommonUtil.send(commConfigDTO, devcode); - } - - -} diff --git a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java index e35daef..136912f 100644 --- a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java +++ b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java @@ -1,27 +1,36 @@ package com.casic.service.impl; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.casic.dao.DeviceDataMapper; import com.casic.model.ResponseData; import com.casic.service.DeviceDataService; import com.casic.util.DeviceDataFieldTableEnum; import com.casic.util.DeviceDataTableEnum; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collector; +import java.util.stream.Collectors; @Service @Slf4j +@RequiredArgsConstructor public class DeviceDataServiceImpl implements DeviceDataService { - private final DeviceDataMapper deviceDataMapper; + @Value("${casic.device.type}") + private Integer devciceType; - public DeviceDataServiceImpl(DeviceDataMapper deviceDataMapper) { - this.deviceDataMapper = deviceDataMapper; - } + @Value("${casic.device.data-day}") + private Integer dataDay; + + private final DeviceDataMapper deviceDataMapper; @Override public Object getDeviceRecentData(String deviceType, String recentNum, String devcode) { @@ -80,4 +89,26 @@ return responseData; } + @Override + @Transactional + public void checkAndUpdateDeviceOnline() { + //查询硫化氢设备 + List String = deviceDataMapper.getDevcodeByType(devciceType); + //统一查询所有设备的3天内数据的设备编号,然后设备编号转成map,进行 + List dataList = deviceDataMapper.getRecentData(dataDay); + List dataSortDevcodeList = dataList; + if (dataList != null) { + Map devOnlineMap = new HashMap<>(); + for (String devcodeData : dataList) { + devOnlineMap.put(devcodeData, ""); + } + dataSortDevcodeList = dataSortDevcodeList.stream().filter( + e -> !devOnlineMap.containsKey(e)).collect(Collectors.toList()); + } + //统一更新 + if (CollectionUtils.isNotEmpty(dataList)) { + deviceDataMapper.updateOnlineByDevs(dataSortDevcodeList); + } + } + } diff --git a/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java b/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java index 7ac6bc1..9d28170 100644 --- a/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java +++ b/src/main/java/com/casic/service/impl/ThirdDataServiceImpl.java @@ -2,158 +2,194 @@ import com.alibaba.druid.util.StringUtils; import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.config.AliYunConfig; -import com.casic.dao.DataPressureMapper; -import com.casic.model.AlarmPushConfig; -import com.casic.model.DataPressure; -import com.casic.model.PressureDataParam; -import com.casic.model.ResponseData; -import com.casic.service.AlarmPushService; -import com.casic.service.MessagePusherService; +import com.casic.dao.AlarmRecordMapper; +import com.casic.dao.DataH2sMapper; +import com.casic.enums.H2sParamsEnum; +import com.casic.model.AlarmRecord; +import com.casic.model.DataH2s; import com.casic.service.ThirdDataService; -import com.casic.util.SendBatchSmsUtil; +import com.casic.util.RedisCommon; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; -import java.io.UnsupportedEncodingException; -import java.net.URLDecoder; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.*; -import java.util.stream.Collectors; @Service @Slf4j -public class ThirdDataServiceImpl extends ServiceImpl implements ThirdDataService { +@RequiredArgsConstructor +public class ThirdDataServiceImpl extends ServiceImpl implements ThirdDataService, H2sParamsEnum { private final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA); - - @Autowired - private AlarmPushService alarmPushService; - - @Autowired - private MessagePusherService messagePusherService; - - @Autowired - private SendBatchSmsUtil sendBatchSmsUtil; - + private final RedisCommon redisCommon; + private final AlarmRecordMapper alarmRecordMapper; @Override - public Object getDeviceRecentData(PressureDataParam pressureDataParam) { - ResponseData responseData = new ResponseData(); + public Object h2sData(Map h2sDataMap) { try { - batchSave(pressureDataParam); - responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); + if (h2sDataMap.containsKey(ICCID)) { + //开机上报->存储映射管理->查询是否有下发配置-进行回应 + return powerOnReport(h2sDataMap); + } else if (h2sDataMap.containsKey(H2S_VALUE)) { //数据上报 + if (ObjectUtils.isNotEmpty(h2sDataMap.get(DEVCODE))) { + //清除离线-清除报警-报警-存库-查询是否有下发配置-进行回应 + return dataSave(h2sDataMap); + } + } } catch (DataAccessException dae) { - log.error("设备最近数据查询异常,设备类型{},异常信息{}", dae.getMessage()); - responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); - responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); + log.error("设备上报数据异常,设备传入的json是{},异常信息{}", dae.getMessage()); } - return responseData; + return defaultDeliveryConfig(null); } - private void batchSave(PressureDataParam pressureDataParam) { - String pressureDataJson = pressureDataParam.getRawData(); - log.info("----" + pressureDataJson); - Map pressureDataMap = JSON.parseObject(pressureDataJson, HashMap.class); - Date uptime = null; - try { - uptime = dateFormat.parse(String.valueOf(pressureDataMap.get("times"))); - } catch (Exception e) { - log.error("主题,采集时间解析异常,异常信息{}", e.getMessage()); - } - List> pressureDataList = (List>) pressureDataMap.get("sensorDatas"); - DataPressure dataPressure = initPrssureData(pressureDataList, uptime); - if (dataPressure == null) { - return; - } - checkAlarm(dataPressure); + + private Map defaultDeliveryConfig(Map configDataMap) { + Map map = new HashMap(); + //必带参数,否则会被thingsboard舍弃 + map.put("method", "setParams"); + //判断是否有下发配置必须 + map.put("status", ObjectUtils.isNotEmpty(configDataMap) ? 200 : 201); + map.put("params", configDataMap); + //可省略 + map.put("timeout", "3000"); + return map; } - private DataPressure initPrssureData(List> pressureDataList, Date uptime) { - DataPressure dataPressure = new DataPressure(); - String devcode = pressureDataList.get(pressureDataList.size() - 1).get("str"); - Map pressureDataMap = pressureDataList.stream().collect( - Collectors.toMap(e -> String.valueOf(e.get("flag")), e -> String.valueOf(e.get("value"))) - ); -// if (CacheUtil.serialBuf.get(devcode)!=null&&CacheUtil.serialBuf.get(devcode).equals(pressureDataMap.get("F"))) { -// return null; -// } + /** + * 开机上报->储存,是否有下发配置,选择合适的格式返回 + * + * @param h2sDataMap + */ + private Map powerOnReport(Map h2sDataMap) { + /** + * 三码上报 + */ + String iccid = (String) h2sDataMap.get(ICCID); + String imei = (String) h2sDataMap.get(IMEI); + String devcode = (String) h2sDataMap.get(DEVCODE); + //清除离线 + this.baseMapper.clearOnline(devcode); + //先查,是否有数据,有数据直接覆盖,否则插入数据 + String isImei = this.baseMapper.getImeiByDevcode(devcode); + int save = StringUtils.isEmpty(isImei) ? this.baseMapper.addImeiDevcode(devcode, imei, iccid) : + this.baseMapper.updateImeiDevcode(devcode, imei, iccid); + if (save > 0) { + //保存三码关系 + Map configDataMap = redisCommon.getMsg((String) h2sDataMap.get(DEVCODE)); + if (ObjectUtils.isNotEmpty(configDataMap)) { + return defaultDeliveryConfig(configDataMap); + } + } else { + throw new RuntimeException("三码上传保存异常,异常数据为" + JSON.toJSON(h2sDataMap)); + } + return defaultDeliveryConfig(null); + } + + private Map dataSave(Map h2sDataMap) { + DataH2s dataH2s = initH2sData(h2sDataMap); + this.baseMapper.clearOnline((String) h2sDataMap.get(DEVCODE)); + if (ObjectUtils.isNotEmpty(dataH2s)) { + checkAlarm(dataH2s); + Map configDataMap = redisCommon.getMsg((String) h2sDataMap.get(DEVCODE)); + if (ObjectUtils.isNotEmpty(configDataMap)) { + return defaultDeliveryConfig(configDataMap); + } + } + return defaultDeliveryConfig(null); + } + + private DataH2s initH2sData(Map h2sDataMap) { + DataH2s dataH2s = new DataH2s(); + String devcode = (String) h2sDataMap.get(DEVCODE); String wellCode = this.baseMapper.getWellCode(devcode); - dataPressure.setWellCode(wellCode); - dataPressure.setDevcode(devcode); - dataPressure.setPci(pressureDataMap.get("Q")); - dataPressure.setCell(Float.valueOf(pressureDataMap.get("V"))); - dataPressure.setTemperature(pressureDataMap.get("T")); - dataPressure.setPress(pressureDataMap.get("F")); - dataPressure.setUptime(dateFormat.format(uptime)); - dataPressure.setLogtime(dateFormat.format(new Date())); - this.baseMapper.insert(dataPressure); -// CacheUtil.serialBuf.put(devcode, pressureDataMap.get("F")); - return dataPressure; + dataH2s.setWellCode(wellCode); + dataH2s.setDevcode(devcode); + dataH2s.setStrength((String) h2sDataMap.get(H2S_VALUE)); + dataH2s.setCell((String) h2sDataMap.get(BATTERY_VALUE)); + dataH2s.setUptime(dateFormat.format(new Date())); + dataH2s.setLogtime(dateFormat.format(new Date())); + this.baseMapper.insert(dataH2s); + return dataH2s; } - private void checkAlarm(DataPressure dataPressure) { + /** + * 检查是否有报警 + * + * @param dataH2s + */ + private void checkAlarm(DataH2s dataH2s) { final Float ruleValue = this.baseMapper.getRuleValue("24"); if (ruleValue == null) { return; } - if (!StringUtils.isEmpty(dataPressure.getPress()) && !dataPressure.getPress().equals("null")) { - if (Float.valueOf(dataPressure.getPress()) > ruleValue) { - this.baseMapper.saveRecords(dataPressure.getPress(), new Date()); - alarmPushBuilder(dataPressure.getDevcode(), dataPressure.getPress()); + if (!StringUtils.isEmpty(dataH2s.getStrength()) && !"null".equals(dataH2s.getStrength())) { + String status = "3"; + if (Float.valueOf(dataH2s.getStrength()) > ruleValue) { + //因新的报警消警 “0” + status = "0"; + alarmRecordMapper.insert(buildAlarmRecord(dataH2s)); } + this.baseMapper.cancelAlarm(dataH2s.getDevcode(), status); } } + private AlarmRecord buildAlarmRecord(DataH2s dataH2s) { + AlarmRecord alarmRecord = AlarmRecord.builder() + .devcode(dataH2s.getDevcode()) + .wellCode(dataH2s.getWellCode()) + .alarmType(dataH2s.getStrength()) + .alarmMessage("浓度超限") + .deviceId(dataH2s.getId()) + .alarmType("1") + .alarmContent("浓度超限") + .status("1") + .build(); + return alarmRecord; + } + // "在2023年1月12号 16时43分23秒,设备41232561发生了压力超标/浓度超限,数值为20" // + "设备" + devcode + "发生了压力超标,压力值为" + presss - // - @Autowired - private AliYunConfig aliYunConfig; - private void alarmPushBuilder(String devcode, String presss) { - ResponseData responseData = (ResponseData) alarmPushService.getAlarmPush("H2S"); - AlarmPushConfig alarmPushConfig = (AlarmPushConfig) responseData.getData(); - if (alarmPushConfig.getEnable().equals(1)) { - if (alarmPushConfig.getWebsocketAlarm().equals(1)) { - String msg = "在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "," - + "设备" + devcode + "发生了压力超标,压力值为" + presss; - try { - messagePusherService.updateSinkJob("", URLDecoder.decode(msg, "UTF-8")); - } catch (UnsupportedEncodingException uee) { - log.error("websocket推送,内容转码出现异常,异常信息为{}", uee.getMessage()); - } - } - if (alarmPushConfig.getShortMessageAlarm().equals(1)) { - JSONArray msglist = new JSONArray(); - JSONObject msgMap = new JSONObject(); - msgMap.put("time", new SimpleDateFormat("yyyyMMdd HH:mm:ss").format(new Date())); - msgMap.put("devcode", devcode); - msgMap.put("value", presss); - msgMap.put("content", "压力超标"); - String phoneJson = ""; - List aliSignNameList = new ArrayList<>(); - String aliSignName = aliYunConfig.getSignNameJson(); - if (!org.apache.commons.lang3.StringUtils.isEmpty(alarmPushConfig.getPhoneArray())) { - String[] phones = alarmPushConfig.getPhoneArray().split(","); - List phoneList = new ArrayList<>(); - for (String phone : phones) { - msglist.add(msgMap); - phoneList.add(phone); - aliSignNameList.add(aliSignName); - } - phoneJson = JSONObject.toJSONString(phoneList); - } - sendBatchSmsUtil.sendMsg(phoneJson, JSON.toJSONString(msgMap),JSONObject.toJSONString(aliSignNameList)); - } - } +// ResponseData responseData = (ResponseData) alarmPushService.getAlarmPush("H2S"); +// AlarmPushConfig alarmPushConfig = (AlarmPushConfig) responseData.getData(); +// if (alarmPushConfig.getEnable().equals(1)) { +// if (alarmPushConfig.getWebsocketAlarm().equals(1)) { +// String msg = "在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "," +// + "设备" + devcode + "发生了压力超标,压力值为" + presss; +// try { +// messagePusherService.updateSinkJob("", URLDecoder.decode(msg, "UTF-8")); +// } catch (UnsupportedEncodingException uee) { +// log.error("websocket推送,内容转码出现异常,异常信息为{}", uee.getMessage()); +// } +// } +// if (alarmPushConfig.getShortMessageAlarm().equals(1)) { +// JSONArray msglist = new JSONArray(); +// JSONObject msgMap = new JSONObject(); +// msgMap.put("time", new SimpleDateFormat("yyyyMMdd HH:mm:ss").format(new Date())); +// msgMap.put("devcode", devcode); +// msgMap.put("value", presss); +// msgMap.put("content", "压力超标"); +// String phoneJson = ""; +// List aliSignNameList = new ArrayList<>(); +// String aliSignName = aliYunConfig.getSignNameJson(); +// if (!org.apache.commons.lang3.StringUtils.isEmpty(alarmPushConfig.getPhoneArray())) { +// String[] phones = alarmPushConfig.getPhoneArray().split(","); +// List phoneList = new ArrayList<>(); +// for (String phone : phones) { +// msglist.add(msgMap); +// phoneList.add(phone); +// aliSignNameList.add(aliSignName); +// } +// phoneJson = JSONObject.toJSONString(phoneList); +// } +// sendBatchSmsUtil.sendMsg(phoneJson, JSON.toJSONString(msgMap), JSONObject.toJSONString(aliSignNameList)); +// } +// } } diff --git a/src/main/java/com/casic/util/ArtemisPostUtil.java b/src/main/java/com/casic/util/ArtemisPostUtil.java index c6655af..3084bde 100644 --- a/src/main/java/com/casic/util/ArtemisPostUtil.java +++ b/src/main/java/com/casic/util/ArtemisPostUtil.java @@ -1,7 +1,5 @@ package com.casic.util; -import com.alibaba.fastjson.JSONObject; -import com.casic.config.ApiHikomConfig; import com.casic.model.HkvideoValidParam; import com.casic.model.ResponseData; //import com.hikvision.artemis.sdk.ArtemisHttpUtil; @@ -10,8 +8,6 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; -import java.util.HashMap; -import java.util.Map; /** * 海康验证 @@ -20,8 +16,8 @@ @Slf4j public class ArtemisPostUtil { - @Resource - private ApiHikomConfig apiHikomConfig; +// @Resource +// private ApiHikomConfig apiHikomConfig; private final String contentType = "application/json"; public ResponseData artemisPost(HkvideoValidParam hkvideoValidParam) { diff --git a/src/main/java/com/casic/util/RedisCommon.java b/src/main/java/com/casic/util/RedisCommon.java index 617d73b..80562b9 100644 --- a/src/main/java/com/casic/util/RedisCommon.java +++ b/src/main/java/com/casic/util/RedisCommon.java @@ -7,6 +7,7 @@ import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; +import java.util.Map; import java.util.concurrent.TimeUnit; @Component @@ -20,6 +21,15 @@ @Autowired private RedisTemplate redisTemplate; + + public Map getMsg(String key) { + // 判断上次保存时间,如果到期(key失效),再保存新的 + String timeStampKey = configPrefix + key; + Object dataJson = redisTemplate.opsForValue().get(timeStampKey); + return JSON.parseObject((String) dataJson); + } + + public void send(CommConfigDTO commConfigDTO,String devCode) { redisTemplate.opsForValue().set(configPrefix+ devCode, JSON.toJSONString(commConfigDTO), diff --git a/src/main/java/com/casic/util/SendBatchSmsUtil.java b/src/main/java/com/casic/util/SendBatchSmsUtil.java deleted file mode 100644 index 6152c60..0000000 --- a/src/main/java/com/casic/util/SendBatchSmsUtil.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.casic.util; -// This file is auto-generated, don't edit it. Thanks. - -import com.alibaba.fastjson.JSONObject; -import com.aliyun.auth.credentials.Credential; -import com.aliyun.auth.credentials.provider.StaticCredentialProvider; -import com.aliyun.sdk.service.dysmsapi20170525.models.*; -import com.aliyun.sdk.service.dysmsapi20170525.*; -import com.casic.config.AliYunConfig; -import com.google.gson.Gson; -import darabonba.core.client.ClientOverrideConfiguration; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import java.text.SimpleDateFormat; -import java.time.Duration; -import java.util.*; -import java.util.concurrent.CompletableFuture; - -@AllArgsConstructor -@Component -@Slf4j -public class SendBatchSmsUtil { - - private AliYunConfig aliYunConfig; - - public void sendMsg(String phoneJson, String msgJson,String aliSignNameJson) { - StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder() - .accessKeyId(aliYunConfig.getKey()) - .accessKeySecret(aliYunConfig.getScrect()) - .build()); - - AsyncClient client = AsyncClient.builder() - .region("cn-shanghai") // Region ID - .credentialsProvider(provider) - .overrideConfiguration( - ClientOverrideConfiguration.create() - .setEndpointOverride(aliYunConfig.getUrl()) - .setConnectTimeout(Duration.ofSeconds(30)) - ) - .build(); - - SendBatchSmsRequest sendBatchSmsRequest = SendBatchSmsRequest.builder() - .phoneNumberJson(phoneJson) - .signNameJson(aliSignNameJson) - .templateCode(aliYunConfig.getTemplateCode()) - .templateParamJson(msgJson) - .build(); - - CompletableFuture response = client.sendBatchSms(sendBatchSmsRequest); - try { - SendBatchSmsResponse resp = response.get(); - System.out.println(new Gson().toJson(resp)); - } catch (Exception ex) { - log.error("发送消息出现异常,手机号内容为{},信息内容为{}",phoneJson,msgJson,ex.getMessage()); - }finally { - client.close(); - } - } - - -// public static void main(String[] args) throws Exception { -// StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder() -// .accessKeyId("LTAI5tDFNucQF2Bdy4fHgzrN") -// .accessKeySecret("hZ22QQPxQue1G0R8Ty2bo6GimrLdoB") -// .build()); -// -// AsyncClient client = AsyncClient.builder() -// .region("cn-shanghai") // Region ID -// .credentialsProvider(provider) -// .overrideConfiguration( -// ClientOverrideConfiguration.create() -// .setEndpointOverride("dysmsapi.aliyuncs.com") -// .setConnectTimeout(Duration.ofSeconds(30)) -// ) -// .build(); -// List> msgList = new ArrayList<>(); -// Map msgMap = new HashMap<>(); -// msgMap.put("time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); -// msgMap.put("devcode", "123456"); -// msgMap.put("value", "24Vol"); -// msgMap.put("content", "浓度超限"); -// msgList.add(msgMap); -// Map msgMapCoye=(Map)((HashMap) msgMap).clone(); -// msgList.add(msgMapCoye); -// System.out.println(JSONObject.toJSONString(msgList)); -// SendBatchSmsRequest sendBatchSmsRequest = SendBatchSmsRequest.builder() -// .phoneNumberJson("[\"13651065090\",\"13652031267\"]") -// .signNameJson("[\"柴壮告警提醒\",\"柴壮告警提醒\"]") -// .templateCode("SMS_268475055") -// .templateParamJson(JSONObject.toJSONString(msgList)) -// .build(); -// -// CompletableFuture response = client.sendBatchSms(sendBatchSmsRequest); -// SendBatchSmsResponse resp = response.get(); -// System.out.println(new Gson().toJson(resp)); -// client.close(); -// } - -} \ No newline at end of file diff --git a/src/main/resources/config/application-dev.yml b/src/main/resources/config/application-dev.yml index 30e52e5..ef7bf6a 100644 --- a/src/main/resources/config/application-dev.yml +++ b/src/main/resources/config/application-dev.yml @@ -3,10 +3,10 @@ ################### spring配置 ################### spring: datasource: - driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11102/smartwell_demos?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=GMT%2B8&&allowMultiQueries=true&&useSSL=true - username: root - password: Casic203! + url: jdbc:dm://111.198.10.15:11211/schema=SMARTWELL?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + driver-class-name: dm.jdbc.driver.DmDriver + username: SMARTWELL + password: Casic20311 session: store-type: redis redis: diff --git a/src/main/resources/config/application.yml b/src/main/resources/config/application.yml index 81bed8c..9226c8f 100644 --- a/src/main/resources/config/application.yml +++ b/src/main/resources/config/application.yml @@ -32,15 +32,7 @@ port: 6379 password: ew5T4K3#203lwh config-prefix: 'Casic:' - hikom: - url: /artemis/api/video/v1/cameras/previewURLs - host: 118.122.17.165:1443/ - ali: - key: LTAI5tDFNucQF2Bdy4fHgzrN - secret: hZ22QQPxQue1G0R8Ty2bo6GimrLdoB - url: dysmsapi.aliyuncs.com - signNameJson: 柴壮告警提醒 - templateCode: SMS_268475055 + swagger: enable: true groupName: "硫化氢课题" \ No newline at end of file diff --git a/src/main/resources/mapper/DataH2sMapper.xml b/src/main/resources/mapper/DataH2sMapper.xml new file mode 100644 index 0000000..73ecb52 --- /dev/null +++ b/src/main/resources/mapper/DataH2sMapper.xml @@ -0,0 +1,50 @@ + + + + + + update bus_device + set ONLINE_STATE=1 + where ONLINE_STATE=0 AND VALID=1 + + + + + + + + UPDATE alarm_record + SET status=#{status} + WHERE devcode=#{devcode} + AND status=1 + + + + + + UPDATE bus_imei_iccid + SET IMEI=#{imei},iccid=#{iccid} + WHERE devcode=#{devcode} + + + + insert into bus_imei_iccid(devcode,imei,iccid) + value(#{devcode},#{imei},#{iccid}) + + + \ No newline at end of file diff --git a/src/main/resources/mapper/DataPressureMapper.xml b/src/main/resources/mapper/DataPressureMapper.xml deleted file mode 100644 index 0b50ba0..0000000 --- a/src/main/resources/mapper/DataPressureMapper.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - INSERT INTO ALARM_RECORDS(DEVICE_ID, DEVCODE, WELL_CODE, ALARM_TYPE,ALARM_CONTENT,ALARM_VALUE,ALARM_MSG,STATUS ) - VALUES ( '1', '89860321472000648836', 'test003', '1', '压力超标',#{reValue},'压力超标','1') - - - \ No newline at end of file diff --git a/src/main/resources/mapper/DeviceDataMapper.xml b/src/main/resources/mapper/DeviceDataMapper.xml index 56d23d2..80c84ed 100644 --- a/src/main/resources/mapper/DeviceDataMapper.xml +++ b/src/main/resources/mapper/DeviceDataMapper.xml @@ -2,7 +2,7 @@ - SELECT ${fields} FROM ${tableName} WHERE 1=1 @@ -13,7 +13,7 @@ limit ${recentNum} - SELECT count(*) FROM ${tableName} WHERE 1=1 @@ -22,7 +22,7 @@ - SELECT ${fields} FROM ${tableName} WHERE 1=1 @@ -33,12 +33,34 @@ LIMIT #{currentIndex},#{pageSize} - - SELECT high_value AS "highValue" FROM alarm_level WHERE level=1 AND device_type=#{deviceType} + + + + + + + \ No newline at end of file