diff --git a/pom.xml b/pom.xml
index 9fb6f35..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -90,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
diff --git a/pom.xml b/pom.xml
index 9fb6f35..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -90,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 4dbefff..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -16,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,9 +29,7 @@
@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 9fb6f35..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -90,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 4dbefff..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -16,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,9 +29,7 @@
@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/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index 9f79655..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
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;
@@ -15,4 +16,9 @@
"FROM ALARM_DEVICE " +
"WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
Long getDevcode(@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 9fb6f35..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -90,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 4dbefff..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -16,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,9 +29,7 @@
@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/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index 9f79655..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
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;
@@ -15,4 +16,9 @@
"FROM ALARM_DEVICE " +
"WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
Long getDevcode(@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/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 9fb6f35..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -90,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 4dbefff..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -16,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,9 +29,7 @@
@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/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index 9f79655..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
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;
@@ -15,4 +16,9 @@
"FROM ALARM_DEVICE " +
"WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
Long getDevcode(@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/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/service/impl/DeviceServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
index 4966ae7..70a667f 100644
--- a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
@@ -1,15 +1,19 @@
package com.casic.service.impl;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.casic.dao.AlarmRecordsMapper;
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.stereotype.Service;
import org.springframework.util.ObjectUtils;
import xyz.downgoon.snowflake.Snowflake;
@@ -26,6 +30,8 @@
private final ButaneDataMapper butaneDataMapper;
private final AlarmRecordsMapper alarmRecordsMapper;
private static Snowflake snowflake = new Snowflake(0, 2);
+ @Autowired
+ private SendUtil sendUtil;
@Override
public ResponseData testMysql() {
@@ -53,7 +59,7 @@
responseData.setCode(200);
responseData.setMessage("保存成功");
} catch (Exception dex) {
- log.error("主题:广东台燃气设备存储异常,异常信息:{}", dex.getMessage());
+ log.error("主题:燃气设备存储异常,异常信息:{}", dex.getMessage());
responseData.setCode(500);
responseData.setMessage("保存异常");
}
@@ -97,13 +103,23 @@
//产生新的报警,消除报警
butaneData.setDescn("可燃气体探测器报警");
butaneData.setStatus("1");
- synchronized (alarmRecord){
+ 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);
+ JSONObject eventObj = new JSONObject();
+ eventObj.put("type", "燃气报警");
+ sendUtil.sendEventBySms(device, eventObj);
+ }catch (Exception exception){
+ exception.printStackTrace();
+ }
}
return true;
}
diff --git a/pom.xml b/pom.xml
index 9fb6f35..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -90,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 4dbefff..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -16,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,9 +29,7 @@
@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/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index 9f79655..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
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;
@@ -15,4 +16,9 @@
"FROM ALARM_DEVICE " +
"WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
Long getDevcode(@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/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/service/impl/DeviceServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
index 4966ae7..70a667f 100644
--- a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
@@ -1,15 +1,19 @@
package com.casic.service.impl;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.casic.dao.AlarmRecordsMapper;
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.stereotype.Service;
import org.springframework.util.ObjectUtils;
import xyz.downgoon.snowflake.Snowflake;
@@ -26,6 +30,8 @@
private final ButaneDataMapper butaneDataMapper;
private final AlarmRecordsMapper alarmRecordsMapper;
private static Snowflake snowflake = new Snowflake(0, 2);
+ @Autowired
+ private SendUtil sendUtil;
@Override
public ResponseData testMysql() {
@@ -53,7 +59,7 @@
responseData.setCode(200);
responseData.setMessage("保存成功");
} catch (Exception dex) {
- log.error("主题:广东台燃气设备存储异常,异常信息:{}", dex.getMessage());
+ log.error("主题:燃气设备存储异常,异常信息:{}", dex.getMessage());
responseData.setCode(500);
responseData.setMessage("保存异常");
}
@@ -97,13 +103,23 @@
//产生新的报警,消除报警
butaneData.setDescn("可燃气体探测器报警");
butaneData.setStatus("1");
- synchronized (alarmRecord){
+ 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);
+ JSONObject eventObj = new JSONObject();
+ eventObj.put("type", "燃气报警");
+ sendUtil.sendEventBySms(device, eventObj);
+ }catch (Exception exception){
+ exception.printStackTrace();
+ }
}
return true;
}
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 9fb6f35..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -90,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 4dbefff..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -16,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,9 +29,7 @@
@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/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index 9f79655..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
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;
@@ -15,4 +16,9 @@
"FROM ALARM_DEVICE " +
"WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
Long getDevcode(@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/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/service/impl/DeviceServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
index 4966ae7..70a667f 100644
--- a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
@@ -1,15 +1,19 @@
package com.casic.service.impl;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.casic.dao.AlarmRecordsMapper;
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.stereotype.Service;
import org.springframework.util.ObjectUtils;
import xyz.downgoon.snowflake.Snowflake;
@@ -26,6 +30,8 @@
private final ButaneDataMapper butaneDataMapper;
private final AlarmRecordsMapper alarmRecordsMapper;
private static Snowflake snowflake = new Snowflake(0, 2);
+ @Autowired
+ private SendUtil sendUtil;
@Override
public ResponseData testMysql() {
@@ -53,7 +59,7 @@
responseData.setCode(200);
responseData.setMessage("保存成功");
} catch (Exception dex) {
- log.error("主题:广东台燃气设备存储异常,异常信息:{}", dex.getMessage());
+ log.error("主题:燃气设备存储异常,异常信息:{}", dex.getMessage());
responseData.setCode(500);
responseData.setMessage("保存异常");
}
@@ -97,13 +103,23 @@
//产生新的报警,消除报警
butaneData.setDescn("可燃气体探测器报警");
butaneData.setStatus("1");
- synchronized (alarmRecord){
+ 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);
+ JSONObject eventObj = new JSONObject();
+ eventObj.put("type", "燃气报警");
+ sendUtil.sendEventBySms(device, eventObj);
+ }catch (Exception exception){
+ exception.printStackTrace();
+ }
}
return true;
}
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 9fb6f35..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -90,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 4dbefff..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -16,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,9 +29,7 @@
@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/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index 9f79655..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
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;
@@ -15,4 +16,9 @@
"FROM ALARM_DEVICE " +
"WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
Long getDevcode(@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/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/service/impl/DeviceServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
index 4966ae7..70a667f 100644
--- a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
@@ -1,15 +1,19 @@
package com.casic.service.impl;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.casic.dao.AlarmRecordsMapper;
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.stereotype.Service;
import org.springframework.util.ObjectUtils;
import xyz.downgoon.snowflake.Snowflake;
@@ -26,6 +30,8 @@
private final ButaneDataMapper butaneDataMapper;
private final AlarmRecordsMapper alarmRecordsMapper;
private static Snowflake snowflake = new Snowflake(0, 2);
+ @Autowired
+ private SendUtil sendUtil;
@Override
public ResponseData testMysql() {
@@ -53,7 +59,7 @@
responseData.setCode(200);
responseData.setMessage("保存成功");
} catch (Exception dex) {
- log.error("主题:广东台燃气设备存储异常,异常信息:{}", dex.getMessage());
+ log.error("主题:燃气设备存储异常,异常信息:{}", dex.getMessage());
responseData.setCode(500);
responseData.setMessage("保存异常");
}
@@ -97,13 +103,23 @@
//产生新的报警,消除报警
butaneData.setDescn("可燃气体探测器报警");
butaneData.setStatus("1");
- synchronized (alarmRecord){
+ 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);
+ JSONObject eventObj = new JSONObject();
+ eventObj.put("type", "燃气报警");
+ sendUtil.sendEventBySms(device, eventObj);
+ }catch (Exception exception){
+ exception.printStackTrace();
+ }
}
return true;
}
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 9fb6f35..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -90,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 4dbefff..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -16,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,9 +29,7 @@
@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/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index 9f79655..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
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;
@@ -15,4 +16,9 @@
"FROM ALARM_DEVICE " +
"WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
Long getDevcode(@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/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/service/impl/DeviceServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
index 4966ae7..70a667f 100644
--- a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
@@ -1,15 +1,19 @@
package com.casic.service.impl;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.casic.dao.AlarmRecordsMapper;
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.stereotype.Service;
import org.springframework.util.ObjectUtils;
import xyz.downgoon.snowflake.Snowflake;
@@ -26,6 +30,8 @@
private final ButaneDataMapper butaneDataMapper;
private final AlarmRecordsMapper alarmRecordsMapper;
private static Snowflake snowflake = new Snowflake(0, 2);
+ @Autowired
+ private SendUtil sendUtil;
@Override
public ResponseData testMysql() {
@@ -53,7 +59,7 @@
responseData.setCode(200);
responseData.setMessage("保存成功");
} catch (Exception dex) {
- log.error("主题:广东台燃气设备存储异常,异常信息:{}", dex.getMessage());
+ log.error("主题:燃气设备存储异常,异常信息:{}", dex.getMessage());
responseData.setCode(500);
responseData.setMessage("保存异常");
}
@@ -97,13 +103,23 @@
//产生新的报警,消除报警
butaneData.setDescn("可燃气体探测器报警");
butaneData.setStatus("1");
- synchronized (alarmRecord){
+ 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);
+ JSONObject eventObj = new JSONObject();
+ eventObj.put("type", "燃气报警");
+ sendUtil.sendEventBySms(device, eventObj);
+ }catch (Exception exception){
+ exception.printStackTrace();
+ }
}
return true;
}
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 a2fd2c5..b8e32b3 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -4,7 +4,7 @@
spring:
datasource:
driverClassName: oracle.jdbc.driver.OracleDriver
- url: jdbc:oracle:thin:@11.100.6.183:1521:orcl
+ url: jdbc:oracle:thin:@11.100.6.181:1521:orcl
username: gzsg
password: gzsg
session:
@@ -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 9fb6f35..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -90,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 4dbefff..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -16,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,9 +29,7 @@
@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/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index 9f79655..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
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;
@@ -15,4 +16,9 @@
"FROM ALARM_DEVICE " +
"WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
Long getDevcode(@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/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/service/impl/DeviceServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
index 4966ae7..70a667f 100644
--- a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
@@ -1,15 +1,19 @@
package com.casic.service.impl;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.casic.dao.AlarmRecordsMapper;
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.stereotype.Service;
import org.springframework.util.ObjectUtils;
import xyz.downgoon.snowflake.Snowflake;
@@ -26,6 +30,8 @@
private final ButaneDataMapper butaneDataMapper;
private final AlarmRecordsMapper alarmRecordsMapper;
private static Snowflake snowflake = new Snowflake(0, 2);
+ @Autowired
+ private SendUtil sendUtil;
@Override
public ResponseData testMysql() {
@@ -53,7 +59,7 @@
responseData.setCode(200);
responseData.setMessage("保存成功");
} catch (Exception dex) {
- log.error("主题:广东台燃气设备存储异常,异常信息:{}", dex.getMessage());
+ log.error("主题:燃气设备存储异常,异常信息:{}", dex.getMessage());
responseData.setCode(500);
responseData.setMessage("保存异常");
}
@@ -97,13 +103,23 @@
//产生新的报警,消除报警
butaneData.setDescn("可燃气体探测器报警");
butaneData.setStatus("1");
- synchronized (alarmRecord){
+ 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);
+ JSONObject eventObj = new JSONObject();
+ eventObj.put("type", "燃气报警");
+ sendUtil.sendEventBySms(device, eventObj);
+ }catch (Exception exception){
+ exception.printStackTrace();
+ }
}
return true;
}
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 a2fd2c5..b8e32b3 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -4,7 +4,7 @@
spring:
datasource:
driverClassName: oracle.jdbc.driver.OracleDriver
- url: jdbc:oracle:thin:@11.100.6.183:1521:orcl
+ url: jdbc:oracle:thin:@11.100.6.181:1521:orcl
username: gzsg
password: gzsg
session:
@@ -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/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 9fb6f35..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -90,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 4dbefff..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -16,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,9 +29,7 @@
@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/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index 9f79655..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
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;
@@ -15,4 +16,9 @@
"FROM ALARM_DEVICE " +
"WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
Long getDevcode(@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/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/service/impl/DeviceServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
index 4966ae7..70a667f 100644
--- a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
@@ -1,15 +1,19 @@
package com.casic.service.impl;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.casic.dao.AlarmRecordsMapper;
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.stereotype.Service;
import org.springframework.util.ObjectUtils;
import xyz.downgoon.snowflake.Snowflake;
@@ -26,6 +30,8 @@
private final ButaneDataMapper butaneDataMapper;
private final AlarmRecordsMapper alarmRecordsMapper;
private static Snowflake snowflake = new Snowflake(0, 2);
+ @Autowired
+ private SendUtil sendUtil;
@Override
public ResponseData testMysql() {
@@ -53,7 +59,7 @@
responseData.setCode(200);
responseData.setMessage("保存成功");
} catch (Exception dex) {
- log.error("主题:广东台燃气设备存储异常,异常信息:{}", dex.getMessage());
+ log.error("主题:燃气设备存储异常,异常信息:{}", dex.getMessage());
responseData.setCode(500);
responseData.setMessage("保存异常");
}
@@ -97,13 +103,23 @@
//产生新的报警,消除报警
butaneData.setDescn("可燃气体探测器报警");
butaneData.setStatus("1");
- synchronized (alarmRecord){
+ 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);
+ JSONObject eventObj = new JSONObject();
+ eventObj.put("type", "燃气报警");
+ sendUtil.sendEventBySms(device, eventObj);
+ }catch (Exception exception){
+ exception.printStackTrace();
+ }
}
return true;
}
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 a2fd2c5..b8e32b3 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -4,7 +4,7 @@
spring:
datasource:
driverClassName: oracle.jdbc.driver.OracleDriver
- url: jdbc:oracle:thin:@11.100.6.183:1521:orcl
+ url: jdbc:oracle:thin:@11.100.6.181:1521:orcl
username: gzsg
password: gzsg
session:
@@ -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/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/target/classes/application-dev.yml b/target/classes/application-dev.yml
index a2fd2c5..b8e32b3 100644
--- a/target/classes/application-dev.yml
+++ b/target/classes/application-dev.yml
@@ -4,7 +4,7 @@
spring:
datasource:
driverClassName: oracle.jdbc.driver.OracleDriver
- url: jdbc:oracle:thin:@11.100.6.183:1521:orcl
+ url: jdbc:oracle:thin:@11.100.6.181:1521:orcl
username: gzsg
password: gzsg
session:
@@ -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 9fb6f35..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -90,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 4dbefff..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -16,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,9 +29,7 @@
@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/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index 9f79655..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
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;
@@ -15,4 +16,9 @@
"FROM ALARM_DEVICE " +
"WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
Long getDevcode(@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/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/service/impl/DeviceServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
index 4966ae7..70a667f 100644
--- a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
@@ -1,15 +1,19 @@
package com.casic.service.impl;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.casic.dao.AlarmRecordsMapper;
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.stereotype.Service;
import org.springframework.util.ObjectUtils;
import xyz.downgoon.snowflake.Snowflake;
@@ -26,6 +30,8 @@
private final ButaneDataMapper butaneDataMapper;
private final AlarmRecordsMapper alarmRecordsMapper;
private static Snowflake snowflake = new Snowflake(0, 2);
+ @Autowired
+ private SendUtil sendUtil;
@Override
public ResponseData testMysql() {
@@ -53,7 +59,7 @@
responseData.setCode(200);
responseData.setMessage("保存成功");
} catch (Exception dex) {
- log.error("主题:广东台燃气设备存储异常,异常信息:{}", dex.getMessage());
+ log.error("主题:燃气设备存储异常,异常信息:{}", dex.getMessage());
responseData.setCode(500);
responseData.setMessage("保存异常");
}
@@ -97,13 +103,23 @@
//产生新的报警,消除报警
butaneData.setDescn("可燃气体探测器报警");
butaneData.setStatus("1");
- synchronized (alarmRecord){
+ 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);
+ JSONObject eventObj = new JSONObject();
+ eventObj.put("type", "燃气报警");
+ sendUtil.sendEventBySms(device, eventObj);
+ }catch (Exception exception){
+ exception.printStackTrace();
+ }
}
return true;
}
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 a2fd2c5..b8e32b3 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -4,7 +4,7 @@
spring:
datasource:
driverClassName: oracle.jdbc.driver.OracleDriver
- url: jdbc:oracle:thin:@11.100.6.183:1521:orcl
+ url: jdbc:oracle:thin:@11.100.6.181:1521:orcl
username: gzsg
password: gzsg
session:
@@ -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/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/target/classes/application-dev.yml b/target/classes/application-dev.yml
index a2fd2c5..b8e32b3 100644
--- a/target/classes/application-dev.yml
+++ b/target/classes/application-dev.yml
@@ -4,7 +4,7 @@
spring:
datasource:
driverClassName: oracle.jdbc.driver.OracleDriver
- url: jdbc:oracle:thin:@11.100.6.183:1521:orcl
+ url: jdbc:oracle:thin:@11.100.6.181:1521:orcl
username: gzsg
password: gzsg
session:
@@ -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 c9aea71..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 9fb6f35..8427901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -90,6 +90,14 @@
1.2.73
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
xyz.downgoon
snowflake
diff --git a/src/main/java/com/casic/controller/DeviceController.java b/src/main/java/com/casic/controller/DeviceController.java
index 4dbefff..3b9793b 100644
--- a/src/main/java/com/casic/controller/DeviceController.java
+++ b/src/main/java/com/casic/controller/DeviceController.java
@@ -16,7 +16,6 @@
@RequestMapping("/casic")
public class DeviceController {
-
private final DeviceService deviceService;
public DeviceController(DeviceService deviceService) {
@@ -30,9 +29,7 @@
@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/AlarmRecordsMapper.java b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
index 9f79655..b7fbd34 100644
--- a/src/main/java/com/casic/dao/AlarmRecordsMapper.java
+++ b/src/main/java/com/casic/dao/AlarmRecordsMapper.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
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;
@@ -15,4 +16,9 @@
"FROM ALARM_DEVICE " +
"WHERE ACTIVE=1 AND DEVCODE=#{devcode} ")
Long getDevcode(@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/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/service/impl/DeviceServiceImpl.java b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
index 4966ae7..70a667f 100644
--- a/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/casic/service/impl/DeviceServiceImpl.java
@@ -1,15 +1,19 @@
package com.casic.service.impl;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.casic.dao.AlarmRecordsMapper;
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.stereotype.Service;
import org.springframework.util.ObjectUtils;
import xyz.downgoon.snowflake.Snowflake;
@@ -26,6 +30,8 @@
private final ButaneDataMapper butaneDataMapper;
private final AlarmRecordsMapper alarmRecordsMapper;
private static Snowflake snowflake = new Snowflake(0, 2);
+ @Autowired
+ private SendUtil sendUtil;
@Override
public ResponseData testMysql() {
@@ -53,7 +59,7 @@
responseData.setCode(200);
responseData.setMessage("保存成功");
} catch (Exception dex) {
- log.error("主题:广东台燃气设备存储异常,异常信息:{}", dex.getMessage());
+ log.error("主题:燃气设备存储异常,异常信息:{}", dex.getMessage());
responseData.setCode(500);
responseData.setMessage("保存异常");
}
@@ -97,13 +103,23 @@
//产生新的报警,消除报警
butaneData.setDescn("可燃气体探测器报警");
butaneData.setStatus("1");
- synchronized (alarmRecord){
+ 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);
+ JSONObject eventObj = new JSONObject();
+ eventObj.put("type", "燃气报警");
+ sendUtil.sendEventBySms(device, eventObj);
+ }catch (Exception exception){
+ exception.printStackTrace();
+ }
}
return true;
}
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 a2fd2c5..b8e32b3 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -4,7 +4,7 @@
spring:
datasource:
driverClassName: oracle.jdbc.driver.OracleDriver
- url: jdbc:oracle:thin:@11.100.6.183:1521:orcl
+ url: jdbc:oracle:thin:@11.100.6.181:1521:orcl
username: gzsg
password: gzsg
session:
@@ -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/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/target/classes/application-dev.yml b/target/classes/application-dev.yml
index a2fd2c5..b8e32b3 100644
--- a/target/classes/application-dev.yml
+++ b/target/classes/application-dev.yml
@@ -4,7 +4,7 @@
spring:
datasource:
driverClassName: oracle.jdbc.driver.OracleDriver
- url: jdbc:oracle:thin:@11.100.6.183:1521:orcl
+ url: jdbc:oracle:thin:@11.100.6.181:1521:orcl
username: gzsg
password: gzsg
session:
@@ -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 c9aea71..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/service/impl/DeviceServiceImpl.class b/target/classes/com/casic/service/impl/DeviceServiceImpl.class
index 6e7738a..a6d4dcb 100644
--- a/target/classes/com/casic/service/impl/DeviceServiceImpl.class
+++ b/target/classes/com/casic/service/impl/DeviceServiceImpl.class
Binary files differ