diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/src/main/java/com/casic/dao/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index fde1818..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -1,36 +1,24 @@
package com.casic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmRecords;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.Device;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
@Mapper
-public interface AlarmRecordsMapper extends BaseMapper {
+public interface AlarmRecordsMapper extends BaseMapper {
+ @Select("SELECT DBID " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Long getDevcode(@Param("devcode") String devcode);
- @Select("SELECT JOB_ID AS \"jobId\"\n " +
- "FROM alarm_records\n " +
- "WHERE DEVCODE = #{devcode}\n " +
- "AND ALARM_CONTENT = #{MsgContent}\n " +
- "AND STATUS='1'\n " +
- "AND JOB_ID>0 ")
- String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='0'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND ALARM_CONTENT = #{MsgContent}\n" +
- " AND STATUS='1'")
- Integer updateOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='3'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND STATUS='1'")
- Integer clearAlarm(@Param("devcode") String devcode);
-
+ @Select("SELECT DBID as id, DEVCODE as devCode, DEVNAME as devName, FACTORY as factory, SIMID as simid " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Device getDevice(@Param("devcode") String devcode);
}
diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/src/main/java/com/casic/dao/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index fde1818..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -1,36 +1,24 @@
package com.casic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmRecords;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.Device;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
@Mapper
-public interface AlarmRecordsMapper extends BaseMapper {
+public interface AlarmRecordsMapper extends BaseMapper {
+ @Select("SELECT DBID " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Long getDevcode(@Param("devcode") String devcode);
- @Select("SELECT JOB_ID AS \"jobId\"\n " +
- "FROM alarm_records\n " +
- "WHERE DEVCODE = #{devcode}\n " +
- "AND ALARM_CONTENT = #{MsgContent}\n " +
- "AND STATUS='1'\n " +
- "AND JOB_ID>0 ")
- String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='0'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND ALARM_CONTENT = #{MsgContent}\n" +
- " AND STATUS='1'")
- Integer updateOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='3'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND STATUS='1'")
- Integer clearAlarm(@Param("devcode") String devcode);
-
+ @Select("SELECT DBID as id, DEVCODE as devCode, DEVNAME as devName, FACTORY as factory, SIMID as simid " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Device getDevice(@Param("devcode") String devcode);
}
diff --git a/src/main/java/com/casic/dao/ButaneDataMapper.java b/src/main/java/com/casic/dao/ButaneDataMapper.java
new file mode 100644
index 0000000..632c7d2
--- /dev/null
+++ b/src/main/java/com/casic/dao/ButaneDataMapper.java
@@ -0,0 +1,12 @@
+package com.casic.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.entity.ButaneData;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface ButaneDataMapper extends BaseMapper {
+
+
+}
diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/src/main/java/com/casic/dao/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index fde1818..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -1,36 +1,24 @@
package com.casic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmRecords;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.Device;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
@Mapper
-public interface AlarmRecordsMapper extends BaseMapper {
+public interface AlarmRecordsMapper extends BaseMapper {
+ @Select("SELECT DBID " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Long getDevcode(@Param("devcode") String devcode);
- @Select("SELECT JOB_ID AS \"jobId\"\n " +
- "FROM alarm_records\n " +
- "WHERE DEVCODE = #{devcode}\n " +
- "AND ALARM_CONTENT = #{MsgContent}\n " +
- "AND STATUS='1'\n " +
- "AND JOB_ID>0 ")
- String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='0'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND ALARM_CONTENT = #{MsgContent}\n" +
- " AND STATUS='1'")
- Integer updateOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='3'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND STATUS='1'")
- Integer clearAlarm(@Param("devcode") String devcode);
-
+ @Select("SELECT DBID as id, DEVCODE as devCode, DEVNAME as devName, FACTORY as factory, SIMID as simid " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Device getDevice(@Param("devcode") String devcode);
}
diff --git a/src/main/java/com/casic/dao/ButaneDataMapper.java b/src/main/java/com/casic/dao/ButaneDataMapper.java
new file mode 100644
index 0000000..632c7d2
--- /dev/null
+++ b/src/main/java/com/casic/dao/ButaneDataMapper.java
@@ -0,0 +1,12 @@
+package com.casic.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.entity.ButaneData;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface ButaneDataMapper extends BaseMapper {
+
+
+}
diff --git a/src/main/java/com/casic/dao/DataGasMapper.java b/src/main/java/com/casic/dao/DataGasMapper.java
deleted file mode 100644
index 8a064f2..0000000
--- a/src/main/java/com/casic/dao/DataGasMapper.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.DataGasDector;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-
-import java.util.List;
-import java.util.Map;
-
-@Mapper
-public interface DataGasMapper extends BaseMapper {
-
- @Select("SELECT level,high_value " +
- "FROM alarm_level " +
- "WHERE device_type=#{deviceType} ")
- List
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/src/main/java/com/casic/dao/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index fde1818..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -1,36 +1,24 @@
package com.casic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmRecords;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.Device;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
@Mapper
-public interface AlarmRecordsMapper extends BaseMapper {
+public interface AlarmRecordsMapper extends BaseMapper {
+ @Select("SELECT DBID " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Long getDevcode(@Param("devcode") String devcode);
- @Select("SELECT JOB_ID AS \"jobId\"\n " +
- "FROM alarm_records\n " +
- "WHERE DEVCODE = #{devcode}\n " +
- "AND ALARM_CONTENT = #{MsgContent}\n " +
- "AND STATUS='1'\n " +
- "AND JOB_ID>0 ")
- String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='0'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND ALARM_CONTENT = #{MsgContent}\n" +
- " AND STATUS='1'")
- Integer updateOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='3'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND STATUS='1'")
- Integer clearAlarm(@Param("devcode") String devcode);
-
+ @Select("SELECT DBID as id, DEVCODE as devCode, DEVNAME as devName, FACTORY as factory, SIMID as simid " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Device getDevice(@Param("devcode") String devcode);
}
diff --git a/src/main/java/com/casic/dao/ButaneDataMapper.java b/src/main/java/com/casic/dao/ButaneDataMapper.java
new file mode 100644
index 0000000..632c7d2
--- /dev/null
+++ b/src/main/java/com/casic/dao/ButaneDataMapper.java
@@ -0,0 +1,12 @@
+package com.casic.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.entity.ButaneData;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface ButaneDataMapper extends BaseMapper {
+
+
+}
diff --git a/src/main/java/com/casic/dao/DataGasMapper.java b/src/main/java/com/casic/dao/DataGasMapper.java
deleted file mode 100644
index 8a064f2..0000000
--- a/src/main/java/com/casic/dao/DataGasMapper.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.DataGasDector;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-
-import java.util.List;
-import java.util.Map;
-
-@Mapper
-public interface DataGasMapper extends BaseMapper {
-
- @Select("SELECT level,high_value " +
- "FROM alarm_level " +
- "WHERE device_type=#{deviceType} ")
- List
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/src/main/java/com/casic/dao/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index fde1818..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -1,36 +1,24 @@
package com.casic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmRecords;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.Device;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
@Mapper
-public interface AlarmRecordsMapper extends BaseMapper {
+public interface AlarmRecordsMapper extends BaseMapper {
+ @Select("SELECT DBID " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Long getDevcode(@Param("devcode") String devcode);
- @Select("SELECT JOB_ID AS \"jobId\"\n " +
- "FROM alarm_records\n " +
- "WHERE DEVCODE = #{devcode}\n " +
- "AND ALARM_CONTENT = #{MsgContent}\n " +
- "AND STATUS='1'\n " +
- "AND JOB_ID>0 ")
- String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='0'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND ALARM_CONTENT = #{MsgContent}\n" +
- " AND STATUS='1'")
- Integer updateOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='3'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND STATUS='1'")
- Integer clearAlarm(@Param("devcode") String devcode);
-
+ @Select("SELECT DBID as id, DEVCODE as devCode, DEVNAME as devName, FACTORY as factory, SIMID as simid " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Device getDevice(@Param("devcode") String devcode);
}
diff --git a/src/main/java/com/casic/dao/ButaneDataMapper.java b/src/main/java/com/casic/dao/ButaneDataMapper.java
new file mode 100644
index 0000000..632c7d2
--- /dev/null
+++ b/src/main/java/com/casic/dao/ButaneDataMapper.java
@@ -0,0 +1,12 @@
+package com.casic.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.entity.ButaneData;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface ButaneDataMapper extends BaseMapper {
+
+
+}
diff --git a/src/main/java/com/casic/dao/DataGasMapper.java b/src/main/java/com/casic/dao/DataGasMapper.java
deleted file mode 100644
index 8a064f2..0000000
--- a/src/main/java/com/casic/dao/DataGasMapper.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.DataGasDector;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-
-import java.util.List;
-import java.util.Map;
-
-@Mapper
-public interface DataGasMapper extends BaseMapper {
-
- @Select("SELECT level,high_value " +
- "FROM alarm_level " +
- "WHERE device_type=#{deviceType} ")
- List> getAlarmLevelList(@Param("deviceType") Long deviceType);
-
- @Select("SELECT devcode " +
- "FROM data_gas_dector " +
- "WHERE devcode=#{devcode} " +
- "AND (EXTRACT(epoch FROM CAST(now() AS TIMESTAMPTZ))-EXTRACT(epoch FROM CAST(logtime AS TIMESTAMPTZ)))/60.0 < ${minutes} "+
- "ORDER BY logtime DESC " +
- "LIMIT 1")
- String getLastData(@Param("minutes") String minutes,
- @Param("devcode") String devcode);
-
- @Select("SELECT alarm_content " +
- "FROM base_alarm_content_type " +
- "WHERE device_type=#{deviceType}")
- String getGasMsgContent(@Param("deviceType")Long deviceType);
-
-
-}
diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java
new file mode 100644
index 0000000..e9456c1
--- /dev/null
+++ b/src/main/java/com/casic/dao/DeviceDataMapper.java
@@ -0,0 +1,18 @@
+package com.casic.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface DeviceDataMapper {
+
+ List> getDevcodeByType(@Param("devciceType") Integer devciceType);
+
+ List getRecentData(@Param("dataDay") Integer dataDay);
+
+ int updateOnlineByDevs(@Param("dataSortList") List dataSortDevcodeList);
+
+}
diff --git a/src/main/java/com/casic/dao/DeviceMapper.java b/src/main/java/com/casic/dao/DeviceMapper.java
deleted file mode 100644
index 73b574e..0000000
--- a/src/main/java/com/casic/dao/DeviceMapper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.Device;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Map;
-
-@Mapper
-public interface DeviceMapper extends BaseMapper {
-
- Map getWellCode(@Param("devcode") String devcode);
-
-}
diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/src/main/java/com/casic/dao/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index fde1818..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -1,36 +1,24 @@
package com.casic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmRecords;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.Device;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
@Mapper
-public interface AlarmRecordsMapper extends BaseMapper {
+public interface AlarmRecordsMapper extends BaseMapper {
+ @Select("SELECT DBID " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Long getDevcode(@Param("devcode") String devcode);
- @Select("SELECT JOB_ID AS \"jobId\"\n " +
- "FROM alarm_records\n " +
- "WHERE DEVCODE = #{devcode}\n " +
- "AND ALARM_CONTENT = #{MsgContent}\n " +
- "AND STATUS='1'\n " +
- "AND JOB_ID>0 ")
- String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='0'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND ALARM_CONTENT = #{MsgContent}\n" +
- " AND STATUS='1'")
- Integer updateOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='3'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND STATUS='1'")
- Integer clearAlarm(@Param("devcode") String devcode);
-
+ @Select("SELECT DBID as id, DEVCODE as devCode, DEVNAME as devName, FACTORY as factory, SIMID as simid " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Device getDevice(@Param("devcode") String devcode);
}
diff --git a/src/main/java/com/casic/dao/ButaneDataMapper.java b/src/main/java/com/casic/dao/ButaneDataMapper.java
new file mode 100644
index 0000000..632c7d2
--- /dev/null
+++ b/src/main/java/com/casic/dao/ButaneDataMapper.java
@@ -0,0 +1,12 @@
+package com.casic.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.entity.ButaneData;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface ButaneDataMapper extends BaseMapper {
+
+
+}
diff --git a/src/main/java/com/casic/dao/DataGasMapper.java b/src/main/java/com/casic/dao/DataGasMapper.java
deleted file mode 100644
index 8a064f2..0000000
--- a/src/main/java/com/casic/dao/DataGasMapper.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.DataGasDector;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-
-import java.util.List;
-import java.util.Map;
-
-@Mapper
-public interface DataGasMapper extends BaseMapper {
-
- @Select("SELECT level,high_value " +
- "FROM alarm_level " +
- "WHERE device_type=#{deviceType} ")
- List> getAlarmLevelList(@Param("deviceType") Long deviceType);
-
- @Select("SELECT devcode " +
- "FROM data_gas_dector " +
- "WHERE devcode=#{devcode} " +
- "AND (EXTRACT(epoch FROM CAST(now() AS TIMESTAMPTZ))-EXTRACT(epoch FROM CAST(logtime AS TIMESTAMPTZ)))/60.0 < ${minutes} "+
- "ORDER BY logtime DESC " +
- "LIMIT 1")
- String getLastData(@Param("minutes") String minutes,
- @Param("devcode") String devcode);
-
- @Select("SELECT alarm_content " +
- "FROM base_alarm_content_type " +
- "WHERE device_type=#{deviceType}")
- String getGasMsgContent(@Param("deviceType")Long deviceType);
-
-
-}
diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java
new file mode 100644
index 0000000..e9456c1
--- /dev/null
+++ b/src/main/java/com/casic/dao/DeviceDataMapper.java
@@ -0,0 +1,18 @@
+package com.casic.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface DeviceDataMapper {
+
+ List> getDevcodeByType(@Param("devciceType") Integer devciceType);
+
+ List getRecentData(@Param("dataDay") Integer dataDay);
+
+ int updateOnlineByDevs(@Param("dataSortList") List dataSortDevcodeList);
+
+}
diff --git a/src/main/java/com/casic/dao/DeviceMapper.java b/src/main/java/com/casic/dao/DeviceMapper.java
deleted file mode 100644
index 73b574e..0000000
--- a/src/main/java/com/casic/dao/DeviceMapper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.Device;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Map;
-
-@Mapper
-public interface DeviceMapper extends BaseMapper {
-
- Map getWellCode(@Param("devcode") String devcode);
-
-}
diff --git a/src/main/java/com/casic/dao/impl/AlarmJobDao.java b/src/main/java/com/casic/dao/impl/AlarmJobDao.java
deleted file mode 100644
index 5131821..0000000
--- a/src/main/java/com/casic/dao/impl/AlarmJobDao.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.casic.dao.impl;
-
-import com.alibaba.druid.util.StringUtils;
-import com.casic.dao.AlarmJobMapper;
-import com.casic.entity.AlarmJob;
-import org.springframework.stereotype.Component;
-import xyz.downgoon.snowflake.Snowflake;
-
-import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-@Component
-public class AlarmJobDao {
-
- private static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMdd");
-
- private static Snowflake snowflake = new Snowflake(0, 2);
-// private static final Sn
-
- @Resource
- private AlarmJobMapper alarmJobMapper;
-
- public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) {
- AlarmJob alarmJob = new AlarmJob();
- alarmJob.setId(snowflake.nextId());
- alarmJob.setDevcode(devCode);
- alarmJob.setWellCode(wellCode);
- alarmJob.setJobStatus("0");
- alarmJob.setCreateTime(new Date());
- alarmJob.setJobcode(this.produceJobCode(devTypeName));
- alarmJob.setJobType(jobType);
- alarmJobMapper.insert(alarmJob);
- return alarmJob;
- }
-
- /**
- * 前缀+日期+4位流水号
- *
- * @param devTypeName
- * @return
- */
- private String produceJobCode(String devTypeName) {
- String pre = devTypeName;
- String dataStr = sdf6.format(new Date());
- String fix = this.getJobCodeMaxSerial(pre + dataStr);
- return StringUtils.isEmpty(fix) ? pre + dataStr + String.format("%04d", Long.valueOf(StringUtils.isEmpty(fix)?"0":fix) + 1L) : pre + dataStr + "0001";
- }
-
-
- private String getJobCodeMaxSerial(String jobcode) {
- String MaxSerialJobCode = alarmJobMapper.getJobCodeMaxSerial(jobcode);
- String fix = "";
- if (null != MaxSerialJobCode && MaxSerialJobCode.length() > 4) {
- fix = MaxSerialJobCode.substring(MaxSerialJobCode.length() - 4);
- }
- return fix;
- }
-}
diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/src/main/java/com/casic/dao/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index fde1818..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -1,36 +1,24 @@
package com.casic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmRecords;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.Device;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
@Mapper
-public interface AlarmRecordsMapper extends BaseMapper {
+public interface AlarmRecordsMapper extends BaseMapper {
+ @Select("SELECT DBID " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Long getDevcode(@Param("devcode") String devcode);
- @Select("SELECT JOB_ID AS \"jobId\"\n " +
- "FROM alarm_records\n " +
- "WHERE DEVCODE = #{devcode}\n " +
- "AND ALARM_CONTENT = #{MsgContent}\n " +
- "AND STATUS='1'\n " +
- "AND JOB_ID>0 ")
- String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='0'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND ALARM_CONTENT = #{MsgContent}\n" +
- " AND STATUS='1'")
- Integer updateOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='3'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND STATUS='1'")
- Integer clearAlarm(@Param("devcode") String devcode);
-
+ @Select("SELECT DBID as id, DEVCODE as devCode, DEVNAME as devName, FACTORY as factory, SIMID as simid " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Device getDevice(@Param("devcode") String devcode);
}
diff --git a/src/main/java/com/casic/dao/ButaneDataMapper.java b/src/main/java/com/casic/dao/ButaneDataMapper.java
new file mode 100644
index 0000000..632c7d2
--- /dev/null
+++ b/src/main/java/com/casic/dao/ButaneDataMapper.java
@@ -0,0 +1,12 @@
+package com.casic.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.entity.ButaneData;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface ButaneDataMapper extends BaseMapper {
+
+
+}
diff --git a/src/main/java/com/casic/dao/DataGasMapper.java b/src/main/java/com/casic/dao/DataGasMapper.java
deleted file mode 100644
index 8a064f2..0000000
--- a/src/main/java/com/casic/dao/DataGasMapper.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.DataGasDector;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-
-import java.util.List;
-import java.util.Map;
-
-@Mapper
-public interface DataGasMapper extends BaseMapper {
-
- @Select("SELECT level,high_value " +
- "FROM alarm_level " +
- "WHERE device_type=#{deviceType} ")
- List> getAlarmLevelList(@Param("deviceType") Long deviceType);
-
- @Select("SELECT devcode " +
- "FROM data_gas_dector " +
- "WHERE devcode=#{devcode} " +
- "AND (EXTRACT(epoch FROM CAST(now() AS TIMESTAMPTZ))-EXTRACT(epoch FROM CAST(logtime AS TIMESTAMPTZ)))/60.0 < ${minutes} "+
- "ORDER BY logtime DESC " +
- "LIMIT 1")
- String getLastData(@Param("minutes") String minutes,
- @Param("devcode") String devcode);
-
- @Select("SELECT alarm_content " +
- "FROM base_alarm_content_type " +
- "WHERE device_type=#{deviceType}")
- String getGasMsgContent(@Param("deviceType")Long deviceType);
-
-
-}
diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java
new file mode 100644
index 0000000..e9456c1
--- /dev/null
+++ b/src/main/java/com/casic/dao/DeviceDataMapper.java
@@ -0,0 +1,18 @@
+package com.casic.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface DeviceDataMapper {
+
+ List> getDevcodeByType(@Param("devciceType") Integer devciceType);
+
+ List getRecentData(@Param("dataDay") Integer dataDay);
+
+ int updateOnlineByDevs(@Param("dataSortList") List dataSortDevcodeList);
+
+}
diff --git a/src/main/java/com/casic/dao/DeviceMapper.java b/src/main/java/com/casic/dao/DeviceMapper.java
deleted file mode 100644
index 73b574e..0000000
--- a/src/main/java/com/casic/dao/DeviceMapper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.Device;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Map;
-
-@Mapper
-public interface DeviceMapper extends BaseMapper {
-
- Map getWellCode(@Param("devcode") String devcode);
-
-}
diff --git a/src/main/java/com/casic/dao/impl/AlarmJobDao.java b/src/main/java/com/casic/dao/impl/AlarmJobDao.java
deleted file mode 100644
index 5131821..0000000
--- a/src/main/java/com/casic/dao/impl/AlarmJobDao.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.casic.dao.impl;
-
-import com.alibaba.druid.util.StringUtils;
-import com.casic.dao.AlarmJobMapper;
-import com.casic.entity.AlarmJob;
-import org.springframework.stereotype.Component;
-import xyz.downgoon.snowflake.Snowflake;
-
-import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-@Component
-public class AlarmJobDao {
-
- private static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMdd");
-
- private static Snowflake snowflake = new Snowflake(0, 2);
-// private static final Sn
-
- @Resource
- private AlarmJobMapper alarmJobMapper;
-
- public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) {
- AlarmJob alarmJob = new AlarmJob();
- alarmJob.setId(snowflake.nextId());
- alarmJob.setDevcode(devCode);
- alarmJob.setWellCode(wellCode);
- alarmJob.setJobStatus("0");
- alarmJob.setCreateTime(new Date());
- alarmJob.setJobcode(this.produceJobCode(devTypeName));
- alarmJob.setJobType(jobType);
- alarmJobMapper.insert(alarmJob);
- return alarmJob;
- }
-
- /**
- * 前缀+日期+4位流水号
- *
- * @param devTypeName
- * @return
- */
- private String produceJobCode(String devTypeName) {
- String pre = devTypeName;
- String dataStr = sdf6.format(new Date());
- String fix = this.getJobCodeMaxSerial(pre + dataStr);
- return StringUtils.isEmpty(fix) ? pre + dataStr + String.format("%04d", Long.valueOf(StringUtils.isEmpty(fix)?"0":fix) + 1L) : pre + dataStr + "0001";
- }
-
-
- private String getJobCodeMaxSerial(String jobcode) {
- String MaxSerialJobCode = alarmJobMapper.getJobCodeMaxSerial(jobcode);
- String fix = "";
- if (null != MaxSerialJobCode && MaxSerialJobCode.length() > 4) {
- fix = MaxSerialJobCode.substring(MaxSerialJobCode.length() - 4);
- }
- return fix;
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmJob.java b/src/main/java/com/casic/entity/AlarmJob.java
deleted file mode 100644
index 8a0f764..0000000
--- a/src/main/java/com/casic/entity/AlarmJob.java
+++ /dev/null
@@ -1,165 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- *
- * 报警工单表
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_job")
-public class AlarmJob extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- private Long id;
- /**
- * 工单编号
- */
- @TableField("JOBCODE")
- private String jobcode;
- /**
- * 工单类型
- */
- @TableField("JOG_TYPE")
- private String jobType;
- /**
- * 井编号
- */
- @TableField("WELL_CODE")
- private String wellCode;
- /**
- * 设备编号
- */
- @TableField("DEVCODE")
- private String devcode;
- /**
- * 工单创建时间
- */
- @TableField("CREATE_TIME")
- private Date createTime;
- /**
- * 工单状态(0待处理,1待确认,2处理中,3完成)
- */
- @TableField("JOB_STATUS")
- private String jobStatus;
- /**
- * 接单人员
- */
- @TableField("GET_JOB_PERSON")
- private Long getJobPerson;
- /**
- * 接单时间
- */
- @TableField("GET_JOB_TIME")
- private Date getJobTime;
- /**
- * 应接单时间
- */
- @TableField("SHOULD_GET_TIME")
- private Date shouldGetTime;
- /**
- * 第一现场情况
- */
- @TableField("FIRST_STATE")
- private String firstState;
- /**
- * 第一现场照片
- */
- @TableField("FIRST_STATE_PHOTOS")
- private String firstStatePhotos;
- /**
- * 确认人员
- */
- @TableField("CONFIRM_JOB_PERSON")
- private Long confirmJobPerson;
- /**
- * 确认时间
- */
- @TableField("CONFRIM_JOB_TIME")
- private Date confrimJobTime;
- /**
- * 处理人员
- */
- @TableField("HANDLE_JOB_Person")
- private Long handleJobPerson;
- /**
- * 处理时间
- */
- @TableField("HANDLE_JOB_TIME")
- private Date handleJobTime;
- /**
- * 维护情况记录
- */
- @TableField("HANDLE_MESSAGE")
- private String handleMessage;
- /**
- * 维护图片
- */
- @TableField("HANDLE_PHOTOS")
- private String handlePhotos;
- /**
- * 工单流转记录
- */
- @TableField("FLOW")
- private String flow;
-
- @TableField("JOB_BELONG_TO")
- private Long jobBelongTo;
-
- @TableField("JOB_FLAG_DELAY")
- private String jobFlagDelay;
-
- @TableField("JOB_FLAG_1")
- private String jobFlag1;
-
- @TableField(exist = false)
- private String alarmValue;
-
- @TableField(exist = false)
- private String alarmContentName;
-
- @TableField(exist = false)
- private Integer recordId;
-
- @Override
- public String toString() {
- return "AlarmJob{" +
- "id=" + id +
- ", jobcode=" + jobcode +
- ", jogType=" + jobType +
- ", wellCode=" + wellCode +
- ", devcode=" + devcode +
- ", createTime=" + createTime +
- ", jobStatus=" + jobStatus +
- ", getJobPerson=" + getJobPerson +
- ", getJobTime=" + getJobTime +
- ", firstState=" + firstState +
- ", firstStatePhotos=" + firstStatePhotos +
- ", confirmJobPerson=" + confirmJobPerson +
- ", confrimJobTime=" + confrimJobTime +
- ", handleJobPerson=" + handleJobPerson +
- ", handleJobTime=" + handleJobTime +
- ", handleMessage=" + handleMessage +
- ", handlePhotos=" + handlePhotos +
- ", flow=" + flow +
- ", recordId=" + recordId +
- "}";
- }
-}
diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/src/main/java/com/casic/dao/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index fde1818..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -1,36 +1,24 @@
package com.casic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmRecords;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.Device;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
@Mapper
-public interface AlarmRecordsMapper extends BaseMapper {
+public interface AlarmRecordsMapper extends BaseMapper {
+ @Select("SELECT DBID " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Long getDevcode(@Param("devcode") String devcode);
- @Select("SELECT JOB_ID AS \"jobId\"\n " +
- "FROM alarm_records\n " +
- "WHERE DEVCODE = #{devcode}\n " +
- "AND ALARM_CONTENT = #{MsgContent}\n " +
- "AND STATUS='1'\n " +
- "AND JOB_ID>0 ")
- String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='0'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND ALARM_CONTENT = #{MsgContent}\n" +
- " AND STATUS='1'")
- Integer updateOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='3'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND STATUS='1'")
- Integer clearAlarm(@Param("devcode") String devcode);
-
+ @Select("SELECT DBID as id, DEVCODE as devCode, DEVNAME as devName, FACTORY as factory, SIMID as simid " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Device getDevice(@Param("devcode") String devcode);
}
diff --git a/src/main/java/com/casic/dao/ButaneDataMapper.java b/src/main/java/com/casic/dao/ButaneDataMapper.java
new file mode 100644
index 0000000..632c7d2
--- /dev/null
+++ b/src/main/java/com/casic/dao/ButaneDataMapper.java
@@ -0,0 +1,12 @@
+package com.casic.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.entity.ButaneData;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface ButaneDataMapper extends BaseMapper {
+
+
+}
diff --git a/src/main/java/com/casic/dao/DataGasMapper.java b/src/main/java/com/casic/dao/DataGasMapper.java
deleted file mode 100644
index 8a064f2..0000000
--- a/src/main/java/com/casic/dao/DataGasMapper.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.DataGasDector;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-
-import java.util.List;
-import java.util.Map;
-
-@Mapper
-public interface DataGasMapper extends BaseMapper {
-
- @Select("SELECT level,high_value " +
- "FROM alarm_level " +
- "WHERE device_type=#{deviceType} ")
- List> getAlarmLevelList(@Param("deviceType") Long deviceType);
-
- @Select("SELECT devcode " +
- "FROM data_gas_dector " +
- "WHERE devcode=#{devcode} " +
- "AND (EXTRACT(epoch FROM CAST(now() AS TIMESTAMPTZ))-EXTRACT(epoch FROM CAST(logtime AS TIMESTAMPTZ)))/60.0 < ${minutes} "+
- "ORDER BY logtime DESC " +
- "LIMIT 1")
- String getLastData(@Param("minutes") String minutes,
- @Param("devcode") String devcode);
-
- @Select("SELECT alarm_content " +
- "FROM base_alarm_content_type " +
- "WHERE device_type=#{deviceType}")
- String getGasMsgContent(@Param("deviceType")Long deviceType);
-
-
-}
diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java
new file mode 100644
index 0000000..e9456c1
--- /dev/null
+++ b/src/main/java/com/casic/dao/DeviceDataMapper.java
@@ -0,0 +1,18 @@
+package com.casic.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface DeviceDataMapper {
+
+ List> getDevcodeByType(@Param("devciceType") Integer devciceType);
+
+ List getRecentData(@Param("dataDay") Integer dataDay);
+
+ int updateOnlineByDevs(@Param("dataSortList") List dataSortDevcodeList);
+
+}
diff --git a/src/main/java/com/casic/dao/DeviceMapper.java b/src/main/java/com/casic/dao/DeviceMapper.java
deleted file mode 100644
index 73b574e..0000000
--- a/src/main/java/com/casic/dao/DeviceMapper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.Device;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Map;
-
-@Mapper
-public interface DeviceMapper extends BaseMapper {
-
- Map getWellCode(@Param("devcode") String devcode);
-
-}
diff --git a/src/main/java/com/casic/dao/impl/AlarmJobDao.java b/src/main/java/com/casic/dao/impl/AlarmJobDao.java
deleted file mode 100644
index 5131821..0000000
--- a/src/main/java/com/casic/dao/impl/AlarmJobDao.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.casic.dao.impl;
-
-import com.alibaba.druid.util.StringUtils;
-import com.casic.dao.AlarmJobMapper;
-import com.casic.entity.AlarmJob;
-import org.springframework.stereotype.Component;
-import xyz.downgoon.snowflake.Snowflake;
-
-import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-@Component
-public class AlarmJobDao {
-
- private static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMdd");
-
- private static Snowflake snowflake = new Snowflake(0, 2);
-// private static final Sn
-
- @Resource
- private AlarmJobMapper alarmJobMapper;
-
- public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) {
- AlarmJob alarmJob = new AlarmJob();
- alarmJob.setId(snowflake.nextId());
- alarmJob.setDevcode(devCode);
- alarmJob.setWellCode(wellCode);
- alarmJob.setJobStatus("0");
- alarmJob.setCreateTime(new Date());
- alarmJob.setJobcode(this.produceJobCode(devTypeName));
- alarmJob.setJobType(jobType);
- alarmJobMapper.insert(alarmJob);
- return alarmJob;
- }
-
- /**
- * 前缀+日期+4位流水号
- *
- * @param devTypeName
- * @return
- */
- private String produceJobCode(String devTypeName) {
- String pre = devTypeName;
- String dataStr = sdf6.format(new Date());
- String fix = this.getJobCodeMaxSerial(pre + dataStr);
- return StringUtils.isEmpty(fix) ? pre + dataStr + String.format("%04d", Long.valueOf(StringUtils.isEmpty(fix)?"0":fix) + 1L) : pre + dataStr + "0001";
- }
-
-
- private String getJobCodeMaxSerial(String jobcode) {
- String MaxSerialJobCode = alarmJobMapper.getJobCodeMaxSerial(jobcode);
- String fix = "";
- if (null != MaxSerialJobCode && MaxSerialJobCode.length() > 4) {
- fix = MaxSerialJobCode.substring(MaxSerialJobCode.length() - 4);
- }
- return fix;
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmJob.java b/src/main/java/com/casic/entity/AlarmJob.java
deleted file mode 100644
index 8a0f764..0000000
--- a/src/main/java/com/casic/entity/AlarmJob.java
+++ /dev/null
@@ -1,165 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- *
- * 报警工单表
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_job")
-public class AlarmJob extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- private Long id;
- /**
- * 工单编号
- */
- @TableField("JOBCODE")
- private String jobcode;
- /**
- * 工单类型
- */
- @TableField("JOG_TYPE")
- private String jobType;
- /**
- * 井编号
- */
- @TableField("WELL_CODE")
- private String wellCode;
- /**
- * 设备编号
- */
- @TableField("DEVCODE")
- private String devcode;
- /**
- * 工单创建时间
- */
- @TableField("CREATE_TIME")
- private Date createTime;
- /**
- * 工单状态(0待处理,1待确认,2处理中,3完成)
- */
- @TableField("JOB_STATUS")
- private String jobStatus;
- /**
- * 接单人员
- */
- @TableField("GET_JOB_PERSON")
- private Long getJobPerson;
- /**
- * 接单时间
- */
- @TableField("GET_JOB_TIME")
- private Date getJobTime;
- /**
- * 应接单时间
- */
- @TableField("SHOULD_GET_TIME")
- private Date shouldGetTime;
- /**
- * 第一现场情况
- */
- @TableField("FIRST_STATE")
- private String firstState;
- /**
- * 第一现场照片
- */
- @TableField("FIRST_STATE_PHOTOS")
- private String firstStatePhotos;
- /**
- * 确认人员
- */
- @TableField("CONFIRM_JOB_PERSON")
- private Long confirmJobPerson;
- /**
- * 确认时间
- */
- @TableField("CONFRIM_JOB_TIME")
- private Date confrimJobTime;
- /**
- * 处理人员
- */
- @TableField("HANDLE_JOB_Person")
- private Long handleJobPerson;
- /**
- * 处理时间
- */
- @TableField("HANDLE_JOB_TIME")
- private Date handleJobTime;
- /**
- * 维护情况记录
- */
- @TableField("HANDLE_MESSAGE")
- private String handleMessage;
- /**
- * 维护图片
- */
- @TableField("HANDLE_PHOTOS")
- private String handlePhotos;
- /**
- * 工单流转记录
- */
- @TableField("FLOW")
- private String flow;
-
- @TableField("JOB_BELONG_TO")
- private Long jobBelongTo;
-
- @TableField("JOB_FLAG_DELAY")
- private String jobFlagDelay;
-
- @TableField("JOB_FLAG_1")
- private String jobFlag1;
-
- @TableField(exist = false)
- private String alarmValue;
-
- @TableField(exist = false)
- private String alarmContentName;
-
- @TableField(exist = false)
- private Integer recordId;
-
- @Override
- public String toString() {
- return "AlarmJob{" +
- "id=" + id +
- ", jobcode=" + jobcode +
- ", jogType=" + jobType +
- ", wellCode=" + wellCode +
- ", devcode=" + devcode +
- ", createTime=" + createTime +
- ", jobStatus=" + jobStatus +
- ", getJobPerson=" + getJobPerson +
- ", getJobTime=" + getJobTime +
- ", firstState=" + firstState +
- ", firstStatePhotos=" + firstStatePhotos +
- ", confirmJobPerson=" + confirmJobPerson +
- ", confrimJobTime=" + confrimJobTime +
- ", handleJobPerson=" + handleJobPerson +
- ", handleJobTime=" + handleJobTime +
- ", handleMessage=" + handleMessage +
- ", handlePhotos=" + handlePhotos +
- ", flow=" + flow +
- ", recordId=" + recordId +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmRecord.java b/src/main/java/com/casic/entity/AlarmRecord.java
new file mode 100644
index 0000000..137d805
--- /dev/null
+++ b/src/main/java/com/casic/entity/AlarmRecord.java
@@ -0,0 +1,106 @@
+package com.casic.entity;
+
+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 com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *
+ *
+ *
+ *
+ * @author casic123
+ * @since 2019-05-17
+ */
+@Data
+@TableName("ALARM_ALARM_RECORD")
+public class AlarmRecord extends Model {
+
+
+ private static final long serialVersionUID = 1L;
+ /**
+ * 主键
+ */
+ @TableId(value = "DBID")
+ private Long dbid;
+ /**
+ * 设备编号
+ */
+ @TableField("DEVICE_CODE")
+ private String deviceCode;
+ /**
+ * 设备类型名称
+ */
+ @TableField("DEVICE_TYPE_NAME")
+ private String deviceTypeName;
+ /**
+ * 是否推送,默认0
+ */
+ @TableField("ISSEND")
+ private String issend;
+ /**
+ * 默认default
+ */
+ @TableField("ITEMNAME")
+ private String itemname;
+ /**
+ * 没有数值
+ */
+ @TableField("ITEMVALUE")
+ private String itemvalue;
+ /**
+ * 1
+ */
+ @TableField("MESSAGE")
+ private String message;
+ /**
+ * 0
+ */
+ @TableField("MESSAGE_STATUS")
+ private String messageStatus;
+
+
+ /**
+ * 0
+ */
+ @TableField("RECORDCODE")
+ private String recordcode;
+ /**
+ * 告警日期
+ */
+ @TableField("RECORDDATE")
+ private Date recorddate;
+ /**
+ * 工单编号
+ */
+ @TableField("DEVICE_ID")
+ private Long deviceId;
+
+ /**
+ * 删除标志,默认为1
+ */
+ private Integer active;
+
+ @Override
+ public String toString() {
+ return "AlarmRecord{" +
+ "dbid=" + dbid +
+ ", deviceCode='" + deviceCode + '\'' +
+ ", deviceTypeName='" + deviceTypeName + '\'' +
+ ", issend='" + issend + '\'' +
+ ", itemname='" + itemname + '\'' +
+ ", itemvalue='" + itemvalue + '\'' +
+ ", message='" + message + '\'' +
+ ", messageStatus='" + messageStatus + '\'' +
+ ", recordcode='" + recordcode + '\'' +
+ ", recorddate=" + recorddate +
+ ", deviceId=" + deviceId +
+ ", active=" + active +
+ '}';
+ }
+}
diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/src/main/java/com/casic/dao/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index fde1818..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -1,36 +1,24 @@
package com.casic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmRecords;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.Device;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
@Mapper
-public interface AlarmRecordsMapper extends BaseMapper {
+public interface AlarmRecordsMapper extends BaseMapper {
+ @Select("SELECT DBID " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Long getDevcode(@Param("devcode") String devcode);
- @Select("SELECT JOB_ID AS \"jobId\"\n " +
- "FROM alarm_records\n " +
- "WHERE DEVCODE = #{devcode}\n " +
- "AND ALARM_CONTENT = #{MsgContent}\n " +
- "AND STATUS='1'\n " +
- "AND JOB_ID>0 ")
- String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='0'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND ALARM_CONTENT = #{MsgContent}\n" +
- " AND STATUS='1'")
- Integer updateOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='3'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND STATUS='1'")
- Integer clearAlarm(@Param("devcode") String devcode);
-
+ @Select("SELECT DBID as id, DEVCODE as devCode, DEVNAME as devName, FACTORY as factory, SIMID as simid " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Device getDevice(@Param("devcode") String devcode);
}
diff --git a/src/main/java/com/casic/dao/ButaneDataMapper.java b/src/main/java/com/casic/dao/ButaneDataMapper.java
new file mode 100644
index 0000000..632c7d2
--- /dev/null
+++ b/src/main/java/com/casic/dao/ButaneDataMapper.java
@@ -0,0 +1,12 @@
+package com.casic.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.entity.ButaneData;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface ButaneDataMapper extends BaseMapper {
+
+
+}
diff --git a/src/main/java/com/casic/dao/DataGasMapper.java b/src/main/java/com/casic/dao/DataGasMapper.java
deleted file mode 100644
index 8a064f2..0000000
--- a/src/main/java/com/casic/dao/DataGasMapper.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.DataGasDector;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-
-import java.util.List;
-import java.util.Map;
-
-@Mapper
-public interface DataGasMapper extends BaseMapper {
-
- @Select("SELECT level,high_value " +
- "FROM alarm_level " +
- "WHERE device_type=#{deviceType} ")
- List> getAlarmLevelList(@Param("deviceType") Long deviceType);
-
- @Select("SELECT devcode " +
- "FROM data_gas_dector " +
- "WHERE devcode=#{devcode} " +
- "AND (EXTRACT(epoch FROM CAST(now() AS TIMESTAMPTZ))-EXTRACT(epoch FROM CAST(logtime AS TIMESTAMPTZ)))/60.0 < ${minutes} "+
- "ORDER BY logtime DESC " +
- "LIMIT 1")
- String getLastData(@Param("minutes") String minutes,
- @Param("devcode") String devcode);
-
- @Select("SELECT alarm_content " +
- "FROM base_alarm_content_type " +
- "WHERE device_type=#{deviceType}")
- String getGasMsgContent(@Param("deviceType")Long deviceType);
-
-
-}
diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java
new file mode 100644
index 0000000..e9456c1
--- /dev/null
+++ b/src/main/java/com/casic/dao/DeviceDataMapper.java
@@ -0,0 +1,18 @@
+package com.casic.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface DeviceDataMapper {
+
+ List> getDevcodeByType(@Param("devciceType") Integer devciceType);
+
+ List getRecentData(@Param("dataDay") Integer dataDay);
+
+ int updateOnlineByDevs(@Param("dataSortList") List dataSortDevcodeList);
+
+}
diff --git a/src/main/java/com/casic/dao/DeviceMapper.java b/src/main/java/com/casic/dao/DeviceMapper.java
deleted file mode 100644
index 73b574e..0000000
--- a/src/main/java/com/casic/dao/DeviceMapper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.Device;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Map;
-
-@Mapper
-public interface DeviceMapper extends BaseMapper {
-
- Map getWellCode(@Param("devcode") String devcode);
-
-}
diff --git a/src/main/java/com/casic/dao/impl/AlarmJobDao.java b/src/main/java/com/casic/dao/impl/AlarmJobDao.java
deleted file mode 100644
index 5131821..0000000
--- a/src/main/java/com/casic/dao/impl/AlarmJobDao.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.casic.dao.impl;
-
-import com.alibaba.druid.util.StringUtils;
-import com.casic.dao.AlarmJobMapper;
-import com.casic.entity.AlarmJob;
-import org.springframework.stereotype.Component;
-import xyz.downgoon.snowflake.Snowflake;
-
-import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-@Component
-public class AlarmJobDao {
-
- private static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMdd");
-
- private static Snowflake snowflake = new Snowflake(0, 2);
-// private static final Sn
-
- @Resource
- private AlarmJobMapper alarmJobMapper;
-
- public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) {
- AlarmJob alarmJob = new AlarmJob();
- alarmJob.setId(snowflake.nextId());
- alarmJob.setDevcode(devCode);
- alarmJob.setWellCode(wellCode);
- alarmJob.setJobStatus("0");
- alarmJob.setCreateTime(new Date());
- alarmJob.setJobcode(this.produceJobCode(devTypeName));
- alarmJob.setJobType(jobType);
- alarmJobMapper.insert(alarmJob);
- return alarmJob;
- }
-
- /**
- * 前缀+日期+4位流水号
- *
- * @param devTypeName
- * @return
- */
- private String produceJobCode(String devTypeName) {
- String pre = devTypeName;
- String dataStr = sdf6.format(new Date());
- String fix = this.getJobCodeMaxSerial(pre + dataStr);
- return StringUtils.isEmpty(fix) ? pre + dataStr + String.format("%04d", Long.valueOf(StringUtils.isEmpty(fix)?"0":fix) + 1L) : pre + dataStr + "0001";
- }
-
-
- private String getJobCodeMaxSerial(String jobcode) {
- String MaxSerialJobCode = alarmJobMapper.getJobCodeMaxSerial(jobcode);
- String fix = "";
- if (null != MaxSerialJobCode && MaxSerialJobCode.length() > 4) {
- fix = MaxSerialJobCode.substring(MaxSerialJobCode.length() - 4);
- }
- return fix;
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmJob.java b/src/main/java/com/casic/entity/AlarmJob.java
deleted file mode 100644
index 8a0f764..0000000
--- a/src/main/java/com/casic/entity/AlarmJob.java
+++ /dev/null
@@ -1,165 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- *
- * 报警工单表
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_job")
-public class AlarmJob extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- private Long id;
- /**
- * 工单编号
- */
- @TableField("JOBCODE")
- private String jobcode;
- /**
- * 工单类型
- */
- @TableField("JOG_TYPE")
- private String jobType;
- /**
- * 井编号
- */
- @TableField("WELL_CODE")
- private String wellCode;
- /**
- * 设备编号
- */
- @TableField("DEVCODE")
- private String devcode;
- /**
- * 工单创建时间
- */
- @TableField("CREATE_TIME")
- private Date createTime;
- /**
- * 工单状态(0待处理,1待确认,2处理中,3完成)
- */
- @TableField("JOB_STATUS")
- private String jobStatus;
- /**
- * 接单人员
- */
- @TableField("GET_JOB_PERSON")
- private Long getJobPerson;
- /**
- * 接单时间
- */
- @TableField("GET_JOB_TIME")
- private Date getJobTime;
- /**
- * 应接单时间
- */
- @TableField("SHOULD_GET_TIME")
- private Date shouldGetTime;
- /**
- * 第一现场情况
- */
- @TableField("FIRST_STATE")
- private String firstState;
- /**
- * 第一现场照片
- */
- @TableField("FIRST_STATE_PHOTOS")
- private String firstStatePhotos;
- /**
- * 确认人员
- */
- @TableField("CONFIRM_JOB_PERSON")
- private Long confirmJobPerson;
- /**
- * 确认时间
- */
- @TableField("CONFRIM_JOB_TIME")
- private Date confrimJobTime;
- /**
- * 处理人员
- */
- @TableField("HANDLE_JOB_Person")
- private Long handleJobPerson;
- /**
- * 处理时间
- */
- @TableField("HANDLE_JOB_TIME")
- private Date handleJobTime;
- /**
- * 维护情况记录
- */
- @TableField("HANDLE_MESSAGE")
- private String handleMessage;
- /**
- * 维护图片
- */
- @TableField("HANDLE_PHOTOS")
- private String handlePhotos;
- /**
- * 工单流转记录
- */
- @TableField("FLOW")
- private String flow;
-
- @TableField("JOB_BELONG_TO")
- private Long jobBelongTo;
-
- @TableField("JOB_FLAG_DELAY")
- private String jobFlagDelay;
-
- @TableField("JOB_FLAG_1")
- private String jobFlag1;
-
- @TableField(exist = false)
- private String alarmValue;
-
- @TableField(exist = false)
- private String alarmContentName;
-
- @TableField(exist = false)
- private Integer recordId;
-
- @Override
- public String toString() {
- return "AlarmJob{" +
- "id=" + id +
- ", jobcode=" + jobcode +
- ", jogType=" + jobType +
- ", wellCode=" + wellCode +
- ", devcode=" + devcode +
- ", createTime=" + createTime +
- ", jobStatus=" + jobStatus +
- ", getJobPerson=" + getJobPerson +
- ", getJobTime=" + getJobTime +
- ", firstState=" + firstState +
- ", firstStatePhotos=" + firstStatePhotos +
- ", confirmJobPerson=" + confirmJobPerson +
- ", confrimJobTime=" + confrimJobTime +
- ", handleJobPerson=" + handleJobPerson +
- ", handleJobTime=" + handleJobTime +
- ", handleMessage=" + handleMessage +
- ", handlePhotos=" + handlePhotos +
- ", flow=" + flow +
- ", recordId=" + recordId +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmRecord.java b/src/main/java/com/casic/entity/AlarmRecord.java
new file mode 100644
index 0000000..137d805
--- /dev/null
+++ b/src/main/java/com/casic/entity/AlarmRecord.java
@@ -0,0 +1,106 @@
+package com.casic.entity;
+
+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 com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *
+ *
+ *
+ *
+ * @author casic123
+ * @since 2019-05-17
+ */
+@Data
+@TableName("ALARM_ALARM_RECORD")
+public class AlarmRecord extends Model {
+
+
+ private static final long serialVersionUID = 1L;
+ /**
+ * 主键
+ */
+ @TableId(value = "DBID")
+ private Long dbid;
+ /**
+ * 设备编号
+ */
+ @TableField("DEVICE_CODE")
+ private String deviceCode;
+ /**
+ * 设备类型名称
+ */
+ @TableField("DEVICE_TYPE_NAME")
+ private String deviceTypeName;
+ /**
+ * 是否推送,默认0
+ */
+ @TableField("ISSEND")
+ private String issend;
+ /**
+ * 默认default
+ */
+ @TableField("ITEMNAME")
+ private String itemname;
+ /**
+ * 没有数值
+ */
+ @TableField("ITEMVALUE")
+ private String itemvalue;
+ /**
+ * 1
+ */
+ @TableField("MESSAGE")
+ private String message;
+ /**
+ * 0
+ */
+ @TableField("MESSAGE_STATUS")
+ private String messageStatus;
+
+
+ /**
+ * 0
+ */
+ @TableField("RECORDCODE")
+ private String recordcode;
+ /**
+ * 告警日期
+ */
+ @TableField("RECORDDATE")
+ private Date recorddate;
+ /**
+ * 工单编号
+ */
+ @TableField("DEVICE_ID")
+ private Long deviceId;
+
+ /**
+ * 删除标志,默认为1
+ */
+ private Integer active;
+
+ @Override
+ public String toString() {
+ return "AlarmRecord{" +
+ "dbid=" + dbid +
+ ", deviceCode='" + deviceCode + '\'' +
+ ", deviceTypeName='" + deviceTypeName + '\'' +
+ ", issend='" + issend + '\'' +
+ ", itemname='" + itemname + '\'' +
+ ", itemvalue='" + itemvalue + '\'' +
+ ", message='" + message + '\'' +
+ ", messageStatus='" + messageStatus + '\'' +
+ ", recordcode='" + recordcode + '\'' +
+ ", recorddate=" + recorddate +
+ ", deviceId=" + deviceId +
+ ", active=" + active +
+ '}';
+ }
+}
diff --git a/src/main/java/com/casic/entity/AlarmRecords.java b/src/main/java/com/casic/entity/AlarmRecords.java
deleted file mode 100644
index 88b0b26..0000000
--- a/src/main/java/com/casic/entity/AlarmRecords.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- *
- *
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_records")
-public class AlarmRecords extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- 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;
-
- @Override
- public String toString() {
- return "AlarmRecords{" +
- "id=" + id +
- ", deviceId=" + deviceId +
- ", devcode=" + devcode +
- ", wellCode=" + wellCode +
- ", alarmType=" + alarmType +
- ", alarmContent=" + alarmContent +
- ", alarmValue=" + alarmValue +
- ", alarmLevel=" + alarmLevel +
- ", alarmMessage=" + alarmMessage +
- ", alarmTime=" + alarmTime +
- ", status=" + status +
- ", jobId=" + jobId +
- ", jobStatus=" + jobStatus +
- "}";
- }
-}
diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/src/main/java/com/casic/dao/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index fde1818..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -1,36 +1,24 @@
package com.casic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmRecords;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.Device;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
@Mapper
-public interface AlarmRecordsMapper extends BaseMapper {
+public interface AlarmRecordsMapper extends BaseMapper {
+ @Select("SELECT DBID " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Long getDevcode(@Param("devcode") String devcode);
- @Select("SELECT JOB_ID AS \"jobId\"\n " +
- "FROM alarm_records\n " +
- "WHERE DEVCODE = #{devcode}\n " +
- "AND ALARM_CONTENT = #{MsgContent}\n " +
- "AND STATUS='1'\n " +
- "AND JOB_ID>0 ")
- String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='0'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND ALARM_CONTENT = #{MsgContent}\n" +
- " AND STATUS='1'")
- Integer updateOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='3'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND STATUS='1'")
- Integer clearAlarm(@Param("devcode") String devcode);
-
+ @Select("SELECT DBID as id, DEVCODE as devCode, DEVNAME as devName, FACTORY as factory, SIMID as simid " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Device getDevice(@Param("devcode") String devcode);
}
diff --git a/src/main/java/com/casic/dao/ButaneDataMapper.java b/src/main/java/com/casic/dao/ButaneDataMapper.java
new file mode 100644
index 0000000..632c7d2
--- /dev/null
+++ b/src/main/java/com/casic/dao/ButaneDataMapper.java
@@ -0,0 +1,12 @@
+package com.casic.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.entity.ButaneData;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface ButaneDataMapper extends BaseMapper {
+
+
+}
diff --git a/src/main/java/com/casic/dao/DataGasMapper.java b/src/main/java/com/casic/dao/DataGasMapper.java
deleted file mode 100644
index 8a064f2..0000000
--- a/src/main/java/com/casic/dao/DataGasMapper.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.DataGasDector;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-
-import java.util.List;
-import java.util.Map;
-
-@Mapper
-public interface DataGasMapper extends BaseMapper {
-
- @Select("SELECT level,high_value " +
- "FROM alarm_level " +
- "WHERE device_type=#{deviceType} ")
- List> getAlarmLevelList(@Param("deviceType") Long deviceType);
-
- @Select("SELECT devcode " +
- "FROM data_gas_dector " +
- "WHERE devcode=#{devcode} " +
- "AND (EXTRACT(epoch FROM CAST(now() AS TIMESTAMPTZ))-EXTRACT(epoch FROM CAST(logtime AS TIMESTAMPTZ)))/60.0 < ${minutes} "+
- "ORDER BY logtime DESC " +
- "LIMIT 1")
- String getLastData(@Param("minutes") String minutes,
- @Param("devcode") String devcode);
-
- @Select("SELECT alarm_content " +
- "FROM base_alarm_content_type " +
- "WHERE device_type=#{deviceType}")
- String getGasMsgContent(@Param("deviceType")Long deviceType);
-
-
-}
diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java
new file mode 100644
index 0000000..e9456c1
--- /dev/null
+++ b/src/main/java/com/casic/dao/DeviceDataMapper.java
@@ -0,0 +1,18 @@
+package com.casic.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface DeviceDataMapper {
+
+ List> getDevcodeByType(@Param("devciceType") Integer devciceType);
+
+ List getRecentData(@Param("dataDay") Integer dataDay);
+
+ int updateOnlineByDevs(@Param("dataSortList") List dataSortDevcodeList);
+
+}
diff --git a/src/main/java/com/casic/dao/DeviceMapper.java b/src/main/java/com/casic/dao/DeviceMapper.java
deleted file mode 100644
index 73b574e..0000000
--- a/src/main/java/com/casic/dao/DeviceMapper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.Device;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Map;
-
-@Mapper
-public interface DeviceMapper extends BaseMapper {
-
- Map getWellCode(@Param("devcode") String devcode);
-
-}
diff --git a/src/main/java/com/casic/dao/impl/AlarmJobDao.java b/src/main/java/com/casic/dao/impl/AlarmJobDao.java
deleted file mode 100644
index 5131821..0000000
--- a/src/main/java/com/casic/dao/impl/AlarmJobDao.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.casic.dao.impl;
-
-import com.alibaba.druid.util.StringUtils;
-import com.casic.dao.AlarmJobMapper;
-import com.casic.entity.AlarmJob;
-import org.springframework.stereotype.Component;
-import xyz.downgoon.snowflake.Snowflake;
-
-import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-@Component
-public class AlarmJobDao {
-
- private static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMdd");
-
- private static Snowflake snowflake = new Snowflake(0, 2);
-// private static final Sn
-
- @Resource
- private AlarmJobMapper alarmJobMapper;
-
- public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) {
- AlarmJob alarmJob = new AlarmJob();
- alarmJob.setId(snowflake.nextId());
- alarmJob.setDevcode(devCode);
- alarmJob.setWellCode(wellCode);
- alarmJob.setJobStatus("0");
- alarmJob.setCreateTime(new Date());
- alarmJob.setJobcode(this.produceJobCode(devTypeName));
- alarmJob.setJobType(jobType);
- alarmJobMapper.insert(alarmJob);
- return alarmJob;
- }
-
- /**
- * 前缀+日期+4位流水号
- *
- * @param devTypeName
- * @return
- */
- private String produceJobCode(String devTypeName) {
- String pre = devTypeName;
- String dataStr = sdf6.format(new Date());
- String fix = this.getJobCodeMaxSerial(pre + dataStr);
- return StringUtils.isEmpty(fix) ? pre + dataStr + String.format("%04d", Long.valueOf(StringUtils.isEmpty(fix)?"0":fix) + 1L) : pre + dataStr + "0001";
- }
-
-
- private String getJobCodeMaxSerial(String jobcode) {
- String MaxSerialJobCode = alarmJobMapper.getJobCodeMaxSerial(jobcode);
- String fix = "";
- if (null != MaxSerialJobCode && MaxSerialJobCode.length() > 4) {
- fix = MaxSerialJobCode.substring(MaxSerialJobCode.length() - 4);
- }
- return fix;
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmJob.java b/src/main/java/com/casic/entity/AlarmJob.java
deleted file mode 100644
index 8a0f764..0000000
--- a/src/main/java/com/casic/entity/AlarmJob.java
+++ /dev/null
@@ -1,165 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- *
- * 报警工单表
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_job")
-public class AlarmJob extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- private Long id;
- /**
- * 工单编号
- */
- @TableField("JOBCODE")
- private String jobcode;
- /**
- * 工单类型
- */
- @TableField("JOG_TYPE")
- private String jobType;
- /**
- * 井编号
- */
- @TableField("WELL_CODE")
- private String wellCode;
- /**
- * 设备编号
- */
- @TableField("DEVCODE")
- private String devcode;
- /**
- * 工单创建时间
- */
- @TableField("CREATE_TIME")
- private Date createTime;
- /**
- * 工单状态(0待处理,1待确认,2处理中,3完成)
- */
- @TableField("JOB_STATUS")
- private String jobStatus;
- /**
- * 接单人员
- */
- @TableField("GET_JOB_PERSON")
- private Long getJobPerson;
- /**
- * 接单时间
- */
- @TableField("GET_JOB_TIME")
- private Date getJobTime;
- /**
- * 应接单时间
- */
- @TableField("SHOULD_GET_TIME")
- private Date shouldGetTime;
- /**
- * 第一现场情况
- */
- @TableField("FIRST_STATE")
- private String firstState;
- /**
- * 第一现场照片
- */
- @TableField("FIRST_STATE_PHOTOS")
- private String firstStatePhotos;
- /**
- * 确认人员
- */
- @TableField("CONFIRM_JOB_PERSON")
- private Long confirmJobPerson;
- /**
- * 确认时间
- */
- @TableField("CONFRIM_JOB_TIME")
- private Date confrimJobTime;
- /**
- * 处理人员
- */
- @TableField("HANDLE_JOB_Person")
- private Long handleJobPerson;
- /**
- * 处理时间
- */
- @TableField("HANDLE_JOB_TIME")
- private Date handleJobTime;
- /**
- * 维护情况记录
- */
- @TableField("HANDLE_MESSAGE")
- private String handleMessage;
- /**
- * 维护图片
- */
- @TableField("HANDLE_PHOTOS")
- private String handlePhotos;
- /**
- * 工单流转记录
- */
- @TableField("FLOW")
- private String flow;
-
- @TableField("JOB_BELONG_TO")
- private Long jobBelongTo;
-
- @TableField("JOB_FLAG_DELAY")
- private String jobFlagDelay;
-
- @TableField("JOB_FLAG_1")
- private String jobFlag1;
-
- @TableField(exist = false)
- private String alarmValue;
-
- @TableField(exist = false)
- private String alarmContentName;
-
- @TableField(exist = false)
- private Integer recordId;
-
- @Override
- public String toString() {
- return "AlarmJob{" +
- "id=" + id +
- ", jobcode=" + jobcode +
- ", jogType=" + jobType +
- ", wellCode=" + wellCode +
- ", devcode=" + devcode +
- ", createTime=" + createTime +
- ", jobStatus=" + jobStatus +
- ", getJobPerson=" + getJobPerson +
- ", getJobTime=" + getJobTime +
- ", firstState=" + firstState +
- ", firstStatePhotos=" + firstStatePhotos +
- ", confirmJobPerson=" + confirmJobPerson +
- ", confrimJobTime=" + confrimJobTime +
- ", handleJobPerson=" + handleJobPerson +
- ", handleJobTime=" + handleJobTime +
- ", handleMessage=" + handleMessage +
- ", handlePhotos=" + handlePhotos +
- ", flow=" + flow +
- ", recordId=" + recordId +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmRecord.java b/src/main/java/com/casic/entity/AlarmRecord.java
new file mode 100644
index 0000000..137d805
--- /dev/null
+++ b/src/main/java/com/casic/entity/AlarmRecord.java
@@ -0,0 +1,106 @@
+package com.casic.entity;
+
+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 com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *
+ *
+ *
+ *
+ * @author casic123
+ * @since 2019-05-17
+ */
+@Data
+@TableName("ALARM_ALARM_RECORD")
+public class AlarmRecord extends Model {
+
+
+ private static final long serialVersionUID = 1L;
+ /**
+ * 主键
+ */
+ @TableId(value = "DBID")
+ private Long dbid;
+ /**
+ * 设备编号
+ */
+ @TableField("DEVICE_CODE")
+ private String deviceCode;
+ /**
+ * 设备类型名称
+ */
+ @TableField("DEVICE_TYPE_NAME")
+ private String deviceTypeName;
+ /**
+ * 是否推送,默认0
+ */
+ @TableField("ISSEND")
+ private String issend;
+ /**
+ * 默认default
+ */
+ @TableField("ITEMNAME")
+ private String itemname;
+ /**
+ * 没有数值
+ */
+ @TableField("ITEMVALUE")
+ private String itemvalue;
+ /**
+ * 1
+ */
+ @TableField("MESSAGE")
+ private String message;
+ /**
+ * 0
+ */
+ @TableField("MESSAGE_STATUS")
+ private String messageStatus;
+
+
+ /**
+ * 0
+ */
+ @TableField("RECORDCODE")
+ private String recordcode;
+ /**
+ * 告警日期
+ */
+ @TableField("RECORDDATE")
+ private Date recorddate;
+ /**
+ * 工单编号
+ */
+ @TableField("DEVICE_ID")
+ private Long deviceId;
+
+ /**
+ * 删除标志,默认为1
+ */
+ private Integer active;
+
+ @Override
+ public String toString() {
+ return "AlarmRecord{" +
+ "dbid=" + dbid +
+ ", deviceCode='" + deviceCode + '\'' +
+ ", deviceTypeName='" + deviceTypeName + '\'' +
+ ", issend='" + issend + '\'' +
+ ", itemname='" + itemname + '\'' +
+ ", itemvalue='" + itemvalue + '\'' +
+ ", message='" + message + '\'' +
+ ", messageStatus='" + messageStatus + '\'' +
+ ", recordcode='" + recordcode + '\'' +
+ ", recorddate=" + recorddate +
+ ", deviceId=" + deviceId +
+ ", active=" + active +
+ '}';
+ }
+}
diff --git a/src/main/java/com/casic/entity/AlarmRecords.java b/src/main/java/com/casic/entity/AlarmRecords.java
deleted file mode 100644
index 88b0b26..0000000
--- a/src/main/java/com/casic/entity/AlarmRecords.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- *
- *
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_records")
-public class AlarmRecords extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- 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;
-
- @Override
- public String toString() {
- return "AlarmRecords{" +
- "id=" + id +
- ", deviceId=" + deviceId +
- ", devcode=" + devcode +
- ", wellCode=" + wellCode +
- ", alarmType=" + alarmType +
- ", alarmContent=" + alarmContent +
- ", alarmValue=" + alarmValue +
- ", alarmLevel=" + alarmLevel +
- ", alarmMessage=" + alarmMessage +
- ", alarmTime=" + alarmTime +
- ", status=" + status +
- ", jobId=" + jobId +
- ", jobStatus=" + jobStatus +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/ButaneData.java b/src/main/java/com/casic/entity/ButaneData.java
new file mode 100644
index 0000000..2e051be
--- /dev/null
+++ b/src/main/java/com/casic/entity/ButaneData.java
@@ -0,0 +1,28 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Builder;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@TableName("CASIC_BUTANE_INFO")
+@Builder
+public class ButaneData extends Model {
+
+ @TableId(value = "DBID")
+ private Long dbid;
+
+ private String devcode;
+
+ private String status;
+
+ private String descn;
+
+ private Date logtime;
+
+}
diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/src/main/java/com/casic/dao/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index fde1818..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -1,36 +1,24 @@
package com.casic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmRecords;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.Device;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
@Mapper
-public interface AlarmRecordsMapper extends BaseMapper {
+public interface AlarmRecordsMapper extends BaseMapper {
+ @Select("SELECT DBID " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Long getDevcode(@Param("devcode") String devcode);
- @Select("SELECT JOB_ID AS \"jobId\"\n " +
- "FROM alarm_records\n " +
- "WHERE DEVCODE = #{devcode}\n " +
- "AND ALARM_CONTENT = #{MsgContent}\n " +
- "AND STATUS='1'\n " +
- "AND JOB_ID>0 ")
- String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='0'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND ALARM_CONTENT = #{MsgContent}\n" +
- " AND STATUS='1'")
- Integer updateOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='3'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND STATUS='1'")
- Integer clearAlarm(@Param("devcode") String devcode);
-
+ @Select("SELECT DBID as id, DEVCODE as devCode, DEVNAME as devName, FACTORY as factory, SIMID as simid " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Device getDevice(@Param("devcode") String devcode);
}
diff --git a/src/main/java/com/casic/dao/ButaneDataMapper.java b/src/main/java/com/casic/dao/ButaneDataMapper.java
new file mode 100644
index 0000000..632c7d2
--- /dev/null
+++ b/src/main/java/com/casic/dao/ButaneDataMapper.java
@@ -0,0 +1,12 @@
+package com.casic.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.entity.ButaneData;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface ButaneDataMapper extends BaseMapper {
+
+
+}
diff --git a/src/main/java/com/casic/dao/DataGasMapper.java b/src/main/java/com/casic/dao/DataGasMapper.java
deleted file mode 100644
index 8a064f2..0000000
--- a/src/main/java/com/casic/dao/DataGasMapper.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.DataGasDector;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-
-import java.util.List;
-import java.util.Map;
-
-@Mapper
-public interface DataGasMapper extends BaseMapper {
-
- @Select("SELECT level,high_value " +
- "FROM alarm_level " +
- "WHERE device_type=#{deviceType} ")
- List> getAlarmLevelList(@Param("deviceType") Long deviceType);
-
- @Select("SELECT devcode " +
- "FROM data_gas_dector " +
- "WHERE devcode=#{devcode} " +
- "AND (EXTRACT(epoch FROM CAST(now() AS TIMESTAMPTZ))-EXTRACT(epoch FROM CAST(logtime AS TIMESTAMPTZ)))/60.0 < ${minutes} "+
- "ORDER BY logtime DESC " +
- "LIMIT 1")
- String getLastData(@Param("minutes") String minutes,
- @Param("devcode") String devcode);
-
- @Select("SELECT alarm_content " +
- "FROM base_alarm_content_type " +
- "WHERE device_type=#{deviceType}")
- String getGasMsgContent(@Param("deviceType")Long deviceType);
-
-
-}
diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java
new file mode 100644
index 0000000..e9456c1
--- /dev/null
+++ b/src/main/java/com/casic/dao/DeviceDataMapper.java
@@ -0,0 +1,18 @@
+package com.casic.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface DeviceDataMapper {
+
+ List> getDevcodeByType(@Param("devciceType") Integer devciceType);
+
+ List getRecentData(@Param("dataDay") Integer dataDay);
+
+ int updateOnlineByDevs(@Param("dataSortList") List dataSortDevcodeList);
+
+}
diff --git a/src/main/java/com/casic/dao/DeviceMapper.java b/src/main/java/com/casic/dao/DeviceMapper.java
deleted file mode 100644
index 73b574e..0000000
--- a/src/main/java/com/casic/dao/DeviceMapper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.Device;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Map;
-
-@Mapper
-public interface DeviceMapper extends BaseMapper {
-
- Map getWellCode(@Param("devcode") String devcode);
-
-}
diff --git a/src/main/java/com/casic/dao/impl/AlarmJobDao.java b/src/main/java/com/casic/dao/impl/AlarmJobDao.java
deleted file mode 100644
index 5131821..0000000
--- a/src/main/java/com/casic/dao/impl/AlarmJobDao.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.casic.dao.impl;
-
-import com.alibaba.druid.util.StringUtils;
-import com.casic.dao.AlarmJobMapper;
-import com.casic.entity.AlarmJob;
-import org.springframework.stereotype.Component;
-import xyz.downgoon.snowflake.Snowflake;
-
-import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-@Component
-public class AlarmJobDao {
-
- private static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMdd");
-
- private static Snowflake snowflake = new Snowflake(0, 2);
-// private static final Sn
-
- @Resource
- private AlarmJobMapper alarmJobMapper;
-
- public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) {
- AlarmJob alarmJob = new AlarmJob();
- alarmJob.setId(snowflake.nextId());
- alarmJob.setDevcode(devCode);
- alarmJob.setWellCode(wellCode);
- alarmJob.setJobStatus("0");
- alarmJob.setCreateTime(new Date());
- alarmJob.setJobcode(this.produceJobCode(devTypeName));
- alarmJob.setJobType(jobType);
- alarmJobMapper.insert(alarmJob);
- return alarmJob;
- }
-
- /**
- * 前缀+日期+4位流水号
- *
- * @param devTypeName
- * @return
- */
- private String produceJobCode(String devTypeName) {
- String pre = devTypeName;
- String dataStr = sdf6.format(new Date());
- String fix = this.getJobCodeMaxSerial(pre + dataStr);
- return StringUtils.isEmpty(fix) ? pre + dataStr + String.format("%04d", Long.valueOf(StringUtils.isEmpty(fix)?"0":fix) + 1L) : pre + dataStr + "0001";
- }
-
-
- private String getJobCodeMaxSerial(String jobcode) {
- String MaxSerialJobCode = alarmJobMapper.getJobCodeMaxSerial(jobcode);
- String fix = "";
- if (null != MaxSerialJobCode && MaxSerialJobCode.length() > 4) {
- fix = MaxSerialJobCode.substring(MaxSerialJobCode.length() - 4);
- }
- return fix;
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmJob.java b/src/main/java/com/casic/entity/AlarmJob.java
deleted file mode 100644
index 8a0f764..0000000
--- a/src/main/java/com/casic/entity/AlarmJob.java
+++ /dev/null
@@ -1,165 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- *
- * 报警工单表
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_job")
-public class AlarmJob extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- private Long id;
- /**
- * 工单编号
- */
- @TableField("JOBCODE")
- private String jobcode;
- /**
- * 工单类型
- */
- @TableField("JOG_TYPE")
- private String jobType;
- /**
- * 井编号
- */
- @TableField("WELL_CODE")
- private String wellCode;
- /**
- * 设备编号
- */
- @TableField("DEVCODE")
- private String devcode;
- /**
- * 工单创建时间
- */
- @TableField("CREATE_TIME")
- private Date createTime;
- /**
- * 工单状态(0待处理,1待确认,2处理中,3完成)
- */
- @TableField("JOB_STATUS")
- private String jobStatus;
- /**
- * 接单人员
- */
- @TableField("GET_JOB_PERSON")
- private Long getJobPerson;
- /**
- * 接单时间
- */
- @TableField("GET_JOB_TIME")
- private Date getJobTime;
- /**
- * 应接单时间
- */
- @TableField("SHOULD_GET_TIME")
- private Date shouldGetTime;
- /**
- * 第一现场情况
- */
- @TableField("FIRST_STATE")
- private String firstState;
- /**
- * 第一现场照片
- */
- @TableField("FIRST_STATE_PHOTOS")
- private String firstStatePhotos;
- /**
- * 确认人员
- */
- @TableField("CONFIRM_JOB_PERSON")
- private Long confirmJobPerson;
- /**
- * 确认时间
- */
- @TableField("CONFRIM_JOB_TIME")
- private Date confrimJobTime;
- /**
- * 处理人员
- */
- @TableField("HANDLE_JOB_Person")
- private Long handleJobPerson;
- /**
- * 处理时间
- */
- @TableField("HANDLE_JOB_TIME")
- private Date handleJobTime;
- /**
- * 维护情况记录
- */
- @TableField("HANDLE_MESSAGE")
- private String handleMessage;
- /**
- * 维护图片
- */
- @TableField("HANDLE_PHOTOS")
- private String handlePhotos;
- /**
- * 工单流转记录
- */
- @TableField("FLOW")
- private String flow;
-
- @TableField("JOB_BELONG_TO")
- private Long jobBelongTo;
-
- @TableField("JOB_FLAG_DELAY")
- private String jobFlagDelay;
-
- @TableField("JOB_FLAG_1")
- private String jobFlag1;
-
- @TableField(exist = false)
- private String alarmValue;
-
- @TableField(exist = false)
- private String alarmContentName;
-
- @TableField(exist = false)
- private Integer recordId;
-
- @Override
- public String toString() {
- return "AlarmJob{" +
- "id=" + id +
- ", jobcode=" + jobcode +
- ", jogType=" + jobType +
- ", wellCode=" + wellCode +
- ", devcode=" + devcode +
- ", createTime=" + createTime +
- ", jobStatus=" + jobStatus +
- ", getJobPerson=" + getJobPerson +
- ", getJobTime=" + getJobTime +
- ", firstState=" + firstState +
- ", firstStatePhotos=" + firstStatePhotos +
- ", confirmJobPerson=" + confirmJobPerson +
- ", confrimJobTime=" + confrimJobTime +
- ", handleJobPerson=" + handleJobPerson +
- ", handleJobTime=" + handleJobTime +
- ", handleMessage=" + handleMessage +
- ", handlePhotos=" + handlePhotos +
- ", flow=" + flow +
- ", recordId=" + recordId +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmRecord.java b/src/main/java/com/casic/entity/AlarmRecord.java
new file mode 100644
index 0000000..137d805
--- /dev/null
+++ b/src/main/java/com/casic/entity/AlarmRecord.java
@@ -0,0 +1,106 @@
+package com.casic.entity;
+
+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 com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *
+ *
+ *
+ *
+ * @author casic123
+ * @since 2019-05-17
+ */
+@Data
+@TableName("ALARM_ALARM_RECORD")
+public class AlarmRecord extends Model {
+
+
+ private static final long serialVersionUID = 1L;
+ /**
+ * 主键
+ */
+ @TableId(value = "DBID")
+ private Long dbid;
+ /**
+ * 设备编号
+ */
+ @TableField("DEVICE_CODE")
+ private String deviceCode;
+ /**
+ * 设备类型名称
+ */
+ @TableField("DEVICE_TYPE_NAME")
+ private String deviceTypeName;
+ /**
+ * 是否推送,默认0
+ */
+ @TableField("ISSEND")
+ private String issend;
+ /**
+ * 默认default
+ */
+ @TableField("ITEMNAME")
+ private String itemname;
+ /**
+ * 没有数值
+ */
+ @TableField("ITEMVALUE")
+ private String itemvalue;
+ /**
+ * 1
+ */
+ @TableField("MESSAGE")
+ private String message;
+ /**
+ * 0
+ */
+ @TableField("MESSAGE_STATUS")
+ private String messageStatus;
+
+
+ /**
+ * 0
+ */
+ @TableField("RECORDCODE")
+ private String recordcode;
+ /**
+ * 告警日期
+ */
+ @TableField("RECORDDATE")
+ private Date recorddate;
+ /**
+ * 工单编号
+ */
+ @TableField("DEVICE_ID")
+ private Long deviceId;
+
+ /**
+ * 删除标志,默认为1
+ */
+ private Integer active;
+
+ @Override
+ public String toString() {
+ return "AlarmRecord{" +
+ "dbid=" + dbid +
+ ", deviceCode='" + deviceCode + '\'' +
+ ", deviceTypeName='" + deviceTypeName + '\'' +
+ ", issend='" + issend + '\'' +
+ ", itemname='" + itemname + '\'' +
+ ", itemvalue='" + itemvalue + '\'' +
+ ", message='" + message + '\'' +
+ ", messageStatus='" + messageStatus + '\'' +
+ ", recordcode='" + recordcode + '\'' +
+ ", recorddate=" + recorddate +
+ ", deviceId=" + deviceId +
+ ", active=" + active +
+ '}';
+ }
+}
diff --git a/src/main/java/com/casic/entity/AlarmRecords.java b/src/main/java/com/casic/entity/AlarmRecords.java
deleted file mode 100644
index 88b0b26..0000000
--- a/src/main/java/com/casic/entity/AlarmRecords.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- *
- *
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_records")
-public class AlarmRecords extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- 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;
-
- @Override
- public String toString() {
- return "AlarmRecords{" +
- "id=" + id +
- ", deviceId=" + deviceId +
- ", devcode=" + devcode +
- ", wellCode=" + wellCode +
- ", alarmType=" + alarmType +
- ", alarmContent=" + alarmContent +
- ", alarmValue=" + alarmValue +
- ", alarmLevel=" + alarmLevel +
- ", alarmMessage=" + alarmMessage +
- ", alarmTime=" + alarmTime +
- ", status=" + status +
- ", jobId=" + jobId +
- ", jobStatus=" + jobStatus +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/ButaneData.java b/src/main/java/com/casic/entity/ButaneData.java
new file mode 100644
index 0000000..2e051be
--- /dev/null
+++ b/src/main/java/com/casic/entity/ButaneData.java
@@ -0,0 +1,28 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Builder;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@TableName("CASIC_BUTANE_INFO")
+@Builder
+public class ButaneData extends Model {
+
+ @TableId(value = "DBID")
+ private Long dbid;
+
+ private String devcode;
+
+ private String status;
+
+ private String descn;
+
+ private Date logtime;
+
+}
diff --git a/src/main/java/com/casic/entity/Device.java b/src/main/java/com/casic/entity/Device.java
new file mode 100644
index 0000000..0360e41
--- /dev/null
+++ b/src/main/java/com/casic/entity/Device.java
@@ -0,0 +1,27 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@TableName("ALARM_DEVICE")
+public class Device implements Serializable {
+ /**
+ * 设备基本信息表
+ */
+ private static final long serialVersionUID = -2023118078562324658L;
+ @TableId(value = "DBID")
+ private Long id;
+ @TableId(value = "DEVCODE")
+ private String devCode;
+ @TableId(value = "DEVNAME")
+ private String devName;
+ @TableId(value = "FACTORY")
+ private String factory;
+ @TableId(value = "SIMID")
+ private String simid; // SIM卡号
+
+}
diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/src/main/java/com/casic/dao/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index fde1818..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -1,36 +1,24 @@
package com.casic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmRecords;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.Device;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
@Mapper
-public interface AlarmRecordsMapper extends BaseMapper {
+public interface AlarmRecordsMapper extends BaseMapper {
+ @Select("SELECT DBID " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Long getDevcode(@Param("devcode") String devcode);
- @Select("SELECT JOB_ID AS \"jobId\"\n " +
- "FROM alarm_records\n " +
- "WHERE DEVCODE = #{devcode}\n " +
- "AND ALARM_CONTENT = #{MsgContent}\n " +
- "AND STATUS='1'\n " +
- "AND JOB_ID>0 ")
- String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='0'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND ALARM_CONTENT = #{MsgContent}\n" +
- " AND STATUS='1'")
- Integer updateOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='3'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND STATUS='1'")
- Integer clearAlarm(@Param("devcode") String devcode);
-
+ @Select("SELECT DBID as id, DEVCODE as devCode, DEVNAME as devName, FACTORY as factory, SIMID as simid " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Device getDevice(@Param("devcode") String devcode);
}
diff --git a/src/main/java/com/casic/dao/ButaneDataMapper.java b/src/main/java/com/casic/dao/ButaneDataMapper.java
new file mode 100644
index 0000000..632c7d2
--- /dev/null
+++ b/src/main/java/com/casic/dao/ButaneDataMapper.java
@@ -0,0 +1,12 @@
+package com.casic.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.entity.ButaneData;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface ButaneDataMapper extends BaseMapper {
+
+
+}
diff --git a/src/main/java/com/casic/dao/DataGasMapper.java b/src/main/java/com/casic/dao/DataGasMapper.java
deleted file mode 100644
index 8a064f2..0000000
--- a/src/main/java/com/casic/dao/DataGasMapper.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.DataGasDector;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-
-import java.util.List;
-import java.util.Map;
-
-@Mapper
-public interface DataGasMapper extends BaseMapper {
-
- @Select("SELECT level,high_value " +
- "FROM alarm_level " +
- "WHERE device_type=#{deviceType} ")
- List> getAlarmLevelList(@Param("deviceType") Long deviceType);
-
- @Select("SELECT devcode " +
- "FROM data_gas_dector " +
- "WHERE devcode=#{devcode} " +
- "AND (EXTRACT(epoch FROM CAST(now() AS TIMESTAMPTZ))-EXTRACT(epoch FROM CAST(logtime AS TIMESTAMPTZ)))/60.0 < ${minutes} "+
- "ORDER BY logtime DESC " +
- "LIMIT 1")
- String getLastData(@Param("minutes") String minutes,
- @Param("devcode") String devcode);
-
- @Select("SELECT alarm_content " +
- "FROM base_alarm_content_type " +
- "WHERE device_type=#{deviceType}")
- String getGasMsgContent(@Param("deviceType")Long deviceType);
-
-
-}
diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java
new file mode 100644
index 0000000..e9456c1
--- /dev/null
+++ b/src/main/java/com/casic/dao/DeviceDataMapper.java
@@ -0,0 +1,18 @@
+package com.casic.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface DeviceDataMapper {
+
+ List> getDevcodeByType(@Param("devciceType") Integer devciceType);
+
+ List getRecentData(@Param("dataDay") Integer dataDay);
+
+ int updateOnlineByDevs(@Param("dataSortList") List dataSortDevcodeList);
+
+}
diff --git a/src/main/java/com/casic/dao/DeviceMapper.java b/src/main/java/com/casic/dao/DeviceMapper.java
deleted file mode 100644
index 73b574e..0000000
--- a/src/main/java/com/casic/dao/DeviceMapper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.Device;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Map;
-
-@Mapper
-public interface DeviceMapper extends BaseMapper {
-
- Map getWellCode(@Param("devcode") String devcode);
-
-}
diff --git a/src/main/java/com/casic/dao/impl/AlarmJobDao.java b/src/main/java/com/casic/dao/impl/AlarmJobDao.java
deleted file mode 100644
index 5131821..0000000
--- a/src/main/java/com/casic/dao/impl/AlarmJobDao.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.casic.dao.impl;
-
-import com.alibaba.druid.util.StringUtils;
-import com.casic.dao.AlarmJobMapper;
-import com.casic.entity.AlarmJob;
-import org.springframework.stereotype.Component;
-import xyz.downgoon.snowflake.Snowflake;
-
-import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-@Component
-public class AlarmJobDao {
-
- private static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMdd");
-
- private static Snowflake snowflake = new Snowflake(0, 2);
-// private static final Sn
-
- @Resource
- private AlarmJobMapper alarmJobMapper;
-
- public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) {
- AlarmJob alarmJob = new AlarmJob();
- alarmJob.setId(snowflake.nextId());
- alarmJob.setDevcode(devCode);
- alarmJob.setWellCode(wellCode);
- alarmJob.setJobStatus("0");
- alarmJob.setCreateTime(new Date());
- alarmJob.setJobcode(this.produceJobCode(devTypeName));
- alarmJob.setJobType(jobType);
- alarmJobMapper.insert(alarmJob);
- return alarmJob;
- }
-
- /**
- * 前缀+日期+4位流水号
- *
- * @param devTypeName
- * @return
- */
- private String produceJobCode(String devTypeName) {
- String pre = devTypeName;
- String dataStr = sdf6.format(new Date());
- String fix = this.getJobCodeMaxSerial(pre + dataStr);
- return StringUtils.isEmpty(fix) ? pre + dataStr + String.format("%04d", Long.valueOf(StringUtils.isEmpty(fix)?"0":fix) + 1L) : pre + dataStr + "0001";
- }
-
-
- private String getJobCodeMaxSerial(String jobcode) {
- String MaxSerialJobCode = alarmJobMapper.getJobCodeMaxSerial(jobcode);
- String fix = "";
- if (null != MaxSerialJobCode && MaxSerialJobCode.length() > 4) {
- fix = MaxSerialJobCode.substring(MaxSerialJobCode.length() - 4);
- }
- return fix;
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmJob.java b/src/main/java/com/casic/entity/AlarmJob.java
deleted file mode 100644
index 8a0f764..0000000
--- a/src/main/java/com/casic/entity/AlarmJob.java
+++ /dev/null
@@ -1,165 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- *
- * 报警工单表
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_job")
-public class AlarmJob extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- private Long id;
- /**
- * 工单编号
- */
- @TableField("JOBCODE")
- private String jobcode;
- /**
- * 工单类型
- */
- @TableField("JOG_TYPE")
- private String jobType;
- /**
- * 井编号
- */
- @TableField("WELL_CODE")
- private String wellCode;
- /**
- * 设备编号
- */
- @TableField("DEVCODE")
- private String devcode;
- /**
- * 工单创建时间
- */
- @TableField("CREATE_TIME")
- private Date createTime;
- /**
- * 工单状态(0待处理,1待确认,2处理中,3完成)
- */
- @TableField("JOB_STATUS")
- private String jobStatus;
- /**
- * 接单人员
- */
- @TableField("GET_JOB_PERSON")
- private Long getJobPerson;
- /**
- * 接单时间
- */
- @TableField("GET_JOB_TIME")
- private Date getJobTime;
- /**
- * 应接单时间
- */
- @TableField("SHOULD_GET_TIME")
- private Date shouldGetTime;
- /**
- * 第一现场情况
- */
- @TableField("FIRST_STATE")
- private String firstState;
- /**
- * 第一现场照片
- */
- @TableField("FIRST_STATE_PHOTOS")
- private String firstStatePhotos;
- /**
- * 确认人员
- */
- @TableField("CONFIRM_JOB_PERSON")
- private Long confirmJobPerson;
- /**
- * 确认时间
- */
- @TableField("CONFRIM_JOB_TIME")
- private Date confrimJobTime;
- /**
- * 处理人员
- */
- @TableField("HANDLE_JOB_Person")
- private Long handleJobPerson;
- /**
- * 处理时间
- */
- @TableField("HANDLE_JOB_TIME")
- private Date handleJobTime;
- /**
- * 维护情况记录
- */
- @TableField("HANDLE_MESSAGE")
- private String handleMessage;
- /**
- * 维护图片
- */
- @TableField("HANDLE_PHOTOS")
- private String handlePhotos;
- /**
- * 工单流转记录
- */
- @TableField("FLOW")
- private String flow;
-
- @TableField("JOB_BELONG_TO")
- private Long jobBelongTo;
-
- @TableField("JOB_FLAG_DELAY")
- private String jobFlagDelay;
-
- @TableField("JOB_FLAG_1")
- private String jobFlag1;
-
- @TableField(exist = false)
- private String alarmValue;
-
- @TableField(exist = false)
- private String alarmContentName;
-
- @TableField(exist = false)
- private Integer recordId;
-
- @Override
- public String toString() {
- return "AlarmJob{" +
- "id=" + id +
- ", jobcode=" + jobcode +
- ", jogType=" + jobType +
- ", wellCode=" + wellCode +
- ", devcode=" + devcode +
- ", createTime=" + createTime +
- ", jobStatus=" + jobStatus +
- ", getJobPerson=" + getJobPerson +
- ", getJobTime=" + getJobTime +
- ", firstState=" + firstState +
- ", firstStatePhotos=" + firstStatePhotos +
- ", confirmJobPerson=" + confirmJobPerson +
- ", confrimJobTime=" + confrimJobTime +
- ", handleJobPerson=" + handleJobPerson +
- ", handleJobTime=" + handleJobTime +
- ", handleMessage=" + handleMessage +
- ", handlePhotos=" + handlePhotos +
- ", flow=" + flow +
- ", recordId=" + recordId +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmRecord.java b/src/main/java/com/casic/entity/AlarmRecord.java
new file mode 100644
index 0000000..137d805
--- /dev/null
+++ b/src/main/java/com/casic/entity/AlarmRecord.java
@@ -0,0 +1,106 @@
+package com.casic.entity;
+
+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 com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *
+ *
+ *
+ *
+ * @author casic123
+ * @since 2019-05-17
+ */
+@Data
+@TableName("ALARM_ALARM_RECORD")
+public class AlarmRecord extends Model {
+
+
+ private static final long serialVersionUID = 1L;
+ /**
+ * 主键
+ */
+ @TableId(value = "DBID")
+ private Long dbid;
+ /**
+ * 设备编号
+ */
+ @TableField("DEVICE_CODE")
+ private String deviceCode;
+ /**
+ * 设备类型名称
+ */
+ @TableField("DEVICE_TYPE_NAME")
+ private String deviceTypeName;
+ /**
+ * 是否推送,默认0
+ */
+ @TableField("ISSEND")
+ private String issend;
+ /**
+ * 默认default
+ */
+ @TableField("ITEMNAME")
+ private String itemname;
+ /**
+ * 没有数值
+ */
+ @TableField("ITEMVALUE")
+ private String itemvalue;
+ /**
+ * 1
+ */
+ @TableField("MESSAGE")
+ private String message;
+ /**
+ * 0
+ */
+ @TableField("MESSAGE_STATUS")
+ private String messageStatus;
+
+
+ /**
+ * 0
+ */
+ @TableField("RECORDCODE")
+ private String recordcode;
+ /**
+ * 告警日期
+ */
+ @TableField("RECORDDATE")
+ private Date recorddate;
+ /**
+ * 工单编号
+ */
+ @TableField("DEVICE_ID")
+ private Long deviceId;
+
+ /**
+ * 删除标志,默认为1
+ */
+ private Integer active;
+
+ @Override
+ public String toString() {
+ return "AlarmRecord{" +
+ "dbid=" + dbid +
+ ", deviceCode='" + deviceCode + '\'' +
+ ", deviceTypeName='" + deviceTypeName + '\'' +
+ ", issend='" + issend + '\'' +
+ ", itemname='" + itemname + '\'' +
+ ", itemvalue='" + itemvalue + '\'' +
+ ", message='" + message + '\'' +
+ ", messageStatus='" + messageStatus + '\'' +
+ ", recordcode='" + recordcode + '\'' +
+ ", recorddate=" + recorddate +
+ ", deviceId=" + deviceId +
+ ", active=" + active +
+ '}';
+ }
+}
diff --git a/src/main/java/com/casic/entity/AlarmRecords.java b/src/main/java/com/casic/entity/AlarmRecords.java
deleted file mode 100644
index 88b0b26..0000000
--- a/src/main/java/com/casic/entity/AlarmRecords.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- *
- *
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_records")
-public class AlarmRecords extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- 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;
-
- @Override
- public String toString() {
- return "AlarmRecords{" +
- "id=" + id +
- ", deviceId=" + deviceId +
- ", devcode=" + devcode +
- ", wellCode=" + wellCode +
- ", alarmType=" + alarmType +
- ", alarmContent=" + alarmContent +
- ", alarmValue=" + alarmValue +
- ", alarmLevel=" + alarmLevel +
- ", alarmMessage=" + alarmMessage +
- ", alarmTime=" + alarmTime +
- ", status=" + status +
- ", jobId=" + jobId +
- ", jobStatus=" + jobStatus +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/ButaneData.java b/src/main/java/com/casic/entity/ButaneData.java
new file mode 100644
index 0000000..2e051be
--- /dev/null
+++ b/src/main/java/com/casic/entity/ButaneData.java
@@ -0,0 +1,28 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Builder;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@TableName("CASIC_BUTANE_INFO")
+@Builder
+public class ButaneData extends Model {
+
+ @TableId(value = "DBID")
+ private Long dbid;
+
+ private String devcode;
+
+ private String status;
+
+ private String descn;
+
+ private Date logtime;
+
+}
diff --git a/src/main/java/com/casic/entity/Device.java b/src/main/java/com/casic/entity/Device.java
new file mode 100644
index 0000000..0360e41
--- /dev/null
+++ b/src/main/java/com/casic/entity/Device.java
@@ -0,0 +1,27 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@TableName("ALARM_DEVICE")
+public class Device implements Serializable {
+ /**
+ * 设备基本信息表
+ */
+ private static final long serialVersionUID = -2023118078562324658L;
+ @TableId(value = "DBID")
+ private Long id;
+ @TableId(value = "DEVCODE")
+ private String devCode;
+ @TableId(value = "DEVNAME")
+ private String devName;
+ @TableId(value = "FACTORY")
+ private String factory;
+ @TableId(value = "SIMID")
+ private String simid; // SIM卡号
+
+}
diff --git a/src/main/java/com/casic/model/HostData.java b/src/main/java/com/casic/model/HostData.java
new file mode 100644
index 0000000..40cefa7
--- /dev/null
+++ b/src/main/java/com/casic/model/HostData.java
@@ -0,0 +1,16 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class HostData {
+ private String model;
+ private String dev_id;
+ private String chip_id;
+ private String mfd_day;
+ private String sw_ver;
+ private String hw_ver;
+ private String duration;
+ private String d_ch_cnt;
+ private String a_ch_cnt;
+}
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/src/main/java/com/casic/dao/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index fde1818..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -1,36 +1,24 @@
package com.casic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmRecords;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.Device;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
@Mapper
-public interface AlarmRecordsMapper extends BaseMapper {
+public interface AlarmRecordsMapper extends BaseMapper {
+ @Select("SELECT DBID " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Long getDevcode(@Param("devcode") String devcode);
- @Select("SELECT JOB_ID AS \"jobId\"\n " +
- "FROM alarm_records\n " +
- "WHERE DEVCODE = #{devcode}\n " +
- "AND ALARM_CONTENT = #{MsgContent}\n " +
- "AND STATUS='1'\n " +
- "AND JOB_ID>0 ")
- String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='0'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND ALARM_CONTENT = #{MsgContent}\n" +
- " AND STATUS='1'")
- Integer updateOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='3'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND STATUS='1'")
- Integer clearAlarm(@Param("devcode") String devcode);
-
+ @Select("SELECT DBID as id, DEVCODE as devCode, DEVNAME as devName, FACTORY as factory, SIMID as simid " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Device getDevice(@Param("devcode") String devcode);
}
diff --git a/src/main/java/com/casic/dao/ButaneDataMapper.java b/src/main/java/com/casic/dao/ButaneDataMapper.java
new file mode 100644
index 0000000..632c7d2
--- /dev/null
+++ b/src/main/java/com/casic/dao/ButaneDataMapper.java
@@ -0,0 +1,12 @@
+package com.casic.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.entity.ButaneData;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface ButaneDataMapper extends BaseMapper {
+
+
+}
diff --git a/src/main/java/com/casic/dao/DataGasMapper.java b/src/main/java/com/casic/dao/DataGasMapper.java
deleted file mode 100644
index 8a064f2..0000000
--- a/src/main/java/com/casic/dao/DataGasMapper.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.DataGasDector;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-
-import java.util.List;
-import java.util.Map;
-
-@Mapper
-public interface DataGasMapper extends BaseMapper {
-
- @Select("SELECT level,high_value " +
- "FROM alarm_level " +
- "WHERE device_type=#{deviceType} ")
- List> getAlarmLevelList(@Param("deviceType") Long deviceType);
-
- @Select("SELECT devcode " +
- "FROM data_gas_dector " +
- "WHERE devcode=#{devcode} " +
- "AND (EXTRACT(epoch FROM CAST(now() AS TIMESTAMPTZ))-EXTRACT(epoch FROM CAST(logtime AS TIMESTAMPTZ)))/60.0 < ${minutes} "+
- "ORDER BY logtime DESC " +
- "LIMIT 1")
- String getLastData(@Param("minutes") String minutes,
- @Param("devcode") String devcode);
-
- @Select("SELECT alarm_content " +
- "FROM base_alarm_content_type " +
- "WHERE device_type=#{deviceType}")
- String getGasMsgContent(@Param("deviceType")Long deviceType);
-
-
-}
diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java
new file mode 100644
index 0000000..e9456c1
--- /dev/null
+++ b/src/main/java/com/casic/dao/DeviceDataMapper.java
@@ -0,0 +1,18 @@
+package com.casic.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface DeviceDataMapper {
+
+ List> getDevcodeByType(@Param("devciceType") Integer devciceType);
+
+ List getRecentData(@Param("dataDay") Integer dataDay);
+
+ int updateOnlineByDevs(@Param("dataSortList") List dataSortDevcodeList);
+
+}
diff --git a/src/main/java/com/casic/dao/DeviceMapper.java b/src/main/java/com/casic/dao/DeviceMapper.java
deleted file mode 100644
index 73b574e..0000000
--- a/src/main/java/com/casic/dao/DeviceMapper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.Device;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Map;
-
-@Mapper
-public interface DeviceMapper extends BaseMapper {
-
- Map getWellCode(@Param("devcode") String devcode);
-
-}
diff --git a/src/main/java/com/casic/dao/impl/AlarmJobDao.java b/src/main/java/com/casic/dao/impl/AlarmJobDao.java
deleted file mode 100644
index 5131821..0000000
--- a/src/main/java/com/casic/dao/impl/AlarmJobDao.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.casic.dao.impl;
-
-import com.alibaba.druid.util.StringUtils;
-import com.casic.dao.AlarmJobMapper;
-import com.casic.entity.AlarmJob;
-import org.springframework.stereotype.Component;
-import xyz.downgoon.snowflake.Snowflake;
-
-import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-@Component
-public class AlarmJobDao {
-
- private static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMdd");
-
- private static Snowflake snowflake = new Snowflake(0, 2);
-// private static final Sn
-
- @Resource
- private AlarmJobMapper alarmJobMapper;
-
- public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) {
- AlarmJob alarmJob = new AlarmJob();
- alarmJob.setId(snowflake.nextId());
- alarmJob.setDevcode(devCode);
- alarmJob.setWellCode(wellCode);
- alarmJob.setJobStatus("0");
- alarmJob.setCreateTime(new Date());
- alarmJob.setJobcode(this.produceJobCode(devTypeName));
- alarmJob.setJobType(jobType);
- alarmJobMapper.insert(alarmJob);
- return alarmJob;
- }
-
- /**
- * 前缀+日期+4位流水号
- *
- * @param devTypeName
- * @return
- */
- private String produceJobCode(String devTypeName) {
- String pre = devTypeName;
- String dataStr = sdf6.format(new Date());
- String fix = this.getJobCodeMaxSerial(pre + dataStr);
- return StringUtils.isEmpty(fix) ? pre + dataStr + String.format("%04d", Long.valueOf(StringUtils.isEmpty(fix)?"0":fix) + 1L) : pre + dataStr + "0001";
- }
-
-
- private String getJobCodeMaxSerial(String jobcode) {
- String MaxSerialJobCode = alarmJobMapper.getJobCodeMaxSerial(jobcode);
- String fix = "";
- if (null != MaxSerialJobCode && MaxSerialJobCode.length() > 4) {
- fix = MaxSerialJobCode.substring(MaxSerialJobCode.length() - 4);
- }
- return fix;
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmJob.java b/src/main/java/com/casic/entity/AlarmJob.java
deleted file mode 100644
index 8a0f764..0000000
--- a/src/main/java/com/casic/entity/AlarmJob.java
+++ /dev/null
@@ -1,165 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- *
- * 报警工单表
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_job")
-public class AlarmJob extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- private Long id;
- /**
- * 工单编号
- */
- @TableField("JOBCODE")
- private String jobcode;
- /**
- * 工单类型
- */
- @TableField("JOG_TYPE")
- private String jobType;
- /**
- * 井编号
- */
- @TableField("WELL_CODE")
- private String wellCode;
- /**
- * 设备编号
- */
- @TableField("DEVCODE")
- private String devcode;
- /**
- * 工单创建时间
- */
- @TableField("CREATE_TIME")
- private Date createTime;
- /**
- * 工单状态(0待处理,1待确认,2处理中,3完成)
- */
- @TableField("JOB_STATUS")
- private String jobStatus;
- /**
- * 接单人员
- */
- @TableField("GET_JOB_PERSON")
- private Long getJobPerson;
- /**
- * 接单时间
- */
- @TableField("GET_JOB_TIME")
- private Date getJobTime;
- /**
- * 应接单时间
- */
- @TableField("SHOULD_GET_TIME")
- private Date shouldGetTime;
- /**
- * 第一现场情况
- */
- @TableField("FIRST_STATE")
- private String firstState;
- /**
- * 第一现场照片
- */
- @TableField("FIRST_STATE_PHOTOS")
- private String firstStatePhotos;
- /**
- * 确认人员
- */
- @TableField("CONFIRM_JOB_PERSON")
- private Long confirmJobPerson;
- /**
- * 确认时间
- */
- @TableField("CONFRIM_JOB_TIME")
- private Date confrimJobTime;
- /**
- * 处理人员
- */
- @TableField("HANDLE_JOB_Person")
- private Long handleJobPerson;
- /**
- * 处理时间
- */
- @TableField("HANDLE_JOB_TIME")
- private Date handleJobTime;
- /**
- * 维护情况记录
- */
- @TableField("HANDLE_MESSAGE")
- private String handleMessage;
- /**
- * 维护图片
- */
- @TableField("HANDLE_PHOTOS")
- private String handlePhotos;
- /**
- * 工单流转记录
- */
- @TableField("FLOW")
- private String flow;
-
- @TableField("JOB_BELONG_TO")
- private Long jobBelongTo;
-
- @TableField("JOB_FLAG_DELAY")
- private String jobFlagDelay;
-
- @TableField("JOB_FLAG_1")
- private String jobFlag1;
-
- @TableField(exist = false)
- private String alarmValue;
-
- @TableField(exist = false)
- private String alarmContentName;
-
- @TableField(exist = false)
- private Integer recordId;
-
- @Override
- public String toString() {
- return "AlarmJob{" +
- "id=" + id +
- ", jobcode=" + jobcode +
- ", jogType=" + jobType +
- ", wellCode=" + wellCode +
- ", devcode=" + devcode +
- ", createTime=" + createTime +
- ", jobStatus=" + jobStatus +
- ", getJobPerson=" + getJobPerson +
- ", getJobTime=" + getJobTime +
- ", firstState=" + firstState +
- ", firstStatePhotos=" + firstStatePhotos +
- ", confirmJobPerson=" + confirmJobPerson +
- ", confrimJobTime=" + confrimJobTime +
- ", handleJobPerson=" + handleJobPerson +
- ", handleJobTime=" + handleJobTime +
- ", handleMessage=" + handleMessage +
- ", handlePhotos=" + handlePhotos +
- ", flow=" + flow +
- ", recordId=" + recordId +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmRecord.java b/src/main/java/com/casic/entity/AlarmRecord.java
new file mode 100644
index 0000000..137d805
--- /dev/null
+++ b/src/main/java/com/casic/entity/AlarmRecord.java
@@ -0,0 +1,106 @@
+package com.casic.entity;
+
+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 com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *
+ *
+ *
+ *
+ * @author casic123
+ * @since 2019-05-17
+ */
+@Data
+@TableName("ALARM_ALARM_RECORD")
+public class AlarmRecord extends Model {
+
+
+ private static final long serialVersionUID = 1L;
+ /**
+ * 主键
+ */
+ @TableId(value = "DBID")
+ private Long dbid;
+ /**
+ * 设备编号
+ */
+ @TableField("DEVICE_CODE")
+ private String deviceCode;
+ /**
+ * 设备类型名称
+ */
+ @TableField("DEVICE_TYPE_NAME")
+ private String deviceTypeName;
+ /**
+ * 是否推送,默认0
+ */
+ @TableField("ISSEND")
+ private String issend;
+ /**
+ * 默认default
+ */
+ @TableField("ITEMNAME")
+ private String itemname;
+ /**
+ * 没有数值
+ */
+ @TableField("ITEMVALUE")
+ private String itemvalue;
+ /**
+ * 1
+ */
+ @TableField("MESSAGE")
+ private String message;
+ /**
+ * 0
+ */
+ @TableField("MESSAGE_STATUS")
+ private String messageStatus;
+
+
+ /**
+ * 0
+ */
+ @TableField("RECORDCODE")
+ private String recordcode;
+ /**
+ * 告警日期
+ */
+ @TableField("RECORDDATE")
+ private Date recorddate;
+ /**
+ * 工单编号
+ */
+ @TableField("DEVICE_ID")
+ private Long deviceId;
+
+ /**
+ * 删除标志,默认为1
+ */
+ private Integer active;
+
+ @Override
+ public String toString() {
+ return "AlarmRecord{" +
+ "dbid=" + dbid +
+ ", deviceCode='" + deviceCode + '\'' +
+ ", deviceTypeName='" + deviceTypeName + '\'' +
+ ", issend='" + issend + '\'' +
+ ", itemname='" + itemname + '\'' +
+ ", itemvalue='" + itemvalue + '\'' +
+ ", message='" + message + '\'' +
+ ", messageStatus='" + messageStatus + '\'' +
+ ", recordcode='" + recordcode + '\'' +
+ ", recorddate=" + recorddate +
+ ", deviceId=" + deviceId +
+ ", active=" + active +
+ '}';
+ }
+}
diff --git a/src/main/java/com/casic/entity/AlarmRecords.java b/src/main/java/com/casic/entity/AlarmRecords.java
deleted file mode 100644
index 88b0b26..0000000
--- a/src/main/java/com/casic/entity/AlarmRecords.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- *
- *
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_records")
-public class AlarmRecords extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- 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;
-
- @Override
- public String toString() {
- return "AlarmRecords{" +
- "id=" + id +
- ", deviceId=" + deviceId +
- ", devcode=" + devcode +
- ", wellCode=" + wellCode +
- ", alarmType=" + alarmType +
- ", alarmContent=" + alarmContent +
- ", alarmValue=" + alarmValue +
- ", alarmLevel=" + alarmLevel +
- ", alarmMessage=" + alarmMessage +
- ", alarmTime=" + alarmTime +
- ", status=" + status +
- ", jobId=" + jobId +
- ", jobStatus=" + jobStatus +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/ButaneData.java b/src/main/java/com/casic/entity/ButaneData.java
new file mode 100644
index 0000000..2e051be
--- /dev/null
+++ b/src/main/java/com/casic/entity/ButaneData.java
@@ -0,0 +1,28 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Builder;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@TableName("CASIC_BUTANE_INFO")
+@Builder
+public class ButaneData extends Model {
+
+ @TableId(value = "DBID")
+ private Long dbid;
+
+ private String devcode;
+
+ private String status;
+
+ private String descn;
+
+ private Date logtime;
+
+}
diff --git a/src/main/java/com/casic/entity/Device.java b/src/main/java/com/casic/entity/Device.java
new file mode 100644
index 0000000..0360e41
--- /dev/null
+++ b/src/main/java/com/casic/entity/Device.java
@@ -0,0 +1,27 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@TableName("ALARM_DEVICE")
+public class Device implements Serializable {
+ /**
+ * 设备基本信息表
+ */
+ private static final long serialVersionUID = -2023118078562324658L;
+ @TableId(value = "DBID")
+ private Long id;
+ @TableId(value = "DEVCODE")
+ private String devCode;
+ @TableId(value = "DEVNAME")
+ private String devName;
+ @TableId(value = "FACTORY")
+ private String factory;
+ @TableId(value = "SIMID")
+ private String simid; // SIM卡号
+
+}
diff --git a/src/main/java/com/casic/model/HostData.java b/src/main/java/com/casic/model/HostData.java
new file mode 100644
index 0000000..40cefa7
--- /dev/null
+++ b/src/main/java/com/casic/model/HostData.java
@@ -0,0 +1,16 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class HostData {
+ private String model;
+ private String dev_id;
+ private String chip_id;
+ private String mfd_day;
+ private String sw_ver;
+ private String hw_ver;
+ private String duration;
+ private String d_ch_cnt;
+ private String a_ch_cnt;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReceiveDataParam.java b/src/main/java/com/casic/model/ReceiveDataParam.java
new file mode 100644
index 0000000..3a17d24
--- /dev/null
+++ b/src/main/java/com/casic/model/ReceiveDataParam.java
@@ -0,0 +1,20 @@
+package com.casic.model;
+
+import lombok.Data;
+
+import java.util.HashMap;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReceiveDataParam {
+ private String deviceType;
+ private String iotId;
+ private String requestId;
+ private Object checkFailedData;
+ private String productKey;
+ private String deviceName;
+ private HashMap items;
+}
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/src/main/java/com/casic/dao/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index fde1818..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -1,36 +1,24 @@
package com.casic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmRecords;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.Device;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
@Mapper
-public interface AlarmRecordsMapper extends BaseMapper {
+public interface AlarmRecordsMapper extends BaseMapper {
+ @Select("SELECT DBID " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Long getDevcode(@Param("devcode") String devcode);
- @Select("SELECT JOB_ID AS \"jobId\"\n " +
- "FROM alarm_records\n " +
- "WHERE DEVCODE = #{devcode}\n " +
- "AND ALARM_CONTENT = #{MsgContent}\n " +
- "AND STATUS='1'\n " +
- "AND JOB_ID>0 ")
- String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='0'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND ALARM_CONTENT = #{MsgContent}\n" +
- " AND STATUS='1'")
- Integer updateOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='3'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND STATUS='1'")
- Integer clearAlarm(@Param("devcode") String devcode);
-
+ @Select("SELECT DBID as id, DEVCODE as devCode, DEVNAME as devName, FACTORY as factory, SIMID as simid " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Device getDevice(@Param("devcode") String devcode);
}
diff --git a/src/main/java/com/casic/dao/ButaneDataMapper.java b/src/main/java/com/casic/dao/ButaneDataMapper.java
new file mode 100644
index 0000000..632c7d2
--- /dev/null
+++ b/src/main/java/com/casic/dao/ButaneDataMapper.java
@@ -0,0 +1,12 @@
+package com.casic.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.entity.ButaneData;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface ButaneDataMapper extends BaseMapper {
+
+
+}
diff --git a/src/main/java/com/casic/dao/DataGasMapper.java b/src/main/java/com/casic/dao/DataGasMapper.java
deleted file mode 100644
index 8a064f2..0000000
--- a/src/main/java/com/casic/dao/DataGasMapper.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.DataGasDector;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-
-import java.util.List;
-import java.util.Map;
-
-@Mapper
-public interface DataGasMapper extends BaseMapper {
-
- @Select("SELECT level,high_value " +
- "FROM alarm_level " +
- "WHERE device_type=#{deviceType} ")
- List> getAlarmLevelList(@Param("deviceType") Long deviceType);
-
- @Select("SELECT devcode " +
- "FROM data_gas_dector " +
- "WHERE devcode=#{devcode} " +
- "AND (EXTRACT(epoch FROM CAST(now() AS TIMESTAMPTZ))-EXTRACT(epoch FROM CAST(logtime AS TIMESTAMPTZ)))/60.0 < ${minutes} "+
- "ORDER BY logtime DESC " +
- "LIMIT 1")
- String getLastData(@Param("minutes") String minutes,
- @Param("devcode") String devcode);
-
- @Select("SELECT alarm_content " +
- "FROM base_alarm_content_type " +
- "WHERE device_type=#{deviceType}")
- String getGasMsgContent(@Param("deviceType")Long deviceType);
-
-
-}
diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java
new file mode 100644
index 0000000..e9456c1
--- /dev/null
+++ b/src/main/java/com/casic/dao/DeviceDataMapper.java
@@ -0,0 +1,18 @@
+package com.casic.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface DeviceDataMapper {
+
+ List> getDevcodeByType(@Param("devciceType") Integer devciceType);
+
+ List getRecentData(@Param("dataDay") Integer dataDay);
+
+ int updateOnlineByDevs(@Param("dataSortList") List dataSortDevcodeList);
+
+}
diff --git a/src/main/java/com/casic/dao/DeviceMapper.java b/src/main/java/com/casic/dao/DeviceMapper.java
deleted file mode 100644
index 73b574e..0000000
--- a/src/main/java/com/casic/dao/DeviceMapper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.Device;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Map;
-
-@Mapper
-public interface DeviceMapper extends BaseMapper {
-
- Map getWellCode(@Param("devcode") String devcode);
-
-}
diff --git a/src/main/java/com/casic/dao/impl/AlarmJobDao.java b/src/main/java/com/casic/dao/impl/AlarmJobDao.java
deleted file mode 100644
index 5131821..0000000
--- a/src/main/java/com/casic/dao/impl/AlarmJobDao.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.casic.dao.impl;
-
-import com.alibaba.druid.util.StringUtils;
-import com.casic.dao.AlarmJobMapper;
-import com.casic.entity.AlarmJob;
-import org.springframework.stereotype.Component;
-import xyz.downgoon.snowflake.Snowflake;
-
-import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-@Component
-public class AlarmJobDao {
-
- private static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMdd");
-
- private static Snowflake snowflake = new Snowflake(0, 2);
-// private static final Sn
-
- @Resource
- private AlarmJobMapper alarmJobMapper;
-
- public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) {
- AlarmJob alarmJob = new AlarmJob();
- alarmJob.setId(snowflake.nextId());
- alarmJob.setDevcode(devCode);
- alarmJob.setWellCode(wellCode);
- alarmJob.setJobStatus("0");
- alarmJob.setCreateTime(new Date());
- alarmJob.setJobcode(this.produceJobCode(devTypeName));
- alarmJob.setJobType(jobType);
- alarmJobMapper.insert(alarmJob);
- return alarmJob;
- }
-
- /**
- * 前缀+日期+4位流水号
- *
- * @param devTypeName
- * @return
- */
- private String produceJobCode(String devTypeName) {
- String pre = devTypeName;
- String dataStr = sdf6.format(new Date());
- String fix = this.getJobCodeMaxSerial(pre + dataStr);
- return StringUtils.isEmpty(fix) ? pre + dataStr + String.format("%04d", Long.valueOf(StringUtils.isEmpty(fix)?"0":fix) + 1L) : pre + dataStr + "0001";
- }
-
-
- private String getJobCodeMaxSerial(String jobcode) {
- String MaxSerialJobCode = alarmJobMapper.getJobCodeMaxSerial(jobcode);
- String fix = "";
- if (null != MaxSerialJobCode && MaxSerialJobCode.length() > 4) {
- fix = MaxSerialJobCode.substring(MaxSerialJobCode.length() - 4);
- }
- return fix;
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmJob.java b/src/main/java/com/casic/entity/AlarmJob.java
deleted file mode 100644
index 8a0f764..0000000
--- a/src/main/java/com/casic/entity/AlarmJob.java
+++ /dev/null
@@ -1,165 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- *
- * 报警工单表
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_job")
-public class AlarmJob extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- private Long id;
- /**
- * 工单编号
- */
- @TableField("JOBCODE")
- private String jobcode;
- /**
- * 工单类型
- */
- @TableField("JOG_TYPE")
- private String jobType;
- /**
- * 井编号
- */
- @TableField("WELL_CODE")
- private String wellCode;
- /**
- * 设备编号
- */
- @TableField("DEVCODE")
- private String devcode;
- /**
- * 工单创建时间
- */
- @TableField("CREATE_TIME")
- private Date createTime;
- /**
- * 工单状态(0待处理,1待确认,2处理中,3完成)
- */
- @TableField("JOB_STATUS")
- private String jobStatus;
- /**
- * 接单人员
- */
- @TableField("GET_JOB_PERSON")
- private Long getJobPerson;
- /**
- * 接单时间
- */
- @TableField("GET_JOB_TIME")
- private Date getJobTime;
- /**
- * 应接单时间
- */
- @TableField("SHOULD_GET_TIME")
- private Date shouldGetTime;
- /**
- * 第一现场情况
- */
- @TableField("FIRST_STATE")
- private String firstState;
- /**
- * 第一现场照片
- */
- @TableField("FIRST_STATE_PHOTOS")
- private String firstStatePhotos;
- /**
- * 确认人员
- */
- @TableField("CONFIRM_JOB_PERSON")
- private Long confirmJobPerson;
- /**
- * 确认时间
- */
- @TableField("CONFRIM_JOB_TIME")
- private Date confrimJobTime;
- /**
- * 处理人员
- */
- @TableField("HANDLE_JOB_Person")
- private Long handleJobPerson;
- /**
- * 处理时间
- */
- @TableField("HANDLE_JOB_TIME")
- private Date handleJobTime;
- /**
- * 维护情况记录
- */
- @TableField("HANDLE_MESSAGE")
- private String handleMessage;
- /**
- * 维护图片
- */
- @TableField("HANDLE_PHOTOS")
- private String handlePhotos;
- /**
- * 工单流转记录
- */
- @TableField("FLOW")
- private String flow;
-
- @TableField("JOB_BELONG_TO")
- private Long jobBelongTo;
-
- @TableField("JOB_FLAG_DELAY")
- private String jobFlagDelay;
-
- @TableField("JOB_FLAG_1")
- private String jobFlag1;
-
- @TableField(exist = false)
- private String alarmValue;
-
- @TableField(exist = false)
- private String alarmContentName;
-
- @TableField(exist = false)
- private Integer recordId;
-
- @Override
- public String toString() {
- return "AlarmJob{" +
- "id=" + id +
- ", jobcode=" + jobcode +
- ", jogType=" + jobType +
- ", wellCode=" + wellCode +
- ", devcode=" + devcode +
- ", createTime=" + createTime +
- ", jobStatus=" + jobStatus +
- ", getJobPerson=" + getJobPerson +
- ", getJobTime=" + getJobTime +
- ", firstState=" + firstState +
- ", firstStatePhotos=" + firstStatePhotos +
- ", confirmJobPerson=" + confirmJobPerson +
- ", confrimJobTime=" + confrimJobTime +
- ", handleJobPerson=" + handleJobPerson +
- ", handleJobTime=" + handleJobTime +
- ", handleMessage=" + handleMessage +
- ", handlePhotos=" + handlePhotos +
- ", flow=" + flow +
- ", recordId=" + recordId +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmRecord.java b/src/main/java/com/casic/entity/AlarmRecord.java
new file mode 100644
index 0000000..137d805
--- /dev/null
+++ b/src/main/java/com/casic/entity/AlarmRecord.java
@@ -0,0 +1,106 @@
+package com.casic.entity;
+
+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 com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *
+ *
+ *
+ *
+ * @author casic123
+ * @since 2019-05-17
+ */
+@Data
+@TableName("ALARM_ALARM_RECORD")
+public class AlarmRecord extends Model {
+
+
+ private static final long serialVersionUID = 1L;
+ /**
+ * 主键
+ */
+ @TableId(value = "DBID")
+ private Long dbid;
+ /**
+ * 设备编号
+ */
+ @TableField("DEVICE_CODE")
+ private String deviceCode;
+ /**
+ * 设备类型名称
+ */
+ @TableField("DEVICE_TYPE_NAME")
+ private String deviceTypeName;
+ /**
+ * 是否推送,默认0
+ */
+ @TableField("ISSEND")
+ private String issend;
+ /**
+ * 默认default
+ */
+ @TableField("ITEMNAME")
+ private String itemname;
+ /**
+ * 没有数值
+ */
+ @TableField("ITEMVALUE")
+ private String itemvalue;
+ /**
+ * 1
+ */
+ @TableField("MESSAGE")
+ private String message;
+ /**
+ * 0
+ */
+ @TableField("MESSAGE_STATUS")
+ private String messageStatus;
+
+
+ /**
+ * 0
+ */
+ @TableField("RECORDCODE")
+ private String recordcode;
+ /**
+ * 告警日期
+ */
+ @TableField("RECORDDATE")
+ private Date recorddate;
+ /**
+ * 工单编号
+ */
+ @TableField("DEVICE_ID")
+ private Long deviceId;
+
+ /**
+ * 删除标志,默认为1
+ */
+ private Integer active;
+
+ @Override
+ public String toString() {
+ return "AlarmRecord{" +
+ "dbid=" + dbid +
+ ", deviceCode='" + deviceCode + '\'' +
+ ", deviceTypeName='" + deviceTypeName + '\'' +
+ ", issend='" + issend + '\'' +
+ ", itemname='" + itemname + '\'' +
+ ", itemvalue='" + itemvalue + '\'' +
+ ", message='" + message + '\'' +
+ ", messageStatus='" + messageStatus + '\'' +
+ ", recordcode='" + recordcode + '\'' +
+ ", recorddate=" + recorddate +
+ ", deviceId=" + deviceId +
+ ", active=" + active +
+ '}';
+ }
+}
diff --git a/src/main/java/com/casic/entity/AlarmRecords.java b/src/main/java/com/casic/entity/AlarmRecords.java
deleted file mode 100644
index 88b0b26..0000000
--- a/src/main/java/com/casic/entity/AlarmRecords.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- *
- *
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_records")
-public class AlarmRecords extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- 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;
-
- @Override
- public String toString() {
- return "AlarmRecords{" +
- "id=" + id +
- ", deviceId=" + deviceId +
- ", devcode=" + devcode +
- ", wellCode=" + wellCode +
- ", alarmType=" + alarmType +
- ", alarmContent=" + alarmContent +
- ", alarmValue=" + alarmValue +
- ", alarmLevel=" + alarmLevel +
- ", alarmMessage=" + alarmMessage +
- ", alarmTime=" + alarmTime +
- ", status=" + status +
- ", jobId=" + jobId +
- ", jobStatus=" + jobStatus +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/ButaneData.java b/src/main/java/com/casic/entity/ButaneData.java
new file mode 100644
index 0000000..2e051be
--- /dev/null
+++ b/src/main/java/com/casic/entity/ButaneData.java
@@ -0,0 +1,28 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Builder;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@TableName("CASIC_BUTANE_INFO")
+@Builder
+public class ButaneData extends Model {
+
+ @TableId(value = "DBID")
+ private Long dbid;
+
+ private String devcode;
+
+ private String status;
+
+ private String descn;
+
+ private Date logtime;
+
+}
diff --git a/src/main/java/com/casic/entity/Device.java b/src/main/java/com/casic/entity/Device.java
new file mode 100644
index 0000000..0360e41
--- /dev/null
+++ b/src/main/java/com/casic/entity/Device.java
@@ -0,0 +1,27 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@TableName("ALARM_DEVICE")
+public class Device implements Serializable {
+ /**
+ * 设备基本信息表
+ */
+ private static final long serialVersionUID = -2023118078562324658L;
+ @TableId(value = "DBID")
+ private Long id;
+ @TableId(value = "DEVCODE")
+ private String devCode;
+ @TableId(value = "DEVNAME")
+ private String devName;
+ @TableId(value = "FACTORY")
+ private String factory;
+ @TableId(value = "SIMID")
+ private String simid; // SIM卡号
+
+}
diff --git a/src/main/java/com/casic/model/HostData.java b/src/main/java/com/casic/model/HostData.java
new file mode 100644
index 0000000..40cefa7
--- /dev/null
+++ b/src/main/java/com/casic/model/HostData.java
@@ -0,0 +1,16 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class HostData {
+ private String model;
+ private String dev_id;
+ private String chip_id;
+ private String mfd_day;
+ private String sw_ver;
+ private String hw_ver;
+ private String duration;
+ private String d_ch_cnt;
+ private String a_ch_cnt;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReceiveDataParam.java b/src/main/java/com/casic/model/ReceiveDataParam.java
new file mode 100644
index 0000000..3a17d24
--- /dev/null
+++ b/src/main/java/com/casic/model/ReceiveDataParam.java
@@ -0,0 +1,20 @@
+package com.casic.model;
+
+import lombok.Data;
+
+import java.util.HashMap;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReceiveDataParam {
+ private String deviceType;
+ private String iotId;
+ private String requestId;
+ private Object checkFailedData;
+ private String productKey;
+ private String deviceName;
+ private HashMap items;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReportUpdataParam.java b/src/main/java/com/casic/model/ReportUpdataParam.java
new file mode 100644
index 0000000..20c2ca9
--- /dev/null
+++ b/src/main/java/com/casic/model/ReportUpdataParam.java
@@ -0,0 +1,23 @@
+package com.casic.model;
+
+import lombok.Data;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReportUpdataParam {
+ private String msg_type;
+ private String event_change;
+ private String error_val;
+ private String ch_cnt;
+ private String erro_cnt;
+ private String alarm_low_cnt;
+ private String alarm_high_cnt;
+ private String offline_cnt;
+ private String rtd_val;
+ private String adc_val;
+ private String status_val;
+ private String time;
+}
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/src/main/java/com/casic/dao/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index fde1818..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -1,36 +1,24 @@
package com.casic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmRecords;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.Device;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
@Mapper
-public interface AlarmRecordsMapper extends BaseMapper {
+public interface AlarmRecordsMapper extends BaseMapper {
+ @Select("SELECT DBID " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Long getDevcode(@Param("devcode") String devcode);
- @Select("SELECT JOB_ID AS \"jobId\"\n " +
- "FROM alarm_records\n " +
- "WHERE DEVCODE = #{devcode}\n " +
- "AND ALARM_CONTENT = #{MsgContent}\n " +
- "AND STATUS='1'\n " +
- "AND JOB_ID>0 ")
- String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='0'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND ALARM_CONTENT = #{MsgContent}\n" +
- " AND STATUS='1'")
- Integer updateOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='3'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND STATUS='1'")
- Integer clearAlarm(@Param("devcode") String devcode);
-
+ @Select("SELECT DBID as id, DEVCODE as devCode, DEVNAME as devName, FACTORY as factory, SIMID as simid " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Device getDevice(@Param("devcode") String devcode);
}
diff --git a/src/main/java/com/casic/dao/ButaneDataMapper.java b/src/main/java/com/casic/dao/ButaneDataMapper.java
new file mode 100644
index 0000000..632c7d2
--- /dev/null
+++ b/src/main/java/com/casic/dao/ButaneDataMapper.java
@@ -0,0 +1,12 @@
+package com.casic.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.entity.ButaneData;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface ButaneDataMapper extends BaseMapper {
+
+
+}
diff --git a/src/main/java/com/casic/dao/DataGasMapper.java b/src/main/java/com/casic/dao/DataGasMapper.java
deleted file mode 100644
index 8a064f2..0000000
--- a/src/main/java/com/casic/dao/DataGasMapper.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.DataGasDector;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-
-import java.util.List;
-import java.util.Map;
-
-@Mapper
-public interface DataGasMapper extends BaseMapper {
-
- @Select("SELECT level,high_value " +
- "FROM alarm_level " +
- "WHERE device_type=#{deviceType} ")
- List> getAlarmLevelList(@Param("deviceType") Long deviceType);
-
- @Select("SELECT devcode " +
- "FROM data_gas_dector " +
- "WHERE devcode=#{devcode} " +
- "AND (EXTRACT(epoch FROM CAST(now() AS TIMESTAMPTZ))-EXTRACT(epoch FROM CAST(logtime AS TIMESTAMPTZ)))/60.0 < ${minutes} "+
- "ORDER BY logtime DESC " +
- "LIMIT 1")
- String getLastData(@Param("minutes") String minutes,
- @Param("devcode") String devcode);
-
- @Select("SELECT alarm_content " +
- "FROM base_alarm_content_type " +
- "WHERE device_type=#{deviceType}")
- String getGasMsgContent(@Param("deviceType")Long deviceType);
-
-
-}
diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java
new file mode 100644
index 0000000..e9456c1
--- /dev/null
+++ b/src/main/java/com/casic/dao/DeviceDataMapper.java
@@ -0,0 +1,18 @@
+package com.casic.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface DeviceDataMapper {
+
+ List> getDevcodeByType(@Param("devciceType") Integer devciceType);
+
+ List getRecentData(@Param("dataDay") Integer dataDay);
+
+ int updateOnlineByDevs(@Param("dataSortList") List dataSortDevcodeList);
+
+}
diff --git a/src/main/java/com/casic/dao/DeviceMapper.java b/src/main/java/com/casic/dao/DeviceMapper.java
deleted file mode 100644
index 73b574e..0000000
--- a/src/main/java/com/casic/dao/DeviceMapper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.Device;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Map;
-
-@Mapper
-public interface DeviceMapper extends BaseMapper {
-
- Map getWellCode(@Param("devcode") String devcode);
-
-}
diff --git a/src/main/java/com/casic/dao/impl/AlarmJobDao.java b/src/main/java/com/casic/dao/impl/AlarmJobDao.java
deleted file mode 100644
index 5131821..0000000
--- a/src/main/java/com/casic/dao/impl/AlarmJobDao.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.casic.dao.impl;
-
-import com.alibaba.druid.util.StringUtils;
-import com.casic.dao.AlarmJobMapper;
-import com.casic.entity.AlarmJob;
-import org.springframework.stereotype.Component;
-import xyz.downgoon.snowflake.Snowflake;
-
-import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-@Component
-public class AlarmJobDao {
-
- private static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMdd");
-
- private static Snowflake snowflake = new Snowflake(0, 2);
-// private static final Sn
-
- @Resource
- private AlarmJobMapper alarmJobMapper;
-
- public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) {
- AlarmJob alarmJob = new AlarmJob();
- alarmJob.setId(snowflake.nextId());
- alarmJob.setDevcode(devCode);
- alarmJob.setWellCode(wellCode);
- alarmJob.setJobStatus("0");
- alarmJob.setCreateTime(new Date());
- alarmJob.setJobcode(this.produceJobCode(devTypeName));
- alarmJob.setJobType(jobType);
- alarmJobMapper.insert(alarmJob);
- return alarmJob;
- }
-
- /**
- * 前缀+日期+4位流水号
- *
- * @param devTypeName
- * @return
- */
- private String produceJobCode(String devTypeName) {
- String pre = devTypeName;
- String dataStr = sdf6.format(new Date());
- String fix = this.getJobCodeMaxSerial(pre + dataStr);
- return StringUtils.isEmpty(fix) ? pre + dataStr + String.format("%04d", Long.valueOf(StringUtils.isEmpty(fix)?"0":fix) + 1L) : pre + dataStr + "0001";
- }
-
-
- private String getJobCodeMaxSerial(String jobcode) {
- String MaxSerialJobCode = alarmJobMapper.getJobCodeMaxSerial(jobcode);
- String fix = "";
- if (null != MaxSerialJobCode && MaxSerialJobCode.length() > 4) {
- fix = MaxSerialJobCode.substring(MaxSerialJobCode.length() - 4);
- }
- return fix;
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmJob.java b/src/main/java/com/casic/entity/AlarmJob.java
deleted file mode 100644
index 8a0f764..0000000
--- a/src/main/java/com/casic/entity/AlarmJob.java
+++ /dev/null
@@ -1,165 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- *
- * 报警工单表
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_job")
-public class AlarmJob extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- private Long id;
- /**
- * 工单编号
- */
- @TableField("JOBCODE")
- private String jobcode;
- /**
- * 工单类型
- */
- @TableField("JOG_TYPE")
- private String jobType;
- /**
- * 井编号
- */
- @TableField("WELL_CODE")
- private String wellCode;
- /**
- * 设备编号
- */
- @TableField("DEVCODE")
- private String devcode;
- /**
- * 工单创建时间
- */
- @TableField("CREATE_TIME")
- private Date createTime;
- /**
- * 工单状态(0待处理,1待确认,2处理中,3完成)
- */
- @TableField("JOB_STATUS")
- private String jobStatus;
- /**
- * 接单人员
- */
- @TableField("GET_JOB_PERSON")
- private Long getJobPerson;
- /**
- * 接单时间
- */
- @TableField("GET_JOB_TIME")
- private Date getJobTime;
- /**
- * 应接单时间
- */
- @TableField("SHOULD_GET_TIME")
- private Date shouldGetTime;
- /**
- * 第一现场情况
- */
- @TableField("FIRST_STATE")
- private String firstState;
- /**
- * 第一现场照片
- */
- @TableField("FIRST_STATE_PHOTOS")
- private String firstStatePhotos;
- /**
- * 确认人员
- */
- @TableField("CONFIRM_JOB_PERSON")
- private Long confirmJobPerson;
- /**
- * 确认时间
- */
- @TableField("CONFRIM_JOB_TIME")
- private Date confrimJobTime;
- /**
- * 处理人员
- */
- @TableField("HANDLE_JOB_Person")
- private Long handleJobPerson;
- /**
- * 处理时间
- */
- @TableField("HANDLE_JOB_TIME")
- private Date handleJobTime;
- /**
- * 维护情况记录
- */
- @TableField("HANDLE_MESSAGE")
- private String handleMessage;
- /**
- * 维护图片
- */
- @TableField("HANDLE_PHOTOS")
- private String handlePhotos;
- /**
- * 工单流转记录
- */
- @TableField("FLOW")
- private String flow;
-
- @TableField("JOB_BELONG_TO")
- private Long jobBelongTo;
-
- @TableField("JOB_FLAG_DELAY")
- private String jobFlagDelay;
-
- @TableField("JOB_FLAG_1")
- private String jobFlag1;
-
- @TableField(exist = false)
- private String alarmValue;
-
- @TableField(exist = false)
- private String alarmContentName;
-
- @TableField(exist = false)
- private Integer recordId;
-
- @Override
- public String toString() {
- return "AlarmJob{" +
- "id=" + id +
- ", jobcode=" + jobcode +
- ", jogType=" + jobType +
- ", wellCode=" + wellCode +
- ", devcode=" + devcode +
- ", createTime=" + createTime +
- ", jobStatus=" + jobStatus +
- ", getJobPerson=" + getJobPerson +
- ", getJobTime=" + getJobTime +
- ", firstState=" + firstState +
- ", firstStatePhotos=" + firstStatePhotos +
- ", confirmJobPerson=" + confirmJobPerson +
- ", confrimJobTime=" + confrimJobTime +
- ", handleJobPerson=" + handleJobPerson +
- ", handleJobTime=" + handleJobTime +
- ", handleMessage=" + handleMessage +
- ", handlePhotos=" + handlePhotos +
- ", flow=" + flow +
- ", recordId=" + recordId +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmRecord.java b/src/main/java/com/casic/entity/AlarmRecord.java
new file mode 100644
index 0000000..137d805
--- /dev/null
+++ b/src/main/java/com/casic/entity/AlarmRecord.java
@@ -0,0 +1,106 @@
+package com.casic.entity;
+
+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 com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *
+ *
+ *
+ *
+ * @author casic123
+ * @since 2019-05-17
+ */
+@Data
+@TableName("ALARM_ALARM_RECORD")
+public class AlarmRecord extends Model {
+
+
+ private static final long serialVersionUID = 1L;
+ /**
+ * 主键
+ */
+ @TableId(value = "DBID")
+ private Long dbid;
+ /**
+ * 设备编号
+ */
+ @TableField("DEVICE_CODE")
+ private String deviceCode;
+ /**
+ * 设备类型名称
+ */
+ @TableField("DEVICE_TYPE_NAME")
+ private String deviceTypeName;
+ /**
+ * 是否推送,默认0
+ */
+ @TableField("ISSEND")
+ private String issend;
+ /**
+ * 默认default
+ */
+ @TableField("ITEMNAME")
+ private String itemname;
+ /**
+ * 没有数值
+ */
+ @TableField("ITEMVALUE")
+ private String itemvalue;
+ /**
+ * 1
+ */
+ @TableField("MESSAGE")
+ private String message;
+ /**
+ * 0
+ */
+ @TableField("MESSAGE_STATUS")
+ private String messageStatus;
+
+
+ /**
+ * 0
+ */
+ @TableField("RECORDCODE")
+ private String recordcode;
+ /**
+ * 告警日期
+ */
+ @TableField("RECORDDATE")
+ private Date recorddate;
+ /**
+ * 工单编号
+ */
+ @TableField("DEVICE_ID")
+ private Long deviceId;
+
+ /**
+ * 删除标志,默认为1
+ */
+ private Integer active;
+
+ @Override
+ public String toString() {
+ return "AlarmRecord{" +
+ "dbid=" + dbid +
+ ", deviceCode='" + deviceCode + '\'' +
+ ", deviceTypeName='" + deviceTypeName + '\'' +
+ ", issend='" + issend + '\'' +
+ ", itemname='" + itemname + '\'' +
+ ", itemvalue='" + itemvalue + '\'' +
+ ", message='" + message + '\'' +
+ ", messageStatus='" + messageStatus + '\'' +
+ ", recordcode='" + recordcode + '\'' +
+ ", recorddate=" + recorddate +
+ ", deviceId=" + deviceId +
+ ", active=" + active +
+ '}';
+ }
+}
diff --git a/src/main/java/com/casic/entity/AlarmRecords.java b/src/main/java/com/casic/entity/AlarmRecords.java
deleted file mode 100644
index 88b0b26..0000000
--- a/src/main/java/com/casic/entity/AlarmRecords.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- *
- *
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_records")
-public class AlarmRecords extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- 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;
-
- @Override
- public String toString() {
- return "AlarmRecords{" +
- "id=" + id +
- ", deviceId=" + deviceId +
- ", devcode=" + devcode +
- ", wellCode=" + wellCode +
- ", alarmType=" + alarmType +
- ", alarmContent=" + alarmContent +
- ", alarmValue=" + alarmValue +
- ", alarmLevel=" + alarmLevel +
- ", alarmMessage=" + alarmMessage +
- ", alarmTime=" + alarmTime +
- ", status=" + status +
- ", jobId=" + jobId +
- ", jobStatus=" + jobStatus +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/ButaneData.java b/src/main/java/com/casic/entity/ButaneData.java
new file mode 100644
index 0000000..2e051be
--- /dev/null
+++ b/src/main/java/com/casic/entity/ButaneData.java
@@ -0,0 +1,28 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Builder;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@TableName("CASIC_BUTANE_INFO")
+@Builder
+public class ButaneData extends Model {
+
+ @TableId(value = "DBID")
+ private Long dbid;
+
+ private String devcode;
+
+ private String status;
+
+ private String descn;
+
+ private Date logtime;
+
+}
diff --git a/src/main/java/com/casic/entity/Device.java b/src/main/java/com/casic/entity/Device.java
new file mode 100644
index 0000000..0360e41
--- /dev/null
+++ b/src/main/java/com/casic/entity/Device.java
@@ -0,0 +1,27 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@TableName("ALARM_DEVICE")
+public class Device implements Serializable {
+ /**
+ * 设备基本信息表
+ */
+ private static final long serialVersionUID = -2023118078562324658L;
+ @TableId(value = "DBID")
+ private Long id;
+ @TableId(value = "DEVCODE")
+ private String devCode;
+ @TableId(value = "DEVNAME")
+ private String devName;
+ @TableId(value = "FACTORY")
+ private String factory;
+ @TableId(value = "SIMID")
+ private String simid; // SIM卡号
+
+}
diff --git a/src/main/java/com/casic/model/HostData.java b/src/main/java/com/casic/model/HostData.java
new file mode 100644
index 0000000..40cefa7
--- /dev/null
+++ b/src/main/java/com/casic/model/HostData.java
@@ -0,0 +1,16 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class HostData {
+ private String model;
+ private String dev_id;
+ private String chip_id;
+ private String mfd_day;
+ private String sw_ver;
+ private String hw_ver;
+ private String duration;
+ private String d_ch_cnt;
+ private String a_ch_cnt;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReceiveDataParam.java b/src/main/java/com/casic/model/ReceiveDataParam.java
new file mode 100644
index 0000000..3a17d24
--- /dev/null
+++ b/src/main/java/com/casic/model/ReceiveDataParam.java
@@ -0,0 +1,20 @@
+package com.casic.model;
+
+import lombok.Data;
+
+import java.util.HashMap;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReceiveDataParam {
+ private String deviceType;
+ private String iotId;
+ private String requestId;
+ private Object checkFailedData;
+ private String productKey;
+ private String deviceName;
+ private HashMap items;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReportUpdataParam.java b/src/main/java/com/casic/model/ReportUpdataParam.java
new file mode 100644
index 0000000..20c2ca9
--- /dev/null
+++ b/src/main/java/com/casic/model/ReportUpdataParam.java
@@ -0,0 +1,23 @@
+package com.casic.model;
+
+import lombok.Data;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReportUpdataParam {
+ private String msg_type;
+ private String event_change;
+ private String error_val;
+ private String ch_cnt;
+ private String erro_cnt;
+ private String alarm_low_cnt;
+ private String alarm_high_cnt;
+ private String offline_cnt;
+ private String rtd_val;
+ private String adc_val;
+ private String status_val;
+ private String time;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/WirelessData.java b/src/main/java/com/casic/model/WirelessData.java
new file mode 100644
index 0000000..b062c13
--- /dev/null
+++ b/src/main/java/com/casic/model/WirelessData.java
@@ -0,0 +1,19 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class WirelessData {
+ private String model;
+ private String IMEI;
+ private String ICCID;
+ private String sw_ver;
+ private String hw_ver;
+ private String ch_cnt;
+ private String heartbeat_inv;
+ private String up_pcnt;
+ private String up_pcnt_inv;
+ private String csq;
+}
+
+
diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/src/main/java/com/casic/dao/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index fde1818..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -1,36 +1,24 @@
package com.casic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmRecords;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.Device;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
@Mapper
-public interface AlarmRecordsMapper extends BaseMapper {
+public interface AlarmRecordsMapper extends BaseMapper {
+ @Select("SELECT DBID " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Long getDevcode(@Param("devcode") String devcode);
- @Select("SELECT JOB_ID AS \"jobId\"\n " +
- "FROM alarm_records\n " +
- "WHERE DEVCODE = #{devcode}\n " +
- "AND ALARM_CONTENT = #{MsgContent}\n " +
- "AND STATUS='1'\n " +
- "AND JOB_ID>0 ")
- String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='0'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND ALARM_CONTENT = #{MsgContent}\n" +
- " AND STATUS='1'")
- Integer updateOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='3'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND STATUS='1'")
- Integer clearAlarm(@Param("devcode") String devcode);
-
+ @Select("SELECT DBID as id, DEVCODE as devCode, DEVNAME as devName, FACTORY as factory, SIMID as simid " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Device getDevice(@Param("devcode") String devcode);
}
diff --git a/src/main/java/com/casic/dao/ButaneDataMapper.java b/src/main/java/com/casic/dao/ButaneDataMapper.java
new file mode 100644
index 0000000..632c7d2
--- /dev/null
+++ b/src/main/java/com/casic/dao/ButaneDataMapper.java
@@ -0,0 +1,12 @@
+package com.casic.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.entity.ButaneData;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface ButaneDataMapper extends BaseMapper {
+
+
+}
diff --git a/src/main/java/com/casic/dao/DataGasMapper.java b/src/main/java/com/casic/dao/DataGasMapper.java
deleted file mode 100644
index 8a064f2..0000000
--- a/src/main/java/com/casic/dao/DataGasMapper.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.DataGasDector;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-
-import java.util.List;
-import java.util.Map;
-
-@Mapper
-public interface DataGasMapper extends BaseMapper {
-
- @Select("SELECT level,high_value " +
- "FROM alarm_level " +
- "WHERE device_type=#{deviceType} ")
- List> getAlarmLevelList(@Param("deviceType") Long deviceType);
-
- @Select("SELECT devcode " +
- "FROM data_gas_dector " +
- "WHERE devcode=#{devcode} " +
- "AND (EXTRACT(epoch FROM CAST(now() AS TIMESTAMPTZ))-EXTRACT(epoch FROM CAST(logtime AS TIMESTAMPTZ)))/60.0 < ${minutes} "+
- "ORDER BY logtime DESC " +
- "LIMIT 1")
- String getLastData(@Param("minutes") String minutes,
- @Param("devcode") String devcode);
-
- @Select("SELECT alarm_content " +
- "FROM base_alarm_content_type " +
- "WHERE device_type=#{deviceType}")
- String getGasMsgContent(@Param("deviceType")Long deviceType);
-
-
-}
diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java
new file mode 100644
index 0000000..e9456c1
--- /dev/null
+++ b/src/main/java/com/casic/dao/DeviceDataMapper.java
@@ -0,0 +1,18 @@
+package com.casic.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface DeviceDataMapper {
+
+ List> getDevcodeByType(@Param("devciceType") Integer devciceType);
+
+ List getRecentData(@Param("dataDay") Integer dataDay);
+
+ int updateOnlineByDevs(@Param("dataSortList") List dataSortDevcodeList);
+
+}
diff --git a/src/main/java/com/casic/dao/DeviceMapper.java b/src/main/java/com/casic/dao/DeviceMapper.java
deleted file mode 100644
index 73b574e..0000000
--- a/src/main/java/com/casic/dao/DeviceMapper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.Device;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Map;
-
-@Mapper
-public interface DeviceMapper extends BaseMapper {
-
- Map getWellCode(@Param("devcode") String devcode);
-
-}
diff --git a/src/main/java/com/casic/dao/impl/AlarmJobDao.java b/src/main/java/com/casic/dao/impl/AlarmJobDao.java
deleted file mode 100644
index 5131821..0000000
--- a/src/main/java/com/casic/dao/impl/AlarmJobDao.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.casic.dao.impl;
-
-import com.alibaba.druid.util.StringUtils;
-import com.casic.dao.AlarmJobMapper;
-import com.casic.entity.AlarmJob;
-import org.springframework.stereotype.Component;
-import xyz.downgoon.snowflake.Snowflake;
-
-import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-@Component
-public class AlarmJobDao {
-
- private static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMdd");
-
- private static Snowflake snowflake = new Snowflake(0, 2);
-// private static final Sn
-
- @Resource
- private AlarmJobMapper alarmJobMapper;
-
- public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) {
- AlarmJob alarmJob = new AlarmJob();
- alarmJob.setId(snowflake.nextId());
- alarmJob.setDevcode(devCode);
- alarmJob.setWellCode(wellCode);
- alarmJob.setJobStatus("0");
- alarmJob.setCreateTime(new Date());
- alarmJob.setJobcode(this.produceJobCode(devTypeName));
- alarmJob.setJobType(jobType);
- alarmJobMapper.insert(alarmJob);
- return alarmJob;
- }
-
- /**
- * 前缀+日期+4位流水号
- *
- * @param devTypeName
- * @return
- */
- private String produceJobCode(String devTypeName) {
- String pre = devTypeName;
- String dataStr = sdf6.format(new Date());
- String fix = this.getJobCodeMaxSerial(pre + dataStr);
- return StringUtils.isEmpty(fix) ? pre + dataStr + String.format("%04d", Long.valueOf(StringUtils.isEmpty(fix)?"0":fix) + 1L) : pre + dataStr + "0001";
- }
-
-
- private String getJobCodeMaxSerial(String jobcode) {
- String MaxSerialJobCode = alarmJobMapper.getJobCodeMaxSerial(jobcode);
- String fix = "";
- if (null != MaxSerialJobCode && MaxSerialJobCode.length() > 4) {
- fix = MaxSerialJobCode.substring(MaxSerialJobCode.length() - 4);
- }
- return fix;
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmJob.java b/src/main/java/com/casic/entity/AlarmJob.java
deleted file mode 100644
index 8a0f764..0000000
--- a/src/main/java/com/casic/entity/AlarmJob.java
+++ /dev/null
@@ -1,165 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- *
- * 报警工单表
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_job")
-public class AlarmJob extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- private Long id;
- /**
- * 工单编号
- */
- @TableField("JOBCODE")
- private String jobcode;
- /**
- * 工单类型
- */
- @TableField("JOG_TYPE")
- private String jobType;
- /**
- * 井编号
- */
- @TableField("WELL_CODE")
- private String wellCode;
- /**
- * 设备编号
- */
- @TableField("DEVCODE")
- private String devcode;
- /**
- * 工单创建时间
- */
- @TableField("CREATE_TIME")
- private Date createTime;
- /**
- * 工单状态(0待处理,1待确认,2处理中,3完成)
- */
- @TableField("JOB_STATUS")
- private String jobStatus;
- /**
- * 接单人员
- */
- @TableField("GET_JOB_PERSON")
- private Long getJobPerson;
- /**
- * 接单时间
- */
- @TableField("GET_JOB_TIME")
- private Date getJobTime;
- /**
- * 应接单时间
- */
- @TableField("SHOULD_GET_TIME")
- private Date shouldGetTime;
- /**
- * 第一现场情况
- */
- @TableField("FIRST_STATE")
- private String firstState;
- /**
- * 第一现场照片
- */
- @TableField("FIRST_STATE_PHOTOS")
- private String firstStatePhotos;
- /**
- * 确认人员
- */
- @TableField("CONFIRM_JOB_PERSON")
- private Long confirmJobPerson;
- /**
- * 确认时间
- */
- @TableField("CONFRIM_JOB_TIME")
- private Date confrimJobTime;
- /**
- * 处理人员
- */
- @TableField("HANDLE_JOB_Person")
- private Long handleJobPerson;
- /**
- * 处理时间
- */
- @TableField("HANDLE_JOB_TIME")
- private Date handleJobTime;
- /**
- * 维护情况记录
- */
- @TableField("HANDLE_MESSAGE")
- private String handleMessage;
- /**
- * 维护图片
- */
- @TableField("HANDLE_PHOTOS")
- private String handlePhotos;
- /**
- * 工单流转记录
- */
- @TableField("FLOW")
- private String flow;
-
- @TableField("JOB_BELONG_TO")
- private Long jobBelongTo;
-
- @TableField("JOB_FLAG_DELAY")
- private String jobFlagDelay;
-
- @TableField("JOB_FLAG_1")
- private String jobFlag1;
-
- @TableField(exist = false)
- private String alarmValue;
-
- @TableField(exist = false)
- private String alarmContentName;
-
- @TableField(exist = false)
- private Integer recordId;
-
- @Override
- public String toString() {
- return "AlarmJob{" +
- "id=" + id +
- ", jobcode=" + jobcode +
- ", jogType=" + jobType +
- ", wellCode=" + wellCode +
- ", devcode=" + devcode +
- ", createTime=" + createTime +
- ", jobStatus=" + jobStatus +
- ", getJobPerson=" + getJobPerson +
- ", getJobTime=" + getJobTime +
- ", firstState=" + firstState +
- ", firstStatePhotos=" + firstStatePhotos +
- ", confirmJobPerson=" + confirmJobPerson +
- ", confrimJobTime=" + confrimJobTime +
- ", handleJobPerson=" + handleJobPerson +
- ", handleJobTime=" + handleJobTime +
- ", handleMessage=" + handleMessage +
- ", handlePhotos=" + handlePhotos +
- ", flow=" + flow +
- ", recordId=" + recordId +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmRecord.java b/src/main/java/com/casic/entity/AlarmRecord.java
new file mode 100644
index 0000000..137d805
--- /dev/null
+++ b/src/main/java/com/casic/entity/AlarmRecord.java
@@ -0,0 +1,106 @@
+package com.casic.entity;
+
+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 com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *
+ *
+ *
+ *
+ * @author casic123
+ * @since 2019-05-17
+ */
+@Data
+@TableName("ALARM_ALARM_RECORD")
+public class AlarmRecord extends Model {
+
+
+ private static final long serialVersionUID = 1L;
+ /**
+ * 主键
+ */
+ @TableId(value = "DBID")
+ private Long dbid;
+ /**
+ * 设备编号
+ */
+ @TableField("DEVICE_CODE")
+ private String deviceCode;
+ /**
+ * 设备类型名称
+ */
+ @TableField("DEVICE_TYPE_NAME")
+ private String deviceTypeName;
+ /**
+ * 是否推送,默认0
+ */
+ @TableField("ISSEND")
+ private String issend;
+ /**
+ * 默认default
+ */
+ @TableField("ITEMNAME")
+ private String itemname;
+ /**
+ * 没有数值
+ */
+ @TableField("ITEMVALUE")
+ private String itemvalue;
+ /**
+ * 1
+ */
+ @TableField("MESSAGE")
+ private String message;
+ /**
+ * 0
+ */
+ @TableField("MESSAGE_STATUS")
+ private String messageStatus;
+
+
+ /**
+ * 0
+ */
+ @TableField("RECORDCODE")
+ private String recordcode;
+ /**
+ * 告警日期
+ */
+ @TableField("RECORDDATE")
+ private Date recorddate;
+ /**
+ * 工单编号
+ */
+ @TableField("DEVICE_ID")
+ private Long deviceId;
+
+ /**
+ * 删除标志,默认为1
+ */
+ private Integer active;
+
+ @Override
+ public String toString() {
+ return "AlarmRecord{" +
+ "dbid=" + dbid +
+ ", deviceCode='" + deviceCode + '\'' +
+ ", deviceTypeName='" + deviceTypeName + '\'' +
+ ", issend='" + issend + '\'' +
+ ", itemname='" + itemname + '\'' +
+ ", itemvalue='" + itemvalue + '\'' +
+ ", message='" + message + '\'' +
+ ", messageStatus='" + messageStatus + '\'' +
+ ", recordcode='" + recordcode + '\'' +
+ ", recorddate=" + recorddate +
+ ", deviceId=" + deviceId +
+ ", active=" + active +
+ '}';
+ }
+}
diff --git a/src/main/java/com/casic/entity/AlarmRecords.java b/src/main/java/com/casic/entity/AlarmRecords.java
deleted file mode 100644
index 88b0b26..0000000
--- a/src/main/java/com/casic/entity/AlarmRecords.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- *
- *
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_records")
-public class AlarmRecords extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- 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;
-
- @Override
- public String toString() {
- return "AlarmRecords{" +
- "id=" + id +
- ", deviceId=" + deviceId +
- ", devcode=" + devcode +
- ", wellCode=" + wellCode +
- ", alarmType=" + alarmType +
- ", alarmContent=" + alarmContent +
- ", alarmValue=" + alarmValue +
- ", alarmLevel=" + alarmLevel +
- ", alarmMessage=" + alarmMessage +
- ", alarmTime=" + alarmTime +
- ", status=" + status +
- ", jobId=" + jobId +
- ", jobStatus=" + jobStatus +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/ButaneData.java b/src/main/java/com/casic/entity/ButaneData.java
new file mode 100644
index 0000000..2e051be
--- /dev/null
+++ b/src/main/java/com/casic/entity/ButaneData.java
@@ -0,0 +1,28 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Builder;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@TableName("CASIC_BUTANE_INFO")
+@Builder
+public class ButaneData extends Model {
+
+ @TableId(value = "DBID")
+ private Long dbid;
+
+ private String devcode;
+
+ private String status;
+
+ private String descn;
+
+ private Date logtime;
+
+}
diff --git a/src/main/java/com/casic/entity/Device.java b/src/main/java/com/casic/entity/Device.java
new file mode 100644
index 0000000..0360e41
--- /dev/null
+++ b/src/main/java/com/casic/entity/Device.java
@@ -0,0 +1,27 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@TableName("ALARM_DEVICE")
+public class Device implements Serializable {
+ /**
+ * 设备基本信息表
+ */
+ private static final long serialVersionUID = -2023118078562324658L;
+ @TableId(value = "DBID")
+ private Long id;
+ @TableId(value = "DEVCODE")
+ private String devCode;
+ @TableId(value = "DEVNAME")
+ private String devName;
+ @TableId(value = "FACTORY")
+ private String factory;
+ @TableId(value = "SIMID")
+ private String simid; // SIM卡号
+
+}
diff --git a/src/main/java/com/casic/model/HostData.java b/src/main/java/com/casic/model/HostData.java
new file mode 100644
index 0000000..40cefa7
--- /dev/null
+++ b/src/main/java/com/casic/model/HostData.java
@@ -0,0 +1,16 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class HostData {
+ private String model;
+ private String dev_id;
+ private String chip_id;
+ private String mfd_day;
+ private String sw_ver;
+ private String hw_ver;
+ private String duration;
+ private String d_ch_cnt;
+ private String a_ch_cnt;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReceiveDataParam.java b/src/main/java/com/casic/model/ReceiveDataParam.java
new file mode 100644
index 0000000..3a17d24
--- /dev/null
+++ b/src/main/java/com/casic/model/ReceiveDataParam.java
@@ -0,0 +1,20 @@
+package com.casic.model;
+
+import lombok.Data;
+
+import java.util.HashMap;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReceiveDataParam {
+ private String deviceType;
+ private String iotId;
+ private String requestId;
+ private Object checkFailedData;
+ private String productKey;
+ private String deviceName;
+ private HashMap items;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReportUpdataParam.java b/src/main/java/com/casic/model/ReportUpdataParam.java
new file mode 100644
index 0000000..20c2ca9
--- /dev/null
+++ b/src/main/java/com/casic/model/ReportUpdataParam.java
@@ -0,0 +1,23 @@
+package com.casic.model;
+
+import lombok.Data;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReportUpdataParam {
+ private String msg_type;
+ private String event_change;
+ private String error_val;
+ private String ch_cnt;
+ private String erro_cnt;
+ private String alarm_low_cnt;
+ private String alarm_high_cnt;
+ private String offline_cnt;
+ private String rtd_val;
+ private String adc_val;
+ private String status_val;
+ private String time;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/WirelessData.java b/src/main/java/com/casic/model/WirelessData.java
new file mode 100644
index 0000000..b062c13
--- /dev/null
+++ b/src/main/java/com/casic/model/WirelessData.java
@@ -0,0 +1,19 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class WirelessData {
+ private String model;
+ private String IMEI;
+ private String ICCID;
+ private String sw_ver;
+ private String hw_ver;
+ private String ch_cnt;
+ private String heartbeat_inv;
+ private String up_pcnt;
+ private String up_pcnt_inv;
+ private String csq;
+}
+
+
diff --git a/src/main/java/com/casic/schedule/TaskConfigurer.java b/src/main/java/com/casic/schedule/TaskConfigurer.java
new file mode 100644
index 0000000..77c5d5a
--- /dev/null
+++ b/src/main/java/com/casic/schedule/TaskConfigurer.java
@@ -0,0 +1,47 @@
+package com.casic.schedule;
+
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+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
+@Slf4j
+@RequiredArgsConstructor
+public class TaskConfigurer implements SchedulingConfigurer {
+
+ @Value("${casic.device.online.cron}")
+ private String onlineStateCron;
+
+ private final DeviceDataService deviceDataService;
+
+ @Override
+ public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
+ TriggerTask onlineStateTask = new TriggerTask(nextDayDevice(),
+ triggerContext -> {
+ return new CronTrigger(onlineStateCron).nextExecutionTime(triggerContext);
+ });
+ taskRegistrar.addTriggerTask(onlineStateTask);
+ }
+
+ private Runnable nextDayDevice() {
+ return new Runnable() {
+ @Override
+ public void run() {
+ log.info("定时查询在线离线运行了...");
+ deviceDataService.checkAndUpdateDeviceOnline();
+ }
+ };
+ }
+
+}
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/src/main/java/com/casic/dao/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index fde1818..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -1,36 +1,24 @@
package com.casic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmRecords;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.Device;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
@Mapper
-public interface AlarmRecordsMapper extends BaseMapper {
+public interface AlarmRecordsMapper extends BaseMapper {
+ @Select("SELECT DBID " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Long getDevcode(@Param("devcode") String devcode);
- @Select("SELECT JOB_ID AS \"jobId\"\n " +
- "FROM alarm_records\n " +
- "WHERE DEVCODE = #{devcode}\n " +
- "AND ALARM_CONTENT = #{MsgContent}\n " +
- "AND STATUS='1'\n " +
- "AND JOB_ID>0 ")
- String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='0'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND ALARM_CONTENT = #{MsgContent}\n" +
- " AND STATUS='1'")
- Integer updateOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='3'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND STATUS='1'")
- Integer clearAlarm(@Param("devcode") String devcode);
-
+ @Select("SELECT DBID as id, DEVCODE as devCode, DEVNAME as devName, FACTORY as factory, SIMID as simid " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Device getDevice(@Param("devcode") String devcode);
}
diff --git a/src/main/java/com/casic/dao/ButaneDataMapper.java b/src/main/java/com/casic/dao/ButaneDataMapper.java
new file mode 100644
index 0000000..632c7d2
--- /dev/null
+++ b/src/main/java/com/casic/dao/ButaneDataMapper.java
@@ -0,0 +1,12 @@
+package com.casic.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.entity.ButaneData;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface ButaneDataMapper extends BaseMapper {
+
+
+}
diff --git a/src/main/java/com/casic/dao/DataGasMapper.java b/src/main/java/com/casic/dao/DataGasMapper.java
deleted file mode 100644
index 8a064f2..0000000
--- a/src/main/java/com/casic/dao/DataGasMapper.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.DataGasDector;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-
-import java.util.List;
-import java.util.Map;
-
-@Mapper
-public interface DataGasMapper extends BaseMapper {
-
- @Select("SELECT level,high_value " +
- "FROM alarm_level " +
- "WHERE device_type=#{deviceType} ")
- List> getAlarmLevelList(@Param("deviceType") Long deviceType);
-
- @Select("SELECT devcode " +
- "FROM data_gas_dector " +
- "WHERE devcode=#{devcode} " +
- "AND (EXTRACT(epoch FROM CAST(now() AS TIMESTAMPTZ))-EXTRACT(epoch FROM CAST(logtime AS TIMESTAMPTZ)))/60.0 < ${minutes} "+
- "ORDER BY logtime DESC " +
- "LIMIT 1")
- String getLastData(@Param("minutes") String minutes,
- @Param("devcode") String devcode);
-
- @Select("SELECT alarm_content " +
- "FROM base_alarm_content_type " +
- "WHERE device_type=#{deviceType}")
- String getGasMsgContent(@Param("deviceType")Long deviceType);
-
-
-}
diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java
new file mode 100644
index 0000000..e9456c1
--- /dev/null
+++ b/src/main/java/com/casic/dao/DeviceDataMapper.java
@@ -0,0 +1,18 @@
+package com.casic.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface DeviceDataMapper {
+
+ List> getDevcodeByType(@Param("devciceType") Integer devciceType);
+
+ List getRecentData(@Param("dataDay") Integer dataDay);
+
+ int updateOnlineByDevs(@Param("dataSortList") List dataSortDevcodeList);
+
+}
diff --git a/src/main/java/com/casic/dao/DeviceMapper.java b/src/main/java/com/casic/dao/DeviceMapper.java
deleted file mode 100644
index 73b574e..0000000
--- a/src/main/java/com/casic/dao/DeviceMapper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.Device;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Map;
-
-@Mapper
-public interface DeviceMapper extends BaseMapper {
-
- Map getWellCode(@Param("devcode") String devcode);
-
-}
diff --git a/src/main/java/com/casic/dao/impl/AlarmJobDao.java b/src/main/java/com/casic/dao/impl/AlarmJobDao.java
deleted file mode 100644
index 5131821..0000000
--- a/src/main/java/com/casic/dao/impl/AlarmJobDao.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.casic.dao.impl;
-
-import com.alibaba.druid.util.StringUtils;
-import com.casic.dao.AlarmJobMapper;
-import com.casic.entity.AlarmJob;
-import org.springframework.stereotype.Component;
-import xyz.downgoon.snowflake.Snowflake;
-
-import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-@Component
-public class AlarmJobDao {
-
- private static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMdd");
-
- private static Snowflake snowflake = new Snowflake(0, 2);
-// private static final Sn
-
- @Resource
- private AlarmJobMapper alarmJobMapper;
-
- public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) {
- AlarmJob alarmJob = new AlarmJob();
- alarmJob.setId(snowflake.nextId());
- alarmJob.setDevcode(devCode);
- alarmJob.setWellCode(wellCode);
- alarmJob.setJobStatus("0");
- alarmJob.setCreateTime(new Date());
- alarmJob.setJobcode(this.produceJobCode(devTypeName));
- alarmJob.setJobType(jobType);
- alarmJobMapper.insert(alarmJob);
- return alarmJob;
- }
-
- /**
- * 前缀+日期+4位流水号
- *
- * @param devTypeName
- * @return
- */
- private String produceJobCode(String devTypeName) {
- String pre = devTypeName;
- String dataStr = sdf6.format(new Date());
- String fix = this.getJobCodeMaxSerial(pre + dataStr);
- return StringUtils.isEmpty(fix) ? pre + dataStr + String.format("%04d", Long.valueOf(StringUtils.isEmpty(fix)?"0":fix) + 1L) : pre + dataStr + "0001";
- }
-
-
- private String getJobCodeMaxSerial(String jobcode) {
- String MaxSerialJobCode = alarmJobMapper.getJobCodeMaxSerial(jobcode);
- String fix = "";
- if (null != MaxSerialJobCode && MaxSerialJobCode.length() > 4) {
- fix = MaxSerialJobCode.substring(MaxSerialJobCode.length() - 4);
- }
- return fix;
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmJob.java b/src/main/java/com/casic/entity/AlarmJob.java
deleted file mode 100644
index 8a0f764..0000000
--- a/src/main/java/com/casic/entity/AlarmJob.java
+++ /dev/null
@@ -1,165 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- *
- * 报警工单表
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_job")
-public class AlarmJob extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- private Long id;
- /**
- * 工单编号
- */
- @TableField("JOBCODE")
- private String jobcode;
- /**
- * 工单类型
- */
- @TableField("JOG_TYPE")
- private String jobType;
- /**
- * 井编号
- */
- @TableField("WELL_CODE")
- private String wellCode;
- /**
- * 设备编号
- */
- @TableField("DEVCODE")
- private String devcode;
- /**
- * 工单创建时间
- */
- @TableField("CREATE_TIME")
- private Date createTime;
- /**
- * 工单状态(0待处理,1待确认,2处理中,3完成)
- */
- @TableField("JOB_STATUS")
- private String jobStatus;
- /**
- * 接单人员
- */
- @TableField("GET_JOB_PERSON")
- private Long getJobPerson;
- /**
- * 接单时间
- */
- @TableField("GET_JOB_TIME")
- private Date getJobTime;
- /**
- * 应接单时间
- */
- @TableField("SHOULD_GET_TIME")
- private Date shouldGetTime;
- /**
- * 第一现场情况
- */
- @TableField("FIRST_STATE")
- private String firstState;
- /**
- * 第一现场照片
- */
- @TableField("FIRST_STATE_PHOTOS")
- private String firstStatePhotos;
- /**
- * 确认人员
- */
- @TableField("CONFIRM_JOB_PERSON")
- private Long confirmJobPerson;
- /**
- * 确认时间
- */
- @TableField("CONFRIM_JOB_TIME")
- private Date confrimJobTime;
- /**
- * 处理人员
- */
- @TableField("HANDLE_JOB_Person")
- private Long handleJobPerson;
- /**
- * 处理时间
- */
- @TableField("HANDLE_JOB_TIME")
- private Date handleJobTime;
- /**
- * 维护情况记录
- */
- @TableField("HANDLE_MESSAGE")
- private String handleMessage;
- /**
- * 维护图片
- */
- @TableField("HANDLE_PHOTOS")
- private String handlePhotos;
- /**
- * 工单流转记录
- */
- @TableField("FLOW")
- private String flow;
-
- @TableField("JOB_BELONG_TO")
- private Long jobBelongTo;
-
- @TableField("JOB_FLAG_DELAY")
- private String jobFlagDelay;
-
- @TableField("JOB_FLAG_1")
- private String jobFlag1;
-
- @TableField(exist = false)
- private String alarmValue;
-
- @TableField(exist = false)
- private String alarmContentName;
-
- @TableField(exist = false)
- private Integer recordId;
-
- @Override
- public String toString() {
- return "AlarmJob{" +
- "id=" + id +
- ", jobcode=" + jobcode +
- ", jogType=" + jobType +
- ", wellCode=" + wellCode +
- ", devcode=" + devcode +
- ", createTime=" + createTime +
- ", jobStatus=" + jobStatus +
- ", getJobPerson=" + getJobPerson +
- ", getJobTime=" + getJobTime +
- ", firstState=" + firstState +
- ", firstStatePhotos=" + firstStatePhotos +
- ", confirmJobPerson=" + confirmJobPerson +
- ", confrimJobTime=" + confrimJobTime +
- ", handleJobPerson=" + handleJobPerson +
- ", handleJobTime=" + handleJobTime +
- ", handleMessage=" + handleMessage +
- ", handlePhotos=" + handlePhotos +
- ", flow=" + flow +
- ", recordId=" + recordId +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmRecord.java b/src/main/java/com/casic/entity/AlarmRecord.java
new file mode 100644
index 0000000..137d805
--- /dev/null
+++ b/src/main/java/com/casic/entity/AlarmRecord.java
@@ -0,0 +1,106 @@
+package com.casic.entity;
+
+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 com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *
+ *
+ *
+ *
+ * @author casic123
+ * @since 2019-05-17
+ */
+@Data
+@TableName("ALARM_ALARM_RECORD")
+public class AlarmRecord extends Model {
+
+
+ private static final long serialVersionUID = 1L;
+ /**
+ * 主键
+ */
+ @TableId(value = "DBID")
+ private Long dbid;
+ /**
+ * 设备编号
+ */
+ @TableField("DEVICE_CODE")
+ private String deviceCode;
+ /**
+ * 设备类型名称
+ */
+ @TableField("DEVICE_TYPE_NAME")
+ private String deviceTypeName;
+ /**
+ * 是否推送,默认0
+ */
+ @TableField("ISSEND")
+ private String issend;
+ /**
+ * 默认default
+ */
+ @TableField("ITEMNAME")
+ private String itemname;
+ /**
+ * 没有数值
+ */
+ @TableField("ITEMVALUE")
+ private String itemvalue;
+ /**
+ * 1
+ */
+ @TableField("MESSAGE")
+ private String message;
+ /**
+ * 0
+ */
+ @TableField("MESSAGE_STATUS")
+ private String messageStatus;
+
+
+ /**
+ * 0
+ */
+ @TableField("RECORDCODE")
+ private String recordcode;
+ /**
+ * 告警日期
+ */
+ @TableField("RECORDDATE")
+ private Date recorddate;
+ /**
+ * 工单编号
+ */
+ @TableField("DEVICE_ID")
+ private Long deviceId;
+
+ /**
+ * 删除标志,默认为1
+ */
+ private Integer active;
+
+ @Override
+ public String toString() {
+ return "AlarmRecord{" +
+ "dbid=" + dbid +
+ ", deviceCode='" + deviceCode + '\'' +
+ ", deviceTypeName='" + deviceTypeName + '\'' +
+ ", issend='" + issend + '\'' +
+ ", itemname='" + itemname + '\'' +
+ ", itemvalue='" + itemvalue + '\'' +
+ ", message='" + message + '\'' +
+ ", messageStatus='" + messageStatus + '\'' +
+ ", recordcode='" + recordcode + '\'' +
+ ", recorddate=" + recorddate +
+ ", deviceId=" + deviceId +
+ ", active=" + active +
+ '}';
+ }
+}
diff --git a/src/main/java/com/casic/entity/AlarmRecords.java b/src/main/java/com/casic/entity/AlarmRecords.java
deleted file mode 100644
index 88b0b26..0000000
--- a/src/main/java/com/casic/entity/AlarmRecords.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- *
- *
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_records")
-public class AlarmRecords extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- 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;
-
- @Override
- public String toString() {
- return "AlarmRecords{" +
- "id=" + id +
- ", deviceId=" + deviceId +
- ", devcode=" + devcode +
- ", wellCode=" + wellCode +
- ", alarmType=" + alarmType +
- ", alarmContent=" + alarmContent +
- ", alarmValue=" + alarmValue +
- ", alarmLevel=" + alarmLevel +
- ", alarmMessage=" + alarmMessage +
- ", alarmTime=" + alarmTime +
- ", status=" + status +
- ", jobId=" + jobId +
- ", jobStatus=" + jobStatus +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/ButaneData.java b/src/main/java/com/casic/entity/ButaneData.java
new file mode 100644
index 0000000..2e051be
--- /dev/null
+++ b/src/main/java/com/casic/entity/ButaneData.java
@@ -0,0 +1,28 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Builder;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@TableName("CASIC_BUTANE_INFO")
+@Builder
+public class ButaneData extends Model {
+
+ @TableId(value = "DBID")
+ private Long dbid;
+
+ private String devcode;
+
+ private String status;
+
+ private String descn;
+
+ private Date logtime;
+
+}
diff --git a/src/main/java/com/casic/entity/Device.java b/src/main/java/com/casic/entity/Device.java
new file mode 100644
index 0000000..0360e41
--- /dev/null
+++ b/src/main/java/com/casic/entity/Device.java
@@ -0,0 +1,27 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@TableName("ALARM_DEVICE")
+public class Device implements Serializable {
+ /**
+ * 设备基本信息表
+ */
+ private static final long serialVersionUID = -2023118078562324658L;
+ @TableId(value = "DBID")
+ private Long id;
+ @TableId(value = "DEVCODE")
+ private String devCode;
+ @TableId(value = "DEVNAME")
+ private String devName;
+ @TableId(value = "FACTORY")
+ private String factory;
+ @TableId(value = "SIMID")
+ private String simid; // SIM卡号
+
+}
diff --git a/src/main/java/com/casic/model/HostData.java b/src/main/java/com/casic/model/HostData.java
new file mode 100644
index 0000000..40cefa7
--- /dev/null
+++ b/src/main/java/com/casic/model/HostData.java
@@ -0,0 +1,16 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class HostData {
+ private String model;
+ private String dev_id;
+ private String chip_id;
+ private String mfd_day;
+ private String sw_ver;
+ private String hw_ver;
+ private String duration;
+ private String d_ch_cnt;
+ private String a_ch_cnt;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReceiveDataParam.java b/src/main/java/com/casic/model/ReceiveDataParam.java
new file mode 100644
index 0000000..3a17d24
--- /dev/null
+++ b/src/main/java/com/casic/model/ReceiveDataParam.java
@@ -0,0 +1,20 @@
+package com.casic.model;
+
+import lombok.Data;
+
+import java.util.HashMap;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReceiveDataParam {
+ private String deviceType;
+ private String iotId;
+ private String requestId;
+ private Object checkFailedData;
+ private String productKey;
+ private String deviceName;
+ private HashMap items;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReportUpdataParam.java b/src/main/java/com/casic/model/ReportUpdataParam.java
new file mode 100644
index 0000000..20c2ca9
--- /dev/null
+++ b/src/main/java/com/casic/model/ReportUpdataParam.java
@@ -0,0 +1,23 @@
+package com.casic.model;
+
+import lombok.Data;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReportUpdataParam {
+ private String msg_type;
+ private String event_change;
+ private String error_val;
+ private String ch_cnt;
+ private String erro_cnt;
+ private String alarm_low_cnt;
+ private String alarm_high_cnt;
+ private String offline_cnt;
+ private String rtd_val;
+ private String adc_val;
+ private String status_val;
+ private String time;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/WirelessData.java b/src/main/java/com/casic/model/WirelessData.java
new file mode 100644
index 0000000..b062c13
--- /dev/null
+++ b/src/main/java/com/casic/model/WirelessData.java
@@ -0,0 +1,19 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class WirelessData {
+ private String model;
+ private String IMEI;
+ private String ICCID;
+ private String sw_ver;
+ private String hw_ver;
+ private String ch_cnt;
+ private String heartbeat_inv;
+ private String up_pcnt;
+ private String up_pcnt_inv;
+ private String csq;
+}
+
+
diff --git a/src/main/java/com/casic/schedule/TaskConfigurer.java b/src/main/java/com/casic/schedule/TaskConfigurer.java
new file mode 100644
index 0000000..77c5d5a
--- /dev/null
+++ b/src/main/java/com/casic/schedule/TaskConfigurer.java
@@ -0,0 +1,47 @@
+package com.casic.schedule;
+
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+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
+@Slf4j
+@RequiredArgsConstructor
+public class TaskConfigurer implements SchedulingConfigurer {
+
+ @Value("${casic.device.online.cron}")
+ private String onlineStateCron;
+
+ private final DeviceDataService deviceDataService;
+
+ @Override
+ public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
+ TriggerTask onlineStateTask = new TriggerTask(nextDayDevice(),
+ triggerContext -> {
+ return new CronTrigger(onlineStateCron).nextExecutionTime(triggerContext);
+ });
+ taskRegistrar.addTriggerTask(onlineStateTask);
+ }
+
+ private Runnable nextDayDevice() {
+ return new Runnable() {
+ @Override
+ public void run() {
+ log.info("定时查询在线离线运行了...");
+ deviceDataService.checkAndUpdateDeviceOnline();
+ }
+ };
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/service/AlarmRecordFly.java b/src/main/java/com/casic/service/AlarmRecordFly.java
new file mode 100644
index 0000000..47c7969
--- /dev/null
+++ b/src/main/java/com/casic/service/AlarmRecordFly.java
@@ -0,0 +1,39 @@
+package com.casic.service;
+
+import com.casic.entity.AlarmRecord;
+
+public class AlarmRecordFly {
+
+ private static AlarmRecord alarmRecord;
+
+ static {
+ alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("0");
+ alarmRecord.setActive(1);
+ }
+
+ public static AlarmRecord getAlarmRecord() {
+ return alarmRecord;
+ }
+
+ public static AlarmRecord getPrototype(){
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("-1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("1");
+ alarmRecord.setActive(1);
+ return alarmRecord;
+ }
+
+
+
+
+}
diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/src/main/java/com/casic/dao/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index fde1818..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -1,36 +1,24 @@
package com.casic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmRecords;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.Device;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
@Mapper
-public interface AlarmRecordsMapper extends BaseMapper {
+public interface AlarmRecordsMapper extends BaseMapper {
+ @Select("SELECT DBID " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Long getDevcode(@Param("devcode") String devcode);
- @Select("SELECT JOB_ID AS \"jobId\"\n " +
- "FROM alarm_records\n " +
- "WHERE DEVCODE = #{devcode}\n " +
- "AND ALARM_CONTENT = #{MsgContent}\n " +
- "AND STATUS='1'\n " +
- "AND JOB_ID>0 ")
- String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='0'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND ALARM_CONTENT = #{MsgContent}\n" +
- " AND STATUS='1'")
- Integer updateOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='3'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND STATUS='1'")
- Integer clearAlarm(@Param("devcode") String devcode);
-
+ @Select("SELECT DBID as id, DEVCODE as devCode, DEVNAME as devName, FACTORY as factory, SIMID as simid " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Device getDevice(@Param("devcode") String devcode);
}
diff --git a/src/main/java/com/casic/dao/ButaneDataMapper.java b/src/main/java/com/casic/dao/ButaneDataMapper.java
new file mode 100644
index 0000000..632c7d2
--- /dev/null
+++ b/src/main/java/com/casic/dao/ButaneDataMapper.java
@@ -0,0 +1,12 @@
+package com.casic.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.entity.ButaneData;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface ButaneDataMapper extends BaseMapper {
+
+
+}
diff --git a/src/main/java/com/casic/dao/DataGasMapper.java b/src/main/java/com/casic/dao/DataGasMapper.java
deleted file mode 100644
index 8a064f2..0000000
--- a/src/main/java/com/casic/dao/DataGasMapper.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.DataGasDector;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-
-import java.util.List;
-import java.util.Map;
-
-@Mapper
-public interface DataGasMapper extends BaseMapper {
-
- @Select("SELECT level,high_value " +
- "FROM alarm_level " +
- "WHERE device_type=#{deviceType} ")
- List> getAlarmLevelList(@Param("deviceType") Long deviceType);
-
- @Select("SELECT devcode " +
- "FROM data_gas_dector " +
- "WHERE devcode=#{devcode} " +
- "AND (EXTRACT(epoch FROM CAST(now() AS TIMESTAMPTZ))-EXTRACT(epoch FROM CAST(logtime AS TIMESTAMPTZ)))/60.0 < ${minutes} "+
- "ORDER BY logtime DESC " +
- "LIMIT 1")
- String getLastData(@Param("minutes") String minutes,
- @Param("devcode") String devcode);
-
- @Select("SELECT alarm_content " +
- "FROM base_alarm_content_type " +
- "WHERE device_type=#{deviceType}")
- String getGasMsgContent(@Param("deviceType")Long deviceType);
-
-
-}
diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java
new file mode 100644
index 0000000..e9456c1
--- /dev/null
+++ b/src/main/java/com/casic/dao/DeviceDataMapper.java
@@ -0,0 +1,18 @@
+package com.casic.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface DeviceDataMapper {
+
+ List> getDevcodeByType(@Param("devciceType") Integer devciceType);
+
+ List getRecentData(@Param("dataDay") Integer dataDay);
+
+ int updateOnlineByDevs(@Param("dataSortList") List dataSortDevcodeList);
+
+}
diff --git a/src/main/java/com/casic/dao/DeviceMapper.java b/src/main/java/com/casic/dao/DeviceMapper.java
deleted file mode 100644
index 73b574e..0000000
--- a/src/main/java/com/casic/dao/DeviceMapper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.Device;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Map;
-
-@Mapper
-public interface DeviceMapper extends BaseMapper {
-
- Map getWellCode(@Param("devcode") String devcode);
-
-}
diff --git a/src/main/java/com/casic/dao/impl/AlarmJobDao.java b/src/main/java/com/casic/dao/impl/AlarmJobDao.java
deleted file mode 100644
index 5131821..0000000
--- a/src/main/java/com/casic/dao/impl/AlarmJobDao.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.casic.dao.impl;
-
-import com.alibaba.druid.util.StringUtils;
-import com.casic.dao.AlarmJobMapper;
-import com.casic.entity.AlarmJob;
-import org.springframework.stereotype.Component;
-import xyz.downgoon.snowflake.Snowflake;
-
-import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-@Component
-public class AlarmJobDao {
-
- private static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMdd");
-
- private static Snowflake snowflake = new Snowflake(0, 2);
-// private static final Sn
-
- @Resource
- private AlarmJobMapper alarmJobMapper;
-
- public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) {
- AlarmJob alarmJob = new AlarmJob();
- alarmJob.setId(snowflake.nextId());
- alarmJob.setDevcode(devCode);
- alarmJob.setWellCode(wellCode);
- alarmJob.setJobStatus("0");
- alarmJob.setCreateTime(new Date());
- alarmJob.setJobcode(this.produceJobCode(devTypeName));
- alarmJob.setJobType(jobType);
- alarmJobMapper.insert(alarmJob);
- return alarmJob;
- }
-
- /**
- * 前缀+日期+4位流水号
- *
- * @param devTypeName
- * @return
- */
- private String produceJobCode(String devTypeName) {
- String pre = devTypeName;
- String dataStr = sdf6.format(new Date());
- String fix = this.getJobCodeMaxSerial(pre + dataStr);
- return StringUtils.isEmpty(fix) ? pre + dataStr + String.format("%04d", Long.valueOf(StringUtils.isEmpty(fix)?"0":fix) + 1L) : pre + dataStr + "0001";
- }
-
-
- private String getJobCodeMaxSerial(String jobcode) {
- String MaxSerialJobCode = alarmJobMapper.getJobCodeMaxSerial(jobcode);
- String fix = "";
- if (null != MaxSerialJobCode && MaxSerialJobCode.length() > 4) {
- fix = MaxSerialJobCode.substring(MaxSerialJobCode.length() - 4);
- }
- return fix;
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmJob.java b/src/main/java/com/casic/entity/AlarmJob.java
deleted file mode 100644
index 8a0f764..0000000
--- a/src/main/java/com/casic/entity/AlarmJob.java
+++ /dev/null
@@ -1,165 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- *
- * 报警工单表
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_job")
-public class AlarmJob extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- private Long id;
- /**
- * 工单编号
- */
- @TableField("JOBCODE")
- private String jobcode;
- /**
- * 工单类型
- */
- @TableField("JOG_TYPE")
- private String jobType;
- /**
- * 井编号
- */
- @TableField("WELL_CODE")
- private String wellCode;
- /**
- * 设备编号
- */
- @TableField("DEVCODE")
- private String devcode;
- /**
- * 工单创建时间
- */
- @TableField("CREATE_TIME")
- private Date createTime;
- /**
- * 工单状态(0待处理,1待确认,2处理中,3完成)
- */
- @TableField("JOB_STATUS")
- private String jobStatus;
- /**
- * 接单人员
- */
- @TableField("GET_JOB_PERSON")
- private Long getJobPerson;
- /**
- * 接单时间
- */
- @TableField("GET_JOB_TIME")
- private Date getJobTime;
- /**
- * 应接单时间
- */
- @TableField("SHOULD_GET_TIME")
- private Date shouldGetTime;
- /**
- * 第一现场情况
- */
- @TableField("FIRST_STATE")
- private String firstState;
- /**
- * 第一现场照片
- */
- @TableField("FIRST_STATE_PHOTOS")
- private String firstStatePhotos;
- /**
- * 确认人员
- */
- @TableField("CONFIRM_JOB_PERSON")
- private Long confirmJobPerson;
- /**
- * 确认时间
- */
- @TableField("CONFRIM_JOB_TIME")
- private Date confrimJobTime;
- /**
- * 处理人员
- */
- @TableField("HANDLE_JOB_Person")
- private Long handleJobPerson;
- /**
- * 处理时间
- */
- @TableField("HANDLE_JOB_TIME")
- private Date handleJobTime;
- /**
- * 维护情况记录
- */
- @TableField("HANDLE_MESSAGE")
- private String handleMessage;
- /**
- * 维护图片
- */
- @TableField("HANDLE_PHOTOS")
- private String handlePhotos;
- /**
- * 工单流转记录
- */
- @TableField("FLOW")
- private String flow;
-
- @TableField("JOB_BELONG_TO")
- private Long jobBelongTo;
-
- @TableField("JOB_FLAG_DELAY")
- private String jobFlagDelay;
-
- @TableField("JOB_FLAG_1")
- private String jobFlag1;
-
- @TableField(exist = false)
- private String alarmValue;
-
- @TableField(exist = false)
- private String alarmContentName;
-
- @TableField(exist = false)
- private Integer recordId;
-
- @Override
- public String toString() {
- return "AlarmJob{" +
- "id=" + id +
- ", jobcode=" + jobcode +
- ", jogType=" + jobType +
- ", wellCode=" + wellCode +
- ", devcode=" + devcode +
- ", createTime=" + createTime +
- ", jobStatus=" + jobStatus +
- ", getJobPerson=" + getJobPerson +
- ", getJobTime=" + getJobTime +
- ", firstState=" + firstState +
- ", firstStatePhotos=" + firstStatePhotos +
- ", confirmJobPerson=" + confirmJobPerson +
- ", confrimJobTime=" + confrimJobTime +
- ", handleJobPerson=" + handleJobPerson +
- ", handleJobTime=" + handleJobTime +
- ", handleMessage=" + handleMessage +
- ", handlePhotos=" + handlePhotos +
- ", flow=" + flow +
- ", recordId=" + recordId +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmRecord.java b/src/main/java/com/casic/entity/AlarmRecord.java
new file mode 100644
index 0000000..137d805
--- /dev/null
+++ b/src/main/java/com/casic/entity/AlarmRecord.java
@@ -0,0 +1,106 @@
+package com.casic.entity;
+
+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 com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *
+ *
+ *
+ *
+ * @author casic123
+ * @since 2019-05-17
+ */
+@Data
+@TableName("ALARM_ALARM_RECORD")
+public class AlarmRecord extends Model {
+
+
+ private static final long serialVersionUID = 1L;
+ /**
+ * 主键
+ */
+ @TableId(value = "DBID")
+ private Long dbid;
+ /**
+ * 设备编号
+ */
+ @TableField("DEVICE_CODE")
+ private String deviceCode;
+ /**
+ * 设备类型名称
+ */
+ @TableField("DEVICE_TYPE_NAME")
+ private String deviceTypeName;
+ /**
+ * 是否推送,默认0
+ */
+ @TableField("ISSEND")
+ private String issend;
+ /**
+ * 默认default
+ */
+ @TableField("ITEMNAME")
+ private String itemname;
+ /**
+ * 没有数值
+ */
+ @TableField("ITEMVALUE")
+ private String itemvalue;
+ /**
+ * 1
+ */
+ @TableField("MESSAGE")
+ private String message;
+ /**
+ * 0
+ */
+ @TableField("MESSAGE_STATUS")
+ private String messageStatus;
+
+
+ /**
+ * 0
+ */
+ @TableField("RECORDCODE")
+ private String recordcode;
+ /**
+ * 告警日期
+ */
+ @TableField("RECORDDATE")
+ private Date recorddate;
+ /**
+ * 工单编号
+ */
+ @TableField("DEVICE_ID")
+ private Long deviceId;
+
+ /**
+ * 删除标志,默认为1
+ */
+ private Integer active;
+
+ @Override
+ public String toString() {
+ return "AlarmRecord{" +
+ "dbid=" + dbid +
+ ", deviceCode='" + deviceCode + '\'' +
+ ", deviceTypeName='" + deviceTypeName + '\'' +
+ ", issend='" + issend + '\'' +
+ ", itemname='" + itemname + '\'' +
+ ", itemvalue='" + itemvalue + '\'' +
+ ", message='" + message + '\'' +
+ ", messageStatus='" + messageStatus + '\'' +
+ ", recordcode='" + recordcode + '\'' +
+ ", recorddate=" + recorddate +
+ ", deviceId=" + deviceId +
+ ", active=" + active +
+ '}';
+ }
+}
diff --git a/src/main/java/com/casic/entity/AlarmRecords.java b/src/main/java/com/casic/entity/AlarmRecords.java
deleted file mode 100644
index 88b0b26..0000000
--- a/src/main/java/com/casic/entity/AlarmRecords.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- *
- *
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_records")
-public class AlarmRecords extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- 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;
-
- @Override
- public String toString() {
- return "AlarmRecords{" +
- "id=" + id +
- ", deviceId=" + deviceId +
- ", devcode=" + devcode +
- ", wellCode=" + wellCode +
- ", alarmType=" + alarmType +
- ", alarmContent=" + alarmContent +
- ", alarmValue=" + alarmValue +
- ", alarmLevel=" + alarmLevel +
- ", alarmMessage=" + alarmMessage +
- ", alarmTime=" + alarmTime +
- ", status=" + status +
- ", jobId=" + jobId +
- ", jobStatus=" + jobStatus +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/ButaneData.java b/src/main/java/com/casic/entity/ButaneData.java
new file mode 100644
index 0000000..2e051be
--- /dev/null
+++ b/src/main/java/com/casic/entity/ButaneData.java
@@ -0,0 +1,28 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Builder;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@TableName("CASIC_BUTANE_INFO")
+@Builder
+public class ButaneData extends Model {
+
+ @TableId(value = "DBID")
+ private Long dbid;
+
+ private String devcode;
+
+ private String status;
+
+ private String descn;
+
+ private Date logtime;
+
+}
diff --git a/src/main/java/com/casic/entity/Device.java b/src/main/java/com/casic/entity/Device.java
new file mode 100644
index 0000000..0360e41
--- /dev/null
+++ b/src/main/java/com/casic/entity/Device.java
@@ -0,0 +1,27 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@TableName("ALARM_DEVICE")
+public class Device implements Serializable {
+ /**
+ * 设备基本信息表
+ */
+ private static final long serialVersionUID = -2023118078562324658L;
+ @TableId(value = "DBID")
+ private Long id;
+ @TableId(value = "DEVCODE")
+ private String devCode;
+ @TableId(value = "DEVNAME")
+ private String devName;
+ @TableId(value = "FACTORY")
+ private String factory;
+ @TableId(value = "SIMID")
+ private String simid; // SIM卡号
+
+}
diff --git a/src/main/java/com/casic/model/HostData.java b/src/main/java/com/casic/model/HostData.java
new file mode 100644
index 0000000..40cefa7
--- /dev/null
+++ b/src/main/java/com/casic/model/HostData.java
@@ -0,0 +1,16 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class HostData {
+ private String model;
+ private String dev_id;
+ private String chip_id;
+ private String mfd_day;
+ private String sw_ver;
+ private String hw_ver;
+ private String duration;
+ private String d_ch_cnt;
+ private String a_ch_cnt;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReceiveDataParam.java b/src/main/java/com/casic/model/ReceiveDataParam.java
new file mode 100644
index 0000000..3a17d24
--- /dev/null
+++ b/src/main/java/com/casic/model/ReceiveDataParam.java
@@ -0,0 +1,20 @@
+package com.casic.model;
+
+import lombok.Data;
+
+import java.util.HashMap;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReceiveDataParam {
+ private String deviceType;
+ private String iotId;
+ private String requestId;
+ private Object checkFailedData;
+ private String productKey;
+ private String deviceName;
+ private HashMap items;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReportUpdataParam.java b/src/main/java/com/casic/model/ReportUpdataParam.java
new file mode 100644
index 0000000..20c2ca9
--- /dev/null
+++ b/src/main/java/com/casic/model/ReportUpdataParam.java
@@ -0,0 +1,23 @@
+package com.casic.model;
+
+import lombok.Data;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReportUpdataParam {
+ private String msg_type;
+ private String event_change;
+ private String error_val;
+ private String ch_cnt;
+ private String erro_cnt;
+ private String alarm_low_cnt;
+ private String alarm_high_cnt;
+ private String offline_cnt;
+ private String rtd_val;
+ private String adc_val;
+ private String status_val;
+ private String time;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/WirelessData.java b/src/main/java/com/casic/model/WirelessData.java
new file mode 100644
index 0000000..b062c13
--- /dev/null
+++ b/src/main/java/com/casic/model/WirelessData.java
@@ -0,0 +1,19 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class WirelessData {
+ private String model;
+ private String IMEI;
+ private String ICCID;
+ private String sw_ver;
+ private String hw_ver;
+ private String ch_cnt;
+ private String heartbeat_inv;
+ private String up_pcnt;
+ private String up_pcnt_inv;
+ private String csq;
+}
+
+
diff --git a/src/main/java/com/casic/schedule/TaskConfigurer.java b/src/main/java/com/casic/schedule/TaskConfigurer.java
new file mode 100644
index 0000000..77c5d5a
--- /dev/null
+++ b/src/main/java/com/casic/schedule/TaskConfigurer.java
@@ -0,0 +1,47 @@
+package com.casic.schedule;
+
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+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
+@Slf4j
+@RequiredArgsConstructor
+public class TaskConfigurer implements SchedulingConfigurer {
+
+ @Value("${casic.device.online.cron}")
+ private String onlineStateCron;
+
+ private final DeviceDataService deviceDataService;
+
+ @Override
+ public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
+ TriggerTask onlineStateTask = new TriggerTask(nextDayDevice(),
+ triggerContext -> {
+ return new CronTrigger(onlineStateCron).nextExecutionTime(triggerContext);
+ });
+ taskRegistrar.addTriggerTask(onlineStateTask);
+ }
+
+ private Runnable nextDayDevice() {
+ return new Runnable() {
+ @Override
+ public void run() {
+ log.info("定时查询在线离线运行了...");
+ deviceDataService.checkAndUpdateDeviceOnline();
+ }
+ };
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/service/AlarmRecordFly.java b/src/main/java/com/casic/service/AlarmRecordFly.java
new file mode 100644
index 0000000..47c7969
--- /dev/null
+++ b/src/main/java/com/casic/service/AlarmRecordFly.java
@@ -0,0 +1,39 @@
+package com.casic.service;
+
+import com.casic.entity.AlarmRecord;
+
+public class AlarmRecordFly {
+
+ private static AlarmRecord alarmRecord;
+
+ static {
+ alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("0");
+ alarmRecord.setActive(1);
+ }
+
+ public static AlarmRecord getAlarmRecord() {
+ return alarmRecord;
+ }
+
+ public static AlarmRecord getPrototype(){
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("-1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("1");
+ alarmRecord.setActive(1);
+ return alarmRecord;
+ }
+
+
+
+
+}
diff --git a/src/main/java/com/casic/service/DeviceDataService.java b/src/main/java/com/casic/service/DeviceDataService.java
new file mode 100644
index 0000000..f972981
--- /dev/null
+++ b/src/main/java/com/casic/service/DeviceDataService.java
@@ -0,0 +1,7 @@
+package com.casic.service;
+
+public interface DeviceDataService {
+
+ void checkAndUpdateDeviceOnline();
+
+}
diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/src/main/java/com/casic/dao/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index fde1818..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -1,36 +1,24 @@
package com.casic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmRecords;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.Device;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
@Mapper
-public interface AlarmRecordsMapper extends BaseMapper {
+public interface AlarmRecordsMapper extends BaseMapper {
+ @Select("SELECT DBID " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Long getDevcode(@Param("devcode") String devcode);
- @Select("SELECT JOB_ID AS \"jobId\"\n " +
- "FROM alarm_records\n " +
- "WHERE DEVCODE = #{devcode}\n " +
- "AND ALARM_CONTENT = #{MsgContent}\n " +
- "AND STATUS='1'\n " +
- "AND JOB_ID>0 ")
- String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='0'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND ALARM_CONTENT = #{MsgContent}\n" +
- " AND STATUS='1'")
- Integer updateOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='3'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND STATUS='1'")
- Integer clearAlarm(@Param("devcode") String devcode);
-
+ @Select("SELECT DBID as id, DEVCODE as devCode, DEVNAME as devName, FACTORY as factory, SIMID as simid " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Device getDevice(@Param("devcode") String devcode);
}
diff --git a/src/main/java/com/casic/dao/ButaneDataMapper.java b/src/main/java/com/casic/dao/ButaneDataMapper.java
new file mode 100644
index 0000000..632c7d2
--- /dev/null
+++ b/src/main/java/com/casic/dao/ButaneDataMapper.java
@@ -0,0 +1,12 @@
+package com.casic.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.entity.ButaneData;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface ButaneDataMapper extends BaseMapper {
+
+
+}
diff --git a/src/main/java/com/casic/dao/DataGasMapper.java b/src/main/java/com/casic/dao/DataGasMapper.java
deleted file mode 100644
index 8a064f2..0000000
--- a/src/main/java/com/casic/dao/DataGasMapper.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.DataGasDector;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-
-import java.util.List;
-import java.util.Map;
-
-@Mapper
-public interface DataGasMapper extends BaseMapper {
-
- @Select("SELECT level,high_value " +
- "FROM alarm_level " +
- "WHERE device_type=#{deviceType} ")
- List> getAlarmLevelList(@Param("deviceType") Long deviceType);
-
- @Select("SELECT devcode " +
- "FROM data_gas_dector " +
- "WHERE devcode=#{devcode} " +
- "AND (EXTRACT(epoch FROM CAST(now() AS TIMESTAMPTZ))-EXTRACT(epoch FROM CAST(logtime AS TIMESTAMPTZ)))/60.0 < ${minutes} "+
- "ORDER BY logtime DESC " +
- "LIMIT 1")
- String getLastData(@Param("minutes") String minutes,
- @Param("devcode") String devcode);
-
- @Select("SELECT alarm_content " +
- "FROM base_alarm_content_type " +
- "WHERE device_type=#{deviceType}")
- String getGasMsgContent(@Param("deviceType")Long deviceType);
-
-
-}
diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java
new file mode 100644
index 0000000..e9456c1
--- /dev/null
+++ b/src/main/java/com/casic/dao/DeviceDataMapper.java
@@ -0,0 +1,18 @@
+package com.casic.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface DeviceDataMapper {
+
+ List> getDevcodeByType(@Param("devciceType") Integer devciceType);
+
+ List getRecentData(@Param("dataDay") Integer dataDay);
+
+ int updateOnlineByDevs(@Param("dataSortList") List dataSortDevcodeList);
+
+}
diff --git a/src/main/java/com/casic/dao/DeviceMapper.java b/src/main/java/com/casic/dao/DeviceMapper.java
deleted file mode 100644
index 73b574e..0000000
--- a/src/main/java/com/casic/dao/DeviceMapper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.Device;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Map;
-
-@Mapper
-public interface DeviceMapper extends BaseMapper {
-
- Map getWellCode(@Param("devcode") String devcode);
-
-}
diff --git a/src/main/java/com/casic/dao/impl/AlarmJobDao.java b/src/main/java/com/casic/dao/impl/AlarmJobDao.java
deleted file mode 100644
index 5131821..0000000
--- a/src/main/java/com/casic/dao/impl/AlarmJobDao.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.casic.dao.impl;
-
-import com.alibaba.druid.util.StringUtils;
-import com.casic.dao.AlarmJobMapper;
-import com.casic.entity.AlarmJob;
-import org.springframework.stereotype.Component;
-import xyz.downgoon.snowflake.Snowflake;
-
-import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-@Component
-public class AlarmJobDao {
-
- private static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMdd");
-
- private static Snowflake snowflake = new Snowflake(0, 2);
-// private static final Sn
-
- @Resource
- private AlarmJobMapper alarmJobMapper;
-
- public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) {
- AlarmJob alarmJob = new AlarmJob();
- alarmJob.setId(snowflake.nextId());
- alarmJob.setDevcode(devCode);
- alarmJob.setWellCode(wellCode);
- alarmJob.setJobStatus("0");
- alarmJob.setCreateTime(new Date());
- alarmJob.setJobcode(this.produceJobCode(devTypeName));
- alarmJob.setJobType(jobType);
- alarmJobMapper.insert(alarmJob);
- return alarmJob;
- }
-
- /**
- * 前缀+日期+4位流水号
- *
- * @param devTypeName
- * @return
- */
- private String produceJobCode(String devTypeName) {
- String pre = devTypeName;
- String dataStr = sdf6.format(new Date());
- String fix = this.getJobCodeMaxSerial(pre + dataStr);
- return StringUtils.isEmpty(fix) ? pre + dataStr + String.format("%04d", Long.valueOf(StringUtils.isEmpty(fix)?"0":fix) + 1L) : pre + dataStr + "0001";
- }
-
-
- private String getJobCodeMaxSerial(String jobcode) {
- String MaxSerialJobCode = alarmJobMapper.getJobCodeMaxSerial(jobcode);
- String fix = "";
- if (null != MaxSerialJobCode && MaxSerialJobCode.length() > 4) {
- fix = MaxSerialJobCode.substring(MaxSerialJobCode.length() - 4);
- }
- return fix;
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmJob.java b/src/main/java/com/casic/entity/AlarmJob.java
deleted file mode 100644
index 8a0f764..0000000
--- a/src/main/java/com/casic/entity/AlarmJob.java
+++ /dev/null
@@ -1,165 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- *
- * 报警工单表
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_job")
-public class AlarmJob extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- private Long id;
- /**
- * 工单编号
- */
- @TableField("JOBCODE")
- private String jobcode;
- /**
- * 工单类型
- */
- @TableField("JOG_TYPE")
- private String jobType;
- /**
- * 井编号
- */
- @TableField("WELL_CODE")
- private String wellCode;
- /**
- * 设备编号
- */
- @TableField("DEVCODE")
- private String devcode;
- /**
- * 工单创建时间
- */
- @TableField("CREATE_TIME")
- private Date createTime;
- /**
- * 工单状态(0待处理,1待确认,2处理中,3完成)
- */
- @TableField("JOB_STATUS")
- private String jobStatus;
- /**
- * 接单人员
- */
- @TableField("GET_JOB_PERSON")
- private Long getJobPerson;
- /**
- * 接单时间
- */
- @TableField("GET_JOB_TIME")
- private Date getJobTime;
- /**
- * 应接单时间
- */
- @TableField("SHOULD_GET_TIME")
- private Date shouldGetTime;
- /**
- * 第一现场情况
- */
- @TableField("FIRST_STATE")
- private String firstState;
- /**
- * 第一现场照片
- */
- @TableField("FIRST_STATE_PHOTOS")
- private String firstStatePhotos;
- /**
- * 确认人员
- */
- @TableField("CONFIRM_JOB_PERSON")
- private Long confirmJobPerson;
- /**
- * 确认时间
- */
- @TableField("CONFRIM_JOB_TIME")
- private Date confrimJobTime;
- /**
- * 处理人员
- */
- @TableField("HANDLE_JOB_Person")
- private Long handleJobPerson;
- /**
- * 处理时间
- */
- @TableField("HANDLE_JOB_TIME")
- private Date handleJobTime;
- /**
- * 维护情况记录
- */
- @TableField("HANDLE_MESSAGE")
- private String handleMessage;
- /**
- * 维护图片
- */
- @TableField("HANDLE_PHOTOS")
- private String handlePhotos;
- /**
- * 工单流转记录
- */
- @TableField("FLOW")
- private String flow;
-
- @TableField("JOB_BELONG_TO")
- private Long jobBelongTo;
-
- @TableField("JOB_FLAG_DELAY")
- private String jobFlagDelay;
-
- @TableField("JOB_FLAG_1")
- private String jobFlag1;
-
- @TableField(exist = false)
- private String alarmValue;
-
- @TableField(exist = false)
- private String alarmContentName;
-
- @TableField(exist = false)
- private Integer recordId;
-
- @Override
- public String toString() {
- return "AlarmJob{" +
- "id=" + id +
- ", jobcode=" + jobcode +
- ", jogType=" + jobType +
- ", wellCode=" + wellCode +
- ", devcode=" + devcode +
- ", createTime=" + createTime +
- ", jobStatus=" + jobStatus +
- ", getJobPerson=" + getJobPerson +
- ", getJobTime=" + getJobTime +
- ", firstState=" + firstState +
- ", firstStatePhotos=" + firstStatePhotos +
- ", confirmJobPerson=" + confirmJobPerson +
- ", confrimJobTime=" + confrimJobTime +
- ", handleJobPerson=" + handleJobPerson +
- ", handleJobTime=" + handleJobTime +
- ", handleMessage=" + handleMessage +
- ", handlePhotos=" + handlePhotos +
- ", flow=" + flow +
- ", recordId=" + recordId +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmRecord.java b/src/main/java/com/casic/entity/AlarmRecord.java
new file mode 100644
index 0000000..137d805
--- /dev/null
+++ b/src/main/java/com/casic/entity/AlarmRecord.java
@@ -0,0 +1,106 @@
+package com.casic.entity;
+
+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 com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *
+ *
+ *
+ *
+ * @author casic123
+ * @since 2019-05-17
+ */
+@Data
+@TableName("ALARM_ALARM_RECORD")
+public class AlarmRecord extends Model {
+
+
+ private static final long serialVersionUID = 1L;
+ /**
+ * 主键
+ */
+ @TableId(value = "DBID")
+ private Long dbid;
+ /**
+ * 设备编号
+ */
+ @TableField("DEVICE_CODE")
+ private String deviceCode;
+ /**
+ * 设备类型名称
+ */
+ @TableField("DEVICE_TYPE_NAME")
+ private String deviceTypeName;
+ /**
+ * 是否推送,默认0
+ */
+ @TableField("ISSEND")
+ private String issend;
+ /**
+ * 默认default
+ */
+ @TableField("ITEMNAME")
+ private String itemname;
+ /**
+ * 没有数值
+ */
+ @TableField("ITEMVALUE")
+ private String itemvalue;
+ /**
+ * 1
+ */
+ @TableField("MESSAGE")
+ private String message;
+ /**
+ * 0
+ */
+ @TableField("MESSAGE_STATUS")
+ private String messageStatus;
+
+
+ /**
+ * 0
+ */
+ @TableField("RECORDCODE")
+ private String recordcode;
+ /**
+ * 告警日期
+ */
+ @TableField("RECORDDATE")
+ private Date recorddate;
+ /**
+ * 工单编号
+ */
+ @TableField("DEVICE_ID")
+ private Long deviceId;
+
+ /**
+ * 删除标志,默认为1
+ */
+ private Integer active;
+
+ @Override
+ public String toString() {
+ return "AlarmRecord{" +
+ "dbid=" + dbid +
+ ", deviceCode='" + deviceCode + '\'' +
+ ", deviceTypeName='" + deviceTypeName + '\'' +
+ ", issend='" + issend + '\'' +
+ ", itemname='" + itemname + '\'' +
+ ", itemvalue='" + itemvalue + '\'' +
+ ", message='" + message + '\'' +
+ ", messageStatus='" + messageStatus + '\'' +
+ ", recordcode='" + recordcode + '\'' +
+ ", recorddate=" + recorddate +
+ ", deviceId=" + deviceId +
+ ", active=" + active +
+ '}';
+ }
+}
diff --git a/src/main/java/com/casic/entity/AlarmRecords.java b/src/main/java/com/casic/entity/AlarmRecords.java
deleted file mode 100644
index 88b0b26..0000000
--- a/src/main/java/com/casic/entity/AlarmRecords.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- *
- *
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_records")
-public class AlarmRecords extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- 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;
-
- @Override
- public String toString() {
- return "AlarmRecords{" +
- "id=" + id +
- ", deviceId=" + deviceId +
- ", devcode=" + devcode +
- ", wellCode=" + wellCode +
- ", alarmType=" + alarmType +
- ", alarmContent=" + alarmContent +
- ", alarmValue=" + alarmValue +
- ", alarmLevel=" + alarmLevel +
- ", alarmMessage=" + alarmMessage +
- ", alarmTime=" + alarmTime +
- ", status=" + status +
- ", jobId=" + jobId +
- ", jobStatus=" + jobStatus +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/ButaneData.java b/src/main/java/com/casic/entity/ButaneData.java
new file mode 100644
index 0000000..2e051be
--- /dev/null
+++ b/src/main/java/com/casic/entity/ButaneData.java
@@ -0,0 +1,28 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Builder;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@TableName("CASIC_BUTANE_INFO")
+@Builder
+public class ButaneData extends Model {
+
+ @TableId(value = "DBID")
+ private Long dbid;
+
+ private String devcode;
+
+ private String status;
+
+ private String descn;
+
+ private Date logtime;
+
+}
diff --git a/src/main/java/com/casic/entity/Device.java b/src/main/java/com/casic/entity/Device.java
new file mode 100644
index 0000000..0360e41
--- /dev/null
+++ b/src/main/java/com/casic/entity/Device.java
@@ -0,0 +1,27 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@TableName("ALARM_DEVICE")
+public class Device implements Serializable {
+ /**
+ * 设备基本信息表
+ */
+ private static final long serialVersionUID = -2023118078562324658L;
+ @TableId(value = "DBID")
+ private Long id;
+ @TableId(value = "DEVCODE")
+ private String devCode;
+ @TableId(value = "DEVNAME")
+ private String devName;
+ @TableId(value = "FACTORY")
+ private String factory;
+ @TableId(value = "SIMID")
+ private String simid; // SIM卡号
+
+}
diff --git a/src/main/java/com/casic/model/HostData.java b/src/main/java/com/casic/model/HostData.java
new file mode 100644
index 0000000..40cefa7
--- /dev/null
+++ b/src/main/java/com/casic/model/HostData.java
@@ -0,0 +1,16 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class HostData {
+ private String model;
+ private String dev_id;
+ private String chip_id;
+ private String mfd_day;
+ private String sw_ver;
+ private String hw_ver;
+ private String duration;
+ private String d_ch_cnt;
+ private String a_ch_cnt;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReceiveDataParam.java b/src/main/java/com/casic/model/ReceiveDataParam.java
new file mode 100644
index 0000000..3a17d24
--- /dev/null
+++ b/src/main/java/com/casic/model/ReceiveDataParam.java
@@ -0,0 +1,20 @@
+package com.casic.model;
+
+import lombok.Data;
+
+import java.util.HashMap;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReceiveDataParam {
+ private String deviceType;
+ private String iotId;
+ private String requestId;
+ private Object checkFailedData;
+ private String productKey;
+ private String deviceName;
+ private HashMap items;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReportUpdataParam.java b/src/main/java/com/casic/model/ReportUpdataParam.java
new file mode 100644
index 0000000..20c2ca9
--- /dev/null
+++ b/src/main/java/com/casic/model/ReportUpdataParam.java
@@ -0,0 +1,23 @@
+package com.casic.model;
+
+import lombok.Data;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReportUpdataParam {
+ private String msg_type;
+ private String event_change;
+ private String error_val;
+ private String ch_cnt;
+ private String erro_cnt;
+ private String alarm_low_cnt;
+ private String alarm_high_cnt;
+ private String offline_cnt;
+ private String rtd_val;
+ private String adc_val;
+ private String status_val;
+ private String time;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/WirelessData.java b/src/main/java/com/casic/model/WirelessData.java
new file mode 100644
index 0000000..b062c13
--- /dev/null
+++ b/src/main/java/com/casic/model/WirelessData.java
@@ -0,0 +1,19 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class WirelessData {
+ private String model;
+ private String IMEI;
+ private String ICCID;
+ private String sw_ver;
+ private String hw_ver;
+ private String ch_cnt;
+ private String heartbeat_inv;
+ private String up_pcnt;
+ private String up_pcnt_inv;
+ private String csq;
+}
+
+
diff --git a/src/main/java/com/casic/schedule/TaskConfigurer.java b/src/main/java/com/casic/schedule/TaskConfigurer.java
new file mode 100644
index 0000000..77c5d5a
--- /dev/null
+++ b/src/main/java/com/casic/schedule/TaskConfigurer.java
@@ -0,0 +1,47 @@
+package com.casic.schedule;
+
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+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
+@Slf4j
+@RequiredArgsConstructor
+public class TaskConfigurer implements SchedulingConfigurer {
+
+ @Value("${casic.device.online.cron}")
+ private String onlineStateCron;
+
+ private final DeviceDataService deviceDataService;
+
+ @Override
+ public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
+ TriggerTask onlineStateTask = new TriggerTask(nextDayDevice(),
+ triggerContext -> {
+ return new CronTrigger(onlineStateCron).nextExecutionTime(triggerContext);
+ });
+ taskRegistrar.addTriggerTask(onlineStateTask);
+ }
+
+ private Runnable nextDayDevice() {
+ return new Runnable() {
+ @Override
+ public void run() {
+ log.info("定时查询在线离线运行了...");
+ deviceDataService.checkAndUpdateDeviceOnline();
+ }
+ };
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/service/AlarmRecordFly.java b/src/main/java/com/casic/service/AlarmRecordFly.java
new file mode 100644
index 0000000..47c7969
--- /dev/null
+++ b/src/main/java/com/casic/service/AlarmRecordFly.java
@@ -0,0 +1,39 @@
+package com.casic.service;
+
+import com.casic.entity.AlarmRecord;
+
+public class AlarmRecordFly {
+
+ private static AlarmRecord alarmRecord;
+
+ static {
+ alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("0");
+ alarmRecord.setActive(1);
+ }
+
+ public static AlarmRecord getAlarmRecord() {
+ return alarmRecord;
+ }
+
+ public static AlarmRecord getPrototype(){
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("-1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("1");
+ alarmRecord.setActive(1);
+ return alarmRecord;
+ }
+
+
+
+
+}
diff --git a/src/main/java/com/casic/service/DeviceDataService.java b/src/main/java/com/casic/service/DeviceDataService.java
new file mode 100644
index 0000000..f972981
--- /dev/null
+++ b/src/main/java/com/casic/service/DeviceDataService.java
@@ -0,0 +1,7 @@
+package com.casic.service;
+
+public interface DeviceDataService {
+
+ void checkAndUpdateDeviceOnline();
+
+}
diff --git a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java
new file mode 100644
index 0000000..f41a44d
--- /dev/null
+++ b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java
@@ -0,0 +1,68 @@
+package com.casic.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.casic.dao.AlarmRecordsMapper;
+import com.casic.dao.DeviceDataMapper;
+import com.casic.entity.AlarmRecord;
+import com.casic.service.AlarmRecordFly;
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @author cz
+ */
+@Service
+@RequiredArgsConstructor
+public class DeviceDataServiceImpl extends ServiceImpl implements DeviceDataService {
+
+ private final DeviceDataMapper deviceDataMapper;
+
+ @Value("${casic.device.data-day}")
+ private Integer dataDay;
+
+ @Value("${casic.device.gas-dector.type}")
+ private Integer devciceType;
+
+
+ @Override
+ public void checkAndUpdateDeviceOnline() {
+ //查询硫化氢设备
+ List> devcodeList = deviceDataMapper.getDevcodeByType(devciceType);
+ //统一查询所有设备的3天内数据的设备编号,然后设备编号转成map,进行
+ List dataList = deviceDataMapper.getRecentData(dataDay);
+ List> dataSortDevcodeList = devcodeList;
+ if (dataList != null) {
+ Map devOnlineMap = new HashMap<>();
+ for (String devcodeData : dataList) {
+ devOnlineMap.put(devcodeData, "");
+ }
+ dataSortDevcodeList = dataSortDevcodeList.stream().filter(
+ e -> !devOnlineMap.containsKey((String) e.get("devcode"))).collect(Collectors.toList());
+ }
+ //批量产生离线报警
+ if (CollectionUtils.isNotEmpty(dataSortDevcodeList)) {
+ List alarmRecords = new ArrayList<>();
+ for (Map dataDevcodeMap : dataSortDevcodeList) {
+ alarmRecords.add(createAlarmRecord(((BigDecimal)dataDevcodeMap.get("id")).longValue(), (String) dataDevcodeMap.get("devcode")));
+ }
+ this.saveBatch(alarmRecords);
+ }
+ }
+
+ private AlarmRecord createAlarmRecord(Long id, String devcode) {
+ AlarmRecord alarmRecord = AlarmRecordFly.getPrototype();
+ alarmRecord.setRecorddate(new Date());
+ alarmRecord.setDbid(null);
+ alarmRecord.setDeviceCode(devcode);
+ alarmRecord.setDeviceId(id);
+ return alarmRecord;
+ }
+
+}
diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/src/main/java/com/casic/dao/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index fde1818..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -1,36 +1,24 @@
package com.casic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmRecords;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.Device;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
@Mapper
-public interface AlarmRecordsMapper extends BaseMapper {
+public interface AlarmRecordsMapper extends BaseMapper {
+ @Select("SELECT DBID " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Long getDevcode(@Param("devcode") String devcode);
- @Select("SELECT JOB_ID AS \"jobId\"\n " +
- "FROM alarm_records\n " +
- "WHERE DEVCODE = #{devcode}\n " +
- "AND ALARM_CONTENT = #{MsgContent}\n " +
- "AND STATUS='1'\n " +
- "AND JOB_ID>0 ")
- String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='0'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND ALARM_CONTENT = #{MsgContent}\n" +
- " AND STATUS='1'")
- Integer updateOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='3'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND STATUS='1'")
- Integer clearAlarm(@Param("devcode") String devcode);
-
+ @Select("SELECT DBID as id, DEVCODE as devCode, DEVNAME as devName, FACTORY as factory, SIMID as simid " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Device getDevice(@Param("devcode") String devcode);
}
diff --git a/src/main/java/com/casic/dao/ButaneDataMapper.java b/src/main/java/com/casic/dao/ButaneDataMapper.java
new file mode 100644
index 0000000..632c7d2
--- /dev/null
+++ b/src/main/java/com/casic/dao/ButaneDataMapper.java
@@ -0,0 +1,12 @@
+package com.casic.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.entity.ButaneData;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface ButaneDataMapper extends BaseMapper {
+
+
+}
diff --git a/src/main/java/com/casic/dao/DataGasMapper.java b/src/main/java/com/casic/dao/DataGasMapper.java
deleted file mode 100644
index 8a064f2..0000000
--- a/src/main/java/com/casic/dao/DataGasMapper.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.DataGasDector;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-
-import java.util.List;
-import java.util.Map;
-
-@Mapper
-public interface DataGasMapper extends BaseMapper {
-
- @Select("SELECT level,high_value " +
- "FROM alarm_level " +
- "WHERE device_type=#{deviceType} ")
- List> getAlarmLevelList(@Param("deviceType") Long deviceType);
-
- @Select("SELECT devcode " +
- "FROM data_gas_dector " +
- "WHERE devcode=#{devcode} " +
- "AND (EXTRACT(epoch FROM CAST(now() AS TIMESTAMPTZ))-EXTRACT(epoch FROM CAST(logtime AS TIMESTAMPTZ)))/60.0 < ${minutes} "+
- "ORDER BY logtime DESC " +
- "LIMIT 1")
- String getLastData(@Param("minutes") String minutes,
- @Param("devcode") String devcode);
-
- @Select("SELECT alarm_content " +
- "FROM base_alarm_content_type " +
- "WHERE device_type=#{deviceType}")
- String getGasMsgContent(@Param("deviceType")Long deviceType);
-
-
-}
diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java
new file mode 100644
index 0000000..e9456c1
--- /dev/null
+++ b/src/main/java/com/casic/dao/DeviceDataMapper.java
@@ -0,0 +1,18 @@
+package com.casic.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface DeviceDataMapper {
+
+ List> getDevcodeByType(@Param("devciceType") Integer devciceType);
+
+ List getRecentData(@Param("dataDay") Integer dataDay);
+
+ int updateOnlineByDevs(@Param("dataSortList") List dataSortDevcodeList);
+
+}
diff --git a/src/main/java/com/casic/dao/DeviceMapper.java b/src/main/java/com/casic/dao/DeviceMapper.java
deleted file mode 100644
index 73b574e..0000000
--- a/src/main/java/com/casic/dao/DeviceMapper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.Device;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Map;
-
-@Mapper
-public interface DeviceMapper extends BaseMapper {
-
- Map getWellCode(@Param("devcode") String devcode);
-
-}
diff --git a/src/main/java/com/casic/dao/impl/AlarmJobDao.java b/src/main/java/com/casic/dao/impl/AlarmJobDao.java
deleted file mode 100644
index 5131821..0000000
--- a/src/main/java/com/casic/dao/impl/AlarmJobDao.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.casic.dao.impl;
-
-import com.alibaba.druid.util.StringUtils;
-import com.casic.dao.AlarmJobMapper;
-import com.casic.entity.AlarmJob;
-import org.springframework.stereotype.Component;
-import xyz.downgoon.snowflake.Snowflake;
-
-import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-@Component
-public class AlarmJobDao {
-
- private static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMdd");
-
- private static Snowflake snowflake = new Snowflake(0, 2);
-// private static final Sn
-
- @Resource
- private AlarmJobMapper alarmJobMapper;
-
- public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) {
- AlarmJob alarmJob = new AlarmJob();
- alarmJob.setId(snowflake.nextId());
- alarmJob.setDevcode(devCode);
- alarmJob.setWellCode(wellCode);
- alarmJob.setJobStatus("0");
- alarmJob.setCreateTime(new Date());
- alarmJob.setJobcode(this.produceJobCode(devTypeName));
- alarmJob.setJobType(jobType);
- alarmJobMapper.insert(alarmJob);
- return alarmJob;
- }
-
- /**
- * 前缀+日期+4位流水号
- *
- * @param devTypeName
- * @return
- */
- private String produceJobCode(String devTypeName) {
- String pre = devTypeName;
- String dataStr = sdf6.format(new Date());
- String fix = this.getJobCodeMaxSerial(pre + dataStr);
- return StringUtils.isEmpty(fix) ? pre + dataStr + String.format("%04d", Long.valueOf(StringUtils.isEmpty(fix)?"0":fix) + 1L) : pre + dataStr + "0001";
- }
-
-
- private String getJobCodeMaxSerial(String jobcode) {
- String MaxSerialJobCode = alarmJobMapper.getJobCodeMaxSerial(jobcode);
- String fix = "";
- if (null != MaxSerialJobCode && MaxSerialJobCode.length() > 4) {
- fix = MaxSerialJobCode.substring(MaxSerialJobCode.length() - 4);
- }
- return fix;
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmJob.java b/src/main/java/com/casic/entity/AlarmJob.java
deleted file mode 100644
index 8a0f764..0000000
--- a/src/main/java/com/casic/entity/AlarmJob.java
+++ /dev/null
@@ -1,165 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- *
- * 报警工单表
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_job")
-public class AlarmJob extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- private Long id;
- /**
- * 工单编号
- */
- @TableField("JOBCODE")
- private String jobcode;
- /**
- * 工单类型
- */
- @TableField("JOG_TYPE")
- private String jobType;
- /**
- * 井编号
- */
- @TableField("WELL_CODE")
- private String wellCode;
- /**
- * 设备编号
- */
- @TableField("DEVCODE")
- private String devcode;
- /**
- * 工单创建时间
- */
- @TableField("CREATE_TIME")
- private Date createTime;
- /**
- * 工单状态(0待处理,1待确认,2处理中,3完成)
- */
- @TableField("JOB_STATUS")
- private String jobStatus;
- /**
- * 接单人员
- */
- @TableField("GET_JOB_PERSON")
- private Long getJobPerson;
- /**
- * 接单时间
- */
- @TableField("GET_JOB_TIME")
- private Date getJobTime;
- /**
- * 应接单时间
- */
- @TableField("SHOULD_GET_TIME")
- private Date shouldGetTime;
- /**
- * 第一现场情况
- */
- @TableField("FIRST_STATE")
- private String firstState;
- /**
- * 第一现场照片
- */
- @TableField("FIRST_STATE_PHOTOS")
- private String firstStatePhotos;
- /**
- * 确认人员
- */
- @TableField("CONFIRM_JOB_PERSON")
- private Long confirmJobPerson;
- /**
- * 确认时间
- */
- @TableField("CONFRIM_JOB_TIME")
- private Date confrimJobTime;
- /**
- * 处理人员
- */
- @TableField("HANDLE_JOB_Person")
- private Long handleJobPerson;
- /**
- * 处理时间
- */
- @TableField("HANDLE_JOB_TIME")
- private Date handleJobTime;
- /**
- * 维护情况记录
- */
- @TableField("HANDLE_MESSAGE")
- private String handleMessage;
- /**
- * 维护图片
- */
- @TableField("HANDLE_PHOTOS")
- private String handlePhotos;
- /**
- * 工单流转记录
- */
- @TableField("FLOW")
- private String flow;
-
- @TableField("JOB_BELONG_TO")
- private Long jobBelongTo;
-
- @TableField("JOB_FLAG_DELAY")
- private String jobFlagDelay;
-
- @TableField("JOB_FLAG_1")
- private String jobFlag1;
-
- @TableField(exist = false)
- private String alarmValue;
-
- @TableField(exist = false)
- private String alarmContentName;
-
- @TableField(exist = false)
- private Integer recordId;
-
- @Override
- public String toString() {
- return "AlarmJob{" +
- "id=" + id +
- ", jobcode=" + jobcode +
- ", jogType=" + jobType +
- ", wellCode=" + wellCode +
- ", devcode=" + devcode +
- ", createTime=" + createTime +
- ", jobStatus=" + jobStatus +
- ", getJobPerson=" + getJobPerson +
- ", getJobTime=" + getJobTime +
- ", firstState=" + firstState +
- ", firstStatePhotos=" + firstStatePhotos +
- ", confirmJobPerson=" + confirmJobPerson +
- ", confrimJobTime=" + confrimJobTime +
- ", handleJobPerson=" + handleJobPerson +
- ", handleJobTime=" + handleJobTime +
- ", handleMessage=" + handleMessage +
- ", handlePhotos=" + handlePhotos +
- ", flow=" + flow +
- ", recordId=" + recordId +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmRecord.java b/src/main/java/com/casic/entity/AlarmRecord.java
new file mode 100644
index 0000000..137d805
--- /dev/null
+++ b/src/main/java/com/casic/entity/AlarmRecord.java
@@ -0,0 +1,106 @@
+package com.casic.entity;
+
+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 com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *
+ *
+ *
+ *
+ * @author casic123
+ * @since 2019-05-17
+ */
+@Data
+@TableName("ALARM_ALARM_RECORD")
+public class AlarmRecord extends Model {
+
+
+ private static final long serialVersionUID = 1L;
+ /**
+ * 主键
+ */
+ @TableId(value = "DBID")
+ private Long dbid;
+ /**
+ * 设备编号
+ */
+ @TableField("DEVICE_CODE")
+ private String deviceCode;
+ /**
+ * 设备类型名称
+ */
+ @TableField("DEVICE_TYPE_NAME")
+ private String deviceTypeName;
+ /**
+ * 是否推送,默认0
+ */
+ @TableField("ISSEND")
+ private String issend;
+ /**
+ * 默认default
+ */
+ @TableField("ITEMNAME")
+ private String itemname;
+ /**
+ * 没有数值
+ */
+ @TableField("ITEMVALUE")
+ private String itemvalue;
+ /**
+ * 1
+ */
+ @TableField("MESSAGE")
+ private String message;
+ /**
+ * 0
+ */
+ @TableField("MESSAGE_STATUS")
+ private String messageStatus;
+
+
+ /**
+ * 0
+ */
+ @TableField("RECORDCODE")
+ private String recordcode;
+ /**
+ * 告警日期
+ */
+ @TableField("RECORDDATE")
+ private Date recorddate;
+ /**
+ * 工单编号
+ */
+ @TableField("DEVICE_ID")
+ private Long deviceId;
+
+ /**
+ * 删除标志,默认为1
+ */
+ private Integer active;
+
+ @Override
+ public String toString() {
+ return "AlarmRecord{" +
+ "dbid=" + dbid +
+ ", deviceCode='" + deviceCode + '\'' +
+ ", deviceTypeName='" + deviceTypeName + '\'' +
+ ", issend='" + issend + '\'' +
+ ", itemname='" + itemname + '\'' +
+ ", itemvalue='" + itemvalue + '\'' +
+ ", message='" + message + '\'' +
+ ", messageStatus='" + messageStatus + '\'' +
+ ", recordcode='" + recordcode + '\'' +
+ ", recorddate=" + recorddate +
+ ", deviceId=" + deviceId +
+ ", active=" + active +
+ '}';
+ }
+}
diff --git a/src/main/java/com/casic/entity/AlarmRecords.java b/src/main/java/com/casic/entity/AlarmRecords.java
deleted file mode 100644
index 88b0b26..0000000
--- a/src/main/java/com/casic/entity/AlarmRecords.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- *
- *
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_records")
-public class AlarmRecords extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- 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;
-
- @Override
- public String toString() {
- return "AlarmRecords{" +
- "id=" + id +
- ", deviceId=" + deviceId +
- ", devcode=" + devcode +
- ", wellCode=" + wellCode +
- ", alarmType=" + alarmType +
- ", alarmContent=" + alarmContent +
- ", alarmValue=" + alarmValue +
- ", alarmLevel=" + alarmLevel +
- ", alarmMessage=" + alarmMessage +
- ", alarmTime=" + alarmTime +
- ", status=" + status +
- ", jobId=" + jobId +
- ", jobStatus=" + jobStatus +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/ButaneData.java b/src/main/java/com/casic/entity/ButaneData.java
new file mode 100644
index 0000000..2e051be
--- /dev/null
+++ b/src/main/java/com/casic/entity/ButaneData.java
@@ -0,0 +1,28 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Builder;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@TableName("CASIC_BUTANE_INFO")
+@Builder
+public class ButaneData extends Model {
+
+ @TableId(value = "DBID")
+ private Long dbid;
+
+ private String devcode;
+
+ private String status;
+
+ private String descn;
+
+ private Date logtime;
+
+}
diff --git a/src/main/java/com/casic/entity/Device.java b/src/main/java/com/casic/entity/Device.java
new file mode 100644
index 0000000..0360e41
--- /dev/null
+++ b/src/main/java/com/casic/entity/Device.java
@@ -0,0 +1,27 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@TableName("ALARM_DEVICE")
+public class Device implements Serializable {
+ /**
+ * 设备基本信息表
+ */
+ private static final long serialVersionUID = -2023118078562324658L;
+ @TableId(value = "DBID")
+ private Long id;
+ @TableId(value = "DEVCODE")
+ private String devCode;
+ @TableId(value = "DEVNAME")
+ private String devName;
+ @TableId(value = "FACTORY")
+ private String factory;
+ @TableId(value = "SIMID")
+ private String simid; // SIM卡号
+
+}
diff --git a/src/main/java/com/casic/model/HostData.java b/src/main/java/com/casic/model/HostData.java
new file mode 100644
index 0000000..40cefa7
--- /dev/null
+++ b/src/main/java/com/casic/model/HostData.java
@@ -0,0 +1,16 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class HostData {
+ private String model;
+ private String dev_id;
+ private String chip_id;
+ private String mfd_day;
+ private String sw_ver;
+ private String hw_ver;
+ private String duration;
+ private String d_ch_cnt;
+ private String a_ch_cnt;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReceiveDataParam.java b/src/main/java/com/casic/model/ReceiveDataParam.java
new file mode 100644
index 0000000..3a17d24
--- /dev/null
+++ b/src/main/java/com/casic/model/ReceiveDataParam.java
@@ -0,0 +1,20 @@
+package com.casic.model;
+
+import lombok.Data;
+
+import java.util.HashMap;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReceiveDataParam {
+ private String deviceType;
+ private String iotId;
+ private String requestId;
+ private Object checkFailedData;
+ private String productKey;
+ private String deviceName;
+ private HashMap items;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReportUpdataParam.java b/src/main/java/com/casic/model/ReportUpdataParam.java
new file mode 100644
index 0000000..20c2ca9
--- /dev/null
+++ b/src/main/java/com/casic/model/ReportUpdataParam.java
@@ -0,0 +1,23 @@
+package com.casic.model;
+
+import lombok.Data;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReportUpdataParam {
+ private String msg_type;
+ private String event_change;
+ private String error_val;
+ private String ch_cnt;
+ private String erro_cnt;
+ private String alarm_low_cnt;
+ private String alarm_high_cnt;
+ private String offline_cnt;
+ private String rtd_val;
+ private String adc_val;
+ private String status_val;
+ private String time;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/WirelessData.java b/src/main/java/com/casic/model/WirelessData.java
new file mode 100644
index 0000000..b062c13
--- /dev/null
+++ b/src/main/java/com/casic/model/WirelessData.java
@@ -0,0 +1,19 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class WirelessData {
+ private String model;
+ private String IMEI;
+ private String ICCID;
+ private String sw_ver;
+ private String hw_ver;
+ private String ch_cnt;
+ private String heartbeat_inv;
+ private String up_pcnt;
+ private String up_pcnt_inv;
+ private String csq;
+}
+
+
diff --git a/src/main/java/com/casic/schedule/TaskConfigurer.java b/src/main/java/com/casic/schedule/TaskConfigurer.java
new file mode 100644
index 0000000..77c5d5a
--- /dev/null
+++ b/src/main/java/com/casic/schedule/TaskConfigurer.java
@@ -0,0 +1,47 @@
+package com.casic.schedule;
+
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+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
+@Slf4j
+@RequiredArgsConstructor
+public class TaskConfigurer implements SchedulingConfigurer {
+
+ @Value("${casic.device.online.cron}")
+ private String onlineStateCron;
+
+ private final DeviceDataService deviceDataService;
+
+ @Override
+ public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
+ TriggerTask onlineStateTask = new TriggerTask(nextDayDevice(),
+ triggerContext -> {
+ return new CronTrigger(onlineStateCron).nextExecutionTime(triggerContext);
+ });
+ taskRegistrar.addTriggerTask(onlineStateTask);
+ }
+
+ private Runnable nextDayDevice() {
+ return new Runnable() {
+ @Override
+ public void run() {
+ log.info("定时查询在线离线运行了...");
+ deviceDataService.checkAndUpdateDeviceOnline();
+ }
+ };
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/service/AlarmRecordFly.java b/src/main/java/com/casic/service/AlarmRecordFly.java
new file mode 100644
index 0000000..47c7969
--- /dev/null
+++ b/src/main/java/com/casic/service/AlarmRecordFly.java
@@ -0,0 +1,39 @@
+package com.casic.service;
+
+import com.casic.entity.AlarmRecord;
+
+public class AlarmRecordFly {
+
+ private static AlarmRecord alarmRecord;
+
+ static {
+ alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("0");
+ alarmRecord.setActive(1);
+ }
+
+ public static AlarmRecord getAlarmRecord() {
+ return alarmRecord;
+ }
+
+ public static AlarmRecord getPrototype(){
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("-1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("1");
+ alarmRecord.setActive(1);
+ return alarmRecord;
+ }
+
+
+
+
+}
diff --git a/src/main/java/com/casic/service/DeviceDataService.java b/src/main/java/com/casic/service/DeviceDataService.java
new file mode 100644
index 0000000..f972981
--- /dev/null
+++ b/src/main/java/com/casic/service/DeviceDataService.java
@@ -0,0 +1,7 @@
+package com.casic.service;
+
+public interface DeviceDataService {
+
+ void checkAndUpdateDeviceOnline();
+
+}
diff --git a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java
new file mode 100644
index 0000000..f41a44d
--- /dev/null
+++ b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java
@@ -0,0 +1,68 @@
+package com.casic.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.casic.dao.AlarmRecordsMapper;
+import com.casic.dao.DeviceDataMapper;
+import com.casic.entity.AlarmRecord;
+import com.casic.service.AlarmRecordFly;
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @author cz
+ */
+@Service
+@RequiredArgsConstructor
+public class DeviceDataServiceImpl extends ServiceImpl implements DeviceDataService {
+
+ private final DeviceDataMapper deviceDataMapper;
+
+ @Value("${casic.device.data-day}")
+ private Integer dataDay;
+
+ @Value("${casic.device.gas-dector.type}")
+ private Integer devciceType;
+
+
+ @Override
+ public void checkAndUpdateDeviceOnline() {
+ //查询硫化氢设备
+ List> devcodeList = deviceDataMapper.getDevcodeByType(devciceType);
+ //统一查询所有设备的3天内数据的设备编号,然后设备编号转成map,进行
+ List dataList = deviceDataMapper.getRecentData(dataDay);
+ List> dataSortDevcodeList = devcodeList;
+ if (dataList != null) {
+ Map devOnlineMap = new HashMap<>();
+ for (String devcodeData : dataList) {
+ devOnlineMap.put(devcodeData, "");
+ }
+ dataSortDevcodeList = dataSortDevcodeList.stream().filter(
+ e -> !devOnlineMap.containsKey((String) e.get("devcode"))).collect(Collectors.toList());
+ }
+ //批量产生离线报警
+ if (CollectionUtils.isNotEmpty(dataSortDevcodeList)) {
+ List alarmRecords = new ArrayList<>();
+ for (Map dataDevcodeMap : dataSortDevcodeList) {
+ alarmRecords.add(createAlarmRecord(((BigDecimal)dataDevcodeMap.get("id")).longValue(), (String) dataDevcodeMap.get("devcode")));
+ }
+ this.saveBatch(alarmRecords);
+ }
+ }
+
+ private AlarmRecord createAlarmRecord(Long id, String devcode) {
+ AlarmRecord alarmRecord = AlarmRecordFly.getPrototype();
+ alarmRecord.setRecorddate(new Date());
+ alarmRecord.setDbid(null);
+ alarmRecord.setDeviceCode(devcode);
+ alarmRecord.setDeviceId(id);
+ return alarmRecord;
+ }
+
+}
diff --git a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
index 4591d50..176b389 100644
--- a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
@@ -1,53 +1,41 @@
package com.casic.service.impl;
-import com.alibaba.druid.util.StringUtils;
-import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.casic.dao.AlarmRecordsMapper;
-import com.casic.dao.DataGasMapper;
-import com.casic.dao.DeviceMapper;
-import com.casic.dao.impl.AlarmJobDao;
-import com.casic.entity.AlarmJob;
-import com.casic.entity.AlarmRecords;
-import com.casic.entity.DataGasDector;
+import com.casic.dao.ButaneDataMapper;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.ButaneData;
import com.casic.entity.Device;
import com.casic.model.ResponseData;
+import com.casic.service.AlarmRecordFly;
import com.casic.service.DeviceService;
+import com.casic.util.SendUtil;
+import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import xyz.downgoon.snowflake.Snowflake;
-import javax.annotation.Resource;
import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import java.util.function.Supplier;
@Slf4j
@Service
+@RequiredArgsConstructor
public class DeviceServiceImpl implements DeviceService {
-
- @Value("${casic.device.gas-dector.enable-local}")
- private Boolean enableLocal;
- @Value("${casic.device.gas-dector.type}")
- private Long deviceType;
- @Resource
- private DataGasMapper dataGasMapper;
- @Resource
- private AlarmRecordsMapper alarmRecordsMapper;
- @Resource
- private DeviceMapper deviceMapper;
- @Autowired
- private AlarmJobDao alarmJobDao;
+ private final ButaneDataMapper butaneDataMapper;
+ private final AlarmRecordsMapper alarmRecordsMapper;
private static Snowflake snowflake = new Snowflake(0, 2);
+ @Autowired
+ private SendUtil sendUtil;
@Override
public ResponseData testMysql() {
+
ResponseData responseData = new ResponseData();
responseData.setMessage("保存成功");
responseData.setCode(1);
@@ -62,18 +50,16 @@
public ResponseData saveDataGas(Map receiveData) {
ResponseData responseData = new ResponseData();
try {
- Map payloadData;
+ Map payloadData = receiveData;
if (receiveData.containsKey("payload")) {
payloadData = (Map) receiveData.get("payload");
- }else{
- payloadData=receiveData;
}
- this.flagSelectProcessor("eventType", payloadData, () -> gasStatusUpdate(payloadData))
- .flagSelectProcessor("gas_sample_value", payloadData, () -> dealNormalData(receiveData));
+ this.flagSelectProcessor("gas_sensor_state", payloadData, () -> gasStatusUpdate(receiveData))
+ .flagSelectProcessor("heartbeat_time", payloadData, () -> dealNormalData(receiveData));
responseData.setCode(200);
responseData.setMessage("保存成功");
} catch (Exception dex) {
- log.error("主题:广东台燃气设备存储异常,异常信息:{}", dex.getMessage());
+ log.error("主题:燃气设备存储异常,异常信息:{}", dex.getMessage());
responseData.setCode(500);
responseData.setMessage("保存异常");
}
@@ -95,99 +81,110 @@
* @return
*/
private Boolean gasStatusUpdate(Map receiveData) {
- Long lonTimetemp = Long.valueOf(receiveData.get("timestamp").toString());
- String onlindeStatus = receiveData.get("eventType").toString();
- String devcode = receiveData.get("imei").toString();
- QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("devcode", devcode);
- queryWrapper.eq("valid", 1);
- Device device = new Device();
- if (!StringUtils.isEmpty(onlindeStatus)) {
- device.setOnlineState(onlindeStatus);
- Date logTime = new Date();
- logTime.setTime(lonTimetemp);
- device.setLogtime(logTime);
- deviceMapper.update(device, queryWrapper);
- return true;
+ AlarmRecord alarmRecord = AlarmRecordFly.getAlarmRecord();
+ Map payloadData = (Map) receiveData.get("payload");
+ //判断事件类型 0正常 1低报 2高报
+ String alarmSituation = payloadData.get("gas_sensor_state").toString();
+ String devcode = receiveData.get("IMEI").toString();
+ clearOnlineData(devcode);
+ //构建数据
+ ButaneData butaneData = ButaneData.builder()
+ .devcode(devcode)
+ .dbid(snowflake.nextId())
+ .build();
+ populateTime(receiveData, butaneData, alarmRecord);
+ switch (alarmSituation) {
+ case "0":
+// butaneData.setDescn("状态正常");
+// butaneData.setStatus("0");
+ break;
+ default:
+ //第一条上来,消除报警
+ clearAlarmData(devcode);
+ //产生新的报警,消除报警
+ butaneData.setDescn("可燃气体探测器报警");
+ butaneData.setStatus("1");
+ synchronized (alarmRecord) {
+ alarmRecord.setDbid(null);
+ alarmRecord.setDeviceCode(devcode);
+ alarmRecord.setDeviceId(alarmRecordsMapper.getDevcode(devcode));
+ alarmRecordsMapper.insert(alarmRecord);
+ }
+ butaneDataMapper.insert(butaneData);
+
+ try {
+ //推送短信至第三方
+ Device device = alarmRecordsMapper.getDevice(devcode);
+ if (null == device) {
+ log.error("设备不存在,编号:" + devcode);
+ return false;
+ }
+ JSONObject eventObj = new JSONObject();
+ eventObj.put("type", "燃气报警");
+ sendUtil.sendEventBySms(device, eventObj);
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ }
}
- return false;
+ return true;
}
public Boolean dealNormalData(Map receiveData) {
String devcode = receiveData.get("IMEI").toString();
- if (!StringUtils.isEmpty(devcode)) {
- Map deviceMap = deviceMapper.getWellCode(devcode);
- //保存数据,无论是否有设备在库内
- DataGasDector dataGasDector = this.saveNormalData(receiveData, deviceMap);
- if (ObjectUtils.isEmpty(deviceMap)) {
- log.info("没有该设备编号录入" + devcode);
- if (enableLocal) {
- return true;
- }
- }
- //自动消除报警
- this.alarmRecordsMapper.clearAlarm(devcode);
- this.dataTaskJudge(deviceMap, dataGasDector);
- return true;
+ //第一条上来,清除离线
+ clearOnlineData(devcode);
+ ButaneData butaneData = ButaneData.builder()
+ .devcode(devcode)
+ .dbid(snowflake.nextId())
+ .descn("状态正常")
+ .status("0")
+ .build();
+ if (!ObjectUtils.isEmpty(receiveData) && receiveData.containsKey("timestamp")) {
+ butaneData.setLogtime(new Date(Long.valueOf(receiveData.get("timestamp").toString())));
+ } else {
+ butaneData.setLogtime(new Date());
}
+ butaneDataMapper.insert(butaneData);
return false;
}
- private DataGasDector saveNormalData(Map receiveData, Map deviceMap) {
- DataGasDector dataGasDector = new DataGasDector();
- dataGasDector.setId(snowflake.nextId());
- dataGasDector.setDevcode(receiveData.get("IMEI").toString());
- dataGasDector.setWellCode(!ObjectUtils.isEmpty(deviceMap) && deviceMap.containsKey("wellCode") ? deviceMap.get("wellCode").toString() : "");
- dataGasDector.setLogtime(new Date());
+ private void populateTime(Map receiveData, ButaneData butaneData, AlarmRecord alarmRecord) {
if (!ObjectUtils.isEmpty(receiveData) && receiveData.containsKey("timestamp")) {
- dataGasDector.setUptime(new Date(Long.valueOf(receiveData.get("timestamp").toString())));
+ Date logtime = new Date(Long.valueOf(receiveData.get("timestamp").toString()));
+ butaneData.setLogtime(logtime);
+ alarmRecord.setRecorddate(logtime);
} else {
- dataGasDector.setUptime(new Date());
+ alarmRecord.setRecorddate(new Date());
+ butaneData.setLogtime(new Date());
}
- Map gascontent = (Map)receiveData.get("payload");
- if (!ObjectUtils.isEmpty(gascontent)) {
- if (gascontent.containsKey("gas_sample_value")) {
- dataGasDector.setStrength(gascontent.get("gas_sample_value").toString());
- }
- }
- dataGasMapper.insert(dataGasDector);
- return dataGasDector;
}
- /**
- * 报警存库
- */
- private void dataTaskJudge(Map deviceMap, DataGasDector dataGasDector) {
- List> alarmLevelList = dataGasMapper.getAlarmLevelList(deviceType);
- String wellCode = dataGasDector.getWellCode();
- Long deviceId = !ObjectUtils.isEmpty(deviceMap) && deviceMap.containsKey("wellCode") ? Long.valueOf(String.valueOf(deviceMap.get("deviceId"))) : -1;
- final String gasMsgContent = dataGasMapper.getGasMsgContent(deviceType);
- for (Map alarmLevelMap : alarmLevelList) {
- if (Float.valueOf(dataGasDector.getStrength()) > Float.valueOf(String.valueOf(alarmLevelMap.get("high_value")))) {
- AlarmRecords alarmRecord = new AlarmRecords();
- alarmRecord.setId(snowflake.nextId());
- alarmRecord.setDeviceId(deviceId);
- alarmRecord.setDevcode(dataGasDector.getDevcode());
- alarmRecord.setWellCode(wellCode);
- alarmRecord.setAlarmType("1"); // 业务报警
- alarmRecord.setAlarmContent(gasMsgContent);
- alarmRecord.setAlarmValue(dataGasDector.getStrength());
- alarmRecord.setAlarmTime(new Date());
- alarmRecord.setStatus("1");
- alarmRecord.setAlarmLevel(Integer.valueOf(alarmLevelMap.get("level").toString()));
- alarmRecord.setAlarmMessage(gasMsgContent);
- String jobId = alarmRecordsMapper.isOldAlarmRecord(dataGasDector.getDevcode(), gasMsgContent);
- // 超出报警阈值 生成一条报警消息
- if (!StringUtils.isEmpty(jobId)) {
- alarmRecordsMapper.updateOldAlarmRecord(dataGasDector.getDevcode(), gasMsgContent);
- alarmRecord.setJobId(Long.valueOf(jobId));
- } else {
- AlarmJob alarmJob = alarmJobDao.saveData(dataGasDector.getStrength(), wellCode, "RQZD", "1");
- alarmRecord.setJobId(alarmJob.getId());
- }
- alarmRecordsMapper.insert(alarmRecord);
- break;
- }
+ private void clearAlarmData(String devcode) {
+ QueryWrapper queryWrapper = new QueryWrapper();
+ queryWrapper.eq("DEVICE_CODE", devcode);
+ queryWrapper.eq("ACTIVE", 1);
+ try {
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setActive(0);
+ alarmRecordsMapper.update(alarmRecord, queryWrapper);
+ } catch (Exception e) {
+ log.error("清除报警失败,设备编号为{},异常信息{}", devcode, e);
}
}
+
+ private void clearOnlineData(String devcode) {
+ QueryWrapper queryWrapper = new QueryWrapper();
+ queryWrapper.eq("DEVICE_CODE", devcode);
+ queryWrapper.eq("ACTIVE", 1);
+ queryWrapper.eq("MESSAGE_STATUS", "0");
+ queryWrapper.eq("RECORDCODE", "1");
+ try {
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setActive(0);
+ alarmRecordsMapper.update(alarmRecord, queryWrapper);
+ } catch (Exception e) {
+ log.error("清除报警失败,设备编号为{},异常信息{}", devcode, e);
+ }
+ }
+
}
diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/src/main/java/com/casic/dao/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index fde1818..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -1,36 +1,24 @@
package com.casic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmRecords;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.Device;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
@Mapper
-public interface AlarmRecordsMapper extends BaseMapper {
+public interface AlarmRecordsMapper extends BaseMapper {
+ @Select("SELECT DBID " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Long getDevcode(@Param("devcode") String devcode);
- @Select("SELECT JOB_ID AS \"jobId\"\n " +
- "FROM alarm_records\n " +
- "WHERE DEVCODE = #{devcode}\n " +
- "AND ALARM_CONTENT = #{MsgContent}\n " +
- "AND STATUS='1'\n " +
- "AND JOB_ID>0 ")
- String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='0'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND ALARM_CONTENT = #{MsgContent}\n" +
- " AND STATUS='1'")
- Integer updateOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='3'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND STATUS='1'")
- Integer clearAlarm(@Param("devcode") String devcode);
-
+ @Select("SELECT DBID as id, DEVCODE as devCode, DEVNAME as devName, FACTORY as factory, SIMID as simid " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Device getDevice(@Param("devcode") String devcode);
}
diff --git a/src/main/java/com/casic/dao/ButaneDataMapper.java b/src/main/java/com/casic/dao/ButaneDataMapper.java
new file mode 100644
index 0000000..632c7d2
--- /dev/null
+++ b/src/main/java/com/casic/dao/ButaneDataMapper.java
@@ -0,0 +1,12 @@
+package com.casic.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.entity.ButaneData;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface ButaneDataMapper extends BaseMapper {
+
+
+}
diff --git a/src/main/java/com/casic/dao/DataGasMapper.java b/src/main/java/com/casic/dao/DataGasMapper.java
deleted file mode 100644
index 8a064f2..0000000
--- a/src/main/java/com/casic/dao/DataGasMapper.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.DataGasDector;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-
-import java.util.List;
-import java.util.Map;
-
-@Mapper
-public interface DataGasMapper extends BaseMapper {
-
- @Select("SELECT level,high_value " +
- "FROM alarm_level " +
- "WHERE device_type=#{deviceType} ")
- List> getAlarmLevelList(@Param("deviceType") Long deviceType);
-
- @Select("SELECT devcode " +
- "FROM data_gas_dector " +
- "WHERE devcode=#{devcode} " +
- "AND (EXTRACT(epoch FROM CAST(now() AS TIMESTAMPTZ))-EXTRACT(epoch FROM CAST(logtime AS TIMESTAMPTZ)))/60.0 < ${minutes} "+
- "ORDER BY logtime DESC " +
- "LIMIT 1")
- String getLastData(@Param("minutes") String minutes,
- @Param("devcode") String devcode);
-
- @Select("SELECT alarm_content " +
- "FROM base_alarm_content_type " +
- "WHERE device_type=#{deviceType}")
- String getGasMsgContent(@Param("deviceType")Long deviceType);
-
-
-}
diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java
new file mode 100644
index 0000000..e9456c1
--- /dev/null
+++ b/src/main/java/com/casic/dao/DeviceDataMapper.java
@@ -0,0 +1,18 @@
+package com.casic.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface DeviceDataMapper {
+
+ List> getDevcodeByType(@Param("devciceType") Integer devciceType);
+
+ List getRecentData(@Param("dataDay") Integer dataDay);
+
+ int updateOnlineByDevs(@Param("dataSortList") List dataSortDevcodeList);
+
+}
diff --git a/src/main/java/com/casic/dao/DeviceMapper.java b/src/main/java/com/casic/dao/DeviceMapper.java
deleted file mode 100644
index 73b574e..0000000
--- a/src/main/java/com/casic/dao/DeviceMapper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.Device;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Map;
-
-@Mapper
-public interface DeviceMapper extends BaseMapper {
-
- Map getWellCode(@Param("devcode") String devcode);
-
-}
diff --git a/src/main/java/com/casic/dao/impl/AlarmJobDao.java b/src/main/java/com/casic/dao/impl/AlarmJobDao.java
deleted file mode 100644
index 5131821..0000000
--- a/src/main/java/com/casic/dao/impl/AlarmJobDao.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.casic.dao.impl;
-
-import com.alibaba.druid.util.StringUtils;
-import com.casic.dao.AlarmJobMapper;
-import com.casic.entity.AlarmJob;
-import org.springframework.stereotype.Component;
-import xyz.downgoon.snowflake.Snowflake;
-
-import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-@Component
-public class AlarmJobDao {
-
- private static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMdd");
-
- private static Snowflake snowflake = new Snowflake(0, 2);
-// private static final Sn
-
- @Resource
- private AlarmJobMapper alarmJobMapper;
-
- public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) {
- AlarmJob alarmJob = new AlarmJob();
- alarmJob.setId(snowflake.nextId());
- alarmJob.setDevcode(devCode);
- alarmJob.setWellCode(wellCode);
- alarmJob.setJobStatus("0");
- alarmJob.setCreateTime(new Date());
- alarmJob.setJobcode(this.produceJobCode(devTypeName));
- alarmJob.setJobType(jobType);
- alarmJobMapper.insert(alarmJob);
- return alarmJob;
- }
-
- /**
- * 前缀+日期+4位流水号
- *
- * @param devTypeName
- * @return
- */
- private String produceJobCode(String devTypeName) {
- String pre = devTypeName;
- String dataStr = sdf6.format(new Date());
- String fix = this.getJobCodeMaxSerial(pre + dataStr);
- return StringUtils.isEmpty(fix) ? pre + dataStr + String.format("%04d", Long.valueOf(StringUtils.isEmpty(fix)?"0":fix) + 1L) : pre + dataStr + "0001";
- }
-
-
- private String getJobCodeMaxSerial(String jobcode) {
- String MaxSerialJobCode = alarmJobMapper.getJobCodeMaxSerial(jobcode);
- String fix = "";
- if (null != MaxSerialJobCode && MaxSerialJobCode.length() > 4) {
- fix = MaxSerialJobCode.substring(MaxSerialJobCode.length() - 4);
- }
- return fix;
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmJob.java b/src/main/java/com/casic/entity/AlarmJob.java
deleted file mode 100644
index 8a0f764..0000000
--- a/src/main/java/com/casic/entity/AlarmJob.java
+++ /dev/null
@@ -1,165 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- *
- * 报警工单表
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_job")
-public class AlarmJob extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- private Long id;
- /**
- * 工单编号
- */
- @TableField("JOBCODE")
- private String jobcode;
- /**
- * 工单类型
- */
- @TableField("JOG_TYPE")
- private String jobType;
- /**
- * 井编号
- */
- @TableField("WELL_CODE")
- private String wellCode;
- /**
- * 设备编号
- */
- @TableField("DEVCODE")
- private String devcode;
- /**
- * 工单创建时间
- */
- @TableField("CREATE_TIME")
- private Date createTime;
- /**
- * 工单状态(0待处理,1待确认,2处理中,3完成)
- */
- @TableField("JOB_STATUS")
- private String jobStatus;
- /**
- * 接单人员
- */
- @TableField("GET_JOB_PERSON")
- private Long getJobPerson;
- /**
- * 接单时间
- */
- @TableField("GET_JOB_TIME")
- private Date getJobTime;
- /**
- * 应接单时间
- */
- @TableField("SHOULD_GET_TIME")
- private Date shouldGetTime;
- /**
- * 第一现场情况
- */
- @TableField("FIRST_STATE")
- private String firstState;
- /**
- * 第一现场照片
- */
- @TableField("FIRST_STATE_PHOTOS")
- private String firstStatePhotos;
- /**
- * 确认人员
- */
- @TableField("CONFIRM_JOB_PERSON")
- private Long confirmJobPerson;
- /**
- * 确认时间
- */
- @TableField("CONFRIM_JOB_TIME")
- private Date confrimJobTime;
- /**
- * 处理人员
- */
- @TableField("HANDLE_JOB_Person")
- private Long handleJobPerson;
- /**
- * 处理时间
- */
- @TableField("HANDLE_JOB_TIME")
- private Date handleJobTime;
- /**
- * 维护情况记录
- */
- @TableField("HANDLE_MESSAGE")
- private String handleMessage;
- /**
- * 维护图片
- */
- @TableField("HANDLE_PHOTOS")
- private String handlePhotos;
- /**
- * 工单流转记录
- */
- @TableField("FLOW")
- private String flow;
-
- @TableField("JOB_BELONG_TO")
- private Long jobBelongTo;
-
- @TableField("JOB_FLAG_DELAY")
- private String jobFlagDelay;
-
- @TableField("JOB_FLAG_1")
- private String jobFlag1;
-
- @TableField(exist = false)
- private String alarmValue;
-
- @TableField(exist = false)
- private String alarmContentName;
-
- @TableField(exist = false)
- private Integer recordId;
-
- @Override
- public String toString() {
- return "AlarmJob{" +
- "id=" + id +
- ", jobcode=" + jobcode +
- ", jogType=" + jobType +
- ", wellCode=" + wellCode +
- ", devcode=" + devcode +
- ", createTime=" + createTime +
- ", jobStatus=" + jobStatus +
- ", getJobPerson=" + getJobPerson +
- ", getJobTime=" + getJobTime +
- ", firstState=" + firstState +
- ", firstStatePhotos=" + firstStatePhotos +
- ", confirmJobPerson=" + confirmJobPerson +
- ", confrimJobTime=" + confrimJobTime +
- ", handleJobPerson=" + handleJobPerson +
- ", handleJobTime=" + handleJobTime +
- ", handleMessage=" + handleMessage +
- ", handlePhotos=" + handlePhotos +
- ", flow=" + flow +
- ", recordId=" + recordId +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmRecord.java b/src/main/java/com/casic/entity/AlarmRecord.java
new file mode 100644
index 0000000..137d805
--- /dev/null
+++ b/src/main/java/com/casic/entity/AlarmRecord.java
@@ -0,0 +1,106 @@
+package com.casic.entity;
+
+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 com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *
+ *
+ *
+ *
+ * @author casic123
+ * @since 2019-05-17
+ */
+@Data
+@TableName("ALARM_ALARM_RECORD")
+public class AlarmRecord extends Model {
+
+
+ private static final long serialVersionUID = 1L;
+ /**
+ * 主键
+ */
+ @TableId(value = "DBID")
+ private Long dbid;
+ /**
+ * 设备编号
+ */
+ @TableField("DEVICE_CODE")
+ private String deviceCode;
+ /**
+ * 设备类型名称
+ */
+ @TableField("DEVICE_TYPE_NAME")
+ private String deviceTypeName;
+ /**
+ * 是否推送,默认0
+ */
+ @TableField("ISSEND")
+ private String issend;
+ /**
+ * 默认default
+ */
+ @TableField("ITEMNAME")
+ private String itemname;
+ /**
+ * 没有数值
+ */
+ @TableField("ITEMVALUE")
+ private String itemvalue;
+ /**
+ * 1
+ */
+ @TableField("MESSAGE")
+ private String message;
+ /**
+ * 0
+ */
+ @TableField("MESSAGE_STATUS")
+ private String messageStatus;
+
+
+ /**
+ * 0
+ */
+ @TableField("RECORDCODE")
+ private String recordcode;
+ /**
+ * 告警日期
+ */
+ @TableField("RECORDDATE")
+ private Date recorddate;
+ /**
+ * 工单编号
+ */
+ @TableField("DEVICE_ID")
+ private Long deviceId;
+
+ /**
+ * 删除标志,默认为1
+ */
+ private Integer active;
+
+ @Override
+ public String toString() {
+ return "AlarmRecord{" +
+ "dbid=" + dbid +
+ ", deviceCode='" + deviceCode + '\'' +
+ ", deviceTypeName='" + deviceTypeName + '\'' +
+ ", issend='" + issend + '\'' +
+ ", itemname='" + itemname + '\'' +
+ ", itemvalue='" + itemvalue + '\'' +
+ ", message='" + message + '\'' +
+ ", messageStatus='" + messageStatus + '\'' +
+ ", recordcode='" + recordcode + '\'' +
+ ", recorddate=" + recorddate +
+ ", deviceId=" + deviceId +
+ ", active=" + active +
+ '}';
+ }
+}
diff --git a/src/main/java/com/casic/entity/AlarmRecords.java b/src/main/java/com/casic/entity/AlarmRecords.java
deleted file mode 100644
index 88b0b26..0000000
--- a/src/main/java/com/casic/entity/AlarmRecords.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- *
- *
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_records")
-public class AlarmRecords extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- 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;
-
- @Override
- public String toString() {
- return "AlarmRecords{" +
- "id=" + id +
- ", deviceId=" + deviceId +
- ", devcode=" + devcode +
- ", wellCode=" + wellCode +
- ", alarmType=" + alarmType +
- ", alarmContent=" + alarmContent +
- ", alarmValue=" + alarmValue +
- ", alarmLevel=" + alarmLevel +
- ", alarmMessage=" + alarmMessage +
- ", alarmTime=" + alarmTime +
- ", status=" + status +
- ", jobId=" + jobId +
- ", jobStatus=" + jobStatus +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/ButaneData.java b/src/main/java/com/casic/entity/ButaneData.java
new file mode 100644
index 0000000..2e051be
--- /dev/null
+++ b/src/main/java/com/casic/entity/ButaneData.java
@@ -0,0 +1,28 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Builder;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@TableName("CASIC_BUTANE_INFO")
+@Builder
+public class ButaneData extends Model {
+
+ @TableId(value = "DBID")
+ private Long dbid;
+
+ private String devcode;
+
+ private String status;
+
+ private String descn;
+
+ private Date logtime;
+
+}
diff --git a/src/main/java/com/casic/entity/Device.java b/src/main/java/com/casic/entity/Device.java
new file mode 100644
index 0000000..0360e41
--- /dev/null
+++ b/src/main/java/com/casic/entity/Device.java
@@ -0,0 +1,27 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@TableName("ALARM_DEVICE")
+public class Device implements Serializable {
+ /**
+ * 设备基本信息表
+ */
+ private static final long serialVersionUID = -2023118078562324658L;
+ @TableId(value = "DBID")
+ private Long id;
+ @TableId(value = "DEVCODE")
+ private String devCode;
+ @TableId(value = "DEVNAME")
+ private String devName;
+ @TableId(value = "FACTORY")
+ private String factory;
+ @TableId(value = "SIMID")
+ private String simid; // SIM卡号
+
+}
diff --git a/src/main/java/com/casic/model/HostData.java b/src/main/java/com/casic/model/HostData.java
new file mode 100644
index 0000000..40cefa7
--- /dev/null
+++ b/src/main/java/com/casic/model/HostData.java
@@ -0,0 +1,16 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class HostData {
+ private String model;
+ private String dev_id;
+ private String chip_id;
+ private String mfd_day;
+ private String sw_ver;
+ private String hw_ver;
+ private String duration;
+ private String d_ch_cnt;
+ private String a_ch_cnt;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReceiveDataParam.java b/src/main/java/com/casic/model/ReceiveDataParam.java
new file mode 100644
index 0000000..3a17d24
--- /dev/null
+++ b/src/main/java/com/casic/model/ReceiveDataParam.java
@@ -0,0 +1,20 @@
+package com.casic.model;
+
+import lombok.Data;
+
+import java.util.HashMap;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReceiveDataParam {
+ private String deviceType;
+ private String iotId;
+ private String requestId;
+ private Object checkFailedData;
+ private String productKey;
+ private String deviceName;
+ private HashMap items;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReportUpdataParam.java b/src/main/java/com/casic/model/ReportUpdataParam.java
new file mode 100644
index 0000000..20c2ca9
--- /dev/null
+++ b/src/main/java/com/casic/model/ReportUpdataParam.java
@@ -0,0 +1,23 @@
+package com.casic.model;
+
+import lombok.Data;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReportUpdataParam {
+ private String msg_type;
+ private String event_change;
+ private String error_val;
+ private String ch_cnt;
+ private String erro_cnt;
+ private String alarm_low_cnt;
+ private String alarm_high_cnt;
+ private String offline_cnt;
+ private String rtd_val;
+ private String adc_val;
+ private String status_val;
+ private String time;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/WirelessData.java b/src/main/java/com/casic/model/WirelessData.java
new file mode 100644
index 0000000..b062c13
--- /dev/null
+++ b/src/main/java/com/casic/model/WirelessData.java
@@ -0,0 +1,19 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class WirelessData {
+ private String model;
+ private String IMEI;
+ private String ICCID;
+ private String sw_ver;
+ private String hw_ver;
+ private String ch_cnt;
+ private String heartbeat_inv;
+ private String up_pcnt;
+ private String up_pcnt_inv;
+ private String csq;
+}
+
+
diff --git a/src/main/java/com/casic/schedule/TaskConfigurer.java b/src/main/java/com/casic/schedule/TaskConfigurer.java
new file mode 100644
index 0000000..77c5d5a
--- /dev/null
+++ b/src/main/java/com/casic/schedule/TaskConfigurer.java
@@ -0,0 +1,47 @@
+package com.casic.schedule;
+
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+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
+@Slf4j
+@RequiredArgsConstructor
+public class TaskConfigurer implements SchedulingConfigurer {
+
+ @Value("${casic.device.online.cron}")
+ private String onlineStateCron;
+
+ private final DeviceDataService deviceDataService;
+
+ @Override
+ public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
+ TriggerTask onlineStateTask = new TriggerTask(nextDayDevice(),
+ triggerContext -> {
+ return new CronTrigger(onlineStateCron).nextExecutionTime(triggerContext);
+ });
+ taskRegistrar.addTriggerTask(onlineStateTask);
+ }
+
+ private Runnable nextDayDevice() {
+ return new Runnable() {
+ @Override
+ public void run() {
+ log.info("定时查询在线离线运行了...");
+ deviceDataService.checkAndUpdateDeviceOnline();
+ }
+ };
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/service/AlarmRecordFly.java b/src/main/java/com/casic/service/AlarmRecordFly.java
new file mode 100644
index 0000000..47c7969
--- /dev/null
+++ b/src/main/java/com/casic/service/AlarmRecordFly.java
@@ -0,0 +1,39 @@
+package com.casic.service;
+
+import com.casic.entity.AlarmRecord;
+
+public class AlarmRecordFly {
+
+ private static AlarmRecord alarmRecord;
+
+ static {
+ alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("0");
+ alarmRecord.setActive(1);
+ }
+
+ public static AlarmRecord getAlarmRecord() {
+ return alarmRecord;
+ }
+
+ public static AlarmRecord getPrototype(){
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("-1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("1");
+ alarmRecord.setActive(1);
+ return alarmRecord;
+ }
+
+
+
+
+}
diff --git a/src/main/java/com/casic/service/DeviceDataService.java b/src/main/java/com/casic/service/DeviceDataService.java
new file mode 100644
index 0000000..f972981
--- /dev/null
+++ b/src/main/java/com/casic/service/DeviceDataService.java
@@ -0,0 +1,7 @@
+package com.casic.service;
+
+public interface DeviceDataService {
+
+ void checkAndUpdateDeviceOnline();
+
+}
diff --git a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java
new file mode 100644
index 0000000..f41a44d
--- /dev/null
+++ b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java
@@ -0,0 +1,68 @@
+package com.casic.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.casic.dao.AlarmRecordsMapper;
+import com.casic.dao.DeviceDataMapper;
+import com.casic.entity.AlarmRecord;
+import com.casic.service.AlarmRecordFly;
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @author cz
+ */
+@Service
+@RequiredArgsConstructor
+public class DeviceDataServiceImpl extends ServiceImpl implements DeviceDataService {
+
+ private final DeviceDataMapper deviceDataMapper;
+
+ @Value("${casic.device.data-day}")
+ private Integer dataDay;
+
+ @Value("${casic.device.gas-dector.type}")
+ private Integer devciceType;
+
+
+ @Override
+ public void checkAndUpdateDeviceOnline() {
+ //查询硫化氢设备
+ List> devcodeList = deviceDataMapper.getDevcodeByType(devciceType);
+ //统一查询所有设备的3天内数据的设备编号,然后设备编号转成map,进行
+ List dataList = deviceDataMapper.getRecentData(dataDay);
+ List> dataSortDevcodeList = devcodeList;
+ if (dataList != null) {
+ Map devOnlineMap = new HashMap<>();
+ for (String devcodeData : dataList) {
+ devOnlineMap.put(devcodeData, "");
+ }
+ dataSortDevcodeList = dataSortDevcodeList.stream().filter(
+ e -> !devOnlineMap.containsKey((String) e.get("devcode"))).collect(Collectors.toList());
+ }
+ //批量产生离线报警
+ if (CollectionUtils.isNotEmpty(dataSortDevcodeList)) {
+ List alarmRecords = new ArrayList<>();
+ for (Map dataDevcodeMap : dataSortDevcodeList) {
+ alarmRecords.add(createAlarmRecord(((BigDecimal)dataDevcodeMap.get("id")).longValue(), (String) dataDevcodeMap.get("devcode")));
+ }
+ this.saveBatch(alarmRecords);
+ }
+ }
+
+ private AlarmRecord createAlarmRecord(Long id, String devcode) {
+ AlarmRecord alarmRecord = AlarmRecordFly.getPrototype();
+ alarmRecord.setRecorddate(new Date());
+ alarmRecord.setDbid(null);
+ alarmRecord.setDeviceCode(devcode);
+ alarmRecord.setDeviceId(id);
+ return alarmRecord;
+ }
+
+}
diff --git a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
index 4591d50..176b389 100644
--- a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
@@ -1,53 +1,41 @@
package com.casic.service.impl;
-import com.alibaba.druid.util.StringUtils;
-import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.casic.dao.AlarmRecordsMapper;
-import com.casic.dao.DataGasMapper;
-import com.casic.dao.DeviceMapper;
-import com.casic.dao.impl.AlarmJobDao;
-import com.casic.entity.AlarmJob;
-import com.casic.entity.AlarmRecords;
-import com.casic.entity.DataGasDector;
+import com.casic.dao.ButaneDataMapper;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.ButaneData;
import com.casic.entity.Device;
import com.casic.model.ResponseData;
+import com.casic.service.AlarmRecordFly;
import com.casic.service.DeviceService;
+import com.casic.util.SendUtil;
+import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import xyz.downgoon.snowflake.Snowflake;
-import javax.annotation.Resource;
import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import java.util.function.Supplier;
@Slf4j
@Service
+@RequiredArgsConstructor
public class DeviceServiceImpl implements DeviceService {
-
- @Value("${casic.device.gas-dector.enable-local}")
- private Boolean enableLocal;
- @Value("${casic.device.gas-dector.type}")
- private Long deviceType;
- @Resource
- private DataGasMapper dataGasMapper;
- @Resource
- private AlarmRecordsMapper alarmRecordsMapper;
- @Resource
- private DeviceMapper deviceMapper;
- @Autowired
- private AlarmJobDao alarmJobDao;
+ private final ButaneDataMapper butaneDataMapper;
+ private final AlarmRecordsMapper alarmRecordsMapper;
private static Snowflake snowflake = new Snowflake(0, 2);
+ @Autowired
+ private SendUtil sendUtil;
@Override
public ResponseData testMysql() {
+
ResponseData responseData = new ResponseData();
responseData.setMessage("保存成功");
responseData.setCode(1);
@@ -62,18 +50,16 @@
public ResponseData saveDataGas(Map receiveData) {
ResponseData responseData = new ResponseData();
try {
- Map payloadData;
+ Map payloadData = receiveData;
if (receiveData.containsKey("payload")) {
payloadData = (Map) receiveData.get("payload");
- }else{
- payloadData=receiveData;
}
- this.flagSelectProcessor("eventType", payloadData, () -> gasStatusUpdate(payloadData))
- .flagSelectProcessor("gas_sample_value", payloadData, () -> dealNormalData(receiveData));
+ this.flagSelectProcessor("gas_sensor_state", payloadData, () -> gasStatusUpdate(receiveData))
+ .flagSelectProcessor("heartbeat_time", payloadData, () -> dealNormalData(receiveData));
responseData.setCode(200);
responseData.setMessage("保存成功");
} catch (Exception dex) {
- log.error("主题:广东台燃气设备存储异常,异常信息:{}", dex.getMessage());
+ log.error("主题:燃气设备存储异常,异常信息:{}", dex.getMessage());
responseData.setCode(500);
responseData.setMessage("保存异常");
}
@@ -95,99 +81,110 @@
* @return
*/
private Boolean gasStatusUpdate(Map receiveData) {
- Long lonTimetemp = Long.valueOf(receiveData.get("timestamp").toString());
- String onlindeStatus = receiveData.get("eventType").toString();
- String devcode = receiveData.get("imei").toString();
- QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("devcode", devcode);
- queryWrapper.eq("valid", 1);
- Device device = new Device();
- if (!StringUtils.isEmpty(onlindeStatus)) {
- device.setOnlineState(onlindeStatus);
- Date logTime = new Date();
- logTime.setTime(lonTimetemp);
- device.setLogtime(logTime);
- deviceMapper.update(device, queryWrapper);
- return true;
+ AlarmRecord alarmRecord = AlarmRecordFly.getAlarmRecord();
+ Map payloadData = (Map) receiveData.get("payload");
+ //判断事件类型 0正常 1低报 2高报
+ String alarmSituation = payloadData.get("gas_sensor_state").toString();
+ String devcode = receiveData.get("IMEI").toString();
+ clearOnlineData(devcode);
+ //构建数据
+ ButaneData butaneData = ButaneData.builder()
+ .devcode(devcode)
+ .dbid(snowflake.nextId())
+ .build();
+ populateTime(receiveData, butaneData, alarmRecord);
+ switch (alarmSituation) {
+ case "0":
+// butaneData.setDescn("状态正常");
+// butaneData.setStatus("0");
+ break;
+ default:
+ //第一条上来,消除报警
+ clearAlarmData(devcode);
+ //产生新的报警,消除报警
+ butaneData.setDescn("可燃气体探测器报警");
+ butaneData.setStatus("1");
+ synchronized (alarmRecord) {
+ alarmRecord.setDbid(null);
+ alarmRecord.setDeviceCode(devcode);
+ alarmRecord.setDeviceId(alarmRecordsMapper.getDevcode(devcode));
+ alarmRecordsMapper.insert(alarmRecord);
+ }
+ butaneDataMapper.insert(butaneData);
+
+ try {
+ //推送短信至第三方
+ Device device = alarmRecordsMapper.getDevice(devcode);
+ if (null == device) {
+ log.error("设备不存在,编号:" + devcode);
+ return false;
+ }
+ JSONObject eventObj = new JSONObject();
+ eventObj.put("type", "燃气报警");
+ sendUtil.sendEventBySms(device, eventObj);
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ }
}
- return false;
+ return true;
}
public Boolean dealNormalData(Map receiveData) {
String devcode = receiveData.get("IMEI").toString();
- if (!StringUtils.isEmpty(devcode)) {
- Map deviceMap = deviceMapper.getWellCode(devcode);
- //保存数据,无论是否有设备在库内
- DataGasDector dataGasDector = this.saveNormalData(receiveData, deviceMap);
- if (ObjectUtils.isEmpty(deviceMap)) {
- log.info("没有该设备编号录入" + devcode);
- if (enableLocal) {
- return true;
- }
- }
- //自动消除报警
- this.alarmRecordsMapper.clearAlarm(devcode);
- this.dataTaskJudge(deviceMap, dataGasDector);
- return true;
+ //第一条上来,清除离线
+ clearOnlineData(devcode);
+ ButaneData butaneData = ButaneData.builder()
+ .devcode(devcode)
+ .dbid(snowflake.nextId())
+ .descn("状态正常")
+ .status("0")
+ .build();
+ if (!ObjectUtils.isEmpty(receiveData) && receiveData.containsKey("timestamp")) {
+ butaneData.setLogtime(new Date(Long.valueOf(receiveData.get("timestamp").toString())));
+ } else {
+ butaneData.setLogtime(new Date());
}
+ butaneDataMapper.insert(butaneData);
return false;
}
- private DataGasDector saveNormalData(Map receiveData, Map deviceMap) {
- DataGasDector dataGasDector = new DataGasDector();
- dataGasDector.setId(snowflake.nextId());
- dataGasDector.setDevcode(receiveData.get("IMEI").toString());
- dataGasDector.setWellCode(!ObjectUtils.isEmpty(deviceMap) && deviceMap.containsKey("wellCode") ? deviceMap.get("wellCode").toString() : "");
- dataGasDector.setLogtime(new Date());
+ private void populateTime(Map receiveData, ButaneData butaneData, AlarmRecord alarmRecord) {
if (!ObjectUtils.isEmpty(receiveData) && receiveData.containsKey("timestamp")) {
- dataGasDector.setUptime(new Date(Long.valueOf(receiveData.get("timestamp").toString())));
+ Date logtime = new Date(Long.valueOf(receiveData.get("timestamp").toString()));
+ butaneData.setLogtime(logtime);
+ alarmRecord.setRecorddate(logtime);
} else {
- dataGasDector.setUptime(new Date());
+ alarmRecord.setRecorddate(new Date());
+ butaneData.setLogtime(new Date());
}
- Map gascontent = (Map)receiveData.get("payload");
- if (!ObjectUtils.isEmpty(gascontent)) {
- if (gascontent.containsKey("gas_sample_value")) {
- dataGasDector.setStrength(gascontent.get("gas_sample_value").toString());
- }
- }
- dataGasMapper.insert(dataGasDector);
- return dataGasDector;
}
- /**
- * 报警存库
- */
- private void dataTaskJudge(Map deviceMap, DataGasDector dataGasDector) {
- List> alarmLevelList = dataGasMapper.getAlarmLevelList(deviceType);
- String wellCode = dataGasDector.getWellCode();
- Long deviceId = !ObjectUtils.isEmpty(deviceMap) && deviceMap.containsKey("wellCode") ? Long.valueOf(String.valueOf(deviceMap.get("deviceId"))) : -1;
- final String gasMsgContent = dataGasMapper.getGasMsgContent(deviceType);
- for (Map alarmLevelMap : alarmLevelList) {
- if (Float.valueOf(dataGasDector.getStrength()) > Float.valueOf(String.valueOf(alarmLevelMap.get("high_value")))) {
- AlarmRecords alarmRecord = new AlarmRecords();
- alarmRecord.setId(snowflake.nextId());
- alarmRecord.setDeviceId(deviceId);
- alarmRecord.setDevcode(dataGasDector.getDevcode());
- alarmRecord.setWellCode(wellCode);
- alarmRecord.setAlarmType("1"); // 业务报警
- alarmRecord.setAlarmContent(gasMsgContent);
- alarmRecord.setAlarmValue(dataGasDector.getStrength());
- alarmRecord.setAlarmTime(new Date());
- alarmRecord.setStatus("1");
- alarmRecord.setAlarmLevel(Integer.valueOf(alarmLevelMap.get("level").toString()));
- alarmRecord.setAlarmMessage(gasMsgContent);
- String jobId = alarmRecordsMapper.isOldAlarmRecord(dataGasDector.getDevcode(), gasMsgContent);
- // 超出报警阈值 生成一条报警消息
- if (!StringUtils.isEmpty(jobId)) {
- alarmRecordsMapper.updateOldAlarmRecord(dataGasDector.getDevcode(), gasMsgContent);
- alarmRecord.setJobId(Long.valueOf(jobId));
- } else {
- AlarmJob alarmJob = alarmJobDao.saveData(dataGasDector.getStrength(), wellCode, "RQZD", "1");
- alarmRecord.setJobId(alarmJob.getId());
- }
- alarmRecordsMapper.insert(alarmRecord);
- break;
- }
+ private void clearAlarmData(String devcode) {
+ QueryWrapper queryWrapper = new QueryWrapper();
+ queryWrapper.eq("DEVICE_CODE", devcode);
+ queryWrapper.eq("ACTIVE", 1);
+ try {
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setActive(0);
+ alarmRecordsMapper.update(alarmRecord, queryWrapper);
+ } catch (Exception e) {
+ log.error("清除报警失败,设备编号为{},异常信息{}", devcode, e);
}
}
+
+ private void clearOnlineData(String devcode) {
+ QueryWrapper queryWrapper = new QueryWrapper();
+ queryWrapper.eq("DEVICE_CODE", devcode);
+ queryWrapper.eq("ACTIVE", 1);
+ queryWrapper.eq("MESSAGE_STATUS", "0");
+ queryWrapper.eq("RECORDCODE", "1");
+ try {
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setActive(0);
+ alarmRecordsMapper.update(alarmRecord, queryWrapper);
+ } catch (Exception e) {
+ log.error("清除报警失败,设备编号为{},异常信息{}", devcode, e);
+ }
+ }
+
}
diff --git a/src/main/java/com/casic/util/ConestUtil.java b/src/main/java/com/casic/util/ConestUtil.java
deleted file mode 100644
index 2a4d305..0000000
--- a/src/main/java/com/casic/util/ConestUtil.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package com.casic.util;
-
-public class ConestUtil {
-
-
-}
diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/src/main/java/com/casic/dao/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index fde1818..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -1,36 +1,24 @@
package com.casic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmRecords;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.Device;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
@Mapper
-public interface AlarmRecordsMapper extends BaseMapper {
+public interface AlarmRecordsMapper extends BaseMapper {
+ @Select("SELECT DBID " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Long getDevcode(@Param("devcode") String devcode);
- @Select("SELECT JOB_ID AS \"jobId\"\n " +
- "FROM alarm_records\n " +
- "WHERE DEVCODE = #{devcode}\n " +
- "AND ALARM_CONTENT = #{MsgContent}\n " +
- "AND STATUS='1'\n " +
- "AND JOB_ID>0 ")
- String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='0'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND ALARM_CONTENT = #{MsgContent}\n" +
- " AND STATUS='1'")
- Integer updateOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='3'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND STATUS='1'")
- Integer clearAlarm(@Param("devcode") String devcode);
-
+ @Select("SELECT DBID as id, DEVCODE as devCode, DEVNAME as devName, FACTORY as factory, SIMID as simid " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Device getDevice(@Param("devcode") String devcode);
}
diff --git a/src/main/java/com/casic/dao/ButaneDataMapper.java b/src/main/java/com/casic/dao/ButaneDataMapper.java
new file mode 100644
index 0000000..632c7d2
--- /dev/null
+++ b/src/main/java/com/casic/dao/ButaneDataMapper.java
@@ -0,0 +1,12 @@
+package com.casic.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.entity.ButaneData;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface ButaneDataMapper extends BaseMapper {
+
+
+}
diff --git a/src/main/java/com/casic/dao/DataGasMapper.java b/src/main/java/com/casic/dao/DataGasMapper.java
deleted file mode 100644
index 8a064f2..0000000
--- a/src/main/java/com/casic/dao/DataGasMapper.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.DataGasDector;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-
-import java.util.List;
-import java.util.Map;
-
-@Mapper
-public interface DataGasMapper extends BaseMapper {
-
- @Select("SELECT level,high_value " +
- "FROM alarm_level " +
- "WHERE device_type=#{deviceType} ")
- List> getAlarmLevelList(@Param("deviceType") Long deviceType);
-
- @Select("SELECT devcode " +
- "FROM data_gas_dector " +
- "WHERE devcode=#{devcode} " +
- "AND (EXTRACT(epoch FROM CAST(now() AS TIMESTAMPTZ))-EXTRACT(epoch FROM CAST(logtime AS TIMESTAMPTZ)))/60.0 < ${minutes} "+
- "ORDER BY logtime DESC " +
- "LIMIT 1")
- String getLastData(@Param("minutes") String minutes,
- @Param("devcode") String devcode);
-
- @Select("SELECT alarm_content " +
- "FROM base_alarm_content_type " +
- "WHERE device_type=#{deviceType}")
- String getGasMsgContent(@Param("deviceType")Long deviceType);
-
-
-}
diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java
new file mode 100644
index 0000000..e9456c1
--- /dev/null
+++ b/src/main/java/com/casic/dao/DeviceDataMapper.java
@@ -0,0 +1,18 @@
+package com.casic.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface DeviceDataMapper {
+
+ List> getDevcodeByType(@Param("devciceType") Integer devciceType);
+
+ List getRecentData(@Param("dataDay") Integer dataDay);
+
+ int updateOnlineByDevs(@Param("dataSortList") List dataSortDevcodeList);
+
+}
diff --git a/src/main/java/com/casic/dao/DeviceMapper.java b/src/main/java/com/casic/dao/DeviceMapper.java
deleted file mode 100644
index 73b574e..0000000
--- a/src/main/java/com/casic/dao/DeviceMapper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.Device;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Map;
-
-@Mapper
-public interface DeviceMapper extends BaseMapper {
-
- Map getWellCode(@Param("devcode") String devcode);
-
-}
diff --git a/src/main/java/com/casic/dao/impl/AlarmJobDao.java b/src/main/java/com/casic/dao/impl/AlarmJobDao.java
deleted file mode 100644
index 5131821..0000000
--- a/src/main/java/com/casic/dao/impl/AlarmJobDao.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.casic.dao.impl;
-
-import com.alibaba.druid.util.StringUtils;
-import com.casic.dao.AlarmJobMapper;
-import com.casic.entity.AlarmJob;
-import org.springframework.stereotype.Component;
-import xyz.downgoon.snowflake.Snowflake;
-
-import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-@Component
-public class AlarmJobDao {
-
- private static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMdd");
-
- private static Snowflake snowflake = new Snowflake(0, 2);
-// private static final Sn
-
- @Resource
- private AlarmJobMapper alarmJobMapper;
-
- public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) {
- AlarmJob alarmJob = new AlarmJob();
- alarmJob.setId(snowflake.nextId());
- alarmJob.setDevcode(devCode);
- alarmJob.setWellCode(wellCode);
- alarmJob.setJobStatus("0");
- alarmJob.setCreateTime(new Date());
- alarmJob.setJobcode(this.produceJobCode(devTypeName));
- alarmJob.setJobType(jobType);
- alarmJobMapper.insert(alarmJob);
- return alarmJob;
- }
-
- /**
- * 前缀+日期+4位流水号
- *
- * @param devTypeName
- * @return
- */
- private String produceJobCode(String devTypeName) {
- String pre = devTypeName;
- String dataStr = sdf6.format(new Date());
- String fix = this.getJobCodeMaxSerial(pre + dataStr);
- return StringUtils.isEmpty(fix) ? pre + dataStr + String.format("%04d", Long.valueOf(StringUtils.isEmpty(fix)?"0":fix) + 1L) : pre + dataStr + "0001";
- }
-
-
- private String getJobCodeMaxSerial(String jobcode) {
- String MaxSerialJobCode = alarmJobMapper.getJobCodeMaxSerial(jobcode);
- String fix = "";
- if (null != MaxSerialJobCode && MaxSerialJobCode.length() > 4) {
- fix = MaxSerialJobCode.substring(MaxSerialJobCode.length() - 4);
- }
- return fix;
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmJob.java b/src/main/java/com/casic/entity/AlarmJob.java
deleted file mode 100644
index 8a0f764..0000000
--- a/src/main/java/com/casic/entity/AlarmJob.java
+++ /dev/null
@@ -1,165 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- *
- * 报警工单表
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_job")
-public class AlarmJob extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- private Long id;
- /**
- * 工单编号
- */
- @TableField("JOBCODE")
- private String jobcode;
- /**
- * 工单类型
- */
- @TableField("JOG_TYPE")
- private String jobType;
- /**
- * 井编号
- */
- @TableField("WELL_CODE")
- private String wellCode;
- /**
- * 设备编号
- */
- @TableField("DEVCODE")
- private String devcode;
- /**
- * 工单创建时间
- */
- @TableField("CREATE_TIME")
- private Date createTime;
- /**
- * 工单状态(0待处理,1待确认,2处理中,3完成)
- */
- @TableField("JOB_STATUS")
- private String jobStatus;
- /**
- * 接单人员
- */
- @TableField("GET_JOB_PERSON")
- private Long getJobPerson;
- /**
- * 接单时间
- */
- @TableField("GET_JOB_TIME")
- private Date getJobTime;
- /**
- * 应接单时间
- */
- @TableField("SHOULD_GET_TIME")
- private Date shouldGetTime;
- /**
- * 第一现场情况
- */
- @TableField("FIRST_STATE")
- private String firstState;
- /**
- * 第一现场照片
- */
- @TableField("FIRST_STATE_PHOTOS")
- private String firstStatePhotos;
- /**
- * 确认人员
- */
- @TableField("CONFIRM_JOB_PERSON")
- private Long confirmJobPerson;
- /**
- * 确认时间
- */
- @TableField("CONFRIM_JOB_TIME")
- private Date confrimJobTime;
- /**
- * 处理人员
- */
- @TableField("HANDLE_JOB_Person")
- private Long handleJobPerson;
- /**
- * 处理时间
- */
- @TableField("HANDLE_JOB_TIME")
- private Date handleJobTime;
- /**
- * 维护情况记录
- */
- @TableField("HANDLE_MESSAGE")
- private String handleMessage;
- /**
- * 维护图片
- */
- @TableField("HANDLE_PHOTOS")
- private String handlePhotos;
- /**
- * 工单流转记录
- */
- @TableField("FLOW")
- private String flow;
-
- @TableField("JOB_BELONG_TO")
- private Long jobBelongTo;
-
- @TableField("JOB_FLAG_DELAY")
- private String jobFlagDelay;
-
- @TableField("JOB_FLAG_1")
- private String jobFlag1;
-
- @TableField(exist = false)
- private String alarmValue;
-
- @TableField(exist = false)
- private String alarmContentName;
-
- @TableField(exist = false)
- private Integer recordId;
-
- @Override
- public String toString() {
- return "AlarmJob{" +
- "id=" + id +
- ", jobcode=" + jobcode +
- ", jogType=" + jobType +
- ", wellCode=" + wellCode +
- ", devcode=" + devcode +
- ", createTime=" + createTime +
- ", jobStatus=" + jobStatus +
- ", getJobPerson=" + getJobPerson +
- ", getJobTime=" + getJobTime +
- ", firstState=" + firstState +
- ", firstStatePhotos=" + firstStatePhotos +
- ", confirmJobPerson=" + confirmJobPerson +
- ", confrimJobTime=" + confrimJobTime +
- ", handleJobPerson=" + handleJobPerson +
- ", handleJobTime=" + handleJobTime +
- ", handleMessage=" + handleMessage +
- ", handlePhotos=" + handlePhotos +
- ", flow=" + flow +
- ", recordId=" + recordId +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmRecord.java b/src/main/java/com/casic/entity/AlarmRecord.java
new file mode 100644
index 0000000..137d805
--- /dev/null
+++ b/src/main/java/com/casic/entity/AlarmRecord.java
@@ -0,0 +1,106 @@
+package com.casic.entity;
+
+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 com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *
+ *
+ *
+ *
+ * @author casic123
+ * @since 2019-05-17
+ */
+@Data
+@TableName("ALARM_ALARM_RECORD")
+public class AlarmRecord extends Model {
+
+
+ private static final long serialVersionUID = 1L;
+ /**
+ * 主键
+ */
+ @TableId(value = "DBID")
+ private Long dbid;
+ /**
+ * 设备编号
+ */
+ @TableField("DEVICE_CODE")
+ private String deviceCode;
+ /**
+ * 设备类型名称
+ */
+ @TableField("DEVICE_TYPE_NAME")
+ private String deviceTypeName;
+ /**
+ * 是否推送,默认0
+ */
+ @TableField("ISSEND")
+ private String issend;
+ /**
+ * 默认default
+ */
+ @TableField("ITEMNAME")
+ private String itemname;
+ /**
+ * 没有数值
+ */
+ @TableField("ITEMVALUE")
+ private String itemvalue;
+ /**
+ * 1
+ */
+ @TableField("MESSAGE")
+ private String message;
+ /**
+ * 0
+ */
+ @TableField("MESSAGE_STATUS")
+ private String messageStatus;
+
+
+ /**
+ * 0
+ */
+ @TableField("RECORDCODE")
+ private String recordcode;
+ /**
+ * 告警日期
+ */
+ @TableField("RECORDDATE")
+ private Date recorddate;
+ /**
+ * 工单编号
+ */
+ @TableField("DEVICE_ID")
+ private Long deviceId;
+
+ /**
+ * 删除标志,默认为1
+ */
+ private Integer active;
+
+ @Override
+ public String toString() {
+ return "AlarmRecord{" +
+ "dbid=" + dbid +
+ ", deviceCode='" + deviceCode + '\'' +
+ ", deviceTypeName='" + deviceTypeName + '\'' +
+ ", issend='" + issend + '\'' +
+ ", itemname='" + itemname + '\'' +
+ ", itemvalue='" + itemvalue + '\'' +
+ ", message='" + message + '\'' +
+ ", messageStatus='" + messageStatus + '\'' +
+ ", recordcode='" + recordcode + '\'' +
+ ", recorddate=" + recorddate +
+ ", deviceId=" + deviceId +
+ ", active=" + active +
+ '}';
+ }
+}
diff --git a/src/main/java/com/casic/entity/AlarmRecords.java b/src/main/java/com/casic/entity/AlarmRecords.java
deleted file mode 100644
index 88b0b26..0000000
--- a/src/main/java/com/casic/entity/AlarmRecords.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- *
- *
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_records")
-public class AlarmRecords extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- 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;
-
- @Override
- public String toString() {
- return "AlarmRecords{" +
- "id=" + id +
- ", deviceId=" + deviceId +
- ", devcode=" + devcode +
- ", wellCode=" + wellCode +
- ", alarmType=" + alarmType +
- ", alarmContent=" + alarmContent +
- ", alarmValue=" + alarmValue +
- ", alarmLevel=" + alarmLevel +
- ", alarmMessage=" + alarmMessage +
- ", alarmTime=" + alarmTime +
- ", status=" + status +
- ", jobId=" + jobId +
- ", jobStatus=" + jobStatus +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/ButaneData.java b/src/main/java/com/casic/entity/ButaneData.java
new file mode 100644
index 0000000..2e051be
--- /dev/null
+++ b/src/main/java/com/casic/entity/ButaneData.java
@@ -0,0 +1,28 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Builder;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@TableName("CASIC_BUTANE_INFO")
+@Builder
+public class ButaneData extends Model {
+
+ @TableId(value = "DBID")
+ private Long dbid;
+
+ private String devcode;
+
+ private String status;
+
+ private String descn;
+
+ private Date logtime;
+
+}
diff --git a/src/main/java/com/casic/entity/Device.java b/src/main/java/com/casic/entity/Device.java
new file mode 100644
index 0000000..0360e41
--- /dev/null
+++ b/src/main/java/com/casic/entity/Device.java
@@ -0,0 +1,27 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@TableName("ALARM_DEVICE")
+public class Device implements Serializable {
+ /**
+ * 设备基本信息表
+ */
+ private static final long serialVersionUID = -2023118078562324658L;
+ @TableId(value = "DBID")
+ private Long id;
+ @TableId(value = "DEVCODE")
+ private String devCode;
+ @TableId(value = "DEVNAME")
+ private String devName;
+ @TableId(value = "FACTORY")
+ private String factory;
+ @TableId(value = "SIMID")
+ private String simid; // SIM卡号
+
+}
diff --git a/src/main/java/com/casic/model/HostData.java b/src/main/java/com/casic/model/HostData.java
new file mode 100644
index 0000000..40cefa7
--- /dev/null
+++ b/src/main/java/com/casic/model/HostData.java
@@ -0,0 +1,16 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class HostData {
+ private String model;
+ private String dev_id;
+ private String chip_id;
+ private String mfd_day;
+ private String sw_ver;
+ private String hw_ver;
+ private String duration;
+ private String d_ch_cnt;
+ private String a_ch_cnt;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReceiveDataParam.java b/src/main/java/com/casic/model/ReceiveDataParam.java
new file mode 100644
index 0000000..3a17d24
--- /dev/null
+++ b/src/main/java/com/casic/model/ReceiveDataParam.java
@@ -0,0 +1,20 @@
+package com.casic.model;
+
+import lombok.Data;
+
+import java.util.HashMap;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReceiveDataParam {
+ private String deviceType;
+ private String iotId;
+ private String requestId;
+ private Object checkFailedData;
+ private String productKey;
+ private String deviceName;
+ private HashMap items;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReportUpdataParam.java b/src/main/java/com/casic/model/ReportUpdataParam.java
new file mode 100644
index 0000000..20c2ca9
--- /dev/null
+++ b/src/main/java/com/casic/model/ReportUpdataParam.java
@@ -0,0 +1,23 @@
+package com.casic.model;
+
+import lombok.Data;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReportUpdataParam {
+ private String msg_type;
+ private String event_change;
+ private String error_val;
+ private String ch_cnt;
+ private String erro_cnt;
+ private String alarm_low_cnt;
+ private String alarm_high_cnt;
+ private String offline_cnt;
+ private String rtd_val;
+ private String adc_val;
+ private String status_val;
+ private String time;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/WirelessData.java b/src/main/java/com/casic/model/WirelessData.java
new file mode 100644
index 0000000..b062c13
--- /dev/null
+++ b/src/main/java/com/casic/model/WirelessData.java
@@ -0,0 +1,19 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class WirelessData {
+ private String model;
+ private String IMEI;
+ private String ICCID;
+ private String sw_ver;
+ private String hw_ver;
+ private String ch_cnt;
+ private String heartbeat_inv;
+ private String up_pcnt;
+ private String up_pcnt_inv;
+ private String csq;
+}
+
+
diff --git a/src/main/java/com/casic/schedule/TaskConfigurer.java b/src/main/java/com/casic/schedule/TaskConfigurer.java
new file mode 100644
index 0000000..77c5d5a
--- /dev/null
+++ b/src/main/java/com/casic/schedule/TaskConfigurer.java
@@ -0,0 +1,47 @@
+package com.casic.schedule;
+
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+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
+@Slf4j
+@RequiredArgsConstructor
+public class TaskConfigurer implements SchedulingConfigurer {
+
+ @Value("${casic.device.online.cron}")
+ private String onlineStateCron;
+
+ private final DeviceDataService deviceDataService;
+
+ @Override
+ public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
+ TriggerTask onlineStateTask = new TriggerTask(nextDayDevice(),
+ triggerContext -> {
+ return new CronTrigger(onlineStateCron).nextExecutionTime(triggerContext);
+ });
+ taskRegistrar.addTriggerTask(onlineStateTask);
+ }
+
+ private Runnable nextDayDevice() {
+ return new Runnable() {
+ @Override
+ public void run() {
+ log.info("定时查询在线离线运行了...");
+ deviceDataService.checkAndUpdateDeviceOnline();
+ }
+ };
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/service/AlarmRecordFly.java b/src/main/java/com/casic/service/AlarmRecordFly.java
new file mode 100644
index 0000000..47c7969
--- /dev/null
+++ b/src/main/java/com/casic/service/AlarmRecordFly.java
@@ -0,0 +1,39 @@
+package com.casic.service;
+
+import com.casic.entity.AlarmRecord;
+
+public class AlarmRecordFly {
+
+ private static AlarmRecord alarmRecord;
+
+ static {
+ alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("0");
+ alarmRecord.setActive(1);
+ }
+
+ public static AlarmRecord getAlarmRecord() {
+ return alarmRecord;
+ }
+
+ public static AlarmRecord getPrototype(){
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("-1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("1");
+ alarmRecord.setActive(1);
+ return alarmRecord;
+ }
+
+
+
+
+}
diff --git a/src/main/java/com/casic/service/DeviceDataService.java b/src/main/java/com/casic/service/DeviceDataService.java
new file mode 100644
index 0000000..f972981
--- /dev/null
+++ b/src/main/java/com/casic/service/DeviceDataService.java
@@ -0,0 +1,7 @@
+package com.casic.service;
+
+public interface DeviceDataService {
+
+ void checkAndUpdateDeviceOnline();
+
+}
diff --git a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java
new file mode 100644
index 0000000..f41a44d
--- /dev/null
+++ b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java
@@ -0,0 +1,68 @@
+package com.casic.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.casic.dao.AlarmRecordsMapper;
+import com.casic.dao.DeviceDataMapper;
+import com.casic.entity.AlarmRecord;
+import com.casic.service.AlarmRecordFly;
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @author cz
+ */
+@Service
+@RequiredArgsConstructor
+public class DeviceDataServiceImpl extends ServiceImpl implements DeviceDataService {
+
+ private final DeviceDataMapper deviceDataMapper;
+
+ @Value("${casic.device.data-day}")
+ private Integer dataDay;
+
+ @Value("${casic.device.gas-dector.type}")
+ private Integer devciceType;
+
+
+ @Override
+ public void checkAndUpdateDeviceOnline() {
+ //查询硫化氢设备
+ List> devcodeList = deviceDataMapper.getDevcodeByType(devciceType);
+ //统一查询所有设备的3天内数据的设备编号,然后设备编号转成map,进行
+ List dataList = deviceDataMapper.getRecentData(dataDay);
+ List> dataSortDevcodeList = devcodeList;
+ if (dataList != null) {
+ Map devOnlineMap = new HashMap<>();
+ for (String devcodeData : dataList) {
+ devOnlineMap.put(devcodeData, "");
+ }
+ dataSortDevcodeList = dataSortDevcodeList.stream().filter(
+ e -> !devOnlineMap.containsKey((String) e.get("devcode"))).collect(Collectors.toList());
+ }
+ //批量产生离线报警
+ if (CollectionUtils.isNotEmpty(dataSortDevcodeList)) {
+ List alarmRecords = new ArrayList<>();
+ for (Map dataDevcodeMap : dataSortDevcodeList) {
+ alarmRecords.add(createAlarmRecord(((BigDecimal)dataDevcodeMap.get("id")).longValue(), (String) dataDevcodeMap.get("devcode")));
+ }
+ this.saveBatch(alarmRecords);
+ }
+ }
+
+ private AlarmRecord createAlarmRecord(Long id, String devcode) {
+ AlarmRecord alarmRecord = AlarmRecordFly.getPrototype();
+ alarmRecord.setRecorddate(new Date());
+ alarmRecord.setDbid(null);
+ alarmRecord.setDeviceCode(devcode);
+ alarmRecord.setDeviceId(id);
+ return alarmRecord;
+ }
+
+}
diff --git a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
index 4591d50..176b389 100644
--- a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
@@ -1,53 +1,41 @@
package com.casic.service.impl;
-import com.alibaba.druid.util.StringUtils;
-import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.casic.dao.AlarmRecordsMapper;
-import com.casic.dao.DataGasMapper;
-import com.casic.dao.DeviceMapper;
-import com.casic.dao.impl.AlarmJobDao;
-import com.casic.entity.AlarmJob;
-import com.casic.entity.AlarmRecords;
-import com.casic.entity.DataGasDector;
+import com.casic.dao.ButaneDataMapper;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.ButaneData;
import com.casic.entity.Device;
import com.casic.model.ResponseData;
+import com.casic.service.AlarmRecordFly;
import com.casic.service.DeviceService;
+import com.casic.util.SendUtil;
+import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import xyz.downgoon.snowflake.Snowflake;
-import javax.annotation.Resource;
import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import java.util.function.Supplier;
@Slf4j
@Service
+@RequiredArgsConstructor
public class DeviceServiceImpl implements DeviceService {
-
- @Value("${casic.device.gas-dector.enable-local}")
- private Boolean enableLocal;
- @Value("${casic.device.gas-dector.type}")
- private Long deviceType;
- @Resource
- private DataGasMapper dataGasMapper;
- @Resource
- private AlarmRecordsMapper alarmRecordsMapper;
- @Resource
- private DeviceMapper deviceMapper;
- @Autowired
- private AlarmJobDao alarmJobDao;
+ private final ButaneDataMapper butaneDataMapper;
+ private final AlarmRecordsMapper alarmRecordsMapper;
private static Snowflake snowflake = new Snowflake(0, 2);
+ @Autowired
+ private SendUtil sendUtil;
@Override
public ResponseData testMysql() {
+
ResponseData responseData = new ResponseData();
responseData.setMessage("保存成功");
responseData.setCode(1);
@@ -62,18 +50,16 @@
public ResponseData saveDataGas(Map receiveData) {
ResponseData responseData = new ResponseData();
try {
- Map payloadData;
+ Map payloadData = receiveData;
if (receiveData.containsKey("payload")) {
payloadData = (Map) receiveData.get("payload");
- }else{
- payloadData=receiveData;
}
- this.flagSelectProcessor("eventType", payloadData, () -> gasStatusUpdate(payloadData))
- .flagSelectProcessor("gas_sample_value", payloadData, () -> dealNormalData(receiveData));
+ this.flagSelectProcessor("gas_sensor_state", payloadData, () -> gasStatusUpdate(receiveData))
+ .flagSelectProcessor("heartbeat_time", payloadData, () -> dealNormalData(receiveData));
responseData.setCode(200);
responseData.setMessage("保存成功");
} catch (Exception dex) {
- log.error("主题:广东台燃气设备存储异常,异常信息:{}", dex.getMessage());
+ log.error("主题:燃气设备存储异常,异常信息:{}", dex.getMessage());
responseData.setCode(500);
responseData.setMessage("保存异常");
}
@@ -95,99 +81,110 @@
* @return
*/
private Boolean gasStatusUpdate(Map receiveData) {
- Long lonTimetemp = Long.valueOf(receiveData.get("timestamp").toString());
- String onlindeStatus = receiveData.get("eventType").toString();
- String devcode = receiveData.get("imei").toString();
- QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("devcode", devcode);
- queryWrapper.eq("valid", 1);
- Device device = new Device();
- if (!StringUtils.isEmpty(onlindeStatus)) {
- device.setOnlineState(onlindeStatus);
- Date logTime = new Date();
- logTime.setTime(lonTimetemp);
- device.setLogtime(logTime);
- deviceMapper.update(device, queryWrapper);
- return true;
+ AlarmRecord alarmRecord = AlarmRecordFly.getAlarmRecord();
+ Map payloadData = (Map) receiveData.get("payload");
+ //判断事件类型 0正常 1低报 2高报
+ String alarmSituation = payloadData.get("gas_sensor_state").toString();
+ String devcode = receiveData.get("IMEI").toString();
+ clearOnlineData(devcode);
+ //构建数据
+ ButaneData butaneData = ButaneData.builder()
+ .devcode(devcode)
+ .dbid(snowflake.nextId())
+ .build();
+ populateTime(receiveData, butaneData, alarmRecord);
+ switch (alarmSituation) {
+ case "0":
+// butaneData.setDescn("状态正常");
+// butaneData.setStatus("0");
+ break;
+ default:
+ //第一条上来,消除报警
+ clearAlarmData(devcode);
+ //产生新的报警,消除报警
+ butaneData.setDescn("可燃气体探测器报警");
+ butaneData.setStatus("1");
+ synchronized (alarmRecord) {
+ alarmRecord.setDbid(null);
+ alarmRecord.setDeviceCode(devcode);
+ alarmRecord.setDeviceId(alarmRecordsMapper.getDevcode(devcode));
+ alarmRecordsMapper.insert(alarmRecord);
+ }
+ butaneDataMapper.insert(butaneData);
+
+ try {
+ //推送短信至第三方
+ Device device = alarmRecordsMapper.getDevice(devcode);
+ if (null == device) {
+ log.error("设备不存在,编号:" + devcode);
+ return false;
+ }
+ JSONObject eventObj = new JSONObject();
+ eventObj.put("type", "燃气报警");
+ sendUtil.sendEventBySms(device, eventObj);
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ }
}
- return false;
+ return true;
}
public Boolean dealNormalData(Map receiveData) {
String devcode = receiveData.get("IMEI").toString();
- if (!StringUtils.isEmpty(devcode)) {
- Map deviceMap = deviceMapper.getWellCode(devcode);
- //保存数据,无论是否有设备在库内
- DataGasDector dataGasDector = this.saveNormalData(receiveData, deviceMap);
- if (ObjectUtils.isEmpty(deviceMap)) {
- log.info("没有该设备编号录入" + devcode);
- if (enableLocal) {
- return true;
- }
- }
- //自动消除报警
- this.alarmRecordsMapper.clearAlarm(devcode);
- this.dataTaskJudge(deviceMap, dataGasDector);
- return true;
+ //第一条上来,清除离线
+ clearOnlineData(devcode);
+ ButaneData butaneData = ButaneData.builder()
+ .devcode(devcode)
+ .dbid(snowflake.nextId())
+ .descn("状态正常")
+ .status("0")
+ .build();
+ if (!ObjectUtils.isEmpty(receiveData) && receiveData.containsKey("timestamp")) {
+ butaneData.setLogtime(new Date(Long.valueOf(receiveData.get("timestamp").toString())));
+ } else {
+ butaneData.setLogtime(new Date());
}
+ butaneDataMapper.insert(butaneData);
return false;
}
- private DataGasDector saveNormalData(Map receiveData, Map deviceMap) {
- DataGasDector dataGasDector = new DataGasDector();
- dataGasDector.setId(snowflake.nextId());
- dataGasDector.setDevcode(receiveData.get("IMEI").toString());
- dataGasDector.setWellCode(!ObjectUtils.isEmpty(deviceMap) && deviceMap.containsKey("wellCode") ? deviceMap.get("wellCode").toString() : "");
- dataGasDector.setLogtime(new Date());
+ private void populateTime(Map receiveData, ButaneData butaneData, AlarmRecord alarmRecord) {
if (!ObjectUtils.isEmpty(receiveData) && receiveData.containsKey("timestamp")) {
- dataGasDector.setUptime(new Date(Long.valueOf(receiveData.get("timestamp").toString())));
+ Date logtime = new Date(Long.valueOf(receiveData.get("timestamp").toString()));
+ butaneData.setLogtime(logtime);
+ alarmRecord.setRecorddate(logtime);
} else {
- dataGasDector.setUptime(new Date());
+ alarmRecord.setRecorddate(new Date());
+ butaneData.setLogtime(new Date());
}
- Map gascontent = (Map)receiveData.get("payload");
- if (!ObjectUtils.isEmpty(gascontent)) {
- if (gascontent.containsKey("gas_sample_value")) {
- dataGasDector.setStrength(gascontent.get("gas_sample_value").toString());
- }
- }
- dataGasMapper.insert(dataGasDector);
- return dataGasDector;
}
- /**
- * 报警存库
- */
- private void dataTaskJudge(Map deviceMap, DataGasDector dataGasDector) {
- List> alarmLevelList = dataGasMapper.getAlarmLevelList(deviceType);
- String wellCode = dataGasDector.getWellCode();
- Long deviceId = !ObjectUtils.isEmpty(deviceMap) && deviceMap.containsKey("wellCode") ? Long.valueOf(String.valueOf(deviceMap.get("deviceId"))) : -1;
- final String gasMsgContent = dataGasMapper.getGasMsgContent(deviceType);
- for (Map alarmLevelMap : alarmLevelList) {
- if (Float.valueOf(dataGasDector.getStrength()) > Float.valueOf(String.valueOf(alarmLevelMap.get("high_value")))) {
- AlarmRecords alarmRecord = new AlarmRecords();
- alarmRecord.setId(snowflake.nextId());
- alarmRecord.setDeviceId(deviceId);
- alarmRecord.setDevcode(dataGasDector.getDevcode());
- alarmRecord.setWellCode(wellCode);
- alarmRecord.setAlarmType("1"); // 业务报警
- alarmRecord.setAlarmContent(gasMsgContent);
- alarmRecord.setAlarmValue(dataGasDector.getStrength());
- alarmRecord.setAlarmTime(new Date());
- alarmRecord.setStatus("1");
- alarmRecord.setAlarmLevel(Integer.valueOf(alarmLevelMap.get("level").toString()));
- alarmRecord.setAlarmMessage(gasMsgContent);
- String jobId = alarmRecordsMapper.isOldAlarmRecord(dataGasDector.getDevcode(), gasMsgContent);
- // 超出报警阈值 生成一条报警消息
- if (!StringUtils.isEmpty(jobId)) {
- alarmRecordsMapper.updateOldAlarmRecord(dataGasDector.getDevcode(), gasMsgContent);
- alarmRecord.setJobId(Long.valueOf(jobId));
- } else {
- AlarmJob alarmJob = alarmJobDao.saveData(dataGasDector.getStrength(), wellCode, "RQZD", "1");
- alarmRecord.setJobId(alarmJob.getId());
- }
- alarmRecordsMapper.insert(alarmRecord);
- break;
- }
+ private void clearAlarmData(String devcode) {
+ QueryWrapper queryWrapper = new QueryWrapper();
+ queryWrapper.eq("DEVICE_CODE", devcode);
+ queryWrapper.eq("ACTIVE", 1);
+ try {
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setActive(0);
+ alarmRecordsMapper.update(alarmRecord, queryWrapper);
+ } catch (Exception e) {
+ log.error("清除报警失败,设备编号为{},异常信息{}", devcode, e);
}
}
+
+ private void clearOnlineData(String devcode) {
+ QueryWrapper queryWrapper = new QueryWrapper();
+ queryWrapper.eq("DEVICE_CODE", devcode);
+ queryWrapper.eq("ACTIVE", 1);
+ queryWrapper.eq("MESSAGE_STATUS", "0");
+ queryWrapper.eq("RECORDCODE", "1");
+ try {
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setActive(0);
+ alarmRecordsMapper.update(alarmRecord, queryWrapper);
+ } catch (Exception e) {
+ log.error("清除报警失败,设备编号为{},异常信息{}", devcode, e);
+ }
+ }
+
}
diff --git a/src/main/java/com/casic/util/ConestUtil.java b/src/main/java/com/casic/util/ConestUtil.java
deleted file mode 100644
index 2a4d305..0000000
--- a/src/main/java/com/casic/util/ConestUtil.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package com.casic.util;
-
-public class ConestUtil {
-
-
-}
diff --git a/src/main/java/com/casic/util/DateUtils.java b/src/main/java/com/casic/util/DateUtils.java
new file mode 100644
index 0000000..db2ed9c
--- /dev/null
+++ b/src/main/java/com/casic/util/DateUtils.java
@@ -0,0 +1,63 @@
+package com.casic.util;
+
+import java.text.SimpleDateFormat;
+
+/**
+ * Created by Administrator on 2015/2/25.
+ */
+public class DateUtils {
+ public static SimpleDateFormat sdf_day = new SimpleDateFormat("yyyy-MM-dd");
+ public static SimpleDateFormat sdf_day_time = new SimpleDateFormat("yyyyMMddHHmmss");
+ public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ public static final SimpleDateFormat sdf5 = new SimpleDateFormat("HH:mm:ss");
+ public static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+
+
+ public static String DateFormat(String dataString) {
+
+ String strymd = dataString.substring(0, 8);
+ String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " ";
+ String strhms = dataString.substring(8);
+ String str2 = strhms.substring(0, 2) + ":" + strhms.substring(2, 4) + ":" + strhms.substring(4, 6);
+ dataString = str1 + str2;
+ return dataString;
+ }
+
+ public static String DateFormatDate(String dataString) {
+
+ String strymd = dataString.substring(0, 8);
+ return strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8);
+ }
+
+ public static String DateFormatTime(String dataString) {
+
+ String strhms = dataString.substring(8);
+ return strhms.substring(0, 2) + ":" + strhms.substring(2, 4) + ":" + strhms.substring(4, 6);
+ }
+
+ /**
+ * 比较两个时间 时分秒 大小
+ *
+ * @param s1
+ * @param s2
+ * @return
+ */
+ public static boolean compTime(String s1, String s2) {
+ try {
+ if (s1.indexOf(":") < 0 || s1.indexOf(":") < 0) {
+ System.out.println("格式不正确");
+ } else {
+ String[] array1 = s1.split(":");
+ int total1 = Integer.valueOf(array1[0]) * 3600 + Integer.valueOf(array1[1]) * 60;
+ String[] array2 = s2.split(":");
+ int total2 = Integer.valueOf(array2[0]) * 3600 + Integer.valueOf(array2[1]) * 60;
+ return total1 - total2 > 0 ? true : false;
+ }
+ } catch (NumberFormatException e) {
+ // TODO Auto-generated catch block
+ return false;
+ }
+ return false;
+
+ }
+}
diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/src/main/java/com/casic/dao/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index fde1818..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -1,36 +1,24 @@
package com.casic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmRecords;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.Device;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
@Mapper
-public interface AlarmRecordsMapper extends BaseMapper {
+public interface AlarmRecordsMapper extends BaseMapper {
+ @Select("SELECT DBID " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Long getDevcode(@Param("devcode") String devcode);
- @Select("SELECT JOB_ID AS \"jobId\"\n " +
- "FROM alarm_records\n " +
- "WHERE DEVCODE = #{devcode}\n " +
- "AND ALARM_CONTENT = #{MsgContent}\n " +
- "AND STATUS='1'\n " +
- "AND JOB_ID>0 ")
- String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='0'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND ALARM_CONTENT = #{MsgContent}\n" +
- " AND STATUS='1'")
- Integer updateOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='3'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND STATUS='1'")
- Integer clearAlarm(@Param("devcode") String devcode);
-
+ @Select("SELECT DBID as id, DEVCODE as devCode, DEVNAME as devName, FACTORY as factory, SIMID as simid " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Device getDevice(@Param("devcode") String devcode);
}
diff --git a/src/main/java/com/casic/dao/ButaneDataMapper.java b/src/main/java/com/casic/dao/ButaneDataMapper.java
new file mode 100644
index 0000000..632c7d2
--- /dev/null
+++ b/src/main/java/com/casic/dao/ButaneDataMapper.java
@@ -0,0 +1,12 @@
+package com.casic.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.entity.ButaneData;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface ButaneDataMapper extends BaseMapper {
+
+
+}
diff --git a/src/main/java/com/casic/dao/DataGasMapper.java b/src/main/java/com/casic/dao/DataGasMapper.java
deleted file mode 100644
index 8a064f2..0000000
--- a/src/main/java/com/casic/dao/DataGasMapper.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.DataGasDector;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-
-import java.util.List;
-import java.util.Map;
-
-@Mapper
-public interface DataGasMapper extends BaseMapper {
-
- @Select("SELECT level,high_value " +
- "FROM alarm_level " +
- "WHERE device_type=#{deviceType} ")
- List> getAlarmLevelList(@Param("deviceType") Long deviceType);
-
- @Select("SELECT devcode " +
- "FROM data_gas_dector " +
- "WHERE devcode=#{devcode} " +
- "AND (EXTRACT(epoch FROM CAST(now() AS TIMESTAMPTZ))-EXTRACT(epoch FROM CAST(logtime AS TIMESTAMPTZ)))/60.0 < ${minutes} "+
- "ORDER BY logtime DESC " +
- "LIMIT 1")
- String getLastData(@Param("minutes") String minutes,
- @Param("devcode") String devcode);
-
- @Select("SELECT alarm_content " +
- "FROM base_alarm_content_type " +
- "WHERE device_type=#{deviceType}")
- String getGasMsgContent(@Param("deviceType")Long deviceType);
-
-
-}
diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java
new file mode 100644
index 0000000..e9456c1
--- /dev/null
+++ b/src/main/java/com/casic/dao/DeviceDataMapper.java
@@ -0,0 +1,18 @@
+package com.casic.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface DeviceDataMapper {
+
+ List> getDevcodeByType(@Param("devciceType") Integer devciceType);
+
+ List getRecentData(@Param("dataDay") Integer dataDay);
+
+ int updateOnlineByDevs(@Param("dataSortList") List dataSortDevcodeList);
+
+}
diff --git a/src/main/java/com/casic/dao/DeviceMapper.java b/src/main/java/com/casic/dao/DeviceMapper.java
deleted file mode 100644
index 73b574e..0000000
--- a/src/main/java/com/casic/dao/DeviceMapper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.Device;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Map;
-
-@Mapper
-public interface DeviceMapper extends BaseMapper {
-
- Map getWellCode(@Param("devcode") String devcode);
-
-}
diff --git a/src/main/java/com/casic/dao/impl/AlarmJobDao.java b/src/main/java/com/casic/dao/impl/AlarmJobDao.java
deleted file mode 100644
index 5131821..0000000
--- a/src/main/java/com/casic/dao/impl/AlarmJobDao.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.casic.dao.impl;
-
-import com.alibaba.druid.util.StringUtils;
-import com.casic.dao.AlarmJobMapper;
-import com.casic.entity.AlarmJob;
-import org.springframework.stereotype.Component;
-import xyz.downgoon.snowflake.Snowflake;
-
-import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-@Component
-public class AlarmJobDao {
-
- private static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMdd");
-
- private static Snowflake snowflake = new Snowflake(0, 2);
-// private static final Sn
-
- @Resource
- private AlarmJobMapper alarmJobMapper;
-
- public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) {
- AlarmJob alarmJob = new AlarmJob();
- alarmJob.setId(snowflake.nextId());
- alarmJob.setDevcode(devCode);
- alarmJob.setWellCode(wellCode);
- alarmJob.setJobStatus("0");
- alarmJob.setCreateTime(new Date());
- alarmJob.setJobcode(this.produceJobCode(devTypeName));
- alarmJob.setJobType(jobType);
- alarmJobMapper.insert(alarmJob);
- return alarmJob;
- }
-
- /**
- * 前缀+日期+4位流水号
- *
- * @param devTypeName
- * @return
- */
- private String produceJobCode(String devTypeName) {
- String pre = devTypeName;
- String dataStr = sdf6.format(new Date());
- String fix = this.getJobCodeMaxSerial(pre + dataStr);
- return StringUtils.isEmpty(fix) ? pre + dataStr + String.format("%04d", Long.valueOf(StringUtils.isEmpty(fix)?"0":fix) + 1L) : pre + dataStr + "0001";
- }
-
-
- private String getJobCodeMaxSerial(String jobcode) {
- String MaxSerialJobCode = alarmJobMapper.getJobCodeMaxSerial(jobcode);
- String fix = "";
- if (null != MaxSerialJobCode && MaxSerialJobCode.length() > 4) {
- fix = MaxSerialJobCode.substring(MaxSerialJobCode.length() - 4);
- }
- return fix;
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmJob.java b/src/main/java/com/casic/entity/AlarmJob.java
deleted file mode 100644
index 8a0f764..0000000
--- a/src/main/java/com/casic/entity/AlarmJob.java
+++ /dev/null
@@ -1,165 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- *
- * 报警工单表
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_job")
-public class AlarmJob extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- private Long id;
- /**
- * 工单编号
- */
- @TableField("JOBCODE")
- private String jobcode;
- /**
- * 工单类型
- */
- @TableField("JOG_TYPE")
- private String jobType;
- /**
- * 井编号
- */
- @TableField("WELL_CODE")
- private String wellCode;
- /**
- * 设备编号
- */
- @TableField("DEVCODE")
- private String devcode;
- /**
- * 工单创建时间
- */
- @TableField("CREATE_TIME")
- private Date createTime;
- /**
- * 工单状态(0待处理,1待确认,2处理中,3完成)
- */
- @TableField("JOB_STATUS")
- private String jobStatus;
- /**
- * 接单人员
- */
- @TableField("GET_JOB_PERSON")
- private Long getJobPerson;
- /**
- * 接单时间
- */
- @TableField("GET_JOB_TIME")
- private Date getJobTime;
- /**
- * 应接单时间
- */
- @TableField("SHOULD_GET_TIME")
- private Date shouldGetTime;
- /**
- * 第一现场情况
- */
- @TableField("FIRST_STATE")
- private String firstState;
- /**
- * 第一现场照片
- */
- @TableField("FIRST_STATE_PHOTOS")
- private String firstStatePhotos;
- /**
- * 确认人员
- */
- @TableField("CONFIRM_JOB_PERSON")
- private Long confirmJobPerson;
- /**
- * 确认时间
- */
- @TableField("CONFRIM_JOB_TIME")
- private Date confrimJobTime;
- /**
- * 处理人员
- */
- @TableField("HANDLE_JOB_Person")
- private Long handleJobPerson;
- /**
- * 处理时间
- */
- @TableField("HANDLE_JOB_TIME")
- private Date handleJobTime;
- /**
- * 维护情况记录
- */
- @TableField("HANDLE_MESSAGE")
- private String handleMessage;
- /**
- * 维护图片
- */
- @TableField("HANDLE_PHOTOS")
- private String handlePhotos;
- /**
- * 工单流转记录
- */
- @TableField("FLOW")
- private String flow;
-
- @TableField("JOB_BELONG_TO")
- private Long jobBelongTo;
-
- @TableField("JOB_FLAG_DELAY")
- private String jobFlagDelay;
-
- @TableField("JOB_FLAG_1")
- private String jobFlag1;
-
- @TableField(exist = false)
- private String alarmValue;
-
- @TableField(exist = false)
- private String alarmContentName;
-
- @TableField(exist = false)
- private Integer recordId;
-
- @Override
- public String toString() {
- return "AlarmJob{" +
- "id=" + id +
- ", jobcode=" + jobcode +
- ", jogType=" + jobType +
- ", wellCode=" + wellCode +
- ", devcode=" + devcode +
- ", createTime=" + createTime +
- ", jobStatus=" + jobStatus +
- ", getJobPerson=" + getJobPerson +
- ", getJobTime=" + getJobTime +
- ", firstState=" + firstState +
- ", firstStatePhotos=" + firstStatePhotos +
- ", confirmJobPerson=" + confirmJobPerson +
- ", confrimJobTime=" + confrimJobTime +
- ", handleJobPerson=" + handleJobPerson +
- ", handleJobTime=" + handleJobTime +
- ", handleMessage=" + handleMessage +
- ", handlePhotos=" + handlePhotos +
- ", flow=" + flow +
- ", recordId=" + recordId +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmRecord.java b/src/main/java/com/casic/entity/AlarmRecord.java
new file mode 100644
index 0000000..137d805
--- /dev/null
+++ b/src/main/java/com/casic/entity/AlarmRecord.java
@@ -0,0 +1,106 @@
+package com.casic.entity;
+
+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 com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *
+ *
+ *
+ *
+ * @author casic123
+ * @since 2019-05-17
+ */
+@Data
+@TableName("ALARM_ALARM_RECORD")
+public class AlarmRecord extends Model {
+
+
+ private static final long serialVersionUID = 1L;
+ /**
+ * 主键
+ */
+ @TableId(value = "DBID")
+ private Long dbid;
+ /**
+ * 设备编号
+ */
+ @TableField("DEVICE_CODE")
+ private String deviceCode;
+ /**
+ * 设备类型名称
+ */
+ @TableField("DEVICE_TYPE_NAME")
+ private String deviceTypeName;
+ /**
+ * 是否推送,默认0
+ */
+ @TableField("ISSEND")
+ private String issend;
+ /**
+ * 默认default
+ */
+ @TableField("ITEMNAME")
+ private String itemname;
+ /**
+ * 没有数值
+ */
+ @TableField("ITEMVALUE")
+ private String itemvalue;
+ /**
+ * 1
+ */
+ @TableField("MESSAGE")
+ private String message;
+ /**
+ * 0
+ */
+ @TableField("MESSAGE_STATUS")
+ private String messageStatus;
+
+
+ /**
+ * 0
+ */
+ @TableField("RECORDCODE")
+ private String recordcode;
+ /**
+ * 告警日期
+ */
+ @TableField("RECORDDATE")
+ private Date recorddate;
+ /**
+ * 工单编号
+ */
+ @TableField("DEVICE_ID")
+ private Long deviceId;
+
+ /**
+ * 删除标志,默认为1
+ */
+ private Integer active;
+
+ @Override
+ public String toString() {
+ return "AlarmRecord{" +
+ "dbid=" + dbid +
+ ", deviceCode='" + deviceCode + '\'' +
+ ", deviceTypeName='" + deviceTypeName + '\'' +
+ ", issend='" + issend + '\'' +
+ ", itemname='" + itemname + '\'' +
+ ", itemvalue='" + itemvalue + '\'' +
+ ", message='" + message + '\'' +
+ ", messageStatus='" + messageStatus + '\'' +
+ ", recordcode='" + recordcode + '\'' +
+ ", recorddate=" + recorddate +
+ ", deviceId=" + deviceId +
+ ", active=" + active +
+ '}';
+ }
+}
diff --git a/src/main/java/com/casic/entity/AlarmRecords.java b/src/main/java/com/casic/entity/AlarmRecords.java
deleted file mode 100644
index 88b0b26..0000000
--- a/src/main/java/com/casic/entity/AlarmRecords.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- *
- *
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_records")
-public class AlarmRecords extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- 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;
-
- @Override
- public String toString() {
- return "AlarmRecords{" +
- "id=" + id +
- ", deviceId=" + deviceId +
- ", devcode=" + devcode +
- ", wellCode=" + wellCode +
- ", alarmType=" + alarmType +
- ", alarmContent=" + alarmContent +
- ", alarmValue=" + alarmValue +
- ", alarmLevel=" + alarmLevel +
- ", alarmMessage=" + alarmMessage +
- ", alarmTime=" + alarmTime +
- ", status=" + status +
- ", jobId=" + jobId +
- ", jobStatus=" + jobStatus +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/ButaneData.java b/src/main/java/com/casic/entity/ButaneData.java
new file mode 100644
index 0000000..2e051be
--- /dev/null
+++ b/src/main/java/com/casic/entity/ButaneData.java
@@ -0,0 +1,28 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Builder;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@TableName("CASIC_BUTANE_INFO")
+@Builder
+public class ButaneData extends Model {
+
+ @TableId(value = "DBID")
+ private Long dbid;
+
+ private String devcode;
+
+ private String status;
+
+ private String descn;
+
+ private Date logtime;
+
+}
diff --git a/src/main/java/com/casic/entity/Device.java b/src/main/java/com/casic/entity/Device.java
new file mode 100644
index 0000000..0360e41
--- /dev/null
+++ b/src/main/java/com/casic/entity/Device.java
@@ -0,0 +1,27 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@TableName("ALARM_DEVICE")
+public class Device implements Serializable {
+ /**
+ * 设备基本信息表
+ */
+ private static final long serialVersionUID = -2023118078562324658L;
+ @TableId(value = "DBID")
+ private Long id;
+ @TableId(value = "DEVCODE")
+ private String devCode;
+ @TableId(value = "DEVNAME")
+ private String devName;
+ @TableId(value = "FACTORY")
+ private String factory;
+ @TableId(value = "SIMID")
+ private String simid; // SIM卡号
+
+}
diff --git a/src/main/java/com/casic/model/HostData.java b/src/main/java/com/casic/model/HostData.java
new file mode 100644
index 0000000..40cefa7
--- /dev/null
+++ b/src/main/java/com/casic/model/HostData.java
@@ -0,0 +1,16 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class HostData {
+ private String model;
+ private String dev_id;
+ private String chip_id;
+ private String mfd_day;
+ private String sw_ver;
+ private String hw_ver;
+ private String duration;
+ private String d_ch_cnt;
+ private String a_ch_cnt;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReceiveDataParam.java b/src/main/java/com/casic/model/ReceiveDataParam.java
new file mode 100644
index 0000000..3a17d24
--- /dev/null
+++ b/src/main/java/com/casic/model/ReceiveDataParam.java
@@ -0,0 +1,20 @@
+package com.casic.model;
+
+import lombok.Data;
+
+import java.util.HashMap;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReceiveDataParam {
+ private String deviceType;
+ private String iotId;
+ private String requestId;
+ private Object checkFailedData;
+ private String productKey;
+ private String deviceName;
+ private HashMap items;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReportUpdataParam.java b/src/main/java/com/casic/model/ReportUpdataParam.java
new file mode 100644
index 0000000..20c2ca9
--- /dev/null
+++ b/src/main/java/com/casic/model/ReportUpdataParam.java
@@ -0,0 +1,23 @@
+package com.casic.model;
+
+import lombok.Data;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReportUpdataParam {
+ private String msg_type;
+ private String event_change;
+ private String error_val;
+ private String ch_cnt;
+ private String erro_cnt;
+ private String alarm_low_cnt;
+ private String alarm_high_cnt;
+ private String offline_cnt;
+ private String rtd_val;
+ private String adc_val;
+ private String status_val;
+ private String time;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/WirelessData.java b/src/main/java/com/casic/model/WirelessData.java
new file mode 100644
index 0000000..b062c13
--- /dev/null
+++ b/src/main/java/com/casic/model/WirelessData.java
@@ -0,0 +1,19 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class WirelessData {
+ private String model;
+ private String IMEI;
+ private String ICCID;
+ private String sw_ver;
+ private String hw_ver;
+ private String ch_cnt;
+ private String heartbeat_inv;
+ private String up_pcnt;
+ private String up_pcnt_inv;
+ private String csq;
+}
+
+
diff --git a/src/main/java/com/casic/schedule/TaskConfigurer.java b/src/main/java/com/casic/schedule/TaskConfigurer.java
new file mode 100644
index 0000000..77c5d5a
--- /dev/null
+++ b/src/main/java/com/casic/schedule/TaskConfigurer.java
@@ -0,0 +1,47 @@
+package com.casic.schedule;
+
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+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
+@Slf4j
+@RequiredArgsConstructor
+public class TaskConfigurer implements SchedulingConfigurer {
+
+ @Value("${casic.device.online.cron}")
+ private String onlineStateCron;
+
+ private final DeviceDataService deviceDataService;
+
+ @Override
+ public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
+ TriggerTask onlineStateTask = new TriggerTask(nextDayDevice(),
+ triggerContext -> {
+ return new CronTrigger(onlineStateCron).nextExecutionTime(triggerContext);
+ });
+ taskRegistrar.addTriggerTask(onlineStateTask);
+ }
+
+ private Runnable nextDayDevice() {
+ return new Runnable() {
+ @Override
+ public void run() {
+ log.info("定时查询在线离线运行了...");
+ deviceDataService.checkAndUpdateDeviceOnline();
+ }
+ };
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/service/AlarmRecordFly.java b/src/main/java/com/casic/service/AlarmRecordFly.java
new file mode 100644
index 0000000..47c7969
--- /dev/null
+++ b/src/main/java/com/casic/service/AlarmRecordFly.java
@@ -0,0 +1,39 @@
+package com.casic.service;
+
+import com.casic.entity.AlarmRecord;
+
+public class AlarmRecordFly {
+
+ private static AlarmRecord alarmRecord;
+
+ static {
+ alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("0");
+ alarmRecord.setActive(1);
+ }
+
+ public static AlarmRecord getAlarmRecord() {
+ return alarmRecord;
+ }
+
+ public static AlarmRecord getPrototype(){
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("-1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("1");
+ alarmRecord.setActive(1);
+ return alarmRecord;
+ }
+
+
+
+
+}
diff --git a/src/main/java/com/casic/service/DeviceDataService.java b/src/main/java/com/casic/service/DeviceDataService.java
new file mode 100644
index 0000000..f972981
--- /dev/null
+++ b/src/main/java/com/casic/service/DeviceDataService.java
@@ -0,0 +1,7 @@
+package com.casic.service;
+
+public interface DeviceDataService {
+
+ void checkAndUpdateDeviceOnline();
+
+}
diff --git a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java
new file mode 100644
index 0000000..f41a44d
--- /dev/null
+++ b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java
@@ -0,0 +1,68 @@
+package com.casic.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.casic.dao.AlarmRecordsMapper;
+import com.casic.dao.DeviceDataMapper;
+import com.casic.entity.AlarmRecord;
+import com.casic.service.AlarmRecordFly;
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @author cz
+ */
+@Service
+@RequiredArgsConstructor
+public class DeviceDataServiceImpl extends ServiceImpl implements DeviceDataService {
+
+ private final DeviceDataMapper deviceDataMapper;
+
+ @Value("${casic.device.data-day}")
+ private Integer dataDay;
+
+ @Value("${casic.device.gas-dector.type}")
+ private Integer devciceType;
+
+
+ @Override
+ public void checkAndUpdateDeviceOnline() {
+ //查询硫化氢设备
+ List> devcodeList = deviceDataMapper.getDevcodeByType(devciceType);
+ //统一查询所有设备的3天内数据的设备编号,然后设备编号转成map,进行
+ List dataList = deviceDataMapper.getRecentData(dataDay);
+ List> dataSortDevcodeList = devcodeList;
+ if (dataList != null) {
+ Map devOnlineMap = new HashMap<>();
+ for (String devcodeData : dataList) {
+ devOnlineMap.put(devcodeData, "");
+ }
+ dataSortDevcodeList = dataSortDevcodeList.stream().filter(
+ e -> !devOnlineMap.containsKey((String) e.get("devcode"))).collect(Collectors.toList());
+ }
+ //批量产生离线报警
+ if (CollectionUtils.isNotEmpty(dataSortDevcodeList)) {
+ List alarmRecords = new ArrayList<>();
+ for (Map dataDevcodeMap : dataSortDevcodeList) {
+ alarmRecords.add(createAlarmRecord(((BigDecimal)dataDevcodeMap.get("id")).longValue(), (String) dataDevcodeMap.get("devcode")));
+ }
+ this.saveBatch(alarmRecords);
+ }
+ }
+
+ private AlarmRecord createAlarmRecord(Long id, String devcode) {
+ AlarmRecord alarmRecord = AlarmRecordFly.getPrototype();
+ alarmRecord.setRecorddate(new Date());
+ alarmRecord.setDbid(null);
+ alarmRecord.setDeviceCode(devcode);
+ alarmRecord.setDeviceId(id);
+ return alarmRecord;
+ }
+
+}
diff --git a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
index 4591d50..176b389 100644
--- a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
@@ -1,53 +1,41 @@
package com.casic.service.impl;
-import com.alibaba.druid.util.StringUtils;
-import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.casic.dao.AlarmRecordsMapper;
-import com.casic.dao.DataGasMapper;
-import com.casic.dao.DeviceMapper;
-import com.casic.dao.impl.AlarmJobDao;
-import com.casic.entity.AlarmJob;
-import com.casic.entity.AlarmRecords;
-import com.casic.entity.DataGasDector;
+import com.casic.dao.ButaneDataMapper;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.ButaneData;
import com.casic.entity.Device;
import com.casic.model.ResponseData;
+import com.casic.service.AlarmRecordFly;
import com.casic.service.DeviceService;
+import com.casic.util.SendUtil;
+import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import xyz.downgoon.snowflake.Snowflake;
-import javax.annotation.Resource;
import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import java.util.function.Supplier;
@Slf4j
@Service
+@RequiredArgsConstructor
public class DeviceServiceImpl implements DeviceService {
-
- @Value("${casic.device.gas-dector.enable-local}")
- private Boolean enableLocal;
- @Value("${casic.device.gas-dector.type}")
- private Long deviceType;
- @Resource
- private DataGasMapper dataGasMapper;
- @Resource
- private AlarmRecordsMapper alarmRecordsMapper;
- @Resource
- private DeviceMapper deviceMapper;
- @Autowired
- private AlarmJobDao alarmJobDao;
+ private final ButaneDataMapper butaneDataMapper;
+ private final AlarmRecordsMapper alarmRecordsMapper;
private static Snowflake snowflake = new Snowflake(0, 2);
+ @Autowired
+ private SendUtil sendUtil;
@Override
public ResponseData testMysql() {
+
ResponseData responseData = new ResponseData();
responseData.setMessage("保存成功");
responseData.setCode(1);
@@ -62,18 +50,16 @@
public ResponseData saveDataGas(Map receiveData) {
ResponseData responseData = new ResponseData();
try {
- Map payloadData;
+ Map payloadData = receiveData;
if (receiveData.containsKey("payload")) {
payloadData = (Map) receiveData.get("payload");
- }else{
- payloadData=receiveData;
}
- this.flagSelectProcessor("eventType", payloadData, () -> gasStatusUpdate(payloadData))
- .flagSelectProcessor("gas_sample_value", payloadData, () -> dealNormalData(receiveData));
+ this.flagSelectProcessor("gas_sensor_state", payloadData, () -> gasStatusUpdate(receiveData))
+ .flagSelectProcessor("heartbeat_time", payloadData, () -> dealNormalData(receiveData));
responseData.setCode(200);
responseData.setMessage("保存成功");
} catch (Exception dex) {
- log.error("主题:广东台燃气设备存储异常,异常信息:{}", dex.getMessage());
+ log.error("主题:燃气设备存储异常,异常信息:{}", dex.getMessage());
responseData.setCode(500);
responseData.setMessage("保存异常");
}
@@ -95,99 +81,110 @@
* @return
*/
private Boolean gasStatusUpdate(Map receiveData) {
- Long lonTimetemp = Long.valueOf(receiveData.get("timestamp").toString());
- String onlindeStatus = receiveData.get("eventType").toString();
- String devcode = receiveData.get("imei").toString();
- QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("devcode", devcode);
- queryWrapper.eq("valid", 1);
- Device device = new Device();
- if (!StringUtils.isEmpty(onlindeStatus)) {
- device.setOnlineState(onlindeStatus);
- Date logTime = new Date();
- logTime.setTime(lonTimetemp);
- device.setLogtime(logTime);
- deviceMapper.update(device, queryWrapper);
- return true;
+ AlarmRecord alarmRecord = AlarmRecordFly.getAlarmRecord();
+ Map payloadData = (Map) receiveData.get("payload");
+ //判断事件类型 0正常 1低报 2高报
+ String alarmSituation = payloadData.get("gas_sensor_state").toString();
+ String devcode = receiveData.get("IMEI").toString();
+ clearOnlineData(devcode);
+ //构建数据
+ ButaneData butaneData = ButaneData.builder()
+ .devcode(devcode)
+ .dbid(snowflake.nextId())
+ .build();
+ populateTime(receiveData, butaneData, alarmRecord);
+ switch (alarmSituation) {
+ case "0":
+// butaneData.setDescn("状态正常");
+// butaneData.setStatus("0");
+ break;
+ default:
+ //第一条上来,消除报警
+ clearAlarmData(devcode);
+ //产生新的报警,消除报警
+ butaneData.setDescn("可燃气体探测器报警");
+ butaneData.setStatus("1");
+ synchronized (alarmRecord) {
+ alarmRecord.setDbid(null);
+ alarmRecord.setDeviceCode(devcode);
+ alarmRecord.setDeviceId(alarmRecordsMapper.getDevcode(devcode));
+ alarmRecordsMapper.insert(alarmRecord);
+ }
+ butaneDataMapper.insert(butaneData);
+
+ try {
+ //推送短信至第三方
+ Device device = alarmRecordsMapper.getDevice(devcode);
+ if (null == device) {
+ log.error("设备不存在,编号:" + devcode);
+ return false;
+ }
+ JSONObject eventObj = new JSONObject();
+ eventObj.put("type", "燃气报警");
+ sendUtil.sendEventBySms(device, eventObj);
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ }
}
- return false;
+ return true;
}
public Boolean dealNormalData(Map receiveData) {
String devcode = receiveData.get("IMEI").toString();
- if (!StringUtils.isEmpty(devcode)) {
- Map deviceMap = deviceMapper.getWellCode(devcode);
- //保存数据,无论是否有设备在库内
- DataGasDector dataGasDector = this.saveNormalData(receiveData, deviceMap);
- if (ObjectUtils.isEmpty(deviceMap)) {
- log.info("没有该设备编号录入" + devcode);
- if (enableLocal) {
- return true;
- }
- }
- //自动消除报警
- this.alarmRecordsMapper.clearAlarm(devcode);
- this.dataTaskJudge(deviceMap, dataGasDector);
- return true;
+ //第一条上来,清除离线
+ clearOnlineData(devcode);
+ ButaneData butaneData = ButaneData.builder()
+ .devcode(devcode)
+ .dbid(snowflake.nextId())
+ .descn("状态正常")
+ .status("0")
+ .build();
+ if (!ObjectUtils.isEmpty(receiveData) && receiveData.containsKey("timestamp")) {
+ butaneData.setLogtime(new Date(Long.valueOf(receiveData.get("timestamp").toString())));
+ } else {
+ butaneData.setLogtime(new Date());
}
+ butaneDataMapper.insert(butaneData);
return false;
}
- private DataGasDector saveNormalData(Map receiveData, Map deviceMap) {
- DataGasDector dataGasDector = new DataGasDector();
- dataGasDector.setId(snowflake.nextId());
- dataGasDector.setDevcode(receiveData.get("IMEI").toString());
- dataGasDector.setWellCode(!ObjectUtils.isEmpty(deviceMap) && deviceMap.containsKey("wellCode") ? deviceMap.get("wellCode").toString() : "");
- dataGasDector.setLogtime(new Date());
+ private void populateTime(Map receiveData, ButaneData butaneData, AlarmRecord alarmRecord) {
if (!ObjectUtils.isEmpty(receiveData) && receiveData.containsKey("timestamp")) {
- dataGasDector.setUptime(new Date(Long.valueOf(receiveData.get("timestamp").toString())));
+ Date logtime = new Date(Long.valueOf(receiveData.get("timestamp").toString()));
+ butaneData.setLogtime(logtime);
+ alarmRecord.setRecorddate(logtime);
} else {
- dataGasDector.setUptime(new Date());
+ alarmRecord.setRecorddate(new Date());
+ butaneData.setLogtime(new Date());
}
- Map gascontent = (Map)receiveData.get("payload");
- if (!ObjectUtils.isEmpty(gascontent)) {
- if (gascontent.containsKey("gas_sample_value")) {
- dataGasDector.setStrength(gascontent.get("gas_sample_value").toString());
- }
- }
- dataGasMapper.insert(dataGasDector);
- return dataGasDector;
}
- /**
- * 报警存库
- */
- private void dataTaskJudge(Map deviceMap, DataGasDector dataGasDector) {
- List> alarmLevelList = dataGasMapper.getAlarmLevelList(deviceType);
- String wellCode = dataGasDector.getWellCode();
- Long deviceId = !ObjectUtils.isEmpty(deviceMap) && deviceMap.containsKey("wellCode") ? Long.valueOf(String.valueOf(deviceMap.get("deviceId"))) : -1;
- final String gasMsgContent = dataGasMapper.getGasMsgContent(deviceType);
- for (Map alarmLevelMap : alarmLevelList) {
- if (Float.valueOf(dataGasDector.getStrength()) > Float.valueOf(String.valueOf(alarmLevelMap.get("high_value")))) {
- AlarmRecords alarmRecord = new AlarmRecords();
- alarmRecord.setId(snowflake.nextId());
- alarmRecord.setDeviceId(deviceId);
- alarmRecord.setDevcode(dataGasDector.getDevcode());
- alarmRecord.setWellCode(wellCode);
- alarmRecord.setAlarmType("1"); // 业务报警
- alarmRecord.setAlarmContent(gasMsgContent);
- alarmRecord.setAlarmValue(dataGasDector.getStrength());
- alarmRecord.setAlarmTime(new Date());
- alarmRecord.setStatus("1");
- alarmRecord.setAlarmLevel(Integer.valueOf(alarmLevelMap.get("level").toString()));
- alarmRecord.setAlarmMessage(gasMsgContent);
- String jobId = alarmRecordsMapper.isOldAlarmRecord(dataGasDector.getDevcode(), gasMsgContent);
- // 超出报警阈值 生成一条报警消息
- if (!StringUtils.isEmpty(jobId)) {
- alarmRecordsMapper.updateOldAlarmRecord(dataGasDector.getDevcode(), gasMsgContent);
- alarmRecord.setJobId(Long.valueOf(jobId));
- } else {
- AlarmJob alarmJob = alarmJobDao.saveData(dataGasDector.getStrength(), wellCode, "RQZD", "1");
- alarmRecord.setJobId(alarmJob.getId());
- }
- alarmRecordsMapper.insert(alarmRecord);
- break;
- }
+ private void clearAlarmData(String devcode) {
+ QueryWrapper queryWrapper = new QueryWrapper();
+ queryWrapper.eq("DEVICE_CODE", devcode);
+ queryWrapper.eq("ACTIVE", 1);
+ try {
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setActive(0);
+ alarmRecordsMapper.update(alarmRecord, queryWrapper);
+ } catch (Exception e) {
+ log.error("清除报警失败,设备编号为{},异常信息{}", devcode, e);
}
}
+
+ private void clearOnlineData(String devcode) {
+ QueryWrapper queryWrapper = new QueryWrapper();
+ queryWrapper.eq("DEVICE_CODE", devcode);
+ queryWrapper.eq("ACTIVE", 1);
+ queryWrapper.eq("MESSAGE_STATUS", "0");
+ queryWrapper.eq("RECORDCODE", "1");
+ try {
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setActive(0);
+ alarmRecordsMapper.update(alarmRecord, queryWrapper);
+ } catch (Exception e) {
+ log.error("清除报警失败,设备编号为{},异常信息{}", devcode, e);
+ }
+ }
+
}
diff --git a/src/main/java/com/casic/util/ConestUtil.java b/src/main/java/com/casic/util/ConestUtil.java
deleted file mode 100644
index 2a4d305..0000000
--- a/src/main/java/com/casic/util/ConestUtil.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package com.casic.util;
-
-public class ConestUtil {
-
-
-}
diff --git a/src/main/java/com/casic/util/DateUtils.java b/src/main/java/com/casic/util/DateUtils.java
new file mode 100644
index 0000000..db2ed9c
--- /dev/null
+++ b/src/main/java/com/casic/util/DateUtils.java
@@ -0,0 +1,63 @@
+package com.casic.util;
+
+import java.text.SimpleDateFormat;
+
+/**
+ * Created by Administrator on 2015/2/25.
+ */
+public class DateUtils {
+ public static SimpleDateFormat sdf_day = new SimpleDateFormat("yyyy-MM-dd");
+ public static SimpleDateFormat sdf_day_time = new SimpleDateFormat("yyyyMMddHHmmss");
+ public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ public static final SimpleDateFormat sdf5 = new SimpleDateFormat("HH:mm:ss");
+ public static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+
+
+ public static String DateFormat(String dataString) {
+
+ String strymd = dataString.substring(0, 8);
+ String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " ";
+ String strhms = dataString.substring(8);
+ String str2 = strhms.substring(0, 2) + ":" + strhms.substring(2, 4) + ":" + strhms.substring(4, 6);
+ dataString = str1 + str2;
+ return dataString;
+ }
+
+ public static String DateFormatDate(String dataString) {
+
+ String strymd = dataString.substring(0, 8);
+ return strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8);
+ }
+
+ public static String DateFormatTime(String dataString) {
+
+ String strhms = dataString.substring(8);
+ return strhms.substring(0, 2) + ":" + strhms.substring(2, 4) + ":" + strhms.substring(4, 6);
+ }
+
+ /**
+ * 比较两个时间 时分秒 大小
+ *
+ * @param s1
+ * @param s2
+ * @return
+ */
+ public static boolean compTime(String s1, String s2) {
+ try {
+ if (s1.indexOf(":") < 0 || s1.indexOf(":") < 0) {
+ System.out.println("格式不正确");
+ } else {
+ String[] array1 = s1.split(":");
+ int total1 = Integer.valueOf(array1[0]) * 3600 + Integer.valueOf(array1[1]) * 60;
+ String[] array2 = s2.split(":");
+ int total2 = Integer.valueOf(array2[0]) * 3600 + Integer.valueOf(array2[1]) * 60;
+ return total1 - total2 > 0 ? true : false;
+ }
+ } catch (NumberFormatException e) {
+ // TODO Auto-generated catch block
+ return false;
+ }
+ return false;
+
+ }
+}
diff --git a/src/main/java/com/casic/util/HttpClientUtils.java b/src/main/java/com/casic/util/HttpClientUtils.java
new file mode 100644
index 0000000..91a631e
--- /dev/null
+++ b/src/main/java/com/casic/util/HttpClientUtils.java
@@ -0,0 +1,40 @@
+package com.casic.util;
+
+
+import com.alibaba.fastjson.JSONObject;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpStatus;
+import org.apache.commons.httpclient.methods.PostMethod;
+
+import java.io.IOException;
+
+public class HttpClientUtils {
+
+
+
+ public static String post(String url, String body, JSONObject header) {
+ HttpClient client = new HttpClient();
+ client.setTimeout(30000);
+ PostMethod method = new PostMethod(url);
+ // for (Map.Entry entry : headers.entrySet()) {
+ method.addRequestHeader("Content-type", "application/json; charset=utf-8");
+ method.addRequestHeader("Accept", "application/json");
+ method.addRequestHeader("X-APP-KEY", header.getString("X-APP-KEY"));
+ method.setRequestBody(body);
+ try {
+ int statusCode = client.executeMethod(method);
+ if (statusCode == HttpStatus.SC_OK) {
+ return new String(method.getResponseBody(), "UTF-8");
+ }
+
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+}
diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/src/main/java/com/casic/dao/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index fde1818..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -1,36 +1,24 @@
package com.casic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmRecords;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.Device;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
@Mapper
-public interface AlarmRecordsMapper extends BaseMapper {
+public interface AlarmRecordsMapper extends BaseMapper {
+ @Select("SELECT DBID " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Long getDevcode(@Param("devcode") String devcode);
- @Select("SELECT JOB_ID AS \"jobId\"\n " +
- "FROM alarm_records\n " +
- "WHERE DEVCODE = #{devcode}\n " +
- "AND ALARM_CONTENT = #{MsgContent}\n " +
- "AND STATUS='1'\n " +
- "AND JOB_ID>0 ")
- String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='0'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND ALARM_CONTENT = #{MsgContent}\n" +
- " AND STATUS='1'")
- Integer updateOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='3'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND STATUS='1'")
- Integer clearAlarm(@Param("devcode") String devcode);
-
+ @Select("SELECT DBID as id, DEVCODE as devCode, DEVNAME as devName, FACTORY as factory, SIMID as simid " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Device getDevice(@Param("devcode") String devcode);
}
diff --git a/src/main/java/com/casic/dao/ButaneDataMapper.java b/src/main/java/com/casic/dao/ButaneDataMapper.java
new file mode 100644
index 0000000..632c7d2
--- /dev/null
+++ b/src/main/java/com/casic/dao/ButaneDataMapper.java
@@ -0,0 +1,12 @@
+package com.casic.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.entity.ButaneData;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface ButaneDataMapper extends BaseMapper {
+
+
+}
diff --git a/src/main/java/com/casic/dao/DataGasMapper.java b/src/main/java/com/casic/dao/DataGasMapper.java
deleted file mode 100644
index 8a064f2..0000000
--- a/src/main/java/com/casic/dao/DataGasMapper.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.DataGasDector;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-
-import java.util.List;
-import java.util.Map;
-
-@Mapper
-public interface DataGasMapper extends BaseMapper {
-
- @Select("SELECT level,high_value " +
- "FROM alarm_level " +
- "WHERE device_type=#{deviceType} ")
- List> getAlarmLevelList(@Param("deviceType") Long deviceType);
-
- @Select("SELECT devcode " +
- "FROM data_gas_dector " +
- "WHERE devcode=#{devcode} " +
- "AND (EXTRACT(epoch FROM CAST(now() AS TIMESTAMPTZ))-EXTRACT(epoch FROM CAST(logtime AS TIMESTAMPTZ)))/60.0 < ${minutes} "+
- "ORDER BY logtime DESC " +
- "LIMIT 1")
- String getLastData(@Param("minutes") String minutes,
- @Param("devcode") String devcode);
-
- @Select("SELECT alarm_content " +
- "FROM base_alarm_content_type " +
- "WHERE device_type=#{deviceType}")
- String getGasMsgContent(@Param("deviceType")Long deviceType);
-
-
-}
diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java
new file mode 100644
index 0000000..e9456c1
--- /dev/null
+++ b/src/main/java/com/casic/dao/DeviceDataMapper.java
@@ -0,0 +1,18 @@
+package com.casic.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface DeviceDataMapper {
+
+ List> getDevcodeByType(@Param("devciceType") Integer devciceType);
+
+ List getRecentData(@Param("dataDay") Integer dataDay);
+
+ int updateOnlineByDevs(@Param("dataSortList") List dataSortDevcodeList);
+
+}
diff --git a/src/main/java/com/casic/dao/DeviceMapper.java b/src/main/java/com/casic/dao/DeviceMapper.java
deleted file mode 100644
index 73b574e..0000000
--- a/src/main/java/com/casic/dao/DeviceMapper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.Device;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Map;
-
-@Mapper
-public interface DeviceMapper extends BaseMapper {
-
- Map getWellCode(@Param("devcode") String devcode);
-
-}
diff --git a/src/main/java/com/casic/dao/impl/AlarmJobDao.java b/src/main/java/com/casic/dao/impl/AlarmJobDao.java
deleted file mode 100644
index 5131821..0000000
--- a/src/main/java/com/casic/dao/impl/AlarmJobDao.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.casic.dao.impl;
-
-import com.alibaba.druid.util.StringUtils;
-import com.casic.dao.AlarmJobMapper;
-import com.casic.entity.AlarmJob;
-import org.springframework.stereotype.Component;
-import xyz.downgoon.snowflake.Snowflake;
-
-import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-@Component
-public class AlarmJobDao {
-
- private static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMdd");
-
- private static Snowflake snowflake = new Snowflake(0, 2);
-// private static final Sn
-
- @Resource
- private AlarmJobMapper alarmJobMapper;
-
- public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) {
- AlarmJob alarmJob = new AlarmJob();
- alarmJob.setId(snowflake.nextId());
- alarmJob.setDevcode(devCode);
- alarmJob.setWellCode(wellCode);
- alarmJob.setJobStatus("0");
- alarmJob.setCreateTime(new Date());
- alarmJob.setJobcode(this.produceJobCode(devTypeName));
- alarmJob.setJobType(jobType);
- alarmJobMapper.insert(alarmJob);
- return alarmJob;
- }
-
- /**
- * 前缀+日期+4位流水号
- *
- * @param devTypeName
- * @return
- */
- private String produceJobCode(String devTypeName) {
- String pre = devTypeName;
- String dataStr = sdf6.format(new Date());
- String fix = this.getJobCodeMaxSerial(pre + dataStr);
- return StringUtils.isEmpty(fix) ? pre + dataStr + String.format("%04d", Long.valueOf(StringUtils.isEmpty(fix)?"0":fix) + 1L) : pre + dataStr + "0001";
- }
-
-
- private String getJobCodeMaxSerial(String jobcode) {
- String MaxSerialJobCode = alarmJobMapper.getJobCodeMaxSerial(jobcode);
- String fix = "";
- if (null != MaxSerialJobCode && MaxSerialJobCode.length() > 4) {
- fix = MaxSerialJobCode.substring(MaxSerialJobCode.length() - 4);
- }
- return fix;
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmJob.java b/src/main/java/com/casic/entity/AlarmJob.java
deleted file mode 100644
index 8a0f764..0000000
--- a/src/main/java/com/casic/entity/AlarmJob.java
+++ /dev/null
@@ -1,165 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- *
- * 报警工单表
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_job")
-public class AlarmJob extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- private Long id;
- /**
- * 工单编号
- */
- @TableField("JOBCODE")
- private String jobcode;
- /**
- * 工单类型
- */
- @TableField("JOG_TYPE")
- private String jobType;
- /**
- * 井编号
- */
- @TableField("WELL_CODE")
- private String wellCode;
- /**
- * 设备编号
- */
- @TableField("DEVCODE")
- private String devcode;
- /**
- * 工单创建时间
- */
- @TableField("CREATE_TIME")
- private Date createTime;
- /**
- * 工单状态(0待处理,1待确认,2处理中,3完成)
- */
- @TableField("JOB_STATUS")
- private String jobStatus;
- /**
- * 接单人员
- */
- @TableField("GET_JOB_PERSON")
- private Long getJobPerson;
- /**
- * 接单时间
- */
- @TableField("GET_JOB_TIME")
- private Date getJobTime;
- /**
- * 应接单时间
- */
- @TableField("SHOULD_GET_TIME")
- private Date shouldGetTime;
- /**
- * 第一现场情况
- */
- @TableField("FIRST_STATE")
- private String firstState;
- /**
- * 第一现场照片
- */
- @TableField("FIRST_STATE_PHOTOS")
- private String firstStatePhotos;
- /**
- * 确认人员
- */
- @TableField("CONFIRM_JOB_PERSON")
- private Long confirmJobPerson;
- /**
- * 确认时间
- */
- @TableField("CONFRIM_JOB_TIME")
- private Date confrimJobTime;
- /**
- * 处理人员
- */
- @TableField("HANDLE_JOB_Person")
- private Long handleJobPerson;
- /**
- * 处理时间
- */
- @TableField("HANDLE_JOB_TIME")
- private Date handleJobTime;
- /**
- * 维护情况记录
- */
- @TableField("HANDLE_MESSAGE")
- private String handleMessage;
- /**
- * 维护图片
- */
- @TableField("HANDLE_PHOTOS")
- private String handlePhotos;
- /**
- * 工单流转记录
- */
- @TableField("FLOW")
- private String flow;
-
- @TableField("JOB_BELONG_TO")
- private Long jobBelongTo;
-
- @TableField("JOB_FLAG_DELAY")
- private String jobFlagDelay;
-
- @TableField("JOB_FLAG_1")
- private String jobFlag1;
-
- @TableField(exist = false)
- private String alarmValue;
-
- @TableField(exist = false)
- private String alarmContentName;
-
- @TableField(exist = false)
- private Integer recordId;
-
- @Override
- public String toString() {
- return "AlarmJob{" +
- "id=" + id +
- ", jobcode=" + jobcode +
- ", jogType=" + jobType +
- ", wellCode=" + wellCode +
- ", devcode=" + devcode +
- ", createTime=" + createTime +
- ", jobStatus=" + jobStatus +
- ", getJobPerson=" + getJobPerson +
- ", getJobTime=" + getJobTime +
- ", firstState=" + firstState +
- ", firstStatePhotos=" + firstStatePhotos +
- ", confirmJobPerson=" + confirmJobPerson +
- ", confrimJobTime=" + confrimJobTime +
- ", handleJobPerson=" + handleJobPerson +
- ", handleJobTime=" + handleJobTime +
- ", handleMessage=" + handleMessage +
- ", handlePhotos=" + handlePhotos +
- ", flow=" + flow +
- ", recordId=" + recordId +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmRecord.java b/src/main/java/com/casic/entity/AlarmRecord.java
new file mode 100644
index 0000000..137d805
--- /dev/null
+++ b/src/main/java/com/casic/entity/AlarmRecord.java
@@ -0,0 +1,106 @@
+package com.casic.entity;
+
+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 com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *
+ *
+ *
+ *
+ * @author casic123
+ * @since 2019-05-17
+ */
+@Data
+@TableName("ALARM_ALARM_RECORD")
+public class AlarmRecord extends Model {
+
+
+ private static final long serialVersionUID = 1L;
+ /**
+ * 主键
+ */
+ @TableId(value = "DBID")
+ private Long dbid;
+ /**
+ * 设备编号
+ */
+ @TableField("DEVICE_CODE")
+ private String deviceCode;
+ /**
+ * 设备类型名称
+ */
+ @TableField("DEVICE_TYPE_NAME")
+ private String deviceTypeName;
+ /**
+ * 是否推送,默认0
+ */
+ @TableField("ISSEND")
+ private String issend;
+ /**
+ * 默认default
+ */
+ @TableField("ITEMNAME")
+ private String itemname;
+ /**
+ * 没有数值
+ */
+ @TableField("ITEMVALUE")
+ private String itemvalue;
+ /**
+ * 1
+ */
+ @TableField("MESSAGE")
+ private String message;
+ /**
+ * 0
+ */
+ @TableField("MESSAGE_STATUS")
+ private String messageStatus;
+
+
+ /**
+ * 0
+ */
+ @TableField("RECORDCODE")
+ private String recordcode;
+ /**
+ * 告警日期
+ */
+ @TableField("RECORDDATE")
+ private Date recorddate;
+ /**
+ * 工单编号
+ */
+ @TableField("DEVICE_ID")
+ private Long deviceId;
+
+ /**
+ * 删除标志,默认为1
+ */
+ private Integer active;
+
+ @Override
+ public String toString() {
+ return "AlarmRecord{" +
+ "dbid=" + dbid +
+ ", deviceCode='" + deviceCode + '\'' +
+ ", deviceTypeName='" + deviceTypeName + '\'' +
+ ", issend='" + issend + '\'' +
+ ", itemname='" + itemname + '\'' +
+ ", itemvalue='" + itemvalue + '\'' +
+ ", message='" + message + '\'' +
+ ", messageStatus='" + messageStatus + '\'' +
+ ", recordcode='" + recordcode + '\'' +
+ ", recorddate=" + recorddate +
+ ", deviceId=" + deviceId +
+ ", active=" + active +
+ '}';
+ }
+}
diff --git a/src/main/java/com/casic/entity/AlarmRecords.java b/src/main/java/com/casic/entity/AlarmRecords.java
deleted file mode 100644
index 88b0b26..0000000
--- a/src/main/java/com/casic/entity/AlarmRecords.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- *
- *
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_records")
-public class AlarmRecords extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- 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;
-
- @Override
- public String toString() {
- return "AlarmRecords{" +
- "id=" + id +
- ", deviceId=" + deviceId +
- ", devcode=" + devcode +
- ", wellCode=" + wellCode +
- ", alarmType=" + alarmType +
- ", alarmContent=" + alarmContent +
- ", alarmValue=" + alarmValue +
- ", alarmLevel=" + alarmLevel +
- ", alarmMessage=" + alarmMessage +
- ", alarmTime=" + alarmTime +
- ", status=" + status +
- ", jobId=" + jobId +
- ", jobStatus=" + jobStatus +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/ButaneData.java b/src/main/java/com/casic/entity/ButaneData.java
new file mode 100644
index 0000000..2e051be
--- /dev/null
+++ b/src/main/java/com/casic/entity/ButaneData.java
@@ -0,0 +1,28 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Builder;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@TableName("CASIC_BUTANE_INFO")
+@Builder
+public class ButaneData extends Model {
+
+ @TableId(value = "DBID")
+ private Long dbid;
+
+ private String devcode;
+
+ private String status;
+
+ private String descn;
+
+ private Date logtime;
+
+}
diff --git a/src/main/java/com/casic/entity/Device.java b/src/main/java/com/casic/entity/Device.java
new file mode 100644
index 0000000..0360e41
--- /dev/null
+++ b/src/main/java/com/casic/entity/Device.java
@@ -0,0 +1,27 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@TableName("ALARM_DEVICE")
+public class Device implements Serializable {
+ /**
+ * 设备基本信息表
+ */
+ private static final long serialVersionUID = -2023118078562324658L;
+ @TableId(value = "DBID")
+ private Long id;
+ @TableId(value = "DEVCODE")
+ private String devCode;
+ @TableId(value = "DEVNAME")
+ private String devName;
+ @TableId(value = "FACTORY")
+ private String factory;
+ @TableId(value = "SIMID")
+ private String simid; // SIM卡号
+
+}
diff --git a/src/main/java/com/casic/model/HostData.java b/src/main/java/com/casic/model/HostData.java
new file mode 100644
index 0000000..40cefa7
--- /dev/null
+++ b/src/main/java/com/casic/model/HostData.java
@@ -0,0 +1,16 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class HostData {
+ private String model;
+ private String dev_id;
+ private String chip_id;
+ private String mfd_day;
+ private String sw_ver;
+ private String hw_ver;
+ private String duration;
+ private String d_ch_cnt;
+ private String a_ch_cnt;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReceiveDataParam.java b/src/main/java/com/casic/model/ReceiveDataParam.java
new file mode 100644
index 0000000..3a17d24
--- /dev/null
+++ b/src/main/java/com/casic/model/ReceiveDataParam.java
@@ -0,0 +1,20 @@
+package com.casic.model;
+
+import lombok.Data;
+
+import java.util.HashMap;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReceiveDataParam {
+ private String deviceType;
+ private String iotId;
+ private String requestId;
+ private Object checkFailedData;
+ private String productKey;
+ private String deviceName;
+ private HashMap items;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReportUpdataParam.java b/src/main/java/com/casic/model/ReportUpdataParam.java
new file mode 100644
index 0000000..20c2ca9
--- /dev/null
+++ b/src/main/java/com/casic/model/ReportUpdataParam.java
@@ -0,0 +1,23 @@
+package com.casic.model;
+
+import lombok.Data;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReportUpdataParam {
+ private String msg_type;
+ private String event_change;
+ private String error_val;
+ private String ch_cnt;
+ private String erro_cnt;
+ private String alarm_low_cnt;
+ private String alarm_high_cnt;
+ private String offline_cnt;
+ private String rtd_val;
+ private String adc_val;
+ private String status_val;
+ private String time;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/WirelessData.java b/src/main/java/com/casic/model/WirelessData.java
new file mode 100644
index 0000000..b062c13
--- /dev/null
+++ b/src/main/java/com/casic/model/WirelessData.java
@@ -0,0 +1,19 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class WirelessData {
+ private String model;
+ private String IMEI;
+ private String ICCID;
+ private String sw_ver;
+ private String hw_ver;
+ private String ch_cnt;
+ private String heartbeat_inv;
+ private String up_pcnt;
+ private String up_pcnt_inv;
+ private String csq;
+}
+
+
diff --git a/src/main/java/com/casic/schedule/TaskConfigurer.java b/src/main/java/com/casic/schedule/TaskConfigurer.java
new file mode 100644
index 0000000..77c5d5a
--- /dev/null
+++ b/src/main/java/com/casic/schedule/TaskConfigurer.java
@@ -0,0 +1,47 @@
+package com.casic.schedule;
+
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+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
+@Slf4j
+@RequiredArgsConstructor
+public class TaskConfigurer implements SchedulingConfigurer {
+
+ @Value("${casic.device.online.cron}")
+ private String onlineStateCron;
+
+ private final DeviceDataService deviceDataService;
+
+ @Override
+ public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
+ TriggerTask onlineStateTask = new TriggerTask(nextDayDevice(),
+ triggerContext -> {
+ return new CronTrigger(onlineStateCron).nextExecutionTime(triggerContext);
+ });
+ taskRegistrar.addTriggerTask(onlineStateTask);
+ }
+
+ private Runnable nextDayDevice() {
+ return new Runnable() {
+ @Override
+ public void run() {
+ log.info("定时查询在线离线运行了...");
+ deviceDataService.checkAndUpdateDeviceOnline();
+ }
+ };
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/service/AlarmRecordFly.java b/src/main/java/com/casic/service/AlarmRecordFly.java
new file mode 100644
index 0000000..47c7969
--- /dev/null
+++ b/src/main/java/com/casic/service/AlarmRecordFly.java
@@ -0,0 +1,39 @@
+package com.casic.service;
+
+import com.casic.entity.AlarmRecord;
+
+public class AlarmRecordFly {
+
+ private static AlarmRecord alarmRecord;
+
+ static {
+ alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("0");
+ alarmRecord.setActive(1);
+ }
+
+ public static AlarmRecord getAlarmRecord() {
+ return alarmRecord;
+ }
+
+ public static AlarmRecord getPrototype(){
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("-1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("1");
+ alarmRecord.setActive(1);
+ return alarmRecord;
+ }
+
+
+
+
+}
diff --git a/src/main/java/com/casic/service/DeviceDataService.java b/src/main/java/com/casic/service/DeviceDataService.java
new file mode 100644
index 0000000..f972981
--- /dev/null
+++ b/src/main/java/com/casic/service/DeviceDataService.java
@@ -0,0 +1,7 @@
+package com.casic.service;
+
+public interface DeviceDataService {
+
+ void checkAndUpdateDeviceOnline();
+
+}
diff --git a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java
new file mode 100644
index 0000000..f41a44d
--- /dev/null
+++ b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java
@@ -0,0 +1,68 @@
+package com.casic.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.casic.dao.AlarmRecordsMapper;
+import com.casic.dao.DeviceDataMapper;
+import com.casic.entity.AlarmRecord;
+import com.casic.service.AlarmRecordFly;
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @author cz
+ */
+@Service
+@RequiredArgsConstructor
+public class DeviceDataServiceImpl extends ServiceImpl implements DeviceDataService {
+
+ private final DeviceDataMapper deviceDataMapper;
+
+ @Value("${casic.device.data-day}")
+ private Integer dataDay;
+
+ @Value("${casic.device.gas-dector.type}")
+ private Integer devciceType;
+
+
+ @Override
+ public void checkAndUpdateDeviceOnline() {
+ //查询硫化氢设备
+ List> devcodeList = deviceDataMapper.getDevcodeByType(devciceType);
+ //统一查询所有设备的3天内数据的设备编号,然后设备编号转成map,进行
+ List dataList = deviceDataMapper.getRecentData(dataDay);
+ List> dataSortDevcodeList = devcodeList;
+ if (dataList != null) {
+ Map devOnlineMap = new HashMap<>();
+ for (String devcodeData : dataList) {
+ devOnlineMap.put(devcodeData, "");
+ }
+ dataSortDevcodeList = dataSortDevcodeList.stream().filter(
+ e -> !devOnlineMap.containsKey((String) e.get("devcode"))).collect(Collectors.toList());
+ }
+ //批量产生离线报警
+ if (CollectionUtils.isNotEmpty(dataSortDevcodeList)) {
+ List alarmRecords = new ArrayList<>();
+ for (Map dataDevcodeMap : dataSortDevcodeList) {
+ alarmRecords.add(createAlarmRecord(((BigDecimal)dataDevcodeMap.get("id")).longValue(), (String) dataDevcodeMap.get("devcode")));
+ }
+ this.saveBatch(alarmRecords);
+ }
+ }
+
+ private AlarmRecord createAlarmRecord(Long id, String devcode) {
+ AlarmRecord alarmRecord = AlarmRecordFly.getPrototype();
+ alarmRecord.setRecorddate(new Date());
+ alarmRecord.setDbid(null);
+ alarmRecord.setDeviceCode(devcode);
+ alarmRecord.setDeviceId(id);
+ return alarmRecord;
+ }
+
+}
diff --git a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
index 4591d50..176b389 100644
--- a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
@@ -1,53 +1,41 @@
package com.casic.service.impl;
-import com.alibaba.druid.util.StringUtils;
-import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.casic.dao.AlarmRecordsMapper;
-import com.casic.dao.DataGasMapper;
-import com.casic.dao.DeviceMapper;
-import com.casic.dao.impl.AlarmJobDao;
-import com.casic.entity.AlarmJob;
-import com.casic.entity.AlarmRecords;
-import com.casic.entity.DataGasDector;
+import com.casic.dao.ButaneDataMapper;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.ButaneData;
import com.casic.entity.Device;
import com.casic.model.ResponseData;
+import com.casic.service.AlarmRecordFly;
import com.casic.service.DeviceService;
+import com.casic.util.SendUtil;
+import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import xyz.downgoon.snowflake.Snowflake;
-import javax.annotation.Resource;
import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import java.util.function.Supplier;
@Slf4j
@Service
+@RequiredArgsConstructor
public class DeviceServiceImpl implements DeviceService {
-
- @Value("${casic.device.gas-dector.enable-local}")
- private Boolean enableLocal;
- @Value("${casic.device.gas-dector.type}")
- private Long deviceType;
- @Resource
- private DataGasMapper dataGasMapper;
- @Resource
- private AlarmRecordsMapper alarmRecordsMapper;
- @Resource
- private DeviceMapper deviceMapper;
- @Autowired
- private AlarmJobDao alarmJobDao;
+ private final ButaneDataMapper butaneDataMapper;
+ private final AlarmRecordsMapper alarmRecordsMapper;
private static Snowflake snowflake = new Snowflake(0, 2);
+ @Autowired
+ private SendUtil sendUtil;
@Override
public ResponseData testMysql() {
+
ResponseData responseData = new ResponseData();
responseData.setMessage("保存成功");
responseData.setCode(1);
@@ -62,18 +50,16 @@
public ResponseData saveDataGas(Map receiveData) {
ResponseData responseData = new ResponseData();
try {
- Map payloadData;
+ Map payloadData = receiveData;
if (receiveData.containsKey("payload")) {
payloadData = (Map) receiveData.get("payload");
- }else{
- payloadData=receiveData;
}
- this.flagSelectProcessor("eventType", payloadData, () -> gasStatusUpdate(payloadData))
- .flagSelectProcessor("gas_sample_value", payloadData, () -> dealNormalData(receiveData));
+ this.flagSelectProcessor("gas_sensor_state", payloadData, () -> gasStatusUpdate(receiveData))
+ .flagSelectProcessor("heartbeat_time", payloadData, () -> dealNormalData(receiveData));
responseData.setCode(200);
responseData.setMessage("保存成功");
} catch (Exception dex) {
- log.error("主题:广东台燃气设备存储异常,异常信息:{}", dex.getMessage());
+ log.error("主题:燃气设备存储异常,异常信息:{}", dex.getMessage());
responseData.setCode(500);
responseData.setMessage("保存异常");
}
@@ -95,99 +81,110 @@
* @return
*/
private Boolean gasStatusUpdate(Map receiveData) {
- Long lonTimetemp = Long.valueOf(receiveData.get("timestamp").toString());
- String onlindeStatus = receiveData.get("eventType").toString();
- String devcode = receiveData.get("imei").toString();
- QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("devcode", devcode);
- queryWrapper.eq("valid", 1);
- Device device = new Device();
- if (!StringUtils.isEmpty(onlindeStatus)) {
- device.setOnlineState(onlindeStatus);
- Date logTime = new Date();
- logTime.setTime(lonTimetemp);
- device.setLogtime(logTime);
- deviceMapper.update(device, queryWrapper);
- return true;
+ AlarmRecord alarmRecord = AlarmRecordFly.getAlarmRecord();
+ Map payloadData = (Map) receiveData.get("payload");
+ //判断事件类型 0正常 1低报 2高报
+ String alarmSituation = payloadData.get("gas_sensor_state").toString();
+ String devcode = receiveData.get("IMEI").toString();
+ clearOnlineData(devcode);
+ //构建数据
+ ButaneData butaneData = ButaneData.builder()
+ .devcode(devcode)
+ .dbid(snowflake.nextId())
+ .build();
+ populateTime(receiveData, butaneData, alarmRecord);
+ switch (alarmSituation) {
+ case "0":
+// butaneData.setDescn("状态正常");
+// butaneData.setStatus("0");
+ break;
+ default:
+ //第一条上来,消除报警
+ clearAlarmData(devcode);
+ //产生新的报警,消除报警
+ butaneData.setDescn("可燃气体探测器报警");
+ butaneData.setStatus("1");
+ synchronized (alarmRecord) {
+ alarmRecord.setDbid(null);
+ alarmRecord.setDeviceCode(devcode);
+ alarmRecord.setDeviceId(alarmRecordsMapper.getDevcode(devcode));
+ alarmRecordsMapper.insert(alarmRecord);
+ }
+ butaneDataMapper.insert(butaneData);
+
+ try {
+ //推送短信至第三方
+ Device device = alarmRecordsMapper.getDevice(devcode);
+ if (null == device) {
+ log.error("设备不存在,编号:" + devcode);
+ return false;
+ }
+ JSONObject eventObj = new JSONObject();
+ eventObj.put("type", "燃气报警");
+ sendUtil.sendEventBySms(device, eventObj);
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ }
}
- return false;
+ return true;
}
public Boolean dealNormalData(Map receiveData) {
String devcode = receiveData.get("IMEI").toString();
- if (!StringUtils.isEmpty(devcode)) {
- Map deviceMap = deviceMapper.getWellCode(devcode);
- //保存数据,无论是否有设备在库内
- DataGasDector dataGasDector = this.saveNormalData(receiveData, deviceMap);
- if (ObjectUtils.isEmpty(deviceMap)) {
- log.info("没有该设备编号录入" + devcode);
- if (enableLocal) {
- return true;
- }
- }
- //自动消除报警
- this.alarmRecordsMapper.clearAlarm(devcode);
- this.dataTaskJudge(deviceMap, dataGasDector);
- return true;
+ //第一条上来,清除离线
+ clearOnlineData(devcode);
+ ButaneData butaneData = ButaneData.builder()
+ .devcode(devcode)
+ .dbid(snowflake.nextId())
+ .descn("状态正常")
+ .status("0")
+ .build();
+ if (!ObjectUtils.isEmpty(receiveData) && receiveData.containsKey("timestamp")) {
+ butaneData.setLogtime(new Date(Long.valueOf(receiveData.get("timestamp").toString())));
+ } else {
+ butaneData.setLogtime(new Date());
}
+ butaneDataMapper.insert(butaneData);
return false;
}
- private DataGasDector saveNormalData(Map receiveData, Map deviceMap) {
- DataGasDector dataGasDector = new DataGasDector();
- dataGasDector.setId(snowflake.nextId());
- dataGasDector.setDevcode(receiveData.get("IMEI").toString());
- dataGasDector.setWellCode(!ObjectUtils.isEmpty(deviceMap) && deviceMap.containsKey("wellCode") ? deviceMap.get("wellCode").toString() : "");
- dataGasDector.setLogtime(new Date());
+ private void populateTime(Map receiveData, ButaneData butaneData, AlarmRecord alarmRecord) {
if (!ObjectUtils.isEmpty(receiveData) && receiveData.containsKey("timestamp")) {
- dataGasDector.setUptime(new Date(Long.valueOf(receiveData.get("timestamp").toString())));
+ Date logtime = new Date(Long.valueOf(receiveData.get("timestamp").toString()));
+ butaneData.setLogtime(logtime);
+ alarmRecord.setRecorddate(logtime);
} else {
- dataGasDector.setUptime(new Date());
+ alarmRecord.setRecorddate(new Date());
+ butaneData.setLogtime(new Date());
}
- Map gascontent = (Map)receiveData.get("payload");
- if (!ObjectUtils.isEmpty(gascontent)) {
- if (gascontent.containsKey("gas_sample_value")) {
- dataGasDector.setStrength(gascontent.get("gas_sample_value").toString());
- }
- }
- dataGasMapper.insert(dataGasDector);
- return dataGasDector;
}
- /**
- * 报警存库
- */
- private void dataTaskJudge(Map deviceMap, DataGasDector dataGasDector) {
- List> alarmLevelList = dataGasMapper.getAlarmLevelList(deviceType);
- String wellCode = dataGasDector.getWellCode();
- Long deviceId = !ObjectUtils.isEmpty(deviceMap) && deviceMap.containsKey("wellCode") ? Long.valueOf(String.valueOf(deviceMap.get("deviceId"))) : -1;
- final String gasMsgContent = dataGasMapper.getGasMsgContent(deviceType);
- for (Map alarmLevelMap : alarmLevelList) {
- if (Float.valueOf(dataGasDector.getStrength()) > Float.valueOf(String.valueOf(alarmLevelMap.get("high_value")))) {
- AlarmRecords alarmRecord = new AlarmRecords();
- alarmRecord.setId(snowflake.nextId());
- alarmRecord.setDeviceId(deviceId);
- alarmRecord.setDevcode(dataGasDector.getDevcode());
- alarmRecord.setWellCode(wellCode);
- alarmRecord.setAlarmType("1"); // 业务报警
- alarmRecord.setAlarmContent(gasMsgContent);
- alarmRecord.setAlarmValue(dataGasDector.getStrength());
- alarmRecord.setAlarmTime(new Date());
- alarmRecord.setStatus("1");
- alarmRecord.setAlarmLevel(Integer.valueOf(alarmLevelMap.get("level").toString()));
- alarmRecord.setAlarmMessage(gasMsgContent);
- String jobId = alarmRecordsMapper.isOldAlarmRecord(dataGasDector.getDevcode(), gasMsgContent);
- // 超出报警阈值 生成一条报警消息
- if (!StringUtils.isEmpty(jobId)) {
- alarmRecordsMapper.updateOldAlarmRecord(dataGasDector.getDevcode(), gasMsgContent);
- alarmRecord.setJobId(Long.valueOf(jobId));
- } else {
- AlarmJob alarmJob = alarmJobDao.saveData(dataGasDector.getStrength(), wellCode, "RQZD", "1");
- alarmRecord.setJobId(alarmJob.getId());
- }
- alarmRecordsMapper.insert(alarmRecord);
- break;
- }
+ private void clearAlarmData(String devcode) {
+ QueryWrapper queryWrapper = new QueryWrapper();
+ queryWrapper.eq("DEVICE_CODE", devcode);
+ queryWrapper.eq("ACTIVE", 1);
+ try {
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setActive(0);
+ alarmRecordsMapper.update(alarmRecord, queryWrapper);
+ } catch (Exception e) {
+ log.error("清除报警失败,设备编号为{},异常信息{}", devcode, e);
}
}
+
+ private void clearOnlineData(String devcode) {
+ QueryWrapper queryWrapper = new QueryWrapper();
+ queryWrapper.eq("DEVICE_CODE", devcode);
+ queryWrapper.eq("ACTIVE", 1);
+ queryWrapper.eq("MESSAGE_STATUS", "0");
+ queryWrapper.eq("RECORDCODE", "1");
+ try {
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setActive(0);
+ alarmRecordsMapper.update(alarmRecord, queryWrapper);
+ } catch (Exception e) {
+ log.error("清除报警失败,设备编号为{},异常信息{}", devcode, e);
+ }
+ }
+
}
diff --git a/src/main/java/com/casic/util/ConestUtil.java b/src/main/java/com/casic/util/ConestUtil.java
deleted file mode 100644
index 2a4d305..0000000
--- a/src/main/java/com/casic/util/ConestUtil.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package com.casic.util;
-
-public class ConestUtil {
-
-
-}
diff --git a/src/main/java/com/casic/util/DateUtils.java b/src/main/java/com/casic/util/DateUtils.java
new file mode 100644
index 0000000..db2ed9c
--- /dev/null
+++ b/src/main/java/com/casic/util/DateUtils.java
@@ -0,0 +1,63 @@
+package com.casic.util;
+
+import java.text.SimpleDateFormat;
+
+/**
+ * Created by Administrator on 2015/2/25.
+ */
+public class DateUtils {
+ public static SimpleDateFormat sdf_day = new SimpleDateFormat("yyyy-MM-dd");
+ public static SimpleDateFormat sdf_day_time = new SimpleDateFormat("yyyyMMddHHmmss");
+ public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ public static final SimpleDateFormat sdf5 = new SimpleDateFormat("HH:mm:ss");
+ public static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+
+
+ public static String DateFormat(String dataString) {
+
+ String strymd = dataString.substring(0, 8);
+ String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " ";
+ String strhms = dataString.substring(8);
+ String str2 = strhms.substring(0, 2) + ":" + strhms.substring(2, 4) + ":" + strhms.substring(4, 6);
+ dataString = str1 + str2;
+ return dataString;
+ }
+
+ public static String DateFormatDate(String dataString) {
+
+ String strymd = dataString.substring(0, 8);
+ return strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8);
+ }
+
+ public static String DateFormatTime(String dataString) {
+
+ String strhms = dataString.substring(8);
+ return strhms.substring(0, 2) + ":" + strhms.substring(2, 4) + ":" + strhms.substring(4, 6);
+ }
+
+ /**
+ * 比较两个时间 时分秒 大小
+ *
+ * @param s1
+ * @param s2
+ * @return
+ */
+ public static boolean compTime(String s1, String s2) {
+ try {
+ if (s1.indexOf(":") < 0 || s1.indexOf(":") < 0) {
+ System.out.println("格式不正确");
+ } else {
+ String[] array1 = s1.split(":");
+ int total1 = Integer.valueOf(array1[0]) * 3600 + Integer.valueOf(array1[1]) * 60;
+ String[] array2 = s2.split(":");
+ int total2 = Integer.valueOf(array2[0]) * 3600 + Integer.valueOf(array2[1]) * 60;
+ return total1 - total2 > 0 ? true : false;
+ }
+ } catch (NumberFormatException e) {
+ // TODO Auto-generated catch block
+ return false;
+ }
+ return false;
+
+ }
+}
diff --git a/src/main/java/com/casic/util/HttpClientUtils.java b/src/main/java/com/casic/util/HttpClientUtils.java
new file mode 100644
index 0000000..91a631e
--- /dev/null
+++ b/src/main/java/com/casic/util/HttpClientUtils.java
@@ -0,0 +1,40 @@
+package com.casic.util;
+
+
+import com.alibaba.fastjson.JSONObject;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpStatus;
+import org.apache.commons.httpclient.methods.PostMethod;
+
+import java.io.IOException;
+
+public class HttpClientUtils {
+
+
+
+ public static String post(String url, String body, JSONObject header) {
+ HttpClient client = new HttpClient();
+ client.setTimeout(30000);
+ PostMethod method = new PostMethod(url);
+ // for (Map.Entry entry : headers.entrySet()) {
+ method.addRequestHeader("Content-type", "application/json; charset=utf-8");
+ method.addRequestHeader("Accept", "application/json");
+ method.addRequestHeader("X-APP-KEY", header.getString("X-APP-KEY"));
+ method.setRequestBody(body);
+ try {
+ int statusCode = client.executeMethod(method);
+ if (statusCode == HttpStatus.SC_OK) {
+ return new String(method.getResponseBody(), "UTF-8");
+ }
+
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+}
diff --git a/src/main/java/com/casic/util/SendUtil.java b/src/main/java/com/casic/util/SendUtil.java
new file mode 100644
index 0000000..2d73db1
--- /dev/null
+++ b/src/main/java/com/casic/util/SendUtil.java
@@ -0,0 +1,67 @@
+package com.casic.util;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.casic.entity.Device;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+@Slf4j
+@Component
+public class SendUtil {
+ @Value("${casic.synchronizeSms.enabled}")
+ private String enabled;
+ @Value("${casic.smsSenderURL}")
+ private String smsSenderUrl;
+ @Value("${casic.X-APP-KEY-SMS}")
+ private String smsAppKey;
+
+ public void sendEventBySms(Device device, JSONObject eventObj) {
+ if ("true".equals(enabled)) {
+// String smsSenderUrl = Configure.getProperty("smsSenderURL", "http://general.bushub.rj.prd/sms/user/send");
+// String smsAppKey = Configure.getProperty("X-APP-KEY-SMS", "2d3a8e35-0533-42a0-97a2-63f82a3216f9");
+ String sim = device.getSimid();
+ if (null == sim || StringUtils.isBlank(sim)) {
+ return;
+ }
+
+ if (null == smsAppKey || StringUtils.isBlank(smsAppKey)) {
+ return;
+ }
+
+ JSONObject header = new JSONObject();
+ header.put("X-APP-KEY", smsAppKey);
+
+ StringBuilder params = new StringBuilder();
+ params.append("{");
+ params.append("\"mobile\":");
+ params.append("\"").append(sim).append("\"").append(",");
+
+ String prefix = "【智慧蓉江】";
+ String eventTm = DateUtils.sdf4.format(new Date());
+ String devName = device.getDevName();
+ String place = device.getFactory();
+
+ StringBuilder content = new StringBuilder("");
+ content.append(prefix);
+ content.append(eventTm).append(",");
+ content.append("管网监测设备[").append(devName).append("],");
+ content.append("发生").append(eventObj.getString("type")).append(",");
+ if (eventObj.containsKey("value") == true) {
+ content.append(eventObj.getString("value")).append(",");
+ }
+ content.append("详细地址是:").append(place).append(",");
+ content.append("请关注并及时处理。");
+
+ params.append("\"content\":");
+ params.append("\"").append(content.toString()).append("\"");
+ params.append("}");
+
+ String resp = HttpClientUtils.post(smsSenderUrl, params.toString(), header);
+ log.info("已发送短信"+resp);
+ }
+ }
+}
diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/src/main/java/com/casic/dao/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index fde1818..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -1,36 +1,24 @@
package com.casic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmRecords;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.Device;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
@Mapper
-public interface AlarmRecordsMapper extends BaseMapper {
+public interface AlarmRecordsMapper extends BaseMapper {
+ @Select("SELECT DBID " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Long getDevcode(@Param("devcode") String devcode);
- @Select("SELECT JOB_ID AS \"jobId\"\n " +
- "FROM alarm_records\n " +
- "WHERE DEVCODE = #{devcode}\n " +
- "AND ALARM_CONTENT = #{MsgContent}\n " +
- "AND STATUS='1'\n " +
- "AND JOB_ID>0 ")
- String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='0'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND ALARM_CONTENT = #{MsgContent}\n" +
- " AND STATUS='1'")
- Integer updateOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='3'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND STATUS='1'")
- Integer clearAlarm(@Param("devcode") String devcode);
-
+ @Select("SELECT DBID as id, DEVCODE as devCode, DEVNAME as devName, FACTORY as factory, SIMID as simid " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Device getDevice(@Param("devcode") String devcode);
}
diff --git a/src/main/java/com/casic/dao/ButaneDataMapper.java b/src/main/java/com/casic/dao/ButaneDataMapper.java
new file mode 100644
index 0000000..632c7d2
--- /dev/null
+++ b/src/main/java/com/casic/dao/ButaneDataMapper.java
@@ -0,0 +1,12 @@
+package com.casic.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.entity.ButaneData;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface ButaneDataMapper extends BaseMapper {
+
+
+}
diff --git a/src/main/java/com/casic/dao/DataGasMapper.java b/src/main/java/com/casic/dao/DataGasMapper.java
deleted file mode 100644
index 8a064f2..0000000
--- a/src/main/java/com/casic/dao/DataGasMapper.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.DataGasDector;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-
-import java.util.List;
-import java.util.Map;
-
-@Mapper
-public interface DataGasMapper extends BaseMapper {
-
- @Select("SELECT level,high_value " +
- "FROM alarm_level " +
- "WHERE device_type=#{deviceType} ")
- List> getAlarmLevelList(@Param("deviceType") Long deviceType);
-
- @Select("SELECT devcode " +
- "FROM data_gas_dector " +
- "WHERE devcode=#{devcode} " +
- "AND (EXTRACT(epoch FROM CAST(now() AS TIMESTAMPTZ))-EXTRACT(epoch FROM CAST(logtime AS TIMESTAMPTZ)))/60.0 < ${minutes} "+
- "ORDER BY logtime DESC " +
- "LIMIT 1")
- String getLastData(@Param("minutes") String minutes,
- @Param("devcode") String devcode);
-
- @Select("SELECT alarm_content " +
- "FROM base_alarm_content_type " +
- "WHERE device_type=#{deviceType}")
- String getGasMsgContent(@Param("deviceType")Long deviceType);
-
-
-}
diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java
new file mode 100644
index 0000000..e9456c1
--- /dev/null
+++ b/src/main/java/com/casic/dao/DeviceDataMapper.java
@@ -0,0 +1,18 @@
+package com.casic.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface DeviceDataMapper {
+
+ List> getDevcodeByType(@Param("devciceType") Integer devciceType);
+
+ List getRecentData(@Param("dataDay") Integer dataDay);
+
+ int updateOnlineByDevs(@Param("dataSortList") List dataSortDevcodeList);
+
+}
diff --git a/src/main/java/com/casic/dao/DeviceMapper.java b/src/main/java/com/casic/dao/DeviceMapper.java
deleted file mode 100644
index 73b574e..0000000
--- a/src/main/java/com/casic/dao/DeviceMapper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.Device;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Map;
-
-@Mapper
-public interface DeviceMapper extends BaseMapper {
-
- Map getWellCode(@Param("devcode") String devcode);
-
-}
diff --git a/src/main/java/com/casic/dao/impl/AlarmJobDao.java b/src/main/java/com/casic/dao/impl/AlarmJobDao.java
deleted file mode 100644
index 5131821..0000000
--- a/src/main/java/com/casic/dao/impl/AlarmJobDao.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.casic.dao.impl;
-
-import com.alibaba.druid.util.StringUtils;
-import com.casic.dao.AlarmJobMapper;
-import com.casic.entity.AlarmJob;
-import org.springframework.stereotype.Component;
-import xyz.downgoon.snowflake.Snowflake;
-
-import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-@Component
-public class AlarmJobDao {
-
- private static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMdd");
-
- private static Snowflake snowflake = new Snowflake(0, 2);
-// private static final Sn
-
- @Resource
- private AlarmJobMapper alarmJobMapper;
-
- public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) {
- AlarmJob alarmJob = new AlarmJob();
- alarmJob.setId(snowflake.nextId());
- alarmJob.setDevcode(devCode);
- alarmJob.setWellCode(wellCode);
- alarmJob.setJobStatus("0");
- alarmJob.setCreateTime(new Date());
- alarmJob.setJobcode(this.produceJobCode(devTypeName));
- alarmJob.setJobType(jobType);
- alarmJobMapper.insert(alarmJob);
- return alarmJob;
- }
-
- /**
- * 前缀+日期+4位流水号
- *
- * @param devTypeName
- * @return
- */
- private String produceJobCode(String devTypeName) {
- String pre = devTypeName;
- String dataStr = sdf6.format(new Date());
- String fix = this.getJobCodeMaxSerial(pre + dataStr);
- return StringUtils.isEmpty(fix) ? pre + dataStr + String.format("%04d", Long.valueOf(StringUtils.isEmpty(fix)?"0":fix) + 1L) : pre + dataStr + "0001";
- }
-
-
- private String getJobCodeMaxSerial(String jobcode) {
- String MaxSerialJobCode = alarmJobMapper.getJobCodeMaxSerial(jobcode);
- String fix = "";
- if (null != MaxSerialJobCode && MaxSerialJobCode.length() > 4) {
- fix = MaxSerialJobCode.substring(MaxSerialJobCode.length() - 4);
- }
- return fix;
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmJob.java b/src/main/java/com/casic/entity/AlarmJob.java
deleted file mode 100644
index 8a0f764..0000000
--- a/src/main/java/com/casic/entity/AlarmJob.java
+++ /dev/null
@@ -1,165 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- *
- * 报警工单表
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_job")
-public class AlarmJob extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- private Long id;
- /**
- * 工单编号
- */
- @TableField("JOBCODE")
- private String jobcode;
- /**
- * 工单类型
- */
- @TableField("JOG_TYPE")
- private String jobType;
- /**
- * 井编号
- */
- @TableField("WELL_CODE")
- private String wellCode;
- /**
- * 设备编号
- */
- @TableField("DEVCODE")
- private String devcode;
- /**
- * 工单创建时间
- */
- @TableField("CREATE_TIME")
- private Date createTime;
- /**
- * 工单状态(0待处理,1待确认,2处理中,3完成)
- */
- @TableField("JOB_STATUS")
- private String jobStatus;
- /**
- * 接单人员
- */
- @TableField("GET_JOB_PERSON")
- private Long getJobPerson;
- /**
- * 接单时间
- */
- @TableField("GET_JOB_TIME")
- private Date getJobTime;
- /**
- * 应接单时间
- */
- @TableField("SHOULD_GET_TIME")
- private Date shouldGetTime;
- /**
- * 第一现场情况
- */
- @TableField("FIRST_STATE")
- private String firstState;
- /**
- * 第一现场照片
- */
- @TableField("FIRST_STATE_PHOTOS")
- private String firstStatePhotos;
- /**
- * 确认人员
- */
- @TableField("CONFIRM_JOB_PERSON")
- private Long confirmJobPerson;
- /**
- * 确认时间
- */
- @TableField("CONFRIM_JOB_TIME")
- private Date confrimJobTime;
- /**
- * 处理人员
- */
- @TableField("HANDLE_JOB_Person")
- private Long handleJobPerson;
- /**
- * 处理时间
- */
- @TableField("HANDLE_JOB_TIME")
- private Date handleJobTime;
- /**
- * 维护情况记录
- */
- @TableField("HANDLE_MESSAGE")
- private String handleMessage;
- /**
- * 维护图片
- */
- @TableField("HANDLE_PHOTOS")
- private String handlePhotos;
- /**
- * 工单流转记录
- */
- @TableField("FLOW")
- private String flow;
-
- @TableField("JOB_BELONG_TO")
- private Long jobBelongTo;
-
- @TableField("JOB_FLAG_DELAY")
- private String jobFlagDelay;
-
- @TableField("JOB_FLAG_1")
- private String jobFlag1;
-
- @TableField(exist = false)
- private String alarmValue;
-
- @TableField(exist = false)
- private String alarmContentName;
-
- @TableField(exist = false)
- private Integer recordId;
-
- @Override
- public String toString() {
- return "AlarmJob{" +
- "id=" + id +
- ", jobcode=" + jobcode +
- ", jogType=" + jobType +
- ", wellCode=" + wellCode +
- ", devcode=" + devcode +
- ", createTime=" + createTime +
- ", jobStatus=" + jobStatus +
- ", getJobPerson=" + getJobPerson +
- ", getJobTime=" + getJobTime +
- ", firstState=" + firstState +
- ", firstStatePhotos=" + firstStatePhotos +
- ", confirmJobPerson=" + confirmJobPerson +
- ", confrimJobTime=" + confrimJobTime +
- ", handleJobPerson=" + handleJobPerson +
- ", handleJobTime=" + handleJobTime +
- ", handleMessage=" + handleMessage +
- ", handlePhotos=" + handlePhotos +
- ", flow=" + flow +
- ", recordId=" + recordId +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmRecord.java b/src/main/java/com/casic/entity/AlarmRecord.java
new file mode 100644
index 0000000..137d805
--- /dev/null
+++ b/src/main/java/com/casic/entity/AlarmRecord.java
@@ -0,0 +1,106 @@
+package com.casic.entity;
+
+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 com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *
+ *
+ *
+ *
+ * @author casic123
+ * @since 2019-05-17
+ */
+@Data
+@TableName("ALARM_ALARM_RECORD")
+public class AlarmRecord extends Model {
+
+
+ private static final long serialVersionUID = 1L;
+ /**
+ * 主键
+ */
+ @TableId(value = "DBID")
+ private Long dbid;
+ /**
+ * 设备编号
+ */
+ @TableField("DEVICE_CODE")
+ private String deviceCode;
+ /**
+ * 设备类型名称
+ */
+ @TableField("DEVICE_TYPE_NAME")
+ private String deviceTypeName;
+ /**
+ * 是否推送,默认0
+ */
+ @TableField("ISSEND")
+ private String issend;
+ /**
+ * 默认default
+ */
+ @TableField("ITEMNAME")
+ private String itemname;
+ /**
+ * 没有数值
+ */
+ @TableField("ITEMVALUE")
+ private String itemvalue;
+ /**
+ * 1
+ */
+ @TableField("MESSAGE")
+ private String message;
+ /**
+ * 0
+ */
+ @TableField("MESSAGE_STATUS")
+ private String messageStatus;
+
+
+ /**
+ * 0
+ */
+ @TableField("RECORDCODE")
+ private String recordcode;
+ /**
+ * 告警日期
+ */
+ @TableField("RECORDDATE")
+ private Date recorddate;
+ /**
+ * 工单编号
+ */
+ @TableField("DEVICE_ID")
+ private Long deviceId;
+
+ /**
+ * 删除标志,默认为1
+ */
+ private Integer active;
+
+ @Override
+ public String toString() {
+ return "AlarmRecord{" +
+ "dbid=" + dbid +
+ ", deviceCode='" + deviceCode + '\'' +
+ ", deviceTypeName='" + deviceTypeName + '\'' +
+ ", issend='" + issend + '\'' +
+ ", itemname='" + itemname + '\'' +
+ ", itemvalue='" + itemvalue + '\'' +
+ ", message='" + message + '\'' +
+ ", messageStatus='" + messageStatus + '\'' +
+ ", recordcode='" + recordcode + '\'' +
+ ", recorddate=" + recorddate +
+ ", deviceId=" + deviceId +
+ ", active=" + active +
+ '}';
+ }
+}
diff --git a/src/main/java/com/casic/entity/AlarmRecords.java b/src/main/java/com/casic/entity/AlarmRecords.java
deleted file mode 100644
index 88b0b26..0000000
--- a/src/main/java/com/casic/entity/AlarmRecords.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- *
- *
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_records")
-public class AlarmRecords extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- 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;
-
- @Override
- public String toString() {
- return "AlarmRecords{" +
- "id=" + id +
- ", deviceId=" + deviceId +
- ", devcode=" + devcode +
- ", wellCode=" + wellCode +
- ", alarmType=" + alarmType +
- ", alarmContent=" + alarmContent +
- ", alarmValue=" + alarmValue +
- ", alarmLevel=" + alarmLevel +
- ", alarmMessage=" + alarmMessage +
- ", alarmTime=" + alarmTime +
- ", status=" + status +
- ", jobId=" + jobId +
- ", jobStatus=" + jobStatus +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/ButaneData.java b/src/main/java/com/casic/entity/ButaneData.java
new file mode 100644
index 0000000..2e051be
--- /dev/null
+++ b/src/main/java/com/casic/entity/ButaneData.java
@@ -0,0 +1,28 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Builder;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@TableName("CASIC_BUTANE_INFO")
+@Builder
+public class ButaneData extends Model {
+
+ @TableId(value = "DBID")
+ private Long dbid;
+
+ private String devcode;
+
+ private String status;
+
+ private String descn;
+
+ private Date logtime;
+
+}
diff --git a/src/main/java/com/casic/entity/Device.java b/src/main/java/com/casic/entity/Device.java
new file mode 100644
index 0000000..0360e41
--- /dev/null
+++ b/src/main/java/com/casic/entity/Device.java
@@ -0,0 +1,27 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@TableName("ALARM_DEVICE")
+public class Device implements Serializable {
+ /**
+ * 设备基本信息表
+ */
+ private static final long serialVersionUID = -2023118078562324658L;
+ @TableId(value = "DBID")
+ private Long id;
+ @TableId(value = "DEVCODE")
+ private String devCode;
+ @TableId(value = "DEVNAME")
+ private String devName;
+ @TableId(value = "FACTORY")
+ private String factory;
+ @TableId(value = "SIMID")
+ private String simid; // SIM卡号
+
+}
diff --git a/src/main/java/com/casic/model/HostData.java b/src/main/java/com/casic/model/HostData.java
new file mode 100644
index 0000000..40cefa7
--- /dev/null
+++ b/src/main/java/com/casic/model/HostData.java
@@ -0,0 +1,16 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class HostData {
+ private String model;
+ private String dev_id;
+ private String chip_id;
+ private String mfd_day;
+ private String sw_ver;
+ private String hw_ver;
+ private String duration;
+ private String d_ch_cnt;
+ private String a_ch_cnt;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReceiveDataParam.java b/src/main/java/com/casic/model/ReceiveDataParam.java
new file mode 100644
index 0000000..3a17d24
--- /dev/null
+++ b/src/main/java/com/casic/model/ReceiveDataParam.java
@@ -0,0 +1,20 @@
+package com.casic.model;
+
+import lombok.Data;
+
+import java.util.HashMap;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReceiveDataParam {
+ private String deviceType;
+ private String iotId;
+ private String requestId;
+ private Object checkFailedData;
+ private String productKey;
+ private String deviceName;
+ private HashMap items;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReportUpdataParam.java b/src/main/java/com/casic/model/ReportUpdataParam.java
new file mode 100644
index 0000000..20c2ca9
--- /dev/null
+++ b/src/main/java/com/casic/model/ReportUpdataParam.java
@@ -0,0 +1,23 @@
+package com.casic.model;
+
+import lombok.Data;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReportUpdataParam {
+ private String msg_type;
+ private String event_change;
+ private String error_val;
+ private String ch_cnt;
+ private String erro_cnt;
+ private String alarm_low_cnt;
+ private String alarm_high_cnt;
+ private String offline_cnt;
+ private String rtd_val;
+ private String adc_val;
+ private String status_val;
+ private String time;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/WirelessData.java b/src/main/java/com/casic/model/WirelessData.java
new file mode 100644
index 0000000..b062c13
--- /dev/null
+++ b/src/main/java/com/casic/model/WirelessData.java
@@ -0,0 +1,19 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class WirelessData {
+ private String model;
+ private String IMEI;
+ private String ICCID;
+ private String sw_ver;
+ private String hw_ver;
+ private String ch_cnt;
+ private String heartbeat_inv;
+ private String up_pcnt;
+ private String up_pcnt_inv;
+ private String csq;
+}
+
+
diff --git a/src/main/java/com/casic/schedule/TaskConfigurer.java b/src/main/java/com/casic/schedule/TaskConfigurer.java
new file mode 100644
index 0000000..77c5d5a
--- /dev/null
+++ b/src/main/java/com/casic/schedule/TaskConfigurer.java
@@ -0,0 +1,47 @@
+package com.casic.schedule;
+
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+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
+@Slf4j
+@RequiredArgsConstructor
+public class TaskConfigurer implements SchedulingConfigurer {
+
+ @Value("${casic.device.online.cron}")
+ private String onlineStateCron;
+
+ private final DeviceDataService deviceDataService;
+
+ @Override
+ public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
+ TriggerTask onlineStateTask = new TriggerTask(nextDayDevice(),
+ triggerContext -> {
+ return new CronTrigger(onlineStateCron).nextExecutionTime(triggerContext);
+ });
+ taskRegistrar.addTriggerTask(onlineStateTask);
+ }
+
+ private Runnable nextDayDevice() {
+ return new Runnable() {
+ @Override
+ public void run() {
+ log.info("定时查询在线离线运行了...");
+ deviceDataService.checkAndUpdateDeviceOnline();
+ }
+ };
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/service/AlarmRecordFly.java b/src/main/java/com/casic/service/AlarmRecordFly.java
new file mode 100644
index 0000000..47c7969
--- /dev/null
+++ b/src/main/java/com/casic/service/AlarmRecordFly.java
@@ -0,0 +1,39 @@
+package com.casic.service;
+
+import com.casic.entity.AlarmRecord;
+
+public class AlarmRecordFly {
+
+ private static AlarmRecord alarmRecord;
+
+ static {
+ alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("0");
+ alarmRecord.setActive(1);
+ }
+
+ public static AlarmRecord getAlarmRecord() {
+ return alarmRecord;
+ }
+
+ public static AlarmRecord getPrototype(){
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("-1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("1");
+ alarmRecord.setActive(1);
+ return alarmRecord;
+ }
+
+
+
+
+}
diff --git a/src/main/java/com/casic/service/DeviceDataService.java b/src/main/java/com/casic/service/DeviceDataService.java
new file mode 100644
index 0000000..f972981
--- /dev/null
+++ b/src/main/java/com/casic/service/DeviceDataService.java
@@ -0,0 +1,7 @@
+package com.casic.service;
+
+public interface DeviceDataService {
+
+ void checkAndUpdateDeviceOnline();
+
+}
diff --git a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java
new file mode 100644
index 0000000..f41a44d
--- /dev/null
+++ b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java
@@ -0,0 +1,68 @@
+package com.casic.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.casic.dao.AlarmRecordsMapper;
+import com.casic.dao.DeviceDataMapper;
+import com.casic.entity.AlarmRecord;
+import com.casic.service.AlarmRecordFly;
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @author cz
+ */
+@Service
+@RequiredArgsConstructor
+public class DeviceDataServiceImpl extends ServiceImpl implements DeviceDataService {
+
+ private final DeviceDataMapper deviceDataMapper;
+
+ @Value("${casic.device.data-day}")
+ private Integer dataDay;
+
+ @Value("${casic.device.gas-dector.type}")
+ private Integer devciceType;
+
+
+ @Override
+ public void checkAndUpdateDeviceOnline() {
+ //查询硫化氢设备
+ List> devcodeList = deviceDataMapper.getDevcodeByType(devciceType);
+ //统一查询所有设备的3天内数据的设备编号,然后设备编号转成map,进行
+ List dataList = deviceDataMapper.getRecentData(dataDay);
+ List> dataSortDevcodeList = devcodeList;
+ if (dataList != null) {
+ Map devOnlineMap = new HashMap<>();
+ for (String devcodeData : dataList) {
+ devOnlineMap.put(devcodeData, "");
+ }
+ dataSortDevcodeList = dataSortDevcodeList.stream().filter(
+ e -> !devOnlineMap.containsKey((String) e.get("devcode"))).collect(Collectors.toList());
+ }
+ //批量产生离线报警
+ if (CollectionUtils.isNotEmpty(dataSortDevcodeList)) {
+ List alarmRecords = new ArrayList<>();
+ for (Map dataDevcodeMap : dataSortDevcodeList) {
+ alarmRecords.add(createAlarmRecord(((BigDecimal)dataDevcodeMap.get("id")).longValue(), (String) dataDevcodeMap.get("devcode")));
+ }
+ this.saveBatch(alarmRecords);
+ }
+ }
+
+ private AlarmRecord createAlarmRecord(Long id, String devcode) {
+ AlarmRecord alarmRecord = AlarmRecordFly.getPrototype();
+ alarmRecord.setRecorddate(new Date());
+ alarmRecord.setDbid(null);
+ alarmRecord.setDeviceCode(devcode);
+ alarmRecord.setDeviceId(id);
+ return alarmRecord;
+ }
+
+}
diff --git a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
index 4591d50..176b389 100644
--- a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
@@ -1,53 +1,41 @@
package com.casic.service.impl;
-import com.alibaba.druid.util.StringUtils;
-import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.casic.dao.AlarmRecordsMapper;
-import com.casic.dao.DataGasMapper;
-import com.casic.dao.DeviceMapper;
-import com.casic.dao.impl.AlarmJobDao;
-import com.casic.entity.AlarmJob;
-import com.casic.entity.AlarmRecords;
-import com.casic.entity.DataGasDector;
+import com.casic.dao.ButaneDataMapper;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.ButaneData;
import com.casic.entity.Device;
import com.casic.model.ResponseData;
+import com.casic.service.AlarmRecordFly;
import com.casic.service.DeviceService;
+import com.casic.util.SendUtil;
+import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import xyz.downgoon.snowflake.Snowflake;
-import javax.annotation.Resource;
import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import java.util.function.Supplier;
@Slf4j
@Service
+@RequiredArgsConstructor
public class DeviceServiceImpl implements DeviceService {
-
- @Value("${casic.device.gas-dector.enable-local}")
- private Boolean enableLocal;
- @Value("${casic.device.gas-dector.type}")
- private Long deviceType;
- @Resource
- private DataGasMapper dataGasMapper;
- @Resource
- private AlarmRecordsMapper alarmRecordsMapper;
- @Resource
- private DeviceMapper deviceMapper;
- @Autowired
- private AlarmJobDao alarmJobDao;
+ private final ButaneDataMapper butaneDataMapper;
+ private final AlarmRecordsMapper alarmRecordsMapper;
private static Snowflake snowflake = new Snowflake(0, 2);
+ @Autowired
+ private SendUtil sendUtil;
@Override
public ResponseData testMysql() {
+
ResponseData responseData = new ResponseData();
responseData.setMessage("保存成功");
responseData.setCode(1);
@@ -62,18 +50,16 @@
public ResponseData saveDataGas(Map receiveData) {
ResponseData responseData = new ResponseData();
try {
- Map payloadData;
+ Map payloadData = receiveData;
if (receiveData.containsKey("payload")) {
payloadData = (Map) receiveData.get("payload");
- }else{
- payloadData=receiveData;
}
- this.flagSelectProcessor("eventType", payloadData, () -> gasStatusUpdate(payloadData))
- .flagSelectProcessor("gas_sample_value", payloadData, () -> dealNormalData(receiveData));
+ this.flagSelectProcessor("gas_sensor_state", payloadData, () -> gasStatusUpdate(receiveData))
+ .flagSelectProcessor("heartbeat_time", payloadData, () -> dealNormalData(receiveData));
responseData.setCode(200);
responseData.setMessage("保存成功");
} catch (Exception dex) {
- log.error("主题:广东台燃气设备存储异常,异常信息:{}", dex.getMessage());
+ log.error("主题:燃气设备存储异常,异常信息:{}", dex.getMessage());
responseData.setCode(500);
responseData.setMessage("保存异常");
}
@@ -95,99 +81,110 @@
* @return
*/
private Boolean gasStatusUpdate(Map receiveData) {
- Long lonTimetemp = Long.valueOf(receiveData.get("timestamp").toString());
- String onlindeStatus = receiveData.get("eventType").toString();
- String devcode = receiveData.get("imei").toString();
- QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("devcode", devcode);
- queryWrapper.eq("valid", 1);
- Device device = new Device();
- if (!StringUtils.isEmpty(onlindeStatus)) {
- device.setOnlineState(onlindeStatus);
- Date logTime = new Date();
- logTime.setTime(lonTimetemp);
- device.setLogtime(logTime);
- deviceMapper.update(device, queryWrapper);
- return true;
+ AlarmRecord alarmRecord = AlarmRecordFly.getAlarmRecord();
+ Map payloadData = (Map) receiveData.get("payload");
+ //判断事件类型 0正常 1低报 2高报
+ String alarmSituation = payloadData.get("gas_sensor_state").toString();
+ String devcode = receiveData.get("IMEI").toString();
+ clearOnlineData(devcode);
+ //构建数据
+ ButaneData butaneData = ButaneData.builder()
+ .devcode(devcode)
+ .dbid(snowflake.nextId())
+ .build();
+ populateTime(receiveData, butaneData, alarmRecord);
+ switch (alarmSituation) {
+ case "0":
+// butaneData.setDescn("状态正常");
+// butaneData.setStatus("0");
+ break;
+ default:
+ //第一条上来,消除报警
+ clearAlarmData(devcode);
+ //产生新的报警,消除报警
+ butaneData.setDescn("可燃气体探测器报警");
+ butaneData.setStatus("1");
+ synchronized (alarmRecord) {
+ alarmRecord.setDbid(null);
+ alarmRecord.setDeviceCode(devcode);
+ alarmRecord.setDeviceId(alarmRecordsMapper.getDevcode(devcode));
+ alarmRecordsMapper.insert(alarmRecord);
+ }
+ butaneDataMapper.insert(butaneData);
+
+ try {
+ //推送短信至第三方
+ Device device = alarmRecordsMapper.getDevice(devcode);
+ if (null == device) {
+ log.error("设备不存在,编号:" + devcode);
+ return false;
+ }
+ JSONObject eventObj = new JSONObject();
+ eventObj.put("type", "燃气报警");
+ sendUtil.sendEventBySms(device, eventObj);
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ }
}
- return false;
+ return true;
}
public Boolean dealNormalData(Map receiveData) {
String devcode = receiveData.get("IMEI").toString();
- if (!StringUtils.isEmpty(devcode)) {
- Map deviceMap = deviceMapper.getWellCode(devcode);
- //保存数据,无论是否有设备在库内
- DataGasDector dataGasDector = this.saveNormalData(receiveData, deviceMap);
- if (ObjectUtils.isEmpty(deviceMap)) {
- log.info("没有该设备编号录入" + devcode);
- if (enableLocal) {
- return true;
- }
- }
- //自动消除报警
- this.alarmRecordsMapper.clearAlarm(devcode);
- this.dataTaskJudge(deviceMap, dataGasDector);
- return true;
+ //第一条上来,清除离线
+ clearOnlineData(devcode);
+ ButaneData butaneData = ButaneData.builder()
+ .devcode(devcode)
+ .dbid(snowflake.nextId())
+ .descn("状态正常")
+ .status("0")
+ .build();
+ if (!ObjectUtils.isEmpty(receiveData) && receiveData.containsKey("timestamp")) {
+ butaneData.setLogtime(new Date(Long.valueOf(receiveData.get("timestamp").toString())));
+ } else {
+ butaneData.setLogtime(new Date());
}
+ butaneDataMapper.insert(butaneData);
return false;
}
- private DataGasDector saveNormalData(Map receiveData, Map deviceMap) {
- DataGasDector dataGasDector = new DataGasDector();
- dataGasDector.setId(snowflake.nextId());
- dataGasDector.setDevcode(receiveData.get("IMEI").toString());
- dataGasDector.setWellCode(!ObjectUtils.isEmpty(deviceMap) && deviceMap.containsKey("wellCode") ? deviceMap.get("wellCode").toString() : "");
- dataGasDector.setLogtime(new Date());
+ private void populateTime(Map receiveData, ButaneData butaneData, AlarmRecord alarmRecord) {
if (!ObjectUtils.isEmpty(receiveData) && receiveData.containsKey("timestamp")) {
- dataGasDector.setUptime(new Date(Long.valueOf(receiveData.get("timestamp").toString())));
+ Date logtime = new Date(Long.valueOf(receiveData.get("timestamp").toString()));
+ butaneData.setLogtime(logtime);
+ alarmRecord.setRecorddate(logtime);
} else {
- dataGasDector.setUptime(new Date());
+ alarmRecord.setRecorddate(new Date());
+ butaneData.setLogtime(new Date());
}
- Map gascontent = (Map)receiveData.get("payload");
- if (!ObjectUtils.isEmpty(gascontent)) {
- if (gascontent.containsKey("gas_sample_value")) {
- dataGasDector.setStrength(gascontent.get("gas_sample_value").toString());
- }
- }
- dataGasMapper.insert(dataGasDector);
- return dataGasDector;
}
- /**
- * 报警存库
- */
- private void dataTaskJudge(Map deviceMap, DataGasDector dataGasDector) {
- List> alarmLevelList = dataGasMapper.getAlarmLevelList(deviceType);
- String wellCode = dataGasDector.getWellCode();
- Long deviceId = !ObjectUtils.isEmpty(deviceMap) && deviceMap.containsKey("wellCode") ? Long.valueOf(String.valueOf(deviceMap.get("deviceId"))) : -1;
- final String gasMsgContent = dataGasMapper.getGasMsgContent(deviceType);
- for (Map alarmLevelMap : alarmLevelList) {
- if (Float.valueOf(dataGasDector.getStrength()) > Float.valueOf(String.valueOf(alarmLevelMap.get("high_value")))) {
- AlarmRecords alarmRecord = new AlarmRecords();
- alarmRecord.setId(snowflake.nextId());
- alarmRecord.setDeviceId(deviceId);
- alarmRecord.setDevcode(dataGasDector.getDevcode());
- alarmRecord.setWellCode(wellCode);
- alarmRecord.setAlarmType("1"); // 业务报警
- alarmRecord.setAlarmContent(gasMsgContent);
- alarmRecord.setAlarmValue(dataGasDector.getStrength());
- alarmRecord.setAlarmTime(new Date());
- alarmRecord.setStatus("1");
- alarmRecord.setAlarmLevel(Integer.valueOf(alarmLevelMap.get("level").toString()));
- alarmRecord.setAlarmMessage(gasMsgContent);
- String jobId = alarmRecordsMapper.isOldAlarmRecord(dataGasDector.getDevcode(), gasMsgContent);
- // 超出报警阈值 生成一条报警消息
- if (!StringUtils.isEmpty(jobId)) {
- alarmRecordsMapper.updateOldAlarmRecord(dataGasDector.getDevcode(), gasMsgContent);
- alarmRecord.setJobId(Long.valueOf(jobId));
- } else {
- AlarmJob alarmJob = alarmJobDao.saveData(dataGasDector.getStrength(), wellCode, "RQZD", "1");
- alarmRecord.setJobId(alarmJob.getId());
- }
- alarmRecordsMapper.insert(alarmRecord);
- break;
- }
+ private void clearAlarmData(String devcode) {
+ QueryWrapper queryWrapper = new QueryWrapper();
+ queryWrapper.eq("DEVICE_CODE", devcode);
+ queryWrapper.eq("ACTIVE", 1);
+ try {
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setActive(0);
+ alarmRecordsMapper.update(alarmRecord, queryWrapper);
+ } catch (Exception e) {
+ log.error("清除报警失败,设备编号为{},异常信息{}", devcode, e);
}
}
+
+ private void clearOnlineData(String devcode) {
+ QueryWrapper queryWrapper = new QueryWrapper();
+ queryWrapper.eq("DEVICE_CODE", devcode);
+ queryWrapper.eq("ACTIVE", 1);
+ queryWrapper.eq("MESSAGE_STATUS", "0");
+ queryWrapper.eq("RECORDCODE", "1");
+ try {
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setActive(0);
+ alarmRecordsMapper.update(alarmRecord, queryWrapper);
+ } catch (Exception e) {
+ log.error("清除报警失败,设备编号为{},异常信息{}", devcode, e);
+ }
+ }
+
}
diff --git a/src/main/java/com/casic/util/ConestUtil.java b/src/main/java/com/casic/util/ConestUtil.java
deleted file mode 100644
index 2a4d305..0000000
--- a/src/main/java/com/casic/util/ConestUtil.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package com.casic.util;
-
-public class ConestUtil {
-
-
-}
diff --git a/src/main/java/com/casic/util/DateUtils.java b/src/main/java/com/casic/util/DateUtils.java
new file mode 100644
index 0000000..db2ed9c
--- /dev/null
+++ b/src/main/java/com/casic/util/DateUtils.java
@@ -0,0 +1,63 @@
+package com.casic.util;
+
+import java.text.SimpleDateFormat;
+
+/**
+ * Created by Administrator on 2015/2/25.
+ */
+public class DateUtils {
+ public static SimpleDateFormat sdf_day = new SimpleDateFormat("yyyy-MM-dd");
+ public static SimpleDateFormat sdf_day_time = new SimpleDateFormat("yyyyMMddHHmmss");
+ public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ public static final SimpleDateFormat sdf5 = new SimpleDateFormat("HH:mm:ss");
+ public static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+
+
+ public static String DateFormat(String dataString) {
+
+ String strymd = dataString.substring(0, 8);
+ String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " ";
+ String strhms = dataString.substring(8);
+ String str2 = strhms.substring(0, 2) + ":" + strhms.substring(2, 4) + ":" + strhms.substring(4, 6);
+ dataString = str1 + str2;
+ return dataString;
+ }
+
+ public static String DateFormatDate(String dataString) {
+
+ String strymd = dataString.substring(0, 8);
+ return strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8);
+ }
+
+ public static String DateFormatTime(String dataString) {
+
+ String strhms = dataString.substring(8);
+ return strhms.substring(0, 2) + ":" + strhms.substring(2, 4) + ":" + strhms.substring(4, 6);
+ }
+
+ /**
+ * 比较两个时间 时分秒 大小
+ *
+ * @param s1
+ * @param s2
+ * @return
+ */
+ public static boolean compTime(String s1, String s2) {
+ try {
+ if (s1.indexOf(":") < 0 || s1.indexOf(":") < 0) {
+ System.out.println("格式不正确");
+ } else {
+ String[] array1 = s1.split(":");
+ int total1 = Integer.valueOf(array1[0]) * 3600 + Integer.valueOf(array1[1]) * 60;
+ String[] array2 = s2.split(":");
+ int total2 = Integer.valueOf(array2[0]) * 3600 + Integer.valueOf(array2[1]) * 60;
+ return total1 - total2 > 0 ? true : false;
+ }
+ } catch (NumberFormatException e) {
+ // TODO Auto-generated catch block
+ return false;
+ }
+ return false;
+
+ }
+}
diff --git a/src/main/java/com/casic/util/HttpClientUtils.java b/src/main/java/com/casic/util/HttpClientUtils.java
new file mode 100644
index 0000000..91a631e
--- /dev/null
+++ b/src/main/java/com/casic/util/HttpClientUtils.java
@@ -0,0 +1,40 @@
+package com.casic.util;
+
+
+import com.alibaba.fastjson.JSONObject;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpStatus;
+import org.apache.commons.httpclient.methods.PostMethod;
+
+import java.io.IOException;
+
+public class HttpClientUtils {
+
+
+
+ public static String post(String url, String body, JSONObject header) {
+ HttpClient client = new HttpClient();
+ client.setTimeout(30000);
+ PostMethod method = new PostMethod(url);
+ // for (Map.Entry entry : headers.entrySet()) {
+ method.addRequestHeader("Content-type", "application/json; charset=utf-8");
+ method.addRequestHeader("Accept", "application/json");
+ method.addRequestHeader("X-APP-KEY", header.getString("X-APP-KEY"));
+ method.setRequestBody(body);
+ try {
+ int statusCode = client.executeMethod(method);
+ if (statusCode == HttpStatus.SC_OK) {
+ return new String(method.getResponseBody(), "UTF-8");
+ }
+
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+}
diff --git a/src/main/java/com/casic/util/SendUtil.java b/src/main/java/com/casic/util/SendUtil.java
new file mode 100644
index 0000000..2d73db1
--- /dev/null
+++ b/src/main/java/com/casic/util/SendUtil.java
@@ -0,0 +1,67 @@
+package com.casic.util;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.casic.entity.Device;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+@Slf4j
+@Component
+public class SendUtil {
+ @Value("${casic.synchronizeSms.enabled}")
+ private String enabled;
+ @Value("${casic.smsSenderURL}")
+ private String smsSenderUrl;
+ @Value("${casic.X-APP-KEY-SMS}")
+ private String smsAppKey;
+
+ public void sendEventBySms(Device device, JSONObject eventObj) {
+ if ("true".equals(enabled)) {
+// String smsSenderUrl = Configure.getProperty("smsSenderURL", "http://general.bushub.rj.prd/sms/user/send");
+// String smsAppKey = Configure.getProperty("X-APP-KEY-SMS", "2d3a8e35-0533-42a0-97a2-63f82a3216f9");
+ String sim = device.getSimid();
+ if (null == sim || StringUtils.isBlank(sim)) {
+ return;
+ }
+
+ if (null == smsAppKey || StringUtils.isBlank(smsAppKey)) {
+ return;
+ }
+
+ JSONObject header = new JSONObject();
+ header.put("X-APP-KEY", smsAppKey);
+
+ StringBuilder params = new StringBuilder();
+ params.append("{");
+ params.append("\"mobile\":");
+ params.append("\"").append(sim).append("\"").append(",");
+
+ String prefix = "【智慧蓉江】";
+ String eventTm = DateUtils.sdf4.format(new Date());
+ String devName = device.getDevName();
+ String place = device.getFactory();
+
+ StringBuilder content = new StringBuilder("");
+ content.append(prefix);
+ content.append(eventTm).append(",");
+ content.append("管网监测设备[").append(devName).append("],");
+ content.append("发生").append(eventObj.getString("type")).append(",");
+ if (eventObj.containsKey("value") == true) {
+ content.append(eventObj.getString("value")).append(",");
+ }
+ content.append("详细地址是:").append(place).append(",");
+ content.append("请关注并及时处理。");
+
+ params.append("\"content\":");
+ params.append("\"").append(content.toString()).append("\"");
+ params.append("}");
+
+ String resp = HttpClientUtils.post(smsSenderUrl, params.toString(), header);
+ log.info("已发送短信"+resp);
+ }
+ }
+}
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 4807974..d47010a 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -1,12 +1,12 @@
server:
- port: 5907
+ port: 5001
################### spring配置 ###################
spring:
datasource:
- driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://111.198.10.15:11102/smartwell_gdt?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=GMT%2B8&&allowMultiQueries=true&&useSSL=true
- username: root
- password: Casic203!
+ driverClassName: oracle.jdbc.driver.OracleDriver
+ url: jdbc:oracle:thin:@11.100.6.183:1521:orcl
+ username: gzsg
+ password: gzsg
session:
store-type: redis
redis:
@@ -19,8 +19,15 @@
# session:
#flowable数据源和多数据源配置
logging:
- level.root: error
- level.com.casic: error
+ level.root: info
+ level.com.casic: debug
+ level.org.springframework.web: info
file:
path: logs/
- name: missiles.log
\ No newline at end of file
+ name: missiles.log
+#短信推送
+casic:
+ synchronizeSms.enabled: true
+ smsSenderURL: http://general.bushub.rj.prd/sms/user/send
+ X-APP-KEY-SMS: 2d3a8e35-0533-42a0-97a2-63f82a3216f9
+ sms-prefix: 【智慧蓉江】
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/src/main/java/com/casic/dao/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index fde1818..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -1,36 +1,24 @@
package com.casic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmRecords;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.Device;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
@Mapper
-public interface AlarmRecordsMapper extends BaseMapper {
+public interface AlarmRecordsMapper extends BaseMapper {
+ @Select("SELECT DBID " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Long getDevcode(@Param("devcode") String devcode);
- @Select("SELECT JOB_ID AS \"jobId\"\n " +
- "FROM alarm_records\n " +
- "WHERE DEVCODE = #{devcode}\n " +
- "AND ALARM_CONTENT = #{MsgContent}\n " +
- "AND STATUS='1'\n " +
- "AND JOB_ID>0 ")
- String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='0'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND ALARM_CONTENT = #{MsgContent}\n" +
- " AND STATUS='1'")
- Integer updateOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='3'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND STATUS='1'")
- Integer clearAlarm(@Param("devcode") String devcode);
-
+ @Select("SELECT DBID as id, DEVCODE as devCode, DEVNAME as devName, FACTORY as factory, SIMID as simid " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Device getDevice(@Param("devcode") String devcode);
}
diff --git a/src/main/java/com/casic/dao/ButaneDataMapper.java b/src/main/java/com/casic/dao/ButaneDataMapper.java
new file mode 100644
index 0000000..632c7d2
--- /dev/null
+++ b/src/main/java/com/casic/dao/ButaneDataMapper.java
@@ -0,0 +1,12 @@
+package com.casic.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.entity.ButaneData;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface ButaneDataMapper extends BaseMapper {
+
+
+}
diff --git a/src/main/java/com/casic/dao/DataGasMapper.java b/src/main/java/com/casic/dao/DataGasMapper.java
deleted file mode 100644
index 8a064f2..0000000
--- a/src/main/java/com/casic/dao/DataGasMapper.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.DataGasDector;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-
-import java.util.List;
-import java.util.Map;
-
-@Mapper
-public interface DataGasMapper extends BaseMapper {
-
- @Select("SELECT level,high_value " +
- "FROM alarm_level " +
- "WHERE device_type=#{deviceType} ")
- List> getAlarmLevelList(@Param("deviceType") Long deviceType);
-
- @Select("SELECT devcode " +
- "FROM data_gas_dector " +
- "WHERE devcode=#{devcode} " +
- "AND (EXTRACT(epoch FROM CAST(now() AS TIMESTAMPTZ))-EXTRACT(epoch FROM CAST(logtime AS TIMESTAMPTZ)))/60.0 < ${minutes} "+
- "ORDER BY logtime DESC " +
- "LIMIT 1")
- String getLastData(@Param("minutes") String minutes,
- @Param("devcode") String devcode);
-
- @Select("SELECT alarm_content " +
- "FROM base_alarm_content_type " +
- "WHERE device_type=#{deviceType}")
- String getGasMsgContent(@Param("deviceType")Long deviceType);
-
-
-}
diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java
new file mode 100644
index 0000000..e9456c1
--- /dev/null
+++ b/src/main/java/com/casic/dao/DeviceDataMapper.java
@@ -0,0 +1,18 @@
+package com.casic.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface DeviceDataMapper {
+
+ List> getDevcodeByType(@Param("devciceType") Integer devciceType);
+
+ List getRecentData(@Param("dataDay") Integer dataDay);
+
+ int updateOnlineByDevs(@Param("dataSortList") List dataSortDevcodeList);
+
+}
diff --git a/src/main/java/com/casic/dao/DeviceMapper.java b/src/main/java/com/casic/dao/DeviceMapper.java
deleted file mode 100644
index 73b574e..0000000
--- a/src/main/java/com/casic/dao/DeviceMapper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.Device;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Map;
-
-@Mapper
-public interface DeviceMapper extends BaseMapper {
-
- Map getWellCode(@Param("devcode") String devcode);
-
-}
diff --git a/src/main/java/com/casic/dao/impl/AlarmJobDao.java b/src/main/java/com/casic/dao/impl/AlarmJobDao.java
deleted file mode 100644
index 5131821..0000000
--- a/src/main/java/com/casic/dao/impl/AlarmJobDao.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.casic.dao.impl;
-
-import com.alibaba.druid.util.StringUtils;
-import com.casic.dao.AlarmJobMapper;
-import com.casic.entity.AlarmJob;
-import org.springframework.stereotype.Component;
-import xyz.downgoon.snowflake.Snowflake;
-
-import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-@Component
-public class AlarmJobDao {
-
- private static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMdd");
-
- private static Snowflake snowflake = new Snowflake(0, 2);
-// private static final Sn
-
- @Resource
- private AlarmJobMapper alarmJobMapper;
-
- public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) {
- AlarmJob alarmJob = new AlarmJob();
- alarmJob.setId(snowflake.nextId());
- alarmJob.setDevcode(devCode);
- alarmJob.setWellCode(wellCode);
- alarmJob.setJobStatus("0");
- alarmJob.setCreateTime(new Date());
- alarmJob.setJobcode(this.produceJobCode(devTypeName));
- alarmJob.setJobType(jobType);
- alarmJobMapper.insert(alarmJob);
- return alarmJob;
- }
-
- /**
- * 前缀+日期+4位流水号
- *
- * @param devTypeName
- * @return
- */
- private String produceJobCode(String devTypeName) {
- String pre = devTypeName;
- String dataStr = sdf6.format(new Date());
- String fix = this.getJobCodeMaxSerial(pre + dataStr);
- return StringUtils.isEmpty(fix) ? pre + dataStr + String.format("%04d", Long.valueOf(StringUtils.isEmpty(fix)?"0":fix) + 1L) : pre + dataStr + "0001";
- }
-
-
- private String getJobCodeMaxSerial(String jobcode) {
- String MaxSerialJobCode = alarmJobMapper.getJobCodeMaxSerial(jobcode);
- String fix = "";
- if (null != MaxSerialJobCode && MaxSerialJobCode.length() > 4) {
- fix = MaxSerialJobCode.substring(MaxSerialJobCode.length() - 4);
- }
- return fix;
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmJob.java b/src/main/java/com/casic/entity/AlarmJob.java
deleted file mode 100644
index 8a0f764..0000000
--- a/src/main/java/com/casic/entity/AlarmJob.java
+++ /dev/null
@@ -1,165 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- *
- * 报警工单表
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_job")
-public class AlarmJob extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- private Long id;
- /**
- * 工单编号
- */
- @TableField("JOBCODE")
- private String jobcode;
- /**
- * 工单类型
- */
- @TableField("JOG_TYPE")
- private String jobType;
- /**
- * 井编号
- */
- @TableField("WELL_CODE")
- private String wellCode;
- /**
- * 设备编号
- */
- @TableField("DEVCODE")
- private String devcode;
- /**
- * 工单创建时间
- */
- @TableField("CREATE_TIME")
- private Date createTime;
- /**
- * 工单状态(0待处理,1待确认,2处理中,3完成)
- */
- @TableField("JOB_STATUS")
- private String jobStatus;
- /**
- * 接单人员
- */
- @TableField("GET_JOB_PERSON")
- private Long getJobPerson;
- /**
- * 接单时间
- */
- @TableField("GET_JOB_TIME")
- private Date getJobTime;
- /**
- * 应接单时间
- */
- @TableField("SHOULD_GET_TIME")
- private Date shouldGetTime;
- /**
- * 第一现场情况
- */
- @TableField("FIRST_STATE")
- private String firstState;
- /**
- * 第一现场照片
- */
- @TableField("FIRST_STATE_PHOTOS")
- private String firstStatePhotos;
- /**
- * 确认人员
- */
- @TableField("CONFIRM_JOB_PERSON")
- private Long confirmJobPerson;
- /**
- * 确认时间
- */
- @TableField("CONFRIM_JOB_TIME")
- private Date confrimJobTime;
- /**
- * 处理人员
- */
- @TableField("HANDLE_JOB_Person")
- private Long handleJobPerson;
- /**
- * 处理时间
- */
- @TableField("HANDLE_JOB_TIME")
- private Date handleJobTime;
- /**
- * 维护情况记录
- */
- @TableField("HANDLE_MESSAGE")
- private String handleMessage;
- /**
- * 维护图片
- */
- @TableField("HANDLE_PHOTOS")
- private String handlePhotos;
- /**
- * 工单流转记录
- */
- @TableField("FLOW")
- private String flow;
-
- @TableField("JOB_BELONG_TO")
- private Long jobBelongTo;
-
- @TableField("JOB_FLAG_DELAY")
- private String jobFlagDelay;
-
- @TableField("JOB_FLAG_1")
- private String jobFlag1;
-
- @TableField(exist = false)
- private String alarmValue;
-
- @TableField(exist = false)
- private String alarmContentName;
-
- @TableField(exist = false)
- private Integer recordId;
-
- @Override
- public String toString() {
- return "AlarmJob{" +
- "id=" + id +
- ", jobcode=" + jobcode +
- ", jogType=" + jobType +
- ", wellCode=" + wellCode +
- ", devcode=" + devcode +
- ", createTime=" + createTime +
- ", jobStatus=" + jobStatus +
- ", getJobPerson=" + getJobPerson +
- ", getJobTime=" + getJobTime +
- ", firstState=" + firstState +
- ", firstStatePhotos=" + firstStatePhotos +
- ", confirmJobPerson=" + confirmJobPerson +
- ", confrimJobTime=" + confrimJobTime +
- ", handleJobPerson=" + handleJobPerson +
- ", handleJobTime=" + handleJobTime +
- ", handleMessage=" + handleMessage +
- ", handlePhotos=" + handlePhotos +
- ", flow=" + flow +
- ", recordId=" + recordId +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmRecord.java b/src/main/java/com/casic/entity/AlarmRecord.java
new file mode 100644
index 0000000..137d805
--- /dev/null
+++ b/src/main/java/com/casic/entity/AlarmRecord.java
@@ -0,0 +1,106 @@
+package com.casic.entity;
+
+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 com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *
+ *
+ *
+ *
+ * @author casic123
+ * @since 2019-05-17
+ */
+@Data
+@TableName("ALARM_ALARM_RECORD")
+public class AlarmRecord extends Model {
+
+
+ private static final long serialVersionUID = 1L;
+ /**
+ * 主键
+ */
+ @TableId(value = "DBID")
+ private Long dbid;
+ /**
+ * 设备编号
+ */
+ @TableField("DEVICE_CODE")
+ private String deviceCode;
+ /**
+ * 设备类型名称
+ */
+ @TableField("DEVICE_TYPE_NAME")
+ private String deviceTypeName;
+ /**
+ * 是否推送,默认0
+ */
+ @TableField("ISSEND")
+ private String issend;
+ /**
+ * 默认default
+ */
+ @TableField("ITEMNAME")
+ private String itemname;
+ /**
+ * 没有数值
+ */
+ @TableField("ITEMVALUE")
+ private String itemvalue;
+ /**
+ * 1
+ */
+ @TableField("MESSAGE")
+ private String message;
+ /**
+ * 0
+ */
+ @TableField("MESSAGE_STATUS")
+ private String messageStatus;
+
+
+ /**
+ * 0
+ */
+ @TableField("RECORDCODE")
+ private String recordcode;
+ /**
+ * 告警日期
+ */
+ @TableField("RECORDDATE")
+ private Date recorddate;
+ /**
+ * 工单编号
+ */
+ @TableField("DEVICE_ID")
+ private Long deviceId;
+
+ /**
+ * 删除标志,默认为1
+ */
+ private Integer active;
+
+ @Override
+ public String toString() {
+ return "AlarmRecord{" +
+ "dbid=" + dbid +
+ ", deviceCode='" + deviceCode + '\'' +
+ ", deviceTypeName='" + deviceTypeName + '\'' +
+ ", issend='" + issend + '\'' +
+ ", itemname='" + itemname + '\'' +
+ ", itemvalue='" + itemvalue + '\'' +
+ ", message='" + message + '\'' +
+ ", messageStatus='" + messageStatus + '\'' +
+ ", recordcode='" + recordcode + '\'' +
+ ", recorddate=" + recorddate +
+ ", deviceId=" + deviceId +
+ ", active=" + active +
+ '}';
+ }
+}
diff --git a/src/main/java/com/casic/entity/AlarmRecords.java b/src/main/java/com/casic/entity/AlarmRecords.java
deleted file mode 100644
index 88b0b26..0000000
--- a/src/main/java/com/casic/entity/AlarmRecords.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- *
- *
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_records")
-public class AlarmRecords extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- 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;
-
- @Override
- public String toString() {
- return "AlarmRecords{" +
- "id=" + id +
- ", deviceId=" + deviceId +
- ", devcode=" + devcode +
- ", wellCode=" + wellCode +
- ", alarmType=" + alarmType +
- ", alarmContent=" + alarmContent +
- ", alarmValue=" + alarmValue +
- ", alarmLevel=" + alarmLevel +
- ", alarmMessage=" + alarmMessage +
- ", alarmTime=" + alarmTime +
- ", status=" + status +
- ", jobId=" + jobId +
- ", jobStatus=" + jobStatus +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/ButaneData.java b/src/main/java/com/casic/entity/ButaneData.java
new file mode 100644
index 0000000..2e051be
--- /dev/null
+++ b/src/main/java/com/casic/entity/ButaneData.java
@@ -0,0 +1,28 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Builder;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@TableName("CASIC_BUTANE_INFO")
+@Builder
+public class ButaneData extends Model {
+
+ @TableId(value = "DBID")
+ private Long dbid;
+
+ private String devcode;
+
+ private String status;
+
+ private String descn;
+
+ private Date logtime;
+
+}
diff --git a/src/main/java/com/casic/entity/Device.java b/src/main/java/com/casic/entity/Device.java
new file mode 100644
index 0000000..0360e41
--- /dev/null
+++ b/src/main/java/com/casic/entity/Device.java
@@ -0,0 +1,27 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@TableName("ALARM_DEVICE")
+public class Device implements Serializable {
+ /**
+ * 设备基本信息表
+ */
+ private static final long serialVersionUID = -2023118078562324658L;
+ @TableId(value = "DBID")
+ private Long id;
+ @TableId(value = "DEVCODE")
+ private String devCode;
+ @TableId(value = "DEVNAME")
+ private String devName;
+ @TableId(value = "FACTORY")
+ private String factory;
+ @TableId(value = "SIMID")
+ private String simid; // SIM卡号
+
+}
diff --git a/src/main/java/com/casic/model/HostData.java b/src/main/java/com/casic/model/HostData.java
new file mode 100644
index 0000000..40cefa7
--- /dev/null
+++ b/src/main/java/com/casic/model/HostData.java
@@ -0,0 +1,16 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class HostData {
+ private String model;
+ private String dev_id;
+ private String chip_id;
+ private String mfd_day;
+ private String sw_ver;
+ private String hw_ver;
+ private String duration;
+ private String d_ch_cnt;
+ private String a_ch_cnt;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReceiveDataParam.java b/src/main/java/com/casic/model/ReceiveDataParam.java
new file mode 100644
index 0000000..3a17d24
--- /dev/null
+++ b/src/main/java/com/casic/model/ReceiveDataParam.java
@@ -0,0 +1,20 @@
+package com.casic.model;
+
+import lombok.Data;
+
+import java.util.HashMap;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReceiveDataParam {
+ private String deviceType;
+ private String iotId;
+ private String requestId;
+ private Object checkFailedData;
+ private String productKey;
+ private String deviceName;
+ private HashMap items;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReportUpdataParam.java b/src/main/java/com/casic/model/ReportUpdataParam.java
new file mode 100644
index 0000000..20c2ca9
--- /dev/null
+++ b/src/main/java/com/casic/model/ReportUpdataParam.java
@@ -0,0 +1,23 @@
+package com.casic.model;
+
+import lombok.Data;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReportUpdataParam {
+ private String msg_type;
+ private String event_change;
+ private String error_val;
+ private String ch_cnt;
+ private String erro_cnt;
+ private String alarm_low_cnt;
+ private String alarm_high_cnt;
+ private String offline_cnt;
+ private String rtd_val;
+ private String adc_val;
+ private String status_val;
+ private String time;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/WirelessData.java b/src/main/java/com/casic/model/WirelessData.java
new file mode 100644
index 0000000..b062c13
--- /dev/null
+++ b/src/main/java/com/casic/model/WirelessData.java
@@ -0,0 +1,19 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class WirelessData {
+ private String model;
+ private String IMEI;
+ private String ICCID;
+ private String sw_ver;
+ private String hw_ver;
+ private String ch_cnt;
+ private String heartbeat_inv;
+ private String up_pcnt;
+ private String up_pcnt_inv;
+ private String csq;
+}
+
+
diff --git a/src/main/java/com/casic/schedule/TaskConfigurer.java b/src/main/java/com/casic/schedule/TaskConfigurer.java
new file mode 100644
index 0000000..77c5d5a
--- /dev/null
+++ b/src/main/java/com/casic/schedule/TaskConfigurer.java
@@ -0,0 +1,47 @@
+package com.casic.schedule;
+
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+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
+@Slf4j
+@RequiredArgsConstructor
+public class TaskConfigurer implements SchedulingConfigurer {
+
+ @Value("${casic.device.online.cron}")
+ private String onlineStateCron;
+
+ private final DeviceDataService deviceDataService;
+
+ @Override
+ public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
+ TriggerTask onlineStateTask = new TriggerTask(nextDayDevice(),
+ triggerContext -> {
+ return new CronTrigger(onlineStateCron).nextExecutionTime(triggerContext);
+ });
+ taskRegistrar.addTriggerTask(onlineStateTask);
+ }
+
+ private Runnable nextDayDevice() {
+ return new Runnable() {
+ @Override
+ public void run() {
+ log.info("定时查询在线离线运行了...");
+ deviceDataService.checkAndUpdateDeviceOnline();
+ }
+ };
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/service/AlarmRecordFly.java b/src/main/java/com/casic/service/AlarmRecordFly.java
new file mode 100644
index 0000000..47c7969
--- /dev/null
+++ b/src/main/java/com/casic/service/AlarmRecordFly.java
@@ -0,0 +1,39 @@
+package com.casic.service;
+
+import com.casic.entity.AlarmRecord;
+
+public class AlarmRecordFly {
+
+ private static AlarmRecord alarmRecord;
+
+ static {
+ alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("0");
+ alarmRecord.setActive(1);
+ }
+
+ public static AlarmRecord getAlarmRecord() {
+ return alarmRecord;
+ }
+
+ public static AlarmRecord getPrototype(){
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("-1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("1");
+ alarmRecord.setActive(1);
+ return alarmRecord;
+ }
+
+
+
+
+}
diff --git a/src/main/java/com/casic/service/DeviceDataService.java b/src/main/java/com/casic/service/DeviceDataService.java
new file mode 100644
index 0000000..f972981
--- /dev/null
+++ b/src/main/java/com/casic/service/DeviceDataService.java
@@ -0,0 +1,7 @@
+package com.casic.service;
+
+public interface DeviceDataService {
+
+ void checkAndUpdateDeviceOnline();
+
+}
diff --git a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java
new file mode 100644
index 0000000..f41a44d
--- /dev/null
+++ b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java
@@ -0,0 +1,68 @@
+package com.casic.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.casic.dao.AlarmRecordsMapper;
+import com.casic.dao.DeviceDataMapper;
+import com.casic.entity.AlarmRecord;
+import com.casic.service.AlarmRecordFly;
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @author cz
+ */
+@Service
+@RequiredArgsConstructor
+public class DeviceDataServiceImpl extends ServiceImpl implements DeviceDataService {
+
+ private final DeviceDataMapper deviceDataMapper;
+
+ @Value("${casic.device.data-day}")
+ private Integer dataDay;
+
+ @Value("${casic.device.gas-dector.type}")
+ private Integer devciceType;
+
+
+ @Override
+ public void checkAndUpdateDeviceOnline() {
+ //查询硫化氢设备
+ List> devcodeList = deviceDataMapper.getDevcodeByType(devciceType);
+ //统一查询所有设备的3天内数据的设备编号,然后设备编号转成map,进行
+ List dataList = deviceDataMapper.getRecentData(dataDay);
+ List> dataSortDevcodeList = devcodeList;
+ if (dataList != null) {
+ Map devOnlineMap = new HashMap<>();
+ for (String devcodeData : dataList) {
+ devOnlineMap.put(devcodeData, "");
+ }
+ dataSortDevcodeList = dataSortDevcodeList.stream().filter(
+ e -> !devOnlineMap.containsKey((String) e.get("devcode"))).collect(Collectors.toList());
+ }
+ //批量产生离线报警
+ if (CollectionUtils.isNotEmpty(dataSortDevcodeList)) {
+ List alarmRecords = new ArrayList<>();
+ for (Map dataDevcodeMap : dataSortDevcodeList) {
+ alarmRecords.add(createAlarmRecord(((BigDecimal)dataDevcodeMap.get("id")).longValue(), (String) dataDevcodeMap.get("devcode")));
+ }
+ this.saveBatch(alarmRecords);
+ }
+ }
+
+ private AlarmRecord createAlarmRecord(Long id, String devcode) {
+ AlarmRecord alarmRecord = AlarmRecordFly.getPrototype();
+ alarmRecord.setRecorddate(new Date());
+ alarmRecord.setDbid(null);
+ alarmRecord.setDeviceCode(devcode);
+ alarmRecord.setDeviceId(id);
+ return alarmRecord;
+ }
+
+}
diff --git a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
index 4591d50..176b389 100644
--- a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
@@ -1,53 +1,41 @@
package com.casic.service.impl;
-import com.alibaba.druid.util.StringUtils;
-import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.casic.dao.AlarmRecordsMapper;
-import com.casic.dao.DataGasMapper;
-import com.casic.dao.DeviceMapper;
-import com.casic.dao.impl.AlarmJobDao;
-import com.casic.entity.AlarmJob;
-import com.casic.entity.AlarmRecords;
-import com.casic.entity.DataGasDector;
+import com.casic.dao.ButaneDataMapper;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.ButaneData;
import com.casic.entity.Device;
import com.casic.model.ResponseData;
+import com.casic.service.AlarmRecordFly;
import com.casic.service.DeviceService;
+import com.casic.util.SendUtil;
+import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import xyz.downgoon.snowflake.Snowflake;
-import javax.annotation.Resource;
import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import java.util.function.Supplier;
@Slf4j
@Service
+@RequiredArgsConstructor
public class DeviceServiceImpl implements DeviceService {
-
- @Value("${casic.device.gas-dector.enable-local}")
- private Boolean enableLocal;
- @Value("${casic.device.gas-dector.type}")
- private Long deviceType;
- @Resource
- private DataGasMapper dataGasMapper;
- @Resource
- private AlarmRecordsMapper alarmRecordsMapper;
- @Resource
- private DeviceMapper deviceMapper;
- @Autowired
- private AlarmJobDao alarmJobDao;
+ private final ButaneDataMapper butaneDataMapper;
+ private final AlarmRecordsMapper alarmRecordsMapper;
private static Snowflake snowflake = new Snowflake(0, 2);
+ @Autowired
+ private SendUtil sendUtil;
@Override
public ResponseData testMysql() {
+
ResponseData responseData = new ResponseData();
responseData.setMessage("保存成功");
responseData.setCode(1);
@@ -62,18 +50,16 @@
public ResponseData saveDataGas(Map receiveData) {
ResponseData responseData = new ResponseData();
try {
- Map payloadData;
+ Map payloadData = receiveData;
if (receiveData.containsKey("payload")) {
payloadData = (Map) receiveData.get("payload");
- }else{
- payloadData=receiveData;
}
- this.flagSelectProcessor("eventType", payloadData, () -> gasStatusUpdate(payloadData))
- .flagSelectProcessor("gas_sample_value", payloadData, () -> dealNormalData(receiveData));
+ this.flagSelectProcessor("gas_sensor_state", payloadData, () -> gasStatusUpdate(receiveData))
+ .flagSelectProcessor("heartbeat_time", payloadData, () -> dealNormalData(receiveData));
responseData.setCode(200);
responseData.setMessage("保存成功");
} catch (Exception dex) {
- log.error("主题:广东台燃气设备存储异常,异常信息:{}", dex.getMessage());
+ log.error("主题:燃气设备存储异常,异常信息:{}", dex.getMessage());
responseData.setCode(500);
responseData.setMessage("保存异常");
}
@@ -95,99 +81,110 @@
* @return
*/
private Boolean gasStatusUpdate(Map receiveData) {
- Long lonTimetemp = Long.valueOf(receiveData.get("timestamp").toString());
- String onlindeStatus = receiveData.get("eventType").toString();
- String devcode = receiveData.get("imei").toString();
- QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("devcode", devcode);
- queryWrapper.eq("valid", 1);
- Device device = new Device();
- if (!StringUtils.isEmpty(onlindeStatus)) {
- device.setOnlineState(onlindeStatus);
- Date logTime = new Date();
- logTime.setTime(lonTimetemp);
- device.setLogtime(logTime);
- deviceMapper.update(device, queryWrapper);
- return true;
+ AlarmRecord alarmRecord = AlarmRecordFly.getAlarmRecord();
+ Map payloadData = (Map) receiveData.get("payload");
+ //判断事件类型 0正常 1低报 2高报
+ String alarmSituation = payloadData.get("gas_sensor_state").toString();
+ String devcode = receiveData.get("IMEI").toString();
+ clearOnlineData(devcode);
+ //构建数据
+ ButaneData butaneData = ButaneData.builder()
+ .devcode(devcode)
+ .dbid(snowflake.nextId())
+ .build();
+ populateTime(receiveData, butaneData, alarmRecord);
+ switch (alarmSituation) {
+ case "0":
+// butaneData.setDescn("状态正常");
+// butaneData.setStatus("0");
+ break;
+ default:
+ //第一条上来,消除报警
+ clearAlarmData(devcode);
+ //产生新的报警,消除报警
+ butaneData.setDescn("可燃气体探测器报警");
+ butaneData.setStatus("1");
+ synchronized (alarmRecord) {
+ alarmRecord.setDbid(null);
+ alarmRecord.setDeviceCode(devcode);
+ alarmRecord.setDeviceId(alarmRecordsMapper.getDevcode(devcode));
+ alarmRecordsMapper.insert(alarmRecord);
+ }
+ butaneDataMapper.insert(butaneData);
+
+ try {
+ //推送短信至第三方
+ Device device = alarmRecordsMapper.getDevice(devcode);
+ if (null == device) {
+ log.error("设备不存在,编号:" + devcode);
+ return false;
+ }
+ JSONObject eventObj = new JSONObject();
+ eventObj.put("type", "燃气报警");
+ sendUtil.sendEventBySms(device, eventObj);
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ }
}
- return false;
+ return true;
}
public Boolean dealNormalData(Map receiveData) {
String devcode = receiveData.get("IMEI").toString();
- if (!StringUtils.isEmpty(devcode)) {
- Map deviceMap = deviceMapper.getWellCode(devcode);
- //保存数据,无论是否有设备在库内
- DataGasDector dataGasDector = this.saveNormalData(receiveData, deviceMap);
- if (ObjectUtils.isEmpty(deviceMap)) {
- log.info("没有该设备编号录入" + devcode);
- if (enableLocal) {
- return true;
- }
- }
- //自动消除报警
- this.alarmRecordsMapper.clearAlarm(devcode);
- this.dataTaskJudge(deviceMap, dataGasDector);
- return true;
+ //第一条上来,清除离线
+ clearOnlineData(devcode);
+ ButaneData butaneData = ButaneData.builder()
+ .devcode(devcode)
+ .dbid(snowflake.nextId())
+ .descn("状态正常")
+ .status("0")
+ .build();
+ if (!ObjectUtils.isEmpty(receiveData) && receiveData.containsKey("timestamp")) {
+ butaneData.setLogtime(new Date(Long.valueOf(receiveData.get("timestamp").toString())));
+ } else {
+ butaneData.setLogtime(new Date());
}
+ butaneDataMapper.insert(butaneData);
return false;
}
- private DataGasDector saveNormalData(Map receiveData, Map deviceMap) {
- DataGasDector dataGasDector = new DataGasDector();
- dataGasDector.setId(snowflake.nextId());
- dataGasDector.setDevcode(receiveData.get("IMEI").toString());
- dataGasDector.setWellCode(!ObjectUtils.isEmpty(deviceMap) && deviceMap.containsKey("wellCode") ? deviceMap.get("wellCode").toString() : "");
- dataGasDector.setLogtime(new Date());
+ private void populateTime(Map receiveData, ButaneData butaneData, AlarmRecord alarmRecord) {
if (!ObjectUtils.isEmpty(receiveData) && receiveData.containsKey("timestamp")) {
- dataGasDector.setUptime(new Date(Long.valueOf(receiveData.get("timestamp").toString())));
+ Date logtime = new Date(Long.valueOf(receiveData.get("timestamp").toString()));
+ butaneData.setLogtime(logtime);
+ alarmRecord.setRecorddate(logtime);
} else {
- dataGasDector.setUptime(new Date());
+ alarmRecord.setRecorddate(new Date());
+ butaneData.setLogtime(new Date());
}
- Map gascontent = (Map)receiveData.get("payload");
- if (!ObjectUtils.isEmpty(gascontent)) {
- if (gascontent.containsKey("gas_sample_value")) {
- dataGasDector.setStrength(gascontent.get("gas_sample_value").toString());
- }
- }
- dataGasMapper.insert(dataGasDector);
- return dataGasDector;
}
- /**
- * 报警存库
- */
- private void dataTaskJudge(Map deviceMap, DataGasDector dataGasDector) {
- List> alarmLevelList = dataGasMapper.getAlarmLevelList(deviceType);
- String wellCode = dataGasDector.getWellCode();
- Long deviceId = !ObjectUtils.isEmpty(deviceMap) && deviceMap.containsKey("wellCode") ? Long.valueOf(String.valueOf(deviceMap.get("deviceId"))) : -1;
- final String gasMsgContent = dataGasMapper.getGasMsgContent(deviceType);
- for (Map alarmLevelMap : alarmLevelList) {
- if (Float.valueOf(dataGasDector.getStrength()) > Float.valueOf(String.valueOf(alarmLevelMap.get("high_value")))) {
- AlarmRecords alarmRecord = new AlarmRecords();
- alarmRecord.setId(snowflake.nextId());
- alarmRecord.setDeviceId(deviceId);
- alarmRecord.setDevcode(dataGasDector.getDevcode());
- alarmRecord.setWellCode(wellCode);
- alarmRecord.setAlarmType("1"); // 业务报警
- alarmRecord.setAlarmContent(gasMsgContent);
- alarmRecord.setAlarmValue(dataGasDector.getStrength());
- alarmRecord.setAlarmTime(new Date());
- alarmRecord.setStatus("1");
- alarmRecord.setAlarmLevel(Integer.valueOf(alarmLevelMap.get("level").toString()));
- alarmRecord.setAlarmMessage(gasMsgContent);
- String jobId = alarmRecordsMapper.isOldAlarmRecord(dataGasDector.getDevcode(), gasMsgContent);
- // 超出报警阈值 生成一条报警消息
- if (!StringUtils.isEmpty(jobId)) {
- alarmRecordsMapper.updateOldAlarmRecord(dataGasDector.getDevcode(), gasMsgContent);
- alarmRecord.setJobId(Long.valueOf(jobId));
- } else {
- AlarmJob alarmJob = alarmJobDao.saveData(dataGasDector.getStrength(), wellCode, "RQZD", "1");
- alarmRecord.setJobId(alarmJob.getId());
- }
- alarmRecordsMapper.insert(alarmRecord);
- break;
- }
+ private void clearAlarmData(String devcode) {
+ QueryWrapper queryWrapper = new QueryWrapper();
+ queryWrapper.eq("DEVICE_CODE", devcode);
+ queryWrapper.eq("ACTIVE", 1);
+ try {
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setActive(0);
+ alarmRecordsMapper.update(alarmRecord, queryWrapper);
+ } catch (Exception e) {
+ log.error("清除报警失败,设备编号为{},异常信息{}", devcode, e);
}
}
+
+ private void clearOnlineData(String devcode) {
+ QueryWrapper queryWrapper = new QueryWrapper();
+ queryWrapper.eq("DEVICE_CODE", devcode);
+ queryWrapper.eq("ACTIVE", 1);
+ queryWrapper.eq("MESSAGE_STATUS", "0");
+ queryWrapper.eq("RECORDCODE", "1");
+ try {
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setActive(0);
+ alarmRecordsMapper.update(alarmRecord, queryWrapper);
+ } catch (Exception e) {
+ log.error("清除报警失败,设备编号为{},异常信息{}", devcode, e);
+ }
+ }
+
}
diff --git a/src/main/java/com/casic/util/ConestUtil.java b/src/main/java/com/casic/util/ConestUtil.java
deleted file mode 100644
index 2a4d305..0000000
--- a/src/main/java/com/casic/util/ConestUtil.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package com.casic.util;
-
-public class ConestUtil {
-
-
-}
diff --git a/src/main/java/com/casic/util/DateUtils.java b/src/main/java/com/casic/util/DateUtils.java
new file mode 100644
index 0000000..db2ed9c
--- /dev/null
+++ b/src/main/java/com/casic/util/DateUtils.java
@@ -0,0 +1,63 @@
+package com.casic.util;
+
+import java.text.SimpleDateFormat;
+
+/**
+ * Created by Administrator on 2015/2/25.
+ */
+public class DateUtils {
+ public static SimpleDateFormat sdf_day = new SimpleDateFormat("yyyy-MM-dd");
+ public static SimpleDateFormat sdf_day_time = new SimpleDateFormat("yyyyMMddHHmmss");
+ public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ public static final SimpleDateFormat sdf5 = new SimpleDateFormat("HH:mm:ss");
+ public static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+
+
+ public static String DateFormat(String dataString) {
+
+ String strymd = dataString.substring(0, 8);
+ String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " ";
+ String strhms = dataString.substring(8);
+ String str2 = strhms.substring(0, 2) + ":" + strhms.substring(2, 4) + ":" + strhms.substring(4, 6);
+ dataString = str1 + str2;
+ return dataString;
+ }
+
+ public static String DateFormatDate(String dataString) {
+
+ String strymd = dataString.substring(0, 8);
+ return strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8);
+ }
+
+ public static String DateFormatTime(String dataString) {
+
+ String strhms = dataString.substring(8);
+ return strhms.substring(0, 2) + ":" + strhms.substring(2, 4) + ":" + strhms.substring(4, 6);
+ }
+
+ /**
+ * 比较两个时间 时分秒 大小
+ *
+ * @param s1
+ * @param s2
+ * @return
+ */
+ public static boolean compTime(String s1, String s2) {
+ try {
+ if (s1.indexOf(":") < 0 || s1.indexOf(":") < 0) {
+ System.out.println("格式不正确");
+ } else {
+ String[] array1 = s1.split(":");
+ int total1 = Integer.valueOf(array1[0]) * 3600 + Integer.valueOf(array1[1]) * 60;
+ String[] array2 = s2.split(":");
+ int total2 = Integer.valueOf(array2[0]) * 3600 + Integer.valueOf(array2[1]) * 60;
+ return total1 - total2 > 0 ? true : false;
+ }
+ } catch (NumberFormatException e) {
+ // TODO Auto-generated catch block
+ return false;
+ }
+ return false;
+
+ }
+}
diff --git a/src/main/java/com/casic/util/HttpClientUtils.java b/src/main/java/com/casic/util/HttpClientUtils.java
new file mode 100644
index 0000000..91a631e
--- /dev/null
+++ b/src/main/java/com/casic/util/HttpClientUtils.java
@@ -0,0 +1,40 @@
+package com.casic.util;
+
+
+import com.alibaba.fastjson.JSONObject;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpStatus;
+import org.apache.commons.httpclient.methods.PostMethod;
+
+import java.io.IOException;
+
+public class HttpClientUtils {
+
+
+
+ public static String post(String url, String body, JSONObject header) {
+ HttpClient client = new HttpClient();
+ client.setTimeout(30000);
+ PostMethod method = new PostMethod(url);
+ // for (Map.Entry entry : headers.entrySet()) {
+ method.addRequestHeader("Content-type", "application/json; charset=utf-8");
+ method.addRequestHeader("Accept", "application/json");
+ method.addRequestHeader("X-APP-KEY", header.getString("X-APP-KEY"));
+ method.setRequestBody(body);
+ try {
+ int statusCode = client.executeMethod(method);
+ if (statusCode == HttpStatus.SC_OK) {
+ return new String(method.getResponseBody(), "UTF-8");
+ }
+
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+}
diff --git a/src/main/java/com/casic/util/SendUtil.java b/src/main/java/com/casic/util/SendUtil.java
new file mode 100644
index 0000000..2d73db1
--- /dev/null
+++ b/src/main/java/com/casic/util/SendUtil.java
@@ -0,0 +1,67 @@
+package com.casic.util;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.casic.entity.Device;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+@Slf4j
+@Component
+public class SendUtil {
+ @Value("${casic.synchronizeSms.enabled}")
+ private String enabled;
+ @Value("${casic.smsSenderURL}")
+ private String smsSenderUrl;
+ @Value("${casic.X-APP-KEY-SMS}")
+ private String smsAppKey;
+
+ public void sendEventBySms(Device device, JSONObject eventObj) {
+ if ("true".equals(enabled)) {
+// String smsSenderUrl = Configure.getProperty("smsSenderURL", "http://general.bushub.rj.prd/sms/user/send");
+// String smsAppKey = Configure.getProperty("X-APP-KEY-SMS", "2d3a8e35-0533-42a0-97a2-63f82a3216f9");
+ String sim = device.getSimid();
+ if (null == sim || StringUtils.isBlank(sim)) {
+ return;
+ }
+
+ if (null == smsAppKey || StringUtils.isBlank(smsAppKey)) {
+ return;
+ }
+
+ JSONObject header = new JSONObject();
+ header.put("X-APP-KEY", smsAppKey);
+
+ StringBuilder params = new StringBuilder();
+ params.append("{");
+ params.append("\"mobile\":");
+ params.append("\"").append(sim).append("\"").append(",");
+
+ String prefix = "【智慧蓉江】";
+ String eventTm = DateUtils.sdf4.format(new Date());
+ String devName = device.getDevName();
+ String place = device.getFactory();
+
+ StringBuilder content = new StringBuilder("");
+ content.append(prefix);
+ content.append(eventTm).append(",");
+ content.append("管网监测设备[").append(devName).append("],");
+ content.append("发生").append(eventObj.getString("type")).append(",");
+ if (eventObj.containsKey("value") == true) {
+ content.append(eventObj.getString("value")).append(",");
+ }
+ content.append("详细地址是:").append(place).append(",");
+ content.append("请关注并及时处理。");
+
+ params.append("\"content\":");
+ params.append("\"").append(content.toString()).append("\"");
+ params.append("}");
+
+ String resp = HttpClientUtils.post(smsSenderUrl, params.toString(), header);
+ log.info("已发送短信"+resp);
+ }
+ }
+}
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 4807974..d47010a 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -1,12 +1,12 @@
server:
- port: 5907
+ port: 5001
################### spring配置 ###################
spring:
datasource:
- driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://111.198.10.15:11102/smartwell_gdt?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=GMT%2B8&&allowMultiQueries=true&&useSSL=true
- username: root
- password: Casic203!
+ driverClassName: oracle.jdbc.driver.OracleDriver
+ url: jdbc:oracle:thin:@11.100.6.183:1521:orcl
+ username: gzsg
+ password: gzsg
session:
store-type: redis
redis:
@@ -19,8 +19,15 @@
# session:
#flowable数据源和多数据源配置
logging:
- level.root: error
- level.com.casic: error
+ level.root: info
+ level.com.casic: debug
+ level.org.springframework.web: info
file:
path: logs/
- name: missiles.log
\ No newline at end of file
+ name: missiles.log
+#短信推送
+casic:
+ synchronizeSms.enabled: true
+ smsSenderURL: http://general.bushub.rj.prd/sms/user/send
+ X-APP-KEY-SMS: 2d3a8e35-0533-42a0-97a2-63f82a3216f9
+ sms-prefix: 【智慧蓉江】
\ No newline at end of file
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 4038629..21ecda8 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -24,6 +24,9 @@
casic:
device:
gas-dector:
- type: 10
+ type: 30
minutes: 60
- enable-local: false
\ No newline at end of file
+ enable-local: false
+ data-day: 1 # 时间多少的为离线
+ online:
+ cron: 0 0/1 * * * ? # 多长时间判断离线
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/src/main/java/com/casic/dao/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index fde1818..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -1,36 +1,24 @@
package com.casic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmRecords;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.Device;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
@Mapper
-public interface AlarmRecordsMapper extends BaseMapper {
+public interface AlarmRecordsMapper extends BaseMapper {
+ @Select("SELECT DBID " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Long getDevcode(@Param("devcode") String devcode);
- @Select("SELECT JOB_ID AS \"jobId\"\n " +
- "FROM alarm_records\n " +
- "WHERE DEVCODE = #{devcode}\n " +
- "AND ALARM_CONTENT = #{MsgContent}\n " +
- "AND STATUS='1'\n " +
- "AND JOB_ID>0 ")
- String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='0'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND ALARM_CONTENT = #{MsgContent}\n" +
- " AND STATUS='1'")
- Integer updateOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='3'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND STATUS='1'")
- Integer clearAlarm(@Param("devcode") String devcode);
-
+ @Select("SELECT DBID as id, DEVCODE as devCode, DEVNAME as devName, FACTORY as factory, SIMID as simid " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Device getDevice(@Param("devcode") String devcode);
}
diff --git a/src/main/java/com/casic/dao/ButaneDataMapper.java b/src/main/java/com/casic/dao/ButaneDataMapper.java
new file mode 100644
index 0000000..632c7d2
--- /dev/null
+++ b/src/main/java/com/casic/dao/ButaneDataMapper.java
@@ -0,0 +1,12 @@
+package com.casic.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.entity.ButaneData;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface ButaneDataMapper extends BaseMapper {
+
+
+}
diff --git a/src/main/java/com/casic/dao/DataGasMapper.java b/src/main/java/com/casic/dao/DataGasMapper.java
deleted file mode 100644
index 8a064f2..0000000
--- a/src/main/java/com/casic/dao/DataGasMapper.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.DataGasDector;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-
-import java.util.List;
-import java.util.Map;
-
-@Mapper
-public interface DataGasMapper extends BaseMapper {
-
- @Select("SELECT level,high_value " +
- "FROM alarm_level " +
- "WHERE device_type=#{deviceType} ")
- List> getAlarmLevelList(@Param("deviceType") Long deviceType);
-
- @Select("SELECT devcode " +
- "FROM data_gas_dector " +
- "WHERE devcode=#{devcode} " +
- "AND (EXTRACT(epoch FROM CAST(now() AS TIMESTAMPTZ))-EXTRACT(epoch FROM CAST(logtime AS TIMESTAMPTZ)))/60.0 < ${minutes} "+
- "ORDER BY logtime DESC " +
- "LIMIT 1")
- String getLastData(@Param("minutes") String minutes,
- @Param("devcode") String devcode);
-
- @Select("SELECT alarm_content " +
- "FROM base_alarm_content_type " +
- "WHERE device_type=#{deviceType}")
- String getGasMsgContent(@Param("deviceType")Long deviceType);
-
-
-}
diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java
new file mode 100644
index 0000000..e9456c1
--- /dev/null
+++ b/src/main/java/com/casic/dao/DeviceDataMapper.java
@@ -0,0 +1,18 @@
+package com.casic.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface DeviceDataMapper {
+
+ List> getDevcodeByType(@Param("devciceType") Integer devciceType);
+
+ List getRecentData(@Param("dataDay") Integer dataDay);
+
+ int updateOnlineByDevs(@Param("dataSortList") List dataSortDevcodeList);
+
+}
diff --git a/src/main/java/com/casic/dao/DeviceMapper.java b/src/main/java/com/casic/dao/DeviceMapper.java
deleted file mode 100644
index 73b574e..0000000
--- a/src/main/java/com/casic/dao/DeviceMapper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.Device;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Map;
-
-@Mapper
-public interface DeviceMapper extends BaseMapper {
-
- Map getWellCode(@Param("devcode") String devcode);
-
-}
diff --git a/src/main/java/com/casic/dao/impl/AlarmJobDao.java b/src/main/java/com/casic/dao/impl/AlarmJobDao.java
deleted file mode 100644
index 5131821..0000000
--- a/src/main/java/com/casic/dao/impl/AlarmJobDao.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.casic.dao.impl;
-
-import com.alibaba.druid.util.StringUtils;
-import com.casic.dao.AlarmJobMapper;
-import com.casic.entity.AlarmJob;
-import org.springframework.stereotype.Component;
-import xyz.downgoon.snowflake.Snowflake;
-
-import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-@Component
-public class AlarmJobDao {
-
- private static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMdd");
-
- private static Snowflake snowflake = new Snowflake(0, 2);
-// private static final Sn
-
- @Resource
- private AlarmJobMapper alarmJobMapper;
-
- public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) {
- AlarmJob alarmJob = new AlarmJob();
- alarmJob.setId(snowflake.nextId());
- alarmJob.setDevcode(devCode);
- alarmJob.setWellCode(wellCode);
- alarmJob.setJobStatus("0");
- alarmJob.setCreateTime(new Date());
- alarmJob.setJobcode(this.produceJobCode(devTypeName));
- alarmJob.setJobType(jobType);
- alarmJobMapper.insert(alarmJob);
- return alarmJob;
- }
-
- /**
- * 前缀+日期+4位流水号
- *
- * @param devTypeName
- * @return
- */
- private String produceJobCode(String devTypeName) {
- String pre = devTypeName;
- String dataStr = sdf6.format(new Date());
- String fix = this.getJobCodeMaxSerial(pre + dataStr);
- return StringUtils.isEmpty(fix) ? pre + dataStr + String.format("%04d", Long.valueOf(StringUtils.isEmpty(fix)?"0":fix) + 1L) : pre + dataStr + "0001";
- }
-
-
- private String getJobCodeMaxSerial(String jobcode) {
- String MaxSerialJobCode = alarmJobMapper.getJobCodeMaxSerial(jobcode);
- String fix = "";
- if (null != MaxSerialJobCode && MaxSerialJobCode.length() > 4) {
- fix = MaxSerialJobCode.substring(MaxSerialJobCode.length() - 4);
- }
- return fix;
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmJob.java b/src/main/java/com/casic/entity/AlarmJob.java
deleted file mode 100644
index 8a0f764..0000000
--- a/src/main/java/com/casic/entity/AlarmJob.java
+++ /dev/null
@@ -1,165 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- *
- * 报警工单表
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_job")
-public class AlarmJob extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- private Long id;
- /**
- * 工单编号
- */
- @TableField("JOBCODE")
- private String jobcode;
- /**
- * 工单类型
- */
- @TableField("JOG_TYPE")
- private String jobType;
- /**
- * 井编号
- */
- @TableField("WELL_CODE")
- private String wellCode;
- /**
- * 设备编号
- */
- @TableField("DEVCODE")
- private String devcode;
- /**
- * 工单创建时间
- */
- @TableField("CREATE_TIME")
- private Date createTime;
- /**
- * 工单状态(0待处理,1待确认,2处理中,3完成)
- */
- @TableField("JOB_STATUS")
- private String jobStatus;
- /**
- * 接单人员
- */
- @TableField("GET_JOB_PERSON")
- private Long getJobPerson;
- /**
- * 接单时间
- */
- @TableField("GET_JOB_TIME")
- private Date getJobTime;
- /**
- * 应接单时间
- */
- @TableField("SHOULD_GET_TIME")
- private Date shouldGetTime;
- /**
- * 第一现场情况
- */
- @TableField("FIRST_STATE")
- private String firstState;
- /**
- * 第一现场照片
- */
- @TableField("FIRST_STATE_PHOTOS")
- private String firstStatePhotos;
- /**
- * 确认人员
- */
- @TableField("CONFIRM_JOB_PERSON")
- private Long confirmJobPerson;
- /**
- * 确认时间
- */
- @TableField("CONFRIM_JOB_TIME")
- private Date confrimJobTime;
- /**
- * 处理人员
- */
- @TableField("HANDLE_JOB_Person")
- private Long handleJobPerson;
- /**
- * 处理时间
- */
- @TableField("HANDLE_JOB_TIME")
- private Date handleJobTime;
- /**
- * 维护情况记录
- */
- @TableField("HANDLE_MESSAGE")
- private String handleMessage;
- /**
- * 维护图片
- */
- @TableField("HANDLE_PHOTOS")
- private String handlePhotos;
- /**
- * 工单流转记录
- */
- @TableField("FLOW")
- private String flow;
-
- @TableField("JOB_BELONG_TO")
- private Long jobBelongTo;
-
- @TableField("JOB_FLAG_DELAY")
- private String jobFlagDelay;
-
- @TableField("JOB_FLAG_1")
- private String jobFlag1;
-
- @TableField(exist = false)
- private String alarmValue;
-
- @TableField(exist = false)
- private String alarmContentName;
-
- @TableField(exist = false)
- private Integer recordId;
-
- @Override
- public String toString() {
- return "AlarmJob{" +
- "id=" + id +
- ", jobcode=" + jobcode +
- ", jogType=" + jobType +
- ", wellCode=" + wellCode +
- ", devcode=" + devcode +
- ", createTime=" + createTime +
- ", jobStatus=" + jobStatus +
- ", getJobPerson=" + getJobPerson +
- ", getJobTime=" + getJobTime +
- ", firstState=" + firstState +
- ", firstStatePhotos=" + firstStatePhotos +
- ", confirmJobPerson=" + confirmJobPerson +
- ", confrimJobTime=" + confrimJobTime +
- ", handleJobPerson=" + handleJobPerson +
- ", handleJobTime=" + handleJobTime +
- ", handleMessage=" + handleMessage +
- ", handlePhotos=" + handlePhotos +
- ", flow=" + flow +
- ", recordId=" + recordId +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmRecord.java b/src/main/java/com/casic/entity/AlarmRecord.java
new file mode 100644
index 0000000..137d805
--- /dev/null
+++ b/src/main/java/com/casic/entity/AlarmRecord.java
@@ -0,0 +1,106 @@
+package com.casic.entity;
+
+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 com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *
+ *
+ *
+ *
+ * @author casic123
+ * @since 2019-05-17
+ */
+@Data
+@TableName("ALARM_ALARM_RECORD")
+public class AlarmRecord extends Model {
+
+
+ private static final long serialVersionUID = 1L;
+ /**
+ * 主键
+ */
+ @TableId(value = "DBID")
+ private Long dbid;
+ /**
+ * 设备编号
+ */
+ @TableField("DEVICE_CODE")
+ private String deviceCode;
+ /**
+ * 设备类型名称
+ */
+ @TableField("DEVICE_TYPE_NAME")
+ private String deviceTypeName;
+ /**
+ * 是否推送,默认0
+ */
+ @TableField("ISSEND")
+ private String issend;
+ /**
+ * 默认default
+ */
+ @TableField("ITEMNAME")
+ private String itemname;
+ /**
+ * 没有数值
+ */
+ @TableField("ITEMVALUE")
+ private String itemvalue;
+ /**
+ * 1
+ */
+ @TableField("MESSAGE")
+ private String message;
+ /**
+ * 0
+ */
+ @TableField("MESSAGE_STATUS")
+ private String messageStatus;
+
+
+ /**
+ * 0
+ */
+ @TableField("RECORDCODE")
+ private String recordcode;
+ /**
+ * 告警日期
+ */
+ @TableField("RECORDDATE")
+ private Date recorddate;
+ /**
+ * 工单编号
+ */
+ @TableField("DEVICE_ID")
+ private Long deviceId;
+
+ /**
+ * 删除标志,默认为1
+ */
+ private Integer active;
+
+ @Override
+ public String toString() {
+ return "AlarmRecord{" +
+ "dbid=" + dbid +
+ ", deviceCode='" + deviceCode + '\'' +
+ ", deviceTypeName='" + deviceTypeName + '\'' +
+ ", issend='" + issend + '\'' +
+ ", itemname='" + itemname + '\'' +
+ ", itemvalue='" + itemvalue + '\'' +
+ ", message='" + message + '\'' +
+ ", messageStatus='" + messageStatus + '\'' +
+ ", recordcode='" + recordcode + '\'' +
+ ", recorddate=" + recorddate +
+ ", deviceId=" + deviceId +
+ ", active=" + active +
+ '}';
+ }
+}
diff --git a/src/main/java/com/casic/entity/AlarmRecords.java b/src/main/java/com/casic/entity/AlarmRecords.java
deleted file mode 100644
index 88b0b26..0000000
--- a/src/main/java/com/casic/entity/AlarmRecords.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- *
- *
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_records")
-public class AlarmRecords extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- 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;
-
- @Override
- public String toString() {
- return "AlarmRecords{" +
- "id=" + id +
- ", deviceId=" + deviceId +
- ", devcode=" + devcode +
- ", wellCode=" + wellCode +
- ", alarmType=" + alarmType +
- ", alarmContent=" + alarmContent +
- ", alarmValue=" + alarmValue +
- ", alarmLevel=" + alarmLevel +
- ", alarmMessage=" + alarmMessage +
- ", alarmTime=" + alarmTime +
- ", status=" + status +
- ", jobId=" + jobId +
- ", jobStatus=" + jobStatus +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/ButaneData.java b/src/main/java/com/casic/entity/ButaneData.java
new file mode 100644
index 0000000..2e051be
--- /dev/null
+++ b/src/main/java/com/casic/entity/ButaneData.java
@@ -0,0 +1,28 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Builder;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@TableName("CASIC_BUTANE_INFO")
+@Builder
+public class ButaneData extends Model {
+
+ @TableId(value = "DBID")
+ private Long dbid;
+
+ private String devcode;
+
+ private String status;
+
+ private String descn;
+
+ private Date logtime;
+
+}
diff --git a/src/main/java/com/casic/entity/Device.java b/src/main/java/com/casic/entity/Device.java
new file mode 100644
index 0000000..0360e41
--- /dev/null
+++ b/src/main/java/com/casic/entity/Device.java
@@ -0,0 +1,27 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@TableName("ALARM_DEVICE")
+public class Device implements Serializable {
+ /**
+ * 设备基本信息表
+ */
+ private static final long serialVersionUID = -2023118078562324658L;
+ @TableId(value = "DBID")
+ private Long id;
+ @TableId(value = "DEVCODE")
+ private String devCode;
+ @TableId(value = "DEVNAME")
+ private String devName;
+ @TableId(value = "FACTORY")
+ private String factory;
+ @TableId(value = "SIMID")
+ private String simid; // SIM卡号
+
+}
diff --git a/src/main/java/com/casic/model/HostData.java b/src/main/java/com/casic/model/HostData.java
new file mode 100644
index 0000000..40cefa7
--- /dev/null
+++ b/src/main/java/com/casic/model/HostData.java
@@ -0,0 +1,16 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class HostData {
+ private String model;
+ private String dev_id;
+ private String chip_id;
+ private String mfd_day;
+ private String sw_ver;
+ private String hw_ver;
+ private String duration;
+ private String d_ch_cnt;
+ private String a_ch_cnt;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReceiveDataParam.java b/src/main/java/com/casic/model/ReceiveDataParam.java
new file mode 100644
index 0000000..3a17d24
--- /dev/null
+++ b/src/main/java/com/casic/model/ReceiveDataParam.java
@@ -0,0 +1,20 @@
+package com.casic.model;
+
+import lombok.Data;
+
+import java.util.HashMap;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReceiveDataParam {
+ private String deviceType;
+ private String iotId;
+ private String requestId;
+ private Object checkFailedData;
+ private String productKey;
+ private String deviceName;
+ private HashMap items;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReportUpdataParam.java b/src/main/java/com/casic/model/ReportUpdataParam.java
new file mode 100644
index 0000000..20c2ca9
--- /dev/null
+++ b/src/main/java/com/casic/model/ReportUpdataParam.java
@@ -0,0 +1,23 @@
+package com.casic.model;
+
+import lombok.Data;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReportUpdataParam {
+ private String msg_type;
+ private String event_change;
+ private String error_val;
+ private String ch_cnt;
+ private String erro_cnt;
+ private String alarm_low_cnt;
+ private String alarm_high_cnt;
+ private String offline_cnt;
+ private String rtd_val;
+ private String adc_val;
+ private String status_val;
+ private String time;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/WirelessData.java b/src/main/java/com/casic/model/WirelessData.java
new file mode 100644
index 0000000..b062c13
--- /dev/null
+++ b/src/main/java/com/casic/model/WirelessData.java
@@ -0,0 +1,19 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class WirelessData {
+ private String model;
+ private String IMEI;
+ private String ICCID;
+ private String sw_ver;
+ private String hw_ver;
+ private String ch_cnt;
+ private String heartbeat_inv;
+ private String up_pcnt;
+ private String up_pcnt_inv;
+ private String csq;
+}
+
+
diff --git a/src/main/java/com/casic/schedule/TaskConfigurer.java b/src/main/java/com/casic/schedule/TaskConfigurer.java
new file mode 100644
index 0000000..77c5d5a
--- /dev/null
+++ b/src/main/java/com/casic/schedule/TaskConfigurer.java
@@ -0,0 +1,47 @@
+package com.casic.schedule;
+
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+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
+@Slf4j
+@RequiredArgsConstructor
+public class TaskConfigurer implements SchedulingConfigurer {
+
+ @Value("${casic.device.online.cron}")
+ private String onlineStateCron;
+
+ private final DeviceDataService deviceDataService;
+
+ @Override
+ public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
+ TriggerTask onlineStateTask = new TriggerTask(nextDayDevice(),
+ triggerContext -> {
+ return new CronTrigger(onlineStateCron).nextExecutionTime(triggerContext);
+ });
+ taskRegistrar.addTriggerTask(onlineStateTask);
+ }
+
+ private Runnable nextDayDevice() {
+ return new Runnable() {
+ @Override
+ public void run() {
+ log.info("定时查询在线离线运行了...");
+ deviceDataService.checkAndUpdateDeviceOnline();
+ }
+ };
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/service/AlarmRecordFly.java b/src/main/java/com/casic/service/AlarmRecordFly.java
new file mode 100644
index 0000000..47c7969
--- /dev/null
+++ b/src/main/java/com/casic/service/AlarmRecordFly.java
@@ -0,0 +1,39 @@
+package com.casic.service;
+
+import com.casic.entity.AlarmRecord;
+
+public class AlarmRecordFly {
+
+ private static AlarmRecord alarmRecord;
+
+ static {
+ alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("0");
+ alarmRecord.setActive(1);
+ }
+
+ public static AlarmRecord getAlarmRecord() {
+ return alarmRecord;
+ }
+
+ public static AlarmRecord getPrototype(){
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("-1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("1");
+ alarmRecord.setActive(1);
+ return alarmRecord;
+ }
+
+
+
+
+}
diff --git a/src/main/java/com/casic/service/DeviceDataService.java b/src/main/java/com/casic/service/DeviceDataService.java
new file mode 100644
index 0000000..f972981
--- /dev/null
+++ b/src/main/java/com/casic/service/DeviceDataService.java
@@ -0,0 +1,7 @@
+package com.casic.service;
+
+public interface DeviceDataService {
+
+ void checkAndUpdateDeviceOnline();
+
+}
diff --git a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java
new file mode 100644
index 0000000..f41a44d
--- /dev/null
+++ b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java
@@ -0,0 +1,68 @@
+package com.casic.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.casic.dao.AlarmRecordsMapper;
+import com.casic.dao.DeviceDataMapper;
+import com.casic.entity.AlarmRecord;
+import com.casic.service.AlarmRecordFly;
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @author cz
+ */
+@Service
+@RequiredArgsConstructor
+public class DeviceDataServiceImpl extends ServiceImpl implements DeviceDataService {
+
+ private final DeviceDataMapper deviceDataMapper;
+
+ @Value("${casic.device.data-day}")
+ private Integer dataDay;
+
+ @Value("${casic.device.gas-dector.type}")
+ private Integer devciceType;
+
+
+ @Override
+ public void checkAndUpdateDeviceOnline() {
+ //查询硫化氢设备
+ List> devcodeList = deviceDataMapper.getDevcodeByType(devciceType);
+ //统一查询所有设备的3天内数据的设备编号,然后设备编号转成map,进行
+ List dataList = deviceDataMapper.getRecentData(dataDay);
+ List> dataSortDevcodeList = devcodeList;
+ if (dataList != null) {
+ Map devOnlineMap = new HashMap<>();
+ for (String devcodeData : dataList) {
+ devOnlineMap.put(devcodeData, "");
+ }
+ dataSortDevcodeList = dataSortDevcodeList.stream().filter(
+ e -> !devOnlineMap.containsKey((String) e.get("devcode"))).collect(Collectors.toList());
+ }
+ //批量产生离线报警
+ if (CollectionUtils.isNotEmpty(dataSortDevcodeList)) {
+ List alarmRecords = new ArrayList<>();
+ for (Map dataDevcodeMap : dataSortDevcodeList) {
+ alarmRecords.add(createAlarmRecord(((BigDecimal)dataDevcodeMap.get("id")).longValue(), (String) dataDevcodeMap.get("devcode")));
+ }
+ this.saveBatch(alarmRecords);
+ }
+ }
+
+ private AlarmRecord createAlarmRecord(Long id, String devcode) {
+ AlarmRecord alarmRecord = AlarmRecordFly.getPrototype();
+ alarmRecord.setRecorddate(new Date());
+ alarmRecord.setDbid(null);
+ alarmRecord.setDeviceCode(devcode);
+ alarmRecord.setDeviceId(id);
+ return alarmRecord;
+ }
+
+}
diff --git a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
index 4591d50..176b389 100644
--- a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
@@ -1,53 +1,41 @@
package com.casic.service.impl;
-import com.alibaba.druid.util.StringUtils;
-import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.casic.dao.AlarmRecordsMapper;
-import com.casic.dao.DataGasMapper;
-import com.casic.dao.DeviceMapper;
-import com.casic.dao.impl.AlarmJobDao;
-import com.casic.entity.AlarmJob;
-import com.casic.entity.AlarmRecords;
-import com.casic.entity.DataGasDector;
+import com.casic.dao.ButaneDataMapper;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.ButaneData;
import com.casic.entity.Device;
import com.casic.model.ResponseData;
+import com.casic.service.AlarmRecordFly;
import com.casic.service.DeviceService;
+import com.casic.util.SendUtil;
+import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import xyz.downgoon.snowflake.Snowflake;
-import javax.annotation.Resource;
import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import java.util.function.Supplier;
@Slf4j
@Service
+@RequiredArgsConstructor
public class DeviceServiceImpl implements DeviceService {
-
- @Value("${casic.device.gas-dector.enable-local}")
- private Boolean enableLocal;
- @Value("${casic.device.gas-dector.type}")
- private Long deviceType;
- @Resource
- private DataGasMapper dataGasMapper;
- @Resource
- private AlarmRecordsMapper alarmRecordsMapper;
- @Resource
- private DeviceMapper deviceMapper;
- @Autowired
- private AlarmJobDao alarmJobDao;
+ private final ButaneDataMapper butaneDataMapper;
+ private final AlarmRecordsMapper alarmRecordsMapper;
private static Snowflake snowflake = new Snowflake(0, 2);
+ @Autowired
+ private SendUtil sendUtil;
@Override
public ResponseData testMysql() {
+
ResponseData responseData = new ResponseData();
responseData.setMessage("保存成功");
responseData.setCode(1);
@@ -62,18 +50,16 @@
public ResponseData saveDataGas(Map receiveData) {
ResponseData responseData = new ResponseData();
try {
- Map payloadData;
+ Map payloadData = receiveData;
if (receiveData.containsKey("payload")) {
payloadData = (Map) receiveData.get("payload");
- }else{
- payloadData=receiveData;
}
- this.flagSelectProcessor("eventType", payloadData, () -> gasStatusUpdate(payloadData))
- .flagSelectProcessor("gas_sample_value", payloadData, () -> dealNormalData(receiveData));
+ this.flagSelectProcessor("gas_sensor_state", payloadData, () -> gasStatusUpdate(receiveData))
+ .flagSelectProcessor("heartbeat_time", payloadData, () -> dealNormalData(receiveData));
responseData.setCode(200);
responseData.setMessage("保存成功");
} catch (Exception dex) {
- log.error("主题:广东台燃气设备存储异常,异常信息:{}", dex.getMessage());
+ log.error("主题:燃气设备存储异常,异常信息:{}", dex.getMessage());
responseData.setCode(500);
responseData.setMessage("保存异常");
}
@@ -95,99 +81,110 @@
* @return
*/
private Boolean gasStatusUpdate(Map receiveData) {
- Long lonTimetemp = Long.valueOf(receiveData.get("timestamp").toString());
- String onlindeStatus = receiveData.get("eventType").toString();
- String devcode = receiveData.get("imei").toString();
- QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("devcode", devcode);
- queryWrapper.eq("valid", 1);
- Device device = new Device();
- if (!StringUtils.isEmpty(onlindeStatus)) {
- device.setOnlineState(onlindeStatus);
- Date logTime = new Date();
- logTime.setTime(lonTimetemp);
- device.setLogtime(logTime);
- deviceMapper.update(device, queryWrapper);
- return true;
+ AlarmRecord alarmRecord = AlarmRecordFly.getAlarmRecord();
+ Map payloadData = (Map) receiveData.get("payload");
+ //判断事件类型 0正常 1低报 2高报
+ String alarmSituation = payloadData.get("gas_sensor_state").toString();
+ String devcode = receiveData.get("IMEI").toString();
+ clearOnlineData(devcode);
+ //构建数据
+ ButaneData butaneData = ButaneData.builder()
+ .devcode(devcode)
+ .dbid(snowflake.nextId())
+ .build();
+ populateTime(receiveData, butaneData, alarmRecord);
+ switch (alarmSituation) {
+ case "0":
+// butaneData.setDescn("状态正常");
+// butaneData.setStatus("0");
+ break;
+ default:
+ //第一条上来,消除报警
+ clearAlarmData(devcode);
+ //产生新的报警,消除报警
+ butaneData.setDescn("可燃气体探测器报警");
+ butaneData.setStatus("1");
+ synchronized (alarmRecord) {
+ alarmRecord.setDbid(null);
+ alarmRecord.setDeviceCode(devcode);
+ alarmRecord.setDeviceId(alarmRecordsMapper.getDevcode(devcode));
+ alarmRecordsMapper.insert(alarmRecord);
+ }
+ butaneDataMapper.insert(butaneData);
+
+ try {
+ //推送短信至第三方
+ Device device = alarmRecordsMapper.getDevice(devcode);
+ if (null == device) {
+ log.error("设备不存在,编号:" + devcode);
+ return false;
+ }
+ JSONObject eventObj = new JSONObject();
+ eventObj.put("type", "燃气报警");
+ sendUtil.sendEventBySms(device, eventObj);
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ }
}
- return false;
+ return true;
}
public Boolean dealNormalData(Map receiveData) {
String devcode = receiveData.get("IMEI").toString();
- if (!StringUtils.isEmpty(devcode)) {
- Map deviceMap = deviceMapper.getWellCode(devcode);
- //保存数据,无论是否有设备在库内
- DataGasDector dataGasDector = this.saveNormalData(receiveData, deviceMap);
- if (ObjectUtils.isEmpty(deviceMap)) {
- log.info("没有该设备编号录入" + devcode);
- if (enableLocal) {
- return true;
- }
- }
- //自动消除报警
- this.alarmRecordsMapper.clearAlarm(devcode);
- this.dataTaskJudge(deviceMap, dataGasDector);
- return true;
+ //第一条上来,清除离线
+ clearOnlineData(devcode);
+ ButaneData butaneData = ButaneData.builder()
+ .devcode(devcode)
+ .dbid(snowflake.nextId())
+ .descn("状态正常")
+ .status("0")
+ .build();
+ if (!ObjectUtils.isEmpty(receiveData) && receiveData.containsKey("timestamp")) {
+ butaneData.setLogtime(new Date(Long.valueOf(receiveData.get("timestamp").toString())));
+ } else {
+ butaneData.setLogtime(new Date());
}
+ butaneDataMapper.insert(butaneData);
return false;
}
- private DataGasDector saveNormalData(Map receiveData, Map deviceMap) {
- DataGasDector dataGasDector = new DataGasDector();
- dataGasDector.setId(snowflake.nextId());
- dataGasDector.setDevcode(receiveData.get("IMEI").toString());
- dataGasDector.setWellCode(!ObjectUtils.isEmpty(deviceMap) && deviceMap.containsKey("wellCode") ? deviceMap.get("wellCode").toString() : "");
- dataGasDector.setLogtime(new Date());
+ private void populateTime(Map receiveData, ButaneData butaneData, AlarmRecord alarmRecord) {
if (!ObjectUtils.isEmpty(receiveData) && receiveData.containsKey("timestamp")) {
- dataGasDector.setUptime(new Date(Long.valueOf(receiveData.get("timestamp").toString())));
+ Date logtime = new Date(Long.valueOf(receiveData.get("timestamp").toString()));
+ butaneData.setLogtime(logtime);
+ alarmRecord.setRecorddate(logtime);
} else {
- dataGasDector.setUptime(new Date());
+ alarmRecord.setRecorddate(new Date());
+ butaneData.setLogtime(new Date());
}
- Map gascontent = (Map)receiveData.get("payload");
- if (!ObjectUtils.isEmpty(gascontent)) {
- if (gascontent.containsKey("gas_sample_value")) {
- dataGasDector.setStrength(gascontent.get("gas_sample_value").toString());
- }
- }
- dataGasMapper.insert(dataGasDector);
- return dataGasDector;
}
- /**
- * 报警存库
- */
- private void dataTaskJudge(Map deviceMap, DataGasDector dataGasDector) {
- List> alarmLevelList = dataGasMapper.getAlarmLevelList(deviceType);
- String wellCode = dataGasDector.getWellCode();
- Long deviceId = !ObjectUtils.isEmpty(deviceMap) && deviceMap.containsKey("wellCode") ? Long.valueOf(String.valueOf(deviceMap.get("deviceId"))) : -1;
- final String gasMsgContent = dataGasMapper.getGasMsgContent(deviceType);
- for (Map alarmLevelMap : alarmLevelList) {
- if (Float.valueOf(dataGasDector.getStrength()) > Float.valueOf(String.valueOf(alarmLevelMap.get("high_value")))) {
- AlarmRecords alarmRecord = new AlarmRecords();
- alarmRecord.setId(snowflake.nextId());
- alarmRecord.setDeviceId(deviceId);
- alarmRecord.setDevcode(dataGasDector.getDevcode());
- alarmRecord.setWellCode(wellCode);
- alarmRecord.setAlarmType("1"); // 业务报警
- alarmRecord.setAlarmContent(gasMsgContent);
- alarmRecord.setAlarmValue(dataGasDector.getStrength());
- alarmRecord.setAlarmTime(new Date());
- alarmRecord.setStatus("1");
- alarmRecord.setAlarmLevel(Integer.valueOf(alarmLevelMap.get("level").toString()));
- alarmRecord.setAlarmMessage(gasMsgContent);
- String jobId = alarmRecordsMapper.isOldAlarmRecord(dataGasDector.getDevcode(), gasMsgContent);
- // 超出报警阈值 生成一条报警消息
- if (!StringUtils.isEmpty(jobId)) {
- alarmRecordsMapper.updateOldAlarmRecord(dataGasDector.getDevcode(), gasMsgContent);
- alarmRecord.setJobId(Long.valueOf(jobId));
- } else {
- AlarmJob alarmJob = alarmJobDao.saveData(dataGasDector.getStrength(), wellCode, "RQZD", "1");
- alarmRecord.setJobId(alarmJob.getId());
- }
- alarmRecordsMapper.insert(alarmRecord);
- break;
- }
+ private void clearAlarmData(String devcode) {
+ QueryWrapper queryWrapper = new QueryWrapper();
+ queryWrapper.eq("DEVICE_CODE", devcode);
+ queryWrapper.eq("ACTIVE", 1);
+ try {
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setActive(0);
+ alarmRecordsMapper.update(alarmRecord, queryWrapper);
+ } catch (Exception e) {
+ log.error("清除报警失败,设备编号为{},异常信息{}", devcode, e);
}
}
+
+ private void clearOnlineData(String devcode) {
+ QueryWrapper queryWrapper = new QueryWrapper();
+ queryWrapper.eq("DEVICE_CODE", devcode);
+ queryWrapper.eq("ACTIVE", 1);
+ queryWrapper.eq("MESSAGE_STATUS", "0");
+ queryWrapper.eq("RECORDCODE", "1");
+ try {
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setActive(0);
+ alarmRecordsMapper.update(alarmRecord, queryWrapper);
+ } catch (Exception e) {
+ log.error("清除报警失败,设备编号为{},异常信息{}", devcode, e);
+ }
+ }
+
}
diff --git a/src/main/java/com/casic/util/ConestUtil.java b/src/main/java/com/casic/util/ConestUtil.java
deleted file mode 100644
index 2a4d305..0000000
--- a/src/main/java/com/casic/util/ConestUtil.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package com.casic.util;
-
-public class ConestUtil {
-
-
-}
diff --git a/src/main/java/com/casic/util/DateUtils.java b/src/main/java/com/casic/util/DateUtils.java
new file mode 100644
index 0000000..db2ed9c
--- /dev/null
+++ b/src/main/java/com/casic/util/DateUtils.java
@@ -0,0 +1,63 @@
+package com.casic.util;
+
+import java.text.SimpleDateFormat;
+
+/**
+ * Created by Administrator on 2015/2/25.
+ */
+public class DateUtils {
+ public static SimpleDateFormat sdf_day = new SimpleDateFormat("yyyy-MM-dd");
+ public static SimpleDateFormat sdf_day_time = new SimpleDateFormat("yyyyMMddHHmmss");
+ public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ public static final SimpleDateFormat sdf5 = new SimpleDateFormat("HH:mm:ss");
+ public static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+
+
+ public static String DateFormat(String dataString) {
+
+ String strymd = dataString.substring(0, 8);
+ String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " ";
+ String strhms = dataString.substring(8);
+ String str2 = strhms.substring(0, 2) + ":" + strhms.substring(2, 4) + ":" + strhms.substring(4, 6);
+ dataString = str1 + str2;
+ return dataString;
+ }
+
+ public static String DateFormatDate(String dataString) {
+
+ String strymd = dataString.substring(0, 8);
+ return strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8);
+ }
+
+ public static String DateFormatTime(String dataString) {
+
+ String strhms = dataString.substring(8);
+ return strhms.substring(0, 2) + ":" + strhms.substring(2, 4) + ":" + strhms.substring(4, 6);
+ }
+
+ /**
+ * 比较两个时间 时分秒 大小
+ *
+ * @param s1
+ * @param s2
+ * @return
+ */
+ public static boolean compTime(String s1, String s2) {
+ try {
+ if (s1.indexOf(":") < 0 || s1.indexOf(":") < 0) {
+ System.out.println("格式不正确");
+ } else {
+ String[] array1 = s1.split(":");
+ int total1 = Integer.valueOf(array1[0]) * 3600 + Integer.valueOf(array1[1]) * 60;
+ String[] array2 = s2.split(":");
+ int total2 = Integer.valueOf(array2[0]) * 3600 + Integer.valueOf(array2[1]) * 60;
+ return total1 - total2 > 0 ? true : false;
+ }
+ } catch (NumberFormatException e) {
+ // TODO Auto-generated catch block
+ return false;
+ }
+ return false;
+
+ }
+}
diff --git a/src/main/java/com/casic/util/HttpClientUtils.java b/src/main/java/com/casic/util/HttpClientUtils.java
new file mode 100644
index 0000000..91a631e
--- /dev/null
+++ b/src/main/java/com/casic/util/HttpClientUtils.java
@@ -0,0 +1,40 @@
+package com.casic.util;
+
+
+import com.alibaba.fastjson.JSONObject;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpStatus;
+import org.apache.commons.httpclient.methods.PostMethod;
+
+import java.io.IOException;
+
+public class HttpClientUtils {
+
+
+
+ public static String post(String url, String body, JSONObject header) {
+ HttpClient client = new HttpClient();
+ client.setTimeout(30000);
+ PostMethod method = new PostMethod(url);
+ // for (Map.Entry entry : headers.entrySet()) {
+ method.addRequestHeader("Content-type", "application/json; charset=utf-8");
+ method.addRequestHeader("Accept", "application/json");
+ method.addRequestHeader("X-APP-KEY", header.getString("X-APP-KEY"));
+ method.setRequestBody(body);
+ try {
+ int statusCode = client.executeMethod(method);
+ if (statusCode == HttpStatus.SC_OK) {
+ return new String(method.getResponseBody(), "UTF-8");
+ }
+
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+}
diff --git a/src/main/java/com/casic/util/SendUtil.java b/src/main/java/com/casic/util/SendUtil.java
new file mode 100644
index 0000000..2d73db1
--- /dev/null
+++ b/src/main/java/com/casic/util/SendUtil.java
@@ -0,0 +1,67 @@
+package com.casic.util;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.casic.entity.Device;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+@Slf4j
+@Component
+public class SendUtil {
+ @Value("${casic.synchronizeSms.enabled}")
+ private String enabled;
+ @Value("${casic.smsSenderURL}")
+ private String smsSenderUrl;
+ @Value("${casic.X-APP-KEY-SMS}")
+ private String smsAppKey;
+
+ public void sendEventBySms(Device device, JSONObject eventObj) {
+ if ("true".equals(enabled)) {
+// String smsSenderUrl = Configure.getProperty("smsSenderURL", "http://general.bushub.rj.prd/sms/user/send");
+// String smsAppKey = Configure.getProperty("X-APP-KEY-SMS", "2d3a8e35-0533-42a0-97a2-63f82a3216f9");
+ String sim = device.getSimid();
+ if (null == sim || StringUtils.isBlank(sim)) {
+ return;
+ }
+
+ if (null == smsAppKey || StringUtils.isBlank(smsAppKey)) {
+ return;
+ }
+
+ JSONObject header = new JSONObject();
+ header.put("X-APP-KEY", smsAppKey);
+
+ StringBuilder params = new StringBuilder();
+ params.append("{");
+ params.append("\"mobile\":");
+ params.append("\"").append(sim).append("\"").append(",");
+
+ String prefix = "【智慧蓉江】";
+ String eventTm = DateUtils.sdf4.format(new Date());
+ String devName = device.getDevName();
+ String place = device.getFactory();
+
+ StringBuilder content = new StringBuilder("");
+ content.append(prefix);
+ content.append(eventTm).append(",");
+ content.append("管网监测设备[").append(devName).append("],");
+ content.append("发生").append(eventObj.getString("type")).append(",");
+ if (eventObj.containsKey("value") == true) {
+ content.append(eventObj.getString("value")).append(",");
+ }
+ content.append("详细地址是:").append(place).append(",");
+ content.append("请关注并及时处理。");
+
+ params.append("\"content\":");
+ params.append("\"").append(content.toString()).append("\"");
+ params.append("}");
+
+ String resp = HttpClientUtils.post(smsSenderUrl, params.toString(), header);
+ log.info("已发送短信"+resp);
+ }
+ }
+}
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 4807974..d47010a 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -1,12 +1,12 @@
server:
- port: 5907
+ port: 5001
################### spring配置 ###################
spring:
datasource:
- driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://111.198.10.15:11102/smartwell_gdt?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=GMT%2B8&&allowMultiQueries=true&&useSSL=true
- username: root
- password: Casic203!
+ driverClassName: oracle.jdbc.driver.OracleDriver
+ url: jdbc:oracle:thin:@11.100.6.183:1521:orcl
+ username: gzsg
+ password: gzsg
session:
store-type: redis
redis:
@@ -19,8 +19,15 @@
# session:
#flowable数据源和多数据源配置
logging:
- level.root: error
- level.com.casic: error
+ level.root: info
+ level.com.casic: debug
+ level.org.springframework.web: info
file:
path: logs/
- name: missiles.log
\ No newline at end of file
+ name: missiles.log
+#短信推送
+casic:
+ synchronizeSms.enabled: true
+ smsSenderURL: http://general.bushub.rj.prd/sms/user/send
+ X-APP-KEY-SMS: 2d3a8e35-0533-42a0-97a2-63f82a3216f9
+ sms-prefix: 【智慧蓉江】
\ No newline at end of file
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 4038629..21ecda8 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -24,6 +24,9 @@
casic:
device:
gas-dector:
- type: 10
+ type: 30
minutes: 60
- enable-local: false
\ No newline at end of file
+ enable-local: false
+ data-day: 1 # 时间多少的为离线
+ online:
+ cron: 0 0/1 * * * ? # 多长时间判断离线
\ No newline at end of file
diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..c0c7ac9
--- /dev/null
+++ b/src/main/resources/logback-spring.xml
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ ${CONSOLE_LOG_PATTERN}
+ utf-8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${CONSOLE_LOG_PATTERN}
+ utf-8
+
+
+
+
+
+
+
+ ${LOG_PATH}/missiles_error.log
+
+
+
+
+
+ ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log
+
+
+
+ 10MB
+
+
+
+
+ true
+
+
+
+ ${FILE_LOG_PATTERN}
+ utf-8
+
+
+
+
+ error
+ ACCEPT
+ DENY
+
+
+
+
+
+
+
+ ${LOG_PATH}/missiles_total.log
+
+
+
+
+
+ ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log
+
+
+
+ 10MB
+
+
+
+
+ true
+
+
+
+ ${FILE_LOG_PATTERN}
+ utf-8
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/src/main/java/com/casic/dao/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index fde1818..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -1,36 +1,24 @@
package com.casic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmRecords;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.Device;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
@Mapper
-public interface AlarmRecordsMapper extends BaseMapper {
+public interface AlarmRecordsMapper extends BaseMapper {
+ @Select("SELECT DBID " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Long getDevcode(@Param("devcode") String devcode);
- @Select("SELECT JOB_ID AS \"jobId\"\n " +
- "FROM alarm_records\n " +
- "WHERE DEVCODE = #{devcode}\n " +
- "AND ALARM_CONTENT = #{MsgContent}\n " +
- "AND STATUS='1'\n " +
- "AND JOB_ID>0 ")
- String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='0'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND ALARM_CONTENT = #{MsgContent}\n" +
- " AND STATUS='1'")
- Integer updateOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='3'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND STATUS='1'")
- Integer clearAlarm(@Param("devcode") String devcode);
-
+ @Select("SELECT DBID as id, DEVCODE as devCode, DEVNAME as devName, FACTORY as factory, SIMID as simid " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Device getDevice(@Param("devcode") String devcode);
}
diff --git a/src/main/java/com/casic/dao/ButaneDataMapper.java b/src/main/java/com/casic/dao/ButaneDataMapper.java
new file mode 100644
index 0000000..632c7d2
--- /dev/null
+++ b/src/main/java/com/casic/dao/ButaneDataMapper.java
@@ -0,0 +1,12 @@
+package com.casic.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.entity.ButaneData;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface ButaneDataMapper extends BaseMapper {
+
+
+}
diff --git a/src/main/java/com/casic/dao/DataGasMapper.java b/src/main/java/com/casic/dao/DataGasMapper.java
deleted file mode 100644
index 8a064f2..0000000
--- a/src/main/java/com/casic/dao/DataGasMapper.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.DataGasDector;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-
-import java.util.List;
-import java.util.Map;
-
-@Mapper
-public interface DataGasMapper extends BaseMapper {
-
- @Select("SELECT level,high_value " +
- "FROM alarm_level " +
- "WHERE device_type=#{deviceType} ")
- List> getAlarmLevelList(@Param("deviceType") Long deviceType);
-
- @Select("SELECT devcode " +
- "FROM data_gas_dector " +
- "WHERE devcode=#{devcode} " +
- "AND (EXTRACT(epoch FROM CAST(now() AS TIMESTAMPTZ))-EXTRACT(epoch FROM CAST(logtime AS TIMESTAMPTZ)))/60.0 < ${minutes} "+
- "ORDER BY logtime DESC " +
- "LIMIT 1")
- String getLastData(@Param("minutes") String minutes,
- @Param("devcode") String devcode);
-
- @Select("SELECT alarm_content " +
- "FROM base_alarm_content_type " +
- "WHERE device_type=#{deviceType}")
- String getGasMsgContent(@Param("deviceType")Long deviceType);
-
-
-}
diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java
new file mode 100644
index 0000000..e9456c1
--- /dev/null
+++ b/src/main/java/com/casic/dao/DeviceDataMapper.java
@@ -0,0 +1,18 @@
+package com.casic.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface DeviceDataMapper {
+
+ List> getDevcodeByType(@Param("devciceType") Integer devciceType);
+
+ List getRecentData(@Param("dataDay") Integer dataDay);
+
+ int updateOnlineByDevs(@Param("dataSortList") List dataSortDevcodeList);
+
+}
diff --git a/src/main/java/com/casic/dao/DeviceMapper.java b/src/main/java/com/casic/dao/DeviceMapper.java
deleted file mode 100644
index 73b574e..0000000
--- a/src/main/java/com/casic/dao/DeviceMapper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.Device;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Map;
-
-@Mapper
-public interface DeviceMapper extends BaseMapper {
-
- Map getWellCode(@Param("devcode") String devcode);
-
-}
diff --git a/src/main/java/com/casic/dao/impl/AlarmJobDao.java b/src/main/java/com/casic/dao/impl/AlarmJobDao.java
deleted file mode 100644
index 5131821..0000000
--- a/src/main/java/com/casic/dao/impl/AlarmJobDao.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.casic.dao.impl;
-
-import com.alibaba.druid.util.StringUtils;
-import com.casic.dao.AlarmJobMapper;
-import com.casic.entity.AlarmJob;
-import org.springframework.stereotype.Component;
-import xyz.downgoon.snowflake.Snowflake;
-
-import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-@Component
-public class AlarmJobDao {
-
- private static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMdd");
-
- private static Snowflake snowflake = new Snowflake(0, 2);
-// private static final Sn
-
- @Resource
- private AlarmJobMapper alarmJobMapper;
-
- public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) {
- AlarmJob alarmJob = new AlarmJob();
- alarmJob.setId(snowflake.nextId());
- alarmJob.setDevcode(devCode);
- alarmJob.setWellCode(wellCode);
- alarmJob.setJobStatus("0");
- alarmJob.setCreateTime(new Date());
- alarmJob.setJobcode(this.produceJobCode(devTypeName));
- alarmJob.setJobType(jobType);
- alarmJobMapper.insert(alarmJob);
- return alarmJob;
- }
-
- /**
- * 前缀+日期+4位流水号
- *
- * @param devTypeName
- * @return
- */
- private String produceJobCode(String devTypeName) {
- String pre = devTypeName;
- String dataStr = sdf6.format(new Date());
- String fix = this.getJobCodeMaxSerial(pre + dataStr);
- return StringUtils.isEmpty(fix) ? pre + dataStr + String.format("%04d", Long.valueOf(StringUtils.isEmpty(fix)?"0":fix) + 1L) : pre + dataStr + "0001";
- }
-
-
- private String getJobCodeMaxSerial(String jobcode) {
- String MaxSerialJobCode = alarmJobMapper.getJobCodeMaxSerial(jobcode);
- String fix = "";
- if (null != MaxSerialJobCode && MaxSerialJobCode.length() > 4) {
- fix = MaxSerialJobCode.substring(MaxSerialJobCode.length() - 4);
- }
- return fix;
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmJob.java b/src/main/java/com/casic/entity/AlarmJob.java
deleted file mode 100644
index 8a0f764..0000000
--- a/src/main/java/com/casic/entity/AlarmJob.java
+++ /dev/null
@@ -1,165 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- *
- * 报警工单表
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_job")
-public class AlarmJob extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- private Long id;
- /**
- * 工单编号
- */
- @TableField("JOBCODE")
- private String jobcode;
- /**
- * 工单类型
- */
- @TableField("JOG_TYPE")
- private String jobType;
- /**
- * 井编号
- */
- @TableField("WELL_CODE")
- private String wellCode;
- /**
- * 设备编号
- */
- @TableField("DEVCODE")
- private String devcode;
- /**
- * 工单创建时间
- */
- @TableField("CREATE_TIME")
- private Date createTime;
- /**
- * 工单状态(0待处理,1待确认,2处理中,3完成)
- */
- @TableField("JOB_STATUS")
- private String jobStatus;
- /**
- * 接单人员
- */
- @TableField("GET_JOB_PERSON")
- private Long getJobPerson;
- /**
- * 接单时间
- */
- @TableField("GET_JOB_TIME")
- private Date getJobTime;
- /**
- * 应接单时间
- */
- @TableField("SHOULD_GET_TIME")
- private Date shouldGetTime;
- /**
- * 第一现场情况
- */
- @TableField("FIRST_STATE")
- private String firstState;
- /**
- * 第一现场照片
- */
- @TableField("FIRST_STATE_PHOTOS")
- private String firstStatePhotos;
- /**
- * 确认人员
- */
- @TableField("CONFIRM_JOB_PERSON")
- private Long confirmJobPerson;
- /**
- * 确认时间
- */
- @TableField("CONFRIM_JOB_TIME")
- private Date confrimJobTime;
- /**
- * 处理人员
- */
- @TableField("HANDLE_JOB_Person")
- private Long handleJobPerson;
- /**
- * 处理时间
- */
- @TableField("HANDLE_JOB_TIME")
- private Date handleJobTime;
- /**
- * 维护情况记录
- */
- @TableField("HANDLE_MESSAGE")
- private String handleMessage;
- /**
- * 维护图片
- */
- @TableField("HANDLE_PHOTOS")
- private String handlePhotos;
- /**
- * 工单流转记录
- */
- @TableField("FLOW")
- private String flow;
-
- @TableField("JOB_BELONG_TO")
- private Long jobBelongTo;
-
- @TableField("JOB_FLAG_DELAY")
- private String jobFlagDelay;
-
- @TableField("JOB_FLAG_1")
- private String jobFlag1;
-
- @TableField(exist = false)
- private String alarmValue;
-
- @TableField(exist = false)
- private String alarmContentName;
-
- @TableField(exist = false)
- private Integer recordId;
-
- @Override
- public String toString() {
- return "AlarmJob{" +
- "id=" + id +
- ", jobcode=" + jobcode +
- ", jogType=" + jobType +
- ", wellCode=" + wellCode +
- ", devcode=" + devcode +
- ", createTime=" + createTime +
- ", jobStatus=" + jobStatus +
- ", getJobPerson=" + getJobPerson +
- ", getJobTime=" + getJobTime +
- ", firstState=" + firstState +
- ", firstStatePhotos=" + firstStatePhotos +
- ", confirmJobPerson=" + confirmJobPerson +
- ", confrimJobTime=" + confrimJobTime +
- ", handleJobPerson=" + handleJobPerson +
- ", handleJobTime=" + handleJobTime +
- ", handleMessage=" + handleMessage +
- ", handlePhotos=" + handlePhotos +
- ", flow=" + flow +
- ", recordId=" + recordId +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmRecord.java b/src/main/java/com/casic/entity/AlarmRecord.java
new file mode 100644
index 0000000..137d805
--- /dev/null
+++ b/src/main/java/com/casic/entity/AlarmRecord.java
@@ -0,0 +1,106 @@
+package com.casic.entity;
+
+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 com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *
+ *
+ *
+ *
+ * @author casic123
+ * @since 2019-05-17
+ */
+@Data
+@TableName("ALARM_ALARM_RECORD")
+public class AlarmRecord extends Model {
+
+
+ private static final long serialVersionUID = 1L;
+ /**
+ * 主键
+ */
+ @TableId(value = "DBID")
+ private Long dbid;
+ /**
+ * 设备编号
+ */
+ @TableField("DEVICE_CODE")
+ private String deviceCode;
+ /**
+ * 设备类型名称
+ */
+ @TableField("DEVICE_TYPE_NAME")
+ private String deviceTypeName;
+ /**
+ * 是否推送,默认0
+ */
+ @TableField("ISSEND")
+ private String issend;
+ /**
+ * 默认default
+ */
+ @TableField("ITEMNAME")
+ private String itemname;
+ /**
+ * 没有数值
+ */
+ @TableField("ITEMVALUE")
+ private String itemvalue;
+ /**
+ * 1
+ */
+ @TableField("MESSAGE")
+ private String message;
+ /**
+ * 0
+ */
+ @TableField("MESSAGE_STATUS")
+ private String messageStatus;
+
+
+ /**
+ * 0
+ */
+ @TableField("RECORDCODE")
+ private String recordcode;
+ /**
+ * 告警日期
+ */
+ @TableField("RECORDDATE")
+ private Date recorddate;
+ /**
+ * 工单编号
+ */
+ @TableField("DEVICE_ID")
+ private Long deviceId;
+
+ /**
+ * 删除标志,默认为1
+ */
+ private Integer active;
+
+ @Override
+ public String toString() {
+ return "AlarmRecord{" +
+ "dbid=" + dbid +
+ ", deviceCode='" + deviceCode + '\'' +
+ ", deviceTypeName='" + deviceTypeName + '\'' +
+ ", issend='" + issend + '\'' +
+ ", itemname='" + itemname + '\'' +
+ ", itemvalue='" + itemvalue + '\'' +
+ ", message='" + message + '\'' +
+ ", messageStatus='" + messageStatus + '\'' +
+ ", recordcode='" + recordcode + '\'' +
+ ", recorddate=" + recorddate +
+ ", deviceId=" + deviceId +
+ ", active=" + active +
+ '}';
+ }
+}
diff --git a/src/main/java/com/casic/entity/AlarmRecords.java b/src/main/java/com/casic/entity/AlarmRecords.java
deleted file mode 100644
index 88b0b26..0000000
--- a/src/main/java/com/casic/entity/AlarmRecords.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- *
- *
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_records")
-public class AlarmRecords extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- 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;
-
- @Override
- public String toString() {
- return "AlarmRecords{" +
- "id=" + id +
- ", deviceId=" + deviceId +
- ", devcode=" + devcode +
- ", wellCode=" + wellCode +
- ", alarmType=" + alarmType +
- ", alarmContent=" + alarmContent +
- ", alarmValue=" + alarmValue +
- ", alarmLevel=" + alarmLevel +
- ", alarmMessage=" + alarmMessage +
- ", alarmTime=" + alarmTime +
- ", status=" + status +
- ", jobId=" + jobId +
- ", jobStatus=" + jobStatus +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/ButaneData.java b/src/main/java/com/casic/entity/ButaneData.java
new file mode 100644
index 0000000..2e051be
--- /dev/null
+++ b/src/main/java/com/casic/entity/ButaneData.java
@@ -0,0 +1,28 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Builder;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@TableName("CASIC_BUTANE_INFO")
+@Builder
+public class ButaneData extends Model {
+
+ @TableId(value = "DBID")
+ private Long dbid;
+
+ private String devcode;
+
+ private String status;
+
+ private String descn;
+
+ private Date logtime;
+
+}
diff --git a/src/main/java/com/casic/entity/Device.java b/src/main/java/com/casic/entity/Device.java
new file mode 100644
index 0000000..0360e41
--- /dev/null
+++ b/src/main/java/com/casic/entity/Device.java
@@ -0,0 +1,27 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@TableName("ALARM_DEVICE")
+public class Device implements Serializable {
+ /**
+ * 设备基本信息表
+ */
+ private static final long serialVersionUID = -2023118078562324658L;
+ @TableId(value = "DBID")
+ private Long id;
+ @TableId(value = "DEVCODE")
+ private String devCode;
+ @TableId(value = "DEVNAME")
+ private String devName;
+ @TableId(value = "FACTORY")
+ private String factory;
+ @TableId(value = "SIMID")
+ private String simid; // SIM卡号
+
+}
diff --git a/src/main/java/com/casic/model/HostData.java b/src/main/java/com/casic/model/HostData.java
new file mode 100644
index 0000000..40cefa7
--- /dev/null
+++ b/src/main/java/com/casic/model/HostData.java
@@ -0,0 +1,16 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class HostData {
+ private String model;
+ private String dev_id;
+ private String chip_id;
+ private String mfd_day;
+ private String sw_ver;
+ private String hw_ver;
+ private String duration;
+ private String d_ch_cnt;
+ private String a_ch_cnt;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReceiveDataParam.java b/src/main/java/com/casic/model/ReceiveDataParam.java
new file mode 100644
index 0000000..3a17d24
--- /dev/null
+++ b/src/main/java/com/casic/model/ReceiveDataParam.java
@@ -0,0 +1,20 @@
+package com.casic.model;
+
+import lombok.Data;
+
+import java.util.HashMap;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReceiveDataParam {
+ private String deviceType;
+ private String iotId;
+ private String requestId;
+ private Object checkFailedData;
+ private String productKey;
+ private String deviceName;
+ private HashMap items;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReportUpdataParam.java b/src/main/java/com/casic/model/ReportUpdataParam.java
new file mode 100644
index 0000000..20c2ca9
--- /dev/null
+++ b/src/main/java/com/casic/model/ReportUpdataParam.java
@@ -0,0 +1,23 @@
+package com.casic.model;
+
+import lombok.Data;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReportUpdataParam {
+ private String msg_type;
+ private String event_change;
+ private String error_val;
+ private String ch_cnt;
+ private String erro_cnt;
+ private String alarm_low_cnt;
+ private String alarm_high_cnt;
+ private String offline_cnt;
+ private String rtd_val;
+ private String adc_val;
+ private String status_val;
+ private String time;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/WirelessData.java b/src/main/java/com/casic/model/WirelessData.java
new file mode 100644
index 0000000..b062c13
--- /dev/null
+++ b/src/main/java/com/casic/model/WirelessData.java
@@ -0,0 +1,19 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class WirelessData {
+ private String model;
+ private String IMEI;
+ private String ICCID;
+ private String sw_ver;
+ private String hw_ver;
+ private String ch_cnt;
+ private String heartbeat_inv;
+ private String up_pcnt;
+ private String up_pcnt_inv;
+ private String csq;
+}
+
+
diff --git a/src/main/java/com/casic/schedule/TaskConfigurer.java b/src/main/java/com/casic/schedule/TaskConfigurer.java
new file mode 100644
index 0000000..77c5d5a
--- /dev/null
+++ b/src/main/java/com/casic/schedule/TaskConfigurer.java
@@ -0,0 +1,47 @@
+package com.casic.schedule;
+
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+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
+@Slf4j
+@RequiredArgsConstructor
+public class TaskConfigurer implements SchedulingConfigurer {
+
+ @Value("${casic.device.online.cron}")
+ private String onlineStateCron;
+
+ private final DeviceDataService deviceDataService;
+
+ @Override
+ public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
+ TriggerTask onlineStateTask = new TriggerTask(nextDayDevice(),
+ triggerContext -> {
+ return new CronTrigger(onlineStateCron).nextExecutionTime(triggerContext);
+ });
+ taskRegistrar.addTriggerTask(onlineStateTask);
+ }
+
+ private Runnable nextDayDevice() {
+ return new Runnable() {
+ @Override
+ public void run() {
+ log.info("定时查询在线离线运行了...");
+ deviceDataService.checkAndUpdateDeviceOnline();
+ }
+ };
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/service/AlarmRecordFly.java b/src/main/java/com/casic/service/AlarmRecordFly.java
new file mode 100644
index 0000000..47c7969
--- /dev/null
+++ b/src/main/java/com/casic/service/AlarmRecordFly.java
@@ -0,0 +1,39 @@
+package com.casic.service;
+
+import com.casic.entity.AlarmRecord;
+
+public class AlarmRecordFly {
+
+ private static AlarmRecord alarmRecord;
+
+ static {
+ alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("0");
+ alarmRecord.setActive(1);
+ }
+
+ public static AlarmRecord getAlarmRecord() {
+ return alarmRecord;
+ }
+
+ public static AlarmRecord getPrototype(){
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("-1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("1");
+ alarmRecord.setActive(1);
+ return alarmRecord;
+ }
+
+
+
+
+}
diff --git a/src/main/java/com/casic/service/DeviceDataService.java b/src/main/java/com/casic/service/DeviceDataService.java
new file mode 100644
index 0000000..f972981
--- /dev/null
+++ b/src/main/java/com/casic/service/DeviceDataService.java
@@ -0,0 +1,7 @@
+package com.casic.service;
+
+public interface DeviceDataService {
+
+ void checkAndUpdateDeviceOnline();
+
+}
diff --git a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java
new file mode 100644
index 0000000..f41a44d
--- /dev/null
+++ b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java
@@ -0,0 +1,68 @@
+package com.casic.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.casic.dao.AlarmRecordsMapper;
+import com.casic.dao.DeviceDataMapper;
+import com.casic.entity.AlarmRecord;
+import com.casic.service.AlarmRecordFly;
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @author cz
+ */
+@Service
+@RequiredArgsConstructor
+public class DeviceDataServiceImpl extends ServiceImpl implements DeviceDataService {
+
+ private final DeviceDataMapper deviceDataMapper;
+
+ @Value("${casic.device.data-day}")
+ private Integer dataDay;
+
+ @Value("${casic.device.gas-dector.type}")
+ private Integer devciceType;
+
+
+ @Override
+ public void checkAndUpdateDeviceOnline() {
+ //查询硫化氢设备
+ List> devcodeList = deviceDataMapper.getDevcodeByType(devciceType);
+ //统一查询所有设备的3天内数据的设备编号,然后设备编号转成map,进行
+ List dataList = deviceDataMapper.getRecentData(dataDay);
+ List> dataSortDevcodeList = devcodeList;
+ if (dataList != null) {
+ Map devOnlineMap = new HashMap<>();
+ for (String devcodeData : dataList) {
+ devOnlineMap.put(devcodeData, "");
+ }
+ dataSortDevcodeList = dataSortDevcodeList.stream().filter(
+ e -> !devOnlineMap.containsKey((String) e.get("devcode"))).collect(Collectors.toList());
+ }
+ //批量产生离线报警
+ if (CollectionUtils.isNotEmpty(dataSortDevcodeList)) {
+ List alarmRecords = new ArrayList<>();
+ for (Map dataDevcodeMap : dataSortDevcodeList) {
+ alarmRecords.add(createAlarmRecord(((BigDecimal)dataDevcodeMap.get("id")).longValue(), (String) dataDevcodeMap.get("devcode")));
+ }
+ this.saveBatch(alarmRecords);
+ }
+ }
+
+ private AlarmRecord createAlarmRecord(Long id, String devcode) {
+ AlarmRecord alarmRecord = AlarmRecordFly.getPrototype();
+ alarmRecord.setRecorddate(new Date());
+ alarmRecord.setDbid(null);
+ alarmRecord.setDeviceCode(devcode);
+ alarmRecord.setDeviceId(id);
+ return alarmRecord;
+ }
+
+}
diff --git a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
index 4591d50..176b389 100644
--- a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
@@ -1,53 +1,41 @@
package com.casic.service.impl;
-import com.alibaba.druid.util.StringUtils;
-import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.casic.dao.AlarmRecordsMapper;
-import com.casic.dao.DataGasMapper;
-import com.casic.dao.DeviceMapper;
-import com.casic.dao.impl.AlarmJobDao;
-import com.casic.entity.AlarmJob;
-import com.casic.entity.AlarmRecords;
-import com.casic.entity.DataGasDector;
+import com.casic.dao.ButaneDataMapper;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.ButaneData;
import com.casic.entity.Device;
import com.casic.model.ResponseData;
+import com.casic.service.AlarmRecordFly;
import com.casic.service.DeviceService;
+import com.casic.util.SendUtil;
+import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import xyz.downgoon.snowflake.Snowflake;
-import javax.annotation.Resource;
import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import java.util.function.Supplier;
@Slf4j
@Service
+@RequiredArgsConstructor
public class DeviceServiceImpl implements DeviceService {
-
- @Value("${casic.device.gas-dector.enable-local}")
- private Boolean enableLocal;
- @Value("${casic.device.gas-dector.type}")
- private Long deviceType;
- @Resource
- private DataGasMapper dataGasMapper;
- @Resource
- private AlarmRecordsMapper alarmRecordsMapper;
- @Resource
- private DeviceMapper deviceMapper;
- @Autowired
- private AlarmJobDao alarmJobDao;
+ private final ButaneDataMapper butaneDataMapper;
+ private final AlarmRecordsMapper alarmRecordsMapper;
private static Snowflake snowflake = new Snowflake(0, 2);
+ @Autowired
+ private SendUtil sendUtil;
@Override
public ResponseData testMysql() {
+
ResponseData responseData = new ResponseData();
responseData.setMessage("保存成功");
responseData.setCode(1);
@@ -62,18 +50,16 @@
public ResponseData saveDataGas(Map receiveData) {
ResponseData responseData = new ResponseData();
try {
- Map payloadData;
+ Map payloadData = receiveData;
if (receiveData.containsKey("payload")) {
payloadData = (Map) receiveData.get("payload");
- }else{
- payloadData=receiveData;
}
- this.flagSelectProcessor("eventType", payloadData, () -> gasStatusUpdate(payloadData))
- .flagSelectProcessor("gas_sample_value", payloadData, () -> dealNormalData(receiveData));
+ this.flagSelectProcessor("gas_sensor_state", payloadData, () -> gasStatusUpdate(receiveData))
+ .flagSelectProcessor("heartbeat_time", payloadData, () -> dealNormalData(receiveData));
responseData.setCode(200);
responseData.setMessage("保存成功");
} catch (Exception dex) {
- log.error("主题:广东台燃气设备存储异常,异常信息:{}", dex.getMessage());
+ log.error("主题:燃气设备存储异常,异常信息:{}", dex.getMessage());
responseData.setCode(500);
responseData.setMessage("保存异常");
}
@@ -95,99 +81,110 @@
* @return
*/
private Boolean gasStatusUpdate(Map receiveData) {
- Long lonTimetemp = Long.valueOf(receiveData.get("timestamp").toString());
- String onlindeStatus = receiveData.get("eventType").toString();
- String devcode = receiveData.get("imei").toString();
- QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("devcode", devcode);
- queryWrapper.eq("valid", 1);
- Device device = new Device();
- if (!StringUtils.isEmpty(onlindeStatus)) {
- device.setOnlineState(onlindeStatus);
- Date logTime = new Date();
- logTime.setTime(lonTimetemp);
- device.setLogtime(logTime);
- deviceMapper.update(device, queryWrapper);
- return true;
+ AlarmRecord alarmRecord = AlarmRecordFly.getAlarmRecord();
+ Map payloadData = (Map) receiveData.get("payload");
+ //判断事件类型 0正常 1低报 2高报
+ String alarmSituation = payloadData.get("gas_sensor_state").toString();
+ String devcode = receiveData.get("IMEI").toString();
+ clearOnlineData(devcode);
+ //构建数据
+ ButaneData butaneData = ButaneData.builder()
+ .devcode(devcode)
+ .dbid(snowflake.nextId())
+ .build();
+ populateTime(receiveData, butaneData, alarmRecord);
+ switch (alarmSituation) {
+ case "0":
+// butaneData.setDescn("状态正常");
+// butaneData.setStatus("0");
+ break;
+ default:
+ //第一条上来,消除报警
+ clearAlarmData(devcode);
+ //产生新的报警,消除报警
+ butaneData.setDescn("可燃气体探测器报警");
+ butaneData.setStatus("1");
+ synchronized (alarmRecord) {
+ alarmRecord.setDbid(null);
+ alarmRecord.setDeviceCode(devcode);
+ alarmRecord.setDeviceId(alarmRecordsMapper.getDevcode(devcode));
+ alarmRecordsMapper.insert(alarmRecord);
+ }
+ butaneDataMapper.insert(butaneData);
+
+ try {
+ //推送短信至第三方
+ Device device = alarmRecordsMapper.getDevice(devcode);
+ if (null == device) {
+ log.error("设备不存在,编号:" + devcode);
+ return false;
+ }
+ JSONObject eventObj = new JSONObject();
+ eventObj.put("type", "燃气报警");
+ sendUtil.sendEventBySms(device, eventObj);
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ }
}
- return false;
+ return true;
}
public Boolean dealNormalData(Map receiveData) {
String devcode = receiveData.get("IMEI").toString();
- if (!StringUtils.isEmpty(devcode)) {
- Map deviceMap = deviceMapper.getWellCode(devcode);
- //保存数据,无论是否有设备在库内
- DataGasDector dataGasDector = this.saveNormalData(receiveData, deviceMap);
- if (ObjectUtils.isEmpty(deviceMap)) {
- log.info("没有该设备编号录入" + devcode);
- if (enableLocal) {
- return true;
- }
- }
- //自动消除报警
- this.alarmRecordsMapper.clearAlarm(devcode);
- this.dataTaskJudge(deviceMap, dataGasDector);
- return true;
+ //第一条上来,清除离线
+ clearOnlineData(devcode);
+ ButaneData butaneData = ButaneData.builder()
+ .devcode(devcode)
+ .dbid(snowflake.nextId())
+ .descn("状态正常")
+ .status("0")
+ .build();
+ if (!ObjectUtils.isEmpty(receiveData) && receiveData.containsKey("timestamp")) {
+ butaneData.setLogtime(new Date(Long.valueOf(receiveData.get("timestamp").toString())));
+ } else {
+ butaneData.setLogtime(new Date());
}
+ butaneDataMapper.insert(butaneData);
return false;
}
- private DataGasDector saveNormalData(Map receiveData, Map deviceMap) {
- DataGasDector dataGasDector = new DataGasDector();
- dataGasDector.setId(snowflake.nextId());
- dataGasDector.setDevcode(receiveData.get("IMEI").toString());
- dataGasDector.setWellCode(!ObjectUtils.isEmpty(deviceMap) && deviceMap.containsKey("wellCode") ? deviceMap.get("wellCode").toString() : "");
- dataGasDector.setLogtime(new Date());
+ private void populateTime(Map receiveData, ButaneData butaneData, AlarmRecord alarmRecord) {
if (!ObjectUtils.isEmpty(receiveData) && receiveData.containsKey("timestamp")) {
- dataGasDector.setUptime(new Date(Long.valueOf(receiveData.get("timestamp").toString())));
+ Date logtime = new Date(Long.valueOf(receiveData.get("timestamp").toString()));
+ butaneData.setLogtime(logtime);
+ alarmRecord.setRecorddate(logtime);
} else {
- dataGasDector.setUptime(new Date());
+ alarmRecord.setRecorddate(new Date());
+ butaneData.setLogtime(new Date());
}
- Map gascontent = (Map)receiveData.get("payload");
- if (!ObjectUtils.isEmpty(gascontent)) {
- if (gascontent.containsKey("gas_sample_value")) {
- dataGasDector.setStrength(gascontent.get("gas_sample_value").toString());
- }
- }
- dataGasMapper.insert(dataGasDector);
- return dataGasDector;
}
- /**
- * 报警存库
- */
- private void dataTaskJudge(Map deviceMap, DataGasDector dataGasDector) {
- List> alarmLevelList = dataGasMapper.getAlarmLevelList(deviceType);
- String wellCode = dataGasDector.getWellCode();
- Long deviceId = !ObjectUtils.isEmpty(deviceMap) && deviceMap.containsKey("wellCode") ? Long.valueOf(String.valueOf(deviceMap.get("deviceId"))) : -1;
- final String gasMsgContent = dataGasMapper.getGasMsgContent(deviceType);
- for (Map alarmLevelMap : alarmLevelList) {
- if (Float.valueOf(dataGasDector.getStrength()) > Float.valueOf(String.valueOf(alarmLevelMap.get("high_value")))) {
- AlarmRecords alarmRecord = new AlarmRecords();
- alarmRecord.setId(snowflake.nextId());
- alarmRecord.setDeviceId(deviceId);
- alarmRecord.setDevcode(dataGasDector.getDevcode());
- alarmRecord.setWellCode(wellCode);
- alarmRecord.setAlarmType("1"); // 业务报警
- alarmRecord.setAlarmContent(gasMsgContent);
- alarmRecord.setAlarmValue(dataGasDector.getStrength());
- alarmRecord.setAlarmTime(new Date());
- alarmRecord.setStatus("1");
- alarmRecord.setAlarmLevel(Integer.valueOf(alarmLevelMap.get("level").toString()));
- alarmRecord.setAlarmMessage(gasMsgContent);
- String jobId = alarmRecordsMapper.isOldAlarmRecord(dataGasDector.getDevcode(), gasMsgContent);
- // 超出报警阈值 生成一条报警消息
- if (!StringUtils.isEmpty(jobId)) {
- alarmRecordsMapper.updateOldAlarmRecord(dataGasDector.getDevcode(), gasMsgContent);
- alarmRecord.setJobId(Long.valueOf(jobId));
- } else {
- AlarmJob alarmJob = alarmJobDao.saveData(dataGasDector.getStrength(), wellCode, "RQZD", "1");
- alarmRecord.setJobId(alarmJob.getId());
- }
- alarmRecordsMapper.insert(alarmRecord);
- break;
- }
+ private void clearAlarmData(String devcode) {
+ QueryWrapper queryWrapper = new QueryWrapper();
+ queryWrapper.eq("DEVICE_CODE", devcode);
+ queryWrapper.eq("ACTIVE", 1);
+ try {
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setActive(0);
+ alarmRecordsMapper.update(alarmRecord, queryWrapper);
+ } catch (Exception e) {
+ log.error("清除报警失败,设备编号为{},异常信息{}", devcode, e);
}
}
+
+ private void clearOnlineData(String devcode) {
+ QueryWrapper queryWrapper = new QueryWrapper();
+ queryWrapper.eq("DEVICE_CODE", devcode);
+ queryWrapper.eq("ACTIVE", 1);
+ queryWrapper.eq("MESSAGE_STATUS", "0");
+ queryWrapper.eq("RECORDCODE", "1");
+ try {
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setActive(0);
+ alarmRecordsMapper.update(alarmRecord, queryWrapper);
+ } catch (Exception e) {
+ log.error("清除报警失败,设备编号为{},异常信息{}", devcode, e);
+ }
+ }
+
}
diff --git a/src/main/java/com/casic/util/ConestUtil.java b/src/main/java/com/casic/util/ConestUtil.java
deleted file mode 100644
index 2a4d305..0000000
--- a/src/main/java/com/casic/util/ConestUtil.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package com.casic.util;
-
-public class ConestUtil {
-
-
-}
diff --git a/src/main/java/com/casic/util/DateUtils.java b/src/main/java/com/casic/util/DateUtils.java
new file mode 100644
index 0000000..db2ed9c
--- /dev/null
+++ b/src/main/java/com/casic/util/DateUtils.java
@@ -0,0 +1,63 @@
+package com.casic.util;
+
+import java.text.SimpleDateFormat;
+
+/**
+ * Created by Administrator on 2015/2/25.
+ */
+public class DateUtils {
+ public static SimpleDateFormat sdf_day = new SimpleDateFormat("yyyy-MM-dd");
+ public static SimpleDateFormat sdf_day_time = new SimpleDateFormat("yyyyMMddHHmmss");
+ public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ public static final SimpleDateFormat sdf5 = new SimpleDateFormat("HH:mm:ss");
+ public static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+
+
+ public static String DateFormat(String dataString) {
+
+ String strymd = dataString.substring(0, 8);
+ String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " ";
+ String strhms = dataString.substring(8);
+ String str2 = strhms.substring(0, 2) + ":" + strhms.substring(2, 4) + ":" + strhms.substring(4, 6);
+ dataString = str1 + str2;
+ return dataString;
+ }
+
+ public static String DateFormatDate(String dataString) {
+
+ String strymd = dataString.substring(0, 8);
+ return strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8);
+ }
+
+ public static String DateFormatTime(String dataString) {
+
+ String strhms = dataString.substring(8);
+ return strhms.substring(0, 2) + ":" + strhms.substring(2, 4) + ":" + strhms.substring(4, 6);
+ }
+
+ /**
+ * 比较两个时间 时分秒 大小
+ *
+ * @param s1
+ * @param s2
+ * @return
+ */
+ public static boolean compTime(String s1, String s2) {
+ try {
+ if (s1.indexOf(":") < 0 || s1.indexOf(":") < 0) {
+ System.out.println("格式不正确");
+ } else {
+ String[] array1 = s1.split(":");
+ int total1 = Integer.valueOf(array1[0]) * 3600 + Integer.valueOf(array1[1]) * 60;
+ String[] array2 = s2.split(":");
+ int total2 = Integer.valueOf(array2[0]) * 3600 + Integer.valueOf(array2[1]) * 60;
+ return total1 - total2 > 0 ? true : false;
+ }
+ } catch (NumberFormatException e) {
+ // TODO Auto-generated catch block
+ return false;
+ }
+ return false;
+
+ }
+}
diff --git a/src/main/java/com/casic/util/HttpClientUtils.java b/src/main/java/com/casic/util/HttpClientUtils.java
new file mode 100644
index 0000000..91a631e
--- /dev/null
+++ b/src/main/java/com/casic/util/HttpClientUtils.java
@@ -0,0 +1,40 @@
+package com.casic.util;
+
+
+import com.alibaba.fastjson.JSONObject;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpStatus;
+import org.apache.commons.httpclient.methods.PostMethod;
+
+import java.io.IOException;
+
+public class HttpClientUtils {
+
+
+
+ public static String post(String url, String body, JSONObject header) {
+ HttpClient client = new HttpClient();
+ client.setTimeout(30000);
+ PostMethod method = new PostMethod(url);
+ // for (Map.Entry entry : headers.entrySet()) {
+ method.addRequestHeader("Content-type", "application/json; charset=utf-8");
+ method.addRequestHeader("Accept", "application/json");
+ method.addRequestHeader("X-APP-KEY", header.getString("X-APP-KEY"));
+ method.setRequestBody(body);
+ try {
+ int statusCode = client.executeMethod(method);
+ if (statusCode == HttpStatus.SC_OK) {
+ return new String(method.getResponseBody(), "UTF-8");
+ }
+
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+}
diff --git a/src/main/java/com/casic/util/SendUtil.java b/src/main/java/com/casic/util/SendUtil.java
new file mode 100644
index 0000000..2d73db1
--- /dev/null
+++ b/src/main/java/com/casic/util/SendUtil.java
@@ -0,0 +1,67 @@
+package com.casic.util;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.casic.entity.Device;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+@Slf4j
+@Component
+public class SendUtil {
+ @Value("${casic.synchronizeSms.enabled}")
+ private String enabled;
+ @Value("${casic.smsSenderURL}")
+ private String smsSenderUrl;
+ @Value("${casic.X-APP-KEY-SMS}")
+ private String smsAppKey;
+
+ public void sendEventBySms(Device device, JSONObject eventObj) {
+ if ("true".equals(enabled)) {
+// String smsSenderUrl = Configure.getProperty("smsSenderURL", "http://general.bushub.rj.prd/sms/user/send");
+// String smsAppKey = Configure.getProperty("X-APP-KEY-SMS", "2d3a8e35-0533-42a0-97a2-63f82a3216f9");
+ String sim = device.getSimid();
+ if (null == sim || StringUtils.isBlank(sim)) {
+ return;
+ }
+
+ if (null == smsAppKey || StringUtils.isBlank(smsAppKey)) {
+ return;
+ }
+
+ JSONObject header = new JSONObject();
+ header.put("X-APP-KEY", smsAppKey);
+
+ StringBuilder params = new StringBuilder();
+ params.append("{");
+ params.append("\"mobile\":");
+ params.append("\"").append(sim).append("\"").append(",");
+
+ String prefix = "【智慧蓉江】";
+ String eventTm = DateUtils.sdf4.format(new Date());
+ String devName = device.getDevName();
+ String place = device.getFactory();
+
+ StringBuilder content = new StringBuilder("");
+ content.append(prefix);
+ content.append(eventTm).append(",");
+ content.append("管网监测设备[").append(devName).append("],");
+ content.append("发生").append(eventObj.getString("type")).append(",");
+ if (eventObj.containsKey("value") == true) {
+ content.append(eventObj.getString("value")).append(",");
+ }
+ content.append("详细地址是:").append(place).append(",");
+ content.append("请关注并及时处理。");
+
+ params.append("\"content\":");
+ params.append("\"").append(content.toString()).append("\"");
+ params.append("}");
+
+ String resp = HttpClientUtils.post(smsSenderUrl, params.toString(), header);
+ log.info("已发送短信"+resp);
+ }
+ }
+}
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 4807974..d47010a 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -1,12 +1,12 @@
server:
- port: 5907
+ port: 5001
################### spring配置 ###################
spring:
datasource:
- driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://111.198.10.15:11102/smartwell_gdt?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=GMT%2B8&&allowMultiQueries=true&&useSSL=true
- username: root
- password: Casic203!
+ driverClassName: oracle.jdbc.driver.OracleDriver
+ url: jdbc:oracle:thin:@11.100.6.183:1521:orcl
+ username: gzsg
+ password: gzsg
session:
store-type: redis
redis:
@@ -19,8 +19,15 @@
# session:
#flowable数据源和多数据源配置
logging:
- level.root: error
- level.com.casic: error
+ level.root: info
+ level.com.casic: debug
+ level.org.springframework.web: info
file:
path: logs/
- name: missiles.log
\ No newline at end of file
+ name: missiles.log
+#短信推送
+casic:
+ synchronizeSms.enabled: true
+ smsSenderURL: http://general.bushub.rj.prd/sms/user/send
+ X-APP-KEY-SMS: 2d3a8e35-0533-42a0-97a2-63f82a3216f9
+ sms-prefix: 【智慧蓉江】
\ No newline at end of file
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 4038629..21ecda8 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -24,6 +24,9 @@
casic:
device:
gas-dector:
- type: 10
+ type: 30
minutes: 60
- enable-local: false
\ No newline at end of file
+ enable-local: false
+ data-day: 1 # 时间多少的为离线
+ online:
+ cron: 0 0/1 * * * ? # 多长时间判断离线
\ No newline at end of file
diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..c0c7ac9
--- /dev/null
+++ b/src/main/resources/logback-spring.xml
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ ${CONSOLE_LOG_PATTERN}
+ utf-8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${CONSOLE_LOG_PATTERN}
+ utf-8
+
+
+
+
+
+
+
+ ${LOG_PATH}/missiles_error.log
+
+
+
+
+
+ ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log
+
+
+
+ 10MB
+
+
+
+
+ true
+
+
+
+ ${FILE_LOG_PATTERN}
+ utf-8
+
+
+
+
+ error
+ ACCEPT
+ DENY
+
+
+
+
+
+
+
+ ${LOG_PATH}/missiles_total.log
+
+
+
+
+
+ ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log
+
+
+
+ 10MB
+
+
+
+
+ true
+
+
+
+ ${FILE_LOG_PATTERN}
+ utf-8
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/mapper/DeviceDataMapper.xml b/src/main/resources/mapper/DeviceDataMapper.xml
new file mode 100644
index 0000000..4e15de9
--- /dev/null
+++ b/src/main/resources/mapper/DeviceDataMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/src/main/java/com/casic/dao/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index fde1818..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -1,36 +1,24 @@
package com.casic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmRecords;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.Device;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
@Mapper
-public interface AlarmRecordsMapper extends BaseMapper {
+public interface AlarmRecordsMapper extends BaseMapper {
+ @Select("SELECT DBID " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Long getDevcode(@Param("devcode") String devcode);
- @Select("SELECT JOB_ID AS \"jobId\"\n " +
- "FROM alarm_records\n " +
- "WHERE DEVCODE = #{devcode}\n " +
- "AND ALARM_CONTENT = #{MsgContent}\n " +
- "AND STATUS='1'\n " +
- "AND JOB_ID>0 ")
- String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='0'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND ALARM_CONTENT = #{MsgContent}\n" +
- " AND STATUS='1'")
- Integer updateOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='3'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND STATUS='1'")
- Integer clearAlarm(@Param("devcode") String devcode);
-
+ @Select("SELECT DBID as id, DEVCODE as devCode, DEVNAME as devName, FACTORY as factory, SIMID as simid " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Device getDevice(@Param("devcode") String devcode);
}
diff --git a/src/main/java/com/casic/dao/ButaneDataMapper.java b/src/main/java/com/casic/dao/ButaneDataMapper.java
new file mode 100644
index 0000000..632c7d2
--- /dev/null
+++ b/src/main/java/com/casic/dao/ButaneDataMapper.java
@@ -0,0 +1,12 @@
+package com.casic.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.entity.ButaneData;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface ButaneDataMapper extends BaseMapper {
+
+
+}
diff --git a/src/main/java/com/casic/dao/DataGasMapper.java b/src/main/java/com/casic/dao/DataGasMapper.java
deleted file mode 100644
index 8a064f2..0000000
--- a/src/main/java/com/casic/dao/DataGasMapper.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.DataGasDector;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-
-import java.util.List;
-import java.util.Map;
-
-@Mapper
-public interface DataGasMapper extends BaseMapper {
-
- @Select("SELECT level,high_value " +
- "FROM alarm_level " +
- "WHERE device_type=#{deviceType} ")
- List> getAlarmLevelList(@Param("deviceType") Long deviceType);
-
- @Select("SELECT devcode " +
- "FROM data_gas_dector " +
- "WHERE devcode=#{devcode} " +
- "AND (EXTRACT(epoch FROM CAST(now() AS TIMESTAMPTZ))-EXTRACT(epoch FROM CAST(logtime AS TIMESTAMPTZ)))/60.0 < ${minutes} "+
- "ORDER BY logtime DESC " +
- "LIMIT 1")
- String getLastData(@Param("minutes") String minutes,
- @Param("devcode") String devcode);
-
- @Select("SELECT alarm_content " +
- "FROM base_alarm_content_type " +
- "WHERE device_type=#{deviceType}")
- String getGasMsgContent(@Param("deviceType")Long deviceType);
-
-
-}
diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java
new file mode 100644
index 0000000..e9456c1
--- /dev/null
+++ b/src/main/java/com/casic/dao/DeviceDataMapper.java
@@ -0,0 +1,18 @@
+package com.casic.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface DeviceDataMapper {
+
+ List> getDevcodeByType(@Param("devciceType") Integer devciceType);
+
+ List getRecentData(@Param("dataDay") Integer dataDay);
+
+ int updateOnlineByDevs(@Param("dataSortList") List dataSortDevcodeList);
+
+}
diff --git a/src/main/java/com/casic/dao/DeviceMapper.java b/src/main/java/com/casic/dao/DeviceMapper.java
deleted file mode 100644
index 73b574e..0000000
--- a/src/main/java/com/casic/dao/DeviceMapper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.Device;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Map;
-
-@Mapper
-public interface DeviceMapper extends BaseMapper {
-
- Map getWellCode(@Param("devcode") String devcode);
-
-}
diff --git a/src/main/java/com/casic/dao/impl/AlarmJobDao.java b/src/main/java/com/casic/dao/impl/AlarmJobDao.java
deleted file mode 100644
index 5131821..0000000
--- a/src/main/java/com/casic/dao/impl/AlarmJobDao.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.casic.dao.impl;
-
-import com.alibaba.druid.util.StringUtils;
-import com.casic.dao.AlarmJobMapper;
-import com.casic.entity.AlarmJob;
-import org.springframework.stereotype.Component;
-import xyz.downgoon.snowflake.Snowflake;
-
-import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-@Component
-public class AlarmJobDao {
-
- private static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMdd");
-
- private static Snowflake snowflake = new Snowflake(0, 2);
-// private static final Sn
-
- @Resource
- private AlarmJobMapper alarmJobMapper;
-
- public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) {
- AlarmJob alarmJob = new AlarmJob();
- alarmJob.setId(snowflake.nextId());
- alarmJob.setDevcode(devCode);
- alarmJob.setWellCode(wellCode);
- alarmJob.setJobStatus("0");
- alarmJob.setCreateTime(new Date());
- alarmJob.setJobcode(this.produceJobCode(devTypeName));
- alarmJob.setJobType(jobType);
- alarmJobMapper.insert(alarmJob);
- return alarmJob;
- }
-
- /**
- * 前缀+日期+4位流水号
- *
- * @param devTypeName
- * @return
- */
- private String produceJobCode(String devTypeName) {
- String pre = devTypeName;
- String dataStr = sdf6.format(new Date());
- String fix = this.getJobCodeMaxSerial(pre + dataStr);
- return StringUtils.isEmpty(fix) ? pre + dataStr + String.format("%04d", Long.valueOf(StringUtils.isEmpty(fix)?"0":fix) + 1L) : pre + dataStr + "0001";
- }
-
-
- private String getJobCodeMaxSerial(String jobcode) {
- String MaxSerialJobCode = alarmJobMapper.getJobCodeMaxSerial(jobcode);
- String fix = "";
- if (null != MaxSerialJobCode && MaxSerialJobCode.length() > 4) {
- fix = MaxSerialJobCode.substring(MaxSerialJobCode.length() - 4);
- }
- return fix;
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmJob.java b/src/main/java/com/casic/entity/AlarmJob.java
deleted file mode 100644
index 8a0f764..0000000
--- a/src/main/java/com/casic/entity/AlarmJob.java
+++ /dev/null
@@ -1,165 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- *
- * 报警工单表
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_job")
-public class AlarmJob extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- private Long id;
- /**
- * 工单编号
- */
- @TableField("JOBCODE")
- private String jobcode;
- /**
- * 工单类型
- */
- @TableField("JOG_TYPE")
- private String jobType;
- /**
- * 井编号
- */
- @TableField("WELL_CODE")
- private String wellCode;
- /**
- * 设备编号
- */
- @TableField("DEVCODE")
- private String devcode;
- /**
- * 工单创建时间
- */
- @TableField("CREATE_TIME")
- private Date createTime;
- /**
- * 工单状态(0待处理,1待确认,2处理中,3完成)
- */
- @TableField("JOB_STATUS")
- private String jobStatus;
- /**
- * 接单人员
- */
- @TableField("GET_JOB_PERSON")
- private Long getJobPerson;
- /**
- * 接单时间
- */
- @TableField("GET_JOB_TIME")
- private Date getJobTime;
- /**
- * 应接单时间
- */
- @TableField("SHOULD_GET_TIME")
- private Date shouldGetTime;
- /**
- * 第一现场情况
- */
- @TableField("FIRST_STATE")
- private String firstState;
- /**
- * 第一现场照片
- */
- @TableField("FIRST_STATE_PHOTOS")
- private String firstStatePhotos;
- /**
- * 确认人员
- */
- @TableField("CONFIRM_JOB_PERSON")
- private Long confirmJobPerson;
- /**
- * 确认时间
- */
- @TableField("CONFRIM_JOB_TIME")
- private Date confrimJobTime;
- /**
- * 处理人员
- */
- @TableField("HANDLE_JOB_Person")
- private Long handleJobPerson;
- /**
- * 处理时间
- */
- @TableField("HANDLE_JOB_TIME")
- private Date handleJobTime;
- /**
- * 维护情况记录
- */
- @TableField("HANDLE_MESSAGE")
- private String handleMessage;
- /**
- * 维护图片
- */
- @TableField("HANDLE_PHOTOS")
- private String handlePhotos;
- /**
- * 工单流转记录
- */
- @TableField("FLOW")
- private String flow;
-
- @TableField("JOB_BELONG_TO")
- private Long jobBelongTo;
-
- @TableField("JOB_FLAG_DELAY")
- private String jobFlagDelay;
-
- @TableField("JOB_FLAG_1")
- private String jobFlag1;
-
- @TableField(exist = false)
- private String alarmValue;
-
- @TableField(exist = false)
- private String alarmContentName;
-
- @TableField(exist = false)
- private Integer recordId;
-
- @Override
- public String toString() {
- return "AlarmJob{" +
- "id=" + id +
- ", jobcode=" + jobcode +
- ", jogType=" + jobType +
- ", wellCode=" + wellCode +
- ", devcode=" + devcode +
- ", createTime=" + createTime +
- ", jobStatus=" + jobStatus +
- ", getJobPerson=" + getJobPerson +
- ", getJobTime=" + getJobTime +
- ", firstState=" + firstState +
- ", firstStatePhotos=" + firstStatePhotos +
- ", confirmJobPerson=" + confirmJobPerson +
- ", confrimJobTime=" + confrimJobTime +
- ", handleJobPerson=" + handleJobPerson +
- ", handleJobTime=" + handleJobTime +
- ", handleMessage=" + handleMessage +
- ", handlePhotos=" + handlePhotos +
- ", flow=" + flow +
- ", recordId=" + recordId +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmRecord.java b/src/main/java/com/casic/entity/AlarmRecord.java
new file mode 100644
index 0000000..137d805
--- /dev/null
+++ b/src/main/java/com/casic/entity/AlarmRecord.java
@@ -0,0 +1,106 @@
+package com.casic.entity;
+
+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 com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *
+ *
+ *
+ *
+ * @author casic123
+ * @since 2019-05-17
+ */
+@Data
+@TableName("ALARM_ALARM_RECORD")
+public class AlarmRecord extends Model {
+
+
+ private static final long serialVersionUID = 1L;
+ /**
+ * 主键
+ */
+ @TableId(value = "DBID")
+ private Long dbid;
+ /**
+ * 设备编号
+ */
+ @TableField("DEVICE_CODE")
+ private String deviceCode;
+ /**
+ * 设备类型名称
+ */
+ @TableField("DEVICE_TYPE_NAME")
+ private String deviceTypeName;
+ /**
+ * 是否推送,默认0
+ */
+ @TableField("ISSEND")
+ private String issend;
+ /**
+ * 默认default
+ */
+ @TableField("ITEMNAME")
+ private String itemname;
+ /**
+ * 没有数值
+ */
+ @TableField("ITEMVALUE")
+ private String itemvalue;
+ /**
+ * 1
+ */
+ @TableField("MESSAGE")
+ private String message;
+ /**
+ * 0
+ */
+ @TableField("MESSAGE_STATUS")
+ private String messageStatus;
+
+
+ /**
+ * 0
+ */
+ @TableField("RECORDCODE")
+ private String recordcode;
+ /**
+ * 告警日期
+ */
+ @TableField("RECORDDATE")
+ private Date recorddate;
+ /**
+ * 工单编号
+ */
+ @TableField("DEVICE_ID")
+ private Long deviceId;
+
+ /**
+ * 删除标志,默认为1
+ */
+ private Integer active;
+
+ @Override
+ public String toString() {
+ return "AlarmRecord{" +
+ "dbid=" + dbid +
+ ", deviceCode='" + deviceCode + '\'' +
+ ", deviceTypeName='" + deviceTypeName + '\'' +
+ ", issend='" + issend + '\'' +
+ ", itemname='" + itemname + '\'' +
+ ", itemvalue='" + itemvalue + '\'' +
+ ", message='" + message + '\'' +
+ ", messageStatus='" + messageStatus + '\'' +
+ ", recordcode='" + recordcode + '\'' +
+ ", recorddate=" + recorddate +
+ ", deviceId=" + deviceId +
+ ", active=" + active +
+ '}';
+ }
+}
diff --git a/src/main/java/com/casic/entity/AlarmRecords.java b/src/main/java/com/casic/entity/AlarmRecords.java
deleted file mode 100644
index 88b0b26..0000000
--- a/src/main/java/com/casic/entity/AlarmRecords.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- *
- *
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_records")
-public class AlarmRecords extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- 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;
-
- @Override
- public String toString() {
- return "AlarmRecords{" +
- "id=" + id +
- ", deviceId=" + deviceId +
- ", devcode=" + devcode +
- ", wellCode=" + wellCode +
- ", alarmType=" + alarmType +
- ", alarmContent=" + alarmContent +
- ", alarmValue=" + alarmValue +
- ", alarmLevel=" + alarmLevel +
- ", alarmMessage=" + alarmMessage +
- ", alarmTime=" + alarmTime +
- ", status=" + status +
- ", jobId=" + jobId +
- ", jobStatus=" + jobStatus +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/ButaneData.java b/src/main/java/com/casic/entity/ButaneData.java
new file mode 100644
index 0000000..2e051be
--- /dev/null
+++ b/src/main/java/com/casic/entity/ButaneData.java
@@ -0,0 +1,28 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Builder;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@TableName("CASIC_BUTANE_INFO")
+@Builder
+public class ButaneData extends Model {
+
+ @TableId(value = "DBID")
+ private Long dbid;
+
+ private String devcode;
+
+ private String status;
+
+ private String descn;
+
+ private Date logtime;
+
+}
diff --git a/src/main/java/com/casic/entity/Device.java b/src/main/java/com/casic/entity/Device.java
new file mode 100644
index 0000000..0360e41
--- /dev/null
+++ b/src/main/java/com/casic/entity/Device.java
@@ -0,0 +1,27 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@TableName("ALARM_DEVICE")
+public class Device implements Serializable {
+ /**
+ * 设备基本信息表
+ */
+ private static final long serialVersionUID = -2023118078562324658L;
+ @TableId(value = "DBID")
+ private Long id;
+ @TableId(value = "DEVCODE")
+ private String devCode;
+ @TableId(value = "DEVNAME")
+ private String devName;
+ @TableId(value = "FACTORY")
+ private String factory;
+ @TableId(value = "SIMID")
+ private String simid; // SIM卡号
+
+}
diff --git a/src/main/java/com/casic/model/HostData.java b/src/main/java/com/casic/model/HostData.java
new file mode 100644
index 0000000..40cefa7
--- /dev/null
+++ b/src/main/java/com/casic/model/HostData.java
@@ -0,0 +1,16 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class HostData {
+ private String model;
+ private String dev_id;
+ private String chip_id;
+ private String mfd_day;
+ private String sw_ver;
+ private String hw_ver;
+ private String duration;
+ private String d_ch_cnt;
+ private String a_ch_cnt;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReceiveDataParam.java b/src/main/java/com/casic/model/ReceiveDataParam.java
new file mode 100644
index 0000000..3a17d24
--- /dev/null
+++ b/src/main/java/com/casic/model/ReceiveDataParam.java
@@ -0,0 +1,20 @@
+package com.casic.model;
+
+import lombok.Data;
+
+import java.util.HashMap;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReceiveDataParam {
+ private String deviceType;
+ private String iotId;
+ private String requestId;
+ private Object checkFailedData;
+ private String productKey;
+ private String deviceName;
+ private HashMap items;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReportUpdataParam.java b/src/main/java/com/casic/model/ReportUpdataParam.java
new file mode 100644
index 0000000..20c2ca9
--- /dev/null
+++ b/src/main/java/com/casic/model/ReportUpdataParam.java
@@ -0,0 +1,23 @@
+package com.casic.model;
+
+import lombok.Data;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReportUpdataParam {
+ private String msg_type;
+ private String event_change;
+ private String error_val;
+ private String ch_cnt;
+ private String erro_cnt;
+ private String alarm_low_cnt;
+ private String alarm_high_cnt;
+ private String offline_cnt;
+ private String rtd_val;
+ private String adc_val;
+ private String status_val;
+ private String time;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/WirelessData.java b/src/main/java/com/casic/model/WirelessData.java
new file mode 100644
index 0000000..b062c13
--- /dev/null
+++ b/src/main/java/com/casic/model/WirelessData.java
@@ -0,0 +1,19 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class WirelessData {
+ private String model;
+ private String IMEI;
+ private String ICCID;
+ private String sw_ver;
+ private String hw_ver;
+ private String ch_cnt;
+ private String heartbeat_inv;
+ private String up_pcnt;
+ private String up_pcnt_inv;
+ private String csq;
+}
+
+
diff --git a/src/main/java/com/casic/schedule/TaskConfigurer.java b/src/main/java/com/casic/schedule/TaskConfigurer.java
new file mode 100644
index 0000000..77c5d5a
--- /dev/null
+++ b/src/main/java/com/casic/schedule/TaskConfigurer.java
@@ -0,0 +1,47 @@
+package com.casic.schedule;
+
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+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
+@Slf4j
+@RequiredArgsConstructor
+public class TaskConfigurer implements SchedulingConfigurer {
+
+ @Value("${casic.device.online.cron}")
+ private String onlineStateCron;
+
+ private final DeviceDataService deviceDataService;
+
+ @Override
+ public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
+ TriggerTask onlineStateTask = new TriggerTask(nextDayDevice(),
+ triggerContext -> {
+ return new CronTrigger(onlineStateCron).nextExecutionTime(triggerContext);
+ });
+ taskRegistrar.addTriggerTask(onlineStateTask);
+ }
+
+ private Runnable nextDayDevice() {
+ return new Runnable() {
+ @Override
+ public void run() {
+ log.info("定时查询在线离线运行了...");
+ deviceDataService.checkAndUpdateDeviceOnline();
+ }
+ };
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/service/AlarmRecordFly.java b/src/main/java/com/casic/service/AlarmRecordFly.java
new file mode 100644
index 0000000..47c7969
--- /dev/null
+++ b/src/main/java/com/casic/service/AlarmRecordFly.java
@@ -0,0 +1,39 @@
+package com.casic.service;
+
+import com.casic.entity.AlarmRecord;
+
+public class AlarmRecordFly {
+
+ private static AlarmRecord alarmRecord;
+
+ static {
+ alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("0");
+ alarmRecord.setActive(1);
+ }
+
+ public static AlarmRecord getAlarmRecord() {
+ return alarmRecord;
+ }
+
+ public static AlarmRecord getPrototype(){
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("-1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("1");
+ alarmRecord.setActive(1);
+ return alarmRecord;
+ }
+
+
+
+
+}
diff --git a/src/main/java/com/casic/service/DeviceDataService.java b/src/main/java/com/casic/service/DeviceDataService.java
new file mode 100644
index 0000000..f972981
--- /dev/null
+++ b/src/main/java/com/casic/service/DeviceDataService.java
@@ -0,0 +1,7 @@
+package com.casic.service;
+
+public interface DeviceDataService {
+
+ void checkAndUpdateDeviceOnline();
+
+}
diff --git a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java
new file mode 100644
index 0000000..f41a44d
--- /dev/null
+++ b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java
@@ -0,0 +1,68 @@
+package com.casic.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.casic.dao.AlarmRecordsMapper;
+import com.casic.dao.DeviceDataMapper;
+import com.casic.entity.AlarmRecord;
+import com.casic.service.AlarmRecordFly;
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @author cz
+ */
+@Service
+@RequiredArgsConstructor
+public class DeviceDataServiceImpl extends ServiceImpl implements DeviceDataService {
+
+ private final DeviceDataMapper deviceDataMapper;
+
+ @Value("${casic.device.data-day}")
+ private Integer dataDay;
+
+ @Value("${casic.device.gas-dector.type}")
+ private Integer devciceType;
+
+
+ @Override
+ public void checkAndUpdateDeviceOnline() {
+ //查询硫化氢设备
+ List> devcodeList = deviceDataMapper.getDevcodeByType(devciceType);
+ //统一查询所有设备的3天内数据的设备编号,然后设备编号转成map,进行
+ List dataList = deviceDataMapper.getRecentData(dataDay);
+ List> dataSortDevcodeList = devcodeList;
+ if (dataList != null) {
+ Map devOnlineMap = new HashMap<>();
+ for (String devcodeData : dataList) {
+ devOnlineMap.put(devcodeData, "");
+ }
+ dataSortDevcodeList = dataSortDevcodeList.stream().filter(
+ e -> !devOnlineMap.containsKey((String) e.get("devcode"))).collect(Collectors.toList());
+ }
+ //批量产生离线报警
+ if (CollectionUtils.isNotEmpty(dataSortDevcodeList)) {
+ List alarmRecords = new ArrayList<>();
+ for (Map dataDevcodeMap : dataSortDevcodeList) {
+ alarmRecords.add(createAlarmRecord(((BigDecimal)dataDevcodeMap.get("id")).longValue(), (String) dataDevcodeMap.get("devcode")));
+ }
+ this.saveBatch(alarmRecords);
+ }
+ }
+
+ private AlarmRecord createAlarmRecord(Long id, String devcode) {
+ AlarmRecord alarmRecord = AlarmRecordFly.getPrototype();
+ alarmRecord.setRecorddate(new Date());
+ alarmRecord.setDbid(null);
+ alarmRecord.setDeviceCode(devcode);
+ alarmRecord.setDeviceId(id);
+ return alarmRecord;
+ }
+
+}
diff --git a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
index 4591d50..176b389 100644
--- a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
@@ -1,53 +1,41 @@
package com.casic.service.impl;
-import com.alibaba.druid.util.StringUtils;
-import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.casic.dao.AlarmRecordsMapper;
-import com.casic.dao.DataGasMapper;
-import com.casic.dao.DeviceMapper;
-import com.casic.dao.impl.AlarmJobDao;
-import com.casic.entity.AlarmJob;
-import com.casic.entity.AlarmRecords;
-import com.casic.entity.DataGasDector;
+import com.casic.dao.ButaneDataMapper;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.ButaneData;
import com.casic.entity.Device;
import com.casic.model.ResponseData;
+import com.casic.service.AlarmRecordFly;
import com.casic.service.DeviceService;
+import com.casic.util.SendUtil;
+import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import xyz.downgoon.snowflake.Snowflake;
-import javax.annotation.Resource;
import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import java.util.function.Supplier;
@Slf4j
@Service
+@RequiredArgsConstructor
public class DeviceServiceImpl implements DeviceService {
-
- @Value("${casic.device.gas-dector.enable-local}")
- private Boolean enableLocal;
- @Value("${casic.device.gas-dector.type}")
- private Long deviceType;
- @Resource
- private DataGasMapper dataGasMapper;
- @Resource
- private AlarmRecordsMapper alarmRecordsMapper;
- @Resource
- private DeviceMapper deviceMapper;
- @Autowired
- private AlarmJobDao alarmJobDao;
+ private final ButaneDataMapper butaneDataMapper;
+ private final AlarmRecordsMapper alarmRecordsMapper;
private static Snowflake snowflake = new Snowflake(0, 2);
+ @Autowired
+ private SendUtil sendUtil;
@Override
public ResponseData testMysql() {
+
ResponseData responseData = new ResponseData();
responseData.setMessage("保存成功");
responseData.setCode(1);
@@ -62,18 +50,16 @@
public ResponseData saveDataGas(Map receiveData) {
ResponseData responseData = new ResponseData();
try {
- Map payloadData;
+ Map payloadData = receiveData;
if (receiveData.containsKey("payload")) {
payloadData = (Map) receiveData.get("payload");
- }else{
- payloadData=receiveData;
}
- this.flagSelectProcessor("eventType", payloadData, () -> gasStatusUpdate(payloadData))
- .flagSelectProcessor("gas_sample_value", payloadData, () -> dealNormalData(receiveData));
+ this.flagSelectProcessor("gas_sensor_state", payloadData, () -> gasStatusUpdate(receiveData))
+ .flagSelectProcessor("heartbeat_time", payloadData, () -> dealNormalData(receiveData));
responseData.setCode(200);
responseData.setMessage("保存成功");
} catch (Exception dex) {
- log.error("主题:广东台燃气设备存储异常,异常信息:{}", dex.getMessage());
+ log.error("主题:燃气设备存储异常,异常信息:{}", dex.getMessage());
responseData.setCode(500);
responseData.setMessage("保存异常");
}
@@ -95,99 +81,110 @@
* @return
*/
private Boolean gasStatusUpdate(Map receiveData) {
- Long lonTimetemp = Long.valueOf(receiveData.get("timestamp").toString());
- String onlindeStatus = receiveData.get("eventType").toString();
- String devcode = receiveData.get("imei").toString();
- QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("devcode", devcode);
- queryWrapper.eq("valid", 1);
- Device device = new Device();
- if (!StringUtils.isEmpty(onlindeStatus)) {
- device.setOnlineState(onlindeStatus);
- Date logTime = new Date();
- logTime.setTime(lonTimetemp);
- device.setLogtime(logTime);
- deviceMapper.update(device, queryWrapper);
- return true;
+ AlarmRecord alarmRecord = AlarmRecordFly.getAlarmRecord();
+ Map payloadData = (Map) receiveData.get("payload");
+ //判断事件类型 0正常 1低报 2高报
+ String alarmSituation = payloadData.get("gas_sensor_state").toString();
+ String devcode = receiveData.get("IMEI").toString();
+ clearOnlineData(devcode);
+ //构建数据
+ ButaneData butaneData = ButaneData.builder()
+ .devcode(devcode)
+ .dbid(snowflake.nextId())
+ .build();
+ populateTime(receiveData, butaneData, alarmRecord);
+ switch (alarmSituation) {
+ case "0":
+// butaneData.setDescn("状态正常");
+// butaneData.setStatus("0");
+ break;
+ default:
+ //第一条上来,消除报警
+ clearAlarmData(devcode);
+ //产生新的报警,消除报警
+ butaneData.setDescn("可燃气体探测器报警");
+ butaneData.setStatus("1");
+ synchronized (alarmRecord) {
+ alarmRecord.setDbid(null);
+ alarmRecord.setDeviceCode(devcode);
+ alarmRecord.setDeviceId(alarmRecordsMapper.getDevcode(devcode));
+ alarmRecordsMapper.insert(alarmRecord);
+ }
+ butaneDataMapper.insert(butaneData);
+
+ try {
+ //推送短信至第三方
+ Device device = alarmRecordsMapper.getDevice(devcode);
+ if (null == device) {
+ log.error("设备不存在,编号:" + devcode);
+ return false;
+ }
+ JSONObject eventObj = new JSONObject();
+ eventObj.put("type", "燃气报警");
+ sendUtil.sendEventBySms(device, eventObj);
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ }
}
- return false;
+ return true;
}
public Boolean dealNormalData(Map receiveData) {
String devcode = receiveData.get("IMEI").toString();
- if (!StringUtils.isEmpty(devcode)) {
- Map deviceMap = deviceMapper.getWellCode(devcode);
- //保存数据,无论是否有设备在库内
- DataGasDector dataGasDector = this.saveNormalData(receiveData, deviceMap);
- if (ObjectUtils.isEmpty(deviceMap)) {
- log.info("没有该设备编号录入" + devcode);
- if (enableLocal) {
- return true;
- }
- }
- //自动消除报警
- this.alarmRecordsMapper.clearAlarm(devcode);
- this.dataTaskJudge(deviceMap, dataGasDector);
- return true;
+ //第一条上来,清除离线
+ clearOnlineData(devcode);
+ ButaneData butaneData = ButaneData.builder()
+ .devcode(devcode)
+ .dbid(snowflake.nextId())
+ .descn("状态正常")
+ .status("0")
+ .build();
+ if (!ObjectUtils.isEmpty(receiveData) && receiveData.containsKey("timestamp")) {
+ butaneData.setLogtime(new Date(Long.valueOf(receiveData.get("timestamp").toString())));
+ } else {
+ butaneData.setLogtime(new Date());
}
+ butaneDataMapper.insert(butaneData);
return false;
}
- private DataGasDector saveNormalData(Map receiveData, Map deviceMap) {
- DataGasDector dataGasDector = new DataGasDector();
- dataGasDector.setId(snowflake.nextId());
- dataGasDector.setDevcode(receiveData.get("IMEI").toString());
- dataGasDector.setWellCode(!ObjectUtils.isEmpty(deviceMap) && deviceMap.containsKey("wellCode") ? deviceMap.get("wellCode").toString() : "");
- dataGasDector.setLogtime(new Date());
+ private void populateTime(Map receiveData, ButaneData butaneData, AlarmRecord alarmRecord) {
if (!ObjectUtils.isEmpty(receiveData) && receiveData.containsKey("timestamp")) {
- dataGasDector.setUptime(new Date(Long.valueOf(receiveData.get("timestamp").toString())));
+ Date logtime = new Date(Long.valueOf(receiveData.get("timestamp").toString()));
+ butaneData.setLogtime(logtime);
+ alarmRecord.setRecorddate(logtime);
} else {
- dataGasDector.setUptime(new Date());
+ alarmRecord.setRecorddate(new Date());
+ butaneData.setLogtime(new Date());
}
- Map gascontent = (Map)receiveData.get("payload");
- if (!ObjectUtils.isEmpty(gascontent)) {
- if (gascontent.containsKey("gas_sample_value")) {
- dataGasDector.setStrength(gascontent.get("gas_sample_value").toString());
- }
- }
- dataGasMapper.insert(dataGasDector);
- return dataGasDector;
}
- /**
- * 报警存库
- */
- private void dataTaskJudge(Map deviceMap, DataGasDector dataGasDector) {
- List> alarmLevelList = dataGasMapper.getAlarmLevelList(deviceType);
- String wellCode = dataGasDector.getWellCode();
- Long deviceId = !ObjectUtils.isEmpty(deviceMap) && deviceMap.containsKey("wellCode") ? Long.valueOf(String.valueOf(deviceMap.get("deviceId"))) : -1;
- final String gasMsgContent = dataGasMapper.getGasMsgContent(deviceType);
- for (Map alarmLevelMap : alarmLevelList) {
- if (Float.valueOf(dataGasDector.getStrength()) > Float.valueOf(String.valueOf(alarmLevelMap.get("high_value")))) {
- AlarmRecords alarmRecord = new AlarmRecords();
- alarmRecord.setId(snowflake.nextId());
- alarmRecord.setDeviceId(deviceId);
- alarmRecord.setDevcode(dataGasDector.getDevcode());
- alarmRecord.setWellCode(wellCode);
- alarmRecord.setAlarmType("1"); // 业务报警
- alarmRecord.setAlarmContent(gasMsgContent);
- alarmRecord.setAlarmValue(dataGasDector.getStrength());
- alarmRecord.setAlarmTime(new Date());
- alarmRecord.setStatus("1");
- alarmRecord.setAlarmLevel(Integer.valueOf(alarmLevelMap.get("level").toString()));
- alarmRecord.setAlarmMessage(gasMsgContent);
- String jobId = alarmRecordsMapper.isOldAlarmRecord(dataGasDector.getDevcode(), gasMsgContent);
- // 超出报警阈值 生成一条报警消息
- if (!StringUtils.isEmpty(jobId)) {
- alarmRecordsMapper.updateOldAlarmRecord(dataGasDector.getDevcode(), gasMsgContent);
- alarmRecord.setJobId(Long.valueOf(jobId));
- } else {
- AlarmJob alarmJob = alarmJobDao.saveData(dataGasDector.getStrength(), wellCode, "RQZD", "1");
- alarmRecord.setJobId(alarmJob.getId());
- }
- alarmRecordsMapper.insert(alarmRecord);
- break;
- }
+ private void clearAlarmData(String devcode) {
+ QueryWrapper queryWrapper = new QueryWrapper();
+ queryWrapper.eq("DEVICE_CODE", devcode);
+ queryWrapper.eq("ACTIVE", 1);
+ try {
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setActive(0);
+ alarmRecordsMapper.update(alarmRecord, queryWrapper);
+ } catch (Exception e) {
+ log.error("清除报警失败,设备编号为{},异常信息{}", devcode, e);
}
}
+
+ private void clearOnlineData(String devcode) {
+ QueryWrapper queryWrapper = new QueryWrapper();
+ queryWrapper.eq("DEVICE_CODE", devcode);
+ queryWrapper.eq("ACTIVE", 1);
+ queryWrapper.eq("MESSAGE_STATUS", "0");
+ queryWrapper.eq("RECORDCODE", "1");
+ try {
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setActive(0);
+ alarmRecordsMapper.update(alarmRecord, queryWrapper);
+ } catch (Exception e) {
+ log.error("清除报警失败,设备编号为{},异常信息{}", devcode, e);
+ }
+ }
+
}
diff --git a/src/main/java/com/casic/util/ConestUtil.java b/src/main/java/com/casic/util/ConestUtil.java
deleted file mode 100644
index 2a4d305..0000000
--- a/src/main/java/com/casic/util/ConestUtil.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package com.casic.util;
-
-public class ConestUtil {
-
-
-}
diff --git a/src/main/java/com/casic/util/DateUtils.java b/src/main/java/com/casic/util/DateUtils.java
new file mode 100644
index 0000000..db2ed9c
--- /dev/null
+++ b/src/main/java/com/casic/util/DateUtils.java
@@ -0,0 +1,63 @@
+package com.casic.util;
+
+import java.text.SimpleDateFormat;
+
+/**
+ * Created by Administrator on 2015/2/25.
+ */
+public class DateUtils {
+ public static SimpleDateFormat sdf_day = new SimpleDateFormat("yyyy-MM-dd");
+ public static SimpleDateFormat sdf_day_time = new SimpleDateFormat("yyyyMMddHHmmss");
+ public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ public static final SimpleDateFormat sdf5 = new SimpleDateFormat("HH:mm:ss");
+ public static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+
+
+ public static String DateFormat(String dataString) {
+
+ String strymd = dataString.substring(0, 8);
+ String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " ";
+ String strhms = dataString.substring(8);
+ String str2 = strhms.substring(0, 2) + ":" + strhms.substring(2, 4) + ":" + strhms.substring(4, 6);
+ dataString = str1 + str2;
+ return dataString;
+ }
+
+ public static String DateFormatDate(String dataString) {
+
+ String strymd = dataString.substring(0, 8);
+ return strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8);
+ }
+
+ public static String DateFormatTime(String dataString) {
+
+ String strhms = dataString.substring(8);
+ return strhms.substring(0, 2) + ":" + strhms.substring(2, 4) + ":" + strhms.substring(4, 6);
+ }
+
+ /**
+ * 比较两个时间 时分秒 大小
+ *
+ * @param s1
+ * @param s2
+ * @return
+ */
+ public static boolean compTime(String s1, String s2) {
+ try {
+ if (s1.indexOf(":") < 0 || s1.indexOf(":") < 0) {
+ System.out.println("格式不正确");
+ } else {
+ String[] array1 = s1.split(":");
+ int total1 = Integer.valueOf(array1[0]) * 3600 + Integer.valueOf(array1[1]) * 60;
+ String[] array2 = s2.split(":");
+ int total2 = Integer.valueOf(array2[0]) * 3600 + Integer.valueOf(array2[1]) * 60;
+ return total1 - total2 > 0 ? true : false;
+ }
+ } catch (NumberFormatException e) {
+ // TODO Auto-generated catch block
+ return false;
+ }
+ return false;
+
+ }
+}
diff --git a/src/main/java/com/casic/util/HttpClientUtils.java b/src/main/java/com/casic/util/HttpClientUtils.java
new file mode 100644
index 0000000..91a631e
--- /dev/null
+++ b/src/main/java/com/casic/util/HttpClientUtils.java
@@ -0,0 +1,40 @@
+package com.casic.util;
+
+
+import com.alibaba.fastjson.JSONObject;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpStatus;
+import org.apache.commons.httpclient.methods.PostMethod;
+
+import java.io.IOException;
+
+public class HttpClientUtils {
+
+
+
+ public static String post(String url, String body, JSONObject header) {
+ HttpClient client = new HttpClient();
+ client.setTimeout(30000);
+ PostMethod method = new PostMethod(url);
+ // for (Map.Entry entry : headers.entrySet()) {
+ method.addRequestHeader("Content-type", "application/json; charset=utf-8");
+ method.addRequestHeader("Accept", "application/json");
+ method.addRequestHeader("X-APP-KEY", header.getString("X-APP-KEY"));
+ method.setRequestBody(body);
+ try {
+ int statusCode = client.executeMethod(method);
+ if (statusCode == HttpStatus.SC_OK) {
+ return new String(method.getResponseBody(), "UTF-8");
+ }
+
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+}
diff --git a/src/main/java/com/casic/util/SendUtil.java b/src/main/java/com/casic/util/SendUtil.java
new file mode 100644
index 0000000..2d73db1
--- /dev/null
+++ b/src/main/java/com/casic/util/SendUtil.java
@@ -0,0 +1,67 @@
+package com.casic.util;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.casic.entity.Device;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+@Slf4j
+@Component
+public class SendUtil {
+ @Value("${casic.synchronizeSms.enabled}")
+ private String enabled;
+ @Value("${casic.smsSenderURL}")
+ private String smsSenderUrl;
+ @Value("${casic.X-APP-KEY-SMS}")
+ private String smsAppKey;
+
+ public void sendEventBySms(Device device, JSONObject eventObj) {
+ if ("true".equals(enabled)) {
+// String smsSenderUrl = Configure.getProperty("smsSenderURL", "http://general.bushub.rj.prd/sms/user/send");
+// String smsAppKey = Configure.getProperty("X-APP-KEY-SMS", "2d3a8e35-0533-42a0-97a2-63f82a3216f9");
+ String sim = device.getSimid();
+ if (null == sim || StringUtils.isBlank(sim)) {
+ return;
+ }
+
+ if (null == smsAppKey || StringUtils.isBlank(smsAppKey)) {
+ return;
+ }
+
+ JSONObject header = new JSONObject();
+ header.put("X-APP-KEY", smsAppKey);
+
+ StringBuilder params = new StringBuilder();
+ params.append("{");
+ params.append("\"mobile\":");
+ params.append("\"").append(sim).append("\"").append(",");
+
+ String prefix = "【智慧蓉江】";
+ String eventTm = DateUtils.sdf4.format(new Date());
+ String devName = device.getDevName();
+ String place = device.getFactory();
+
+ StringBuilder content = new StringBuilder("");
+ content.append(prefix);
+ content.append(eventTm).append(",");
+ content.append("管网监测设备[").append(devName).append("],");
+ content.append("发生").append(eventObj.getString("type")).append(",");
+ if (eventObj.containsKey("value") == true) {
+ content.append(eventObj.getString("value")).append(",");
+ }
+ content.append("详细地址是:").append(place).append(",");
+ content.append("请关注并及时处理。");
+
+ params.append("\"content\":");
+ params.append("\"").append(content.toString()).append("\"");
+ params.append("}");
+
+ String resp = HttpClientUtils.post(smsSenderUrl, params.toString(), header);
+ log.info("已发送短信"+resp);
+ }
+ }
+}
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 4807974..d47010a 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -1,12 +1,12 @@
server:
- port: 5907
+ port: 5001
################### spring配置 ###################
spring:
datasource:
- driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://111.198.10.15:11102/smartwell_gdt?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=GMT%2B8&&allowMultiQueries=true&&useSSL=true
- username: root
- password: Casic203!
+ driverClassName: oracle.jdbc.driver.OracleDriver
+ url: jdbc:oracle:thin:@11.100.6.183:1521:orcl
+ username: gzsg
+ password: gzsg
session:
store-type: redis
redis:
@@ -19,8 +19,15 @@
# session:
#flowable数据源和多数据源配置
logging:
- level.root: error
- level.com.casic: error
+ level.root: info
+ level.com.casic: debug
+ level.org.springframework.web: info
file:
path: logs/
- name: missiles.log
\ No newline at end of file
+ name: missiles.log
+#短信推送
+casic:
+ synchronizeSms.enabled: true
+ smsSenderURL: http://general.bushub.rj.prd/sms/user/send
+ X-APP-KEY-SMS: 2d3a8e35-0533-42a0-97a2-63f82a3216f9
+ sms-prefix: 【智慧蓉江】
\ No newline at end of file
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 4038629..21ecda8 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -24,6 +24,9 @@
casic:
device:
gas-dector:
- type: 10
+ type: 30
minutes: 60
- enable-local: false
\ No newline at end of file
+ enable-local: false
+ data-day: 1 # 时间多少的为离线
+ online:
+ cron: 0 0/1 * * * ? # 多长时间判断离线
\ No newline at end of file
diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..c0c7ac9
--- /dev/null
+++ b/src/main/resources/logback-spring.xml
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ ${CONSOLE_LOG_PATTERN}
+ utf-8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${CONSOLE_LOG_PATTERN}
+ utf-8
+
+
+
+
+
+
+
+ ${LOG_PATH}/missiles_error.log
+
+
+
+
+
+ ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log
+
+
+
+ 10MB
+
+
+
+
+ true
+
+
+
+ ${FILE_LOG_PATTERN}
+ utf-8
+
+
+
+
+ error
+ ACCEPT
+ DENY
+
+
+
+
+
+
+
+ ${LOG_PATH}/missiles_total.log
+
+
+
+
+
+ ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log
+
+
+
+ 10MB
+
+
+
+
+ true
+
+
+
+ ${FILE_LOG_PATTERN}
+ utf-8
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/mapper/DeviceDataMapper.xml b/src/main/resources/mapper/DeviceDataMapper.xml
new file mode 100644
index 0000000..4e15de9
--- /dev/null
+++ b/src/main/resources/mapper/DeviceDataMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/mapper/DeviceMapper.xml b/src/main/resources/mapper/DeviceMapper.xml
new file mode 100644
index 0000000..d04d912
--- /dev/null
+++ b/src/main/resources/mapper/DeviceMapper.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+ UPDATE BUS_DEVICE
+ SET ONLINE_STATE=0
+ WHERE VALID=1
+ AND DEVCODE IN
+
+ #{item}
+
+
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/src/main/java/com/casic/dao/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index fde1818..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -1,36 +1,24 @@
package com.casic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmRecords;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.Device;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
@Mapper
-public interface AlarmRecordsMapper extends BaseMapper {
+public interface AlarmRecordsMapper extends BaseMapper {
+ @Select("SELECT DBID " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Long getDevcode(@Param("devcode") String devcode);
- @Select("SELECT JOB_ID AS \"jobId\"\n " +
- "FROM alarm_records\n " +
- "WHERE DEVCODE = #{devcode}\n " +
- "AND ALARM_CONTENT = #{MsgContent}\n " +
- "AND STATUS='1'\n " +
- "AND JOB_ID>0 ")
- String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='0'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND ALARM_CONTENT = #{MsgContent}\n" +
- " AND STATUS='1'")
- Integer updateOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='3'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND STATUS='1'")
- Integer clearAlarm(@Param("devcode") String devcode);
-
+ @Select("SELECT DBID as id, DEVCODE as devCode, DEVNAME as devName, FACTORY as factory, SIMID as simid " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Device getDevice(@Param("devcode") String devcode);
}
diff --git a/src/main/java/com/casic/dao/ButaneDataMapper.java b/src/main/java/com/casic/dao/ButaneDataMapper.java
new file mode 100644
index 0000000..632c7d2
--- /dev/null
+++ b/src/main/java/com/casic/dao/ButaneDataMapper.java
@@ -0,0 +1,12 @@
+package com.casic.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.entity.ButaneData;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface ButaneDataMapper extends BaseMapper {
+
+
+}
diff --git a/src/main/java/com/casic/dao/DataGasMapper.java b/src/main/java/com/casic/dao/DataGasMapper.java
deleted file mode 100644
index 8a064f2..0000000
--- a/src/main/java/com/casic/dao/DataGasMapper.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.DataGasDector;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-
-import java.util.List;
-import java.util.Map;
-
-@Mapper
-public interface DataGasMapper extends BaseMapper {
-
- @Select("SELECT level,high_value " +
- "FROM alarm_level " +
- "WHERE device_type=#{deviceType} ")
- List> getAlarmLevelList(@Param("deviceType") Long deviceType);
-
- @Select("SELECT devcode " +
- "FROM data_gas_dector " +
- "WHERE devcode=#{devcode} " +
- "AND (EXTRACT(epoch FROM CAST(now() AS TIMESTAMPTZ))-EXTRACT(epoch FROM CAST(logtime AS TIMESTAMPTZ)))/60.0 < ${minutes} "+
- "ORDER BY logtime DESC " +
- "LIMIT 1")
- String getLastData(@Param("minutes") String minutes,
- @Param("devcode") String devcode);
-
- @Select("SELECT alarm_content " +
- "FROM base_alarm_content_type " +
- "WHERE device_type=#{deviceType}")
- String getGasMsgContent(@Param("deviceType")Long deviceType);
-
-
-}
diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java
new file mode 100644
index 0000000..e9456c1
--- /dev/null
+++ b/src/main/java/com/casic/dao/DeviceDataMapper.java
@@ -0,0 +1,18 @@
+package com.casic.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface DeviceDataMapper {
+
+ List> getDevcodeByType(@Param("devciceType") Integer devciceType);
+
+ List getRecentData(@Param("dataDay") Integer dataDay);
+
+ int updateOnlineByDevs(@Param("dataSortList") List dataSortDevcodeList);
+
+}
diff --git a/src/main/java/com/casic/dao/DeviceMapper.java b/src/main/java/com/casic/dao/DeviceMapper.java
deleted file mode 100644
index 73b574e..0000000
--- a/src/main/java/com/casic/dao/DeviceMapper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.Device;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Map;
-
-@Mapper
-public interface DeviceMapper extends BaseMapper {
-
- Map getWellCode(@Param("devcode") String devcode);
-
-}
diff --git a/src/main/java/com/casic/dao/impl/AlarmJobDao.java b/src/main/java/com/casic/dao/impl/AlarmJobDao.java
deleted file mode 100644
index 5131821..0000000
--- a/src/main/java/com/casic/dao/impl/AlarmJobDao.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.casic.dao.impl;
-
-import com.alibaba.druid.util.StringUtils;
-import com.casic.dao.AlarmJobMapper;
-import com.casic.entity.AlarmJob;
-import org.springframework.stereotype.Component;
-import xyz.downgoon.snowflake.Snowflake;
-
-import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-@Component
-public class AlarmJobDao {
-
- private static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMdd");
-
- private static Snowflake snowflake = new Snowflake(0, 2);
-// private static final Sn
-
- @Resource
- private AlarmJobMapper alarmJobMapper;
-
- public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) {
- AlarmJob alarmJob = new AlarmJob();
- alarmJob.setId(snowflake.nextId());
- alarmJob.setDevcode(devCode);
- alarmJob.setWellCode(wellCode);
- alarmJob.setJobStatus("0");
- alarmJob.setCreateTime(new Date());
- alarmJob.setJobcode(this.produceJobCode(devTypeName));
- alarmJob.setJobType(jobType);
- alarmJobMapper.insert(alarmJob);
- return alarmJob;
- }
-
- /**
- * 前缀+日期+4位流水号
- *
- * @param devTypeName
- * @return
- */
- private String produceJobCode(String devTypeName) {
- String pre = devTypeName;
- String dataStr = sdf6.format(new Date());
- String fix = this.getJobCodeMaxSerial(pre + dataStr);
- return StringUtils.isEmpty(fix) ? pre + dataStr + String.format("%04d", Long.valueOf(StringUtils.isEmpty(fix)?"0":fix) + 1L) : pre + dataStr + "0001";
- }
-
-
- private String getJobCodeMaxSerial(String jobcode) {
- String MaxSerialJobCode = alarmJobMapper.getJobCodeMaxSerial(jobcode);
- String fix = "";
- if (null != MaxSerialJobCode && MaxSerialJobCode.length() > 4) {
- fix = MaxSerialJobCode.substring(MaxSerialJobCode.length() - 4);
- }
- return fix;
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmJob.java b/src/main/java/com/casic/entity/AlarmJob.java
deleted file mode 100644
index 8a0f764..0000000
--- a/src/main/java/com/casic/entity/AlarmJob.java
+++ /dev/null
@@ -1,165 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- *
- * 报警工单表
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_job")
-public class AlarmJob extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- private Long id;
- /**
- * 工单编号
- */
- @TableField("JOBCODE")
- private String jobcode;
- /**
- * 工单类型
- */
- @TableField("JOG_TYPE")
- private String jobType;
- /**
- * 井编号
- */
- @TableField("WELL_CODE")
- private String wellCode;
- /**
- * 设备编号
- */
- @TableField("DEVCODE")
- private String devcode;
- /**
- * 工单创建时间
- */
- @TableField("CREATE_TIME")
- private Date createTime;
- /**
- * 工单状态(0待处理,1待确认,2处理中,3完成)
- */
- @TableField("JOB_STATUS")
- private String jobStatus;
- /**
- * 接单人员
- */
- @TableField("GET_JOB_PERSON")
- private Long getJobPerson;
- /**
- * 接单时间
- */
- @TableField("GET_JOB_TIME")
- private Date getJobTime;
- /**
- * 应接单时间
- */
- @TableField("SHOULD_GET_TIME")
- private Date shouldGetTime;
- /**
- * 第一现场情况
- */
- @TableField("FIRST_STATE")
- private String firstState;
- /**
- * 第一现场照片
- */
- @TableField("FIRST_STATE_PHOTOS")
- private String firstStatePhotos;
- /**
- * 确认人员
- */
- @TableField("CONFIRM_JOB_PERSON")
- private Long confirmJobPerson;
- /**
- * 确认时间
- */
- @TableField("CONFRIM_JOB_TIME")
- private Date confrimJobTime;
- /**
- * 处理人员
- */
- @TableField("HANDLE_JOB_Person")
- private Long handleJobPerson;
- /**
- * 处理时间
- */
- @TableField("HANDLE_JOB_TIME")
- private Date handleJobTime;
- /**
- * 维护情况记录
- */
- @TableField("HANDLE_MESSAGE")
- private String handleMessage;
- /**
- * 维护图片
- */
- @TableField("HANDLE_PHOTOS")
- private String handlePhotos;
- /**
- * 工单流转记录
- */
- @TableField("FLOW")
- private String flow;
-
- @TableField("JOB_BELONG_TO")
- private Long jobBelongTo;
-
- @TableField("JOB_FLAG_DELAY")
- private String jobFlagDelay;
-
- @TableField("JOB_FLAG_1")
- private String jobFlag1;
-
- @TableField(exist = false)
- private String alarmValue;
-
- @TableField(exist = false)
- private String alarmContentName;
-
- @TableField(exist = false)
- private Integer recordId;
-
- @Override
- public String toString() {
- return "AlarmJob{" +
- "id=" + id +
- ", jobcode=" + jobcode +
- ", jogType=" + jobType +
- ", wellCode=" + wellCode +
- ", devcode=" + devcode +
- ", createTime=" + createTime +
- ", jobStatus=" + jobStatus +
- ", getJobPerson=" + getJobPerson +
- ", getJobTime=" + getJobTime +
- ", firstState=" + firstState +
- ", firstStatePhotos=" + firstStatePhotos +
- ", confirmJobPerson=" + confirmJobPerson +
- ", confrimJobTime=" + confrimJobTime +
- ", handleJobPerson=" + handleJobPerson +
- ", handleJobTime=" + handleJobTime +
- ", handleMessage=" + handleMessage +
- ", handlePhotos=" + handlePhotos +
- ", flow=" + flow +
- ", recordId=" + recordId +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmRecord.java b/src/main/java/com/casic/entity/AlarmRecord.java
new file mode 100644
index 0000000..137d805
--- /dev/null
+++ b/src/main/java/com/casic/entity/AlarmRecord.java
@@ -0,0 +1,106 @@
+package com.casic.entity;
+
+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 com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *
+ *
+ *
+ *
+ * @author casic123
+ * @since 2019-05-17
+ */
+@Data
+@TableName("ALARM_ALARM_RECORD")
+public class AlarmRecord extends Model {
+
+
+ private static final long serialVersionUID = 1L;
+ /**
+ * 主键
+ */
+ @TableId(value = "DBID")
+ private Long dbid;
+ /**
+ * 设备编号
+ */
+ @TableField("DEVICE_CODE")
+ private String deviceCode;
+ /**
+ * 设备类型名称
+ */
+ @TableField("DEVICE_TYPE_NAME")
+ private String deviceTypeName;
+ /**
+ * 是否推送,默认0
+ */
+ @TableField("ISSEND")
+ private String issend;
+ /**
+ * 默认default
+ */
+ @TableField("ITEMNAME")
+ private String itemname;
+ /**
+ * 没有数值
+ */
+ @TableField("ITEMVALUE")
+ private String itemvalue;
+ /**
+ * 1
+ */
+ @TableField("MESSAGE")
+ private String message;
+ /**
+ * 0
+ */
+ @TableField("MESSAGE_STATUS")
+ private String messageStatus;
+
+
+ /**
+ * 0
+ */
+ @TableField("RECORDCODE")
+ private String recordcode;
+ /**
+ * 告警日期
+ */
+ @TableField("RECORDDATE")
+ private Date recorddate;
+ /**
+ * 工单编号
+ */
+ @TableField("DEVICE_ID")
+ private Long deviceId;
+
+ /**
+ * 删除标志,默认为1
+ */
+ private Integer active;
+
+ @Override
+ public String toString() {
+ return "AlarmRecord{" +
+ "dbid=" + dbid +
+ ", deviceCode='" + deviceCode + '\'' +
+ ", deviceTypeName='" + deviceTypeName + '\'' +
+ ", issend='" + issend + '\'' +
+ ", itemname='" + itemname + '\'' +
+ ", itemvalue='" + itemvalue + '\'' +
+ ", message='" + message + '\'' +
+ ", messageStatus='" + messageStatus + '\'' +
+ ", recordcode='" + recordcode + '\'' +
+ ", recorddate=" + recorddate +
+ ", deviceId=" + deviceId +
+ ", active=" + active +
+ '}';
+ }
+}
diff --git a/src/main/java/com/casic/entity/AlarmRecords.java b/src/main/java/com/casic/entity/AlarmRecords.java
deleted file mode 100644
index 88b0b26..0000000
--- a/src/main/java/com/casic/entity/AlarmRecords.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- *
- *
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_records")
-public class AlarmRecords extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- 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;
-
- @Override
- public String toString() {
- return "AlarmRecords{" +
- "id=" + id +
- ", deviceId=" + deviceId +
- ", devcode=" + devcode +
- ", wellCode=" + wellCode +
- ", alarmType=" + alarmType +
- ", alarmContent=" + alarmContent +
- ", alarmValue=" + alarmValue +
- ", alarmLevel=" + alarmLevel +
- ", alarmMessage=" + alarmMessage +
- ", alarmTime=" + alarmTime +
- ", status=" + status +
- ", jobId=" + jobId +
- ", jobStatus=" + jobStatus +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/ButaneData.java b/src/main/java/com/casic/entity/ButaneData.java
new file mode 100644
index 0000000..2e051be
--- /dev/null
+++ b/src/main/java/com/casic/entity/ButaneData.java
@@ -0,0 +1,28 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Builder;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@TableName("CASIC_BUTANE_INFO")
+@Builder
+public class ButaneData extends Model {
+
+ @TableId(value = "DBID")
+ private Long dbid;
+
+ private String devcode;
+
+ private String status;
+
+ private String descn;
+
+ private Date logtime;
+
+}
diff --git a/src/main/java/com/casic/entity/Device.java b/src/main/java/com/casic/entity/Device.java
new file mode 100644
index 0000000..0360e41
--- /dev/null
+++ b/src/main/java/com/casic/entity/Device.java
@@ -0,0 +1,27 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@TableName("ALARM_DEVICE")
+public class Device implements Serializable {
+ /**
+ * 设备基本信息表
+ */
+ private static final long serialVersionUID = -2023118078562324658L;
+ @TableId(value = "DBID")
+ private Long id;
+ @TableId(value = "DEVCODE")
+ private String devCode;
+ @TableId(value = "DEVNAME")
+ private String devName;
+ @TableId(value = "FACTORY")
+ private String factory;
+ @TableId(value = "SIMID")
+ private String simid; // SIM卡号
+
+}
diff --git a/src/main/java/com/casic/model/HostData.java b/src/main/java/com/casic/model/HostData.java
new file mode 100644
index 0000000..40cefa7
--- /dev/null
+++ b/src/main/java/com/casic/model/HostData.java
@@ -0,0 +1,16 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class HostData {
+ private String model;
+ private String dev_id;
+ private String chip_id;
+ private String mfd_day;
+ private String sw_ver;
+ private String hw_ver;
+ private String duration;
+ private String d_ch_cnt;
+ private String a_ch_cnt;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReceiveDataParam.java b/src/main/java/com/casic/model/ReceiveDataParam.java
new file mode 100644
index 0000000..3a17d24
--- /dev/null
+++ b/src/main/java/com/casic/model/ReceiveDataParam.java
@@ -0,0 +1,20 @@
+package com.casic.model;
+
+import lombok.Data;
+
+import java.util.HashMap;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReceiveDataParam {
+ private String deviceType;
+ private String iotId;
+ private String requestId;
+ private Object checkFailedData;
+ private String productKey;
+ private String deviceName;
+ private HashMap items;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReportUpdataParam.java b/src/main/java/com/casic/model/ReportUpdataParam.java
new file mode 100644
index 0000000..20c2ca9
--- /dev/null
+++ b/src/main/java/com/casic/model/ReportUpdataParam.java
@@ -0,0 +1,23 @@
+package com.casic.model;
+
+import lombok.Data;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReportUpdataParam {
+ private String msg_type;
+ private String event_change;
+ private String error_val;
+ private String ch_cnt;
+ private String erro_cnt;
+ private String alarm_low_cnt;
+ private String alarm_high_cnt;
+ private String offline_cnt;
+ private String rtd_val;
+ private String adc_val;
+ private String status_val;
+ private String time;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/WirelessData.java b/src/main/java/com/casic/model/WirelessData.java
new file mode 100644
index 0000000..b062c13
--- /dev/null
+++ b/src/main/java/com/casic/model/WirelessData.java
@@ -0,0 +1,19 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class WirelessData {
+ private String model;
+ private String IMEI;
+ private String ICCID;
+ private String sw_ver;
+ private String hw_ver;
+ private String ch_cnt;
+ private String heartbeat_inv;
+ private String up_pcnt;
+ private String up_pcnt_inv;
+ private String csq;
+}
+
+
diff --git a/src/main/java/com/casic/schedule/TaskConfigurer.java b/src/main/java/com/casic/schedule/TaskConfigurer.java
new file mode 100644
index 0000000..77c5d5a
--- /dev/null
+++ b/src/main/java/com/casic/schedule/TaskConfigurer.java
@@ -0,0 +1,47 @@
+package com.casic.schedule;
+
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+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
+@Slf4j
+@RequiredArgsConstructor
+public class TaskConfigurer implements SchedulingConfigurer {
+
+ @Value("${casic.device.online.cron}")
+ private String onlineStateCron;
+
+ private final DeviceDataService deviceDataService;
+
+ @Override
+ public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
+ TriggerTask onlineStateTask = new TriggerTask(nextDayDevice(),
+ triggerContext -> {
+ return new CronTrigger(onlineStateCron).nextExecutionTime(triggerContext);
+ });
+ taskRegistrar.addTriggerTask(onlineStateTask);
+ }
+
+ private Runnable nextDayDevice() {
+ return new Runnable() {
+ @Override
+ public void run() {
+ log.info("定时查询在线离线运行了...");
+ deviceDataService.checkAndUpdateDeviceOnline();
+ }
+ };
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/service/AlarmRecordFly.java b/src/main/java/com/casic/service/AlarmRecordFly.java
new file mode 100644
index 0000000..47c7969
--- /dev/null
+++ b/src/main/java/com/casic/service/AlarmRecordFly.java
@@ -0,0 +1,39 @@
+package com.casic.service;
+
+import com.casic.entity.AlarmRecord;
+
+public class AlarmRecordFly {
+
+ private static AlarmRecord alarmRecord;
+
+ static {
+ alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("0");
+ alarmRecord.setActive(1);
+ }
+
+ public static AlarmRecord getAlarmRecord() {
+ return alarmRecord;
+ }
+
+ public static AlarmRecord getPrototype(){
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("-1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("1");
+ alarmRecord.setActive(1);
+ return alarmRecord;
+ }
+
+
+
+
+}
diff --git a/src/main/java/com/casic/service/DeviceDataService.java b/src/main/java/com/casic/service/DeviceDataService.java
new file mode 100644
index 0000000..f972981
--- /dev/null
+++ b/src/main/java/com/casic/service/DeviceDataService.java
@@ -0,0 +1,7 @@
+package com.casic.service;
+
+public interface DeviceDataService {
+
+ void checkAndUpdateDeviceOnline();
+
+}
diff --git a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java
new file mode 100644
index 0000000..f41a44d
--- /dev/null
+++ b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java
@@ -0,0 +1,68 @@
+package com.casic.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.casic.dao.AlarmRecordsMapper;
+import com.casic.dao.DeviceDataMapper;
+import com.casic.entity.AlarmRecord;
+import com.casic.service.AlarmRecordFly;
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @author cz
+ */
+@Service
+@RequiredArgsConstructor
+public class DeviceDataServiceImpl extends ServiceImpl implements DeviceDataService {
+
+ private final DeviceDataMapper deviceDataMapper;
+
+ @Value("${casic.device.data-day}")
+ private Integer dataDay;
+
+ @Value("${casic.device.gas-dector.type}")
+ private Integer devciceType;
+
+
+ @Override
+ public void checkAndUpdateDeviceOnline() {
+ //查询硫化氢设备
+ List> devcodeList = deviceDataMapper.getDevcodeByType(devciceType);
+ //统一查询所有设备的3天内数据的设备编号,然后设备编号转成map,进行
+ List dataList = deviceDataMapper.getRecentData(dataDay);
+ List> dataSortDevcodeList = devcodeList;
+ if (dataList != null) {
+ Map devOnlineMap = new HashMap<>();
+ for (String devcodeData : dataList) {
+ devOnlineMap.put(devcodeData, "");
+ }
+ dataSortDevcodeList = dataSortDevcodeList.stream().filter(
+ e -> !devOnlineMap.containsKey((String) e.get("devcode"))).collect(Collectors.toList());
+ }
+ //批量产生离线报警
+ if (CollectionUtils.isNotEmpty(dataSortDevcodeList)) {
+ List alarmRecords = new ArrayList<>();
+ for (Map dataDevcodeMap : dataSortDevcodeList) {
+ alarmRecords.add(createAlarmRecord(((BigDecimal)dataDevcodeMap.get("id")).longValue(), (String) dataDevcodeMap.get("devcode")));
+ }
+ this.saveBatch(alarmRecords);
+ }
+ }
+
+ private AlarmRecord createAlarmRecord(Long id, String devcode) {
+ AlarmRecord alarmRecord = AlarmRecordFly.getPrototype();
+ alarmRecord.setRecorddate(new Date());
+ alarmRecord.setDbid(null);
+ alarmRecord.setDeviceCode(devcode);
+ alarmRecord.setDeviceId(id);
+ return alarmRecord;
+ }
+
+}
diff --git a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
index 4591d50..176b389 100644
--- a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
@@ -1,53 +1,41 @@
package com.casic.service.impl;
-import com.alibaba.druid.util.StringUtils;
-import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.casic.dao.AlarmRecordsMapper;
-import com.casic.dao.DataGasMapper;
-import com.casic.dao.DeviceMapper;
-import com.casic.dao.impl.AlarmJobDao;
-import com.casic.entity.AlarmJob;
-import com.casic.entity.AlarmRecords;
-import com.casic.entity.DataGasDector;
+import com.casic.dao.ButaneDataMapper;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.ButaneData;
import com.casic.entity.Device;
import com.casic.model.ResponseData;
+import com.casic.service.AlarmRecordFly;
import com.casic.service.DeviceService;
+import com.casic.util.SendUtil;
+import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import xyz.downgoon.snowflake.Snowflake;
-import javax.annotation.Resource;
import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import java.util.function.Supplier;
@Slf4j
@Service
+@RequiredArgsConstructor
public class DeviceServiceImpl implements DeviceService {
-
- @Value("${casic.device.gas-dector.enable-local}")
- private Boolean enableLocal;
- @Value("${casic.device.gas-dector.type}")
- private Long deviceType;
- @Resource
- private DataGasMapper dataGasMapper;
- @Resource
- private AlarmRecordsMapper alarmRecordsMapper;
- @Resource
- private DeviceMapper deviceMapper;
- @Autowired
- private AlarmJobDao alarmJobDao;
+ private final ButaneDataMapper butaneDataMapper;
+ private final AlarmRecordsMapper alarmRecordsMapper;
private static Snowflake snowflake = new Snowflake(0, 2);
+ @Autowired
+ private SendUtil sendUtil;
@Override
public ResponseData testMysql() {
+
ResponseData responseData = new ResponseData();
responseData.setMessage("保存成功");
responseData.setCode(1);
@@ -62,18 +50,16 @@
public ResponseData saveDataGas(Map receiveData) {
ResponseData responseData = new ResponseData();
try {
- Map payloadData;
+ Map payloadData = receiveData;
if (receiveData.containsKey("payload")) {
payloadData = (Map) receiveData.get("payload");
- }else{
- payloadData=receiveData;
}
- this.flagSelectProcessor("eventType", payloadData, () -> gasStatusUpdate(payloadData))
- .flagSelectProcessor("gas_sample_value", payloadData, () -> dealNormalData(receiveData));
+ this.flagSelectProcessor("gas_sensor_state", payloadData, () -> gasStatusUpdate(receiveData))
+ .flagSelectProcessor("heartbeat_time", payloadData, () -> dealNormalData(receiveData));
responseData.setCode(200);
responseData.setMessage("保存成功");
} catch (Exception dex) {
- log.error("主题:广东台燃气设备存储异常,异常信息:{}", dex.getMessage());
+ log.error("主题:燃气设备存储异常,异常信息:{}", dex.getMessage());
responseData.setCode(500);
responseData.setMessage("保存异常");
}
@@ -95,99 +81,110 @@
* @return
*/
private Boolean gasStatusUpdate(Map receiveData) {
- Long lonTimetemp = Long.valueOf(receiveData.get("timestamp").toString());
- String onlindeStatus = receiveData.get("eventType").toString();
- String devcode = receiveData.get("imei").toString();
- QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("devcode", devcode);
- queryWrapper.eq("valid", 1);
- Device device = new Device();
- if (!StringUtils.isEmpty(onlindeStatus)) {
- device.setOnlineState(onlindeStatus);
- Date logTime = new Date();
- logTime.setTime(lonTimetemp);
- device.setLogtime(logTime);
- deviceMapper.update(device, queryWrapper);
- return true;
+ AlarmRecord alarmRecord = AlarmRecordFly.getAlarmRecord();
+ Map payloadData = (Map) receiveData.get("payload");
+ //判断事件类型 0正常 1低报 2高报
+ String alarmSituation = payloadData.get("gas_sensor_state").toString();
+ String devcode = receiveData.get("IMEI").toString();
+ clearOnlineData(devcode);
+ //构建数据
+ ButaneData butaneData = ButaneData.builder()
+ .devcode(devcode)
+ .dbid(snowflake.nextId())
+ .build();
+ populateTime(receiveData, butaneData, alarmRecord);
+ switch (alarmSituation) {
+ case "0":
+// butaneData.setDescn("状态正常");
+// butaneData.setStatus("0");
+ break;
+ default:
+ //第一条上来,消除报警
+ clearAlarmData(devcode);
+ //产生新的报警,消除报警
+ butaneData.setDescn("可燃气体探测器报警");
+ butaneData.setStatus("1");
+ synchronized (alarmRecord) {
+ alarmRecord.setDbid(null);
+ alarmRecord.setDeviceCode(devcode);
+ alarmRecord.setDeviceId(alarmRecordsMapper.getDevcode(devcode));
+ alarmRecordsMapper.insert(alarmRecord);
+ }
+ butaneDataMapper.insert(butaneData);
+
+ try {
+ //推送短信至第三方
+ Device device = alarmRecordsMapper.getDevice(devcode);
+ if (null == device) {
+ log.error("设备不存在,编号:" + devcode);
+ return false;
+ }
+ JSONObject eventObj = new JSONObject();
+ eventObj.put("type", "燃气报警");
+ sendUtil.sendEventBySms(device, eventObj);
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ }
}
- return false;
+ return true;
}
public Boolean dealNormalData(Map receiveData) {
String devcode = receiveData.get("IMEI").toString();
- if (!StringUtils.isEmpty(devcode)) {
- Map deviceMap = deviceMapper.getWellCode(devcode);
- //保存数据,无论是否有设备在库内
- DataGasDector dataGasDector = this.saveNormalData(receiveData, deviceMap);
- if (ObjectUtils.isEmpty(deviceMap)) {
- log.info("没有该设备编号录入" + devcode);
- if (enableLocal) {
- return true;
- }
- }
- //自动消除报警
- this.alarmRecordsMapper.clearAlarm(devcode);
- this.dataTaskJudge(deviceMap, dataGasDector);
- return true;
+ //第一条上来,清除离线
+ clearOnlineData(devcode);
+ ButaneData butaneData = ButaneData.builder()
+ .devcode(devcode)
+ .dbid(snowflake.nextId())
+ .descn("状态正常")
+ .status("0")
+ .build();
+ if (!ObjectUtils.isEmpty(receiveData) && receiveData.containsKey("timestamp")) {
+ butaneData.setLogtime(new Date(Long.valueOf(receiveData.get("timestamp").toString())));
+ } else {
+ butaneData.setLogtime(new Date());
}
+ butaneDataMapper.insert(butaneData);
return false;
}
- private DataGasDector saveNormalData(Map receiveData, Map deviceMap) {
- DataGasDector dataGasDector = new DataGasDector();
- dataGasDector.setId(snowflake.nextId());
- dataGasDector.setDevcode(receiveData.get("IMEI").toString());
- dataGasDector.setWellCode(!ObjectUtils.isEmpty(deviceMap) && deviceMap.containsKey("wellCode") ? deviceMap.get("wellCode").toString() : "");
- dataGasDector.setLogtime(new Date());
+ private void populateTime(Map receiveData, ButaneData butaneData, AlarmRecord alarmRecord) {
if (!ObjectUtils.isEmpty(receiveData) && receiveData.containsKey("timestamp")) {
- dataGasDector.setUptime(new Date(Long.valueOf(receiveData.get("timestamp").toString())));
+ Date logtime = new Date(Long.valueOf(receiveData.get("timestamp").toString()));
+ butaneData.setLogtime(logtime);
+ alarmRecord.setRecorddate(logtime);
} else {
- dataGasDector.setUptime(new Date());
+ alarmRecord.setRecorddate(new Date());
+ butaneData.setLogtime(new Date());
}
- Map gascontent = (Map)receiveData.get("payload");
- if (!ObjectUtils.isEmpty(gascontent)) {
- if (gascontent.containsKey("gas_sample_value")) {
- dataGasDector.setStrength(gascontent.get("gas_sample_value").toString());
- }
- }
- dataGasMapper.insert(dataGasDector);
- return dataGasDector;
}
- /**
- * 报警存库
- */
- private void dataTaskJudge(Map deviceMap, DataGasDector dataGasDector) {
- List> alarmLevelList = dataGasMapper.getAlarmLevelList(deviceType);
- String wellCode = dataGasDector.getWellCode();
- Long deviceId = !ObjectUtils.isEmpty(deviceMap) && deviceMap.containsKey("wellCode") ? Long.valueOf(String.valueOf(deviceMap.get("deviceId"))) : -1;
- final String gasMsgContent = dataGasMapper.getGasMsgContent(deviceType);
- for (Map alarmLevelMap : alarmLevelList) {
- if (Float.valueOf(dataGasDector.getStrength()) > Float.valueOf(String.valueOf(alarmLevelMap.get("high_value")))) {
- AlarmRecords alarmRecord = new AlarmRecords();
- alarmRecord.setId(snowflake.nextId());
- alarmRecord.setDeviceId(deviceId);
- alarmRecord.setDevcode(dataGasDector.getDevcode());
- alarmRecord.setWellCode(wellCode);
- alarmRecord.setAlarmType("1"); // 业务报警
- alarmRecord.setAlarmContent(gasMsgContent);
- alarmRecord.setAlarmValue(dataGasDector.getStrength());
- alarmRecord.setAlarmTime(new Date());
- alarmRecord.setStatus("1");
- alarmRecord.setAlarmLevel(Integer.valueOf(alarmLevelMap.get("level").toString()));
- alarmRecord.setAlarmMessage(gasMsgContent);
- String jobId = alarmRecordsMapper.isOldAlarmRecord(dataGasDector.getDevcode(), gasMsgContent);
- // 超出报警阈值 生成一条报警消息
- if (!StringUtils.isEmpty(jobId)) {
- alarmRecordsMapper.updateOldAlarmRecord(dataGasDector.getDevcode(), gasMsgContent);
- alarmRecord.setJobId(Long.valueOf(jobId));
- } else {
- AlarmJob alarmJob = alarmJobDao.saveData(dataGasDector.getStrength(), wellCode, "RQZD", "1");
- alarmRecord.setJobId(alarmJob.getId());
- }
- alarmRecordsMapper.insert(alarmRecord);
- break;
- }
+ private void clearAlarmData(String devcode) {
+ QueryWrapper queryWrapper = new QueryWrapper();
+ queryWrapper.eq("DEVICE_CODE", devcode);
+ queryWrapper.eq("ACTIVE", 1);
+ try {
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setActive(0);
+ alarmRecordsMapper.update(alarmRecord, queryWrapper);
+ } catch (Exception e) {
+ log.error("清除报警失败,设备编号为{},异常信息{}", devcode, e);
}
}
+
+ private void clearOnlineData(String devcode) {
+ QueryWrapper queryWrapper = new QueryWrapper();
+ queryWrapper.eq("DEVICE_CODE", devcode);
+ queryWrapper.eq("ACTIVE", 1);
+ queryWrapper.eq("MESSAGE_STATUS", "0");
+ queryWrapper.eq("RECORDCODE", "1");
+ try {
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setActive(0);
+ alarmRecordsMapper.update(alarmRecord, queryWrapper);
+ } catch (Exception e) {
+ log.error("清除报警失败,设备编号为{},异常信息{}", devcode, e);
+ }
+ }
+
}
diff --git a/src/main/java/com/casic/util/ConestUtil.java b/src/main/java/com/casic/util/ConestUtil.java
deleted file mode 100644
index 2a4d305..0000000
--- a/src/main/java/com/casic/util/ConestUtil.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package com.casic.util;
-
-public class ConestUtil {
-
-
-}
diff --git a/src/main/java/com/casic/util/DateUtils.java b/src/main/java/com/casic/util/DateUtils.java
new file mode 100644
index 0000000..db2ed9c
--- /dev/null
+++ b/src/main/java/com/casic/util/DateUtils.java
@@ -0,0 +1,63 @@
+package com.casic.util;
+
+import java.text.SimpleDateFormat;
+
+/**
+ * Created by Administrator on 2015/2/25.
+ */
+public class DateUtils {
+ public static SimpleDateFormat sdf_day = new SimpleDateFormat("yyyy-MM-dd");
+ public static SimpleDateFormat sdf_day_time = new SimpleDateFormat("yyyyMMddHHmmss");
+ public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ public static final SimpleDateFormat sdf5 = new SimpleDateFormat("HH:mm:ss");
+ public static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+
+
+ public static String DateFormat(String dataString) {
+
+ String strymd = dataString.substring(0, 8);
+ String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " ";
+ String strhms = dataString.substring(8);
+ String str2 = strhms.substring(0, 2) + ":" + strhms.substring(2, 4) + ":" + strhms.substring(4, 6);
+ dataString = str1 + str2;
+ return dataString;
+ }
+
+ public static String DateFormatDate(String dataString) {
+
+ String strymd = dataString.substring(0, 8);
+ return strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8);
+ }
+
+ public static String DateFormatTime(String dataString) {
+
+ String strhms = dataString.substring(8);
+ return strhms.substring(0, 2) + ":" + strhms.substring(2, 4) + ":" + strhms.substring(4, 6);
+ }
+
+ /**
+ * 比较两个时间 时分秒 大小
+ *
+ * @param s1
+ * @param s2
+ * @return
+ */
+ public static boolean compTime(String s1, String s2) {
+ try {
+ if (s1.indexOf(":") < 0 || s1.indexOf(":") < 0) {
+ System.out.println("格式不正确");
+ } else {
+ String[] array1 = s1.split(":");
+ int total1 = Integer.valueOf(array1[0]) * 3600 + Integer.valueOf(array1[1]) * 60;
+ String[] array2 = s2.split(":");
+ int total2 = Integer.valueOf(array2[0]) * 3600 + Integer.valueOf(array2[1]) * 60;
+ return total1 - total2 > 0 ? true : false;
+ }
+ } catch (NumberFormatException e) {
+ // TODO Auto-generated catch block
+ return false;
+ }
+ return false;
+
+ }
+}
diff --git a/src/main/java/com/casic/util/HttpClientUtils.java b/src/main/java/com/casic/util/HttpClientUtils.java
new file mode 100644
index 0000000..91a631e
--- /dev/null
+++ b/src/main/java/com/casic/util/HttpClientUtils.java
@@ -0,0 +1,40 @@
+package com.casic.util;
+
+
+import com.alibaba.fastjson.JSONObject;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpStatus;
+import org.apache.commons.httpclient.methods.PostMethod;
+
+import java.io.IOException;
+
+public class HttpClientUtils {
+
+
+
+ public static String post(String url, String body, JSONObject header) {
+ HttpClient client = new HttpClient();
+ client.setTimeout(30000);
+ PostMethod method = new PostMethod(url);
+ // for (Map.Entry entry : headers.entrySet()) {
+ method.addRequestHeader("Content-type", "application/json; charset=utf-8");
+ method.addRequestHeader("Accept", "application/json");
+ method.addRequestHeader("X-APP-KEY", header.getString("X-APP-KEY"));
+ method.setRequestBody(body);
+ try {
+ int statusCode = client.executeMethod(method);
+ if (statusCode == HttpStatus.SC_OK) {
+ return new String(method.getResponseBody(), "UTF-8");
+ }
+
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+}
diff --git a/src/main/java/com/casic/util/SendUtil.java b/src/main/java/com/casic/util/SendUtil.java
new file mode 100644
index 0000000..2d73db1
--- /dev/null
+++ b/src/main/java/com/casic/util/SendUtil.java
@@ -0,0 +1,67 @@
+package com.casic.util;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.casic.entity.Device;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+@Slf4j
+@Component
+public class SendUtil {
+ @Value("${casic.synchronizeSms.enabled}")
+ private String enabled;
+ @Value("${casic.smsSenderURL}")
+ private String smsSenderUrl;
+ @Value("${casic.X-APP-KEY-SMS}")
+ private String smsAppKey;
+
+ public void sendEventBySms(Device device, JSONObject eventObj) {
+ if ("true".equals(enabled)) {
+// String smsSenderUrl = Configure.getProperty("smsSenderURL", "http://general.bushub.rj.prd/sms/user/send");
+// String smsAppKey = Configure.getProperty("X-APP-KEY-SMS", "2d3a8e35-0533-42a0-97a2-63f82a3216f9");
+ String sim = device.getSimid();
+ if (null == sim || StringUtils.isBlank(sim)) {
+ return;
+ }
+
+ if (null == smsAppKey || StringUtils.isBlank(smsAppKey)) {
+ return;
+ }
+
+ JSONObject header = new JSONObject();
+ header.put("X-APP-KEY", smsAppKey);
+
+ StringBuilder params = new StringBuilder();
+ params.append("{");
+ params.append("\"mobile\":");
+ params.append("\"").append(sim).append("\"").append(",");
+
+ String prefix = "【智慧蓉江】";
+ String eventTm = DateUtils.sdf4.format(new Date());
+ String devName = device.getDevName();
+ String place = device.getFactory();
+
+ StringBuilder content = new StringBuilder("");
+ content.append(prefix);
+ content.append(eventTm).append(",");
+ content.append("管网监测设备[").append(devName).append("],");
+ content.append("发生").append(eventObj.getString("type")).append(",");
+ if (eventObj.containsKey("value") == true) {
+ content.append(eventObj.getString("value")).append(",");
+ }
+ content.append("详细地址是:").append(place).append(",");
+ content.append("请关注并及时处理。");
+
+ params.append("\"content\":");
+ params.append("\"").append(content.toString()).append("\"");
+ params.append("}");
+
+ String resp = HttpClientUtils.post(smsSenderUrl, params.toString(), header);
+ log.info("已发送短信"+resp);
+ }
+ }
+}
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 4807974..d47010a 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -1,12 +1,12 @@
server:
- port: 5907
+ port: 5001
################### spring配置 ###################
spring:
datasource:
- driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://111.198.10.15:11102/smartwell_gdt?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=GMT%2B8&&allowMultiQueries=true&&useSSL=true
- username: root
- password: Casic203!
+ driverClassName: oracle.jdbc.driver.OracleDriver
+ url: jdbc:oracle:thin:@11.100.6.183:1521:orcl
+ username: gzsg
+ password: gzsg
session:
store-type: redis
redis:
@@ -19,8 +19,15 @@
# session:
#flowable数据源和多数据源配置
logging:
- level.root: error
- level.com.casic: error
+ level.root: info
+ level.com.casic: debug
+ level.org.springframework.web: info
file:
path: logs/
- name: missiles.log
\ No newline at end of file
+ name: missiles.log
+#短信推送
+casic:
+ synchronizeSms.enabled: true
+ smsSenderURL: http://general.bushub.rj.prd/sms/user/send
+ X-APP-KEY-SMS: 2d3a8e35-0533-42a0-97a2-63f82a3216f9
+ sms-prefix: 【智慧蓉江】
\ No newline at end of file
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 4038629..21ecda8 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -24,6 +24,9 @@
casic:
device:
gas-dector:
- type: 10
+ type: 30
minutes: 60
- enable-local: false
\ No newline at end of file
+ enable-local: false
+ data-day: 1 # 时间多少的为离线
+ online:
+ cron: 0 0/1 * * * ? # 多长时间判断离线
\ No newline at end of file
diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..c0c7ac9
--- /dev/null
+++ b/src/main/resources/logback-spring.xml
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ ${CONSOLE_LOG_PATTERN}
+ utf-8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${CONSOLE_LOG_PATTERN}
+ utf-8
+
+
+
+
+
+
+
+ ${LOG_PATH}/missiles_error.log
+
+
+
+
+
+ ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log
+
+
+
+ 10MB
+
+
+
+
+ true
+
+
+
+ ${FILE_LOG_PATTERN}
+ utf-8
+
+
+
+
+ error
+ ACCEPT
+ DENY
+
+
+
+
+
+
+
+ ${LOG_PATH}/missiles_total.log
+
+
+
+
+
+ ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log
+
+
+
+ 10MB
+
+
+
+
+ true
+
+
+
+ ${FILE_LOG_PATTERN}
+ utf-8
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/mapper/DeviceDataMapper.xml b/src/main/resources/mapper/DeviceDataMapper.xml
new file mode 100644
index 0000000..4e15de9
--- /dev/null
+++ b/src/main/resources/mapper/DeviceDataMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/mapper/DeviceMapper.xml b/src/main/resources/mapper/DeviceMapper.xml
new file mode 100644
index 0000000..d04d912
--- /dev/null
+++ b/src/main/resources/mapper/DeviceMapper.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+ UPDATE BUS_DEVICE
+ SET ONLINE_STATE=0
+ WHERE VALID=1
+ AND DEVCODE IN
+
+ #{item}
+
+
+
+
+
\ No newline at end of file
diff --git a/target/classes/application-dev.yml b/target/classes/application-dev.yml
index 5c64ca8..8a5929a 100644
--- a/target/classes/application-dev.yml
+++ b/target/classes/application-dev.yml
@@ -1,12 +1,12 @@
server:
- port: 11520
+ port: 5001
################### spring配置 ###################
spring:
datasource:
- driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://111.198.10.15:11102/smartwell_gdt?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=GMT%2B8&&allowMultiQueries=true&&useSSL=true
- username: root
- password: Casic203!
+ driverClassName: oracle.jdbc.driver.OracleDriver
+ url: jdbc:oracle:thin:@11.100.6.181:1521:orcl
+ username: gzsg
+ password: gzsg
session:
store-type: redis
redis:
@@ -19,8 +19,15 @@
# session:
#flowable数据源和多数据源配置
logging:
- level.root: error
- level.com.casic: error
+ level.root: info
+ level.com.casic: debug
+ level.org.springframework.web: info
file:
path: logs/
- name: missiles.log
\ No newline at end of file
+ name: missiles.log
+#短信推送
+casic:
+ synchronizeSms.enabled: true
+ smsSenderURL: http://general.bushub.rj.prd/sms/user/send
+ X-APP-KEY-SMS: 2d3a8e35-0533-42a0-97a2-63f82a3216f9
+ sms-prefix: 【智慧蓉江】
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/src/main/java/com/casic/dao/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index fde1818..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -1,36 +1,24 @@
package com.casic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmRecords;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.Device;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
@Mapper
-public interface AlarmRecordsMapper extends BaseMapper {
+public interface AlarmRecordsMapper extends BaseMapper {
+ @Select("SELECT DBID " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Long getDevcode(@Param("devcode") String devcode);
- @Select("SELECT JOB_ID AS \"jobId\"\n " +
- "FROM alarm_records\n " +
- "WHERE DEVCODE = #{devcode}\n " +
- "AND ALARM_CONTENT = #{MsgContent}\n " +
- "AND STATUS='1'\n " +
- "AND JOB_ID>0 ")
- String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='0'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND ALARM_CONTENT = #{MsgContent}\n" +
- " AND STATUS='1'")
- Integer updateOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='3'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND STATUS='1'")
- Integer clearAlarm(@Param("devcode") String devcode);
-
+ @Select("SELECT DBID as id, DEVCODE as devCode, DEVNAME as devName, FACTORY as factory, SIMID as simid " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Device getDevice(@Param("devcode") String devcode);
}
diff --git a/src/main/java/com/casic/dao/ButaneDataMapper.java b/src/main/java/com/casic/dao/ButaneDataMapper.java
new file mode 100644
index 0000000..632c7d2
--- /dev/null
+++ b/src/main/java/com/casic/dao/ButaneDataMapper.java
@@ -0,0 +1,12 @@
+package com.casic.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.entity.ButaneData;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface ButaneDataMapper extends BaseMapper {
+
+
+}
diff --git a/src/main/java/com/casic/dao/DataGasMapper.java b/src/main/java/com/casic/dao/DataGasMapper.java
deleted file mode 100644
index 8a064f2..0000000
--- a/src/main/java/com/casic/dao/DataGasMapper.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.DataGasDector;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-
-import java.util.List;
-import java.util.Map;
-
-@Mapper
-public interface DataGasMapper extends BaseMapper {
-
- @Select("SELECT level,high_value " +
- "FROM alarm_level " +
- "WHERE device_type=#{deviceType} ")
- List> getAlarmLevelList(@Param("deviceType") Long deviceType);
-
- @Select("SELECT devcode " +
- "FROM data_gas_dector " +
- "WHERE devcode=#{devcode} " +
- "AND (EXTRACT(epoch FROM CAST(now() AS TIMESTAMPTZ))-EXTRACT(epoch FROM CAST(logtime AS TIMESTAMPTZ)))/60.0 < ${minutes} "+
- "ORDER BY logtime DESC " +
- "LIMIT 1")
- String getLastData(@Param("minutes") String minutes,
- @Param("devcode") String devcode);
-
- @Select("SELECT alarm_content " +
- "FROM base_alarm_content_type " +
- "WHERE device_type=#{deviceType}")
- String getGasMsgContent(@Param("deviceType")Long deviceType);
-
-
-}
diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java
new file mode 100644
index 0000000..e9456c1
--- /dev/null
+++ b/src/main/java/com/casic/dao/DeviceDataMapper.java
@@ -0,0 +1,18 @@
+package com.casic.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface DeviceDataMapper {
+
+ List> getDevcodeByType(@Param("devciceType") Integer devciceType);
+
+ List getRecentData(@Param("dataDay") Integer dataDay);
+
+ int updateOnlineByDevs(@Param("dataSortList") List dataSortDevcodeList);
+
+}
diff --git a/src/main/java/com/casic/dao/DeviceMapper.java b/src/main/java/com/casic/dao/DeviceMapper.java
deleted file mode 100644
index 73b574e..0000000
--- a/src/main/java/com/casic/dao/DeviceMapper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.Device;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Map;
-
-@Mapper
-public interface DeviceMapper extends BaseMapper {
-
- Map getWellCode(@Param("devcode") String devcode);
-
-}
diff --git a/src/main/java/com/casic/dao/impl/AlarmJobDao.java b/src/main/java/com/casic/dao/impl/AlarmJobDao.java
deleted file mode 100644
index 5131821..0000000
--- a/src/main/java/com/casic/dao/impl/AlarmJobDao.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.casic.dao.impl;
-
-import com.alibaba.druid.util.StringUtils;
-import com.casic.dao.AlarmJobMapper;
-import com.casic.entity.AlarmJob;
-import org.springframework.stereotype.Component;
-import xyz.downgoon.snowflake.Snowflake;
-
-import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-@Component
-public class AlarmJobDao {
-
- private static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMdd");
-
- private static Snowflake snowflake = new Snowflake(0, 2);
-// private static final Sn
-
- @Resource
- private AlarmJobMapper alarmJobMapper;
-
- public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) {
- AlarmJob alarmJob = new AlarmJob();
- alarmJob.setId(snowflake.nextId());
- alarmJob.setDevcode(devCode);
- alarmJob.setWellCode(wellCode);
- alarmJob.setJobStatus("0");
- alarmJob.setCreateTime(new Date());
- alarmJob.setJobcode(this.produceJobCode(devTypeName));
- alarmJob.setJobType(jobType);
- alarmJobMapper.insert(alarmJob);
- return alarmJob;
- }
-
- /**
- * 前缀+日期+4位流水号
- *
- * @param devTypeName
- * @return
- */
- private String produceJobCode(String devTypeName) {
- String pre = devTypeName;
- String dataStr = sdf6.format(new Date());
- String fix = this.getJobCodeMaxSerial(pre + dataStr);
- return StringUtils.isEmpty(fix) ? pre + dataStr + String.format("%04d", Long.valueOf(StringUtils.isEmpty(fix)?"0":fix) + 1L) : pre + dataStr + "0001";
- }
-
-
- private String getJobCodeMaxSerial(String jobcode) {
- String MaxSerialJobCode = alarmJobMapper.getJobCodeMaxSerial(jobcode);
- String fix = "";
- if (null != MaxSerialJobCode && MaxSerialJobCode.length() > 4) {
- fix = MaxSerialJobCode.substring(MaxSerialJobCode.length() - 4);
- }
- return fix;
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmJob.java b/src/main/java/com/casic/entity/AlarmJob.java
deleted file mode 100644
index 8a0f764..0000000
--- a/src/main/java/com/casic/entity/AlarmJob.java
+++ /dev/null
@@ -1,165 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- *
- * 报警工单表
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_job")
-public class AlarmJob extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- private Long id;
- /**
- * 工单编号
- */
- @TableField("JOBCODE")
- private String jobcode;
- /**
- * 工单类型
- */
- @TableField("JOG_TYPE")
- private String jobType;
- /**
- * 井编号
- */
- @TableField("WELL_CODE")
- private String wellCode;
- /**
- * 设备编号
- */
- @TableField("DEVCODE")
- private String devcode;
- /**
- * 工单创建时间
- */
- @TableField("CREATE_TIME")
- private Date createTime;
- /**
- * 工单状态(0待处理,1待确认,2处理中,3完成)
- */
- @TableField("JOB_STATUS")
- private String jobStatus;
- /**
- * 接单人员
- */
- @TableField("GET_JOB_PERSON")
- private Long getJobPerson;
- /**
- * 接单时间
- */
- @TableField("GET_JOB_TIME")
- private Date getJobTime;
- /**
- * 应接单时间
- */
- @TableField("SHOULD_GET_TIME")
- private Date shouldGetTime;
- /**
- * 第一现场情况
- */
- @TableField("FIRST_STATE")
- private String firstState;
- /**
- * 第一现场照片
- */
- @TableField("FIRST_STATE_PHOTOS")
- private String firstStatePhotos;
- /**
- * 确认人员
- */
- @TableField("CONFIRM_JOB_PERSON")
- private Long confirmJobPerson;
- /**
- * 确认时间
- */
- @TableField("CONFRIM_JOB_TIME")
- private Date confrimJobTime;
- /**
- * 处理人员
- */
- @TableField("HANDLE_JOB_Person")
- private Long handleJobPerson;
- /**
- * 处理时间
- */
- @TableField("HANDLE_JOB_TIME")
- private Date handleJobTime;
- /**
- * 维护情况记录
- */
- @TableField("HANDLE_MESSAGE")
- private String handleMessage;
- /**
- * 维护图片
- */
- @TableField("HANDLE_PHOTOS")
- private String handlePhotos;
- /**
- * 工单流转记录
- */
- @TableField("FLOW")
- private String flow;
-
- @TableField("JOB_BELONG_TO")
- private Long jobBelongTo;
-
- @TableField("JOB_FLAG_DELAY")
- private String jobFlagDelay;
-
- @TableField("JOB_FLAG_1")
- private String jobFlag1;
-
- @TableField(exist = false)
- private String alarmValue;
-
- @TableField(exist = false)
- private String alarmContentName;
-
- @TableField(exist = false)
- private Integer recordId;
-
- @Override
- public String toString() {
- return "AlarmJob{" +
- "id=" + id +
- ", jobcode=" + jobcode +
- ", jogType=" + jobType +
- ", wellCode=" + wellCode +
- ", devcode=" + devcode +
- ", createTime=" + createTime +
- ", jobStatus=" + jobStatus +
- ", getJobPerson=" + getJobPerson +
- ", getJobTime=" + getJobTime +
- ", firstState=" + firstState +
- ", firstStatePhotos=" + firstStatePhotos +
- ", confirmJobPerson=" + confirmJobPerson +
- ", confrimJobTime=" + confrimJobTime +
- ", handleJobPerson=" + handleJobPerson +
- ", handleJobTime=" + handleJobTime +
- ", handleMessage=" + handleMessage +
- ", handlePhotos=" + handlePhotos +
- ", flow=" + flow +
- ", recordId=" + recordId +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmRecord.java b/src/main/java/com/casic/entity/AlarmRecord.java
new file mode 100644
index 0000000..137d805
--- /dev/null
+++ b/src/main/java/com/casic/entity/AlarmRecord.java
@@ -0,0 +1,106 @@
+package com.casic.entity;
+
+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 com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *
+ *
+ *
+ *
+ * @author casic123
+ * @since 2019-05-17
+ */
+@Data
+@TableName("ALARM_ALARM_RECORD")
+public class AlarmRecord extends Model {
+
+
+ private static final long serialVersionUID = 1L;
+ /**
+ * 主键
+ */
+ @TableId(value = "DBID")
+ private Long dbid;
+ /**
+ * 设备编号
+ */
+ @TableField("DEVICE_CODE")
+ private String deviceCode;
+ /**
+ * 设备类型名称
+ */
+ @TableField("DEVICE_TYPE_NAME")
+ private String deviceTypeName;
+ /**
+ * 是否推送,默认0
+ */
+ @TableField("ISSEND")
+ private String issend;
+ /**
+ * 默认default
+ */
+ @TableField("ITEMNAME")
+ private String itemname;
+ /**
+ * 没有数值
+ */
+ @TableField("ITEMVALUE")
+ private String itemvalue;
+ /**
+ * 1
+ */
+ @TableField("MESSAGE")
+ private String message;
+ /**
+ * 0
+ */
+ @TableField("MESSAGE_STATUS")
+ private String messageStatus;
+
+
+ /**
+ * 0
+ */
+ @TableField("RECORDCODE")
+ private String recordcode;
+ /**
+ * 告警日期
+ */
+ @TableField("RECORDDATE")
+ private Date recorddate;
+ /**
+ * 工单编号
+ */
+ @TableField("DEVICE_ID")
+ private Long deviceId;
+
+ /**
+ * 删除标志,默认为1
+ */
+ private Integer active;
+
+ @Override
+ public String toString() {
+ return "AlarmRecord{" +
+ "dbid=" + dbid +
+ ", deviceCode='" + deviceCode + '\'' +
+ ", deviceTypeName='" + deviceTypeName + '\'' +
+ ", issend='" + issend + '\'' +
+ ", itemname='" + itemname + '\'' +
+ ", itemvalue='" + itemvalue + '\'' +
+ ", message='" + message + '\'' +
+ ", messageStatus='" + messageStatus + '\'' +
+ ", recordcode='" + recordcode + '\'' +
+ ", recorddate=" + recorddate +
+ ", deviceId=" + deviceId +
+ ", active=" + active +
+ '}';
+ }
+}
diff --git a/src/main/java/com/casic/entity/AlarmRecords.java b/src/main/java/com/casic/entity/AlarmRecords.java
deleted file mode 100644
index 88b0b26..0000000
--- a/src/main/java/com/casic/entity/AlarmRecords.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- *
- *
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_records")
-public class AlarmRecords extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- 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;
-
- @Override
- public String toString() {
- return "AlarmRecords{" +
- "id=" + id +
- ", deviceId=" + deviceId +
- ", devcode=" + devcode +
- ", wellCode=" + wellCode +
- ", alarmType=" + alarmType +
- ", alarmContent=" + alarmContent +
- ", alarmValue=" + alarmValue +
- ", alarmLevel=" + alarmLevel +
- ", alarmMessage=" + alarmMessage +
- ", alarmTime=" + alarmTime +
- ", status=" + status +
- ", jobId=" + jobId +
- ", jobStatus=" + jobStatus +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/ButaneData.java b/src/main/java/com/casic/entity/ButaneData.java
new file mode 100644
index 0000000..2e051be
--- /dev/null
+++ b/src/main/java/com/casic/entity/ButaneData.java
@@ -0,0 +1,28 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Builder;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@TableName("CASIC_BUTANE_INFO")
+@Builder
+public class ButaneData extends Model {
+
+ @TableId(value = "DBID")
+ private Long dbid;
+
+ private String devcode;
+
+ private String status;
+
+ private String descn;
+
+ private Date logtime;
+
+}
diff --git a/src/main/java/com/casic/entity/Device.java b/src/main/java/com/casic/entity/Device.java
new file mode 100644
index 0000000..0360e41
--- /dev/null
+++ b/src/main/java/com/casic/entity/Device.java
@@ -0,0 +1,27 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@TableName("ALARM_DEVICE")
+public class Device implements Serializable {
+ /**
+ * 设备基本信息表
+ */
+ private static final long serialVersionUID = -2023118078562324658L;
+ @TableId(value = "DBID")
+ private Long id;
+ @TableId(value = "DEVCODE")
+ private String devCode;
+ @TableId(value = "DEVNAME")
+ private String devName;
+ @TableId(value = "FACTORY")
+ private String factory;
+ @TableId(value = "SIMID")
+ private String simid; // SIM卡号
+
+}
diff --git a/src/main/java/com/casic/model/HostData.java b/src/main/java/com/casic/model/HostData.java
new file mode 100644
index 0000000..40cefa7
--- /dev/null
+++ b/src/main/java/com/casic/model/HostData.java
@@ -0,0 +1,16 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class HostData {
+ private String model;
+ private String dev_id;
+ private String chip_id;
+ private String mfd_day;
+ private String sw_ver;
+ private String hw_ver;
+ private String duration;
+ private String d_ch_cnt;
+ private String a_ch_cnt;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReceiveDataParam.java b/src/main/java/com/casic/model/ReceiveDataParam.java
new file mode 100644
index 0000000..3a17d24
--- /dev/null
+++ b/src/main/java/com/casic/model/ReceiveDataParam.java
@@ -0,0 +1,20 @@
+package com.casic.model;
+
+import lombok.Data;
+
+import java.util.HashMap;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReceiveDataParam {
+ private String deviceType;
+ private String iotId;
+ private String requestId;
+ private Object checkFailedData;
+ private String productKey;
+ private String deviceName;
+ private HashMap items;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReportUpdataParam.java b/src/main/java/com/casic/model/ReportUpdataParam.java
new file mode 100644
index 0000000..20c2ca9
--- /dev/null
+++ b/src/main/java/com/casic/model/ReportUpdataParam.java
@@ -0,0 +1,23 @@
+package com.casic.model;
+
+import lombok.Data;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReportUpdataParam {
+ private String msg_type;
+ private String event_change;
+ private String error_val;
+ private String ch_cnt;
+ private String erro_cnt;
+ private String alarm_low_cnt;
+ private String alarm_high_cnt;
+ private String offline_cnt;
+ private String rtd_val;
+ private String adc_val;
+ private String status_val;
+ private String time;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/WirelessData.java b/src/main/java/com/casic/model/WirelessData.java
new file mode 100644
index 0000000..b062c13
--- /dev/null
+++ b/src/main/java/com/casic/model/WirelessData.java
@@ -0,0 +1,19 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class WirelessData {
+ private String model;
+ private String IMEI;
+ private String ICCID;
+ private String sw_ver;
+ private String hw_ver;
+ private String ch_cnt;
+ private String heartbeat_inv;
+ private String up_pcnt;
+ private String up_pcnt_inv;
+ private String csq;
+}
+
+
diff --git a/src/main/java/com/casic/schedule/TaskConfigurer.java b/src/main/java/com/casic/schedule/TaskConfigurer.java
new file mode 100644
index 0000000..77c5d5a
--- /dev/null
+++ b/src/main/java/com/casic/schedule/TaskConfigurer.java
@@ -0,0 +1,47 @@
+package com.casic.schedule;
+
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+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
+@Slf4j
+@RequiredArgsConstructor
+public class TaskConfigurer implements SchedulingConfigurer {
+
+ @Value("${casic.device.online.cron}")
+ private String onlineStateCron;
+
+ private final DeviceDataService deviceDataService;
+
+ @Override
+ public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
+ TriggerTask onlineStateTask = new TriggerTask(nextDayDevice(),
+ triggerContext -> {
+ return new CronTrigger(onlineStateCron).nextExecutionTime(triggerContext);
+ });
+ taskRegistrar.addTriggerTask(onlineStateTask);
+ }
+
+ private Runnable nextDayDevice() {
+ return new Runnable() {
+ @Override
+ public void run() {
+ log.info("定时查询在线离线运行了...");
+ deviceDataService.checkAndUpdateDeviceOnline();
+ }
+ };
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/service/AlarmRecordFly.java b/src/main/java/com/casic/service/AlarmRecordFly.java
new file mode 100644
index 0000000..47c7969
--- /dev/null
+++ b/src/main/java/com/casic/service/AlarmRecordFly.java
@@ -0,0 +1,39 @@
+package com.casic.service;
+
+import com.casic.entity.AlarmRecord;
+
+public class AlarmRecordFly {
+
+ private static AlarmRecord alarmRecord;
+
+ static {
+ alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("0");
+ alarmRecord.setActive(1);
+ }
+
+ public static AlarmRecord getAlarmRecord() {
+ return alarmRecord;
+ }
+
+ public static AlarmRecord getPrototype(){
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("-1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("1");
+ alarmRecord.setActive(1);
+ return alarmRecord;
+ }
+
+
+
+
+}
diff --git a/src/main/java/com/casic/service/DeviceDataService.java b/src/main/java/com/casic/service/DeviceDataService.java
new file mode 100644
index 0000000..f972981
--- /dev/null
+++ b/src/main/java/com/casic/service/DeviceDataService.java
@@ -0,0 +1,7 @@
+package com.casic.service;
+
+public interface DeviceDataService {
+
+ void checkAndUpdateDeviceOnline();
+
+}
diff --git a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java
new file mode 100644
index 0000000..f41a44d
--- /dev/null
+++ b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java
@@ -0,0 +1,68 @@
+package com.casic.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.casic.dao.AlarmRecordsMapper;
+import com.casic.dao.DeviceDataMapper;
+import com.casic.entity.AlarmRecord;
+import com.casic.service.AlarmRecordFly;
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @author cz
+ */
+@Service
+@RequiredArgsConstructor
+public class DeviceDataServiceImpl extends ServiceImpl implements DeviceDataService {
+
+ private final DeviceDataMapper deviceDataMapper;
+
+ @Value("${casic.device.data-day}")
+ private Integer dataDay;
+
+ @Value("${casic.device.gas-dector.type}")
+ private Integer devciceType;
+
+
+ @Override
+ public void checkAndUpdateDeviceOnline() {
+ //查询硫化氢设备
+ List> devcodeList = deviceDataMapper.getDevcodeByType(devciceType);
+ //统一查询所有设备的3天内数据的设备编号,然后设备编号转成map,进行
+ List dataList = deviceDataMapper.getRecentData(dataDay);
+ List> dataSortDevcodeList = devcodeList;
+ if (dataList != null) {
+ Map devOnlineMap = new HashMap<>();
+ for (String devcodeData : dataList) {
+ devOnlineMap.put(devcodeData, "");
+ }
+ dataSortDevcodeList = dataSortDevcodeList.stream().filter(
+ e -> !devOnlineMap.containsKey((String) e.get("devcode"))).collect(Collectors.toList());
+ }
+ //批量产生离线报警
+ if (CollectionUtils.isNotEmpty(dataSortDevcodeList)) {
+ List alarmRecords = new ArrayList<>();
+ for (Map dataDevcodeMap : dataSortDevcodeList) {
+ alarmRecords.add(createAlarmRecord(((BigDecimal)dataDevcodeMap.get("id")).longValue(), (String) dataDevcodeMap.get("devcode")));
+ }
+ this.saveBatch(alarmRecords);
+ }
+ }
+
+ private AlarmRecord createAlarmRecord(Long id, String devcode) {
+ AlarmRecord alarmRecord = AlarmRecordFly.getPrototype();
+ alarmRecord.setRecorddate(new Date());
+ alarmRecord.setDbid(null);
+ alarmRecord.setDeviceCode(devcode);
+ alarmRecord.setDeviceId(id);
+ return alarmRecord;
+ }
+
+}
diff --git a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
index 4591d50..176b389 100644
--- a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
@@ -1,53 +1,41 @@
package com.casic.service.impl;
-import com.alibaba.druid.util.StringUtils;
-import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.casic.dao.AlarmRecordsMapper;
-import com.casic.dao.DataGasMapper;
-import com.casic.dao.DeviceMapper;
-import com.casic.dao.impl.AlarmJobDao;
-import com.casic.entity.AlarmJob;
-import com.casic.entity.AlarmRecords;
-import com.casic.entity.DataGasDector;
+import com.casic.dao.ButaneDataMapper;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.ButaneData;
import com.casic.entity.Device;
import com.casic.model.ResponseData;
+import com.casic.service.AlarmRecordFly;
import com.casic.service.DeviceService;
+import com.casic.util.SendUtil;
+import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import xyz.downgoon.snowflake.Snowflake;
-import javax.annotation.Resource;
import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import java.util.function.Supplier;
@Slf4j
@Service
+@RequiredArgsConstructor
public class DeviceServiceImpl implements DeviceService {
-
- @Value("${casic.device.gas-dector.enable-local}")
- private Boolean enableLocal;
- @Value("${casic.device.gas-dector.type}")
- private Long deviceType;
- @Resource
- private DataGasMapper dataGasMapper;
- @Resource
- private AlarmRecordsMapper alarmRecordsMapper;
- @Resource
- private DeviceMapper deviceMapper;
- @Autowired
- private AlarmJobDao alarmJobDao;
+ private final ButaneDataMapper butaneDataMapper;
+ private final AlarmRecordsMapper alarmRecordsMapper;
private static Snowflake snowflake = new Snowflake(0, 2);
+ @Autowired
+ private SendUtil sendUtil;
@Override
public ResponseData testMysql() {
+
ResponseData responseData = new ResponseData();
responseData.setMessage("保存成功");
responseData.setCode(1);
@@ -62,18 +50,16 @@
public ResponseData saveDataGas(Map receiveData) {
ResponseData responseData = new ResponseData();
try {
- Map payloadData;
+ Map payloadData = receiveData;
if (receiveData.containsKey("payload")) {
payloadData = (Map) receiveData.get("payload");
- }else{
- payloadData=receiveData;
}
- this.flagSelectProcessor("eventType", payloadData, () -> gasStatusUpdate(payloadData))
- .flagSelectProcessor("gas_sample_value", payloadData, () -> dealNormalData(receiveData));
+ this.flagSelectProcessor("gas_sensor_state", payloadData, () -> gasStatusUpdate(receiveData))
+ .flagSelectProcessor("heartbeat_time", payloadData, () -> dealNormalData(receiveData));
responseData.setCode(200);
responseData.setMessage("保存成功");
} catch (Exception dex) {
- log.error("主题:广东台燃气设备存储异常,异常信息:{}", dex.getMessage());
+ log.error("主题:燃气设备存储异常,异常信息:{}", dex.getMessage());
responseData.setCode(500);
responseData.setMessage("保存异常");
}
@@ -95,99 +81,110 @@
* @return
*/
private Boolean gasStatusUpdate(Map receiveData) {
- Long lonTimetemp = Long.valueOf(receiveData.get("timestamp").toString());
- String onlindeStatus = receiveData.get("eventType").toString();
- String devcode = receiveData.get("imei").toString();
- QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("devcode", devcode);
- queryWrapper.eq("valid", 1);
- Device device = new Device();
- if (!StringUtils.isEmpty(onlindeStatus)) {
- device.setOnlineState(onlindeStatus);
- Date logTime = new Date();
- logTime.setTime(lonTimetemp);
- device.setLogtime(logTime);
- deviceMapper.update(device, queryWrapper);
- return true;
+ AlarmRecord alarmRecord = AlarmRecordFly.getAlarmRecord();
+ Map payloadData = (Map) receiveData.get("payload");
+ //判断事件类型 0正常 1低报 2高报
+ String alarmSituation = payloadData.get("gas_sensor_state").toString();
+ String devcode = receiveData.get("IMEI").toString();
+ clearOnlineData(devcode);
+ //构建数据
+ ButaneData butaneData = ButaneData.builder()
+ .devcode(devcode)
+ .dbid(snowflake.nextId())
+ .build();
+ populateTime(receiveData, butaneData, alarmRecord);
+ switch (alarmSituation) {
+ case "0":
+// butaneData.setDescn("状态正常");
+// butaneData.setStatus("0");
+ break;
+ default:
+ //第一条上来,消除报警
+ clearAlarmData(devcode);
+ //产生新的报警,消除报警
+ butaneData.setDescn("可燃气体探测器报警");
+ butaneData.setStatus("1");
+ synchronized (alarmRecord) {
+ alarmRecord.setDbid(null);
+ alarmRecord.setDeviceCode(devcode);
+ alarmRecord.setDeviceId(alarmRecordsMapper.getDevcode(devcode));
+ alarmRecordsMapper.insert(alarmRecord);
+ }
+ butaneDataMapper.insert(butaneData);
+
+ try {
+ //推送短信至第三方
+ Device device = alarmRecordsMapper.getDevice(devcode);
+ if (null == device) {
+ log.error("设备不存在,编号:" + devcode);
+ return false;
+ }
+ JSONObject eventObj = new JSONObject();
+ eventObj.put("type", "燃气报警");
+ sendUtil.sendEventBySms(device, eventObj);
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ }
}
- return false;
+ return true;
}
public Boolean dealNormalData(Map receiveData) {
String devcode = receiveData.get("IMEI").toString();
- if (!StringUtils.isEmpty(devcode)) {
- Map deviceMap = deviceMapper.getWellCode(devcode);
- //保存数据,无论是否有设备在库内
- DataGasDector dataGasDector = this.saveNormalData(receiveData, deviceMap);
- if (ObjectUtils.isEmpty(deviceMap)) {
- log.info("没有该设备编号录入" + devcode);
- if (enableLocal) {
- return true;
- }
- }
- //自动消除报警
- this.alarmRecordsMapper.clearAlarm(devcode);
- this.dataTaskJudge(deviceMap, dataGasDector);
- return true;
+ //第一条上来,清除离线
+ clearOnlineData(devcode);
+ ButaneData butaneData = ButaneData.builder()
+ .devcode(devcode)
+ .dbid(snowflake.nextId())
+ .descn("状态正常")
+ .status("0")
+ .build();
+ if (!ObjectUtils.isEmpty(receiveData) && receiveData.containsKey("timestamp")) {
+ butaneData.setLogtime(new Date(Long.valueOf(receiveData.get("timestamp").toString())));
+ } else {
+ butaneData.setLogtime(new Date());
}
+ butaneDataMapper.insert(butaneData);
return false;
}
- private DataGasDector saveNormalData(Map receiveData, Map deviceMap) {
- DataGasDector dataGasDector = new DataGasDector();
- dataGasDector.setId(snowflake.nextId());
- dataGasDector.setDevcode(receiveData.get("IMEI").toString());
- dataGasDector.setWellCode(!ObjectUtils.isEmpty(deviceMap) && deviceMap.containsKey("wellCode") ? deviceMap.get("wellCode").toString() : "");
- dataGasDector.setLogtime(new Date());
+ private void populateTime(Map receiveData, ButaneData butaneData, AlarmRecord alarmRecord) {
if (!ObjectUtils.isEmpty(receiveData) && receiveData.containsKey("timestamp")) {
- dataGasDector.setUptime(new Date(Long.valueOf(receiveData.get("timestamp").toString())));
+ Date logtime = new Date(Long.valueOf(receiveData.get("timestamp").toString()));
+ butaneData.setLogtime(logtime);
+ alarmRecord.setRecorddate(logtime);
} else {
- dataGasDector.setUptime(new Date());
+ alarmRecord.setRecorddate(new Date());
+ butaneData.setLogtime(new Date());
}
- Map gascontent = (Map)receiveData.get("payload");
- if (!ObjectUtils.isEmpty(gascontent)) {
- if (gascontent.containsKey("gas_sample_value")) {
- dataGasDector.setStrength(gascontent.get("gas_sample_value").toString());
- }
- }
- dataGasMapper.insert(dataGasDector);
- return dataGasDector;
}
- /**
- * 报警存库
- */
- private void dataTaskJudge(Map deviceMap, DataGasDector dataGasDector) {
- List> alarmLevelList = dataGasMapper.getAlarmLevelList(deviceType);
- String wellCode = dataGasDector.getWellCode();
- Long deviceId = !ObjectUtils.isEmpty(deviceMap) && deviceMap.containsKey("wellCode") ? Long.valueOf(String.valueOf(deviceMap.get("deviceId"))) : -1;
- final String gasMsgContent = dataGasMapper.getGasMsgContent(deviceType);
- for (Map alarmLevelMap : alarmLevelList) {
- if (Float.valueOf(dataGasDector.getStrength()) > Float.valueOf(String.valueOf(alarmLevelMap.get("high_value")))) {
- AlarmRecords alarmRecord = new AlarmRecords();
- alarmRecord.setId(snowflake.nextId());
- alarmRecord.setDeviceId(deviceId);
- alarmRecord.setDevcode(dataGasDector.getDevcode());
- alarmRecord.setWellCode(wellCode);
- alarmRecord.setAlarmType("1"); // 业务报警
- alarmRecord.setAlarmContent(gasMsgContent);
- alarmRecord.setAlarmValue(dataGasDector.getStrength());
- alarmRecord.setAlarmTime(new Date());
- alarmRecord.setStatus("1");
- alarmRecord.setAlarmLevel(Integer.valueOf(alarmLevelMap.get("level").toString()));
- alarmRecord.setAlarmMessage(gasMsgContent);
- String jobId = alarmRecordsMapper.isOldAlarmRecord(dataGasDector.getDevcode(), gasMsgContent);
- // 超出报警阈值 生成一条报警消息
- if (!StringUtils.isEmpty(jobId)) {
- alarmRecordsMapper.updateOldAlarmRecord(dataGasDector.getDevcode(), gasMsgContent);
- alarmRecord.setJobId(Long.valueOf(jobId));
- } else {
- AlarmJob alarmJob = alarmJobDao.saveData(dataGasDector.getStrength(), wellCode, "RQZD", "1");
- alarmRecord.setJobId(alarmJob.getId());
- }
- alarmRecordsMapper.insert(alarmRecord);
- break;
- }
+ private void clearAlarmData(String devcode) {
+ QueryWrapper queryWrapper = new QueryWrapper();
+ queryWrapper.eq("DEVICE_CODE", devcode);
+ queryWrapper.eq("ACTIVE", 1);
+ try {
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setActive(0);
+ alarmRecordsMapper.update(alarmRecord, queryWrapper);
+ } catch (Exception e) {
+ log.error("清除报警失败,设备编号为{},异常信息{}", devcode, e);
}
}
+
+ private void clearOnlineData(String devcode) {
+ QueryWrapper queryWrapper = new QueryWrapper();
+ queryWrapper.eq("DEVICE_CODE", devcode);
+ queryWrapper.eq("ACTIVE", 1);
+ queryWrapper.eq("MESSAGE_STATUS", "0");
+ queryWrapper.eq("RECORDCODE", "1");
+ try {
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setActive(0);
+ alarmRecordsMapper.update(alarmRecord, queryWrapper);
+ } catch (Exception e) {
+ log.error("清除报警失败,设备编号为{},异常信息{}", devcode, e);
+ }
+ }
+
}
diff --git a/src/main/java/com/casic/util/ConestUtil.java b/src/main/java/com/casic/util/ConestUtil.java
deleted file mode 100644
index 2a4d305..0000000
--- a/src/main/java/com/casic/util/ConestUtil.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package com.casic.util;
-
-public class ConestUtil {
-
-
-}
diff --git a/src/main/java/com/casic/util/DateUtils.java b/src/main/java/com/casic/util/DateUtils.java
new file mode 100644
index 0000000..db2ed9c
--- /dev/null
+++ b/src/main/java/com/casic/util/DateUtils.java
@@ -0,0 +1,63 @@
+package com.casic.util;
+
+import java.text.SimpleDateFormat;
+
+/**
+ * Created by Administrator on 2015/2/25.
+ */
+public class DateUtils {
+ public static SimpleDateFormat sdf_day = new SimpleDateFormat("yyyy-MM-dd");
+ public static SimpleDateFormat sdf_day_time = new SimpleDateFormat("yyyyMMddHHmmss");
+ public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ public static final SimpleDateFormat sdf5 = new SimpleDateFormat("HH:mm:ss");
+ public static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+
+
+ public static String DateFormat(String dataString) {
+
+ String strymd = dataString.substring(0, 8);
+ String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " ";
+ String strhms = dataString.substring(8);
+ String str2 = strhms.substring(0, 2) + ":" + strhms.substring(2, 4) + ":" + strhms.substring(4, 6);
+ dataString = str1 + str2;
+ return dataString;
+ }
+
+ public static String DateFormatDate(String dataString) {
+
+ String strymd = dataString.substring(0, 8);
+ return strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8);
+ }
+
+ public static String DateFormatTime(String dataString) {
+
+ String strhms = dataString.substring(8);
+ return strhms.substring(0, 2) + ":" + strhms.substring(2, 4) + ":" + strhms.substring(4, 6);
+ }
+
+ /**
+ * 比较两个时间 时分秒 大小
+ *
+ * @param s1
+ * @param s2
+ * @return
+ */
+ public static boolean compTime(String s1, String s2) {
+ try {
+ if (s1.indexOf(":") < 0 || s1.indexOf(":") < 0) {
+ System.out.println("格式不正确");
+ } else {
+ String[] array1 = s1.split(":");
+ int total1 = Integer.valueOf(array1[0]) * 3600 + Integer.valueOf(array1[1]) * 60;
+ String[] array2 = s2.split(":");
+ int total2 = Integer.valueOf(array2[0]) * 3600 + Integer.valueOf(array2[1]) * 60;
+ return total1 - total2 > 0 ? true : false;
+ }
+ } catch (NumberFormatException e) {
+ // TODO Auto-generated catch block
+ return false;
+ }
+ return false;
+
+ }
+}
diff --git a/src/main/java/com/casic/util/HttpClientUtils.java b/src/main/java/com/casic/util/HttpClientUtils.java
new file mode 100644
index 0000000..91a631e
--- /dev/null
+++ b/src/main/java/com/casic/util/HttpClientUtils.java
@@ -0,0 +1,40 @@
+package com.casic.util;
+
+
+import com.alibaba.fastjson.JSONObject;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpStatus;
+import org.apache.commons.httpclient.methods.PostMethod;
+
+import java.io.IOException;
+
+public class HttpClientUtils {
+
+
+
+ public static String post(String url, String body, JSONObject header) {
+ HttpClient client = new HttpClient();
+ client.setTimeout(30000);
+ PostMethod method = new PostMethod(url);
+ // for (Map.Entry entry : headers.entrySet()) {
+ method.addRequestHeader("Content-type", "application/json; charset=utf-8");
+ method.addRequestHeader("Accept", "application/json");
+ method.addRequestHeader("X-APP-KEY", header.getString("X-APP-KEY"));
+ method.setRequestBody(body);
+ try {
+ int statusCode = client.executeMethod(method);
+ if (statusCode == HttpStatus.SC_OK) {
+ return new String(method.getResponseBody(), "UTF-8");
+ }
+
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+}
diff --git a/src/main/java/com/casic/util/SendUtil.java b/src/main/java/com/casic/util/SendUtil.java
new file mode 100644
index 0000000..2d73db1
--- /dev/null
+++ b/src/main/java/com/casic/util/SendUtil.java
@@ -0,0 +1,67 @@
+package com.casic.util;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.casic.entity.Device;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+@Slf4j
+@Component
+public class SendUtil {
+ @Value("${casic.synchronizeSms.enabled}")
+ private String enabled;
+ @Value("${casic.smsSenderURL}")
+ private String smsSenderUrl;
+ @Value("${casic.X-APP-KEY-SMS}")
+ private String smsAppKey;
+
+ public void sendEventBySms(Device device, JSONObject eventObj) {
+ if ("true".equals(enabled)) {
+// String smsSenderUrl = Configure.getProperty("smsSenderURL", "http://general.bushub.rj.prd/sms/user/send");
+// String smsAppKey = Configure.getProperty("X-APP-KEY-SMS", "2d3a8e35-0533-42a0-97a2-63f82a3216f9");
+ String sim = device.getSimid();
+ if (null == sim || StringUtils.isBlank(sim)) {
+ return;
+ }
+
+ if (null == smsAppKey || StringUtils.isBlank(smsAppKey)) {
+ return;
+ }
+
+ JSONObject header = new JSONObject();
+ header.put("X-APP-KEY", smsAppKey);
+
+ StringBuilder params = new StringBuilder();
+ params.append("{");
+ params.append("\"mobile\":");
+ params.append("\"").append(sim).append("\"").append(",");
+
+ String prefix = "【智慧蓉江】";
+ String eventTm = DateUtils.sdf4.format(new Date());
+ String devName = device.getDevName();
+ String place = device.getFactory();
+
+ StringBuilder content = new StringBuilder("");
+ content.append(prefix);
+ content.append(eventTm).append(",");
+ content.append("管网监测设备[").append(devName).append("],");
+ content.append("发生").append(eventObj.getString("type")).append(",");
+ if (eventObj.containsKey("value") == true) {
+ content.append(eventObj.getString("value")).append(",");
+ }
+ content.append("详细地址是:").append(place).append(",");
+ content.append("请关注并及时处理。");
+
+ params.append("\"content\":");
+ params.append("\"").append(content.toString()).append("\"");
+ params.append("}");
+
+ String resp = HttpClientUtils.post(smsSenderUrl, params.toString(), header);
+ log.info("已发送短信"+resp);
+ }
+ }
+}
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 4807974..d47010a 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -1,12 +1,12 @@
server:
- port: 5907
+ port: 5001
################### spring配置 ###################
spring:
datasource:
- driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://111.198.10.15:11102/smartwell_gdt?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=GMT%2B8&&allowMultiQueries=true&&useSSL=true
- username: root
- password: Casic203!
+ driverClassName: oracle.jdbc.driver.OracleDriver
+ url: jdbc:oracle:thin:@11.100.6.183:1521:orcl
+ username: gzsg
+ password: gzsg
session:
store-type: redis
redis:
@@ -19,8 +19,15 @@
# session:
#flowable数据源和多数据源配置
logging:
- level.root: error
- level.com.casic: error
+ level.root: info
+ level.com.casic: debug
+ level.org.springframework.web: info
file:
path: logs/
- name: missiles.log
\ No newline at end of file
+ name: missiles.log
+#短信推送
+casic:
+ synchronizeSms.enabled: true
+ smsSenderURL: http://general.bushub.rj.prd/sms/user/send
+ X-APP-KEY-SMS: 2d3a8e35-0533-42a0-97a2-63f82a3216f9
+ sms-prefix: 【智慧蓉江】
\ No newline at end of file
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 4038629..21ecda8 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -24,6 +24,9 @@
casic:
device:
gas-dector:
- type: 10
+ type: 30
minutes: 60
- enable-local: false
\ No newline at end of file
+ enable-local: false
+ data-day: 1 # 时间多少的为离线
+ online:
+ cron: 0 0/1 * * * ? # 多长时间判断离线
\ No newline at end of file
diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..c0c7ac9
--- /dev/null
+++ b/src/main/resources/logback-spring.xml
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ ${CONSOLE_LOG_PATTERN}
+ utf-8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${CONSOLE_LOG_PATTERN}
+ utf-8
+
+
+
+
+
+
+
+ ${LOG_PATH}/missiles_error.log
+
+
+
+
+
+ ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log
+
+
+
+ 10MB
+
+
+
+
+ true
+
+
+
+ ${FILE_LOG_PATTERN}
+ utf-8
+
+
+
+
+ error
+ ACCEPT
+ DENY
+
+
+
+
+
+
+
+ ${LOG_PATH}/missiles_total.log
+
+
+
+
+
+ ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log
+
+
+
+ 10MB
+
+
+
+
+ true
+
+
+
+ ${FILE_LOG_PATTERN}
+ utf-8
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/mapper/DeviceDataMapper.xml b/src/main/resources/mapper/DeviceDataMapper.xml
new file mode 100644
index 0000000..4e15de9
--- /dev/null
+++ b/src/main/resources/mapper/DeviceDataMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/mapper/DeviceMapper.xml b/src/main/resources/mapper/DeviceMapper.xml
new file mode 100644
index 0000000..d04d912
--- /dev/null
+++ b/src/main/resources/mapper/DeviceMapper.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+ UPDATE BUS_DEVICE
+ SET ONLINE_STATE=0
+ WHERE VALID=1
+ AND DEVCODE IN
+
+ #{item}
+
+
+
+
+
\ No newline at end of file
diff --git a/target/classes/application-dev.yml b/target/classes/application-dev.yml
index 5c64ca8..8a5929a 100644
--- a/target/classes/application-dev.yml
+++ b/target/classes/application-dev.yml
@@ -1,12 +1,12 @@
server:
- port: 11520
+ port: 5001
################### spring配置 ###################
spring:
datasource:
- driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://111.198.10.15:11102/smartwell_gdt?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=GMT%2B8&&allowMultiQueries=true&&useSSL=true
- username: root
- password: Casic203!
+ driverClassName: oracle.jdbc.driver.OracleDriver
+ url: jdbc:oracle:thin:@11.100.6.181:1521:orcl
+ username: gzsg
+ password: gzsg
session:
store-type: redis
redis:
@@ -19,8 +19,15 @@
# session:
#flowable数据源和多数据源配置
logging:
- level.root: error
- level.com.casic: error
+ level.root: info
+ level.com.casic: debug
+ level.org.springframework.web: info
file:
path: logs/
- name: missiles.log
\ No newline at end of file
+ name: missiles.log
+#短信推送
+casic:
+ synchronizeSms.enabled: true
+ smsSenderURL: http://general.bushub.rj.prd/sms/user/send
+ X-APP-KEY-SMS: 2d3a8e35-0533-42a0-97a2-63f82a3216f9
+ sms-prefix: 【智慧蓉江】
\ No newline at end of file
diff --git a/target/classes/com/casic/controller/DeviceController.class b/target/classes/com/casic/controller/DeviceController.class
index 0813269..fd9b8ca 100644
--- a/target/classes/com/casic/controller/DeviceController.class
+++ b/target/classes/com/casic/controller/DeviceController.class
Binary files differ
diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/src/main/java/com/casic/dao/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index fde1818..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -1,36 +1,24 @@
package com.casic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmRecords;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.Device;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
@Mapper
-public interface AlarmRecordsMapper extends BaseMapper {
+public interface AlarmRecordsMapper extends BaseMapper {
+ @Select("SELECT DBID " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Long getDevcode(@Param("devcode") String devcode);
- @Select("SELECT JOB_ID AS \"jobId\"\n " +
- "FROM alarm_records\n " +
- "WHERE DEVCODE = #{devcode}\n " +
- "AND ALARM_CONTENT = #{MsgContent}\n " +
- "AND STATUS='1'\n " +
- "AND JOB_ID>0 ")
- String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='0'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND ALARM_CONTENT = #{MsgContent}\n" +
- " AND STATUS='1'")
- Integer updateOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='3'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND STATUS='1'")
- Integer clearAlarm(@Param("devcode") String devcode);
-
+ @Select("SELECT DBID as id, DEVCODE as devCode, DEVNAME as devName, FACTORY as factory, SIMID as simid " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Device getDevice(@Param("devcode") String devcode);
}
diff --git a/src/main/java/com/casic/dao/ButaneDataMapper.java b/src/main/java/com/casic/dao/ButaneDataMapper.java
new file mode 100644
index 0000000..632c7d2
--- /dev/null
+++ b/src/main/java/com/casic/dao/ButaneDataMapper.java
@@ -0,0 +1,12 @@
+package com.casic.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.entity.ButaneData;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface ButaneDataMapper extends BaseMapper {
+
+
+}
diff --git a/src/main/java/com/casic/dao/DataGasMapper.java b/src/main/java/com/casic/dao/DataGasMapper.java
deleted file mode 100644
index 8a064f2..0000000
--- a/src/main/java/com/casic/dao/DataGasMapper.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.DataGasDector;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-
-import java.util.List;
-import java.util.Map;
-
-@Mapper
-public interface DataGasMapper extends BaseMapper {
-
- @Select("SELECT level,high_value " +
- "FROM alarm_level " +
- "WHERE device_type=#{deviceType} ")
- List> getAlarmLevelList(@Param("deviceType") Long deviceType);
-
- @Select("SELECT devcode " +
- "FROM data_gas_dector " +
- "WHERE devcode=#{devcode} " +
- "AND (EXTRACT(epoch FROM CAST(now() AS TIMESTAMPTZ))-EXTRACT(epoch FROM CAST(logtime AS TIMESTAMPTZ)))/60.0 < ${minutes} "+
- "ORDER BY logtime DESC " +
- "LIMIT 1")
- String getLastData(@Param("minutes") String minutes,
- @Param("devcode") String devcode);
-
- @Select("SELECT alarm_content " +
- "FROM base_alarm_content_type " +
- "WHERE device_type=#{deviceType}")
- String getGasMsgContent(@Param("deviceType")Long deviceType);
-
-
-}
diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java
new file mode 100644
index 0000000..e9456c1
--- /dev/null
+++ b/src/main/java/com/casic/dao/DeviceDataMapper.java
@@ -0,0 +1,18 @@
+package com.casic.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface DeviceDataMapper {
+
+ List> getDevcodeByType(@Param("devciceType") Integer devciceType);
+
+ List getRecentData(@Param("dataDay") Integer dataDay);
+
+ int updateOnlineByDevs(@Param("dataSortList") List dataSortDevcodeList);
+
+}
diff --git a/src/main/java/com/casic/dao/DeviceMapper.java b/src/main/java/com/casic/dao/DeviceMapper.java
deleted file mode 100644
index 73b574e..0000000
--- a/src/main/java/com/casic/dao/DeviceMapper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.Device;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Map;
-
-@Mapper
-public interface DeviceMapper extends BaseMapper {
-
- Map getWellCode(@Param("devcode") String devcode);
-
-}
diff --git a/src/main/java/com/casic/dao/impl/AlarmJobDao.java b/src/main/java/com/casic/dao/impl/AlarmJobDao.java
deleted file mode 100644
index 5131821..0000000
--- a/src/main/java/com/casic/dao/impl/AlarmJobDao.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.casic.dao.impl;
-
-import com.alibaba.druid.util.StringUtils;
-import com.casic.dao.AlarmJobMapper;
-import com.casic.entity.AlarmJob;
-import org.springframework.stereotype.Component;
-import xyz.downgoon.snowflake.Snowflake;
-
-import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-@Component
-public class AlarmJobDao {
-
- private static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMdd");
-
- private static Snowflake snowflake = new Snowflake(0, 2);
-// private static final Sn
-
- @Resource
- private AlarmJobMapper alarmJobMapper;
-
- public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) {
- AlarmJob alarmJob = new AlarmJob();
- alarmJob.setId(snowflake.nextId());
- alarmJob.setDevcode(devCode);
- alarmJob.setWellCode(wellCode);
- alarmJob.setJobStatus("0");
- alarmJob.setCreateTime(new Date());
- alarmJob.setJobcode(this.produceJobCode(devTypeName));
- alarmJob.setJobType(jobType);
- alarmJobMapper.insert(alarmJob);
- return alarmJob;
- }
-
- /**
- * 前缀+日期+4位流水号
- *
- * @param devTypeName
- * @return
- */
- private String produceJobCode(String devTypeName) {
- String pre = devTypeName;
- String dataStr = sdf6.format(new Date());
- String fix = this.getJobCodeMaxSerial(pre + dataStr);
- return StringUtils.isEmpty(fix) ? pre + dataStr + String.format("%04d", Long.valueOf(StringUtils.isEmpty(fix)?"0":fix) + 1L) : pre + dataStr + "0001";
- }
-
-
- private String getJobCodeMaxSerial(String jobcode) {
- String MaxSerialJobCode = alarmJobMapper.getJobCodeMaxSerial(jobcode);
- String fix = "";
- if (null != MaxSerialJobCode && MaxSerialJobCode.length() > 4) {
- fix = MaxSerialJobCode.substring(MaxSerialJobCode.length() - 4);
- }
- return fix;
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmJob.java b/src/main/java/com/casic/entity/AlarmJob.java
deleted file mode 100644
index 8a0f764..0000000
--- a/src/main/java/com/casic/entity/AlarmJob.java
+++ /dev/null
@@ -1,165 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- *
- * 报警工单表
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_job")
-public class AlarmJob extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- private Long id;
- /**
- * 工单编号
- */
- @TableField("JOBCODE")
- private String jobcode;
- /**
- * 工单类型
- */
- @TableField("JOG_TYPE")
- private String jobType;
- /**
- * 井编号
- */
- @TableField("WELL_CODE")
- private String wellCode;
- /**
- * 设备编号
- */
- @TableField("DEVCODE")
- private String devcode;
- /**
- * 工单创建时间
- */
- @TableField("CREATE_TIME")
- private Date createTime;
- /**
- * 工单状态(0待处理,1待确认,2处理中,3完成)
- */
- @TableField("JOB_STATUS")
- private String jobStatus;
- /**
- * 接单人员
- */
- @TableField("GET_JOB_PERSON")
- private Long getJobPerson;
- /**
- * 接单时间
- */
- @TableField("GET_JOB_TIME")
- private Date getJobTime;
- /**
- * 应接单时间
- */
- @TableField("SHOULD_GET_TIME")
- private Date shouldGetTime;
- /**
- * 第一现场情况
- */
- @TableField("FIRST_STATE")
- private String firstState;
- /**
- * 第一现场照片
- */
- @TableField("FIRST_STATE_PHOTOS")
- private String firstStatePhotos;
- /**
- * 确认人员
- */
- @TableField("CONFIRM_JOB_PERSON")
- private Long confirmJobPerson;
- /**
- * 确认时间
- */
- @TableField("CONFRIM_JOB_TIME")
- private Date confrimJobTime;
- /**
- * 处理人员
- */
- @TableField("HANDLE_JOB_Person")
- private Long handleJobPerson;
- /**
- * 处理时间
- */
- @TableField("HANDLE_JOB_TIME")
- private Date handleJobTime;
- /**
- * 维护情况记录
- */
- @TableField("HANDLE_MESSAGE")
- private String handleMessage;
- /**
- * 维护图片
- */
- @TableField("HANDLE_PHOTOS")
- private String handlePhotos;
- /**
- * 工单流转记录
- */
- @TableField("FLOW")
- private String flow;
-
- @TableField("JOB_BELONG_TO")
- private Long jobBelongTo;
-
- @TableField("JOB_FLAG_DELAY")
- private String jobFlagDelay;
-
- @TableField("JOB_FLAG_1")
- private String jobFlag1;
-
- @TableField(exist = false)
- private String alarmValue;
-
- @TableField(exist = false)
- private String alarmContentName;
-
- @TableField(exist = false)
- private Integer recordId;
-
- @Override
- public String toString() {
- return "AlarmJob{" +
- "id=" + id +
- ", jobcode=" + jobcode +
- ", jogType=" + jobType +
- ", wellCode=" + wellCode +
- ", devcode=" + devcode +
- ", createTime=" + createTime +
- ", jobStatus=" + jobStatus +
- ", getJobPerson=" + getJobPerson +
- ", getJobTime=" + getJobTime +
- ", firstState=" + firstState +
- ", firstStatePhotos=" + firstStatePhotos +
- ", confirmJobPerson=" + confirmJobPerson +
- ", confrimJobTime=" + confrimJobTime +
- ", handleJobPerson=" + handleJobPerson +
- ", handleJobTime=" + handleJobTime +
- ", handleMessage=" + handleMessage +
- ", handlePhotos=" + handlePhotos +
- ", flow=" + flow +
- ", recordId=" + recordId +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmRecord.java b/src/main/java/com/casic/entity/AlarmRecord.java
new file mode 100644
index 0000000..137d805
--- /dev/null
+++ b/src/main/java/com/casic/entity/AlarmRecord.java
@@ -0,0 +1,106 @@
+package com.casic.entity;
+
+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 com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *
+ *
+ *
+ *
+ * @author casic123
+ * @since 2019-05-17
+ */
+@Data
+@TableName("ALARM_ALARM_RECORD")
+public class AlarmRecord extends Model {
+
+
+ private static final long serialVersionUID = 1L;
+ /**
+ * 主键
+ */
+ @TableId(value = "DBID")
+ private Long dbid;
+ /**
+ * 设备编号
+ */
+ @TableField("DEVICE_CODE")
+ private String deviceCode;
+ /**
+ * 设备类型名称
+ */
+ @TableField("DEVICE_TYPE_NAME")
+ private String deviceTypeName;
+ /**
+ * 是否推送,默认0
+ */
+ @TableField("ISSEND")
+ private String issend;
+ /**
+ * 默认default
+ */
+ @TableField("ITEMNAME")
+ private String itemname;
+ /**
+ * 没有数值
+ */
+ @TableField("ITEMVALUE")
+ private String itemvalue;
+ /**
+ * 1
+ */
+ @TableField("MESSAGE")
+ private String message;
+ /**
+ * 0
+ */
+ @TableField("MESSAGE_STATUS")
+ private String messageStatus;
+
+
+ /**
+ * 0
+ */
+ @TableField("RECORDCODE")
+ private String recordcode;
+ /**
+ * 告警日期
+ */
+ @TableField("RECORDDATE")
+ private Date recorddate;
+ /**
+ * 工单编号
+ */
+ @TableField("DEVICE_ID")
+ private Long deviceId;
+
+ /**
+ * 删除标志,默认为1
+ */
+ private Integer active;
+
+ @Override
+ public String toString() {
+ return "AlarmRecord{" +
+ "dbid=" + dbid +
+ ", deviceCode='" + deviceCode + '\'' +
+ ", deviceTypeName='" + deviceTypeName + '\'' +
+ ", issend='" + issend + '\'' +
+ ", itemname='" + itemname + '\'' +
+ ", itemvalue='" + itemvalue + '\'' +
+ ", message='" + message + '\'' +
+ ", messageStatus='" + messageStatus + '\'' +
+ ", recordcode='" + recordcode + '\'' +
+ ", recorddate=" + recorddate +
+ ", deviceId=" + deviceId +
+ ", active=" + active +
+ '}';
+ }
+}
diff --git a/src/main/java/com/casic/entity/AlarmRecords.java b/src/main/java/com/casic/entity/AlarmRecords.java
deleted file mode 100644
index 88b0b26..0000000
--- a/src/main/java/com/casic/entity/AlarmRecords.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- *
- *
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_records")
-public class AlarmRecords extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- 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;
-
- @Override
- public String toString() {
- return "AlarmRecords{" +
- "id=" + id +
- ", deviceId=" + deviceId +
- ", devcode=" + devcode +
- ", wellCode=" + wellCode +
- ", alarmType=" + alarmType +
- ", alarmContent=" + alarmContent +
- ", alarmValue=" + alarmValue +
- ", alarmLevel=" + alarmLevel +
- ", alarmMessage=" + alarmMessage +
- ", alarmTime=" + alarmTime +
- ", status=" + status +
- ", jobId=" + jobId +
- ", jobStatus=" + jobStatus +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/ButaneData.java b/src/main/java/com/casic/entity/ButaneData.java
new file mode 100644
index 0000000..2e051be
--- /dev/null
+++ b/src/main/java/com/casic/entity/ButaneData.java
@@ -0,0 +1,28 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Builder;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@TableName("CASIC_BUTANE_INFO")
+@Builder
+public class ButaneData extends Model {
+
+ @TableId(value = "DBID")
+ private Long dbid;
+
+ private String devcode;
+
+ private String status;
+
+ private String descn;
+
+ private Date logtime;
+
+}
diff --git a/src/main/java/com/casic/entity/Device.java b/src/main/java/com/casic/entity/Device.java
new file mode 100644
index 0000000..0360e41
--- /dev/null
+++ b/src/main/java/com/casic/entity/Device.java
@@ -0,0 +1,27 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@TableName("ALARM_DEVICE")
+public class Device implements Serializable {
+ /**
+ * 设备基本信息表
+ */
+ private static final long serialVersionUID = -2023118078562324658L;
+ @TableId(value = "DBID")
+ private Long id;
+ @TableId(value = "DEVCODE")
+ private String devCode;
+ @TableId(value = "DEVNAME")
+ private String devName;
+ @TableId(value = "FACTORY")
+ private String factory;
+ @TableId(value = "SIMID")
+ private String simid; // SIM卡号
+
+}
diff --git a/src/main/java/com/casic/model/HostData.java b/src/main/java/com/casic/model/HostData.java
new file mode 100644
index 0000000..40cefa7
--- /dev/null
+++ b/src/main/java/com/casic/model/HostData.java
@@ -0,0 +1,16 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class HostData {
+ private String model;
+ private String dev_id;
+ private String chip_id;
+ private String mfd_day;
+ private String sw_ver;
+ private String hw_ver;
+ private String duration;
+ private String d_ch_cnt;
+ private String a_ch_cnt;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReceiveDataParam.java b/src/main/java/com/casic/model/ReceiveDataParam.java
new file mode 100644
index 0000000..3a17d24
--- /dev/null
+++ b/src/main/java/com/casic/model/ReceiveDataParam.java
@@ -0,0 +1,20 @@
+package com.casic.model;
+
+import lombok.Data;
+
+import java.util.HashMap;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReceiveDataParam {
+ private String deviceType;
+ private String iotId;
+ private String requestId;
+ private Object checkFailedData;
+ private String productKey;
+ private String deviceName;
+ private HashMap items;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReportUpdataParam.java b/src/main/java/com/casic/model/ReportUpdataParam.java
new file mode 100644
index 0000000..20c2ca9
--- /dev/null
+++ b/src/main/java/com/casic/model/ReportUpdataParam.java
@@ -0,0 +1,23 @@
+package com.casic.model;
+
+import lombok.Data;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReportUpdataParam {
+ private String msg_type;
+ private String event_change;
+ private String error_val;
+ private String ch_cnt;
+ private String erro_cnt;
+ private String alarm_low_cnt;
+ private String alarm_high_cnt;
+ private String offline_cnt;
+ private String rtd_val;
+ private String adc_val;
+ private String status_val;
+ private String time;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/WirelessData.java b/src/main/java/com/casic/model/WirelessData.java
new file mode 100644
index 0000000..b062c13
--- /dev/null
+++ b/src/main/java/com/casic/model/WirelessData.java
@@ -0,0 +1,19 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class WirelessData {
+ private String model;
+ private String IMEI;
+ private String ICCID;
+ private String sw_ver;
+ private String hw_ver;
+ private String ch_cnt;
+ private String heartbeat_inv;
+ private String up_pcnt;
+ private String up_pcnt_inv;
+ private String csq;
+}
+
+
diff --git a/src/main/java/com/casic/schedule/TaskConfigurer.java b/src/main/java/com/casic/schedule/TaskConfigurer.java
new file mode 100644
index 0000000..77c5d5a
--- /dev/null
+++ b/src/main/java/com/casic/schedule/TaskConfigurer.java
@@ -0,0 +1,47 @@
+package com.casic.schedule;
+
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+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
+@Slf4j
+@RequiredArgsConstructor
+public class TaskConfigurer implements SchedulingConfigurer {
+
+ @Value("${casic.device.online.cron}")
+ private String onlineStateCron;
+
+ private final DeviceDataService deviceDataService;
+
+ @Override
+ public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
+ TriggerTask onlineStateTask = new TriggerTask(nextDayDevice(),
+ triggerContext -> {
+ return new CronTrigger(onlineStateCron).nextExecutionTime(triggerContext);
+ });
+ taskRegistrar.addTriggerTask(onlineStateTask);
+ }
+
+ private Runnable nextDayDevice() {
+ return new Runnable() {
+ @Override
+ public void run() {
+ log.info("定时查询在线离线运行了...");
+ deviceDataService.checkAndUpdateDeviceOnline();
+ }
+ };
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/service/AlarmRecordFly.java b/src/main/java/com/casic/service/AlarmRecordFly.java
new file mode 100644
index 0000000..47c7969
--- /dev/null
+++ b/src/main/java/com/casic/service/AlarmRecordFly.java
@@ -0,0 +1,39 @@
+package com.casic.service;
+
+import com.casic.entity.AlarmRecord;
+
+public class AlarmRecordFly {
+
+ private static AlarmRecord alarmRecord;
+
+ static {
+ alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("0");
+ alarmRecord.setActive(1);
+ }
+
+ public static AlarmRecord getAlarmRecord() {
+ return alarmRecord;
+ }
+
+ public static AlarmRecord getPrototype(){
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("-1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("1");
+ alarmRecord.setActive(1);
+ return alarmRecord;
+ }
+
+
+
+
+}
diff --git a/src/main/java/com/casic/service/DeviceDataService.java b/src/main/java/com/casic/service/DeviceDataService.java
new file mode 100644
index 0000000..f972981
--- /dev/null
+++ b/src/main/java/com/casic/service/DeviceDataService.java
@@ -0,0 +1,7 @@
+package com.casic.service;
+
+public interface DeviceDataService {
+
+ void checkAndUpdateDeviceOnline();
+
+}
diff --git a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java
new file mode 100644
index 0000000..f41a44d
--- /dev/null
+++ b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java
@@ -0,0 +1,68 @@
+package com.casic.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.casic.dao.AlarmRecordsMapper;
+import com.casic.dao.DeviceDataMapper;
+import com.casic.entity.AlarmRecord;
+import com.casic.service.AlarmRecordFly;
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @author cz
+ */
+@Service
+@RequiredArgsConstructor
+public class DeviceDataServiceImpl extends ServiceImpl implements DeviceDataService {
+
+ private final DeviceDataMapper deviceDataMapper;
+
+ @Value("${casic.device.data-day}")
+ private Integer dataDay;
+
+ @Value("${casic.device.gas-dector.type}")
+ private Integer devciceType;
+
+
+ @Override
+ public void checkAndUpdateDeviceOnline() {
+ //查询硫化氢设备
+ List> devcodeList = deviceDataMapper.getDevcodeByType(devciceType);
+ //统一查询所有设备的3天内数据的设备编号,然后设备编号转成map,进行
+ List dataList = deviceDataMapper.getRecentData(dataDay);
+ List> dataSortDevcodeList = devcodeList;
+ if (dataList != null) {
+ Map devOnlineMap = new HashMap<>();
+ for (String devcodeData : dataList) {
+ devOnlineMap.put(devcodeData, "");
+ }
+ dataSortDevcodeList = dataSortDevcodeList.stream().filter(
+ e -> !devOnlineMap.containsKey((String) e.get("devcode"))).collect(Collectors.toList());
+ }
+ //批量产生离线报警
+ if (CollectionUtils.isNotEmpty(dataSortDevcodeList)) {
+ List alarmRecords = new ArrayList<>();
+ for (Map dataDevcodeMap : dataSortDevcodeList) {
+ alarmRecords.add(createAlarmRecord(((BigDecimal)dataDevcodeMap.get("id")).longValue(), (String) dataDevcodeMap.get("devcode")));
+ }
+ this.saveBatch(alarmRecords);
+ }
+ }
+
+ private AlarmRecord createAlarmRecord(Long id, String devcode) {
+ AlarmRecord alarmRecord = AlarmRecordFly.getPrototype();
+ alarmRecord.setRecorddate(new Date());
+ alarmRecord.setDbid(null);
+ alarmRecord.setDeviceCode(devcode);
+ alarmRecord.setDeviceId(id);
+ return alarmRecord;
+ }
+
+}
diff --git a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
index 4591d50..176b389 100644
--- a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
@@ -1,53 +1,41 @@
package com.casic.service.impl;
-import com.alibaba.druid.util.StringUtils;
-import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.casic.dao.AlarmRecordsMapper;
-import com.casic.dao.DataGasMapper;
-import com.casic.dao.DeviceMapper;
-import com.casic.dao.impl.AlarmJobDao;
-import com.casic.entity.AlarmJob;
-import com.casic.entity.AlarmRecords;
-import com.casic.entity.DataGasDector;
+import com.casic.dao.ButaneDataMapper;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.ButaneData;
import com.casic.entity.Device;
import com.casic.model.ResponseData;
+import com.casic.service.AlarmRecordFly;
import com.casic.service.DeviceService;
+import com.casic.util.SendUtil;
+import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import xyz.downgoon.snowflake.Snowflake;
-import javax.annotation.Resource;
import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import java.util.function.Supplier;
@Slf4j
@Service
+@RequiredArgsConstructor
public class DeviceServiceImpl implements DeviceService {
-
- @Value("${casic.device.gas-dector.enable-local}")
- private Boolean enableLocal;
- @Value("${casic.device.gas-dector.type}")
- private Long deviceType;
- @Resource
- private DataGasMapper dataGasMapper;
- @Resource
- private AlarmRecordsMapper alarmRecordsMapper;
- @Resource
- private DeviceMapper deviceMapper;
- @Autowired
- private AlarmJobDao alarmJobDao;
+ private final ButaneDataMapper butaneDataMapper;
+ private final AlarmRecordsMapper alarmRecordsMapper;
private static Snowflake snowflake = new Snowflake(0, 2);
+ @Autowired
+ private SendUtil sendUtil;
@Override
public ResponseData testMysql() {
+
ResponseData responseData = new ResponseData();
responseData.setMessage("保存成功");
responseData.setCode(1);
@@ -62,18 +50,16 @@
public ResponseData saveDataGas(Map receiveData) {
ResponseData responseData = new ResponseData();
try {
- Map payloadData;
+ Map payloadData = receiveData;
if (receiveData.containsKey("payload")) {
payloadData = (Map) receiveData.get("payload");
- }else{
- payloadData=receiveData;
}
- this.flagSelectProcessor("eventType", payloadData, () -> gasStatusUpdate(payloadData))
- .flagSelectProcessor("gas_sample_value", payloadData, () -> dealNormalData(receiveData));
+ this.flagSelectProcessor("gas_sensor_state", payloadData, () -> gasStatusUpdate(receiveData))
+ .flagSelectProcessor("heartbeat_time", payloadData, () -> dealNormalData(receiveData));
responseData.setCode(200);
responseData.setMessage("保存成功");
} catch (Exception dex) {
- log.error("主题:广东台燃气设备存储异常,异常信息:{}", dex.getMessage());
+ log.error("主题:燃气设备存储异常,异常信息:{}", dex.getMessage());
responseData.setCode(500);
responseData.setMessage("保存异常");
}
@@ -95,99 +81,110 @@
* @return
*/
private Boolean gasStatusUpdate(Map receiveData) {
- Long lonTimetemp = Long.valueOf(receiveData.get("timestamp").toString());
- String onlindeStatus = receiveData.get("eventType").toString();
- String devcode = receiveData.get("imei").toString();
- QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("devcode", devcode);
- queryWrapper.eq("valid", 1);
- Device device = new Device();
- if (!StringUtils.isEmpty(onlindeStatus)) {
- device.setOnlineState(onlindeStatus);
- Date logTime = new Date();
- logTime.setTime(lonTimetemp);
- device.setLogtime(logTime);
- deviceMapper.update(device, queryWrapper);
- return true;
+ AlarmRecord alarmRecord = AlarmRecordFly.getAlarmRecord();
+ Map payloadData = (Map) receiveData.get("payload");
+ //判断事件类型 0正常 1低报 2高报
+ String alarmSituation = payloadData.get("gas_sensor_state").toString();
+ String devcode = receiveData.get("IMEI").toString();
+ clearOnlineData(devcode);
+ //构建数据
+ ButaneData butaneData = ButaneData.builder()
+ .devcode(devcode)
+ .dbid(snowflake.nextId())
+ .build();
+ populateTime(receiveData, butaneData, alarmRecord);
+ switch (alarmSituation) {
+ case "0":
+// butaneData.setDescn("状态正常");
+// butaneData.setStatus("0");
+ break;
+ default:
+ //第一条上来,消除报警
+ clearAlarmData(devcode);
+ //产生新的报警,消除报警
+ butaneData.setDescn("可燃气体探测器报警");
+ butaneData.setStatus("1");
+ synchronized (alarmRecord) {
+ alarmRecord.setDbid(null);
+ alarmRecord.setDeviceCode(devcode);
+ alarmRecord.setDeviceId(alarmRecordsMapper.getDevcode(devcode));
+ alarmRecordsMapper.insert(alarmRecord);
+ }
+ butaneDataMapper.insert(butaneData);
+
+ try {
+ //推送短信至第三方
+ Device device = alarmRecordsMapper.getDevice(devcode);
+ if (null == device) {
+ log.error("设备不存在,编号:" + devcode);
+ return false;
+ }
+ JSONObject eventObj = new JSONObject();
+ eventObj.put("type", "燃气报警");
+ sendUtil.sendEventBySms(device, eventObj);
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ }
}
- return false;
+ return true;
}
public Boolean dealNormalData(Map receiveData) {
String devcode = receiveData.get("IMEI").toString();
- if (!StringUtils.isEmpty(devcode)) {
- Map deviceMap = deviceMapper.getWellCode(devcode);
- //保存数据,无论是否有设备在库内
- DataGasDector dataGasDector = this.saveNormalData(receiveData, deviceMap);
- if (ObjectUtils.isEmpty(deviceMap)) {
- log.info("没有该设备编号录入" + devcode);
- if (enableLocal) {
- return true;
- }
- }
- //自动消除报警
- this.alarmRecordsMapper.clearAlarm(devcode);
- this.dataTaskJudge(deviceMap, dataGasDector);
- return true;
+ //第一条上来,清除离线
+ clearOnlineData(devcode);
+ ButaneData butaneData = ButaneData.builder()
+ .devcode(devcode)
+ .dbid(snowflake.nextId())
+ .descn("状态正常")
+ .status("0")
+ .build();
+ if (!ObjectUtils.isEmpty(receiveData) && receiveData.containsKey("timestamp")) {
+ butaneData.setLogtime(new Date(Long.valueOf(receiveData.get("timestamp").toString())));
+ } else {
+ butaneData.setLogtime(new Date());
}
+ butaneDataMapper.insert(butaneData);
return false;
}
- private DataGasDector saveNormalData(Map receiveData, Map deviceMap) {
- DataGasDector dataGasDector = new DataGasDector();
- dataGasDector.setId(snowflake.nextId());
- dataGasDector.setDevcode(receiveData.get("IMEI").toString());
- dataGasDector.setWellCode(!ObjectUtils.isEmpty(deviceMap) && deviceMap.containsKey("wellCode") ? deviceMap.get("wellCode").toString() : "");
- dataGasDector.setLogtime(new Date());
+ private void populateTime(Map receiveData, ButaneData butaneData, AlarmRecord alarmRecord) {
if (!ObjectUtils.isEmpty(receiveData) && receiveData.containsKey("timestamp")) {
- dataGasDector.setUptime(new Date(Long.valueOf(receiveData.get("timestamp").toString())));
+ Date logtime = new Date(Long.valueOf(receiveData.get("timestamp").toString()));
+ butaneData.setLogtime(logtime);
+ alarmRecord.setRecorddate(logtime);
} else {
- dataGasDector.setUptime(new Date());
+ alarmRecord.setRecorddate(new Date());
+ butaneData.setLogtime(new Date());
}
- Map gascontent = (Map)receiveData.get("payload");
- if (!ObjectUtils.isEmpty(gascontent)) {
- if (gascontent.containsKey("gas_sample_value")) {
- dataGasDector.setStrength(gascontent.get("gas_sample_value").toString());
- }
- }
- dataGasMapper.insert(dataGasDector);
- return dataGasDector;
}
- /**
- * 报警存库
- */
- private void dataTaskJudge(Map deviceMap, DataGasDector dataGasDector) {
- List> alarmLevelList = dataGasMapper.getAlarmLevelList(deviceType);
- String wellCode = dataGasDector.getWellCode();
- Long deviceId = !ObjectUtils.isEmpty(deviceMap) && deviceMap.containsKey("wellCode") ? Long.valueOf(String.valueOf(deviceMap.get("deviceId"))) : -1;
- final String gasMsgContent = dataGasMapper.getGasMsgContent(deviceType);
- for (Map alarmLevelMap : alarmLevelList) {
- if (Float.valueOf(dataGasDector.getStrength()) > Float.valueOf(String.valueOf(alarmLevelMap.get("high_value")))) {
- AlarmRecords alarmRecord = new AlarmRecords();
- alarmRecord.setId(snowflake.nextId());
- alarmRecord.setDeviceId(deviceId);
- alarmRecord.setDevcode(dataGasDector.getDevcode());
- alarmRecord.setWellCode(wellCode);
- alarmRecord.setAlarmType("1"); // 业务报警
- alarmRecord.setAlarmContent(gasMsgContent);
- alarmRecord.setAlarmValue(dataGasDector.getStrength());
- alarmRecord.setAlarmTime(new Date());
- alarmRecord.setStatus("1");
- alarmRecord.setAlarmLevel(Integer.valueOf(alarmLevelMap.get("level").toString()));
- alarmRecord.setAlarmMessage(gasMsgContent);
- String jobId = alarmRecordsMapper.isOldAlarmRecord(dataGasDector.getDevcode(), gasMsgContent);
- // 超出报警阈值 生成一条报警消息
- if (!StringUtils.isEmpty(jobId)) {
- alarmRecordsMapper.updateOldAlarmRecord(dataGasDector.getDevcode(), gasMsgContent);
- alarmRecord.setJobId(Long.valueOf(jobId));
- } else {
- AlarmJob alarmJob = alarmJobDao.saveData(dataGasDector.getStrength(), wellCode, "RQZD", "1");
- alarmRecord.setJobId(alarmJob.getId());
- }
- alarmRecordsMapper.insert(alarmRecord);
- break;
- }
+ private void clearAlarmData(String devcode) {
+ QueryWrapper queryWrapper = new QueryWrapper();
+ queryWrapper.eq("DEVICE_CODE", devcode);
+ queryWrapper.eq("ACTIVE", 1);
+ try {
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setActive(0);
+ alarmRecordsMapper.update(alarmRecord, queryWrapper);
+ } catch (Exception e) {
+ log.error("清除报警失败,设备编号为{},异常信息{}", devcode, e);
}
}
+
+ private void clearOnlineData(String devcode) {
+ QueryWrapper queryWrapper = new QueryWrapper();
+ queryWrapper.eq("DEVICE_CODE", devcode);
+ queryWrapper.eq("ACTIVE", 1);
+ queryWrapper.eq("MESSAGE_STATUS", "0");
+ queryWrapper.eq("RECORDCODE", "1");
+ try {
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setActive(0);
+ alarmRecordsMapper.update(alarmRecord, queryWrapper);
+ } catch (Exception e) {
+ log.error("清除报警失败,设备编号为{},异常信息{}", devcode, e);
+ }
+ }
+
}
diff --git a/src/main/java/com/casic/util/ConestUtil.java b/src/main/java/com/casic/util/ConestUtil.java
deleted file mode 100644
index 2a4d305..0000000
--- a/src/main/java/com/casic/util/ConestUtil.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package com.casic.util;
-
-public class ConestUtil {
-
-
-}
diff --git a/src/main/java/com/casic/util/DateUtils.java b/src/main/java/com/casic/util/DateUtils.java
new file mode 100644
index 0000000..db2ed9c
--- /dev/null
+++ b/src/main/java/com/casic/util/DateUtils.java
@@ -0,0 +1,63 @@
+package com.casic.util;
+
+import java.text.SimpleDateFormat;
+
+/**
+ * Created by Administrator on 2015/2/25.
+ */
+public class DateUtils {
+ public static SimpleDateFormat sdf_day = new SimpleDateFormat("yyyy-MM-dd");
+ public static SimpleDateFormat sdf_day_time = new SimpleDateFormat("yyyyMMddHHmmss");
+ public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ public static final SimpleDateFormat sdf5 = new SimpleDateFormat("HH:mm:ss");
+ public static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+
+
+ public static String DateFormat(String dataString) {
+
+ String strymd = dataString.substring(0, 8);
+ String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " ";
+ String strhms = dataString.substring(8);
+ String str2 = strhms.substring(0, 2) + ":" + strhms.substring(2, 4) + ":" + strhms.substring(4, 6);
+ dataString = str1 + str2;
+ return dataString;
+ }
+
+ public static String DateFormatDate(String dataString) {
+
+ String strymd = dataString.substring(0, 8);
+ return strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8);
+ }
+
+ public static String DateFormatTime(String dataString) {
+
+ String strhms = dataString.substring(8);
+ return strhms.substring(0, 2) + ":" + strhms.substring(2, 4) + ":" + strhms.substring(4, 6);
+ }
+
+ /**
+ * 比较两个时间 时分秒 大小
+ *
+ * @param s1
+ * @param s2
+ * @return
+ */
+ public static boolean compTime(String s1, String s2) {
+ try {
+ if (s1.indexOf(":") < 0 || s1.indexOf(":") < 0) {
+ System.out.println("格式不正确");
+ } else {
+ String[] array1 = s1.split(":");
+ int total1 = Integer.valueOf(array1[0]) * 3600 + Integer.valueOf(array1[1]) * 60;
+ String[] array2 = s2.split(":");
+ int total2 = Integer.valueOf(array2[0]) * 3600 + Integer.valueOf(array2[1]) * 60;
+ return total1 - total2 > 0 ? true : false;
+ }
+ } catch (NumberFormatException e) {
+ // TODO Auto-generated catch block
+ return false;
+ }
+ return false;
+
+ }
+}
diff --git a/src/main/java/com/casic/util/HttpClientUtils.java b/src/main/java/com/casic/util/HttpClientUtils.java
new file mode 100644
index 0000000..91a631e
--- /dev/null
+++ b/src/main/java/com/casic/util/HttpClientUtils.java
@@ -0,0 +1,40 @@
+package com.casic.util;
+
+
+import com.alibaba.fastjson.JSONObject;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpStatus;
+import org.apache.commons.httpclient.methods.PostMethod;
+
+import java.io.IOException;
+
+public class HttpClientUtils {
+
+
+
+ public static String post(String url, String body, JSONObject header) {
+ HttpClient client = new HttpClient();
+ client.setTimeout(30000);
+ PostMethod method = new PostMethod(url);
+ // for (Map.Entry entry : headers.entrySet()) {
+ method.addRequestHeader("Content-type", "application/json; charset=utf-8");
+ method.addRequestHeader("Accept", "application/json");
+ method.addRequestHeader("X-APP-KEY", header.getString("X-APP-KEY"));
+ method.setRequestBody(body);
+ try {
+ int statusCode = client.executeMethod(method);
+ if (statusCode == HttpStatus.SC_OK) {
+ return new String(method.getResponseBody(), "UTF-8");
+ }
+
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+}
diff --git a/src/main/java/com/casic/util/SendUtil.java b/src/main/java/com/casic/util/SendUtil.java
new file mode 100644
index 0000000..2d73db1
--- /dev/null
+++ b/src/main/java/com/casic/util/SendUtil.java
@@ -0,0 +1,67 @@
+package com.casic.util;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.casic.entity.Device;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+@Slf4j
+@Component
+public class SendUtil {
+ @Value("${casic.synchronizeSms.enabled}")
+ private String enabled;
+ @Value("${casic.smsSenderURL}")
+ private String smsSenderUrl;
+ @Value("${casic.X-APP-KEY-SMS}")
+ private String smsAppKey;
+
+ public void sendEventBySms(Device device, JSONObject eventObj) {
+ if ("true".equals(enabled)) {
+// String smsSenderUrl = Configure.getProperty("smsSenderURL", "http://general.bushub.rj.prd/sms/user/send");
+// String smsAppKey = Configure.getProperty("X-APP-KEY-SMS", "2d3a8e35-0533-42a0-97a2-63f82a3216f9");
+ String sim = device.getSimid();
+ if (null == sim || StringUtils.isBlank(sim)) {
+ return;
+ }
+
+ if (null == smsAppKey || StringUtils.isBlank(smsAppKey)) {
+ return;
+ }
+
+ JSONObject header = new JSONObject();
+ header.put("X-APP-KEY", smsAppKey);
+
+ StringBuilder params = new StringBuilder();
+ params.append("{");
+ params.append("\"mobile\":");
+ params.append("\"").append(sim).append("\"").append(",");
+
+ String prefix = "【智慧蓉江】";
+ String eventTm = DateUtils.sdf4.format(new Date());
+ String devName = device.getDevName();
+ String place = device.getFactory();
+
+ StringBuilder content = new StringBuilder("");
+ content.append(prefix);
+ content.append(eventTm).append(",");
+ content.append("管网监测设备[").append(devName).append("],");
+ content.append("发生").append(eventObj.getString("type")).append(",");
+ if (eventObj.containsKey("value") == true) {
+ content.append(eventObj.getString("value")).append(",");
+ }
+ content.append("详细地址是:").append(place).append(",");
+ content.append("请关注并及时处理。");
+
+ params.append("\"content\":");
+ params.append("\"").append(content.toString()).append("\"");
+ params.append("}");
+
+ String resp = HttpClientUtils.post(smsSenderUrl, params.toString(), header);
+ log.info("已发送短信"+resp);
+ }
+ }
+}
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 4807974..d47010a 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -1,12 +1,12 @@
server:
- port: 5907
+ port: 5001
################### spring配置 ###################
spring:
datasource:
- driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://111.198.10.15:11102/smartwell_gdt?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=GMT%2B8&&allowMultiQueries=true&&useSSL=true
- username: root
- password: Casic203!
+ driverClassName: oracle.jdbc.driver.OracleDriver
+ url: jdbc:oracle:thin:@11.100.6.183:1521:orcl
+ username: gzsg
+ password: gzsg
session:
store-type: redis
redis:
@@ -19,8 +19,15 @@
# session:
#flowable数据源和多数据源配置
logging:
- level.root: error
- level.com.casic: error
+ level.root: info
+ level.com.casic: debug
+ level.org.springframework.web: info
file:
path: logs/
- name: missiles.log
\ No newline at end of file
+ name: missiles.log
+#短信推送
+casic:
+ synchronizeSms.enabled: true
+ smsSenderURL: http://general.bushub.rj.prd/sms/user/send
+ X-APP-KEY-SMS: 2d3a8e35-0533-42a0-97a2-63f82a3216f9
+ sms-prefix: 【智慧蓉江】
\ No newline at end of file
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 4038629..21ecda8 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -24,6 +24,9 @@
casic:
device:
gas-dector:
- type: 10
+ type: 30
minutes: 60
- enable-local: false
\ No newline at end of file
+ enable-local: false
+ data-day: 1 # 时间多少的为离线
+ online:
+ cron: 0 0/1 * * * ? # 多长时间判断离线
\ No newline at end of file
diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..c0c7ac9
--- /dev/null
+++ b/src/main/resources/logback-spring.xml
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ ${CONSOLE_LOG_PATTERN}
+ utf-8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${CONSOLE_LOG_PATTERN}
+ utf-8
+
+
+
+
+
+
+
+ ${LOG_PATH}/missiles_error.log
+
+
+
+
+
+ ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log
+
+
+
+ 10MB
+
+
+
+
+ true
+
+
+
+ ${FILE_LOG_PATTERN}
+ utf-8
+
+
+
+
+ error
+ ACCEPT
+ DENY
+
+
+
+
+
+
+
+ ${LOG_PATH}/missiles_total.log
+
+
+
+
+
+ ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log
+
+
+
+ 10MB
+
+
+
+
+ true
+
+
+
+ ${FILE_LOG_PATTERN}
+ utf-8
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/mapper/DeviceDataMapper.xml b/src/main/resources/mapper/DeviceDataMapper.xml
new file mode 100644
index 0000000..4e15de9
--- /dev/null
+++ b/src/main/resources/mapper/DeviceDataMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/mapper/DeviceMapper.xml b/src/main/resources/mapper/DeviceMapper.xml
new file mode 100644
index 0000000..d04d912
--- /dev/null
+++ b/src/main/resources/mapper/DeviceMapper.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+ UPDATE BUS_DEVICE
+ SET ONLINE_STATE=0
+ WHERE VALID=1
+ AND DEVCODE IN
+
+ #{item}
+
+
+
+
+
\ No newline at end of file
diff --git a/target/classes/application-dev.yml b/target/classes/application-dev.yml
index 5c64ca8..8a5929a 100644
--- a/target/classes/application-dev.yml
+++ b/target/classes/application-dev.yml
@@ -1,12 +1,12 @@
server:
- port: 11520
+ port: 5001
################### spring配置 ###################
spring:
datasource:
- driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://111.198.10.15:11102/smartwell_gdt?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=GMT%2B8&&allowMultiQueries=true&&useSSL=true
- username: root
- password: Casic203!
+ driverClassName: oracle.jdbc.driver.OracleDriver
+ url: jdbc:oracle:thin:@11.100.6.181:1521:orcl
+ username: gzsg
+ password: gzsg
session:
store-type: redis
redis:
@@ -19,8 +19,15 @@
# session:
#flowable数据源和多数据源配置
logging:
- level.root: error
- level.com.casic: error
+ level.root: info
+ level.com.casic: debug
+ level.org.springframework.web: info
file:
path: logs/
- name: missiles.log
\ No newline at end of file
+ name: missiles.log
+#短信推送
+casic:
+ synchronizeSms.enabled: true
+ smsSenderURL: http://general.bushub.rj.prd/sms/user/send
+ X-APP-KEY-SMS: 2d3a8e35-0533-42a0-97a2-63f82a3216f9
+ sms-prefix: 【智慧蓉江】
\ No newline at end of file
diff --git a/target/classes/com/casic/controller/DeviceController.class b/target/classes/com/casic/controller/DeviceController.class
index 0813269..fd9b8ca 100644
--- a/target/classes/com/casic/controller/DeviceController.class
+++ b/target/classes/com/casic/controller/DeviceController.class
Binary files differ
diff --git a/target/classes/com/casic/dao/DataGasMapper.class b/target/classes/com/casic/dao/DataGasMapper.class
deleted file mode 100644
index b9404b1..0000000
--- a/target/classes/com/casic/dao/DataGasMapper.class
+++ /dev/null
Binary files differ
diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/src/main/java/com/casic/dao/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index fde1818..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -1,36 +1,24 @@
package com.casic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmRecords;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.Device;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
@Mapper
-public interface AlarmRecordsMapper extends BaseMapper {
+public interface AlarmRecordsMapper extends BaseMapper {
+ @Select("SELECT DBID " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Long getDevcode(@Param("devcode") String devcode);
- @Select("SELECT JOB_ID AS \"jobId\"\n " +
- "FROM alarm_records\n " +
- "WHERE DEVCODE = #{devcode}\n " +
- "AND ALARM_CONTENT = #{MsgContent}\n " +
- "AND STATUS='1'\n " +
- "AND JOB_ID>0 ")
- String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='0'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND ALARM_CONTENT = #{MsgContent}\n" +
- " AND STATUS='1'")
- Integer updateOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='3'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND STATUS='1'")
- Integer clearAlarm(@Param("devcode") String devcode);
-
+ @Select("SELECT DBID as id, DEVCODE as devCode, DEVNAME as devName, FACTORY as factory, SIMID as simid " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Device getDevice(@Param("devcode") String devcode);
}
diff --git a/src/main/java/com/casic/dao/ButaneDataMapper.java b/src/main/java/com/casic/dao/ButaneDataMapper.java
new file mode 100644
index 0000000..632c7d2
--- /dev/null
+++ b/src/main/java/com/casic/dao/ButaneDataMapper.java
@@ -0,0 +1,12 @@
+package com.casic.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.entity.ButaneData;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface ButaneDataMapper extends BaseMapper {
+
+
+}
diff --git a/src/main/java/com/casic/dao/DataGasMapper.java b/src/main/java/com/casic/dao/DataGasMapper.java
deleted file mode 100644
index 8a064f2..0000000
--- a/src/main/java/com/casic/dao/DataGasMapper.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.DataGasDector;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-
-import java.util.List;
-import java.util.Map;
-
-@Mapper
-public interface DataGasMapper extends BaseMapper {
-
- @Select("SELECT level,high_value " +
- "FROM alarm_level " +
- "WHERE device_type=#{deviceType} ")
- List> getAlarmLevelList(@Param("deviceType") Long deviceType);
-
- @Select("SELECT devcode " +
- "FROM data_gas_dector " +
- "WHERE devcode=#{devcode} " +
- "AND (EXTRACT(epoch FROM CAST(now() AS TIMESTAMPTZ))-EXTRACT(epoch FROM CAST(logtime AS TIMESTAMPTZ)))/60.0 < ${minutes} "+
- "ORDER BY logtime DESC " +
- "LIMIT 1")
- String getLastData(@Param("minutes") String minutes,
- @Param("devcode") String devcode);
-
- @Select("SELECT alarm_content " +
- "FROM base_alarm_content_type " +
- "WHERE device_type=#{deviceType}")
- String getGasMsgContent(@Param("deviceType")Long deviceType);
-
-
-}
diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java
new file mode 100644
index 0000000..e9456c1
--- /dev/null
+++ b/src/main/java/com/casic/dao/DeviceDataMapper.java
@@ -0,0 +1,18 @@
+package com.casic.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface DeviceDataMapper {
+
+ List> getDevcodeByType(@Param("devciceType") Integer devciceType);
+
+ List getRecentData(@Param("dataDay") Integer dataDay);
+
+ int updateOnlineByDevs(@Param("dataSortList") List dataSortDevcodeList);
+
+}
diff --git a/src/main/java/com/casic/dao/DeviceMapper.java b/src/main/java/com/casic/dao/DeviceMapper.java
deleted file mode 100644
index 73b574e..0000000
--- a/src/main/java/com/casic/dao/DeviceMapper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.Device;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Map;
-
-@Mapper
-public interface DeviceMapper extends BaseMapper {
-
- Map getWellCode(@Param("devcode") String devcode);
-
-}
diff --git a/src/main/java/com/casic/dao/impl/AlarmJobDao.java b/src/main/java/com/casic/dao/impl/AlarmJobDao.java
deleted file mode 100644
index 5131821..0000000
--- a/src/main/java/com/casic/dao/impl/AlarmJobDao.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.casic.dao.impl;
-
-import com.alibaba.druid.util.StringUtils;
-import com.casic.dao.AlarmJobMapper;
-import com.casic.entity.AlarmJob;
-import org.springframework.stereotype.Component;
-import xyz.downgoon.snowflake.Snowflake;
-
-import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-@Component
-public class AlarmJobDao {
-
- private static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMdd");
-
- private static Snowflake snowflake = new Snowflake(0, 2);
-// private static final Sn
-
- @Resource
- private AlarmJobMapper alarmJobMapper;
-
- public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) {
- AlarmJob alarmJob = new AlarmJob();
- alarmJob.setId(snowflake.nextId());
- alarmJob.setDevcode(devCode);
- alarmJob.setWellCode(wellCode);
- alarmJob.setJobStatus("0");
- alarmJob.setCreateTime(new Date());
- alarmJob.setJobcode(this.produceJobCode(devTypeName));
- alarmJob.setJobType(jobType);
- alarmJobMapper.insert(alarmJob);
- return alarmJob;
- }
-
- /**
- * 前缀+日期+4位流水号
- *
- * @param devTypeName
- * @return
- */
- private String produceJobCode(String devTypeName) {
- String pre = devTypeName;
- String dataStr = sdf6.format(new Date());
- String fix = this.getJobCodeMaxSerial(pre + dataStr);
- return StringUtils.isEmpty(fix) ? pre + dataStr + String.format("%04d", Long.valueOf(StringUtils.isEmpty(fix)?"0":fix) + 1L) : pre + dataStr + "0001";
- }
-
-
- private String getJobCodeMaxSerial(String jobcode) {
- String MaxSerialJobCode = alarmJobMapper.getJobCodeMaxSerial(jobcode);
- String fix = "";
- if (null != MaxSerialJobCode && MaxSerialJobCode.length() > 4) {
- fix = MaxSerialJobCode.substring(MaxSerialJobCode.length() - 4);
- }
- return fix;
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmJob.java b/src/main/java/com/casic/entity/AlarmJob.java
deleted file mode 100644
index 8a0f764..0000000
--- a/src/main/java/com/casic/entity/AlarmJob.java
+++ /dev/null
@@ -1,165 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- *
- * 报警工单表
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_job")
-public class AlarmJob extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- private Long id;
- /**
- * 工单编号
- */
- @TableField("JOBCODE")
- private String jobcode;
- /**
- * 工单类型
- */
- @TableField("JOG_TYPE")
- private String jobType;
- /**
- * 井编号
- */
- @TableField("WELL_CODE")
- private String wellCode;
- /**
- * 设备编号
- */
- @TableField("DEVCODE")
- private String devcode;
- /**
- * 工单创建时间
- */
- @TableField("CREATE_TIME")
- private Date createTime;
- /**
- * 工单状态(0待处理,1待确认,2处理中,3完成)
- */
- @TableField("JOB_STATUS")
- private String jobStatus;
- /**
- * 接单人员
- */
- @TableField("GET_JOB_PERSON")
- private Long getJobPerson;
- /**
- * 接单时间
- */
- @TableField("GET_JOB_TIME")
- private Date getJobTime;
- /**
- * 应接单时间
- */
- @TableField("SHOULD_GET_TIME")
- private Date shouldGetTime;
- /**
- * 第一现场情况
- */
- @TableField("FIRST_STATE")
- private String firstState;
- /**
- * 第一现场照片
- */
- @TableField("FIRST_STATE_PHOTOS")
- private String firstStatePhotos;
- /**
- * 确认人员
- */
- @TableField("CONFIRM_JOB_PERSON")
- private Long confirmJobPerson;
- /**
- * 确认时间
- */
- @TableField("CONFRIM_JOB_TIME")
- private Date confrimJobTime;
- /**
- * 处理人员
- */
- @TableField("HANDLE_JOB_Person")
- private Long handleJobPerson;
- /**
- * 处理时间
- */
- @TableField("HANDLE_JOB_TIME")
- private Date handleJobTime;
- /**
- * 维护情况记录
- */
- @TableField("HANDLE_MESSAGE")
- private String handleMessage;
- /**
- * 维护图片
- */
- @TableField("HANDLE_PHOTOS")
- private String handlePhotos;
- /**
- * 工单流转记录
- */
- @TableField("FLOW")
- private String flow;
-
- @TableField("JOB_BELONG_TO")
- private Long jobBelongTo;
-
- @TableField("JOB_FLAG_DELAY")
- private String jobFlagDelay;
-
- @TableField("JOB_FLAG_1")
- private String jobFlag1;
-
- @TableField(exist = false)
- private String alarmValue;
-
- @TableField(exist = false)
- private String alarmContentName;
-
- @TableField(exist = false)
- private Integer recordId;
-
- @Override
- public String toString() {
- return "AlarmJob{" +
- "id=" + id +
- ", jobcode=" + jobcode +
- ", jogType=" + jobType +
- ", wellCode=" + wellCode +
- ", devcode=" + devcode +
- ", createTime=" + createTime +
- ", jobStatus=" + jobStatus +
- ", getJobPerson=" + getJobPerson +
- ", getJobTime=" + getJobTime +
- ", firstState=" + firstState +
- ", firstStatePhotos=" + firstStatePhotos +
- ", confirmJobPerson=" + confirmJobPerson +
- ", confrimJobTime=" + confrimJobTime +
- ", handleJobPerson=" + handleJobPerson +
- ", handleJobTime=" + handleJobTime +
- ", handleMessage=" + handleMessage +
- ", handlePhotos=" + handlePhotos +
- ", flow=" + flow +
- ", recordId=" + recordId +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmRecord.java b/src/main/java/com/casic/entity/AlarmRecord.java
new file mode 100644
index 0000000..137d805
--- /dev/null
+++ b/src/main/java/com/casic/entity/AlarmRecord.java
@@ -0,0 +1,106 @@
+package com.casic.entity;
+
+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 com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *
+ *
+ *
+ *
+ * @author casic123
+ * @since 2019-05-17
+ */
+@Data
+@TableName("ALARM_ALARM_RECORD")
+public class AlarmRecord extends Model {
+
+
+ private static final long serialVersionUID = 1L;
+ /**
+ * 主键
+ */
+ @TableId(value = "DBID")
+ private Long dbid;
+ /**
+ * 设备编号
+ */
+ @TableField("DEVICE_CODE")
+ private String deviceCode;
+ /**
+ * 设备类型名称
+ */
+ @TableField("DEVICE_TYPE_NAME")
+ private String deviceTypeName;
+ /**
+ * 是否推送,默认0
+ */
+ @TableField("ISSEND")
+ private String issend;
+ /**
+ * 默认default
+ */
+ @TableField("ITEMNAME")
+ private String itemname;
+ /**
+ * 没有数值
+ */
+ @TableField("ITEMVALUE")
+ private String itemvalue;
+ /**
+ * 1
+ */
+ @TableField("MESSAGE")
+ private String message;
+ /**
+ * 0
+ */
+ @TableField("MESSAGE_STATUS")
+ private String messageStatus;
+
+
+ /**
+ * 0
+ */
+ @TableField("RECORDCODE")
+ private String recordcode;
+ /**
+ * 告警日期
+ */
+ @TableField("RECORDDATE")
+ private Date recorddate;
+ /**
+ * 工单编号
+ */
+ @TableField("DEVICE_ID")
+ private Long deviceId;
+
+ /**
+ * 删除标志,默认为1
+ */
+ private Integer active;
+
+ @Override
+ public String toString() {
+ return "AlarmRecord{" +
+ "dbid=" + dbid +
+ ", deviceCode='" + deviceCode + '\'' +
+ ", deviceTypeName='" + deviceTypeName + '\'' +
+ ", issend='" + issend + '\'' +
+ ", itemname='" + itemname + '\'' +
+ ", itemvalue='" + itemvalue + '\'' +
+ ", message='" + message + '\'' +
+ ", messageStatus='" + messageStatus + '\'' +
+ ", recordcode='" + recordcode + '\'' +
+ ", recorddate=" + recorddate +
+ ", deviceId=" + deviceId +
+ ", active=" + active +
+ '}';
+ }
+}
diff --git a/src/main/java/com/casic/entity/AlarmRecords.java b/src/main/java/com/casic/entity/AlarmRecords.java
deleted file mode 100644
index 88b0b26..0000000
--- a/src/main/java/com/casic/entity/AlarmRecords.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- *
- *
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_records")
-public class AlarmRecords extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- 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;
-
- @Override
- public String toString() {
- return "AlarmRecords{" +
- "id=" + id +
- ", deviceId=" + deviceId +
- ", devcode=" + devcode +
- ", wellCode=" + wellCode +
- ", alarmType=" + alarmType +
- ", alarmContent=" + alarmContent +
- ", alarmValue=" + alarmValue +
- ", alarmLevel=" + alarmLevel +
- ", alarmMessage=" + alarmMessage +
- ", alarmTime=" + alarmTime +
- ", status=" + status +
- ", jobId=" + jobId +
- ", jobStatus=" + jobStatus +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/ButaneData.java b/src/main/java/com/casic/entity/ButaneData.java
new file mode 100644
index 0000000..2e051be
--- /dev/null
+++ b/src/main/java/com/casic/entity/ButaneData.java
@@ -0,0 +1,28 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Builder;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@TableName("CASIC_BUTANE_INFO")
+@Builder
+public class ButaneData extends Model {
+
+ @TableId(value = "DBID")
+ private Long dbid;
+
+ private String devcode;
+
+ private String status;
+
+ private String descn;
+
+ private Date logtime;
+
+}
diff --git a/src/main/java/com/casic/entity/Device.java b/src/main/java/com/casic/entity/Device.java
new file mode 100644
index 0000000..0360e41
--- /dev/null
+++ b/src/main/java/com/casic/entity/Device.java
@@ -0,0 +1,27 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@TableName("ALARM_DEVICE")
+public class Device implements Serializable {
+ /**
+ * 设备基本信息表
+ */
+ private static final long serialVersionUID = -2023118078562324658L;
+ @TableId(value = "DBID")
+ private Long id;
+ @TableId(value = "DEVCODE")
+ private String devCode;
+ @TableId(value = "DEVNAME")
+ private String devName;
+ @TableId(value = "FACTORY")
+ private String factory;
+ @TableId(value = "SIMID")
+ private String simid; // SIM卡号
+
+}
diff --git a/src/main/java/com/casic/model/HostData.java b/src/main/java/com/casic/model/HostData.java
new file mode 100644
index 0000000..40cefa7
--- /dev/null
+++ b/src/main/java/com/casic/model/HostData.java
@@ -0,0 +1,16 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class HostData {
+ private String model;
+ private String dev_id;
+ private String chip_id;
+ private String mfd_day;
+ private String sw_ver;
+ private String hw_ver;
+ private String duration;
+ private String d_ch_cnt;
+ private String a_ch_cnt;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReceiveDataParam.java b/src/main/java/com/casic/model/ReceiveDataParam.java
new file mode 100644
index 0000000..3a17d24
--- /dev/null
+++ b/src/main/java/com/casic/model/ReceiveDataParam.java
@@ -0,0 +1,20 @@
+package com.casic.model;
+
+import lombok.Data;
+
+import java.util.HashMap;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReceiveDataParam {
+ private String deviceType;
+ private String iotId;
+ private String requestId;
+ private Object checkFailedData;
+ private String productKey;
+ private String deviceName;
+ private HashMap items;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReportUpdataParam.java b/src/main/java/com/casic/model/ReportUpdataParam.java
new file mode 100644
index 0000000..20c2ca9
--- /dev/null
+++ b/src/main/java/com/casic/model/ReportUpdataParam.java
@@ -0,0 +1,23 @@
+package com.casic.model;
+
+import lombok.Data;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReportUpdataParam {
+ private String msg_type;
+ private String event_change;
+ private String error_val;
+ private String ch_cnt;
+ private String erro_cnt;
+ private String alarm_low_cnt;
+ private String alarm_high_cnt;
+ private String offline_cnt;
+ private String rtd_val;
+ private String adc_val;
+ private String status_val;
+ private String time;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/WirelessData.java b/src/main/java/com/casic/model/WirelessData.java
new file mode 100644
index 0000000..b062c13
--- /dev/null
+++ b/src/main/java/com/casic/model/WirelessData.java
@@ -0,0 +1,19 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class WirelessData {
+ private String model;
+ private String IMEI;
+ private String ICCID;
+ private String sw_ver;
+ private String hw_ver;
+ private String ch_cnt;
+ private String heartbeat_inv;
+ private String up_pcnt;
+ private String up_pcnt_inv;
+ private String csq;
+}
+
+
diff --git a/src/main/java/com/casic/schedule/TaskConfigurer.java b/src/main/java/com/casic/schedule/TaskConfigurer.java
new file mode 100644
index 0000000..77c5d5a
--- /dev/null
+++ b/src/main/java/com/casic/schedule/TaskConfigurer.java
@@ -0,0 +1,47 @@
+package com.casic.schedule;
+
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+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
+@Slf4j
+@RequiredArgsConstructor
+public class TaskConfigurer implements SchedulingConfigurer {
+
+ @Value("${casic.device.online.cron}")
+ private String onlineStateCron;
+
+ private final DeviceDataService deviceDataService;
+
+ @Override
+ public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
+ TriggerTask onlineStateTask = new TriggerTask(nextDayDevice(),
+ triggerContext -> {
+ return new CronTrigger(onlineStateCron).nextExecutionTime(triggerContext);
+ });
+ taskRegistrar.addTriggerTask(onlineStateTask);
+ }
+
+ private Runnable nextDayDevice() {
+ return new Runnable() {
+ @Override
+ public void run() {
+ log.info("定时查询在线离线运行了...");
+ deviceDataService.checkAndUpdateDeviceOnline();
+ }
+ };
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/service/AlarmRecordFly.java b/src/main/java/com/casic/service/AlarmRecordFly.java
new file mode 100644
index 0000000..47c7969
--- /dev/null
+++ b/src/main/java/com/casic/service/AlarmRecordFly.java
@@ -0,0 +1,39 @@
+package com.casic.service;
+
+import com.casic.entity.AlarmRecord;
+
+public class AlarmRecordFly {
+
+ private static AlarmRecord alarmRecord;
+
+ static {
+ alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("0");
+ alarmRecord.setActive(1);
+ }
+
+ public static AlarmRecord getAlarmRecord() {
+ return alarmRecord;
+ }
+
+ public static AlarmRecord getPrototype(){
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("-1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("1");
+ alarmRecord.setActive(1);
+ return alarmRecord;
+ }
+
+
+
+
+}
diff --git a/src/main/java/com/casic/service/DeviceDataService.java b/src/main/java/com/casic/service/DeviceDataService.java
new file mode 100644
index 0000000..f972981
--- /dev/null
+++ b/src/main/java/com/casic/service/DeviceDataService.java
@@ -0,0 +1,7 @@
+package com.casic.service;
+
+public interface DeviceDataService {
+
+ void checkAndUpdateDeviceOnline();
+
+}
diff --git a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java
new file mode 100644
index 0000000..f41a44d
--- /dev/null
+++ b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java
@@ -0,0 +1,68 @@
+package com.casic.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.casic.dao.AlarmRecordsMapper;
+import com.casic.dao.DeviceDataMapper;
+import com.casic.entity.AlarmRecord;
+import com.casic.service.AlarmRecordFly;
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @author cz
+ */
+@Service
+@RequiredArgsConstructor
+public class DeviceDataServiceImpl extends ServiceImpl implements DeviceDataService {
+
+ private final DeviceDataMapper deviceDataMapper;
+
+ @Value("${casic.device.data-day}")
+ private Integer dataDay;
+
+ @Value("${casic.device.gas-dector.type}")
+ private Integer devciceType;
+
+
+ @Override
+ public void checkAndUpdateDeviceOnline() {
+ //查询硫化氢设备
+ List> devcodeList = deviceDataMapper.getDevcodeByType(devciceType);
+ //统一查询所有设备的3天内数据的设备编号,然后设备编号转成map,进行
+ List dataList = deviceDataMapper.getRecentData(dataDay);
+ List> dataSortDevcodeList = devcodeList;
+ if (dataList != null) {
+ Map devOnlineMap = new HashMap<>();
+ for (String devcodeData : dataList) {
+ devOnlineMap.put(devcodeData, "");
+ }
+ dataSortDevcodeList = dataSortDevcodeList.stream().filter(
+ e -> !devOnlineMap.containsKey((String) e.get("devcode"))).collect(Collectors.toList());
+ }
+ //批量产生离线报警
+ if (CollectionUtils.isNotEmpty(dataSortDevcodeList)) {
+ List alarmRecords = new ArrayList<>();
+ for (Map dataDevcodeMap : dataSortDevcodeList) {
+ alarmRecords.add(createAlarmRecord(((BigDecimal)dataDevcodeMap.get("id")).longValue(), (String) dataDevcodeMap.get("devcode")));
+ }
+ this.saveBatch(alarmRecords);
+ }
+ }
+
+ private AlarmRecord createAlarmRecord(Long id, String devcode) {
+ AlarmRecord alarmRecord = AlarmRecordFly.getPrototype();
+ alarmRecord.setRecorddate(new Date());
+ alarmRecord.setDbid(null);
+ alarmRecord.setDeviceCode(devcode);
+ alarmRecord.setDeviceId(id);
+ return alarmRecord;
+ }
+
+}
diff --git a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
index 4591d50..176b389 100644
--- a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
@@ -1,53 +1,41 @@
package com.casic.service.impl;
-import com.alibaba.druid.util.StringUtils;
-import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.casic.dao.AlarmRecordsMapper;
-import com.casic.dao.DataGasMapper;
-import com.casic.dao.DeviceMapper;
-import com.casic.dao.impl.AlarmJobDao;
-import com.casic.entity.AlarmJob;
-import com.casic.entity.AlarmRecords;
-import com.casic.entity.DataGasDector;
+import com.casic.dao.ButaneDataMapper;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.ButaneData;
import com.casic.entity.Device;
import com.casic.model.ResponseData;
+import com.casic.service.AlarmRecordFly;
import com.casic.service.DeviceService;
+import com.casic.util.SendUtil;
+import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import xyz.downgoon.snowflake.Snowflake;
-import javax.annotation.Resource;
import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import java.util.function.Supplier;
@Slf4j
@Service
+@RequiredArgsConstructor
public class DeviceServiceImpl implements DeviceService {
-
- @Value("${casic.device.gas-dector.enable-local}")
- private Boolean enableLocal;
- @Value("${casic.device.gas-dector.type}")
- private Long deviceType;
- @Resource
- private DataGasMapper dataGasMapper;
- @Resource
- private AlarmRecordsMapper alarmRecordsMapper;
- @Resource
- private DeviceMapper deviceMapper;
- @Autowired
- private AlarmJobDao alarmJobDao;
+ private final ButaneDataMapper butaneDataMapper;
+ private final AlarmRecordsMapper alarmRecordsMapper;
private static Snowflake snowflake = new Snowflake(0, 2);
+ @Autowired
+ private SendUtil sendUtil;
@Override
public ResponseData testMysql() {
+
ResponseData responseData = new ResponseData();
responseData.setMessage("保存成功");
responseData.setCode(1);
@@ -62,18 +50,16 @@
public ResponseData saveDataGas(Map receiveData) {
ResponseData responseData = new ResponseData();
try {
- Map payloadData;
+ Map payloadData = receiveData;
if (receiveData.containsKey("payload")) {
payloadData = (Map) receiveData.get("payload");
- }else{
- payloadData=receiveData;
}
- this.flagSelectProcessor("eventType", payloadData, () -> gasStatusUpdate(payloadData))
- .flagSelectProcessor("gas_sample_value", payloadData, () -> dealNormalData(receiveData));
+ this.flagSelectProcessor("gas_sensor_state", payloadData, () -> gasStatusUpdate(receiveData))
+ .flagSelectProcessor("heartbeat_time", payloadData, () -> dealNormalData(receiveData));
responseData.setCode(200);
responseData.setMessage("保存成功");
} catch (Exception dex) {
- log.error("主题:广东台燃气设备存储异常,异常信息:{}", dex.getMessage());
+ log.error("主题:燃气设备存储异常,异常信息:{}", dex.getMessage());
responseData.setCode(500);
responseData.setMessage("保存异常");
}
@@ -95,99 +81,110 @@
* @return
*/
private Boolean gasStatusUpdate(Map receiveData) {
- Long lonTimetemp = Long.valueOf(receiveData.get("timestamp").toString());
- String onlindeStatus = receiveData.get("eventType").toString();
- String devcode = receiveData.get("imei").toString();
- QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("devcode", devcode);
- queryWrapper.eq("valid", 1);
- Device device = new Device();
- if (!StringUtils.isEmpty(onlindeStatus)) {
- device.setOnlineState(onlindeStatus);
- Date logTime = new Date();
- logTime.setTime(lonTimetemp);
- device.setLogtime(logTime);
- deviceMapper.update(device, queryWrapper);
- return true;
+ AlarmRecord alarmRecord = AlarmRecordFly.getAlarmRecord();
+ Map payloadData = (Map) receiveData.get("payload");
+ //判断事件类型 0正常 1低报 2高报
+ String alarmSituation = payloadData.get("gas_sensor_state").toString();
+ String devcode = receiveData.get("IMEI").toString();
+ clearOnlineData(devcode);
+ //构建数据
+ ButaneData butaneData = ButaneData.builder()
+ .devcode(devcode)
+ .dbid(snowflake.nextId())
+ .build();
+ populateTime(receiveData, butaneData, alarmRecord);
+ switch (alarmSituation) {
+ case "0":
+// butaneData.setDescn("状态正常");
+// butaneData.setStatus("0");
+ break;
+ default:
+ //第一条上来,消除报警
+ clearAlarmData(devcode);
+ //产生新的报警,消除报警
+ butaneData.setDescn("可燃气体探测器报警");
+ butaneData.setStatus("1");
+ synchronized (alarmRecord) {
+ alarmRecord.setDbid(null);
+ alarmRecord.setDeviceCode(devcode);
+ alarmRecord.setDeviceId(alarmRecordsMapper.getDevcode(devcode));
+ alarmRecordsMapper.insert(alarmRecord);
+ }
+ butaneDataMapper.insert(butaneData);
+
+ try {
+ //推送短信至第三方
+ Device device = alarmRecordsMapper.getDevice(devcode);
+ if (null == device) {
+ log.error("设备不存在,编号:" + devcode);
+ return false;
+ }
+ JSONObject eventObj = new JSONObject();
+ eventObj.put("type", "燃气报警");
+ sendUtil.sendEventBySms(device, eventObj);
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ }
}
- return false;
+ return true;
}
public Boolean dealNormalData(Map receiveData) {
String devcode = receiveData.get("IMEI").toString();
- if (!StringUtils.isEmpty(devcode)) {
- Map deviceMap = deviceMapper.getWellCode(devcode);
- //保存数据,无论是否有设备在库内
- DataGasDector dataGasDector = this.saveNormalData(receiveData, deviceMap);
- if (ObjectUtils.isEmpty(deviceMap)) {
- log.info("没有该设备编号录入" + devcode);
- if (enableLocal) {
- return true;
- }
- }
- //自动消除报警
- this.alarmRecordsMapper.clearAlarm(devcode);
- this.dataTaskJudge(deviceMap, dataGasDector);
- return true;
+ //第一条上来,清除离线
+ clearOnlineData(devcode);
+ ButaneData butaneData = ButaneData.builder()
+ .devcode(devcode)
+ .dbid(snowflake.nextId())
+ .descn("状态正常")
+ .status("0")
+ .build();
+ if (!ObjectUtils.isEmpty(receiveData) && receiveData.containsKey("timestamp")) {
+ butaneData.setLogtime(new Date(Long.valueOf(receiveData.get("timestamp").toString())));
+ } else {
+ butaneData.setLogtime(new Date());
}
+ butaneDataMapper.insert(butaneData);
return false;
}
- private DataGasDector saveNormalData(Map receiveData, Map deviceMap) {
- DataGasDector dataGasDector = new DataGasDector();
- dataGasDector.setId(snowflake.nextId());
- dataGasDector.setDevcode(receiveData.get("IMEI").toString());
- dataGasDector.setWellCode(!ObjectUtils.isEmpty(deviceMap) && deviceMap.containsKey("wellCode") ? deviceMap.get("wellCode").toString() : "");
- dataGasDector.setLogtime(new Date());
+ private void populateTime(Map receiveData, ButaneData butaneData, AlarmRecord alarmRecord) {
if (!ObjectUtils.isEmpty(receiveData) && receiveData.containsKey("timestamp")) {
- dataGasDector.setUptime(new Date(Long.valueOf(receiveData.get("timestamp").toString())));
+ Date logtime = new Date(Long.valueOf(receiveData.get("timestamp").toString()));
+ butaneData.setLogtime(logtime);
+ alarmRecord.setRecorddate(logtime);
} else {
- dataGasDector.setUptime(new Date());
+ alarmRecord.setRecorddate(new Date());
+ butaneData.setLogtime(new Date());
}
- Map gascontent = (Map)receiveData.get("payload");
- if (!ObjectUtils.isEmpty(gascontent)) {
- if (gascontent.containsKey("gas_sample_value")) {
- dataGasDector.setStrength(gascontent.get("gas_sample_value").toString());
- }
- }
- dataGasMapper.insert(dataGasDector);
- return dataGasDector;
}
- /**
- * 报警存库
- */
- private void dataTaskJudge(Map deviceMap, DataGasDector dataGasDector) {
- List> alarmLevelList = dataGasMapper.getAlarmLevelList(deviceType);
- String wellCode = dataGasDector.getWellCode();
- Long deviceId = !ObjectUtils.isEmpty(deviceMap) && deviceMap.containsKey("wellCode") ? Long.valueOf(String.valueOf(deviceMap.get("deviceId"))) : -1;
- final String gasMsgContent = dataGasMapper.getGasMsgContent(deviceType);
- for (Map alarmLevelMap : alarmLevelList) {
- if (Float.valueOf(dataGasDector.getStrength()) > Float.valueOf(String.valueOf(alarmLevelMap.get("high_value")))) {
- AlarmRecords alarmRecord = new AlarmRecords();
- alarmRecord.setId(snowflake.nextId());
- alarmRecord.setDeviceId(deviceId);
- alarmRecord.setDevcode(dataGasDector.getDevcode());
- alarmRecord.setWellCode(wellCode);
- alarmRecord.setAlarmType("1"); // 业务报警
- alarmRecord.setAlarmContent(gasMsgContent);
- alarmRecord.setAlarmValue(dataGasDector.getStrength());
- alarmRecord.setAlarmTime(new Date());
- alarmRecord.setStatus("1");
- alarmRecord.setAlarmLevel(Integer.valueOf(alarmLevelMap.get("level").toString()));
- alarmRecord.setAlarmMessage(gasMsgContent);
- String jobId = alarmRecordsMapper.isOldAlarmRecord(dataGasDector.getDevcode(), gasMsgContent);
- // 超出报警阈值 生成一条报警消息
- if (!StringUtils.isEmpty(jobId)) {
- alarmRecordsMapper.updateOldAlarmRecord(dataGasDector.getDevcode(), gasMsgContent);
- alarmRecord.setJobId(Long.valueOf(jobId));
- } else {
- AlarmJob alarmJob = alarmJobDao.saveData(dataGasDector.getStrength(), wellCode, "RQZD", "1");
- alarmRecord.setJobId(alarmJob.getId());
- }
- alarmRecordsMapper.insert(alarmRecord);
- break;
- }
+ private void clearAlarmData(String devcode) {
+ QueryWrapper queryWrapper = new QueryWrapper();
+ queryWrapper.eq("DEVICE_CODE", devcode);
+ queryWrapper.eq("ACTIVE", 1);
+ try {
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setActive(0);
+ alarmRecordsMapper.update(alarmRecord, queryWrapper);
+ } catch (Exception e) {
+ log.error("清除报警失败,设备编号为{},异常信息{}", devcode, e);
}
}
+
+ private void clearOnlineData(String devcode) {
+ QueryWrapper queryWrapper = new QueryWrapper();
+ queryWrapper.eq("DEVICE_CODE", devcode);
+ queryWrapper.eq("ACTIVE", 1);
+ queryWrapper.eq("MESSAGE_STATUS", "0");
+ queryWrapper.eq("RECORDCODE", "1");
+ try {
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setActive(0);
+ alarmRecordsMapper.update(alarmRecord, queryWrapper);
+ } catch (Exception e) {
+ log.error("清除报警失败,设备编号为{},异常信息{}", devcode, e);
+ }
+ }
+
}
diff --git a/src/main/java/com/casic/util/ConestUtil.java b/src/main/java/com/casic/util/ConestUtil.java
deleted file mode 100644
index 2a4d305..0000000
--- a/src/main/java/com/casic/util/ConestUtil.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package com.casic.util;
-
-public class ConestUtil {
-
-
-}
diff --git a/src/main/java/com/casic/util/DateUtils.java b/src/main/java/com/casic/util/DateUtils.java
new file mode 100644
index 0000000..db2ed9c
--- /dev/null
+++ b/src/main/java/com/casic/util/DateUtils.java
@@ -0,0 +1,63 @@
+package com.casic.util;
+
+import java.text.SimpleDateFormat;
+
+/**
+ * Created by Administrator on 2015/2/25.
+ */
+public class DateUtils {
+ public static SimpleDateFormat sdf_day = new SimpleDateFormat("yyyy-MM-dd");
+ public static SimpleDateFormat sdf_day_time = new SimpleDateFormat("yyyyMMddHHmmss");
+ public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ public static final SimpleDateFormat sdf5 = new SimpleDateFormat("HH:mm:ss");
+ public static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+
+
+ public static String DateFormat(String dataString) {
+
+ String strymd = dataString.substring(0, 8);
+ String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " ";
+ String strhms = dataString.substring(8);
+ String str2 = strhms.substring(0, 2) + ":" + strhms.substring(2, 4) + ":" + strhms.substring(4, 6);
+ dataString = str1 + str2;
+ return dataString;
+ }
+
+ public static String DateFormatDate(String dataString) {
+
+ String strymd = dataString.substring(0, 8);
+ return strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8);
+ }
+
+ public static String DateFormatTime(String dataString) {
+
+ String strhms = dataString.substring(8);
+ return strhms.substring(0, 2) + ":" + strhms.substring(2, 4) + ":" + strhms.substring(4, 6);
+ }
+
+ /**
+ * 比较两个时间 时分秒 大小
+ *
+ * @param s1
+ * @param s2
+ * @return
+ */
+ public static boolean compTime(String s1, String s2) {
+ try {
+ if (s1.indexOf(":") < 0 || s1.indexOf(":") < 0) {
+ System.out.println("格式不正确");
+ } else {
+ String[] array1 = s1.split(":");
+ int total1 = Integer.valueOf(array1[0]) * 3600 + Integer.valueOf(array1[1]) * 60;
+ String[] array2 = s2.split(":");
+ int total2 = Integer.valueOf(array2[0]) * 3600 + Integer.valueOf(array2[1]) * 60;
+ return total1 - total2 > 0 ? true : false;
+ }
+ } catch (NumberFormatException e) {
+ // TODO Auto-generated catch block
+ return false;
+ }
+ return false;
+
+ }
+}
diff --git a/src/main/java/com/casic/util/HttpClientUtils.java b/src/main/java/com/casic/util/HttpClientUtils.java
new file mode 100644
index 0000000..91a631e
--- /dev/null
+++ b/src/main/java/com/casic/util/HttpClientUtils.java
@@ -0,0 +1,40 @@
+package com.casic.util;
+
+
+import com.alibaba.fastjson.JSONObject;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpStatus;
+import org.apache.commons.httpclient.methods.PostMethod;
+
+import java.io.IOException;
+
+public class HttpClientUtils {
+
+
+
+ public static String post(String url, String body, JSONObject header) {
+ HttpClient client = new HttpClient();
+ client.setTimeout(30000);
+ PostMethod method = new PostMethod(url);
+ // for (Map.Entry entry : headers.entrySet()) {
+ method.addRequestHeader("Content-type", "application/json; charset=utf-8");
+ method.addRequestHeader("Accept", "application/json");
+ method.addRequestHeader("X-APP-KEY", header.getString("X-APP-KEY"));
+ method.setRequestBody(body);
+ try {
+ int statusCode = client.executeMethod(method);
+ if (statusCode == HttpStatus.SC_OK) {
+ return new String(method.getResponseBody(), "UTF-8");
+ }
+
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+}
diff --git a/src/main/java/com/casic/util/SendUtil.java b/src/main/java/com/casic/util/SendUtil.java
new file mode 100644
index 0000000..2d73db1
--- /dev/null
+++ b/src/main/java/com/casic/util/SendUtil.java
@@ -0,0 +1,67 @@
+package com.casic.util;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.casic.entity.Device;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+@Slf4j
+@Component
+public class SendUtil {
+ @Value("${casic.synchronizeSms.enabled}")
+ private String enabled;
+ @Value("${casic.smsSenderURL}")
+ private String smsSenderUrl;
+ @Value("${casic.X-APP-KEY-SMS}")
+ private String smsAppKey;
+
+ public void sendEventBySms(Device device, JSONObject eventObj) {
+ if ("true".equals(enabled)) {
+// String smsSenderUrl = Configure.getProperty("smsSenderURL", "http://general.bushub.rj.prd/sms/user/send");
+// String smsAppKey = Configure.getProperty("X-APP-KEY-SMS", "2d3a8e35-0533-42a0-97a2-63f82a3216f9");
+ String sim = device.getSimid();
+ if (null == sim || StringUtils.isBlank(sim)) {
+ return;
+ }
+
+ if (null == smsAppKey || StringUtils.isBlank(smsAppKey)) {
+ return;
+ }
+
+ JSONObject header = new JSONObject();
+ header.put("X-APP-KEY", smsAppKey);
+
+ StringBuilder params = new StringBuilder();
+ params.append("{");
+ params.append("\"mobile\":");
+ params.append("\"").append(sim).append("\"").append(",");
+
+ String prefix = "【智慧蓉江】";
+ String eventTm = DateUtils.sdf4.format(new Date());
+ String devName = device.getDevName();
+ String place = device.getFactory();
+
+ StringBuilder content = new StringBuilder("");
+ content.append(prefix);
+ content.append(eventTm).append(",");
+ content.append("管网监测设备[").append(devName).append("],");
+ content.append("发生").append(eventObj.getString("type")).append(",");
+ if (eventObj.containsKey("value") == true) {
+ content.append(eventObj.getString("value")).append(",");
+ }
+ content.append("详细地址是:").append(place).append(",");
+ content.append("请关注并及时处理。");
+
+ params.append("\"content\":");
+ params.append("\"").append(content.toString()).append("\"");
+ params.append("}");
+
+ String resp = HttpClientUtils.post(smsSenderUrl, params.toString(), header);
+ log.info("已发送短信"+resp);
+ }
+ }
+}
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 4807974..d47010a 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -1,12 +1,12 @@
server:
- port: 5907
+ port: 5001
################### spring配置 ###################
spring:
datasource:
- driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://111.198.10.15:11102/smartwell_gdt?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=GMT%2B8&&allowMultiQueries=true&&useSSL=true
- username: root
- password: Casic203!
+ driverClassName: oracle.jdbc.driver.OracleDriver
+ url: jdbc:oracle:thin:@11.100.6.183:1521:orcl
+ username: gzsg
+ password: gzsg
session:
store-type: redis
redis:
@@ -19,8 +19,15 @@
# session:
#flowable数据源和多数据源配置
logging:
- level.root: error
- level.com.casic: error
+ level.root: info
+ level.com.casic: debug
+ level.org.springframework.web: info
file:
path: logs/
- name: missiles.log
\ No newline at end of file
+ name: missiles.log
+#短信推送
+casic:
+ synchronizeSms.enabled: true
+ smsSenderURL: http://general.bushub.rj.prd/sms/user/send
+ X-APP-KEY-SMS: 2d3a8e35-0533-42a0-97a2-63f82a3216f9
+ sms-prefix: 【智慧蓉江】
\ No newline at end of file
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 4038629..21ecda8 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -24,6 +24,9 @@
casic:
device:
gas-dector:
- type: 10
+ type: 30
minutes: 60
- enable-local: false
\ No newline at end of file
+ enable-local: false
+ data-day: 1 # 时间多少的为离线
+ online:
+ cron: 0 0/1 * * * ? # 多长时间判断离线
\ No newline at end of file
diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..c0c7ac9
--- /dev/null
+++ b/src/main/resources/logback-spring.xml
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ ${CONSOLE_LOG_PATTERN}
+ utf-8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${CONSOLE_LOG_PATTERN}
+ utf-8
+
+
+
+
+
+
+
+ ${LOG_PATH}/missiles_error.log
+
+
+
+
+
+ ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log
+
+
+
+ 10MB
+
+
+
+
+ true
+
+
+
+ ${FILE_LOG_PATTERN}
+ utf-8
+
+
+
+
+ error
+ ACCEPT
+ DENY
+
+
+
+
+
+
+
+ ${LOG_PATH}/missiles_total.log
+
+
+
+
+
+ ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log
+
+
+
+ 10MB
+
+
+
+
+ true
+
+
+
+ ${FILE_LOG_PATTERN}
+ utf-8
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/mapper/DeviceDataMapper.xml b/src/main/resources/mapper/DeviceDataMapper.xml
new file mode 100644
index 0000000..4e15de9
--- /dev/null
+++ b/src/main/resources/mapper/DeviceDataMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/mapper/DeviceMapper.xml b/src/main/resources/mapper/DeviceMapper.xml
new file mode 100644
index 0000000..d04d912
--- /dev/null
+++ b/src/main/resources/mapper/DeviceMapper.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+ UPDATE BUS_DEVICE
+ SET ONLINE_STATE=0
+ WHERE VALID=1
+ AND DEVCODE IN
+
+ #{item}
+
+
+
+
+
\ No newline at end of file
diff --git a/target/classes/application-dev.yml b/target/classes/application-dev.yml
index 5c64ca8..8a5929a 100644
--- a/target/classes/application-dev.yml
+++ b/target/classes/application-dev.yml
@@ -1,12 +1,12 @@
server:
- port: 11520
+ port: 5001
################### spring配置 ###################
spring:
datasource:
- driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://111.198.10.15:11102/smartwell_gdt?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=GMT%2B8&&allowMultiQueries=true&&useSSL=true
- username: root
- password: Casic203!
+ driverClassName: oracle.jdbc.driver.OracleDriver
+ url: jdbc:oracle:thin:@11.100.6.181:1521:orcl
+ username: gzsg
+ password: gzsg
session:
store-type: redis
redis:
@@ -19,8 +19,15 @@
# session:
#flowable数据源和多数据源配置
logging:
- level.root: error
- level.com.casic: error
+ level.root: info
+ level.com.casic: debug
+ level.org.springframework.web: info
file:
path: logs/
- name: missiles.log
\ No newline at end of file
+ name: missiles.log
+#短信推送
+casic:
+ synchronizeSms.enabled: true
+ smsSenderURL: http://general.bushub.rj.prd/sms/user/send
+ X-APP-KEY-SMS: 2d3a8e35-0533-42a0-97a2-63f82a3216f9
+ sms-prefix: 【智慧蓉江】
\ No newline at end of file
diff --git a/target/classes/com/casic/controller/DeviceController.class b/target/classes/com/casic/controller/DeviceController.class
index 0813269..fd9b8ca 100644
--- a/target/classes/com/casic/controller/DeviceController.class
+++ b/target/classes/com/casic/controller/DeviceController.class
Binary files differ
diff --git a/target/classes/com/casic/dao/DataGasMapper.class b/target/classes/com/casic/dao/DataGasMapper.class
deleted file mode 100644
index b9404b1..0000000
--- a/target/classes/com/casic/dao/DataGasMapper.class
+++ /dev/null
Binary files differ
diff --git a/target/classes/com/casic/dao/DeviceMapper.class b/target/classes/com/casic/dao/DeviceMapper.class
deleted file mode 100644
index a2d1f17..0000000
--- a/target/classes/com/casic/dao/DeviceMapper.class
+++ /dev/null
Binary files differ
diff --git a/pom.xml b/pom.xml
index 4db133b..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,15 @@
UTF-8
UTF-8
1.8
+
+ 8.0.16
+ 3.0.2
+ 3.2.3
+ 3.3.0
+ 2.3.1
+ 3.0.1
+ 2.3
+ 3.1
@@ -48,11 +57,11 @@
2.1.3.RELEASE
+
- mysql
- mysql-connector-java
- 8.0.16
- compile
+ com.oracle.database.jdbc
+ ojdbc6
+ 11.2.0.4
@@ -81,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
@@ -94,7 +111,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.1.3.RELEASE
+ 2.4.5
true
@@ -122,154 +139,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 6152cb6..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -1,8 +1,6 @@
package com.casic.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.casic.model.ReceiveDataParam;
import com.casic.model.ResponseData;
import com.casic.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,11 +27,9 @@
return deviceService.testMysql();
}
- @PostMapping("/data/gas")
+ @PostMapping("/household/gas")
public ResponseData saveDataGas(@RequestBody Map receiveData) {
- log.error("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
+ log.info("----------------------第三方燃气数据上报为{}",JSONObject.toJSONString(receiveData));
return deviceService.saveDataGas(receiveData);
}
-
-
}
diff --git a/src/main/java/com/casic/dao/AlarmJobMapper.java b/src/main/java/com/casic/dao/AlarmJobMapper.java
deleted file mode 100644
index e5e9c8d..0000000
--- a/src/main/java/com/casic/dao/AlarmJobMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmJob;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmJobMapper extends BaseMapper {
-
- @Select("SELECT MAX(jobcode) " +
- "FROM alarm_job " +
- "WHERE JOBCODE like '${jobcode}%'")
- String getJobCodeMaxSerial(@Param("jobcode") String jobcode);
-
-}
diff --git a/src/main/java/com/casic/dao/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index fde1818..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -1,36 +1,24 @@
package com.casic.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.AlarmRecords;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.Device;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
@Mapper
-public interface AlarmRecordsMapper extends BaseMapper {
+public interface AlarmRecordsMapper extends BaseMapper {
+ @Select("SELECT DBID " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Long getDevcode(@Param("devcode") String devcode);
- @Select("SELECT JOB_ID AS \"jobId\"\n " +
- "FROM alarm_records\n " +
- "WHERE DEVCODE = #{devcode}\n " +
- "AND ALARM_CONTENT = #{MsgContent}\n " +
- "AND STATUS='1'\n " +
- "AND JOB_ID>0 ")
- String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='0'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND ALARM_CONTENT = #{MsgContent}\n" +
- " AND STATUS='1'")
- Integer updateOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent);
-
-
- @Update(" UPDATE alarm_records\n" +
- " SET STATUS='3'\n" +
- " WHERE DEVCODE = #{devcode}\n" +
- " AND STATUS='1'")
- Integer clearAlarm(@Param("devcode") String devcode);
-
+ @Select("SELECT DBID as id, DEVCODE as devCode, DEVNAME as devName, FACTORY as factory, SIMID as simid " +
+ "FROM ALARM_DEVICE " +
+ "WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
+ Device getDevice(@Param("devcode") String devcode);
}
diff --git a/src/main/java/com/casic/dao/ButaneDataMapper.java b/src/main/java/com/casic/dao/ButaneDataMapper.java
new file mode 100644
index 0000000..632c7d2
--- /dev/null
+++ b/src/main/java/com/casic/dao/ButaneDataMapper.java
@@ -0,0 +1,12 @@
+package com.casic.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.entity.ButaneData;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface ButaneDataMapper extends BaseMapper {
+
+
+}
diff --git a/src/main/java/com/casic/dao/DataGasMapper.java b/src/main/java/com/casic/dao/DataGasMapper.java
deleted file mode 100644
index 8a064f2..0000000
--- a/src/main/java/com/casic/dao/DataGasMapper.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.DataGasDector;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-
-import java.util.List;
-import java.util.Map;
-
-@Mapper
-public interface DataGasMapper extends BaseMapper {
-
- @Select("SELECT level,high_value " +
- "FROM alarm_level " +
- "WHERE device_type=#{deviceType} ")
- List> getAlarmLevelList(@Param("deviceType") Long deviceType);
-
- @Select("SELECT devcode " +
- "FROM data_gas_dector " +
- "WHERE devcode=#{devcode} " +
- "AND (EXTRACT(epoch FROM CAST(now() AS TIMESTAMPTZ))-EXTRACT(epoch FROM CAST(logtime AS TIMESTAMPTZ)))/60.0 < ${minutes} "+
- "ORDER BY logtime DESC " +
- "LIMIT 1")
- String getLastData(@Param("minutes") String minutes,
- @Param("devcode") String devcode);
-
- @Select("SELECT alarm_content " +
- "FROM base_alarm_content_type " +
- "WHERE device_type=#{deviceType}")
- String getGasMsgContent(@Param("deviceType")Long deviceType);
-
-
-}
diff --git a/src/main/java/com/casic/dao/DeviceDataMapper.java b/src/main/java/com/casic/dao/DeviceDataMapper.java
new file mode 100644
index 0000000..e9456c1
--- /dev/null
+++ b/src/main/java/com/casic/dao/DeviceDataMapper.java
@@ -0,0 +1,18 @@
+package com.casic.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface DeviceDataMapper {
+
+ List> getDevcodeByType(@Param("devciceType") Integer devciceType);
+
+ List getRecentData(@Param("dataDay") Integer dataDay);
+
+ int updateOnlineByDevs(@Param("dataSortList") List dataSortDevcodeList);
+
+}
diff --git a/src/main/java/com/casic/dao/DeviceMapper.java b/src/main/java/com/casic/dao/DeviceMapper.java
deleted file mode 100644
index 73b574e..0000000
--- a/src/main/java/com/casic/dao/DeviceMapper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.casic.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.casic.entity.Device;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Map;
-
-@Mapper
-public interface DeviceMapper extends BaseMapper {
-
- Map getWellCode(@Param("devcode") String devcode);
-
-}
diff --git a/src/main/java/com/casic/dao/impl/AlarmJobDao.java b/src/main/java/com/casic/dao/impl/AlarmJobDao.java
deleted file mode 100644
index 5131821..0000000
--- a/src/main/java/com/casic/dao/impl/AlarmJobDao.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.casic.dao.impl;
-
-import com.alibaba.druid.util.StringUtils;
-import com.casic.dao.AlarmJobMapper;
-import com.casic.entity.AlarmJob;
-import org.springframework.stereotype.Component;
-import xyz.downgoon.snowflake.Snowflake;
-
-import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-@Component
-public class AlarmJobDao {
-
- private static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMdd");
-
- private static Snowflake snowflake = new Snowflake(0, 2);
-// private static final Sn
-
- @Resource
- private AlarmJobMapper alarmJobMapper;
-
- public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) {
- AlarmJob alarmJob = new AlarmJob();
- alarmJob.setId(snowflake.nextId());
- alarmJob.setDevcode(devCode);
- alarmJob.setWellCode(wellCode);
- alarmJob.setJobStatus("0");
- alarmJob.setCreateTime(new Date());
- alarmJob.setJobcode(this.produceJobCode(devTypeName));
- alarmJob.setJobType(jobType);
- alarmJobMapper.insert(alarmJob);
- return alarmJob;
- }
-
- /**
- * 前缀+日期+4位流水号
- *
- * @param devTypeName
- * @return
- */
- private String produceJobCode(String devTypeName) {
- String pre = devTypeName;
- String dataStr = sdf6.format(new Date());
- String fix = this.getJobCodeMaxSerial(pre + dataStr);
- return StringUtils.isEmpty(fix) ? pre + dataStr + String.format("%04d", Long.valueOf(StringUtils.isEmpty(fix)?"0":fix) + 1L) : pre + dataStr + "0001";
- }
-
-
- private String getJobCodeMaxSerial(String jobcode) {
- String MaxSerialJobCode = alarmJobMapper.getJobCodeMaxSerial(jobcode);
- String fix = "";
- if (null != MaxSerialJobCode && MaxSerialJobCode.length() > 4) {
- fix = MaxSerialJobCode.substring(MaxSerialJobCode.length() - 4);
- }
- return fix;
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmJob.java b/src/main/java/com/casic/entity/AlarmJob.java
deleted file mode 100644
index 8a0f764..0000000
--- a/src/main/java/com/casic/entity/AlarmJob.java
+++ /dev/null
@@ -1,165 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- *
- * 报警工单表
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_job")
-public class AlarmJob extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- private Long id;
- /**
- * 工单编号
- */
- @TableField("JOBCODE")
- private String jobcode;
- /**
- * 工单类型
- */
- @TableField("JOG_TYPE")
- private String jobType;
- /**
- * 井编号
- */
- @TableField("WELL_CODE")
- private String wellCode;
- /**
- * 设备编号
- */
- @TableField("DEVCODE")
- private String devcode;
- /**
- * 工单创建时间
- */
- @TableField("CREATE_TIME")
- private Date createTime;
- /**
- * 工单状态(0待处理,1待确认,2处理中,3完成)
- */
- @TableField("JOB_STATUS")
- private String jobStatus;
- /**
- * 接单人员
- */
- @TableField("GET_JOB_PERSON")
- private Long getJobPerson;
- /**
- * 接单时间
- */
- @TableField("GET_JOB_TIME")
- private Date getJobTime;
- /**
- * 应接单时间
- */
- @TableField("SHOULD_GET_TIME")
- private Date shouldGetTime;
- /**
- * 第一现场情况
- */
- @TableField("FIRST_STATE")
- private String firstState;
- /**
- * 第一现场照片
- */
- @TableField("FIRST_STATE_PHOTOS")
- private String firstStatePhotos;
- /**
- * 确认人员
- */
- @TableField("CONFIRM_JOB_PERSON")
- private Long confirmJobPerson;
- /**
- * 确认时间
- */
- @TableField("CONFRIM_JOB_TIME")
- private Date confrimJobTime;
- /**
- * 处理人员
- */
- @TableField("HANDLE_JOB_Person")
- private Long handleJobPerson;
- /**
- * 处理时间
- */
- @TableField("HANDLE_JOB_TIME")
- private Date handleJobTime;
- /**
- * 维护情况记录
- */
- @TableField("HANDLE_MESSAGE")
- private String handleMessage;
- /**
- * 维护图片
- */
- @TableField("HANDLE_PHOTOS")
- private String handlePhotos;
- /**
- * 工单流转记录
- */
- @TableField("FLOW")
- private String flow;
-
- @TableField("JOB_BELONG_TO")
- private Long jobBelongTo;
-
- @TableField("JOB_FLAG_DELAY")
- private String jobFlagDelay;
-
- @TableField("JOB_FLAG_1")
- private String jobFlag1;
-
- @TableField(exist = false)
- private String alarmValue;
-
- @TableField(exist = false)
- private String alarmContentName;
-
- @TableField(exist = false)
- private Integer recordId;
-
- @Override
- public String toString() {
- return "AlarmJob{" +
- "id=" + id +
- ", jobcode=" + jobcode +
- ", jogType=" + jobType +
- ", wellCode=" + wellCode +
- ", devcode=" + devcode +
- ", createTime=" + createTime +
- ", jobStatus=" + jobStatus +
- ", getJobPerson=" + getJobPerson +
- ", getJobTime=" + getJobTime +
- ", firstState=" + firstState +
- ", firstStatePhotos=" + firstStatePhotos +
- ", confirmJobPerson=" + confirmJobPerson +
- ", confrimJobTime=" + confrimJobTime +
- ", handleJobPerson=" + handleJobPerson +
- ", handleJobTime=" + handleJobTime +
- ", handleMessage=" + handleMessage +
- ", handlePhotos=" + handlePhotos +
- ", flow=" + flow +
- ", recordId=" + recordId +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/AlarmRecord.java b/src/main/java/com/casic/entity/AlarmRecord.java
new file mode 100644
index 0000000..137d805
--- /dev/null
+++ b/src/main/java/com/casic/entity/AlarmRecord.java
@@ -0,0 +1,106 @@
+package com.casic.entity;
+
+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 com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *
+ *
+ *
+ *
+ * @author casic123
+ * @since 2019-05-17
+ */
+@Data
+@TableName("ALARM_ALARM_RECORD")
+public class AlarmRecord extends Model {
+
+
+ private static final long serialVersionUID = 1L;
+ /**
+ * 主键
+ */
+ @TableId(value = "DBID")
+ private Long dbid;
+ /**
+ * 设备编号
+ */
+ @TableField("DEVICE_CODE")
+ private String deviceCode;
+ /**
+ * 设备类型名称
+ */
+ @TableField("DEVICE_TYPE_NAME")
+ private String deviceTypeName;
+ /**
+ * 是否推送,默认0
+ */
+ @TableField("ISSEND")
+ private String issend;
+ /**
+ * 默认default
+ */
+ @TableField("ITEMNAME")
+ private String itemname;
+ /**
+ * 没有数值
+ */
+ @TableField("ITEMVALUE")
+ private String itemvalue;
+ /**
+ * 1
+ */
+ @TableField("MESSAGE")
+ private String message;
+ /**
+ * 0
+ */
+ @TableField("MESSAGE_STATUS")
+ private String messageStatus;
+
+
+ /**
+ * 0
+ */
+ @TableField("RECORDCODE")
+ private String recordcode;
+ /**
+ * 告警日期
+ */
+ @TableField("RECORDDATE")
+ private Date recorddate;
+ /**
+ * 工单编号
+ */
+ @TableField("DEVICE_ID")
+ private Long deviceId;
+
+ /**
+ * 删除标志,默认为1
+ */
+ private Integer active;
+
+ @Override
+ public String toString() {
+ return "AlarmRecord{" +
+ "dbid=" + dbid +
+ ", deviceCode='" + deviceCode + '\'' +
+ ", deviceTypeName='" + deviceTypeName + '\'' +
+ ", issend='" + issend + '\'' +
+ ", itemname='" + itemname + '\'' +
+ ", itemvalue='" + itemvalue + '\'' +
+ ", message='" + message + '\'' +
+ ", messageStatus='" + messageStatus + '\'' +
+ ", recordcode='" + recordcode + '\'' +
+ ", recorddate=" + recorddate +
+ ", deviceId=" + deviceId +
+ ", active=" + active +
+ '}';
+ }
+}
diff --git a/src/main/java/com/casic/entity/AlarmRecords.java b/src/main/java/com/casic/entity/AlarmRecords.java
deleted file mode 100644
index 88b0b26..0000000
--- a/src/main/java/com/casic/entity/AlarmRecords.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package com.casic.entity;
-
-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 com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- *
- *
- *
- *
- * @author casic123
- * @since 2019-05-17
- */
-@Data
-@TableName("alarm_records")
-public class AlarmRecords extends Model {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 主键
- */
- @TableId(value = "id")
- 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;
-
- @Override
- public String toString() {
- return "AlarmRecords{" +
- "id=" + id +
- ", deviceId=" + deviceId +
- ", devcode=" + devcode +
- ", wellCode=" + wellCode +
- ", alarmType=" + alarmType +
- ", alarmContent=" + alarmContent +
- ", alarmValue=" + alarmValue +
- ", alarmLevel=" + alarmLevel +
- ", alarmMessage=" + alarmMessage +
- ", alarmTime=" + alarmTime +
- ", status=" + status +
- ", jobId=" + jobId +
- ", jobStatus=" + jobStatus +
- "}";
- }
-}
diff --git a/src/main/java/com/casic/entity/ButaneData.java b/src/main/java/com/casic/entity/ButaneData.java
new file mode 100644
index 0000000..2e051be
--- /dev/null
+++ b/src/main/java/com/casic/entity/ButaneData.java
@@ -0,0 +1,28 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Builder;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@TableName("CASIC_BUTANE_INFO")
+@Builder
+public class ButaneData extends Model {
+
+ @TableId(value = "DBID")
+ private Long dbid;
+
+ private String devcode;
+
+ private String status;
+
+ private String descn;
+
+ private Date logtime;
+
+}
diff --git a/src/main/java/com/casic/entity/Device.java b/src/main/java/com/casic/entity/Device.java
new file mode 100644
index 0000000..0360e41
--- /dev/null
+++ b/src/main/java/com/casic/entity/Device.java
@@ -0,0 +1,27 @@
+package com.casic.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@TableName("ALARM_DEVICE")
+public class Device implements Serializable {
+ /**
+ * 设备基本信息表
+ */
+ private static final long serialVersionUID = -2023118078562324658L;
+ @TableId(value = "DBID")
+ private Long id;
+ @TableId(value = "DEVCODE")
+ private String devCode;
+ @TableId(value = "DEVNAME")
+ private String devName;
+ @TableId(value = "FACTORY")
+ private String factory;
+ @TableId(value = "SIMID")
+ private String simid; // SIM卡号
+
+}
diff --git a/src/main/java/com/casic/model/HostData.java b/src/main/java/com/casic/model/HostData.java
new file mode 100644
index 0000000..40cefa7
--- /dev/null
+++ b/src/main/java/com/casic/model/HostData.java
@@ -0,0 +1,16 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class HostData {
+ private String model;
+ private String dev_id;
+ private String chip_id;
+ private String mfd_day;
+ private String sw_ver;
+ private String hw_ver;
+ private String duration;
+ private String d_ch_cnt;
+ private String a_ch_cnt;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReceiveDataParam.java b/src/main/java/com/casic/model/ReceiveDataParam.java
new file mode 100644
index 0000000..3a17d24
--- /dev/null
+++ b/src/main/java/com/casic/model/ReceiveDataParam.java
@@ -0,0 +1,20 @@
+package com.casic.model;
+
+import lombok.Data;
+
+import java.util.HashMap;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReceiveDataParam {
+ private String deviceType;
+ private String iotId;
+ private String requestId;
+ private Object checkFailedData;
+ private String productKey;
+ private String deviceName;
+ private HashMap items;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/ReportUpdataParam.java b/src/main/java/com/casic/model/ReportUpdataParam.java
new file mode 100644
index 0000000..20c2ca9
--- /dev/null
+++ b/src/main/java/com/casic/model/ReportUpdataParam.java
@@ -0,0 +1,23 @@
+package com.casic.model;
+
+import lombok.Data;
+
+/**
+ * @author cz
+ * @data 2022-6-20
+ */
+@Data
+public class ReportUpdataParam {
+ private String msg_type;
+ private String event_change;
+ private String error_val;
+ private String ch_cnt;
+ private String erro_cnt;
+ private String alarm_low_cnt;
+ private String alarm_high_cnt;
+ private String offline_cnt;
+ private String rtd_val;
+ private String adc_val;
+ private String status_val;
+ private String time;
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/model/WirelessData.java b/src/main/java/com/casic/model/WirelessData.java
new file mode 100644
index 0000000..b062c13
--- /dev/null
+++ b/src/main/java/com/casic/model/WirelessData.java
@@ -0,0 +1,19 @@
+package com.casic.model;
+
+import lombok.Data;
+
+@Data
+public class WirelessData {
+ private String model;
+ private String IMEI;
+ private String ICCID;
+ private String sw_ver;
+ private String hw_ver;
+ private String ch_cnt;
+ private String heartbeat_inv;
+ private String up_pcnt;
+ private String up_pcnt_inv;
+ private String csq;
+}
+
+
diff --git a/src/main/java/com/casic/schedule/TaskConfigurer.java b/src/main/java/com/casic/schedule/TaskConfigurer.java
new file mode 100644
index 0000000..77c5d5a
--- /dev/null
+++ b/src/main/java/com/casic/schedule/TaskConfigurer.java
@@ -0,0 +1,47 @@
+package com.casic.schedule;
+
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+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
+@Slf4j
+@RequiredArgsConstructor
+public class TaskConfigurer implements SchedulingConfigurer {
+
+ @Value("${casic.device.online.cron}")
+ private String onlineStateCron;
+
+ private final DeviceDataService deviceDataService;
+
+ @Override
+ public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
+ TriggerTask onlineStateTask = new TriggerTask(nextDayDevice(),
+ triggerContext -> {
+ return new CronTrigger(onlineStateCron).nextExecutionTime(triggerContext);
+ });
+ taskRegistrar.addTriggerTask(onlineStateTask);
+ }
+
+ private Runnable nextDayDevice() {
+ return new Runnable() {
+ @Override
+ public void run() {
+ log.info("定时查询在线离线运行了...");
+ deviceDataService.checkAndUpdateDeviceOnline();
+ }
+ };
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/service/AlarmRecordFly.java b/src/main/java/com/casic/service/AlarmRecordFly.java
new file mode 100644
index 0000000..47c7969
--- /dev/null
+++ b/src/main/java/com/casic/service/AlarmRecordFly.java
@@ -0,0 +1,39 @@
+package com.casic.service;
+
+import com.casic.entity.AlarmRecord;
+
+public class AlarmRecordFly {
+
+ private static AlarmRecord alarmRecord;
+
+ static {
+ alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("0");
+ alarmRecord.setActive(1);
+ }
+
+ public static AlarmRecord getAlarmRecord() {
+ return alarmRecord;
+ }
+
+ public static AlarmRecord getPrototype(){
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setIssend("0");
+ alarmRecord.setDeviceTypeName("可燃气体探测器");
+ alarmRecord.setItemname("default");
+ alarmRecord.setMessage("-1");
+ alarmRecord.setMessageStatus("0");
+ alarmRecord.setRecordcode("1");
+ alarmRecord.setActive(1);
+ return alarmRecord;
+ }
+
+
+
+
+}
diff --git a/src/main/java/com/casic/service/DeviceDataService.java b/src/main/java/com/casic/service/DeviceDataService.java
new file mode 100644
index 0000000..f972981
--- /dev/null
+++ b/src/main/java/com/casic/service/DeviceDataService.java
@@ -0,0 +1,7 @@
+package com.casic.service;
+
+public interface DeviceDataService {
+
+ void checkAndUpdateDeviceOnline();
+
+}
diff --git a/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java
new file mode 100644
index 0000000..f41a44d
--- /dev/null
+++ b/src/main/java/com/casic/service/impl/DeviceDataServiceImpl.java
@@ -0,0 +1,68 @@
+package com.casic.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.casic.dao.AlarmRecordsMapper;
+import com.casic.dao.DeviceDataMapper;
+import com.casic.entity.AlarmRecord;
+import com.casic.service.AlarmRecordFly;
+import com.casic.service.DeviceDataService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @author cz
+ */
+@Service
+@RequiredArgsConstructor
+public class DeviceDataServiceImpl extends ServiceImpl implements DeviceDataService {
+
+ private final DeviceDataMapper deviceDataMapper;
+
+ @Value("${casic.device.data-day}")
+ private Integer dataDay;
+
+ @Value("${casic.device.gas-dector.type}")
+ private Integer devciceType;
+
+
+ @Override
+ public void checkAndUpdateDeviceOnline() {
+ //查询硫化氢设备
+ List> devcodeList = deviceDataMapper.getDevcodeByType(devciceType);
+ //统一查询所有设备的3天内数据的设备编号,然后设备编号转成map,进行
+ List dataList = deviceDataMapper.getRecentData(dataDay);
+ List> dataSortDevcodeList = devcodeList;
+ if (dataList != null) {
+ Map devOnlineMap = new HashMap<>();
+ for (String devcodeData : dataList) {
+ devOnlineMap.put(devcodeData, "");
+ }
+ dataSortDevcodeList = dataSortDevcodeList.stream().filter(
+ e -> !devOnlineMap.containsKey((String) e.get("devcode"))).collect(Collectors.toList());
+ }
+ //批量产生离线报警
+ if (CollectionUtils.isNotEmpty(dataSortDevcodeList)) {
+ List alarmRecords = new ArrayList<>();
+ for (Map dataDevcodeMap : dataSortDevcodeList) {
+ alarmRecords.add(createAlarmRecord(((BigDecimal)dataDevcodeMap.get("id")).longValue(), (String) dataDevcodeMap.get("devcode")));
+ }
+ this.saveBatch(alarmRecords);
+ }
+ }
+
+ private AlarmRecord createAlarmRecord(Long id, String devcode) {
+ AlarmRecord alarmRecord = AlarmRecordFly.getPrototype();
+ alarmRecord.setRecorddate(new Date());
+ alarmRecord.setDbid(null);
+ alarmRecord.setDeviceCode(devcode);
+ alarmRecord.setDeviceId(id);
+ return alarmRecord;
+ }
+
+}
diff --git a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
index 4591d50..176b389 100644
--- a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
@@ -1,53 +1,41 @@
package com.casic.service.impl;
-import com.alibaba.druid.util.StringUtils;
-import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.casic.dao.AlarmRecordsMapper;
-import com.casic.dao.DataGasMapper;
-import com.casic.dao.DeviceMapper;
-import com.casic.dao.impl.AlarmJobDao;
-import com.casic.entity.AlarmJob;
-import com.casic.entity.AlarmRecords;
-import com.casic.entity.DataGasDector;
+import com.casic.dao.ButaneDataMapper;
+import com.casic.entity.AlarmRecord;
+import com.casic.entity.ButaneData;
import com.casic.entity.Device;
import com.casic.model.ResponseData;
+import com.casic.service.AlarmRecordFly;
import com.casic.service.DeviceService;
+import com.casic.util.SendUtil;
+import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import xyz.downgoon.snowflake.Snowflake;
-import javax.annotation.Resource;
import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import java.util.function.Supplier;
@Slf4j
@Service
+@RequiredArgsConstructor
public class DeviceServiceImpl implements DeviceService {
-
- @Value("${casic.device.gas-dector.enable-local}")
- private Boolean enableLocal;
- @Value("${casic.device.gas-dector.type}")
- private Long deviceType;
- @Resource
- private DataGasMapper dataGasMapper;
- @Resource
- private AlarmRecordsMapper alarmRecordsMapper;
- @Resource
- private DeviceMapper deviceMapper;
- @Autowired
- private AlarmJobDao alarmJobDao;
+ private final ButaneDataMapper butaneDataMapper;
+ private final AlarmRecordsMapper alarmRecordsMapper;
private static Snowflake snowflake = new Snowflake(0, 2);
+ @Autowired
+ private SendUtil sendUtil;
@Override
public ResponseData testMysql() {
+
ResponseData responseData = new ResponseData();
responseData.setMessage("保存成功");
responseData.setCode(1);
@@ -62,18 +50,16 @@
public ResponseData saveDataGas(Map receiveData) {
ResponseData responseData = new ResponseData();
try {
- Map payloadData;
+ Map payloadData = receiveData;
if (receiveData.containsKey("payload")) {
payloadData = (Map) receiveData.get("payload");
- }else{
- payloadData=receiveData;
}
- this.flagSelectProcessor("eventType", payloadData, () -> gasStatusUpdate(payloadData))
- .flagSelectProcessor("gas_sample_value", payloadData, () -> dealNormalData(receiveData));
+ this.flagSelectProcessor("gas_sensor_state", payloadData, () -> gasStatusUpdate(receiveData))
+ .flagSelectProcessor("heartbeat_time", payloadData, () -> dealNormalData(receiveData));
responseData.setCode(200);
responseData.setMessage("保存成功");
} catch (Exception dex) {
- log.error("主题:广东台燃气设备存储异常,异常信息:{}", dex.getMessage());
+ log.error("主题:燃气设备存储异常,异常信息:{}", dex.getMessage());
responseData.setCode(500);
responseData.setMessage("保存异常");
}
@@ -95,99 +81,110 @@
* @return
*/
private Boolean gasStatusUpdate(Map receiveData) {
- Long lonTimetemp = Long.valueOf(receiveData.get("timestamp").toString());
- String onlindeStatus = receiveData.get("eventType").toString();
- String devcode = receiveData.get("imei").toString();
- QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("devcode", devcode);
- queryWrapper.eq("valid", 1);
- Device device = new Device();
- if (!StringUtils.isEmpty(onlindeStatus)) {
- device.setOnlineState(onlindeStatus);
- Date logTime = new Date();
- logTime.setTime(lonTimetemp);
- device.setLogtime(logTime);
- deviceMapper.update(device, queryWrapper);
- return true;
+ AlarmRecord alarmRecord = AlarmRecordFly.getAlarmRecord();
+ Map payloadData = (Map) receiveData.get("payload");
+ //判断事件类型 0正常 1低报 2高报
+ String alarmSituation = payloadData.get("gas_sensor_state").toString();
+ String devcode = receiveData.get("IMEI").toString();
+ clearOnlineData(devcode);
+ //构建数据
+ ButaneData butaneData = ButaneData.builder()
+ .devcode(devcode)
+ .dbid(snowflake.nextId())
+ .build();
+ populateTime(receiveData, butaneData, alarmRecord);
+ switch (alarmSituation) {
+ case "0":
+// butaneData.setDescn("状态正常");
+// butaneData.setStatus("0");
+ break;
+ default:
+ //第一条上来,消除报警
+ clearAlarmData(devcode);
+ //产生新的报警,消除报警
+ butaneData.setDescn("可燃气体探测器报警");
+ butaneData.setStatus("1");
+ synchronized (alarmRecord) {
+ alarmRecord.setDbid(null);
+ alarmRecord.setDeviceCode(devcode);
+ alarmRecord.setDeviceId(alarmRecordsMapper.getDevcode(devcode));
+ alarmRecordsMapper.insert(alarmRecord);
+ }
+ butaneDataMapper.insert(butaneData);
+
+ try {
+ //推送短信至第三方
+ Device device = alarmRecordsMapper.getDevice(devcode);
+ if (null == device) {
+ log.error("设备不存在,编号:" + devcode);
+ return false;
+ }
+ JSONObject eventObj = new JSONObject();
+ eventObj.put("type", "燃气报警");
+ sendUtil.sendEventBySms(device, eventObj);
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ }
}
- return false;
+ return true;
}
public Boolean dealNormalData(Map receiveData) {
String devcode = receiveData.get("IMEI").toString();
- if (!StringUtils.isEmpty(devcode)) {
- Map deviceMap = deviceMapper.getWellCode(devcode);
- //保存数据,无论是否有设备在库内
- DataGasDector dataGasDector = this.saveNormalData(receiveData, deviceMap);
- if (ObjectUtils.isEmpty(deviceMap)) {
- log.info("没有该设备编号录入" + devcode);
- if (enableLocal) {
- return true;
- }
- }
- //自动消除报警
- this.alarmRecordsMapper.clearAlarm(devcode);
- this.dataTaskJudge(deviceMap, dataGasDector);
- return true;
+ //第一条上来,清除离线
+ clearOnlineData(devcode);
+ ButaneData butaneData = ButaneData.builder()
+ .devcode(devcode)
+ .dbid(snowflake.nextId())
+ .descn("状态正常")
+ .status("0")
+ .build();
+ if (!ObjectUtils.isEmpty(receiveData) && receiveData.containsKey("timestamp")) {
+ butaneData.setLogtime(new Date(Long.valueOf(receiveData.get("timestamp").toString())));
+ } else {
+ butaneData.setLogtime(new Date());
}
+ butaneDataMapper.insert(butaneData);
return false;
}
- private DataGasDector saveNormalData(Map receiveData, Map deviceMap) {
- DataGasDector dataGasDector = new DataGasDector();
- dataGasDector.setId(snowflake.nextId());
- dataGasDector.setDevcode(receiveData.get("IMEI").toString());
- dataGasDector.setWellCode(!ObjectUtils.isEmpty(deviceMap) && deviceMap.containsKey("wellCode") ? deviceMap.get("wellCode").toString() : "");
- dataGasDector.setLogtime(new Date());
+ private void populateTime(Map receiveData, ButaneData butaneData, AlarmRecord alarmRecord) {
if (!ObjectUtils.isEmpty(receiveData) && receiveData.containsKey("timestamp")) {
- dataGasDector.setUptime(new Date(Long.valueOf(receiveData.get("timestamp").toString())));
+ Date logtime = new Date(Long.valueOf(receiveData.get("timestamp").toString()));
+ butaneData.setLogtime(logtime);
+ alarmRecord.setRecorddate(logtime);
} else {
- dataGasDector.setUptime(new Date());
+ alarmRecord.setRecorddate(new Date());
+ butaneData.setLogtime(new Date());
}
- Map gascontent = (Map)receiveData.get("payload");
- if (!ObjectUtils.isEmpty(gascontent)) {
- if (gascontent.containsKey("gas_sample_value")) {
- dataGasDector.setStrength(gascontent.get("gas_sample_value").toString());
- }
- }
- dataGasMapper.insert(dataGasDector);
- return dataGasDector;
}
- /**
- * 报警存库
- */
- private void dataTaskJudge(Map deviceMap, DataGasDector dataGasDector) {
- List> alarmLevelList = dataGasMapper.getAlarmLevelList(deviceType);
- String wellCode = dataGasDector.getWellCode();
- Long deviceId = !ObjectUtils.isEmpty(deviceMap) && deviceMap.containsKey("wellCode") ? Long.valueOf(String.valueOf(deviceMap.get("deviceId"))) : -1;
- final String gasMsgContent = dataGasMapper.getGasMsgContent(deviceType);
- for (Map alarmLevelMap : alarmLevelList) {
- if (Float.valueOf(dataGasDector.getStrength()) > Float.valueOf(String.valueOf(alarmLevelMap.get("high_value")))) {
- AlarmRecords alarmRecord = new AlarmRecords();
- alarmRecord.setId(snowflake.nextId());
- alarmRecord.setDeviceId(deviceId);
- alarmRecord.setDevcode(dataGasDector.getDevcode());
- alarmRecord.setWellCode(wellCode);
- alarmRecord.setAlarmType("1"); // 业务报警
- alarmRecord.setAlarmContent(gasMsgContent);
- alarmRecord.setAlarmValue(dataGasDector.getStrength());
- alarmRecord.setAlarmTime(new Date());
- alarmRecord.setStatus("1");
- alarmRecord.setAlarmLevel(Integer.valueOf(alarmLevelMap.get("level").toString()));
- alarmRecord.setAlarmMessage(gasMsgContent);
- String jobId = alarmRecordsMapper.isOldAlarmRecord(dataGasDector.getDevcode(), gasMsgContent);
- // 超出报警阈值 生成一条报警消息
- if (!StringUtils.isEmpty(jobId)) {
- alarmRecordsMapper.updateOldAlarmRecord(dataGasDector.getDevcode(), gasMsgContent);
- alarmRecord.setJobId(Long.valueOf(jobId));
- } else {
- AlarmJob alarmJob = alarmJobDao.saveData(dataGasDector.getStrength(), wellCode, "RQZD", "1");
- alarmRecord.setJobId(alarmJob.getId());
- }
- alarmRecordsMapper.insert(alarmRecord);
- break;
- }
+ private void clearAlarmData(String devcode) {
+ QueryWrapper queryWrapper = new QueryWrapper();
+ queryWrapper.eq("DEVICE_CODE", devcode);
+ queryWrapper.eq("ACTIVE", 1);
+ try {
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setActive(0);
+ alarmRecordsMapper.update(alarmRecord, queryWrapper);
+ } catch (Exception e) {
+ log.error("清除报警失败,设备编号为{},异常信息{}", devcode, e);
}
}
+
+ private void clearOnlineData(String devcode) {
+ QueryWrapper queryWrapper = new QueryWrapper();
+ queryWrapper.eq("DEVICE_CODE", devcode);
+ queryWrapper.eq("ACTIVE", 1);
+ queryWrapper.eq("MESSAGE_STATUS", "0");
+ queryWrapper.eq("RECORDCODE", "1");
+ try {
+ AlarmRecord alarmRecord = new AlarmRecord();
+ alarmRecord.setActive(0);
+ alarmRecordsMapper.update(alarmRecord, queryWrapper);
+ } catch (Exception e) {
+ log.error("清除报警失败,设备编号为{},异常信息{}", devcode, e);
+ }
+ }
+
}
diff --git a/src/main/java/com/casic/util/ConestUtil.java b/src/main/java/com/casic/util/ConestUtil.java
deleted file mode 100644
index 2a4d305..0000000
--- a/src/main/java/com/casic/util/ConestUtil.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package com.casic.util;
-
-public class ConestUtil {
-
-
-}
diff --git a/src/main/java/com/casic/util/DateUtils.java b/src/main/java/com/casic/util/DateUtils.java
new file mode 100644
index 0000000..db2ed9c
--- /dev/null
+++ b/src/main/java/com/casic/util/DateUtils.java
@@ -0,0 +1,63 @@
+package com.casic.util;
+
+import java.text.SimpleDateFormat;
+
+/**
+ * Created by Administrator on 2015/2/25.
+ */
+public class DateUtils {
+ public static SimpleDateFormat sdf_day = new SimpleDateFormat("yyyy-MM-dd");
+ public static SimpleDateFormat sdf_day_time = new SimpleDateFormat("yyyyMMddHHmmss");
+ public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ public static final SimpleDateFormat sdf5 = new SimpleDateFormat("HH:mm:ss");
+ public static final SimpleDateFormat sdf6 = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+
+
+ public static String DateFormat(String dataString) {
+
+ String strymd = dataString.substring(0, 8);
+ String str1 = strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8) + " ";
+ String strhms = dataString.substring(8);
+ String str2 = strhms.substring(0, 2) + ":" + strhms.substring(2, 4) + ":" + strhms.substring(4, 6);
+ dataString = str1 + str2;
+ return dataString;
+ }
+
+ public static String DateFormatDate(String dataString) {
+
+ String strymd = dataString.substring(0, 8);
+ return strymd.substring(0, 4) + "-" + strymd.substring(4, 6) + "-" + strymd.substring(6, 8);
+ }
+
+ public static String DateFormatTime(String dataString) {
+
+ String strhms = dataString.substring(8);
+ return strhms.substring(0, 2) + ":" + strhms.substring(2, 4) + ":" + strhms.substring(4, 6);
+ }
+
+ /**
+ * 比较两个时间 时分秒 大小
+ *
+ * @param s1
+ * @param s2
+ * @return
+ */
+ public static boolean compTime(String s1, String s2) {
+ try {
+ if (s1.indexOf(":") < 0 || s1.indexOf(":") < 0) {
+ System.out.println("格式不正确");
+ } else {
+ String[] array1 = s1.split(":");
+ int total1 = Integer.valueOf(array1[0]) * 3600 + Integer.valueOf(array1[1]) * 60;
+ String[] array2 = s2.split(":");
+ int total2 = Integer.valueOf(array2[0]) * 3600 + Integer.valueOf(array2[1]) * 60;
+ return total1 - total2 > 0 ? true : false;
+ }
+ } catch (NumberFormatException e) {
+ // TODO Auto-generated catch block
+ return false;
+ }
+ return false;
+
+ }
+}
diff --git a/src/main/java/com/casic/util/HttpClientUtils.java b/src/main/java/com/casic/util/HttpClientUtils.java
new file mode 100644
index 0000000..91a631e
--- /dev/null
+++ b/src/main/java/com/casic/util/HttpClientUtils.java
@@ -0,0 +1,40 @@
+package com.casic.util;
+
+
+import com.alibaba.fastjson.JSONObject;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpStatus;
+import org.apache.commons.httpclient.methods.PostMethod;
+
+import java.io.IOException;
+
+public class HttpClientUtils {
+
+
+
+ public static String post(String url, String body, JSONObject header) {
+ HttpClient client = new HttpClient();
+ client.setTimeout(30000);
+ PostMethod method = new PostMethod(url);
+ // for (Map.Entry entry : headers.entrySet()) {
+ method.addRequestHeader("Content-type", "application/json; charset=utf-8");
+ method.addRequestHeader("Accept", "application/json");
+ method.addRequestHeader("X-APP-KEY", header.getString("X-APP-KEY"));
+ method.setRequestBody(body);
+ try {
+ int statusCode = client.executeMethod(method);
+ if (statusCode == HttpStatus.SC_OK) {
+ return new String(method.getResponseBody(), "UTF-8");
+ }
+
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+}
diff --git a/src/main/java/com/casic/util/SendUtil.java b/src/main/java/com/casic/util/SendUtil.java
new file mode 100644
index 0000000..2d73db1
--- /dev/null
+++ b/src/main/java/com/casic/util/SendUtil.java
@@ -0,0 +1,67 @@
+package com.casic.util;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.casic.entity.Device;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+@Slf4j
+@Component
+public class SendUtil {
+ @Value("${casic.synchronizeSms.enabled}")
+ private String enabled;
+ @Value("${casic.smsSenderURL}")
+ private String smsSenderUrl;
+ @Value("${casic.X-APP-KEY-SMS}")
+ private String smsAppKey;
+
+ public void sendEventBySms(Device device, JSONObject eventObj) {
+ if ("true".equals(enabled)) {
+// String smsSenderUrl = Configure.getProperty("smsSenderURL", "http://general.bushub.rj.prd/sms/user/send");
+// String smsAppKey = Configure.getProperty("X-APP-KEY-SMS", "2d3a8e35-0533-42a0-97a2-63f82a3216f9");
+ String sim = device.getSimid();
+ if (null == sim || StringUtils.isBlank(sim)) {
+ return;
+ }
+
+ if (null == smsAppKey || StringUtils.isBlank(smsAppKey)) {
+ return;
+ }
+
+ JSONObject header = new JSONObject();
+ header.put("X-APP-KEY", smsAppKey);
+
+ StringBuilder params = new StringBuilder();
+ params.append("{");
+ params.append("\"mobile\":");
+ params.append("\"").append(sim).append("\"").append(",");
+
+ String prefix = "【智慧蓉江】";
+ String eventTm = DateUtils.sdf4.format(new Date());
+ String devName = device.getDevName();
+ String place = device.getFactory();
+
+ StringBuilder content = new StringBuilder("");
+ content.append(prefix);
+ content.append(eventTm).append(",");
+ content.append("管网监测设备[").append(devName).append("],");
+ content.append("发生").append(eventObj.getString("type")).append(",");
+ if (eventObj.containsKey("value") == true) {
+ content.append(eventObj.getString("value")).append(",");
+ }
+ content.append("详细地址是:").append(place).append(",");
+ content.append("请关注并及时处理。");
+
+ params.append("\"content\":");
+ params.append("\"").append(content.toString()).append("\"");
+ params.append("}");
+
+ String resp = HttpClientUtils.post(smsSenderUrl, params.toString(), header);
+ log.info("已发送短信"+resp);
+ }
+ }
+}
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 4807974..d47010a 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -1,12 +1,12 @@
server:
- port: 5907
+ port: 5001
################### spring配置 ###################
spring:
datasource:
- driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://111.198.10.15:11102/smartwell_gdt?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=GMT%2B8&&allowMultiQueries=true&&useSSL=true
- username: root
- password: Casic203!
+ driverClassName: oracle.jdbc.driver.OracleDriver
+ url: jdbc:oracle:thin:@11.100.6.183:1521:orcl
+ username: gzsg
+ password: gzsg
session:
store-type: redis
redis:
@@ -19,8 +19,15 @@
# session:
#flowable数据源和多数据源配置
logging:
- level.root: error
- level.com.casic: error
+ level.root: info
+ level.com.casic: debug
+ level.org.springframework.web: info
file:
path: logs/
- name: missiles.log
\ No newline at end of file
+ name: missiles.log
+#短信推送
+casic:
+ synchronizeSms.enabled: true
+ smsSenderURL: http://general.bushub.rj.prd/sms/user/send
+ X-APP-KEY-SMS: 2d3a8e35-0533-42a0-97a2-63f82a3216f9
+ sms-prefix: 【智慧蓉江】
\ No newline at end of file
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 4038629..21ecda8 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -24,6 +24,9 @@
casic:
device:
gas-dector:
- type: 10
+ type: 30
minutes: 60
- enable-local: false
\ No newline at end of file
+ enable-local: false
+ data-day: 1 # 时间多少的为离线
+ online:
+ cron: 0 0/1 * * * ? # 多长时间判断离线
\ No newline at end of file
diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..c0c7ac9
--- /dev/null
+++ b/src/main/resources/logback-spring.xml
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ ${CONSOLE_LOG_PATTERN}
+ utf-8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${CONSOLE_LOG_PATTERN}
+ utf-8
+
+
+
+
+
+
+
+ ${LOG_PATH}/missiles_error.log
+
+
+
+
+
+ ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log
+
+
+
+ 10MB
+
+
+
+
+ true
+
+
+
+ ${FILE_LOG_PATTERN}
+ utf-8
+
+
+
+
+ error
+ ACCEPT
+ DENY
+
+
+
+
+
+
+
+ ${LOG_PATH}/missiles_total.log
+
+
+
+
+
+ ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log
+
+
+
+ 10MB
+
+
+
+
+ true
+
+
+
+ ${FILE_LOG_PATTERN}
+ utf-8
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/mapper/DeviceDataMapper.xml b/src/main/resources/mapper/DeviceDataMapper.xml
new file mode 100644
index 0000000..4e15de9
--- /dev/null
+++ b/src/main/resources/mapper/DeviceDataMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/mapper/DeviceMapper.xml b/src/main/resources/mapper/DeviceMapper.xml
new file mode 100644
index 0000000..d04d912
--- /dev/null
+++ b/src/main/resources/mapper/DeviceMapper.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+ UPDATE BUS_DEVICE
+ SET ONLINE_STATE=0
+ WHERE VALID=1
+ AND DEVCODE IN
+
+ #{item}
+
+
+
+
+
\ No newline at end of file
diff --git a/target/classes/application-dev.yml b/target/classes/application-dev.yml
index 5c64ca8..8a5929a 100644
--- a/target/classes/application-dev.yml
+++ b/target/classes/application-dev.yml
@@ -1,12 +1,12 @@
server:
- port: 11520
+ port: 5001
################### spring配置 ###################
spring:
datasource:
- driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://111.198.10.15:11102/smartwell_gdt?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=GMT%2B8&&allowMultiQueries=true&&useSSL=true
- username: root
- password: Casic203!
+ driverClassName: oracle.jdbc.driver.OracleDriver
+ url: jdbc:oracle:thin:@11.100.6.181:1521:orcl
+ username: gzsg
+ password: gzsg
session:
store-type: redis
redis:
@@ -19,8 +19,15 @@
# session:
#flowable数据源和多数据源配置
logging:
- level.root: error
- level.com.casic: error
+ level.root: info
+ level.com.casic: debug
+ level.org.springframework.web: info
file:
path: logs/
- name: missiles.log
\ No newline at end of file
+ name: missiles.log
+#短信推送
+casic:
+ synchronizeSms.enabled: true
+ smsSenderURL: http://general.bushub.rj.prd/sms/user/send
+ X-APP-KEY-SMS: 2d3a8e35-0533-42a0-97a2-63f82a3216f9
+ sms-prefix: 【智慧蓉江】
\ No newline at end of file
diff --git a/target/classes/com/casic/controller/DeviceController.class b/target/classes/com/casic/controller/DeviceController.class
index 0813269..fd9b8ca 100644
--- a/target/classes/com/casic/controller/DeviceController.class
+++ b/target/classes/com/casic/controller/DeviceController.class
Binary files differ
diff --git a/target/classes/com/casic/dao/DataGasMapper.class b/target/classes/com/casic/dao/DataGasMapper.class
deleted file mode 100644
index b9404b1..0000000
--- a/target/classes/com/casic/dao/DataGasMapper.class
+++ /dev/null
Binary files differ
diff --git a/target/classes/com/casic/dao/DeviceMapper.class b/target/classes/com/casic/dao/DeviceMapper.class
deleted file mode 100644
index a2d1f17..0000000
--- a/target/classes/com/casic/dao/DeviceMapper.class
+++ /dev/null
Binary files differ
diff --git a/target/classes/com/casic/service/impl/DeviceServiceImpl.class b/target/classes/com/casic/service/impl/DeviceServiceImpl.class
index 44bf167..076702c 100644
--- a/target/classes/com/casic/service/impl/DeviceServiceImpl.class
+++ b/target/classes/com/casic/service/impl/DeviceServiceImpl.class
Binary files differ