Browse Source

修正升压站报警异常

shilin 1 year ago
parent
commit
6e28c6c598

+ 60 - 5
alarm-custom/src/main/java/com/gyee/alarm/service/AlarmCustomService.java

@@ -88,15 +88,31 @@ public class AlarmCustomService {
 
         List<ProBasicEquipmentPoint> wtPointList = CacheContext.wtPointList;// 设备测点集合
 
+        List<ProBasicEquipmentPoint> fdPointList =new ArrayList<>();
+        List<ProBasicEquipmentPoint> gdPointList =new ArrayList<>();
+        if(!wtPointList.isEmpty())
+        {
+            for(ProBasicEquipmentPoint tag:wtPointList)
+            {
+                if(tag.getNemCode().startsWith("GF"))
+                {
+                    gdPointList.add(tag);
+                }else
+                {
+                    fdPointList.add(tag);
+                }
+            }
+        }
+
         List<ProBasicPowerstationPoint> wsPointList = CacheContext.wsPointList; //升压站测点集合
 
         //读取设备测点
         List<ProBasicEquipmentPoint> wtpols = new ArrayList<>();
 
-        int wtlistNumber = wtPointList.size() / readCount;
+        int wtlistNumber = fdPointList.size() / readCount;
 //        int wslistNumber = wsPointList.size() / readCount;
 
-            if (wtPointList.size() % readCount != 0) {
+            if (fdPointList.size() % readCount != 0) {
                 wtlistNumber=wtlistNumber+1;
             }
 
@@ -107,11 +123,11 @@ public class AlarmCustomService {
 
         int time = 0;
         StringBuilder str = new StringBuilder();
-        str.append("设备读取总数:").append(wtPointList.size()).append(",线程数:").append(wtlistNumber ).append(",分块大小:").append(readCount);
+        str.append("设备读取总数:").append(fdPointList.size()).append(",线程数:").append(wtlistNumber ).append(",分块大小:").append(readCount);
         log.info(String.valueOf(str));
 
-        for (int i = 0; i < wtPointList.size(); i++) {
-            wtpols.add(wtPointList.get(i));
+        for (int i = 0; i < fdPointList.size(); i++) {
+            wtpols.add(fdPointList.get(i));
             if (i != 0 && (i) % readCount == 0) {
 
                 time++;
@@ -129,8 +145,47 @@ public class AlarmCustomService {
             str.append("数据读取").append(time).append("线程");
             new Thread(new ReadWtDataThread(executor, edosUtil, readRows, wtpols, interval, str, countDownLatch)).start();
         }
+/***************************************************************************************************************************/
+
+        //读取设备测点
+        wtpols = new ArrayList<>();
+
+        wtlistNumber = gdPointList.size() / readCount;
+//        int wslistNumber = wsPointList.size() / readCount;
+
+        if (gdPointList.size() % readCount != 0) {
+            wtlistNumber=wtlistNumber+1;
+        }
+
+//            if (wsPointList.size() % readCount != 0) {
+//                wslistNumber =  wslistNumber+1;
+//            }
+         countDownLatch = new CountDownLatch(wtlistNumber );
+
+        time = 0;
+        str = new StringBuilder();
+        str.append("设备读取总数:").append(fdPointList.size()).append(",线程数:").append(wtlistNumber ).append(",分块大小:").append(readCount);
+        log.info(String.valueOf(str));
+
+        for (int i = 0; i < gdPointList.size(); i++) {
+            wtpols.add(gdPointList.get(i));
+            if (i != 0 && (i) % readCount == 0) {
+
+                time++;
+                str.setLength(0);
+                str.append("数据读取").append(time).append("线程");
+                new Thread(new ReadWtDataThread(executor, edosUtil, readRows, wtpols, interval, str, countDownLatch)).start();
+                wtpols = new ArrayList<>();
+            }
+        }
 
+        if (!wtpols.isEmpty()) {
 
+            time++;
+            str.setLength(0);
+            str.append("数据读取").append(time).append("线程");
+            new Thread(new ReadWtDataThread(executor, edosUtil, readRows, wtpols, interval, str, countDownLatch)).start();
+        }
 /***************************************************************************************************************************/
 
         //读取升压站测点

+ 6 - 6
alarm-custom/src/main/java/com/gyee/alarm/task/thread/AlarmThreadPool.java

@@ -165,7 +165,7 @@ public class AlarmThreadPool implements Callable<Integer>, Serializable {
                 if (obj instanceof Boolean) {
 
 
-                    AtomicBoolean endStatus = new AtomicBoolean(true);
+                    boolean endStatus = true;
 
 					if(map.containsKey(ar.getId().toLowerCase()))
 					{
@@ -173,18 +173,18 @@ public class AlarmThreadPool implements Callable<Integer>, Serializable {
 
                         if(StringUtils.notEmp(vo.getEndts()))
                         {
-                            endStatus.getAndSet(true);
+                            endStatus=true;
                         }else
                         {
-                            endStatus.getAndSet(false);
+                            endStatus=false;
                         }
 					}else
                     {
-                        endStatus.getAndSet(true);
+                        endStatus = true;
                     }
                     if (true == (boolean) obj) {
 
-						if(endStatus.get())
+						if(endStatus)
 						{
 							AlarmTag po = new AlarmTag();
 							po.setId(ar.getId());
@@ -199,7 +199,7 @@ public class AlarmThreadPool implements Callable<Integer>, Serializable {
 
                     } else {
 
-						if(!endStatus.get())
+						if(!endStatus)
 						{
 							AlarmTag po = new AlarmTag();
 							po.setId(ar.getId());

+ 7 - 7
alarm-custom/src/main/resources/application-jn.yml

@@ -134,8 +134,8 @@ logging:
 
 #db url
 db:
-  url1: http://10.81.3.154:8011/ts
-  url2: http://10.81.3.154:8012/ts
+  url1: http://10.81.3.160:8011/ts
+  url2: http://10.81.3.160:8012/ts
 
 
 #参与计算的场站
@@ -168,12 +168,12 @@ frequency:
   #切入切出
   cutinandout: 1
 urls:
-#  alarm-service: http://10.81.3.154:6014
-  alarm-service: http://127.0.0.1:6014
+  alarm-service: http://10.81.3.154:6014
+#  alarm-service: http://127.0.0.1:6014
 
-task-count: 3
-read-count: 2
-interval: 3
+task-count: 5000
+read-count: 300000
+interval: 1
 
 #WT("wt_alarms", "设备报警超级表"),
 #BT("bt_alarms", "升压站报警超级表"),

+ 14 - 0
alarm-scanner/src/main/java/com/gyee/alarm/model/vo/AlarmTag.java

@@ -1,10 +1,15 @@
 package com.gyee.alarm.model.vo;
 
+import com.gyee.alarm.init.CacheContext;
 import com.gyee.common.model.PointData;
 import com.gyee.common.model.StringUtils;
 import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @Data
+@Slf4j
 public class AlarmTag {
 
 
@@ -112,6 +117,11 @@ public class AlarmTag {
         endts= pointData.getPointTime();
         val=0.0;
 
+        if(StringUtils.notEmp(wpId) && wpId.contains("_SBS"))
+        {
+            log.info("tagId_"+tagId+"_wpId_"+wpId+"_ts_"+ts+"_val_"+pointData.getPointValueInDouble());
+        }
+
         if(triggerType==-1)
         {
             val=1.0;
@@ -169,6 +179,10 @@ public class AlarmTag {
         endts= pointData.getPointTime();
         val=0.0;
 
+//        if(StringUtils.notEmp(wpId) && wpId.contains("_SBS"))
+//        {
+//            log.info("tagId_"+tagId+"_wpId_"+wpId+"_ts_"+ts+"_val_"+pointData.getPointValueInDouble());
+//        }
         if(triggerType==-1)
         {
             val=1.0;

+ 4 - 4
alarm-scanner/src/main/java/com/gyee/alarm/service/AlarmScannerService.java

@@ -77,12 +77,12 @@ public class AlarmScannerService {
                     {
                         if(StringUtils.notEmp(tag.getTagId()) )
                         {
-                            if(tag.getTagId().startsWith("FD"))
-                            {
-                                alarmTags.add(tag);
-                            }else   if(tag.getTagId().startsWith("GF"))
+                            if(tag.getTagId().startsWith("GF"))
                             {
                                 alarmInTags.add(tag);
+                            }else
+                            {
+                                alarmTags.add(tag);
                             }
                         }
                     }

+ 16 - 9
alarm-scanner/src/main/resources/application-bt.yml

@@ -1,6 +1,6 @@
 
 server:
-  port: 6011
+  port: 6016
   servlet:
     context-path: /
 
@@ -134,13 +134,13 @@ logging:
 
 #db url
 db:
-  url1: http://10.81.3.154:8011/ts
-  url2: http://10.81.3.154:8012/ts
+  url1: http://10.81.3.160:8011/ts
+  url2: http://10.81.3.160:8012/ts
 
 
 #参与计算的场站
 #runWindpowerstation: SXJ_KGDL_GJY_FDC_STA
-runWindpowerstation: SXJ_KGDL_NJL_FDC_STA,SXJ_KGDL_YF_FDC_STA,SXJ_KGDL_YLZ_FDC_STA,SXJ_KGDL_XWT_FDC_STA,SXJ_KGDL_PTZ_FDC_STA,SXJ_KGDL_GJY_FDC_STA,SXJ_KGDL_BHB_FDC_STA,SXJ_KGDL_HSM_FDC_STA,SXJ_KGDL_YTY_FDC_STA,SXJ_KGDL_BHB3_FDC_STA,SXJ_KGDL_SY_GDC_STA,SXJ_KGDL_PDL_FDC_STA,SXJ_KGDL_ZK_FDC_STA,SXJ_KGDL_JR_GDC_STA,SXJ_KGDL_FS_GDC_STA,SXJ_KGDL_HR_GDC_STA,SXJ_KGDL_YY_GDC_STA,SXJ_KGDL_PL_GDC_STA,SXJ_KGDL_TL_GDC_STA
+runWindpowerstation: SXJ_KGDL_DJY_FDC_STA,SXJ_KGDL_NJL_FDC_STA,SXJ_KGDL_YF_FDC_STA,SXJ_KGDL_YLZ_FDC_STA,SXJ_KGDL_XWT_FDC_STA,SXJ_KGDL_PTZ_FDC_STA,SXJ_KGDL_GJY_FDC_STA,SXJ_KGDL_BHB_FDC_STA,SXJ_KGDL_HSM_FDC_STA,SXJ_KGDL_YTY_FDC_STA,SXJ_KGDL_BHB3_FDC_STA,SXJ_KGDL_SY_GDC_STA,SXJ_KGDL_PDL_FDC_STA,SXJ_KGDL_ZK_FDC_STA,SXJ_KGDL_JR_GDC_STA,SXJ_KGDL_FS_GDC_STA,SXJ_KGDL_HR_GDC_STA,SXJ_KGDL_YY_GDC_STA,SXJ_KGDL_PL_GDC_STA,SXJ_KGDL_TL_GDC_STA
 #计算状态用ai或者di
 clauStatus:
   ai: GJY03_GC,YLZ01_GC,PTZ02_GC   #配置期次
@@ -168,11 +168,10 @@ frequency:
   #切入切出
   cutinandout: 1
 urls:
-#  alarm-service: http://10.81.3.154:6014
-  alarm-service: http://127.0.0.1:6014
+  alarm-service: http://10.81.3.154:6014
 
-#分隔10个线程
-task-count: 10
+#每个线程多少个点
+task-count: 10000
 #任务休眠间隔
 interval: 1
 
@@ -180,10 +179,18 @@ interval: 1
 #BT("bt_alarms", "升压站报警超级表"),
 #CT("custom_alarms", "自定义报警超级表");
 alarmType: bt_alarms
-read-rows: 1000
+read-rows: 3000
 
 
+#是否对自定义报警加密
+rule_encryption: true
+#加密key
+rule_encryption_key: gyee-alarm123456
 
+#是否需要权限控制
+rule_authority: true
+#首页展示数据数量
+home_pagep_size: 50
 
 
 

+ 1 - 1
alarm-scanner/src/main/resources/application-in.yml

@@ -178,7 +178,7 @@ interval: 1
 #WT("wt_alarms", "设备报警超级表"),
 #BT("bt_alarms", "升压站报警超级表"),
 #CT("custom_alarms", "自定义报警超级表");
-alarmType: wt_alarms
+alarmType: ln_alarms
 read-rows: 1000
 
 

+ 1 - 1
alarm-scanner/src/main/resources/application.yml

@@ -1,3 +1,3 @@
 spring:
   profiles:
-    active: wt
+    active: bt

+ 1 - 1
alarm-service/src/main/java/com/gyee/alarm/controller/AlarmController.java

@@ -63,7 +63,7 @@ public class AlarmController {
     public List<AlarmTag> findTagsByIn()
 
     {
-        List<AlarmTag> ls = alarmInService.findTags(AlarmSuperTalbeType.WT.getCode());
+        List<AlarmTag> ls = alarmInService.findTags();
         return ls;
     }
 

+ 13 - 0
alarm-service/src/main/java/com/gyee/alarm/init/CacheContext.java

@@ -184,6 +184,7 @@ public class CacheContext implements CommandLineRunner {
     public static Map<String, List<ProBasicEquipment>> rgwtlsmap = new HashMap<>();
     public static Map<String, List<ProBasicEquipment>> cmwtlsmap = new HashMap<>();
     public static Map<String,List<ProEconAlarmConfiguration>> wtAlarmMap=new HashMap<>();
+    public static Map<String,List<ProEconAlarmConfiguration>> inAlarmMap=new HashMap<>();
 
     public static List<AlarmVo> alarmWtList=new ArrayList<>();
 
@@ -675,7 +676,19 @@ public class CacheContext implements CommandLineRunner {
                 }
                 else if (alarm.getAlarmType().equals(AlarmTypeValue.IN.getCode())) {
                     inalarmls.add(alarm);
+                    StringBuilder sb=new StringBuilder();
+                    sb.append(alarm.getStationId()).append(alarm.getModelId());
 
+                    if(inAlarmMap.containsKey(String.valueOf(sb)))
+                    {
+                        List<ProEconAlarmConfiguration> ls=inAlarmMap.get(String.valueOf(sb));
+                        ls.add(alarm);
+                    }else
+                    {
+                        List<ProEconAlarmConfiguration> ls=new ArrayList<>();
+                        ls.add(alarm);
+                        inAlarmMap.put(String.valueOf(sb),ls);
+                    }
                 }
             }
         }

+ 71 - 163
alarm-service/src/main/java/com/gyee/alarm/service/AlarmInService.java

@@ -11,6 +11,8 @@ import com.gyee.alarm.util.realtimesource.IEdosUtil;
 import com.gyee.alarm.websocket.PushParams;
 import com.gyee.alarm.websocket.WebSocket;
 import com.gyee.common.model.PointData;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
@@ -31,16 +33,21 @@ public class AlarmInService {
     private IProEconAlarmInfoService proEconAlarmInfoService;
     @Value("${initialcode}")
     private String initialcode;
+
     @Value("${pushinterval}")
     private Double pushinterval;
     @Resource
     private WebSocket webSocket;
     @Resource
     private PushDataSevice pushDataSevice;
+
     @Value("${read-rows}")
     private Integer readRows;
+
     @Resource
     private IEdosUtil edosUtil;
+
+    private static Logger logger = LoggerFactory.getLogger(AlarmWtService.class);
     public void dropSuperTable()
     {
         alarmTsService.dropSuperTable(AlarmSuperTalbeType.WT.getCode());
@@ -58,34 +65,7 @@ public class AlarmInService {
         List<AlarmVo> alarmVoList=CacheContext.alarmInList;
         List<AlarmTag>  alarmTags=new ArrayList<>();
 
-//        List<String>  ls=new ArrayList<>();
-//        List<PointData> values=new ArrayList<>();
-//        Map<String,PointData> valuemap=new HashMap<>();
-//
-//        int times=0;
-//        for(AlarmVo vo:alarmVoList)
-//        {
-//
-//            ls.add(vo.getTagid());
-//            times++;
-//            if(times==readRows)
-//            {
-//                List<PointData> templs=edosUtil.getRealData(ls);
-//                values.addAll(templs);
-//                ls=new ArrayList<>();
-//                times=0;
-//            }
-//        }
-//        if(!ls.isEmpty())
-//        {
-//            List<PointData> templs=edosUtil.getRealData(ls);
-//            values.addAll(templs);
-//        }
-//
-//        for(PointData po:values)
-//        {
-//            valuemap.put(po.getEdnaId(),po);
-//        }
+
         if(!alarmVoList.isEmpty())
         {
             for(AlarmVo vo: alarmVoList)
@@ -107,20 +87,7 @@ public class AlarmInService {
                         vo.getName(),
                         vo.getNemCode(),vo.getFaultCause(),vo.getResolvent(),vo.getFaultType(),vo.getAname());
 
-//                AlarmTag po=new AlarmTag();
-//                po.setId(vo.getTbName());
-//                if(valuemap.containsKey(vo.getTagid()))
-//                {
-//                    PointData pointData=valuemap.get(vo.getTagid());
-//                    po.setVal(pointData.getPointValueInDouble());
-//                    po.setOval(pointData.getPointValueInDouble());
-//                }
-//                po.setTriggerType(vo.getTriggertype());
-//                po.setTagId(vo.getTagid());
-//                po.setRank(vo.getRank());
-//                po.setTimeLong(0.0);
-//                po.setTs(new Date().getTime());
-//                alarmTags.add(po);
+
             }
         }
 
@@ -132,19 +99,28 @@ public class AlarmInService {
     public List<AlarmVo> initalAlarmVo() throws Exception {
 
         List<AlarmVo> alarmVoList=new ArrayList<>();
-        Map<String, List<ProEconAlarmConfiguration>> wtAlarmMap = CacheContext.wtAlarmMap;
+        Map<String, List<ProEconAlarmConfiguration>> wtAlarmMap = CacheContext.inAlarmMap;
         Map<String, Map<String, ProBasicEquipmentPoint>> wtpAimap = CacheContext.wtpAimap;
         for (ProBasicEquipment wt : CacheContext.wtls) {
 
+            if(wt.getId().contains("_F_"))
+            {
+                continue;
+            }
+
+
             if (wtpAimap.containsKey(wt.getId())) {
                 Map<String, ProBasicEquipmentPoint> pointMap = wtpAimap.get(wt.getId());
 
                 StringBuilder sb = new StringBuilder();
                 sb.append(wt.getWindpowerstationId() + wt.getModelId());
+
+
                 if (StringUtils.notEmp(pointMap) && wtAlarmMap.containsKey(String.valueOf(sb))) {
                     List<ProEconAlarmConfiguration> alarmls = wtAlarmMap.get(String.valueOf(sb));
 
                     if (!alarmls.isEmpty()) {
+//                        System.out.println(wt.getId());
                         for (ProEconAlarmConfiguration alarm : alarmls) {
                             if (pointMap.containsKey(alarm.getUniformCode())) {
                                 ProBasicEquipmentPoint equipmentPoint = pointMap.get(alarm.getUniformCode());
@@ -154,7 +130,11 @@ public class AlarmInService {
                                         !equipmentPoint.getNemCode().equals(initialcode) &&
                                         alarm.getAlarmType().equals(AlarmTypeValue.IN.getCode())
                                 )
+
+
                                 {
+
+//                                    System.out.println("ok");
                                     AlarmVo vo=new AlarmVo();
                                     StringBuilder tbName = new StringBuilder();
                                     tbName.append(wt.getId()).append("_").append(alarm.getId());
@@ -195,71 +175,23 @@ public class AlarmInService {
                                     vo.setTriggertype(alarm.getTriggerType());
                                     vo.setUniformcode(alarm.getUniformCode());
                                     vo.setSuperTableName(AlarmSuperTalbeType.WT.getCode());
+                                    vo.setFaultType(alarm.getDeviceId());
+                                    vo.setAname(alarm.getSuffix());
 //                                    PointData temp=edosUtil.getRealData(equipmentPoint.getNemCode());
 //                                    vo.setVal((int)temp.getPointValueInDouble());
 //                                    vo.setOval((int)temp.getPointValueInDouble());
 
                                     vo.setVal(null);
                                     vo.setOval(null);
-                                    vo.setFaultType(alarm.getDeviceId());
-                                    vo.setAname(alarm.getSuffix());
                                     vo.setName(alarm.getName());
                                     vo.setNemCode(alarm.getNemCode());
                                     vo.setFaultCause(alarm.getFaultCause());
                                     vo.setResolvent(alarm.getResolvent());
-
                                     alarmVoList.add(vo);
                                 }
 
                             }
-//                            else {
-//
-//                                //临时创建表
-//                                AlarmVo vo=new AlarmVo();
-//                                StringBuilder tbName = new StringBuilder();
-//                                tbName.append(wt.getId()).append("_").append(alarm.getId());
-//                                vo.setTbName(String.valueOf(tbName));
-//                                vo.setAlarmid(alarm.getId());
-//                                vo.setTagid("GF-TZ-SYZ.038200G9911SYB99GI017DB0111PA99RAW01");
-//                                vo.setAlarmtype(alarm.getAlarmType());
-//                                vo.setCharacteristic(alarm.getCharacteristic());
-//                                vo.setComponents(alarm.getComponents());
-//                                vo.setDescription(alarm.getDescription());
-//                                vo.setDeviceid(wt.getId());
-//                                vo.setDevicename(wt.getName());
-//                                vo.setDevicetype(alarm.getDeviceType());
-//                                vo.setEnabled(alarm.getEnable());
-//                                vo.setLineid(wt.getLineId());
-//                                if(CacheContext.lnmap.containsKey(wt.getLineId()))
-//                                {
-//                                    ProBasicLine ln=CacheContext.lnmap.get(wt.getLineId());
-//                                    vo.setLinename(ln.getName());
-//                                }
-//                                vo.setModelId(wt.getModelId());
-//                                vo.setProjectid(wt.getProjectId());
-//                                if(CacheContext.pjmap.containsKey(wt.getProjectId()))
-//                                {
-//                                    ProBasicProject pj=CacheContext.pjmap.get(wt.getProjectId());
-//                                    vo.setProjectname(pj.getName());
-//                                }
-//                                vo.setRank(alarm.getRank());
-//                                vo.setResettable(alarm.getResetTable());
-//                                vo.setStationid(wt.getWindpowerstationId());
-//                                if(CacheContext.wpmap.containsKey(wt.getWindpowerstationId()))
-//                                {
-//                                    ProBasicPowerstation wp=CacheContext.wpmap.get(wt.getWindpowerstationId());
-//                                    vo.setStationname(wp.getName());
-//                                }
-//                                vo.setSubcomponents(alarm.getSubcomponents());
-//                                vo.setSuffix(alarm.getSuffix());
-//                                vo.setTriggertype(alarm.getTriggerType());
-//                                vo.setUniformcode(alarm.getUniformCode());
-//                                vo.setSuperTableName(AlarmSuperTalbeType.WT.getCode());
-//                                vo.setVal(0);
-//                                vo.setOval(0);
-//                                alarmVoList.add(vo);
-//
-//                            }
+
                         }
                     }
                 }
@@ -272,27 +204,25 @@ public class AlarmInService {
 
 
 
-    public List<AlarmTag> findTags(String stbaleName)
+    public List<AlarmTag> findTags()
     {
+ 
         List<AlarmTag> ls=new ArrayList<>();
-        if(StringUtils.notEmp(stbaleName))
+        if(!CacheContext.alarmInList.isEmpty())
         {
-           // List<AlarmVo> vos= alarmTsService.findTags(stbaleName);
-            List<AlarmVo> vos= CacheContext.alarmWtList;
-            if(!vos.isEmpty())
+            for(AlarmVo vo:CacheContext.alarmInList)
             {
-                for(AlarmVo vo:vos)
-                {
-                    AlarmTag po=new AlarmTag();
-                    po.setId(vo.getTbName());
-                    po.setOval(null);
-                    po.setTriggerType(vo.getTriggertype());
-                    po.setTagId(vo.getTagid());
-                    po.setVal(null);
-                    po.setRank(vo.getRank());
-                    po.setAlarmType(vo.getAlarmtype());
-                    ls.add(po);
-                }
+                AlarmTag po=new AlarmTag();
+                po.setId(vo.getTbName());
+                po.setOval(null);
+                po.setTriggerType(vo.getTriggertype());
+                po.setTagId(vo.getTagid());
+                po.setVal(null);
+                po.setRank(vo.getRank());
+                po.setAlarmType(vo.getAlarmtype());
+                po.setUniformCode(vo.getUniformcode());
+                po.setWpId(vo.getStationid());
+                ls.add(po);
             }
         }
         return ls;
@@ -303,15 +233,19 @@ public class AlarmInService {
 
         if(StringUtils.notEmp(ls) && !ls.isEmpty()) {
 
-            alarmTsService.insertList(ls);
+            for (AlarmTag alarm : ls) {
+                alarm.setConfirmed(false);
 
+            }
+            alarmTsService.insertList(ls);
             Map<String,ProEconAlarmInfo> tempmap=new HashMap<>();
+
             if (StringUtils.notEmp(ls) && !ls.isEmpty()) {
 
                 List<ProEconAlarmInfo> valuels = new ArrayList<>();
                 for (AlarmTag alarm : ls) {
-                    if (CacheContext.alarmWtMap.containsKey(alarm.getId())) {
-                        AlarmVo vo = CacheContext.alarmWtMap.get(alarm.getId());
+                    if (CacheContext.alarmInMap.containsKey(alarm.getId())) {
+                        AlarmVo vo = CacheContext.alarmInMap.get(alarm.getId());
                         ProEconAlarmInfo po = new ProEconAlarmInfo();
                         po.setTbname(vo.getTbName());
                         po.setLastUpdateTime(new Date(alarm.getTs()));
@@ -354,17 +288,18 @@ public class AlarmInService {
                         alarm.setIsClose(false);
                         alarm.setDeviceId(vo.getDeviceid());
                         alarm.setAlarmId(vo.getAlarmid());
+
                         if(StringUtils.notEmp(vo.getDeviceid()) && CacheContext.wtmap.containsKey(vo.getDeviceid()))
                         {
                             alarm.setCode(CacheContext.wtmap.get(vo.getDeviceid()).getNemCode());
                         }
+
                         if(CacheContext.wpmap.containsKey(vo.getStationid()))
                         {
                             alarm.setWpName(CacheContext.wpmap.get(vo.getStationid()).getName());
                         }
 
                         alarm.setWpId(vo.getStationid());
-
                         pushDataSevice.pushWtData(alarm);
 
 
@@ -389,7 +324,7 @@ public class AlarmInService {
                 List<ProEconAlarmInfo> templs = new ArrayList<>();
                 for (ProEconAlarmInfo vo : valuels) {
                     templs.add(vo);
-                    if (templs.size() == 100) {
+                    if (templs.size() == 500) {
                         proEconAlarmInfoService.saveBatch(templs);
                         templs = new ArrayList<>();
                     }
@@ -398,12 +333,14 @@ public class AlarmInService {
                 if (!templs.isEmpty()) {
                     proEconAlarmInfoService.saveBatch(templs);
                 }
+
+
             }
         }
     }
 
 
-    public synchronized void updateAlarms(List<AlarmTag> ls) throws EncodeException, IOException {
+    public  synchronized void updateAlarms(List<AlarmTag> ls) throws EncodeException, IOException {
 
         if (StringUtils.notEmp(ls) && !ls.isEmpty()) {
 
@@ -412,7 +349,7 @@ public class AlarmInService {
             for (AlarmTag alarm : ls) {
                 if (CacheContext.alarmInMap.containsKey(alarm.getId())) {
                     AlarmVo vo = CacheContext.alarmInMap.get(alarm.getId());
-                    if(vo.getAlarmtype().equals(AlarmTypeValue.WT.getCode())  )
+                    if(vo.getAlarmtype().equals(AlarmTypeValue.IN.getCode())  )
                     {
                         sb.append("'").append(alarm.getId().toLowerCase()).append("',");
                     }
@@ -439,10 +376,13 @@ public class AlarmInService {
             }
             List<AlarmTag> alarmTagls=new ArrayList<>();
             for (AlarmTag alarm : ls) {
+
+
                 if(map.containsKey(alarm.getId().toLowerCase()))
                 {
                     AlarmSimpleVo tag=map.get(alarm.getId().toLowerCase());
-                    if(StringUtils.notEmp(tag.getTs()))
+
+                    if(null !=tag.getTs())
                     {
                         alarm.setTs(tag.getTs());
                         Date begin = new Date(alarm.getEndts());
@@ -454,6 +394,8 @@ public class AlarmInService {
                         alarm.setSuperTalbe(AlarmSuperTalbeType.WT.getCode());
 
                         alarmTagls.add(alarm);
+
+
                     }
                 }
             }
@@ -461,14 +403,15 @@ public class AlarmInService {
             if (StringUtils.notEmp(alarmTagls) && !alarmTagls.isEmpty()) {
                 alarmTsService.insertList(alarmTagls);
             }
-            Map<String,ProEconAlarmInfo> tempmap=new HashMap<>();
 
+            Map<String,ProEconAlarmInfo> tempmap=new HashMap<>();
             if (StringUtils.notEmp(alarmTagls) && !alarmTagls.isEmpty()) {
 
                 List<ProEconAlarmInfo> valuels = new ArrayList<>();
                 for (AlarmTag alarm : alarmTagls) {
-                    if (CacheContext.alarmWtMap.containsKey(alarm.getId())) {
-                        AlarmVo vo = CacheContext.alarmWtMap.get(alarm.getId());
+                    if (CacheContext.alarmInMap.containsKey(alarm.getId())) {
+                        AlarmVo vo = CacheContext.alarmInMap.get(alarm.getId());
+
                         ProEconAlarmInfo po = new ProEconAlarmInfo();
                         po.setTbname(vo.getTbName());
                         po.setLastUpdateTime(new Date(alarm.getEndts()));
@@ -517,16 +460,18 @@ public class AlarmInService {
                         {
                             alarm.setCode(CacheContext.wtmap.get(vo.getDeviceid()).getNemCode());
                         }
+
                         if(CacheContext.wpmap.containsKey(vo.getStationid()))
                         {
                             alarm.setWpName(CacheContext.wpmap.get(vo.getStationid()).getName());
                         }
+
                         pushDataSevice.pushWtData(alarm);
 
+
                         tempmap.put(po.getTbname(),po);
                     }
                 }
-
                 for (Map.Entry<String, ProEconAlarmInfo> entry : tempmap.entrySet()) {
                     valuels.add(entry.getValue());
                 }
@@ -542,7 +487,7 @@ public class AlarmInService {
                 List<ProEconAlarmInfo> templs = new ArrayList<>();
                 for (ProEconAlarmInfo vo : valuels) {
                     templs.add(vo);
-                    if (templs.size() == 1000) {
+                    if (templs.size() == 500) {
                         proEconAlarmInfoService.saveBatch(templs);
                         templs = new ArrayList<>();
                     }
@@ -557,43 +502,6 @@ public class AlarmInService {
 
     }
 
-//    public void pushData(AlarmTag po) throws EncodeException, IOException {
-//        ConcurrentHashMap<String, WebSocket> webSocketPushMap = WebSocket.webSocketMap;
-//        ConcurrentHashMap<String, PushParams> webSocketPushParamsMap = WebSocket.webSocketParamsMap;
-//        if(!webSocketPushMap.isEmpty()){
-//            for(String key : webSocketPushMap.keySet()){
-//                // 根据ws连接用户ID获取推送参数
-//                PushParams pushParams = webSocketPushParamsMap.get(key);
-//
-//                if(webSocketPushParamsMap.contains(po.getId()))
-//                {
-//                    PushParams pp=webSocketPushParamsMap.get(po.getId());
-//
-//                    double hours=DateUtils.hoursDiff(pp.getStartTime(),new Date());
-//                    if(hours>pushinterval)
-//                    {
-//
-//                        synchronized (key)
-//                        {
-//                            webSocket.sendMessageByUserId(key,po);
-//                            pp.setStartTime(new Date(po.getTs()));
-//                        }
-//
-//
-//                    }
-//                }else
-//                {
-//                    synchronized (key)
-//                    {
-//                        webSocket.sendMessageByUserId(key,po);
-//                        PushParams pp=new PushParams();
-//                        pp.setStartTime(new Date());
-//                        webSocketPushParamsMap.put(po.getId(),pp);
-//                    }
-//
-//                }
-//            }
-//        }
-//
-//    }
+
 }
+

+ 1 - 0
alarm-service/src/main/java/com/gyee/alarm/service/AlarmWtService.java

@@ -284,6 +284,7 @@ public class AlarmWtService {
                     po.setRank(vo.getRank());
                     po.setAlarmType(vo.getAlarmtype());
                     po.setUniformCode(vo.getUniformcode());
+                    po.setWpId(vo.getStationid());
                     ls.add(po);
                 }
             }

+ 1 - 1
alarm-service/src/main/resources/application-jn.yml

@@ -135,7 +135,7 @@ logging:
 #db url
 db:
   url1: http://10.81.3.154:8011/ts
-  url2: http://10.81.3.154:8012/tsP
+  url2: http://10.81.3.154:8012/ts
 
 
 #参与计算的场站

+ 8 - 8
alarm-service/src/test/java/com/gyee/AppTest.java

@@ -21,16 +21,16 @@ public class AppTest
         AlarmInService alarmInService= SpringUtils.getBean("alarmInService");
 
 
-        alarmWtService.createSuperTable();
+//        alarmWtService.createSuperTable();
 
-        alarmWtService.initalWtAlarm();
+//        alarmWtService.initalWtAlarm();
         alarmInService.initalInAlarm();
-
-        alarmBtService.createSuperTable();
-        alarmBtService.initalBtAlarm();
-
-        alarmCtService.createSuperTable();
-        alarmCtService.initalCtAlarm();
+//
+//        alarmBtService.createSuperTable();
+//        alarmBtService.initalBtAlarm();
+//
+//        alarmCtService.createSuperTable();
+//        alarmCtService.initalCtAlarm();
 
         System.out.println("完成!");
 

+ 58 - 54
alarm-web/src/main/java/com/gyee/alarm/service/AlarmHistoryService.java

@@ -121,79 +121,83 @@ public class AlarmHistoryService   {
                     map.put(vo.getTbName().toLowerCase(),vo);
                 }
             }
-
+            List<AlarmTag> savels=new ArrayList<>();
             for (AlarmTag alarm : ls) {
 
 
                 if(map.containsKey(alarm.getId().toLowerCase()))
                 {
                     AlarmSimpleVo tag=map.get(alarm.getId().toLowerCase());
-                    if(StringUtils.notEmp(tag.getTs()))
+
+                    if(null !=tag.getTs())
                     {
                         alarm.setTs(tag.getTs().getTime());
-                    }else
-                    {
-                        alarm.setTs(new Date().getTime());
-                    }
-                    if(StringUtils.notEmp(tag.getVal()))
-                    {
-                        alarm.setVal(tag.getVal().doubleValue());
-                    }else
-                    {
-                        alarm.setVal(1.0);
+                        if(StringUtils.notEmp(tag.getVal()))
+                        {
+                            alarm.setVal(tag.getVal().doubleValue());
+                        }
+
+                        alarm.setEndts(null!=tag.getEndts()?tag.getEndts().getTime():null);
+                        alarm.setTimeLong(null!=tag.getTimelong()?tag.getTimelong():null);
+                        alarm.setConfirmed(true);
+                        savels.add(alarm);
                     }
 
-                    alarm.setEndts(null!=tag.getEndts()?tag.getEndts().getTime():null);
-                    alarm.setTimeLong(null!=tag.getTimelong()?tag.getTimelong():null);
-                    alarm.setConfirmed(true);
                 }
             }
 
-            alarmTsService.insertList(ls);
+            alarmTsService.insertList(savels);
 
             Map<String,ProEconAlarmInfo> tempmap=new HashMap<>();
-            if (com.gyee.alarm.util.StringUtils.notEmp(ls) && !ls.isEmpty()) {
+            if (com.gyee.alarm.util.StringUtils.notEmp(savels) && !savels.isEmpty()) {
 
                 List<ProEconAlarmInfo> valuels = new ArrayList<>();
-                for (AlarmTag alarm : ls) {
+                for (AlarmTag alarm : savels) {
+                    AlarmVo vo =null;
                     if (CacheContext.alarmWtMap.containsKey(alarm.getId())) {
-                        AlarmVo vo = CacheContext.alarmWtMap.get(alarm.getId());
-                        ProEconAlarmInfo po = new ProEconAlarmInfo();
-                        po.setTbname(vo.getTbName());
-                        po.setLastUpdateTime(new Date());
-                        po.setTagId(alarm.getTagId());
-                        po.setTriggerType(alarm.getTriggerType());
-                        po.setAlarmId(vo.getAlarmId());
-                        po.setDeviceId(vo.getDeviceId());
-                        po.setSubcomponents(vo.getSuffix());
-                        po.setRank(vo.getRank());
-                        po.setConfirmed(alarm.getConfirmed());
-                        po.setUniformCode(vo.getUniformcode());
-                        po.setAlarmType(vo.getAlarmType());
-                        po.setDeviceType(vo.getDeviceType());
-                        po.setComponents(vo.getComponents());
-                        po.setSubcomponents(vo.getSubcomponents());
-                        po.setDescription(vo.getDescription());
-                        po.setModelId(vo.getModelId());
-                        po.setResetTable(vo.getResettable());
-                        po.setEnable(vo.getEnabled());
-                        po.setCharacteristic(vo.getCharacteristic());
-                        po.setStationId(vo.getStationid());
-                        po.setProjectId(vo.getProjectid());
-                        po.setLineId(vo.getLineid());
-                        po.setStationName(vo.getStationname());
-                        po.setProjectiName(vo.getProjectname());
-                        po.setLineidName(vo.getLinename());
-                        po.setDeviceName(vo.getDevicename());
-                        po.setOval(alarm.getOval().intValue());
-                        po.setCloseTime(null!=alarm.getEndts()?new Date(alarm.getEndts()):null);
-                        po.setIsOpen(0);
-                        po.setVal(alarm.getVal().intValue());
-
-
-                        tempmap.put(po.getTbname(),po);
-
+                         vo = CacheContext.alarmWtMap.get(alarm.getId());
+                    }else if (CacheContext.alarmInMap.containsKey(alarm.getId())) {
+                        vo = CacheContext.alarmInMap.get(alarm.getId());
+                    }else if (CacheContext.alarmBtMap.containsKey(alarm.getId())) {
+                        vo = CacheContext.alarmBtMap.get(alarm.getId());
+                    }else if (CacheContext.alarmCtMap.containsKey(alarm.getId())) {
+                        vo = CacheContext.alarmCtMap.get(alarm.getId());
                     }
+
+                    ProEconAlarmInfo po = new ProEconAlarmInfo();
+                    po.setTbname(vo.getTbName());
+                    po.setLastUpdateTime(new Date());
+                    po.setTagId(alarm.getTagId());
+                    po.setTriggerType(alarm.getTriggerType());
+                    po.setAlarmId(vo.getAlarmId());
+                    po.setDeviceId(vo.getDeviceId());
+                    po.setSubcomponents(vo.getSuffix());
+                    po.setRank(vo.getRank());
+                    po.setConfirmed(alarm.getConfirmed());
+                    po.setUniformCode(vo.getUniformcode());
+                    po.setAlarmType(vo.getAlarmType());
+                    po.setDeviceType(vo.getDeviceType());
+                    po.setComponents(vo.getComponents());
+                    po.setSubcomponents(vo.getSubcomponents());
+                    po.setDescription(vo.getDescription());
+                    po.setModelId(vo.getModelId());
+                    po.setResetTable(vo.getResettable());
+                    po.setEnable(vo.getEnabled());
+                    po.setCharacteristic(vo.getCharacteristic());
+                    po.setStationId(vo.getStationid());
+                    po.setProjectId(vo.getProjectid());
+                    po.setLineId(vo.getLineid());
+                    po.setStationName(vo.getStationname());
+                    po.setProjectiName(vo.getProjectname());
+                    po.setLineidName(vo.getLinename());
+                    po.setDeviceName(vo.getDevicename());
+                    po.setOval(alarm.getOval().intValue());
+                    po.setCloseTime(null!=alarm.getEndts()?new Date(alarm.getEndts()):null);
+                    po.setIsOpen(0);
+                    po.setVal(alarm.getVal().intValue());
+
+
+                    tempmap.put(po.getTbname(),po);
                 }
 
 

+ 1 - 1
alarm-web/src/main/java/com/gyee/alarm/service/DeviceService.java

@@ -327,7 +327,7 @@ public class DeviceService {
 
     public int saveOrUpdateDeviceStructure(ProBasicDeviceStructure ds) {
         int result = 0;
-        if (StringUtils.notEmp(ds.getId())) {
+        if (StringUtils.empty(ds.getId())) {
             //如果id为空,则通过雪花算法 生成一个id
             ds.setId(String.valueOf(SnowflakeGenerator.generateId()));
             result = proBasicDeviceStructureMapper.insert(ds);

+ 1 - 1
alarm-web/src/main/java/com/gyee/alarm/service/auto/initalcache/CacheService.java

@@ -57,7 +57,7 @@ public class CacheService {
     @Resource
     private IProBasicEnergyGroupService energyGroupService;
 
-    public static HashMap<String, TreeNode> deviceStructureMap;
+    public static HashMap<String, TreeNode> deviceStructureMap=new HashMap<>();
 
     public static void clear() {
         deviceStructureMap.clear();

+ 2 - 2
alarm-web/src/main/resources/application-jn.yml

@@ -134,8 +134,8 @@ logging:
 
 #db url
 db:
-  url1: http://10.81.3.160:8021/ts
-  url2: http://10.81.3.160:8022/ts
+  url1: http://10.81.3.160:8011/ts
+  url2: http://10.81.3.160:8012/ts
 
 
 #参与计算的场站

File diff suppressed because it is too large
+ 27703 - 1842
log/ota.log


BIN
log/ota.log.2023-10-01.0.gz


BIN
log/ota.log.2023-10-05.0.gz