📄 datapursueframe.java
字号:
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 + -