Commit bed86874 authored by zhuangzhuang's avatar zhuangzhuang

修改增加报警的逻辑

parent 81440563
......@@ -13,6 +13,8 @@ public class AddAlarmLogVo {
private Long ts;
private Integer alarmno;
private List<AlarmData> alarm;
public static class AlarmData {
......@@ -121,6 +123,14 @@ public class AddAlarmLogVo {
this.ts = ts;
}
public Integer getAlarmno() {
return alarmno;
}
public void setAlarmno(Integer alarmno) {
this.alarmno = alarmno;
}
public List<AlarmData> getAlarm() {
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 {
List<TypeVo> getGatewayType(@Param("companyNo") String companyNo);
AlarmNoVo getByGateway(@Param("SN") String SN,@Param("type") String type);
}
......@@ -75,4 +75,8 @@ public class GatewayService {
public List<TypeVo> getGatewayType(String 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 ALARM_NONE = " normal";
// public static String ALARM_LMin = " underestimate";
// public static String ALARM_EQMax = " equals the maximum";
// public static String ALARM_UEQMax = " not equal to the maximum";
// public static String ALARM_UMax = " overtop";
// public static String ALARM_UUMax = " ultrahigh";
// public static String ALARM_LLMin = " ultralow";
// public static String ALARM_LMaxUMin = " upper and lower range alarm";
// public static String ALARM_OFFLINE = " off-line";
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.*;
import com.example.tdl.entity.AlarmLog;
import com.example.tdl.service.*;
import com.example.tdl.service.redis.TokenRedisService;
import com.example.tdl.util.AlarmLogUtil;
import com.google.gson.Gson;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
......@@ -155,12 +156,114 @@ public class AlarmLogController {
//新增报警消息
// @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());
// //获取终点,起点
// if(!StringUtils.isEmpty(transportationNo)){
// 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());
// if(!StringUtils.isEmpty(warehouseNo)){
// 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)
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("网关序列号不能为空");
......@@ -169,88 +272,112 @@ public class AlarmLogController {
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());
//获取终点,起点
if(!StringUtils.isEmpty(transportationNo)){
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){
//判断当前报警状态
AlarmNoVo alarmNoVo = gatewayService.getByGateway(addAlarmLogVo.getGsn(),addAlarmLogVo.getGtype());
if(alarmNoVo!=null && alarmNoVo.getMode() == 1){
ResultCircuitVo resultCircuitVo = circuitService.getCircuit(alarmNoVo.getTransportationNo());
if(addAlarmLogVo.getAlarmno() !=null){
//网关离线报警
String desp ="Gateway("+addAlarmLogVo.getGsn() +")"+ AlarmLogUtil.getDescription(addAlarmLogVo.getAlarmno());
String classify ="6";
Long time = addAlarmLogVo.getTs();
if(time.toString().length() == 10){
time=time*1000;
}
AlarmLog alarmLog = new AlarmLog(alarmNoVo.getTransportationNo(),resultCircuitVo.getStartCity(),resultCircuitVo.getEndCity(),null,desp,null,time,classify,"offline",addAlarmLogVo.getAlarmno());
alarmLogServcie.addAlarmLog(alarmLog);
}
if(addAlarmLogVo.getAlarm() !=null && addAlarmLogVo.getAlarm().size()>0){
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());
String classify = null;
String desp = AlarmLogUtil.getDescription(addAlarmLogVo.getAlarm().get(i).getAlarmno());
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 = "湿度" +map.get(addAlarmLogVo.getAlarm().get(i).getAlarmno());
} 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 = "震动" +map.get(addAlarmLogVo.getAlarm().get(i).getAlarmno());
} 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 = "倾角" + map.get(addAlarmLogVo.getAlarm().get(i).getAlarmno());
} 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(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("添加成功");
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);
}
}
}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){
time=time*1000;
}
WarehouseAlarmLog alarmLog = new WarehouseAlarmLog(alarmNoVo.getWarehouseNo(),addAlarmLogVo.getGsn(),addAlarmLogVo.getGtype(),null,desp,null,time,"offline",addAlarmLogVo.getAlarmno());
warehouseAlarmLogService.add(alarmLog);
}
}else{
//根据gateway获取仓库编号
String warehouseNo = gatewayService.getWarehouseNo(addAlarmLogVo.getGsn(),addAlarmLogVo.getGtype());
if(!StringUtils.isEmpty(warehouseNo)){
if(addAlarmLogVo.getAlarm() !=null && addAlarmLogVo.getAlarm().size()>0){
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 = "";
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 = "温度" +map.get(addAlarmLogVo.getAlarm().get(i).getAlarmno());
desp = addAlarmLogVo.getAlarm().get(i).getDesp() + desp;
classify = "1";
} else if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("h")){
desp = "湿度" +map.get(addAlarmLogVo.getAlarm().get(i).getAlarmno());
desp = addAlarmLogVo.getAlarm().get(i).getDesp() +desp;
classify = "2";
} else if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("a1")){
desp = "震动" +map.get(addAlarmLogVo.getAlarm().get(i).getAlarmno());
desp = addAlarmLogVo.getAlarm().get(i).getDesp() +desp;
classify = "3";
} else if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("ta")) {
desp = "倾角" + map.get(addAlarmLogVo.getAlarm().get(i).getAlarmno());
desp = addAlarmLogVo.getAlarm().get(i).getDesp() + desp;
classify = "4";
}
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("添加成功");
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);
}
}
}
......@@ -258,6 +385,7 @@ public class AlarmLogController {
}
//获取报警信息
@ApiOperation(value = "获取报警信息",notes = "获取报警信息" +
"transportationNo:运输编号" +
......
......@@ -134,6 +134,13 @@
</if>
</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 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