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

📄 datapursueframe.java.svn-base

📁 通讯采集软件
💻 SVN-BASE
📖 第 1 页 / 共 5 页
字号:
            System.out.print("%%%%%%%%%%%%%%%%%%%  准备发送自动追补任务,");
            System.out.println("计量单元个数:" + terminal_list.size());
            System.out.println("");
            //20061117
            //以前是多个计量单元一起发,现在是一个发一个报文,每个的消息体结构里面放terminal
            for (int i = 0; i < terminal_list.size(); i++) {
              terminal term1 = (terminal) (terminal_list.get(i));
              FrontGuiDefine.m_guimsg.sendAutoPursueMsg(term1);
              try {
                Thread.sleep(10);
              }
              catch (Exception ex) {
                ex.printStackTrace();
              }
            }
            //20061117

            System.out.println("%%%%%%%%%%%%%%%%%%%  发送自动追补成功");

            String message = "成功发送 " + terminal_list.size() + " 个追补任务!";
            String title = "注意";
            JOptionPane.showMessageDialog(this, message, title,
                                          JOptionPane.WARNING_MESSAGE);

            this.SendTermList = terminal_list;
            terminal_list = null;
            int rowcount = m_model.getRowCount();
            for (int i = 0; i < rowcount; i++) {
              m_model.removeRow(0);
            }
          }
        }
        //电表类型
        //else if (MeterTypeRadioButton.isSelected()) {
        else if (PursueTypeTabbedPane.getSelectedIndex() == 1) {
        }
      }
      catch (NullPointerException NullEx) {
        FrontGuiDefine.SystemPrintln("catch NullPointerException");
        NullEx.printStackTrace();
      }
      catch (Exception e) {
        e.printStackTrace();
      }
    }
    SysConnCheckBox.setSelected(false);
    // wj add
    if (CollectorDefine.DEFAULT_PURSUE_DATA_INTO_DB == 0) {
      jCheckBox1.setSelected(true);
    }
    else
      jCheckBox1.setSelected(false);
    //
  } //GEN-LAST:event_ConfirmOnTimeButtonActionPerformed

  private void ConfirmButtonActionPerformed(java.awt.event.ActionEvent evt) { //GEN-FIRST:event_ConfirmButtonActionPerformed
    // Add your handling code here:
    // 普通召唤任务
    DataRecruitTableModel m_model = (DataRecruitTableModel) (PursueTaskTable.
        getModel());
    if (m_model == null || ( (m_model != null) && (m_model.getRowCount() <= 0))) {
      JOptionPane.showMessageDialog(this, "没有选择相应设备,请重新选择!", "告警",
                                    JOptionPane.WARNING_MESSAGE);
      return;
    }
    else {
      int RowCount = m_model.getRowCount();
      for (int i = 0; i < RowCount; i++) {
        if (m_model.getValueAt(i, 4) == null || m_model.getValueAt(i, 2) == null ||
            m_model.getValueAt(i, 3) == null) {
          String message = "任务设置不完全,请重新选择!";
          String title = "告警";
          JOptionPane.showMessageDialog(this, message, title,
                                        JOptionPane.WARNING_MESSAGE);
          return;
        }
      }

      MyTerminalListElement m_MyTerminalListElement = null;
      MyMeterListElement m_MyMeterListElement = null;
      terminal m_Terminal = null;
      termdevice m_termdevice = null;
      ArrayList TermTaskInfoList = new ArrayList();
      int UnitType;
      Collection meters = null;
      Object[] meter_Array = null;
      meter m_Meter = null;
      meter_type m_MeterType = null;
      FuncListObject m_FuncListObject = null;
      int[] func_code;
      Date StartTime = null;
      Date EndTime = null;
      long m_time;
      ArrayList meter_list = null;
      ArrayList terminal_list = null;

      try {
        if (PursueTypeTabbedPane.getSelectedIndex() == 0) { //按计量单元追补
          terminal_list = new ArrayList();
          System.out.println("m_model.getRowCount() = " + m_model.getRowCount());
          HashMap Stockup = new HashMap();
          for (int i = 0; i < m_model.getRowCount(); i++) {
            m_MyTerminalListElement = (MyTerminalListElement) (m_model.
                getValueAt(i, 1));
            terminal m_tempTerminal = m_MyTerminalListElement.getTerminal();
            m_Terminal = (terminal) (CollectorDefine.m_HashTerminal.get(new
                Long(m_tempTerminal.getTerminalId())));
            if (m_Terminal == null) {
              String message = "计量单元:" + m_tempTerminal.getTerminalName() +
                  "已经不存在,请更新内存参数";
              String title = "告警";
              JOptionPane.showMessageDialog(this, message, title,
                                            JOptionPane.WARNING_MESSAGE);
              continue;
            }
            UnitType = m_Terminal.getUnitType();
            StartTime = (Date) (m_model.getValueAt(i, 3));
            EndTime = (Date) (m_model.getValueAt(i, 4));
            m_FuncListObject = (FuncListObject) (m_model.getValueAt(i, 2));
            channel_obj m_channel_obj = (channel_obj) (m_model.getValueAt(i, 5));
            System.out.println("");
            func_code = m_FuncListObject.getFuncCode();
            meters = m_Terminal.getMeters();
            if (meters == null || meters.size() <= 0) {
              String message = "计量单元:" + m_Terminal.getTerminalName() +
                  " 没有电表,不追补!!";
              String title = "告警";
              JOptionPane.showMessageDialog(this, message, title,
                                            JOptionPane.WARNING_MESSAGE);
              continue;
            }
            meter_Array = meters.toArray();
            if (UnitType == CollectorDefine.TERMINAL_TYPE) { //终端类型
              meter_list = new ArrayList();
              m_termdevice = m_Terminal.getTermDevice();
              long temp_type_long;
              if (m_termdevice != null) {
                System.out.println("************  终端类型:" +
                                   m_Terminal.getTerminalName() +
                                   "  func_code = " + m_FuncListObject.toString());
                long type_long = 0;
                for (int k = 0; k < func_code.length; k++) {
                  type_long += new Double(Math.pow(2, func_code[k])).longValue();
                }
                System.out.println("");
                System.out.println("************  type_long = " + type_long);
                int Inttype = new Long(type_long).intValue();
                System.out.println("************  type_long bin = " +
                                   Integer.toBinaryString(Inttype));
                temp_type_long = m_termdevice.getTaskType();
                Stockup.put(new Long(m_Terminal.getTerminalId()),
                            new Long(temp_type_long));
                m_termdevice.setTaskType(type_long);
                m_Terminal.setTermDevice(m_termdevice);

                int meters_length = meter_Array.length;
                for (int m = 0; m < func_code.length; m++) {
                  for (int j = 0; j < meters_length; j++) {
                    m_Meter = (meter) (meter_Array[j]);
                    m_time = StartTime.getTime() / 1000l;
                    switch (func_code[m]) {
                      case Constant.HIS_DATA_TYPE_ADD_VALUE:
                        m_Meter.setAddTimeTag(m_time);
                        break;
                      case Constant.HIS_DATA_TYPE_BASE_VALUE:
                        m_Meter.setBaseTimeTag(m_time);
                        break;
                      case Constant.METER_DATA_TYPE_DAY_BASE:
                        m_Meter.setDayBaseTimeTag(m_time);
                        break;
                      case Constant.METER_DATA_TYPE_PHASE_BASE:
                        m_Meter.setPhaseBaseTimeTag(m_time);
                        break;
                      case Constant.METER_DATA_TYPE_DAY_NEED:
                        m_Meter.setDayNeedTimeTag(m_time);
                        break;
                      case Constant.METER_DATA_TYPE_PHASE_NEED:
                        m_Meter.setPhaseNeedTimeTag(m_time);
                        break;
                      case Constant.METER_DATA_TYPE_MONTH_NEED:
                        m_Meter.setMonthNeedTimeTag(m_time);
                        break;
                      case Constant.METER_DATA_TYPE_MONTH_PHASE_NEED:
                        m_Meter.setMonthPhaseNeedTimeTag(m_time);
                        break;
                      case Constant.HIS_DATA_TYPE_YC:
                        m_Meter.setYcTimeTag(m_time);
                        break;
                      case Constant.METER_EVENT: {
                        if (m_termdevice != null) {
                          m_termdevice.setEventSampleTime(m_time);
                        }
                        break;
                      }
                      case Constant.HIS_IP_TYPE_ADD_VALUE:
                        m_Meter.setIpTimeTag(m_time);
                        break;
                      case Constant.HIS_IP_TYPE_BASE_VALUE:
                        m_Meter.setIpBaseTimeTag(m_time);
                        break;
                      case Constant.METER_IP_TYPE_DAY_BASE:
                        break;
                      default:
                        break;
                    }
                    meter_list.add(m_Meter);
                  }
                }
                m_Terminal.setEndTime(EndTime.getTime() / 1000l);
                m_Terminal.setMeters(meter_list);
                if (CheckBox.isSelected()) {
                  m_Terminal.setPri(CollectorDefine.HIGH_PRI);
                }
                m_Terminal.setInvalidStatus( -1);
                if (SysConnCheckBox.isSelected()) {
                  m_Terminal.setInvalidStatus(1);
                }

                // wj add jCheckBox1
                if (jCheckBox1.isSelected()) {
                  if (m_Terminal.getInvalidStatus() == 1) {
                    m_Terminal.setInvalidStatus(3);
                  }
                  else {
                    m_Terminal.setInvalidStatus(2);
                  }
                }

                m_Terminal.setComputerId( -1);
                if (m_channel_obj != null) {

                  m_Terminal.setComputerId(m_channel_obj.getChannel().
                                           getChannelId());
                  System.out.println("*********** 选中的channel = " +
                                     m_channel_obj.getChannel().getChannelName());
                }
                terminal_list.add(m_Terminal);
                meter_list = null;
              }
            }
            else { //非终端类型
              System.out.println("************  非终端类型: " +
                                 m_Terminal.getTerminalName() +
                                 "  func_code =  " + m_FuncListObject.toString());
              meter_list = new ArrayList();
              int meters_length = meter_Array.length;

              HashMap metertypeHash = new HashMap();
              for (int j = 0; j < meters_length; j++) {
                m_Meter = (meter) (meter_Array[j]);
                if (m_Meter != null) {
                  m_MeterType = m_Meter.getMeterType();
                  if (m_MeterType == null) {
                    continue;
                  }
                  else {
                    System.out.println("************  第" + j + "块电表");
                    long type_long = 0;
                    for (int k = 0; k < func_code.length; k++) {
                      type_long += new Double(Math.pow(2, func_code[k])).
                          longValue();
                    }
                    metertypeHash.put(new Long(m_MeterType.getMeterTypeId()),
                                      new Integer(m_MeterType.getPulseItem()));
                    m_MeterType.setPulseItem(new Long(type_long).intValue());
                    m_Meter.setMeterType(m_MeterType);
                    System.out.println("************  设置过以后的meter中的PulseItem :" +
                                       (m_Meter.getMeterType()).getPulseItem());
                  }
                  m_time = StartTime.getTime() / 1000l;
                  for (int m = 0; m < func_code.length; m++) {
                    switch (func_code[m]) {
                      case Constant.HIS_DATA_TYPE_ADD_VALUE:
                        m_Meter.setAddTimeTag(m_time);
                        break;
                      case Constant.HIS_DATA_TYPE_BASE_VALUE:
                        m_Meter.setBaseTimeTag(m_time);
                        break;
                      case Constant.METER_DATA_TYPE_DAY_BASE:
                        m_Meter.setDayBaseTimeTag(m_time);
                        break;
                      case Constant.METER_DATA_TYPE_PHASE_BASE:
                        m_Meter.setPhaseBaseTimeTag(m_time);
                        break;
                      case Constant.METER_DATA_TYPE_DAY_NEED:
                        m_Meter.setDayNeedTimeTag(m_time);

⌨️ 快捷键说明

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