|
@@ -3,6 +3,7 @@ package com.huimv.env.input.server;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
import com.huimv.env.input.c.MyNativeClass;
|
|
import com.huimv.env.input.c.MyNativeClass;
|
|
import com.huimv.env.input.config.WeChatMessage;
|
|
import com.huimv.env.input.config.WeChatMessage;
|
|
import com.huimv.env.input.config.WeChatMessage2;
|
|
import com.huimv.env.input.config.WeChatMessage2;
|
|
@@ -362,18 +363,6 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
|
|
}else {
|
|
}else {
|
|
portChangeData.setElectricCurrent(eleData);
|
|
portChangeData.setElectricCurrent(eleData);
|
|
portChangeDataService.updateById(portChangeData);
|
|
portChangeDataService.updateById(portChangeData);
|
|
-
|
|
|
|
-// if(changeDataIsAll(portChangeData)){
|
|
|
|
-// int i = getStatusEle(portChangeData);
|
|
|
|
-// TerminalPort deviceCode = terminalPortService.getOne(new QueryWrapper<TerminalPort>().eq("device_code", portChangeData.getTerminalPortCode()));
|
|
|
|
-// if (i == 1){
|
|
|
|
-// deviceCode.setChargingWarning(1);
|
|
|
|
-// saveChargingWarning(portChangeData,deviceCode);
|
|
|
|
-// }else {
|
|
|
|
-// deviceCode.setChargingWarning(0);
|
|
|
|
-// }
|
|
|
|
-// terminalPortService.updateById(deviceCode);
|
|
|
|
-// }
|
|
|
|
}
|
|
}
|
|
}catch (Exception e){
|
|
}catch (Exception e){
|
|
log.error(String.format("点位查询失败--> %s" ,askText));
|
|
log.error(String.format("点位查询失败--> %s" ,askText));
|
|
@@ -428,6 +417,13 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
|
|
int exitCode = proc.waitFor();
|
|
int exitCode = proc.waitFor();
|
|
System.out.println("Python script exited with code " + exitCode);
|
|
System.out.println("Python script exited with code " + exitCode);
|
|
|
|
|
|
|
|
+ TerminalPort deviceCode = terminalPortService.getOne(new QueryWrapper<TerminalPort>().eq("device_code", gateWayCode + terminalCode + terminalPortCode));
|
|
|
|
+ if (ObjectUtils.isEmpty(deviceCode)){
|
|
|
|
+ log.info(String.format("无端口设备--> %s" ,askText));
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ saveWarning3(gateWayCode,terminalCode,terminalPortCode,deviceCode,line,now);
|
|
|
|
+
|
|
} catch (IOException e) {
|
|
} catch (IOException e) {
|
|
log.error(e);
|
|
log.error(e);
|
|
} catch (InterruptedException e) {
|
|
} catch (InterruptedException e) {
|
|
@@ -439,6 +435,58 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
|
|
log.error(e);
|
|
log.error(e);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ private void saveWarning3(String gateWayCode,String terminaCode,String terminalPortCode ,TerminalPort terminalPort,String line,Date now ) throws IOException {
|
|
|
|
+
|
|
|
|
+ Integer farmId = terminalPort.getFarmId();
|
|
|
|
+ Integer locationId = terminalPort.getLocationId();
|
|
|
|
+
|
|
|
|
+ BasePigpen basePigpen = basePigpenService.getById(locationId);
|
|
|
|
+ BasePigpen basePigpen1= basePigpenService.getById(basePigpen.getOther2().split(",")[1]);
|
|
|
|
+ if (ObjectUtils.isEmpty(basePigpen)){
|
|
|
|
+ log.info(String.format("无栋舍数据--> %s" ,terminalPort.toString()));
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ PortWarningInfo portWarningInfo = new PortWarningInfo();
|
|
|
|
+ portWarningInfo.setGatwayCode(gateWayCode);
|
|
|
|
+ portWarningInfo.setTerminalCode(gateWayCode+terminaCode);
|
|
|
|
+ portWarningInfo.setTerminalPortCode(gateWayCode+ terminaCode +terminalPortCode);
|
|
|
|
+ portWarningInfo.setLocationId(locationId);
|
|
|
|
+ portWarningInfo.setFarmId(farmId);
|
|
|
|
+ portWarningInfo.setWarningType(farmId);
|
|
|
|
+ portWarningInfo.setCreateTime(now);
|
|
|
|
+ String warningName = "";
|
|
|
|
+ switch (line){
|
|
|
|
+ case "0":
|
|
|
|
+ warningName= "白炽灯预警";
|
|
|
|
+ break;
|
|
|
|
+ case "1":
|
|
|
|
+ warningName= "电动车预警";
|
|
|
|
+ break;
|
|
|
|
+ case "2":
|
|
|
|
+ warningName= "笔记本预警";
|
|
|
|
+ break;
|
|
|
|
+ case "3":
|
|
|
|
+ warningName= "冰箱预警";
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
|
|
+ log.error("未知预警");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ portWarningInfo.setContent(String.format("%s %s",basePigpen.getBuildName(),warningName));
|
|
|
|
+ portWarningInfo.setWarningType(1);
|
|
|
|
+ portWarningInfoService.save(portWarningInfo);
|
|
|
|
+ List<SysAccountMultilevel> list = sysAccountMultilevelService.list(new QueryWrapper<SysAccountMultilevel>().eq("last_farm_id", farmId).eq("subscribe", 1));
|
|
|
|
+ for (SysAccountMultilevel sysAccountMultilevel : list) {
|
|
|
|
+ WeChatMessage.sendMsg(now,warningName,basePigpen1.getBuildName(),basePigpen.getBuildName().substring(basePigpen1.getBuildName().length()),sysAccountMultilevel.getWechatId());
|
|
|
|
+ WeChatMessage2.sendMsg(now,warningName,basePigpen1.getBuildName(),basePigpen.getBuildName().substring(basePigpen1.getBuildName().length()),sysAccountMultilevel.getWechatId());
|
|
|
|
+ sysAccountMultilevel.setSubscribe(0);
|
|
|
|
+ sysAccountMultilevelService.updateById(sysAccountMultilevel);
|
|
|
|
+ }
|
|
|
|
+ WebsocketWorkerUtil.sendWarningMessage(farmId,String.format("%s %s",basePigpen.getBuildName(),warningName));
|
|
|
|
+// pushAlarm(terminaCode +terminalPortCode,2,envData);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
|
|
private int getStatusEle(PortChangeData portChangeData) {
|
|
private int getStatusEle(PortChangeData portChangeData) {
|
|
// 前有功功率 前无功功率 前视在功率 + 前 128个电流值
|
|
// 前有功功率 前无功功率 前视在功率 + 前 128个电流值
|
|
@@ -740,6 +788,39 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
|
|
portChangeDataService.updateById(portChangeData);
|
|
portChangeDataService.updateById(portChangeData);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if (!ObjectUtils.isEmpty(portChangeData.getBeforeActivePower()) && !ObjectUtils.isEmpty(portChangeData.getElectricCurrent()) && !ObjectUtils.isEmpty(portChangeData.getBeforeElectricCurrent())){
|
|
|
|
+ String lastPower = portChangeData.getBeforeActivePower().toString();
|
|
|
|
+ String lastArr = portChangeData.getElectricCurrent();
|
|
|
|
+ String currentArr = portChangeData.getBeforeElectricCurrent();
|
|
|
|
+ String modelPath = "./epoch_8_acc_100.00.pth";
|
|
|
|
+ try {
|
|
|
|
+ String[] my_args =new String[] {"python3","detect.py",lastPower,lastArr,currentArr,modelPath};
|
|
|
|
+ Process proc = Runtime.getRuntime().exec(my_args);//执行脚本
|
|
|
|
+ System.out.println("执行脚本");
|
|
|
|
+ BufferedReader reader = new BufferedReader(new InputStreamReader(proc.getInputStream()));
|
|
|
|
+ String line = null;
|
|
|
|
+ while((line = reader.readLine()) != null){
|
|
|
|
+ System.out.println("python执行结果"+line);
|
|
|
|
+ }
|
|
|
|
+ reader.close();
|
|
|
|
+ int exitCode = proc.waitFor();
|
|
|
|
+ System.out.println("Python script exited with code " + exitCode);
|
|
|
|
+
|
|
|
|
+ TerminalPort deviceCode = terminalPortService.getOne(new QueryWrapper<TerminalPort>().eq("device_code", gateWayCode + terminalCode + terminalPortCode));
|
|
|
|
+ if (ObjectUtils.isEmpty(deviceCode)){
|
|
|
|
+ log.info(String.format("无端口设备--> %s" ,askText));
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ saveWarning3(gateWayCode,terminalCode,terminalPortCode,deviceCode,line,now);
|
|
|
|
+
|
|
|
|
+ } catch (IOException e) {
|
|
|
|
+ log.error(e);
|
|
|
|
+ } catch (InterruptedException e) {
|
|
|
|
+ log.error(e);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
}catch (Exception e){
|
|
}catch (Exception e){
|
|
log.error(String.format("点位查询失败--> %s" ,askText));
|
|
log.error(String.format("点位查询失败--> %s" ,askText));
|
|
log.error(e);
|
|
log.error(e);
|
|
@@ -814,10 +895,7 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
|
|
terminalPortService.updateById(deviceCode);
|
|
terminalPortService.updateById(deviceCode);
|
|
//添加报警
|
|
//添加报警
|
|
saveWarning(gateWayCode,terminalCode,terminalPortCode,deviceCode,splitStatus,now,envData);
|
|
saveWarning(gateWayCode,terminalCode,terminalPortCode,deviceCode,splitStatus,now,envData);
|
|
-// }catch (Exception e){
|
|
|
|
-// log.error(String.format("端口设备查询失败--> %s" ,askText));
|
|
|
|
-// log.error(e);
|
|
|
|
-// }
|
|
|
|
|
|
+
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@@ -898,14 +976,14 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
|
|
|
|
|
|
private void pushAlarm(String deviceId,Integer errorCode, EnvData envData) throws IOException {
|
|
private void pushAlarm(String deviceId,Integer errorCode, EnvData envData) throws IOException {
|
|
AlarmInfoVO alarmInfoVO = new AlarmInfoVO();
|
|
AlarmInfoVO alarmInfoVO = new AlarmInfoVO();
|
|
- alarmInfoVO.setDevice_id(deviceId);
|
|
|
|
- alarmInfoVO.setError_code(errorCode);
|
|
|
|
|
|
+ alarmInfoVO.setDeviceId(deviceId);
|
|
|
|
+ alarmInfoVO.setErrorCode(errorCode);
|
|
switch (errorCode){
|
|
switch (errorCode){
|
|
case 2:
|
|
case 2:
|
|
- alarmInfoVO.setError_value(envData.getTemp());
|
|
|
|
|
|
+ alarmInfoVO.setErrorValue(envData.getTemp());
|
|
break;
|
|
break;
|
|
case 1:
|
|
case 1:
|
|
- alarmInfoVO.setError_value(envData.getLeakageValue());
|
|
|
|
|
|
+ alarmInfoVO.setErrorValue(envData.getLeakageValue());
|
|
break;
|
|
break;
|
|
default :
|
|
default :
|
|
// alarmInfoVO.setError_value(envData.getActivePower());
|
|
// alarmInfoVO.setError_value(envData.getActivePower());
|
|
@@ -915,10 +993,10 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
|
|
|
|
|
|
alarmInfoVO.setFrequency(50);
|
|
alarmInfoVO.setFrequency(50);
|
|
alarmInfoVO.setLeakage(envData.getLeakageValue());
|
|
alarmInfoVO.setLeakage(envData.getLeakageValue());
|
|
- alarmInfoVO.setVolt_a(envData.getVoltage());
|
|
|
|
- alarmInfoVO.setCurr_a(envData.getElectricCurrent());
|
|
|
|
- alarmInfoVO.setTemp_a(envData.getTemp());
|
|
|
|
- alarmInfoVO.setPower_a(envData.getActivePower());
|
|
|
|
|
|
+ alarmInfoVO.setVoltA(envData.getVoltage());
|
|
|
|
+ alarmInfoVO.setCurrA(envData.getElectricCurrent());
|
|
|
|
+ alarmInfoVO.setTempA(envData.getTemp());
|
|
|
|
+ alarmInfoVO.setPowerA(envData.getActivePower());
|
|
ArrayList<AlarmInfoVO> list1 = new ArrayList<>();
|
|
ArrayList<AlarmInfoVO> list1 = new ArrayList<>();
|
|
list1.add(alarmInfoVO);
|
|
list1.add(alarmInfoVO);
|
|
ElePostUtils.heartPost(BASE_URL + ALARM_URL, envData.getGatwayCode(),list1);
|
|
ElePostUtils.heartPost(BASE_URL + ALARM_URL, envData.getGatwayCode(),list1);
|