📄 assignroomtongji.java
字号:
package imis_hous.jfree;
import imis_hous.com.bean.AreaInfoEH;
import imis_hous.com.bean.Tongji_bean;
import imis_hous.com.db.DBClose;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.CategoryDataset;
import org.jfree.data.DatasetUtilities;
import org.jfree.data.DefaultCategoryDataset;
import org.jfree.data.DefaultPieDataset;
import cmis.database.DBPoolManager;
public class AssignRoomTongji {
public AssignRoomTongji() {
}
public HashMap getAssignRoomTongji() { // 统计房屋数量
HashMap list = new HashMap();
DBPoolManager db = new DBPoolManager();
db.getConnection();
String sql ="select count(*) as num, r.usedept from room_info r,organ o where r.usedept=o.organid group by usedept";
try {
String s = null;
Statement stmt = db.conn.createStatement();
ResultSet rest = stmt.executeQuery(sql);
while (rest.next()) {
String sql2 = "select organname from organ where organid='" + rest.getString("usedept") + "'";
Statement stmt2 = db.conn.createStatement();
ResultSet rest2 = stmt2.executeQuery(sql2);
if(rest2.next()) {
list.put(rest2.getString("organname"), rest.getFloat("num"));
}
rest2.close();
stmt2.close();
}
rest.close();
stmt.close();
} catch (SQLException ex) {
System.err.println("Get OrganTree SQLException: " + ex.toString());
ex.printStackTrace();
} finally {
db.freeConnection();
}
return list;
}
public HashMap getAssignRoomTongjiArea() { // 统计房屋面积
HashMap list = new HashMap();
DBPoolManager db = new DBPoolManager();
db.getConnection();
String sql ="select sum(room_info.RoomArea) as area,room_info.UseDept " +
"from buildings_info,room_info " +
"where buildings_info.buildingnu=room_info.buildingnu group by room_info.usedept";
try {
String s = null;
Statement stmt = db.conn.createStatement();
ResultSet rest = stmt.executeQuery(sql);
while (rest.next()) {
String sql2 = "select organname from organ where organid='" + rest.getString("usedept") + "'";
Statement stmt2 = db.conn.createStatement();
ResultSet rest2 = stmt2.executeQuery(sql2);
if(rest2.next()) {
list.put(rest2.getString("organname"), rest.getFloat("area"));
}
rest2.close();
stmt2.close();
}
rest.close();
stmt.close();
} catch (SQLException ex) {
System.err.println("Get OrganTree SQLException: " + ex.toString());
ex.printStackTrace();
} finally {
db.freeConnection();
}
return list;
}
public static JFreeChart getchart(HashMap hash,int a,String title, String y) throws Exception {
JFreeChart chart=null;
int length = hash.size();
String []deptname = new String[length]; // 日期数组
float []deptarea = new float[length]; // 数值数组
//
Iterator areaPieKey = hash.keySet().iterator();// 键迭代
Iterator areaPieValue = hash.values().iterator();// 值迭代
int i=0;
while(areaPieKey.hasNext()){
deptname[i]=(String)areaPieKey.next();
// System.out.println(deptname[i]);
i++;
}
for(int j = 0; j < deptname.length; j++) {
deptarea[j] = Float.parseFloat(hash.get(deptname[j]).toString());
// System.out.println(deptarea[j]);
}
/*
* i=0; while(areaPieValue.hasNext()){
* deptarea[i]=Float.parseFloat(areaPieValue.next().toString()); i++; }
*/
if(a==1){
DefaultPieDataset data = new DefaultPieDataset();
for(int j=0;j<length;j++ )
data.setValue(deptname[j],deptarea[j]);
PiePlot plot = new PiePlot(data);
chart = new JFreeChart("",JFreeChart.DEFAULT_TITLE_FONT, plot, true);
chart.setBackgroundPaint(java.awt.Color.white); // 可选,设置图片背景色
chart.setTitle(title); // 可选,设置图片标题
}
if(a==2){
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
for(int j=0;j<length;j++ ){
dataset.addValue(deptarea[j],"",deptname[j]);
}
chart = ChartFactory.createBarChart3D(
title, // 图表标题
"部门", // 目录轴的显示标签
y, // 数值轴的显示标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
false, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
}
return chart;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -