Selaa lähdekoodia

心跳修改状态

523096025 10 kuukautta sitten
vanhempi
commit
6736443f48

+ 15 - 15
huimv-env-input/src/main/java/com/huimv/env/input/entity/vo/AlarmInfoVO.java

@@ -5,22 +5,22 @@ import lombok.Data;
 @Data
 public class AlarmInfoVO {
 
-    private String device_id;
+    private String deviceId;
 
-    private Integer   error_code;
-    private String   error_value;
+    private Integer   errorCode;
+    private String   errorValue;
     private Integer   frequency;
     private String   leakage;
-    private String  volt_a;
-    private String    volt_b;
-    private String  volt_c;
-    private String   curr_a;
-    private String  curr_b;
-    private String  curr_c;
-    private String  temp_a;
-    private String    temp_b;
-    private String    temp_c;
-    private Integer    power_a;
-    private String    power_b;
-    private String    power_c;
+    private String  voltA;
+    private String    voltB;
+    private String  voltC;
+    private String   currA;
+    private String  currB;
+    private String  currC;
+    private String  tempA;
+    private String    tempB;
+    private String    tempC;
+    private Integer    powerA;
+    private String    powerB;
+    private String    powerC;
 }

+ 17 - 17
huimv-env-input/src/main/java/com/huimv/env/input/entity/vo/DataInfoVO.java

@@ -5,24 +5,24 @@ import lombok.Data;
 @Data
 public class DataInfoVO {
 
-    private String device_id;
+    private String deviceId;
 
-    private String   switch_state;
+    private String   switchState;
     private String   frequency;
     private String   leakage;
-    private String  volt_a;
-    private String    volt_b;
-    private String  volt_c;
-    private String   curr_a;
-    private String  curr_b;
-    private String  curr_c;
-    private String  temp_a;
-    private String    temp_b;
-    private String    temp_c;
-    private String    power_a;
-    private String    power_b;
-    private String    power_c;
-    private String  power_factor;
-    private String   today_elec;
-    private String  total_elec;
+    private String  voltA;
+    private String    voltN;
+    private String  voltC;
+    private String   currA;
+    private String  currB;
+    private String  currC;
+    private String  tempA;
+    private String    tempB;
+    private String    tempC;
+    private String    powerA;
+    private String    powerB;
+    private String    powerC;
+    private String  powerFactor;
+    private String   todayElec;
+    private String  totalElec;
 }

+ 3 - 3
huimv-env-input/src/main/java/com/huimv/env/input/entity/vo/HeartInfoVo.java

