📄 huadong.java.svn-base
字号:
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 + -