public void run()
{
try
{
Class reflectClass = Class.forName("com.zte.ums.zxnm01.common.alarmReport.AlarmDataExport");
Method m = reflectClass.getMethod(methodName, new Class[]{WritableSheet.class, WritableWorkbook.class, GenerationService.class});
m.invoke(reflectClass.newInstance(), new Object[]{ws, wwb, service});
// alarmDataExport.createHistoryReportByOlt(ws, wwb, service);
isOk = true;
}
catch(Exception e)
{
e.printStackTrace();
}
}
public class AlarmThreadHis9 extends Thread
{
private AlarmDataExport alarmDataExport;
private WritableSheet ws;
private WritableWorkbook wwb;
private GenerationService service;
public boolean isOk = false;
private String methodName;
public AlarmThreadHis9(AlarmDataExport alarmDataExport, WritableSheet ws, WritableWorkbook wwb, GenerationService service, String methodName)
{
this.alarmDataExport = alarmDataExport;
this.ws = ws;
this.wwb = wwb;
this.service = service;
this.methodName = methodName;
}
public void run()
{
try
{
Method m = AlarmDataExport.class.getMethod(methodName, new Class[]{WritableSheet.class, WritableWorkbook.class, GenerationService.class});
m.invoke(alarmDataExport, new Object[]{ws, wwb, service});
// alarmDataExport.createHistoryReportByOlt(ws, wwb, service);
isOk = true;
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
public class AlarmThreadHis extends Thread
{
private AlarmDataExport alarmDataExport;
public AlarmThreadHis(AlarmDataExport alarmDataExport)
{
this.alarmDataExport = alarmDataExport;
}
DBOperation[] dbOperations = new DBOperation[8];
GenerationService[] services = new GenerationService[8];
String[] methods = new String[]{"createNeAlarmTotalReport","createHistoryReport",
"createHistoryReportByTime","createInformReport",
"createHistoryReportByOlt","createHistoryReportByOnu",
"createHistoryReportByOnuDownLine","createHistoryReportByNeLinked"};
AlarmThreadHis9[] his9s = new AlarmThreadHis9[8];
public void run()
{
alarmDataExport.printInfoBeforeGenHisAlarmReport();
try
{
String templatePath = Utilities.getTemplateHisAlarmReportPath();
String destFile = alarmDataExport.getUtil().createHisAlarmReportPath();
WritableSheet ws = null;
Workbook hisin = Workbook.getWorkbook(new File(templatePath));
WritableWorkbook wwb = Workbook.createWorkbook(new File(destFile), hisin);
CellDataFormaterManager formaterManager = new CellDataFormaterManager(wwb);
for(int i = 0; i < 8; i++)
{
dbOperations[i] = new DBOperation();
services[i] = new GenerationService(formaterManager, dbOperations[i]);
his9s[i] = new AlarmThreadHis9(alarmDataExport, ws, wwb, services[i],methods[i]);
his9s[i].start();
}
// // alarmDataExport.createNeAlarmTotalReport(ws, wwb, service);
// AlarmThreadHis1 his1 = new AlarmThreadHis1(alarmDataExport, ws, wwb, services[0]);
// // alarmDataExport.createHistoryReport(ws, wwb, service);
// AlarmThreadHis2 his2 = new AlarmThreadHis2(alarmDataExport, ws, wwb, services[1]);
//// alarmDataExport.createHistoryReportByTime(ws, wwb, service);
// AlarmThreadHis3 his3 = new AlarmThreadHis3(alarmDataExport, ws, wwb, services[2]);
//// alarmDataExport.createInformReport(ws, wwb, service);
// AlarmThreadHis4 his4 = new AlarmThreadHis4(alarmDataExport, ws, wwb, services[3]);
//// alarmDataExport.createHistoryReportByOlt(ws, wwb, service);
// AlarmThreadHis5 his5 = new AlarmThreadHis5(alarmDataExport, ws, wwb, services[4]);
//// alarmDataExport.createHistoryReportByOnu(ws, wwb, service);
// AlarmThreadHis6 his6 = new AlarmThreadHis6(alarmDataExport, ws, wwb, services[5]);
//// alarmDataExport.createHistoryReportByOnuDownLine(ws, wwb, service);
// AlarmThreadHis7 his7 = new AlarmThreadHis7(alarmDataExport, ws, wwb, services[6]);
//// alarmDataExport.createHistoryReportByNeLinked(ws, wwb, service);
// AlarmThreadHis8 his8 = new AlarmThreadHis8(alarmDataExport, ws, wwb, services[7]);
//
// his1.start();
// his2.start();
// his3.start();
// his4.start();
// his5.start();
// his6.start();
// his7.start();
// his8.start();
//
// while(!his1.isOk || !his2.isOk|| !his3.isOk|| !his4.isOk|| !his5.isOk|| !his6.isOk|| !his7.isOk|| !his8.isOk)
// {
// System.out.println("running ..." + new Date().toLocaleString());
// Thread.sleep(6000);
// }
while(!isOK())
{
System.out.println("running ..." + new Date().toLocaleString());
Thread.sleep(6000);
}
for(int i = 0; i < dbOperations.length; i++)
{
dbOperations[i].closeDB();
}
wwb.write();
alarmDataExport.closeBook(hisin, wwb);
}
catch(Exception e)
{
e.printStackTrace();
}
System.out.println("running:"+ new Date().toLocaleString());
alarmDataExport.printInfoAfterGenHisAlarmReport();
}
private boolean isOK()
{
for(int i = 0; i < his9s.length; i++)
{
if(!his9s[i].isOk)
{
return false;
}
}
return true;
}
}
分享到:
相关推荐
invokeMethod.java 同一个类中调用方法示例 invokeOther.java 类的外部调用方法示例 invokeStaticMethod.java 调用静态方法示例 localVariable.java 演示局部变量 localVSmember.java 局部变量与成员变量同名...
给定一个C语言函数,要求实现在java类中进行调用。 45.如何获得数组的长度? 46.访问修饰符“public/private/protected/缺省的修饰符”的使用 47.用关键字final修饰一个类或者方法时,有何意义? 48.掌握类和...
有了java反射机制,什么都好办了,只需要写一个dao类,四个方法,增删改查,传入不同的对象,就OK啦,无需为每一个 表都创建dao类,反射机制会自动帮我们完成剩下的事情,这就是它的好处。说白了,反射机制就是专门...
11.3.1 一个类方法提取器 11.4 总结 11.5 练习 第12章 传递和返回对象 12.1 传递句柄 12.1.1 别名问题 12.2 制作本地副本 12.2.1 按值传递 12.2.2 克隆对象 12.2.3 使类具有克隆能力 12.2.4 成功的克隆 12.2.5 ...
11.3.1 一个类方法提取器 11.4 总结 11.5 练习 第12章 传递和返回对象 12.1 传递句柄 12.1.1 别名问题 12.2 制作本地副本 12.2.1 按值传递 12.2.2 克隆对象 12.2.3 使类具有克隆能力 12.2.4 成功的克隆 12.2.5 ...
11.3.1 一个类方法提取器 11.4 总结 11.5 练习 第12章 传递和返回对象 12.1 传递句柄 12.1.1 别名问题 12.2 制作本地副本 12.2.1 按值传递 12.2.2 克隆对象 12.2.3 使类具有克隆能力 12.2.4 成功的克隆 12.2.5 ...
11.3.1 一个类方法提取器 11.4 总结 11.5 练习 第12章 传递和返回对象 12.1 传递句柄 12.1.1 别名问题 12.2 制作本地副本 12.2.1 按值传递 12.2.2 克隆对象 12.2.3 使类具有克隆能力 12.2.4 成功的克隆 12.2.5 ...
11.3.1 一个类方法提取器 11.4 总结 11.5 练习 第12章 传递和返回对象 12.1 传递句柄 12.1.1 别名问题 12.2 制作本地副本 12.2.1 按值传递 12.2.2 克隆对象 12.2.3 使类具有克隆能力 12.2.4 成功的克隆 12.2.5 ...
学生提问:既然内部类是外部类的成员,是否可以为外部类定义子类,在子类中再定义一个内部类来重写其父类中的内部类? 211 6.7.4 局部内部类 211 6.7.5 匿名内部类 212 6.7.6 闭包(Closure)和回调 215 6.8 ...
11.3.1 一个类方法提取器 11.4 总结 11.5 练习 第12章 传递和返回对象 12.1 传递句柄 12.1.1 别名问题 12.2 制作本地副本 12.2.1 按值传递 12.2.2 克隆对象 12.2.3 使类具有克隆能力 12.2.4 成功的克隆 12.2.5 ...
37. 一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 18 38. 比较truncate和delete 命令 18 39. 解释$ORACLE_HOME 和$ORACLE_BASE的区别? 19 40. session与cookie的区别和联系? 19 41. ...
第8章Java的多线程机制266 8.1线程的概念266 8.1.1多线程的特点266 8.1.2线程的状态267 8.2Thread类268 8.2.1Thread类的构造方法268 8.2.2Thread类的常用方法268 8.3多线程程序的编写269 8.3.1利用Thread的...
4.2.2 Java库中的GregorianCalendar类 4.2.3更改器方法与访问器方法 4.3用户自定义类 4.3.1一个Employee类 4.3.2多个源文件的使用 4.3.3解析Employee类 4.3.4从构造器开始 5.2.2相等测试与...
11.3.1 一个类方法提取器 11.4 总结 11.5 练习 第12章 传递和返回对象 12.1 传递句柄 12.1.1 别名问题 12.2 制作本地副本 12.2.1 按值传递 12.2.2 克隆对象 12.2.3 使类具有克隆能力 12.2.4 成功的克隆 12.2.5 ...
面试题包括以下十九部分:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql...
11.3.1 一个类方法提取器 11.4 总结 11.5 练习 第12章 传递和返回对象 12.1 传递句柄 12.1.1 别名问题 12.2 制作本地副本 12.2.1 按值传递 12.2.2 克隆对象 12.2.3 使类具有克隆能力 12.2.4 成功的克隆 ...