@@ -5,9 +5,9 @@ import lombok.Data;
 
 @Data
 public class HeartInfoVo {
-    private String device_id;
-    private String device_name;
-    private String device_address;
+    private String deviceId;
+    private String deviceName;
+    private String deviceAddress;
     private String mode;
     private String version;
     private Integer np;

+ 102 - 24
huimv-env-input/src/main/java/com/huimv/env/input/server/EnvInputServerHandler.java

@@ -3,6 +3,7 @@ package com.huimv.env.input.server;
 import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 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.config.WeChatMessage;
 import com.huimv.env.input.config.WeChatMessage2;
@@ -362,18 +363,6 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
             }else {
                 portChangeData.setElectricCurrent(eleData);
                 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){
             log.error(String.format("点位查询失败--> %s" ,askText));
@@ -428,6 +417,13 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
                     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) {
@@ -439,6 +435,58 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
             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) {
         // 前有功功率	前无功功率	前视在功率  +  前 128个电流值
@@ -740,6 +788,39 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
                 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){
             log.error(String.format("点位查询失败--> %s" ,askText));
             log.error(e);
@@ -814,10 +895,7 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
             terminalPortService.updateById(deviceCode);
             //添加报警
             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 {
         AlarmInfoVO alarmInfoVO = new AlarmInfoVO();
-        alarmInfoVO.setDevice_id(deviceId);
-        alarmInfoVO.setError_code(errorCode);
+        alarmInfoVO.setDeviceId(deviceId);
+        alarmInfoVO.setErrorCode(errorCode);
         switch (errorCode){
             case 2:
-                alarmInfoVO.setError_value(envData.getTemp());
+                alarmInfoVO.setErrorValue(envData.getTemp());
                 break;
             case 1:
-                alarmInfoVO.setError_value(envData.getLeakageValue());
+                alarmInfoVO.setErrorValue(envData.getLeakageValue());
                 break;
             default :
 //                alarmInfoVO.setError_value(envData.getActivePower());
@@ -915,10 +993,10 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
 
         alarmInfoVO.setFrequency(50);
         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<>();
         list1.add(alarmInfoVO);
         ElePostUtils.heartPost(BASE_URL + ALARM_URL, envData.getGatwayCode(),list1);

+ 3 - 0
huimv-env-input/src/main/java/com/huimv/env/input/service/IBaseFarmService.java

@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateTime;
 import com.huimv.env.input.entity.BaseFarm;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.huimv.env.input.entity.Gateway;
+import com.huimv.env.input.entity.vo.AlarmInfoVO;
 import com.huimv.env.input.entity.vo.DataInfoVO;
 import com.huimv.env.input.entity.vo.HeartInfoVo;
 
@@ -24,4 +25,6 @@ public interface IBaseFarmService extends IService<BaseFarm> {
     List<HeartInfoVo> trackImport(DateTime dateTime,String gateWay);
 
     List<DataInfoVO> dataImport(DateTime dateTime, String deviceCode);
+
+    List<AlarmInfoVO> alarmImport(DateTime dateTime, String deviceCode);
 }

+ 6 - 0
huimv-env-input/src/main/java/com/huimv/env/input/service/impl/BaseFarmServiceImpl.java

@@ -3,6 +3,7 @@ package com.huimv.env.input.service.impl;
 import cn.hutool.core.date.DateTime;
 import com.huimv.env.input.entity.BaseFarm;
 import com.huimv.env.input.entity.Gateway;
+import com.huimv.env.input.entity.vo.AlarmInfoVO;
 import com.huimv.env.input.entity.vo.DataInfoVO;
 import com.huimv.env.input.entity.vo.HeartInfoVo;
 import com.huimv.env.input.mapper.BaseFarmMapper;
@@ -44,4 +45,9 @@ public class BaseFarmServiceImpl extends ServiceImpl<BaseFarmMapper, BaseFarm> i
     public  List<DataInfoVO>  dataImport(DateTime dateTime, String deviceCode) {
         return  gatewayMapper.dataImport(dateTime,deviceCode);
     }
+
+    @Override
+    public List<AlarmInfoVO> alarmImport(DateTime dateTime, String deviceCode) {
+        return null;
+    }
 }

+ 10 - 10
huimv-env-input/src/main/java/com/huimv/env/input/timer/ElePostTimer.java

@@ -33,10 +33,10 @@ import java.util.List;
  * @Author : yuxuexuan
  * @Create : 2024/6/19 0019 14:49
  **/
-//@Configuration
-//@EnableScheduling
-@RestController
-@RequestMapping("/test")
+@Configuration
+@EnableScheduling
+//@RestController
+//@RequestMapping("/test")
 public class ElePostTimer {
 
     public static  final  String  BASE_URL = "https://south.bowaniot.com";
@@ -55,8 +55,8 @@ public class ElePostTimer {
     private IBasePigpenService basePigpenService;
 
 //    @Scheduled(cron = "0 0 0/1 * * ? ")
-//    @Scheduled(cron = "0 * * * * ? ")
-    @GetMapping("/test")
+    @Scheduled(cron = "0 * * * * ? ")
+//    @GetMapping("/test")
     public void  gateWayImport() throws IOException {
         System.out.println("----网关传输开始----");
         List<Gateway> gateways = baseFarmService.getUploadFarm();
@@ -77,8 +77,8 @@ public class ElePostTimer {
     }
 
 
-//    @Scheduled(cron = "5 * * * * ? ")
-    @GetMapping("/test1")
+    @Scheduled(cron = "5 * * * * ? ")
+//    @GetMapping("/test1")
     public void  trackImport() throws IOException {
         System.out.println("----心跳传输开始----");
         List<Gateway> gateways = baseFarmService.getUploadFarm();
@@ -91,8 +91,8 @@ public class ElePostTimer {
 
     }
 
-//    @Scheduled(cron = "10 * * * * ? ")
-    @GetMapping("/test2")
+    @Scheduled(cron = "10 * * * * ? ")
+//    @GetMapping("/test2")
     public void  dataImport() throws IOException {
         System.out.println("----流水传输开始----");
         List<Gateway> gateways = baseFarmService.getUploadFarm();