Commit 2592af72 authored by zhuangzhuang's avatar zhuangzhuang

1.修改增加报警的逻辑

parent 739970b3
...@@ -13,6 +13,8 @@ public class AddAlarmLogVo { ...@@ -13,6 +13,8 @@ public class AddAlarmLogVo {
private Long ts; private Long ts;
private Integer alarmno;
private List<AlarmData> alarm; private List<AlarmData> alarm;
public static class AlarmData { public static class AlarmData {
...@@ -121,6 +123,14 @@ public class AddAlarmLogVo { ...@@ -121,6 +123,14 @@ public class AddAlarmLogVo {
this.ts = ts; this.ts = ts;
} }
public Integer getAlarmno() {
return alarmno;
}
public void setAlarmno(Integer alarmno) {
this.alarmno = alarmno;
}
public List<AlarmData> getAlarm() { public List<AlarmData> getAlarm() {
return alarm; return alarm;
} }
......
package com.example.tdl.domain.vo;
public class AlarmNoVo {
private Integer mode;
private String transportationNo;
private String warehouseNo;
private String warehouseName;
public Integer getMode() {
return mode;
}
public void setMode(Integer mode) {
this.mode = mode;
}
public String getTransportationNo() {
return transportationNo;
}
public void setTransportationNo(String transportationNo) {
this.transportationNo = transportationNo;
}
public String getWarehouseNo() {
return warehouseNo;
}
public void setWarehouseNo(String warehouseNo) {
this.warehouseNo = warehouseNo;
}
public String getWarehouseName() {
return warehouseName;
}
public void setWarehouseName(String warehouseName) {
this.warehouseName = warehouseName;
}
}
...@@ -39,4 +39,6 @@ public interface GatewayMapper { ...@@ -39,4 +39,6 @@ public interface GatewayMapper {
List<TypeVo> getGatewayType(@Param("companyNo") String companyNo); List<TypeVo> getGatewayType(@Param("companyNo") String companyNo);
AlarmNoVo getByGateway(@Param("SN") String SN,@Param("type") String type);
} }
...@@ -75,4 +75,8 @@ public class GatewayService { ...@@ -75,4 +75,8 @@ public class GatewayService {
public List<TypeVo> getGatewayType(String companyNo){ public List<TypeVo> getGatewayType(String companyNo){
return gatewayMapper.getGatewayType(companyNo); return gatewayMapper.getGatewayType(companyNo);
} }
public AlarmNoVo getByGateway(String SN,String type){
return gatewayMapper.getByGateway(SN,type);
}
} }
package com.example.tdl.util;
public class AlarmLogUtil {
public static String ALARM_NONE = "正常";
public static String ALARM_LMin = "过低";
public static String ALARM_EQMax = "等于最大值";
public static String ALARM_UEQMax = "不等于最大值";
public static String ALARM_UMax = "过高";
public static String ALARM_UUMax = "超高";
public static String ALARM_LLMin = "超低";
public static String ALARM_LMaxUMin = "上下限制之间";
public static String ALARM_OFFLINE = "离线";
public static String getDescription(Integer alalrmNo){
String desp = "";
switch (alalrmNo){
case 0 :
desp = ALARM_NONE;
break;
case 1:
desp = ALARM_EQMax;
break;
case 2:
desp = ALARM_UEQMax;
break;
case 3:
desp = ALARM_UMax;
break;
case 4:
desp = ALARM_LMin;
break;
case 5:
desp = ALARM_LMaxUMin;
break;
case 6:
desp = ALARM_UUMax;
break;
case 7:
desp = ALARM_LLMin;
break;
case 99:
desp = ALARM_OFFLINE;
break;
default:
break;
}
return desp;
}
}
...@@ -5,6 +5,7 @@ import com.example.tdl.domain.vo.*; ...@@ -5,6 +5,7 @@ import com.example.tdl.domain.vo.*;
import com.example.tdl.entity.AlarmLog; import com.example.tdl.entity.AlarmLog;
import com.example.tdl.service.*; import com.example.tdl.service.*;
import com.example.tdl.service.redis.TokenRedisService; import com.example.tdl.service.redis.TokenRedisService;
import com.example.tdl.util.AlarmLogUtil;
import com.google.gson.Gson; import com.google.gson.Gson;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
...@@ -153,14 +154,112 @@ public class AlarmLogController { ...@@ -153,14 +154,112 @@ public class AlarmLogController {
return gson.toJson(new MqttUser(userName,password,userRedisVo.getCompanyNo())); return gson.toJson(new MqttUser(userName,password,userRedisVo.getCompanyNo()));
} }
//
//新增报警消息 // //新增报警消息
@ApiOperation(value = "增加报警",notes = "增加报警") // @ApiOperation(value = "增加报警",notes = "增加报警")
// @RequestMapping(value = "/addAlarmLog",method = RequestMethod.POST)
// public String addAlarmLog(@RequestBody String addAlarmLog){
// logger.info(addAlarmLog);
// AddAlarmLogVo addAlarmLogVo = gson.fromJson(addAlarmLog,AddAlarmLogVo.class);
// logger.info(System.currentTimeMillis()+"--------"+gson.toJson(addAlarmLogVo));
// if(StringUtils.isEmpty(addAlarmLogVo.getGsn())){
// fb.setCode(0);
// fb.setMessage("网关序列号不能为空");
// }
// if(StringUtils.isEmpty(addAlarmLogVo.getGtype())){
// fb.setCode(0);
// fb.setMessage("网关类型不能为空");
// }
// if(addAlarmLogVo.getAlarm()==null){
// fb.setCode(0);
// fb.setMessage("报警数据不能为空");
// }
// if(addAlarmLogVo.getTs() == null){
// fb.setCode(0);
// fb.setMessage("时间不能为空");
// }
// Map<Integer,String> map = new HashMap<>();
// map.put(0,"正常");
// map.put(1,"等于最大值");
// map.put(2,"不等于最大值");
// map.put(3,"过高");
// map.put(4,"过低");
// map.put(5,"未知");
// if(addAlarmLogVo.getMode() == 1){
// //根据gateway的信息获取线路信息
// String transportationNo = gatewayService.getTransportationNo(addAlarmLogVo.getGsn(),addAlarmLogVo.getGtype());
// //获取终点,起点
// ResultCircuitVo resultCircuitVo = circuitService.getCircuit(transportationNo);
// for(int i = 0,length=addAlarmLogVo.getAlarm().size();i<length;i++){
// if(addAlarmLogVo.getAlarm().get(i).getAlarmno() !=null && addAlarmLogVo.getAlarm().get(i).getAlarmno() == 0){
// continue;
// }
// String classify="";
// String desp = "";
// if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("T")){
// desp = "温度" +map.get(addAlarmLogVo.getAlarm().get(i).getAlarmno());
// classify = "1";
// } else if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("h")){
// desp = "湿度" +map.get(addAlarmLogVo.getAlarm().get(i).getAlarmno());
// classify = "2";
// } else if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("a1")){
// desp = "震动" +map.get(addAlarmLogVo.getAlarm().get(i).getAlarmno());
// classify = "3";
// } else if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("ta")) {
// desp = "倾角" + map.get(addAlarmLogVo.getAlarm().get(i).getAlarmno());
// classify = "4";
// }
// Long time = addAlarmLogVo.getAlarm().get(i).getTs();
// if(time.toString().length() == 10){
// time=time*1000;
// }
// AlarmLog alarmLog = new AlarmLog(transportationNo,resultCircuitVo.getStartCity(),resultCircuitVo.getEndCity(),addAlarmLogVo.getAlarm().get(i).getTdlsn().replace("TDL-","").trim(),desp,addAlarmLogVo.getAlarm().get(i).getValue(),time,classify,addAlarmLogVo.getAlarm().get(i).getDesp(),addAlarmLogVo.getAlarm().get(i).getAlarmno());
// int a = alarmLogServcie.addAlarmLog(alarmLog);
// if(a == 0){
// fb.setCode(0);
// fb.setMessage("添加失败");
// }else{
// fb.setCode(1);
// fb.setMessage("添加成功");
// }
// }
// }else{
// //根据gateway获取仓库编号
// String warehouseNo = gatewayService.getWarehouseNo(addAlarmLogVo.getGsn(),addAlarmLogVo.getGtype());
// for(int i = 0,length=addAlarmLogVo.getAlarm().size();i<length;i++){
// if(addAlarmLogVo.getAlarm().get(i).getAlarmno() !=null && addAlarmLogVo.getAlarm().get(i).getAlarmno() == 0){
// continue;
// }
// String desp = "";
// if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("T")){
// desp = "温度" +map.get(addAlarmLogVo.getAlarm().get(i).getAlarmno());
// } else if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("h")){
// desp = "湿度" +map.get(addAlarmLogVo.getAlarm().get(i).getAlarmno());
// } else if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("a1")){
// desp = "震动" +map.get(addAlarmLogVo.getAlarm().get(i).getAlarmno());
// } else if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("ta")) {
// desp = "倾角" + map.get(addAlarmLogVo.getAlarm().get(i).getAlarmno());
// }
// WarehouseAlarmLog alarmLog = new WarehouseAlarmLog(warehouseNo,addAlarmLogVo.getGsn(),addAlarmLogVo.getGtype(),addAlarmLogVo.getAlarm().get(i).getTdlsn().replace("TDL-","").trim(),desp,addAlarmLogVo.getAlarm().get(i).getValue(),addAlarmLogVo.getAlarm().get(i).getTs()*1000,addAlarmLogVo.getAlarm().get(i).getDesp(),addAlarmLogVo.getAlarm().get(i).getAlarmno());
// int a = warehouseAlarmLogService.add(alarmLog);
// if(a == 0){
// fb.setCode(0);
// fb.setMessage("添加失败");
// }else{
// fb.setCode(1);
// fb.setMessage("添加成功");
// }
// }
// }
//
// return gson.toJson(fb);
// }
@ApiOperation(value = "增加报警",notes = "增加报警")
@RequestMapping(value = "/addAlarmLog",method = RequestMethod.POST) @RequestMapping(value = "/addAlarmLog",method = RequestMethod.POST)
public String addAlarmLog(@RequestBody String addAlarmLog){ public String addAlarmLog(@RequestBody String addAlarmLog){
logger.info(addAlarmLog); logger.info(addAlarmLog);
AddAlarmLogVo addAlarmLogVo = gson.fromJson(addAlarmLog,AddAlarmLogVo.class); AddAlarmLogVo addAlarmLogVo = gson.fromJson(addAlarmLog,AddAlarmLogVo.class);
logger.info(System.currentTimeMillis()+"--------"+gson.toJson(addAlarmLogVo));
if(StringUtils.isEmpty(addAlarmLogVo.getGsn())){ if(StringUtils.isEmpty(addAlarmLogVo.getGsn())){
fb.setCode(0); fb.setCode(0);
fb.setMessage("网关序列号不能为空"); fb.setMessage("网关序列号不能为空");
...@@ -169,92 +268,120 @@ public class AlarmLogController { ...@@ -169,92 +268,120 @@ public class AlarmLogController {
fb.setCode(0); fb.setCode(0);
fb.setMessage("网关类型不能为空"); fb.setMessage("网关类型不能为空");
} }
if(addAlarmLogVo.getAlarm()==null){
fb.setCode(0);
fb.setMessage("报警数据不能为空");
}
if(addAlarmLogVo.getTs() == null){ if(addAlarmLogVo.getTs() == null){
fb.setCode(0); fb.setCode(0);
fb.setMessage("时间不能为空"); fb.setMessage("时间不能为空");
} }
Map<Integer,String> map = new HashMap<>(); //判断当前报警状态
map.put(0,"正常"); AlarmNoVo alarmNoVo = gatewayService.getByGateway(addAlarmLogVo.getGsn(),addAlarmLogVo.getGtype());
map.put(1,"等于最大值"); if(alarmNoVo!=null && alarmNoVo.getMode() == 1){
map.put(2,"不等于最大值"); ResultCircuitVo resultCircuitVo = circuitService.getCircuit(alarmNoVo.getTransportationNo());
map.put(3,"过高"); if(addAlarmLogVo.getAlarmno() !=null){
map.put(4,"过低"); //网关离线报警
map.put(5,"未知"); String desp ="Gateway("+addAlarmLogVo.getGsn() +")"+ AlarmLogUtil.getDescription(addAlarmLogVo.getAlarmno());
if(addAlarmLogVo.getMode() == 1){ String classify ="6";
//根据gateway的信息获取线路信息 Long time = addAlarmLogVo.getTs();
String transportationNo = gatewayService.getTransportationNo(addAlarmLogVo.getGsn(),addAlarmLogVo.getGtype()); if(time.toString().length() == 10){
//获取终点,起点 time=time*1000;
ResultCircuitVo resultCircuitVo = circuitService.getCircuit(transportationNo);
for(int i = 0,length=addAlarmLogVo.getAlarm().size();i<length;i++){
if(addAlarmLogVo.getAlarm().get(i).getAlarmno() !=null && addAlarmLogVo.getAlarm().get(i).getAlarmno() == 0){
continue;
} }
String classify=""; AlarmLog alarmLog = new AlarmLog(alarmNoVo.getTransportationNo(),resultCircuitVo.getStartCity(),resultCircuitVo.getEndCity(),null,desp,null,time,classify,"offline",addAlarmLogVo.getAlarmno());
String desp = ""; alarmLogServcie.addAlarmLog(alarmLog);
if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("T")){ }
desp = "温度" +map.get(addAlarmLogVo.getAlarm().get(i).getAlarmno()); if(addAlarmLogVo.getAlarm() !=null && addAlarmLogVo.getAlarm().size()>0){
classify = "1"; for(int i = 0,length=addAlarmLogVo.getAlarm().size();i<length;i++) {
} else if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("h")){ if (addAlarmLogVo.getAlarm().get(i).getAlarmno() != null && addAlarmLogVo.getAlarm().get(i).getAlarmno() == 0) {
desp = "湿度" +map.get(addAlarmLogVo.getAlarm().get(i).getAlarmno()); continue;
classify = "2"; }
} else if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("a1")){ String classify = null;
desp = "震动" +map.get(addAlarmLogVo.getAlarm().get(i).getAlarmno()); String desp = AlarmLogUtil.getDescription(addAlarmLogVo.getAlarm().get(i).getAlarmno());
classify = "3"; if(addAlarmLogVo.getAlarm().get(i).getAlias()!=null){
} else if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("ta")) { if (addAlarmLogVo.getAlarm().get(i).getAlias().contains("T")) {
desp = "倾角" + map.get(addAlarmLogVo.getAlarm().get(i).getAlarmno()); desp = addAlarmLogVo.getAlarm().get(i).getDesp() + desp;
classify = "4"; classify = "1";
} else if (addAlarmLogVo.getAlarm().get(i).getAlias().contains("h")) {
desp = addAlarmLogVo.getAlarm().get(i).getDesp() + desp;
classify = "2";
} else if (addAlarmLogVo.getAlarm().get(i).getAlias().contains("a1")) {
desp = addAlarmLogVo.getAlarm().get(i).getDesp()+ desp;
classify = "3";
} else if (addAlarmLogVo.getAlarm().get(i).getAlias().contains("ta")) {
desp = addAlarmLogVo.getAlarm().get(i).getDesp()+ desp;
classify = "4";
}
}else{
desp = "TDL("+addAlarmLogVo.getAlarm().get(i).getTdlsn() +")"+desp;
classify = "6";
}
Long time = addAlarmLogVo.getAlarm().get(i).getTs();
if(time.toString().length() == 10){
time=time*1000;
}
AlarmLog alarmLog = new AlarmLog(alarmNoVo.getTransportationNo(),resultCircuitVo.getStartCity(),resultCircuitVo.getEndCity(),addAlarmLogVo.getAlarm().get(i).getTdlsn().replace("TDL-","").trim(),desp,addAlarmLogVo.getAlarm().get(i).getValue(),time,classify,addAlarmLogVo.getAlarm().get(i).getDesp(),addAlarmLogVo.getAlarm().get(i).getAlarmno());
alarmLogServcie.addAlarmLog(alarmLog);
} }
Long time = addAlarmLogVo.getAlarm().get(i).getTs(); }
}else if(alarmNoVo!=null && alarmNoVo.getMode() == 2) {
if(addAlarmLogVo.getAlarmno() !=null && addAlarmLogVo.getAlarmno()!=0){
//网关离线报警
String desp = "Gateway("+addAlarmLogVo.getGsn() +")"+ AlarmLogUtil.getDescription(addAlarmLogVo.getAlarmno());
String classify ="6";
Long time = addAlarmLogVo.getTs();
if(time.toString().length() == 10){ if(time.toString().length() == 10){
time=time*1000; time=time*1000;
} }
AlarmLog alarmLog = new AlarmLog(transportationNo,resultCircuitVo.getStartCity(),resultCircuitVo.getEndCity(),addAlarmLogVo.getAlarm().get(i).getTdlsn().replace("TDL-","").trim(),desp,addAlarmLogVo.getAlarm().get(i).getValue(),time,classify,addAlarmLogVo.getAlarm().get(i).getDesp(),addAlarmLogVo.getAlarm().get(i).getAlarmno()); WarehouseAlarmLog alarmLog = new WarehouseAlarmLog(alarmNoVo.getWarehouseNo(),addAlarmLogVo.getGsn(),addAlarmLogVo.getGtype(),null,desp,null,time,"offline",addAlarmLogVo.getAlarmno());
int a = alarmLogServcie.addAlarmLog(alarmLog); warehouseAlarmLogService.add(alarmLog);
if(a == 0){ }
fb.setCode(0); if(addAlarmLogVo.getAlarm() !=null && addAlarmLogVo.getAlarm().size()>0){
fb.setMessage("添加失败"); for(int i = 0,length=addAlarmLogVo.getAlarm().size();i<length;i++){
}else{ if(addAlarmLogVo.getAlarm().get(i).getAlarmno() !=null && addAlarmLogVo.getAlarm().get(i).getAlarmno() == 0){
fb.setCode(1); continue;
fb.setMessage("添加成功"); }
String desp = AlarmLogUtil.getDescription(addAlarmLogVo.getAlarm().get(i).getAlarmno());
String classify = null;
if(addAlarmLogVo.getAlarm().get(i).getAlias() !=null){
if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("T")){
desp = addAlarmLogVo.getAlarm().get(i).getDesp() + desp;
classify = "1";
} else if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("h")){
desp = addAlarmLogVo.getAlarm().get(i).getDesp() +desp;
classify = "2";
} else if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("a1")){
desp = addAlarmLogVo.getAlarm().get(i).getDesp() +desp;
classify = "3";
} else if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("ta")) {
desp = addAlarmLogVo.getAlarm().get(i).getDesp() + desp;
classify = "4";
}
}else{
desp = "TDL("+addAlarmLogVo.getAlarm().get(i).getTdlsn() +") "+desp;
classify = "6";
}
Long time = addAlarmLogVo.getAlarm().get(i).getTs();
if(time.toString().length() == 10){
time=time*1000;
}
WarehouseAlarmLog alarmLog = new WarehouseAlarmLog(
alarmNoVo.getWarehouseNo(),
addAlarmLogVo.getGsn(),
addAlarmLogVo.getGtype(),
addAlarmLogVo.getAlarm().get(i).getTdlsn(),
desp,
addAlarmLogVo.getAlarm().get(i).getValue(),
time,
addAlarmLogVo.getAlarm().get(i).getDesp(),
addAlarmLogVo.getAlarm().get(i).getAlarmno()
);
warehouseAlarmLogService.add(alarmLog);
} }
} }
}else{
//根据gateway获取仓库编号
String warehouseNo = gatewayService.getWarehouseNo(addAlarmLogVo.getGsn(),addAlarmLogVo.getGtype());
for(int i = 0,length=addAlarmLogVo.getAlarm().size();i<length;i++){
if(addAlarmLogVo.getAlarm().get(i).getAlarmno() !=null && addAlarmLogVo.getAlarm().get(i).getAlarmno() == 0){
continue;
}
String desp = "";
if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("T")){
desp = "温度" +map.get(addAlarmLogVo.getAlarm().get(i).getAlarmno());
} else if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("h")){
desp = "湿度" +map.get(addAlarmLogVo.getAlarm().get(i).getAlarmno());
} else if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("a1")){
desp = "震动" +map.get(addAlarmLogVo.getAlarm().get(i).getAlarmno());
} else if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("ta")) {
desp = "倾角" + map.get(addAlarmLogVo.getAlarm().get(i).getAlarmno());
}
WarehouseAlarmLog alarmLog = new WarehouseAlarmLog(warehouseNo,addAlarmLogVo.getGsn(),addAlarmLogVo.getGtype(),addAlarmLogVo.getAlarm().get(i).getTdlsn().replace("TDL-","").trim(),desp,addAlarmLogVo.getAlarm().get(i).getValue(),addAlarmLogVo.getAlarm().get(i).getTs()*1000,addAlarmLogVo.getAlarm().get(i).getDesp(),addAlarmLogVo.getAlarm().get(i).getAlarmno());
int a = warehouseAlarmLogService.add(alarmLog);
if(a == 0){
fb.setCode(0);
fb.setMessage("添加失败");
}else{
fb.setCode(1);
fb.setMessage("添加成功");
}
}
} }
return gson.toJson(fb); return gson.toJson(fb);
} }
//获取报警信息 //获取报警信息
@ApiOperation(value = "获取报警信息",notes = "获取报警信息" + @ApiOperation(value = "获取报警信息",notes = "获取报警信息" +
"transportationNo:运输编号" + "transportationNo:运输编号" +
......
...@@ -134,6 +134,13 @@ ...@@ -134,6 +134,13 @@
</if> </if>
</select> </select>
<select id="getByGateway" resultType="com.example.tdl.domain.vo.AlarmNoVo" parameterType="String">
select DISTINCT g.useScene mode, transportationNo, warehouseNo from gateway g INNER JOIN tdldevice t on t.gateway_id = g.id
LEFT JOIN circuit c on c.id = t.circuit_id
LEFT JOIN warehouse w on w.id = t.warehouse_id
where g.SN=#{SN,jdbcType=VARCHAR} and g.type=#{type,jdbcType=VARCHAR}
</select>
<!-- <insert id="addGateway" parameterType="com.example.tdl.domain.vo.AddGatewayVo"> <!-- <insert id="addGateway" parameterType="com.example.tdl.domain.vo.AddGatewayVo">
INSERT into gateway VALUES ( INSERT into gateway VALUES (
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment