Package com.narirelays.ems.persistence.orm

Examples of com.narirelays.ems.persistence.orm.Measure


    {
      result.setFailed(MEASUREEQUIPMENT_NAME_IS_NULL);
      return result;
    }
   
    Measure measure = null;
    //要求参数中度量id名为"measure_id"
    Object measureIDObject = properties.get("measure_id");
    if(measureIDObject!=null&&stringValue(measureIDObject)!="")
    {
      //如果用户选择了关联维度,但维度不存在,则返回失败
View Full Code Here


         * 比较现id与原id是否一致;若不一致,需要重置设备中的计量点;若原measure为空,也要重新关联
         * 新关联的计量点可能查询为空,不作处理,仍保持原计量点
         * */
        if((measureEquipment.getMeasure()==null)||(!measureID.equalsIgnoreCase(measureEquipment.getMeasure().getId())))     
          {
            Measure measure = measureDAO.findById(measureID);
            if(measure==null)//同add,判断新的部门是否存在,不存在,返回失败
            {
              result.setFailed(MEASURE_NOTEXIST,measureID);
              return result;
            }
View Full Code Here

        entHierarchyID = entHierarchy.getId();
        List<PInMeasure> ins = pInMeasureDAO.findByProperty("process", process);
//        Set<PInMeasure> ins = process.getPInMeasures();
        for(PInMeasure in:ins){//对于所有工艺关联的输入计量点InMeasure
//          Measure inMeasure = in.getMeasure();
          Measure inMeasure = measureDAO.findById(in.getId().getMId());
          if(inMeasure==null){
            Log.error("No such in measure:"+in.getId().getMId());
            continue;
          }else{
            //得到对应的计量点的能源介质类型
//            EnergyMedia energyMedia = inMeasure.getEnergyMedia();
            EnergyMedia energyMedia = energyMediaDAO.findById(inMeasure.getEnergyMedia().getId());//bug!!exception
            if(energyMedia==null){
              Log.error("No such in measure energy media:"+inMeasure.getEnergyMedia().getId());
              continue;
            }else{
              energyMediaID = energyMedia.getId();
             
              MeasureTable measureTable = null;
              String measureTableIDHash = process.getId()+energyMedia.getId()+date;
              if(measureHash.containsKey(measureTableIDHash)){
                measureTable = measureHash.get(measureTableIDHash);
              }else{
                measureTable = new MeasureTable();//创建事实表中记录
                measureTable.setId(new MeasureTableId(date,entHierarchyID,energyMediaID));
                measureHash.put(measureTableIDHash, measureTable);
              }
              //获得指定计量点的指定时间的计量值
              double value = getMeasureData(inMeasure,date);
              String corType = inMeasure.getCorType();
              //根据计量点类型进行计量校正,在计算时,输入为正,输出为负。
             
              /**!
               * mvalue:计量值
               * svalue:人工调整量
               * cvalue:计量折标量
               * value: 计量总量
               */
              if("P".equalsIgnoreCase(corType)){
                //百分比校正
                measureTable.setMValue(value);
                measureTable.setSValue(value+value*Double.parseDouble(inMeasure.getCorValue()));
              }else if("O".equalsIgnoreCase(corType)){
                //绝对值校正
                measureTable.setMValue(value);
                measureTable.setSValue(value+Double.parseDouble(inMeasure.getCorValue()));
              }else if("U".equalsIgnoreCase(corType)){
                //计算公式校正
                measureTable.setMValue(value);
                try{
                  Object uresult = ScriptEvaluator.evalWithMVEL(inMeasure.getCorValue(), measureTable);
                  measureTable.setSValue((Double)uresult);
                }catch(Exception e){
                  e.printStackTrace();
                }
              }else{
                //不校正
                measureTable.setMValue(value);
                measureTable.setSValue(0.0);
              }
              //根据计量值和校正值设置对应的计量总量和计量折标量
              measureTable.setValue(measureTable.getMValue()+measureTable.getSValue());
              measureTable.setCValue(measureTable.getValue()*energyMedia.getScc());
             
            }
          }
         
        }
        List<POutMeasure> outs = pOutMeasureDAO.findByProperty("process", process);
//        Set<POutMeasure> outs = process.getPOutMeasures();
        for(POutMeasure out:outs){//对于所有工艺关联的输出计量点OutMeasure
          Measure outMeasure = measureDAO.findById(out.getId().getMId());
//          Measure outMeasure = out.getMeasure();
          if(outMeasure==null){
            Log.error("No such out measure:"+out.getMeasure().getId());
            continue;
          }else{
            //得到对应的计量点的能源介质类型
//            EnergyMedia energyMedia = outMeasure.getEnergyMedia();
            EnergyMedia energyMedia = energyMediaDAO.findById(outMeasure.getEnergyMedia().getId());
            if(energyMedia==null){
              Log.error("No such out measure energy media:"+outMeasure.getEnergyMedia().getId());
              continue;
            }else{
              energyMediaID = energyMedia.getId();
             
              MeasureTable measureTable = null;
              String measureTableIDHash = process.getId()+energyMedia.getId()+date;
              if(measureHash.containsKey(measureTableIDHash)){
                measureTable = measureHash.get(measureTableIDHash);
              }else{
                measureTable = new MeasureTable();
                measureTable.setId(new MeasureTableId(date,entHierarchyID,energyMediaID));
                measureHash.put(measureTableIDHash, measureTable);
              }
             
//              MeasureTable measureTable = null;
//              if(measureHash.containsKey(process.getId()+energyMedia.getId()+date)){
//                measureTable = measureHash.get(process.getId()+energyMedia.getId()+date);
//              }else{
//                measureTable = new MeasureTable();
//                measureTable.setId(new MeasureTableId(date,entHierarchyID,energyMediaID));
//                measureHash.put(process.getId()+energyMedia.getId()+date, measureTable);
//              }
              //获得指定计量点的指定时间的计量值
              double value = getMeasureData(outMeasure,date);
              String corType = outMeasure.getCorType();
              //根据计量点类型进行计量校正,在计算时,输入为正,输出为负。
              if("P".equalsIgnoreCase(corType)){
                //百分比校正
                measureTable.setMValue(-value);
                measureTable.setSValue(-value-value*Double.parseDouble(outMeasure.getCorValue()));
              }else if("O".equalsIgnoreCase(corType)){
                //绝对值校正
                measureTable.setMValue(-value);
                measureTable.setSValue(-value-Double.parseDouble(outMeasure.getCorValue()));
              }else if("U".equalsIgnoreCase(corType)){
                //计算公式校正
                measureTable.setMValue(value);
                try{
                  Object uresult = ScriptEvaluator.evalWithMVEL(outMeasure.getCorValue(), measureTable);
                  measureTable.setSValue((Double)uresult);
                }catch(Exception e){
                  e.printStackTrace();
                }
              }else{
View Full Code Here

  public static void main(String[] argv){
    System.getProperties().setProperty("org.apache.lucene.lockdir",
        WebVariable.appPath + WebVariable.indexPath);
    List<Measure> measures = new ArrayList<Measure>();
    Measure m1 = new Measure();
    m1.setId("1");
    m1.setCategoryId("1");
    m1.setCorType("O");
    m1.setCorValue("some");
    m1.setKey("1");
    m1.setMaxV(10.0);
    m1.setMinV(0.0);
    m1.setOid("1");
    m1.setPath("1/1/1/1");
    m1.setState(true);
    Measure m2 = new Measure();
    m2.setId("2");
    m2.setCategoryId("2");
    m2.setCorType("O");
    m2.setCorValue("some");
    m2.setKey("2");
    m2.setMaxV(10.0);
    m2.setMinV(0.0);
    m2.setOid("2");
    m2.setPath("2/2/2/2");
    m2.setState(true);
    Measure m3 = new Measure();
    m3.setId("3");
    m3.setCategoryId("3");
    m3.setCorType("O");
    m3.setCorValue("some");
    m3.setKey("3");
    m3.setMaxV(10.0);
    m3.setMinV(0.0);
    m3.setOid("3");
    m3.setPath("3/3/3/3");
    m3.setState(true);
    Measure m4 = new Measure();
    m4.setId("4");
    m4.setCategoryId("4");
    m4.setCorType("O");
    m4.setCorValue("some");
    m4.setKey("4");
    m4.setMaxV(10.0);
    m4.setMinV(0.0);
    m4.setOid("4");
    m4.setPath("4/4/4/4");
    m4.setState(true);
   
    measures.add(m1);measures.add(m2);measures.add(m3);measures.add(m4);
    LuceneSupport.initIndexeWithBeans("measure", ObjectListConvert2DynaBeanList.convert(measures));

//    LuceneSupport.addBeans("measure", ObjectListConvert2DynaBeanList.convert(measures));
View Full Code Here

//      LuceneSupport.replaceBeans("categoryId", category, category2List.get(category), "path");
     
      String hashKey = new StringBuffer().append(key).append("_").append(category).toString();
      if(hashTable.containsKey(hashKey))//计量点已经存在,直接覆盖
      {
        Measure measure = hashTable.get(hashKey);
        if(isChanged(bean,measure))
        {
          try {
            BeanUtils.populate(measure, bean.getMap());
          } catch (IllegalAccessException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
          } catch (InvocationTargetException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
          }
          measureDAO.merge(measure);
        }
      }
      else//在measure表中新增计量点
      {
        Measure measure = new Measure();
        try {
          BeanUtils.populate(measure, bean.getMap());
        } catch (IllegalAccessException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
        } catch (InvocationTargetException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
        }
        measure.setId(MyUUIDGen.getUUID());
//        此处还要设置measure关联度的介质
        try{
          boolean state = (((Long)bean.get("lostTime"))==0);
          measure.setState(state);
        }
        catch(Exception e)
        {e.printStackTrace();}
       
        measureDAO.merge(measure);
View Full Code Here

          dataPair.inMeasureIDs = new ArrayList<String>();
        }else{
          dataPair.inMeasureIDs.clear();
        }
        for(PInMeasure in:ins){
          Measure measure = in.getMeasure();
          if(measure!=null){
            inMeasures.add(measure);
            dataPair.inMeasureIDs.add(in.getMeasure().getId());
          }
        }
        List<Measure> outMeasures = new ArrayList<Measure>();
        if(dataPair.outMeasureIDs==null){
          dataPair.outMeasureIDs = new ArrayList<String>();
        }else{
          dataPair.outMeasureIDs.clear();
        }
        for(POutMeasure out:outs){
          Measure measure = out.getMeasure();
          if(measure!=null){
            outMeasures.add(measure);
            dataPair.outMeasureIDs.add(measure.getId());
          }
        }
        Date[] measureDates = new Date[count];
        int inputNO = inMeasures.size();
        int outputNO = outMeasures.size();
        if(inputNO>0&&dataPair.INPUT==null){
          dataPair.INPUT = new double[count][inputNO];
        }
        if(outputNO>0&&dataPair.IDEAL==null){
          dataPair.IDEAL = new double[count][outputNO];
        }
        /**!
         * 构造神经网络输入二维数据
         */
        for(int i=0;i<inMeasures.size();i++){
          Measure m = inMeasures.get(i);
          String key = m.getKey();
          if(key!=null){
            /**!
             * !!!获取这个量测的count个数据,并且保证每个数据的时间点是相同的
             */
            for(int j=0;j<count;j++){
              double value = 0.0;
              Date measureDate = new Date();
              if(measureDates[j]==null){
                measureDates[j]=measureDate;
              }
              if(measureDates[j].compareTo(measureDate)==0){
                dataPair.INPUT[j][i]=getNormalizeData(value,m.getMaxV(),m.getMinV(),1,0);
              }
            }
          }else{
            for(int j=0;j<count;j++){
              dataPair.INPUT[j][i]=0;
            }
          }
        }
        /**!
         * 构造神经网络输出二维数据
         */
        for(int i=0;i<outMeasures.size();i++){
          Measure m = outMeasures.get(i);
          String key = m.getKey();
          if(key!=null){
            /**!
             * !!!获取这个量测的count个数据,并且保证每个数据的时间点是相同的
             */
            for(int j=0;j<count;j++){
              double value = 0.0;
              Date measureDate = new Date();
              if(measureDates[j]==null){
                measureDates[j]=measureDate;
              }
              if(measureDates[j].compareTo(measureDate)==0){
                dataPair.IDEAL[j][i]=getNormalizeData(value,m.getMaxV(),m.getMinV(),1,0);
              }
            }
          }else{
            for(int j=0;j<count;j++){
              dataPair.IDEAL[j][i]=0;
View Full Code Here

TOP

Related Classes of com.narirelays.ems.persistence.orm.Measure

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.