⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 huadong.java.svn-base

📁 通讯采集软件
💻 SVN-BASE
📖 第 1 页 / 共 3 页
字号:
    String dataName = "DL" + dayStr + ".dat";
    DataValueDetail dvt = null;
    int pre_type = 0;
    pbs.service.util.Calendar cal2 = pbs.service.util.Calendar.getInstance();
    long now_time2 = cal2.getTimeInMillis() / 1000;
    String time_str = cF.getTimeStringLine(now_time2);
    CommBuffer.m_CommGui.appendString("时间: " + time_str + "  正在从: " + dataName +
                                      " 读取数据……");
    Collection allRows = new ArrayList();
    try {
      fileName = dirName + dataName;
      FileReader fr = new FileReader(fileName);
      br = new BufferedReader(fr);
      readStr = br.readLine();
      dv = new DataValue();
      dv.m_data_type = 0;
      boolean first = true;
      String bakString = null;
      int period_per_day = 0;
      int dot_per_period = 0;
      int pulse_interval = 0;

      while ( (readStr = br.readLine()) != null) {
        st = new StringTokenizer(readStr);
        while (st.hasMoreTokens()) {
          meName = st.nextToken();
        }
        if (!meName.equalsIgnoreCase("0") && !meName.equalsIgnoreCase("1") &&
            !meName.equalsIgnoreCase("2") && !meName.equalsIgnoreCase("3") &&
            !meName.equalsIgnoreCase("4") && !meName.equalsIgnoreCase("5")) {
          System.out.println("$$$$$$ meName = "+meName);
          meter tmp_meter = getMeterByOtherKey1(mes, meName);
          if (tmp_meter == null) {
            period_per_day = 96;
            dot_per_period = 15;
            pulse_interval = 900;
          }
          else {
            meter_type m_meter_type = tmp_meter.getMeterType();
            if (m_meter_type != null) {
              pulse_interval = m_meter_type.getPulseInterval();
              dot_per_period = pulse_interval / 60;
              period_per_day = 86400 / pulse_interval;
            }
            else {
              period_per_day = 96;
              dot_per_period = 15;
              pulse_interval = 900;
            }
          }
          System.out.println("$$$$$$ period_per_day = "+period_per_day);
          System.out.println("$$$$$$ dot_per_period = "+dot_per_period);
          System.out.println("$$$$$$ pulse_interval = "+pulse_interval);
          real_start_time = start_time + pulse_interval;


          if (!first) {
            allRows.add(dv);
            System.out.println("$$$$$$ allRows.add(dv), name = "+dv.m_display_name+
                               " size = "+dv.m_values.size());
            //real_start_time = start_time + Constant.TIME_INTERVAL_QUARTER;
            real_start_time = start_time + pulse_interval;
            count2 = 0;
            count1 = 0;
            values = 0;
            status = 0;
            pre_type = 0;
            type = 0;
          }

          dv = new DataValue();
          dv.m_data_type = 0;
          dv.m_display_name = meName;
          dv.m_values = new ArrayList();

          if (first) {
            first = false;
          }
        }
        else {
          ret = readString(readStr);
          if (ret > 0) {
            type = hd.m_data_type;
            if (pre_type == 0 || pre_type == type) {
              count1++;
              values += hd.m_data_value;
              status |= hd.m_data_status;
            }
            if (count1 == dot_per_period) {
              count1 = 0;
              count2++;
              dvt = new DataValueDetail();
              dvt.m_value_type = type;
              dvt.m_value = values;
              if (status == REPLACED) {
                status = Constant.PULSE_STATUS_REPLACE;
              }
              dvt.m_status = status;
              dvt.m_raw_value = values;
              dvt.m_occur_time = real_start_time;
              if (dvt.m_value_type > dv.m_data_type) {
                dv.m_data_type = dvt.m_value_type;
              }
              dv.m_values.add(dvt);
              real_start_time += pulse_interval;
              values = 0;
              status = 0;
              if (count2 == period_per_day) { //一天一种类型(15分钟一个点)共96个点
                count2 = 0;
                count1 = 0;
                real_start_time = start_time + pulse_interval;
              }
              if (count2 != period_per_day && pre_type != 0 && pre_type != type) {
                count2 = 0;
                count1 = 0;
                real_start_time = start_time + pulse_interval;
              }
            }
            else { //count1!=15但是已经是另外一个类型----某一个类型的数据不全,放弃这个15分钟点
              if (pre_type != 0 && pre_type != type && count1 != 1) {
                real_start_time = start_time + pulse_interval;
                count1 = 0;
                count2 = 0;
                values = 0;
                status = 0;
                ret = readString(readStr);
                if (ret > 0) {
                  type = hd.m_data_type;
                  count1++;
                  values += hd.m_data_value;
                  status |= hd.m_data_status;
                }
              }
            }
            pre_type = type;
          }
        }
      }
      allRows.add(dv);
      System.out.println("$$$$$$ allRows.add(dv), name = "+dv.m_display_name+
                               " size = "+dv.m_values.size());

      fr.close();
    }
    catch (Exception ex) {
      processDebug.writeDebug(m_debug_no, "impDumpFile in area Error #1");
      DataOutputStream dsex = processDebug.getDebugStream(m_debug_no);
      ex.printStackTrace(new PrintStream(dsex));
      processDebug.closeDebugStream(dsex);
    }
    return allRows;
  }

  //pzy 060719 modi

  public static int readString(String conStr) {
    int ret;
    StringTokenizer st = null;
    String tmpString = null;
    hd = null;
    if (conStr == null) {
      return -1;
    }
    st = new StringTokenizer(conStr);
    while (st.hasMoreTokens()) {
      hd = new huadongData();
      tmpString = st.nextToken();
      hd.m_data_type = Integer.parseInt(tmpString);
      if (hd.m_data_type != 1 && hd.m_data_type != 2) {
        return -1;
      }
      tmpString = st.nextToken();
      tmpString = st.nextToken();
      hd.m_data_value = Double.parseDouble(tmpString);
      tmpString = st.nextToken();
      hd.m_data_status = Integer.parseInt(tmpString);
    }
    return 1;
  }

  public static Collection getData(String dirName, int debug_no,
                                   long start_time) {
    Iterator it = null;
    Collection Rows = new ArrayList();
    Collection allRows = null;

    allRows = readFile(dirName, debug_no, start_time);
    DataValue tmpdv = null, tmpdv1 = null, tmpdv2 = null;
    it = allRows.iterator();
    int size = allRows.size();
    System.out.println("$$$$$$ size = "+size);
    while (it.hasNext()) {
      ////////////////////////////////////
      ////////////////////////////////////
      /*
      tmpdv1 = (DataValue) it.next();
      tmpdv2 = (DataValue) it.next();
      if (tmpdv1.m_display_name.equalsIgnoreCase(tmpdv2.m_display_name)) {
        tmpdv = tmpdv2;
      }
      else {
        tmpdv = tmpdv1;
      }*/
      tmpdv = (DataValue) it.next();
      ////////////////////////////////////
      ////////////////////////////////////
      //for (int i = 0; i < size - 2; i++) {
      for (int i = 0; i < size - 1; i++) {
        tmpdv1 = (DataValue) it.next();
        if (!tmpdv.m_display_name.equalsIgnoreCase(tmpdv1.m_display_name)) {
          Rows.add(tmpdv);
          System.out.println("$$$$$$ Rows.add(tmpdv), name = "+tmpdv.m_display_name+
                               " size = "+tmpdv.m_values.size());
          tmpdv = tmpdv1;
        }
        else {
          tmpdv = tmpdv1;
        }
      }
      Rows.add(tmpdv);
      System.out.println("$$$$$$ Rows.add(tmpdv), name = "+tmpdv.m_display_name+
                               " size = "+tmpdv.m_values.size());
    }
    return Rows;
  }

  public static int impData(int m_debug_no, meter me, Collection allRows,
                            int task_type, int count) {
    Collection values = null;
    Iterator it = null, it_pl = null, it_me = null, it_dvt = null;
    DataValue dv = null;
    ProcessFrontData pfd = null;
    DataValueDetail m_dvt = null;
    pulse pl;

    Collection meter_values = new ArrayList();
    if (allRows == null) {
      processDebug.writeDebug(m_debug_no, "impData Error #1 in HUADONG");
      return -1;
    }
    if (allRows.size() == 0) {
      processDebug.writeDebug(m_debug_no, "impData Error #2 in HUADONG");
      return -1;
    }

    it_me = allRows.iterator();
    System.out.println("impdata------一共有 " + allRows.size() + " 行数据");
    Collection datavalues_Col = null;
    ArrayList meterdatalist = new ArrayList();
    while (it_me.hasNext()) {
      dv = (DataValue) it_me.next();
      SendDataClass sdc = new SendDataClass();
      if (me.getOtherKey1().equalsIgnoreCase(dv.m_display_name)) {
        System.out.println(
            "impdata---一--找到了匹配的DataValue:  dv.m_display_name = " +
            dv.m_display_name);
        sdc.m_fac_id = me.getFacId();
        sdc.m_data_type = Constant.HIS_DATA_TYPE_ADD_VALUE;
        datavalues_Col = dv.m_values;
        if (datavalues_Col != null) {
          if (datavalues_Col.size() > 0) {
            Object[] dvts = datavalues_Col.toArray();
            int dvtscount = dvts.length;
            System.out.println("impdata---一-- 一共有 " + dvtscount +
                               " 个DataValueDetail");
            for (int i = 0; i < dvtscount; i++) {
              try {
                m_dvt = (DataValueDetail) (dvts[i]);
                if (m_dvt != null) {
                  meterData m_meterData = new meterData();
                  if (me.getMeterType() == null) {
                    processDebug.writeDebug(debugNo + 100,
                        "Error in huadong, the meter type of " +
                        me.getOtherKey1() + " is null");
                    System.out.println(
                        "impdata---一-- Error in huadong, the meter type of " +
                        me.getOtherKey1() + " is null");
                    continue;
                  }
                  m_meterData.setPulseData(me.getMeterId(),
                                           me.getDevId(), me.getMeterSerial(),
                                           me.getFacId(), -1, -1,
                                           Constant.HIS_DATA_TYPE_ADD_VALUE,
                                           m_dvt.m_value_type, task_type,
                                           m_dvt.m_occur_time, me.getCt1(),
                                           me.getPt1(),
                                           me.getCt2(), me.getPt2(),
                                           me.getMeterType().getValueFactor(),
                                           me.getMeterType().getYcFactor(),
                                           me.getMeterType().getPulsePerRound(),
                                           me.getMeterType().getRoundPerKw(),
                                           me.getMeterType().getImportantStatus(),
                                           me.getMeterType().getIsIpFourToIp());
                  m_meterData.setDataInStruct(0);
                  m_meterData.setPulseData(m_dvt.m_value_type, m_dvt.m_value,
                                           m_dvt.m_status, m_dvt.m_value,
                                           m_dvt.m_status);
                  if (m_dvt.m_value_type == dv.m_data_type) {
                    m_meterData.setModifyTime(true);
                  }
                  else {
                    m_meterData.setModifyTime(false);
                    /*
                         System.out.print("^^^^^^^^^^^^^^    m_dvt.m_value_type = "+m_dvt.m_value_type);
                         System.out.print("   dv.m_data_type = "+dv.m_data_type);
                         System.out.println("");
                                                             System.out.println("^^^^^^^^^^^^^^    modifytime = false  false   false   false   false");
                         if(task_type == Constant.TASK_TYPE_BY_HAND)
                        System.out.println("^^^^^^^^^^^^^^    追补任务");
                     */
                  }
                  m_meterData.setMeterRawStatusStatus(0);
                  m_meterData.setMeterRawStatusValue(me.getStatus());
                  meterdatalist.add(m_meterData);
                }
              }
              catch (Exception e) {
                processDebug.writeDebug(debugNo + 100, "Error in HUADONG 7777");
                System.out.println("impdata---一-- Error in HUADONG 7777");
                DataOutputStream ds = processDebug.getDebugStream(debugNo);
                e.printStackTrace(new PrintStream(ds));
                processDebug.closeDebugStream(ds);
                continue;
              }
            }
          }
        }
        System.out.println("impdata---一-- meterdatalist.size = " +
                           meterdatalist.size());
        sdc.m_data = meterdatalist;
        try {
          int ret = insertData(sdc, count);
        }
        catch (Exception ex) {
          System.err.println("impdata---一-- Caught an unexpected exception!");
          ex.printStackTrace();
        }
        System.out.println("impdata---一--finished insertData");
        break;
      }
    }
    System.out.println("impdata---一--  完成impdata!!!!!!!!!!!");
    return 1;
  }

  public static int insertData(SendDataClass sdc, int count) {
    int ret;
    if (count % 2 == 0) {
      if (wBean1.getStatusOK()) {
        ret = wBean1.work(sdc);
        if (ret < 0) {
          if (wBean2.getStatusOK()) {
            ret = wBean2.work(sdc);
            if (ret < 0) {
              processDebug.writeDebug(debugNo + 100, "Error in huadong #12");
              return -1;
            }
          }
          else {
            processDebug.writeDebug(debugNo + 100, "Error in huadong #13");
            return -1;
          }
        }
      }
      else {
        ret = wBean2.work(sdc);
        processDebug.writeDebug(debugNo + 100, "Error in huadong #15");
        return -1;
      }
    }
    else {
      if (wBean2.getStatusOK()) {
        ret = wBean2.work(sdc);
        if (ret < 0) {
          if (wBean1.getStatusOK()) {
            ret = wBean1.work(sdc);
            if (ret < 0) {
              processDebug.writeDebug(debugNo + 100, "Error in huadong #12");
              return -1;
            }
          }
          else {
            processDebug.writeDebug(debugNo + 100, "Error in huadong #13");
            return -1;
          }
        }
      }
      else {
        ret = wBean1.work(sdc);
        processDebug.writeDebug(debugNo + 100, "Error in huadong #15");
        return -1;
      }
    }
    return 1;
  }

  public static void sleep(int second) {
    try {
      Thread.sleep(1000 * second);
    }
    catch (InterruptedException ie) {
      processDebug.writeDebug(debugNo + 100, "sleep in huadong #1");
    }
  }

  public static void sleepmidi(int midisecond) {
    try {
      Thread.sleep(midisecond);
    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -