package com.sobey.cmop.mvc.poi.server;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.onecmdb.core.utils.bean.CiBean;
import org.onecmdb.core.utils.bean.ValueBean;
import com.sobey.cmop.mvc.poi.Utils;
import com.sobey.cmop.mvc.service.onecmdb.OneCmdbService;
/**
* 读取oneCMDB生成excel报表
*
* @author Administrator
*
*/
public class ServerReport {
private static String RESOURCE_TYPE = "Switch";
/**
* @param args
*/
public static void main(String[] args) {
List<Server> servers = getServerList();
// 1.创建一个 workbook
HSSFWorkbook workbook = new HSSFWorkbook();
// 2.创建一个 worksheet
HSSFSheet worksheet = workbook.createSheet(RESOURCE_TYPE);
// 3.定义起始行和列
int startRowIndex = 0;
int startColIndex = 0;
// 4.创建title,data,headers
ServerLayouter.buildReport(worksheet, startRowIndex, startColIndex);
// 5.填充数据
ServerLayouter.fillServer(worksheet, startRowIndex, startColIndex, servers);
String fileName = "D:\\" + RESOURCE_TYPE + ".xls";
Utils.write(fileName, worksheet);
}
public static List<Server> getServerList() {
List<Server> servers = new ArrayList<Server>();
Map<String, String> map = OneCmdbService.findCiByText(RESOURCE_TYPE);
for (String alias : map.keySet()) {
Server server = new Server();
CiBean ciBean = OneCmdbService.findCiBeanByAlias(alias);
server.setHostName(ciBean.getDisplayName());
for (ValueBean valueBean : ciBean.fetchAttributeValueBeans("SN")) {
server.setSn(valueBean.getValue());
}
for (ValueBean valueBean : ciBean.fetchAttributeValueBeans("GdzcSn")) {
server.setGdzcSn(valueBean.getValue());
}
for (ValueBean valueBean : ciBean.fetchAttributeValueBeans("Type")) {
server.setType(valueBean.getValue());
}
for (ValueBean valueBean : ciBean.fetchAttributeValueBeans("Rack")) {
CiBean rackCiBean = OneCmdbService.findCiBeanByAlias(valueBean.getValue());
server.setRack(rackCiBean.getDisplayName());
}
for (ValueBean valueBean : ciBean.fetchAttributeValueBeans("Model")) {
server.setModel(valueBean.getValue());
}
for (ValueBean valueBean : ciBean.fetchAttributeValueBeans("Site")) {
server.setSite(valueBean.getValue());
}
for (ValueBean valueBean : ciBean.fetchAttributeValueBeans("IPAddress")) {
server.setIpAddress(valueBean.getValue());
}
servers.add(server);
}
return servers;
}
}