Browse Source

耳标报警修改

wwh 1 year ago
parent
commit
dbd01d10e7

+ 1 - 1
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/schedule/EartagTask.java

@@ -73,7 +73,7 @@ public class EartagTask {
      */
      */
 
 
     // 10分钟
     // 10分钟
-    @Scheduled(cron = "0 0/10 * * * ? ")
+    @Scheduled(cron = "0 0/1 * * * ? ")
     private void countEartagOnlineTimes() throws IOException, ParseException {
     private void countEartagOnlineTimes() throws IOException, ParseException {
         Timestamp nowTimestamp = new Timestamp(new java.util.Date().getTime());
         Timestamp nowTimestamp = new Timestamp(new java.util.Date().getTime());
 //        System.out.println("时间戳="+nowTimestamp);
 //        System.out.println("时间戳="+nowTimestamp);

+ 56 - 48
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/impl/EartagServiceImpl.java

@@ -44,38 +44,39 @@ public class EartagServiceImpl implements IEartagService {
     private com.huimv.eartag2.manage2.mapper.SysBaseConfigMapper SysBaseConfigMapper;
     private com.huimv.eartag2.manage2.mapper.SysBaseConfigMapper SysBaseConfigMapper;
     @Autowired
     @Autowired
     private EartagOnlineStatusMapper eartagOnlineStatusMapper;
     private EartagOnlineStatusMapper eartagOnlineStatusMapper;
+
     @Override
     @Override
     public void updateEartagLiveStatusAndCount() throws ParseException {
     public void updateEartagLiveStatusAndCount() throws ParseException {
         // {}
         // {}
-        List<BasePigpen> basePigpenList =  getUnitByPigpen();
-        System.out.println("basePigpenList.size="+basePigpenList.size());
-        if(basePigpenList.size() == 0){
+        List<BasePigpen> basePigpenList = getUnitByPigpen();
+        System.out.println("basePigpenList.size=" + basePigpenList.size());
+        if (basePigpenList.size() == 0) {
             System.out.println("单元数为0");
             System.out.println("单元数为0");
         }
         }
         Timestamp nowTimestamp = new Timestamp(new java.util.Date().getTime());
         Timestamp nowTimestamp = new Timestamp(new java.util.Date().getTime());
-        int offlineTimeDef = 30;
+        long offlineTimeDef = 30;
         Map confMap = new HashMap();
         Map confMap = new HashMap();
-        confMap.put("config_key","eartagOfflineTime");
+        confMap.put("config_key", "eartagOfflineTime");
         List<SysBaseConfig> configList = SysBaseConfigMapper.selectByMap(confMap);
         List<SysBaseConfig> configList = SysBaseConfigMapper.selectByMap(confMap);
         for (SysBaseConfig baseConfig : configList) {
         for (SysBaseConfig baseConfig : configList) {
-            if(configList.size()>0){
-                offlineTimeDef = Integer.parseInt(baseConfig.getConfigValue());
-                log.info("耳标离线时间="+offlineTimeDef);
-            }else{
+            if (configList.size() > 0) {
+                offlineTimeDef = Long.valueOf(baseConfig.getConfigValue());
+                log.info("耳标离线时间=" + offlineTimeDef);
+            } else {
                 log.error("耳标离线时间属性未配置.");
                 log.error("耳标离线时间属性未配置.");
             }
             }
             JSONArray offlineJa = new JSONArray();
             JSONArray offlineJa = new JSONArray();
             List countList = new ArrayList();
             List countList = new ArrayList();
             String rowId = baseConfig.getRowId();
             String rowId = baseConfig.getRowId();
-            String farmCode =  SysBaseConfigMapper.selectOne(new QueryWrapper<SysBaseConfig>().eq("config_key", "farmCode").eq("row_id", rowId)).getConfigValue();
-            for(BasePigpen basePigpen:basePigpenList){
+            String farmCode = SysBaseConfigMapper.selectOne(new QueryWrapper<SysBaseConfig>().eq("config_key", "farmCode").eq("row_id", rowId)).getConfigValue();
+            for (BasePigpen basePigpen : basePigpenList) {
 //            System.out.println("basePigpen="+basePigpen);
 //            System.out.println("basePigpen="+basePigpen);
 //                String farmCode = basePigpen.getFarmCode();
 //                String farmCode = basePigpen.getFarmCode();
 
 
                 Integer unitId = basePigpen.getId();
                 Integer unitId = basePigpen.getId();
                 String unitName = basePigpen.getPigpenName();
                 String unitName = basePigpen.getPigpenName();
                 String pigpenName = basePigpen.getPigpenName();
                 String pigpenName = basePigpen.getPigpenName();
-                Map countMap = new HashMap<String,Object>();
+                Map countMap = new HashMap<String, Object>();
                 countList.add(countMap);
                 countList.add(countMap);
                 int onlineTimes = 0;
                 int onlineTimes = 0;
                 int offlineTimes = 0;
                 int offlineTimes = 0;
@@ -84,27 +85,34 @@ public class EartagServiceImpl implements IEartagService {
                 // 用330110002测试
                 // 用330110002测试
 //            if(farmId.trim().equalsIgnoreCase("330110002")){
 //            if(farmId.trim().equalsIgnoreCase("330110002")){
                 // {读取相关耳标注册记录}
                 // {读取相关耳标注册记录}
-                List<EartagEartagRegister2> eartagEartagRegister2List = getEartagRegister(farmCode,unitId);
-                if(eartagEartagRegister2List.size() == 0){
+                List<EartagEartagRegister2> eartagEartagRegister2List = getEartagRegister(farmCode, unitId);
+                if (eartagEartagRegister2List.size() == 0) {
                     System.out.println("该单元没有耳标。");
                     System.out.println("该单元没有耳标。");
                 }
                 }
-                System.out.println("该单元没有耳标 eartagEartagRegister2List.size="+eartagEartagRegister2List.size());
-                for(EartagEartagRegister2 eartagEartagRegister2:eartagEartagRegister2List){
+                System.out.println("该单元没有耳标 eartagEartagRegister2List.size=" + eartagEartagRegister2List.size());
+                for (EartagEartagRegister2 eartagEartagRegister2 : eartagEartagRegister2List) {
                     Date lastTime = eartagEartagRegister2.getLastTime();
                     Date lastTime = eartagEartagRegister2.getLastTime();
-                    long offlineTimeDiff = nowTimestamp.getTime()-lastTime.getTime();
-                    if(offlineTimeDiff/(1000*60) >= offlineTimeDef){
-                        eartagEartagRegister2.setLiveStatus(0);
-                        offlineTimes++;
-                        if(offlineSb.length()>0){
-                            offlineSb.append(",");
-                        }if (eartagEartagRegister2.getLiveStatus() == 1){
+                    long offlineTimeDiff = nowTimestamp.getTime() - lastTime.getTime();
+                    long theMinutes = offlineTimeDiff / (1000 * 60);
+                    System.out.println("两个时间离线的时间差为:" + theMinutes);
+                    System.out.println("配置好的离线时间" + offlineTimeDef);
+                    if (offlineTimeDiff / (1000 * 60) >= offlineTimeDef) {
+
+                        System.out.println("-----开始了离线耳标的循环记录------");
+                        if (eartagEartagRegister2.getLiveStatus() == 1) {
+                            eartagEartagRegister2.setLiveStatus(0);
+                            offlineTimes++;
+                            if (offlineSb.length() > 0) {
+                                offlineSb.append(",");
+                            }
                             offlineSb.append(eartagEartagRegister2.getEarmark());
                             offlineSb.append(eartagEartagRegister2.getEarmark());
+
                         }
                         }
 
 
-                    }else{
+                    } else {
                         eartagEartagRegister2.setLiveStatus(1);
                         eartagEartagRegister2.setLiveStatus(1);
                         onlineTimes++;
                         onlineTimes++;
-                        if(onlineSb.length()>0){
+                        if (onlineSb.length() > 0) {
                             onlineSb.append(",");
                             onlineSb.append(",");
                         }
                         }
                         onlineSb.append(eartagEartagRegister2.getEarmark());
                         onlineSb.append(eartagEartagRegister2.getEarmark());
@@ -112,25 +120,25 @@ public class EartagServiceImpl implements IEartagService {
                     eartagEartagRegister2Mapper.updateById(eartagEartagRegister2);
                     eartagEartagRegister2Mapper.updateById(eartagEartagRegister2);
                 }
                 }
 //            }
 //            }
-                countMap.put("farmCode",farmCode);
-                countMap.put("unitId",unitId);
-                countMap.put("unitName",unitName);
-                countMap.put("total",onlineTimes+offlineTimes);
-                countMap.put("online",onlineTimes);
-                countMap.put("offline",offlineTimes);
-                countMap.put("onlineEarmark",onlineSb.toString());
-                countMap.put("offlineEarmark",offlineSb.toString());
+                countMap.put("farmCode", farmCode);
+                countMap.put("unitId", unitId);
+                countMap.put("unitName", unitName);
+                countMap.put("total", onlineTimes + offlineTimes);
+                countMap.put("online", onlineTimes);
+                countMap.put("offline", offlineTimes);
+                countMap.put("onlineEarmark", onlineSb.toString());
+                countMap.put("offlineEarmark", offlineSb.toString());
 
 
                 //耳标离线报警
                 //耳标离线报警
-                if(offlineSb.length()>0){
+                if (offlineSb.length() > 0) {
                     JSONObject offlineJo = new JSONObject();
                     JSONObject offlineJo = new JSONObject();
+                    offlineJo.put("pigpen", pigpenName + unitName);
+                    offlineJo.put("earmark", offlineSb.toString());
+                    offlineJo.put("farmCode", farmCode);
                     offlineJa.add(offlineJo);
                     offlineJa.add(offlineJo);
-                    offlineJo.put("pigpen",pigpenName+unitName);
-                    offlineJo.put("earmark",offlineSb.toString());
-                    offlineJo.put("farmCode",farmCode);
                 }
                 }
             }
             }
-            for(int a=0;a<countList.size();a++){
+            for (int a = 0; a < countList.size(); a++) {
                 Map countMap = (Map) countList.get(a);
                 Map countMap = (Map) countList.get(a);
                 EartagOnlineStatus eartagOnlineStatus = new EartagOnlineStatus();
                 EartagOnlineStatus eartagOnlineStatus = new EartagOnlineStatus();
                 eartagOnlineStatus.setFarmId(countMap.get("farmCode").toString());
                 eartagOnlineStatus.setFarmId(countMap.get("farmCode").toString());
@@ -266,15 +274,15 @@ public class EartagServiceImpl implements IEartagService {
         int offlineTimes = 0;
         int offlineTimes = 0;
         String farmCode = "";
         String farmCode = "";
         //保存警报信息
         //保存警报信息
-        for(int a=0;a<offlineJa.size();a++){
+        for (int a = 0; a < offlineJa.size(); a++) {
             JSONObject offlineJo = offlineJa.getJSONObject(a);
             JSONObject offlineJo = offlineJa.getJSONObject(a);
             String pigpen = offlineJo.getString("pigpen");
             String pigpen = offlineJo.getString("pigpen");
             String earmark = offlineJo.getString("earmark");
             String earmark = offlineJo.getString("earmark");
             farmCode = offlineJo.getString("farmCode");
             farmCode = offlineJo.getString("farmCode");
             String[] earmarkArray = earmark.split(",");
             String[] earmarkArray = earmark.split(",");
             offlineTimes += earmarkArray.length;
             offlineTimes += earmarkArray.length;
-            for(int b=0;b<earmarkArray.length;b++){
-                String alarmContent = "离线警报:"+pigpen+"耳标号["+earmarkArray[b]+"]已离线";
+            for (int b = 0; b < earmarkArray.length; b++) {
+                String alarmContent = "离线警报:" + pigpen + "耳标号[" + earmarkArray[b] + "]已离线";
                 EartagAbnormalAlarmEntity newEartagAbnormalAlarmEntity = new EartagAbnormalAlarmEntity();
                 EartagAbnormalAlarmEntity newEartagAbnormalAlarmEntity = new EartagAbnormalAlarmEntity();
                 newEartagAbnormalAlarmEntity.setFarmCode(farmCode);
                 newEartagAbnormalAlarmEntity.setFarmCode(farmCode);
                 newEartagAbnormalAlarmEntity.setAddTime(nowTimestamp);
                 newEartagAbnormalAlarmEntity.setAddTime(nowTimestamp);
@@ -287,7 +295,7 @@ public class EartagServiceImpl implements IEartagService {
             }
             }
         }
         }
         //保存耳标警报次数
         //保存耳标警报次数
-        saveEartagOfflineCount(farmCode,offlineTimes,todayDate,nowTimestamp);
+        saveEartagOfflineCount(farmCode, offlineTimes, todayDate, nowTimestamp);
     }
     }
 
 
     //保存耳标警报次数
     //保存耳标警报次数
@@ -297,11 +305,11 @@ public class EartagServiceImpl implements IEartagService {
         eartagAbnormalCountEntity.setAddDate(todayDate);
         eartagAbnormalCountEntity.setAddDate(todayDate);
         Example<EartagAbnormalCountEntity> example = Example.of(eartagAbnormalCountEntity);
         Example<EartagAbnormalCountEntity> example = Example.of(eartagAbnormalCountEntity);
         Optional<EartagAbnormalCountEntity> optional = eartagAbnormalCountEntityRepo.findOne(example);
         Optional<EartagAbnormalCountEntity> optional = eartagAbnormalCountEntityRepo.findOne(example);
-        if(!optional.isPresent()){
+        if (!optional.isPresent()) {
             eartagAbnormalCountEntity.setEartagStatusCount(offlineTimes);
             eartagAbnormalCountEntity.setEartagStatusCount(offlineTimes);
             eartagAbnormalCountEntity.setEartagStatusUpateTime(nowTimestamp);
             eartagAbnormalCountEntity.setEartagStatusUpateTime(nowTimestamp);
             eartagAbnormalCountEntityRepo.saveAndFlush(eartagAbnormalCountEntity);
             eartagAbnormalCountEntityRepo.saveAndFlush(eartagAbnormalCountEntity);
-        }else{
+        } else {
             EartagAbnormalCountEntity queryEartagAbnormalCountEntity = optional.get();
             EartagAbnormalCountEntity queryEartagAbnormalCountEntity = optional.get();
             queryEartagAbnormalCountEntity.setEartagStatusCount(offlineTimes);
             queryEartagAbnormalCountEntity.setEartagStatusCount(offlineTimes);
             queryEartagAbnormalCountEntity.setEartagStatusUpateTime(nowTimestamp);
             queryEartagAbnormalCountEntity.setEartagStatusUpateTime(nowTimestamp);
@@ -311,14 +319,14 @@ public class EartagServiceImpl implements IEartagService {
 
 
     private List<EartagEartagRegister2> getEartagRegister(String farmId, Integer unitId) {
     private List<EartagEartagRegister2> getEartagRegister(String farmId, Integer unitId) {
         HashMap paramsMap = new HashMap();
         HashMap paramsMap = new HashMap();
-        paramsMap.put("farm_id",farmId);
-        paramsMap.put("unit_id",unitId);
+        paramsMap.put("farm_id", farmId);
+        paramsMap.put("unit_id", unitId);
         return eartagEartagRegister2Mapper.selectByMap(paramsMap);
         return eartagEartagRegister2Mapper.selectByMap(paramsMap);
     }
     }
 
 
-    public List<BasePigpen> getUnitByPigpen(){
+    public List<BasePigpen> getUnitByPigpen() {
         QueryWrapper<BasePigpen> queryWrapper = new QueryWrapper<>();
         QueryWrapper<BasePigpen> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("f_type","2");
+        queryWrapper.eq("f_type", "2");
         return basePigpenMapper.selectList(queryWrapper);
         return basePigpenMapper.selectList(queryWrapper);
     }
     }