Selaa lähdekoodia

修改配置信息和多适配器切换

shilin 2 vuotta sitten
vanhempi
commit
28c77ae0e2

+ 2 - 1
realtime/datatraining-server-cph/src/main/java/com/gyee/datatraining/init/CacheContext.java

@@ -72,7 +72,8 @@ public class CacheContext implements CommandLineRunner {
         log.info("-------------------------------缓存开始--------------------------------------");
         //hpmap=healthpointsService.findAllMap();
         List<Windpowerstation> wptempls = windpowerstationService.list();
-        wptempls.stream().filter(i->i.getCompanyid().equals("1")).forEach(i->{
+//        wptempls.stream().filter(i->i.getCompanyid().equals("1")).forEach(i->{
+        wptempls.stream().forEach(i->{
             wpls.add(i);
             wpmap.put(i.getId(),i);
         });

+ 8 - 0
realtime/datatraining-server-cph/src/main/java/com/gyee/datatraining/service/DatatrainingService.java

@@ -513,6 +513,10 @@ public class DatatrainingService {
                 Windturbinetestingpointnew ai = wtpAimap.get(up82_part_state_clx);
                 PointData point = new PointData();
                 point.setEdnaId(ai.getCode());
+//                if(value==0)
+//                {
+//                    value=1;
+//                }
                 point.setPointValueInDouble(value);
                 point.setPointTime(new BigDecimal(now.getTime()).divide(new BigDecimal(1000), 0, RoundingMode.HALF_EVEN).longValue());
                 ednaApiUtil.sendSinglePoint(point);
@@ -529,6 +533,10 @@ public class DatatrainingService {
             Windpowerstationpointnew ai = wpmap.get(unicode);
             PointData point = new PointData();
             point.setEdnaId(ai.getCode());
+//            if(value==0)
+//            {
+//                value=1;
+//            }
             point.setPointValueInDouble(value);
             point.setPointTime(new BigDecimal(now.getTime()).divide(new BigDecimal(1000), 0, RoundingMode.HALF_EVEN).longValue());
             ednaApiUtil.sendSinglePoint(point);

+ 1 - 1
realtime/datatraining-server-cph/src/main/java/com/gyee/datatraining/util/dd/LoadData.java

@@ -43,7 +43,7 @@ public class LoadData {
 						{
 							Windturbinetestingpointnew ai=wtmap.get(vo.getUniformcode().get(j));
 							//String id = ai.getId().substring(5).replace(".", "_");
-							points[j]= ai.getId();
+							points[j]= ai.getCode();
 						}
 					}
 				}

+ 3 - 3
realtime/datatraining-server-cph/src/main/java/com/gyee/datatraining/util/dd/LstmModelWt.java

@@ -223,11 +223,11 @@ public class LstmModelWt {
 		if (wtpAimap.containsKey(unicode)) {
 			Windturbinetestingpointnew ai = wtpAimap.get(unicode);
 			PointData point = new PointData();
-			point.setEdnaId(ai.getId());
+			point.setEdnaId(ai.getCode());
 			point.setPointValueInDouble(value);
 			point.setPointTime(new BigDecimal(now.getTime()).divide(new BigDecimal(1000), 0, RoundingMode.HALF_EVEN).longValue());
-			// ednaApiUtil.sendSinglePoint(point);
-			ednaApiUtil.updatePoint(point);
+			 ednaApiUtil.sendSinglePoint(point);
+			//ednaApiUtil.updatePoint(point);
 		}
 	}
 

+ 233 - 236
realtime/datatraining-server-cph/src/main/java/com/gyee/datatraining/util/dd/ModuleState.java

@@ -1,12 +1,5 @@
 package com.gyee.datatraining.util.dd;
 
-import java.math.BigDecimal;
-import java.math.RoundingMode;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Vector;
-
 import com.gyee.common.model.DNAVal;
 import com.gyee.datatraining.task.SaticScheduleTask;
 import com.gyee.datatraining.util.StringUtils;
@@ -17,255 +10,259 @@ import com.gyee.datatraining.vo.WtTrainVo;
 import org.apache.commons.math3.linear.RealMatrix;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Component;
-import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Vector;
 
 
 @Component
 public class ModuleState {
 
-	private static Logger logger = LoggerFactory.getLogger(SaticScheduleTask.class);
-
-	@Resource
-	private Environment env;
-
-	private int digits = 4;
-	/**
-	 * 结果集数量
-	 */
-	private int coment_bit = 4;
-	/**
-	 * 指标点数量
-	 */
-	//private int point_bit = 4;
-	/**
-	 * 报警值数量
-	 */
-	private double warnnum = 0.95;
-	/**
-	 * 查询模块健康状况
-	 * @return
-	 */
-	public ModuleVo getModuleValue(List<String> wtId, List<String> code, List<Integer> typels, List<Double> cwdls, List<String> rules, MembershipRuleVo msvo, Date now)
-	{
-		
-		ModuleVo modelvo=new ModuleVo();
-		//初始化读取数据对象
-		LoadData load = new LoadData();
-		Vector<DNAVal[]> loadDataVc = new Vector<DNAVal[]>();
-		// 初始化变权对象数组
-		double[] cwchange = new double[code.size()];
-		//超过报警线直接判定严重健康状态为1
-		int breakstate = 0;
-		//结果状态值
-		int state = 1;
-		List<Double> result= new ArrayList<Double>();
-		List<ChangeWeightVo> cwls = new ArrayList<ChangeWeightVo>();
-		WtTrainVo vo = new WtTrainVo();
-
-
-		int recodeDate = new BigDecimal(now.getTime()).divide(new BigDecimal(1000), 0, RoundingMode.HALF_EVEN).intValue();
-
-		vo.setRecodeDate(recodeDate);
-		vo.setUniformcode(code);
-		vo.setWtId(wtId);
-
-		try {
-			load.loadEdosData(vo, loadDataVc);
-		} catch (Exception e) {
-
-			e.printStackTrace();
-		}
-
-		if (StringUtils.notEmp(loadDataVc) && !loadDataVc.isEmpty()) {
-			//取得一组指标的数据集合
-			DNAVal[] data = loadDataVc.get(0);
-			//劣化度结果集合
-			List<Double> ddls = new ArrayList<Double>();
-			//实例化劣化度对象
-			DegradationDegree dd = new DegradationDegree();
-
-			for (int i = 0; i < data.length; i++) {
-				double value = 0;
-				// 判断数据劣化度
-				if (typels.get(i) == 0) {
-					value = dd.getValueBySmall(data[i].DValue, rules.get(i));
-				} else if (typels.get(i) == 1) {
-					value = dd.getValueByMedium(data[i].DValue, rules.get(i));
-				}
-				// 实例化权重和劣化度对象
-				ChangeWeightVo cwvo = new ChangeWeightVo();
-				// 赋值权重和劣化度对象
-				cwvo.setDegradationDegree(value);
-				cwvo.setWeight(cwdls.get(i));
-
-				cwls.add(cwvo);
-				ddls.add(value);
-			}
-
-			// 实例化隶属度对象
-			Membership ms = new Membership();
+    private static Logger logger = LoggerFactory.getLogger(SaticScheduleTask.class);
+
+    @Resource
+    private Environment env;
+
+    private int digits = 4;
+    /**
+     * 结果集数量
+     */
+    private int coment_bit = 4;
+    /**
+     * 指标点数量
+     */
+    //private int point_bit = 4;
+    /**
+     * 报警值数量
+     */
+    private double warnnum = 0.95;
+    /**
+     * 查询模块健康状况
+     * @return
+     */
+    public ModuleVo getModuleValue(List<String> wtId, List<String> code, List<Integer> typels, List<Double> cwdls, List<String> rules, MembershipRuleVo msvo, Date now)
+    {
+
+        ModuleVo modelvo=new ModuleVo();
+        //初始化读取数据对象
+        LoadData load = new LoadData();
+        Vector<DNAVal[]> loadDataVc = new Vector<DNAVal[]>();
+        // 初始化变权对象数组
+        double[] cwchange = new double[code.size()];
+        //超过报警线直接判定严重健康状态为1
+        int breakstate = 0;
+        //结果状态值
+        int state = 1;
+        List<Double> result= new ArrayList<Double>();
+        List<ChangeWeightVo> cwls = new ArrayList<ChangeWeightVo>();
+        WtTrainVo vo = new WtTrainVo();
+
+
+        int recodeDate = new BigDecimal(now.getTime()).divide(new BigDecimal(1000), 0, RoundingMode.HALF_EVEN).intValue();
+
+        vo.setRecodeDate(recodeDate);
+        vo.setUniformcode(code);
+        vo.setWtId(wtId);
+
+        try {
+            load.loadEdosData(vo, loadDataVc);
+        } catch (Exception e) {
+
+            e.printStackTrace();
+        }
+
+        if (StringUtils.notEmp(loadDataVc) && !loadDataVc.isEmpty()) {
+            //取得一组指标的数据集合
+            DNAVal[] data = loadDataVc.get(0);
+            //劣化度结果集合
+            List<Double> ddls = new ArrayList<Double>();
+            //实例化劣化度对象
+            DegradationDegree dd = new DegradationDegree();
+
+            for (int i = 0; i < data.length; i++) {
+                double value = 0;
+                // 判断数据劣化度
+                if (typels.get(i) == 0) {
+                    value = dd.getValueBySmall(data[i].DValue, rules.get(i));
+                } else if (typels.get(i) == 1) {
+                    value = dd.getValueByMedium(data[i].DValue, rules.get(i));
+                }
+                // 实例化权重和劣化度对象
+                ChangeWeightVo cwvo = new ChangeWeightVo();
+                // 赋值权重和劣化度对象
+                cwvo.setDegradationDegree(value);
+                cwvo.setWeight(cwdls.get(i));
+
+                cwls.add(cwvo);
+                ddls.add(value);
+            }
+
+            // 实例化隶属度对象
+            Membership ms = new Membership();
 //			MembershipRuleVo msvo = new MembershipRuleVo();
 //			msvo.setCondition("");
 //			msvo.setStaterule1("");
 //			msvo.setStaterule2("");
 //			msvo.setStaterule3("");
 //			msvo.setStaterule4("");
-			
-			// 生成隶属度数组
-			double[][] msarr = new double[ddls.size()][coment_bit];
-			for (int i = 0; i < ddls.size(); i++) {
-				double[] temparr = new double[coment_bit];
-				for (int j = 0; j < coment_bit; j++) {
-					double msstate = ms.getStateValue(ddls.get(i), j, msvo);
-					temparr[j] = StringUtils.round(msstate, digits);
-				}
-				msarr[i] = temparr;
-			}
-
-			// 变权处理
-			ChangeWeight cw = new ChangeWeight();
-			for (int i = 0; i < ddls.size(); i++) {
-				double value = ddls.get(i);
-				if (value > warnnum) {
-					breakstate = 1;
-					break;
-				}
-			}
-
-			if (breakstate == 0) {
-				
-				for (int i = 0; i < ddls.size(); i++) {
-					double value = ddls.get(i);
-					cwchange[i] = cw.change(cwdls.get(i), value, cwls);
-				}
-				double cwarr[][] = new double[1][code.size()];
-				cwarr[0] = cwchange;
-
-				MatrixCalculation mc = new MatrixCalculation();
-
-				RealMatrix matrix1 = mc.createMatrix(cwarr);
-				RealMatrix matrix2 = mc.createMatrix(msarr);
-
-				RealMatrix rmresult = matrix1.multiply(matrix2);
-
-				double value = rmresult.getEntry(0, 0);
-				for (int i = 0; i < rmresult.getColumnDimension(); i++) {
-					double temp = rmresult.getEntry(0, i)<1?rmresult.getEntry(0, i):1;
-					if (temp > value) {
-						value = temp;
-						state = i+1;
-					}
-					result.add(temp);
-				}
-			} else {
-				state=4;
-				result=new ArrayList<Double>();
-				result.add(0.0);
-				result.add(0.0);
-				result.add(0.0);
-				result.add(1.0);
-			}
-
-		}else{
-			//没有查询到数据,默认为良好状态
-			state=1;
-			result=new ArrayList<Double>();
-			result.add(1.0);
-			result.add(0.0);
-			result.add(0.0);
-			result.add(0.0);
-		}
-		
-		modelvo.setModuleResult(result);
-		modelvo.setModuleState(state);;
-		return modelvo;
-	}
-	
-	
-	/**
-	 * 检查部件健康情况
-	 */
-	public ModuleVo checkPartState(String wtId,String part_clx,String type_clx,String weight_clx,String part_rule,String condition_lsd
-			,String params_lsd1,String params_lsd2,String params_lsd3,String params_lsd4,Date now) {
-		
-
-		List<String> wtIdls = new ArrayList<String>();
-		List<String> code = new ArrayList<String>();
-		List<Integer> typels = new ArrayList<Integer>();
-		List<Double> cwdls = new ArrayList<Double>();
-		List<String> rules = new ArrayList<String>();
+
+            // 生成隶属度数组
+            double[][] msarr = new double[ddls.size()][coment_bit];
+            for (int i = 0; i < ddls.size(); i++) {
+                double[] temparr = new double[coment_bit];
+                for (int j = 0; j < coment_bit; j++) {
+                    double msstate = ms.getStateValue(ddls.get(i), j, msvo);
+                    temparr[j] = StringUtils.round(msstate, digits);
+                }
+                msarr[i] = temparr;
+            }
+
+            // 变权处理
+            ChangeWeight cw = new ChangeWeight();
+            for (int i = 0; i < ddls.size(); i++) {
+                double value = ddls.get(i);
+                if (value > warnnum) {
+                    breakstate = 1;
+                    break;
+                }
+            }
+
+//			if (breakstate == 0) {
+
+            for (int i = 0; i < ddls.size(); i++) {
+                double value = ddls.get(i);
+                cwchange[i] = cw.change(cwdls.get(i), value, cwls);
+            }
+            double cwarr[][] = new double[1][code.size()];
+            cwarr[0] = cwchange;
+
+            MatrixCalculation mc = new MatrixCalculation();
+
+            RealMatrix matrix1 = mc.createMatrix(cwarr);
+            RealMatrix matrix2 = mc.createMatrix(msarr);
+
+            RealMatrix rmresult = matrix1.multiply(matrix2);
+
+            double value = rmresult.getEntry(0, 0);
+            for (int i = 0; i < rmresult.getColumnDimension(); i++) {
+                double temp = rmresult.getEntry(0, i)<1?rmresult.getEntry(0, i):1;
+                if (temp > value) {
+                    value = temp;
+                    state = i+1;
+                }
+                result.add(temp);
+            }
+//			} else {
+//				state=4;
+//				result=new ArrayList<Double>();
+//				result.add(0.0);
+//				result.add(0.0);
+//				result.add(0.0);
+//				result.add(1.0);
+//			}
+
+        }else{
+            //没有查询到数据,默认为良好状态
+            state=1;
+            result=new ArrayList<Double>();
+            result.add(1.0);
+            result.add(0.0);
+            result.add(0.0);
+            result.add(0.0);
+        }
+
+        modelvo.setModuleResult(result);
+        modelvo.setModuleState(state);;
+        return modelvo;
+    }
+
+
+    /**
+     * 检查部件健康情况
+     */
+    public ModuleVo checkPartState(String wtId,String part_clx,String type_clx,String weight_clx,String part_rule,String condition_lsd
+            ,String params_lsd1,String params_lsd2,String params_lsd3,String params_lsd4,Date now) {
+
+
+        List<String> wtIdls = new ArrayList<String>();
+        List<String> code = new ArrayList<String>();
+        List<Integer> typels = new ArrayList<Integer>();
+        List<Double> cwdls = new ArrayList<Double>();
+        List<String> rules = new ArrayList<String>();
 
 
 //		wtId.add("NG01_01");
 //		wtId.add("NG01_01");
 //		wtId.add("NG01_01");
 
-		// 遍历齿轮箱统一编码
-		String[] up82_part_clx = env.getProperty(part_clx).split(",");
-
-		for (int i = 0; i < up82_part_clx.length; i++) {
-			code.add(up82_part_clx[i]);
-			wtIdls.add(wtId);
-		}
-		// 遍历齿轮箱各指标对应算法
-		String[] up82_type_clx = env.getProperty(type_clx).split(",");
-
-		for (int i = 0; i < up82_type_clx.length; i++) {
-			typels.add(Integer.valueOf(up82_type_clx[i]));
-		}
-
-		// 遍历齿轮箱权重
-		String[] up82_weight_clx = env.getProperty(weight_clx).split(",");
-
-		for (int i = 0; i < up82_weight_clx.length; i++) {
-			cwdls.add(Double.valueOf(up82_weight_clx[i]));
-		}
-		// 获得齿轮箱范围值
-		String rule = env.getProperty(part_rule);
-
-		if (StringUtils.notEmp(rule)) {
-			String[] part_rules = rule.split(",");
-			for (int i = 0; i < part_rules.length; i++) {
-				String temp = env.getProperty(part_rules[i]);
-
-				rules.add(temp);
-			}
-		}
-
-		// 初始化隶属度计算参数
-		MembershipRuleVo msvo = new MembershipRuleVo();
-		msvo.setCondition(env.getProperty(condition_lsd));
-		msvo.setStaterule1(env.getProperty(params_lsd1));
-		msvo.setStaterule2(env.getProperty(params_lsd2));
-		msvo.setStaterule3(env.getProperty(params_lsd3));
-		msvo.setStaterule4(env.getProperty(params_lsd4));
-
-		ModuleVo vo = getModuleValue(wtIdls, code, typels, cwdls, rules, msvo,now);
-
-		if (StringUtils.notEmp(vo)) {
-			logger.info("状态值" + vo.getModuleState());
-			
-			logger.info("结果值是:" );
-
-			StringBuilder sb=new StringBuilder();
-			for(int i=0;i<vo.getModuleResult().size();i++)
-			{
-				if(i==vo.getModuleResult().size()-1)
-				{
-					sb.append(StringUtils.round(vo.getModuleResult().get(i), digits));
-				}else{
-					sb.append(StringUtils.round(vo.getModuleResult().get(i), digits)).append(",");
-				}
-			}
-			logger.info(String.valueOf(sb));
-		}
-		
-		return vo;
-	}
+        // 遍历齿轮箱统一编码
+        String[] up82_part_clx = env.getProperty(part_clx).split(",");
+
+        for (int i = 0; i < up82_part_clx.length; i++) {
+            code.add(up82_part_clx[i]);
+            wtIdls.add(wtId);
+        }
+        // 遍历齿轮箱各指标对应算法
+        String[] up82_type_clx = env.getProperty(type_clx).split(",");
+
+        for (int i = 0; i < up82_type_clx.length; i++) {
+            typels.add(Integer.valueOf(up82_type_clx[i]));
+        }
+
+        // 遍历齿轮箱权重
+        String[] up82_weight_clx = env.getProperty(weight_clx).split(",");
+
+        for (int i = 0; i < up82_weight_clx.length; i++) {
+            cwdls.add(Double.valueOf(up82_weight_clx[i]));
+        }
+        // 获得齿轮箱范围值
+        String rule = env.getProperty(part_rule);
+
+        if (StringUtils.notEmp(rule)) {
+            String[] part_rules = rule.split(",");
+            for (int i = 0; i < part_rules.length; i++) {
+                String temp = env.getProperty(part_rules[i]);
+
+                rules.add(temp);
+            }
+        }
+
+        // 初始化隶属度计算参数
+        MembershipRuleVo msvo = new MembershipRuleVo();
+        msvo.setCondition(env.getProperty(condition_lsd));
+        msvo.setStaterule1(env.getProperty(params_lsd1));
+        msvo.setStaterule2(env.getProperty(params_lsd2));
+        msvo.setStaterule3(env.getProperty(params_lsd3));
+        msvo.setStaterule4(env.getProperty(params_lsd4));
+
+        ModuleVo vo = getModuleValue(wtIdls, code, typels, cwdls, rules, msvo,now);
+
+        if (StringUtils.notEmp(vo)) {
+            logger.info("状态值" + vo.getModuleState());
+
+            logger.info("结果值是:" );
+
+            StringBuilder sb=new StringBuilder();
+            for(int i=0;i<vo.getModuleResult().size();i++)
+            {
+                if(i==vo.getModuleResult().size()-1)
+                {
+                    sb.append(StringUtils.round(vo.getModuleResult().get(i), digits));
+                }else{
+                    sb.append(StringUtils.round(vo.getModuleResult().get(i), digits)).append(",");
+                }
+            }
+            logger.info(String.valueOf(sb));
+        }
+
+        return vo;
+    }
 
 }

+ 5 - 3
realtime/datatraining-server-cph/src/main/java/com/gyee/datatraining/util/realtimesource/EdosUtil.java

@@ -21,6 +21,7 @@ import org.springframework.web.client.RestTemplate;
 import java.util.*;
 
 
+
 public class EdosUtil implements IRealTimeDataBaseUtil {
 
 
@@ -93,6 +94,7 @@ public class EdosUtil implements IRealTimeDataBaseUtil {
 
     @Override
     public List<PointData> getHistoryDatasSnap(Windpowerstationpointnew point, Long beginDate, Long endDate, Long count, Long pried) throws Exception {
+
         if(StringUtils.notEmp(point) &&  StringUtils.notEmp(point.getCode()) && !point.getCode().startsWith(JKFC) && !point.getCode().startsWith(JKFJ))
         {
             baseURL = V2Config.getBaseurl();
@@ -806,9 +808,9 @@ public class EdosUtil implements IRealTimeDataBaseUtil {
     public List<PointData> getRealData(List<String> pointids) throws Exception {
 
 
-        if(StringUtils.notEmp(pointids) )
+        if(StringUtils.notEmp(pointids) && !pointids.isEmpty() )
         {
-            
+
             if(!pointids.get(0).startsWith(JKFC) && !pointids.get(0).startsWith(JKFJ))
             {
                 baseURL = V2Config.getBaseurl();
@@ -1585,7 +1587,7 @@ public class EdosUtil implements IRealTimeDataBaseUtil {
         if (StringUtils.notEmp(tagNames) && tagNames.length > 0) {
 
 
-           if(!tagNames[0].startsWith(JKFC) && !tagNames[0].startsWith(JKFJ))
+            if(!tagNames[0].startsWith(JKFC) && !tagNames[0].startsWith(JKFJ))
             {
                 baseURL = V2Config.getBaseurl();
             }else

+ 1 - 1
realtime/datatraining-server-cph/src/main/resources/application-hb.yml

@@ -2,7 +2,7 @@
 gyee:
   #实时数据库Url
   baseurl: http://192.168.2.198:8011/ts
-  healthurl: http://192.168.2.198:8011/ts
+  healthurl: http://192.168.2.198:8012/ts
   #实时数据库选择
   realtimedataBase: mongodb #数据查询模式 golden、hwy
   initialcode: INITIAL