⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 matebyjfree.java

📁 JSP移动商品管理平台源代码.........
💻 JAVA
字号:
package imis_mate.common;

import imis_mate.DAO.DBConnection;
import imis_mate.DAO.MaterialTypeDAO;
import imis_mate.DAO.OrganDAO;
import imis_mate.bean.MaterialChangeBean;

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.Date;
import java.util.HashMap;
import java.util.Iterator;

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.DefaultCategoryDataset;
import org.jfree.data.DefaultPieDataset;
import org.jfree.data.XYDataset;
import org.jfree.data.time.Day;
import org.jfree.data.time.Month;
import org.jfree.data.time.RegularTimePeriod;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.data.time.TimeSeriesDataItem;
import org.jfree.data.time.Year;

import database.DBPoolManager;

public class MateByJFree {
//	public static HashMap getTongjiTu(String userId, String startDate, String endDate, String type) {
//		HashMap list = new HashMap();
//        DBPoolManager db = new DBPoolManager();
//        db.getConnection();
//		String sql ="";
//		String sql1 = "";
//		if(!userId.equals("all")) {
//			sql1 = "select MaterialTypeNo from ElecMeter_Info where UserId='" + userId + "' order by ElecMeterRegNo Desc"; // 户号下的电表编号
//       	} else {
//       		sql1 = "select ElecMeterRegNo from ElecMeter_Info order by ElecMeterRegNo Desc"; // 户号下的电表编号
//       	}
//		String no = "";
//
//		try {			
//			String    s    = null;		
//			Statement stmt = db.conn.createStatement();
//			ResultSet rest = stmt.executeQuery(sql1);
//	
//			while (rest.next()) {
//				no = no + "'" + rest.getString("ElecMeterRegNo") + "',";
//			}			
//			no = no.substring(0, no.length() - 1);
//			
//			rest.close();
//			
//			if(type.equals("1") && !userId.equals("all")) {	// 按电量
//	        	sql  = "select sum(nowreading - ElecMeterReading) as nowreading,to_char(readdate,'yyyy-mm') as readdate from Elec_Use_Info " +
//	        			"where elecmeterregno in (" + no + ") and readdate between (to_date('"+ startDate + "','yyyy-mm-dd')) " + 
//	        			"and (to_date('"+ endDate + "','yyyy-mm-dd')) group by to_char(readdate,'yyyy-mm')";
//	        } else if(type.equals("1") && userId.equals("all")) {	// 按电量
//	        	sql  = "select sum(nowreading - ElecMeterReading) as nowreading,to_char(readdate,'yyyy-mm') as readdate from Elec_Use_Info " +
//    					"where readdate between (to_date('"+ startDate + "','yyyy-mm-dd')) " + 
//    						"and (to_date('"+ endDate + "','yyyy-mm-dd')) group by to_char(readdate,'yyyy-mm')";
//	        } else if(type.equals("2") && !userId.equals("all")) {		// 按价格
//	        	sql  =  "select sum((nowreading - ElecMeterReading)*priceunit) as nowreading,to_char(readdate,'yyyy-mm') as readdate from Elec_Use_Info " +
//    					"where elecmeterregno in (" + no + ") and readdate between (to_date('"+ startDate + "','yyyy-mm-dd')) " + 
//    					"and (to_date('"+ endDate + "','yyyy-mm-dd')) group by to_char(readdate,'yyyy-mm')";  
//	        } else if(type.equals("2") && userId.equals("all")) {		// 按价格
//	        	sql  =  "select sum((nowreading - ElecMeterReading)*priceunit) as nowreading,to_char(readdate,'yyyy-mm') as readdate from Elec_Use_Info " +
//						"where readdate between (to_date('"+ startDate + "','yyyy-mm-dd')) " + 
//						"and (to_date('"+ endDate + "','yyyy-mm-dd')) group by to_char(readdate,'yyyy-mm')";  
//	        }
//			
//			Statement stmt1 = db.conn.createStatement();
//			
//			ResultSet rest1 = stmt1.executeQuery(sql);
//			while (rest1.next()) {
//				list.put(rest1.getString("readdate"), rest1.getFloat("nowreading"));
//			}
//			rest1.close();
//			stmt1.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){
		
	    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();
			i++;
		}
		Arrays.sort(deptname);
		for(int j = 0; j < deptname.length; j++) {
			deptarea[j] = Float.parseFloat(hash.get(deptname[j]).toString());
		}
		
		/*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链接
									);
		
		}
		if(a==3) {	
			TimeSeries time = new TimeSeries("用户");
			if(length != 0) {
				int startYear = Integer.parseInt(deptname[0].split("-")[0]);
				int startMonth = Integer.parseInt(deptname[0].split("-")[1]);
				int endYear = Integer.parseInt(deptname[length - 1].split("-")[0]);
				int endMonth = Integer.parseInt(deptname[length - 1].split("-")[1]);
				
			
				for(int k = 0; k < deptname.length; k++) {
					int year = Integer.parseInt(deptname[k].split("-")[0]);
					int mon = Integer.parseInt(deptname[k].split("-")[1]);
					
					time.add(new TimeSeriesDataItem(new Day(1,mon+1,year),new Double(deptarea[k])));
				}	
			}
			TimeSeriesCollection dataset = new TimeSeriesCollection();
			dataset.addSeries(time);
		
			chart =	ChartFactory.createTimeSeriesChart(
									title,
									"日期",
									y,
									dataset,
									false,
									false,
									false);
		}
			return chart;
	}

	public static HashMap getTongjiTu(String materialTypeNo, String startDate, String endDate, String type) {
		// TODO Auto-generated method stub
		HashMap list = new HashMap();
		Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		String sql = null;
		MaterialTypeDAO mateTypeDAO = new MaterialTypeDAO();
		
		if(type.equals("1") && materialTypeNo.equals("all")) {
				   sql = "SELECT SUM(Material_Buy_Detail.InCount) as nowreading, to_char(InDate,'yyyy-mm') as readdate " +
						 "FROM Material_Buy_Detail,Material_Buy_Table " +
						 "WHERE Material_Buy_Detail.BuyNo = Material_Buy_Table.BuyNo AND " +
//						 "Material_Buy_Table.ApplyDep = "+applyDep+" AND " +
						 "Material_Buy_Table.InDate BETWEEN TO_DATE('"+startDate+"','YYYY-MM-DD') AND TO_DATE('"+endDate+"','YYYY-MM-DD') " +
						 "GROUP by to_char(InDate,'yyyy-mm')";
		} else if(type.equals("1")) {
			       sql = "SELECT SUM(Material_Buy_Detail.InCount) as nowreading, to_char(InDate,'yyyy-mm') as readdate " +
						 "FROM Material_Buy_Detail,Material_Buy_Table " +
						 "WHERE Material_Buy_Detail.BuyNo = Material_Buy_Table.BuyNo AND " +
//						 "Material_Buy_Table.ApplyDep = "+applyDep+" AND " +
						 "Material_Buy_Table.InDate BETWEEN TO_DATE('"+startDate+"','YYYY-MM-DD') AND TO_DATE('"+endDate+"','YYYY-MM-DD') AND " +
//						 "Material_Buy_Detail.materialTypeNo = '"+materialTypeNo+"' " +
						 "Material_Buy_Detail.materialTypeNo IN "+mateTypeDAO.getMaterialSQL(materialTypeNo)+" "+
						 "GROUP by to_char(InDate,'yyyy-mm')";
		}else if(type.equals("2") && materialTypeNo.equals("all")) {
			       sql = "SELECT SUM(Material_Buy_Detail.PriceUnit) as nowreading, to_char(InDate,'yyyy-mm') as readdate " +
						 "FROM Material_Buy_Detail,Material_Buy_Table " +
						 "WHERE Material_Buy_Detail.BuyNo = Material_Buy_Table.BuyNo AND " +
//						 "Material_Buy_Table.ApplyDep = "+applyDep+" AND " +
						 "Material_Buy_Table.InDate BETWEEN TO_DATE('"+startDate+"','YYYY-MM-DD') AND TO_DATE('"+endDate+"','YYYY-MM-DD') " +
						 "GROUP by to_char(InDate,'yyyy-mm')";
		}else if(type.equals("2")) {
			       sql = "SELECT SUM(Material_Buy_Detail.PriceUnit) as nowreading, to_char(InDate,'yyyy-mm') as readdate " +
						 "FROM Material_Buy_Detail,Material_Buy_Table " +
						 "WHERE Material_Buy_Detail.BuyNo = Material_Buy_Table.BuyNo AND " +
//						 "Material_Buy_Table.ApplyDep = "+applyDep+" AND " +
						 "Material_Buy_Table.InDate BETWEEN TO_DATE('"+startDate+"','YYYY-MM-DD') AND TO_DATE('"+endDate+"','YYYY-MM-DD')AND " +
//						 "Material_Buy_Detail.materialTypeNo = '"+materialTypeNo+"' " +
						 "Material_Buy_Detail.materialTypeNo IN "+mateTypeDAO.getMaterialSQL(materialTypeNo)+" "+
						 "GROUP by to_char(InDate,'yyyy-mm')";
		}
//		System.out.println(sql);
		try {
			conn = DBConnection.getConnection();
			stmt = conn.createStatement();
			rs = stmt.executeQuery(sql);
			
			while(rs.next()) {
				list.put(rs.getString("readdate"), rs.getFloat("nowreading"));
			}
			
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			DBConnection.close(rs);
			DBConnection.close(stmt);
			DBConnection.close(conn);
		}
		return list;
	}

	public static HashMap getOutTongjiTu(String materialTypeNo, String startDate, String endDate, String useDep, String type) {
		// 领用统计
		HashMap list = new HashMap();
		Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		String sql = null;
		OrganDAO organDAO = new OrganDAO();
		MaterialTypeDAO mateTypeDAO = new MaterialTypeDAO();
		
		if(type.equals("1") && materialTypeNo.equals("all")) {
					sql="SELECT SUM(OutCount) AS nowreading, TO_CHAR(OutDate,'YYYY-MM') AS readdate " +
						"FROM Material_Out_Table,Material_Out_Detail,organ " +
						"WHERE Material_Out_Table.Outno = Material_Out_Detail.Outno " +
						"AND Material_Out_Table.UseDep = organ.organid " +
						//"AND UseDep = " + useDep + "or organ.SupOrganID =  " + useDep +
						"AND UseDep IN "+organDAO.getOrganSQL(Integer.parseInt(useDep),"useDep")+" "+
						"AND OutDate BETWEEN TO_DATE('"+startDate+"','YYYY-MM-DD') AND TO_DATE('"+endDate+"','YYYY-MM-DD') " +
						"GROUP BY TO_CHAR(OutDate,'YYYY-MM')";
		} else if(type.equals("1")) {
					sql="SELECT SUM(OutCount) AS nowreading, TO_CHAR(OutDate,'YYYY-MM') AS readdate " +
						"FROM Material_Out_Table,Material_Out_Detail,organ " +
						"WHERE Material_Out_Table.Outno = Material_Out_Detail.Outno " +
						"AND Material_Out_Table.UseDep = organ.organid " +
//						"AND UseDep = " + useDep + "or organ.SupOrganID =  " + useDep +
						"AND UseDep IN "+organDAO.getOrganSQL(Integer.parseInt(useDep),"useDep")+" "+
//						"AND MaterialTypeNo = " + materialTypeNo +
						"AND materialTypeNo IN "+mateTypeDAO.getMaterialSQL(materialTypeNo)+" "+
						"AND OutDate BETWEEN TO_DATE('"+startDate+"','YYYY-MM-DD') AND TO_DATE('"+endDate+"','YYYY-MM-DD') " +
						"GROUP BY TO_CHAR(OutDate,'YYYY-MM')";
		}else if(type.equals("2") && materialTypeNo.equals("all")) {
					sql="SELECT SUM(PriceUnit) AS nowreading, TO_CHAR(OutDate,'YYYY-MM') AS readdate " +
						"FROM Material_Out_Table,Material_Out_Detail,organ " +
						"WHERE Material_Out_Table.Outno = Material_Out_Detail.Outno " +
						"AND Material_Out_Table.UseDep = organ.organid " +
//						"AND UseDep = " + useDep + " or organ.SupOrganID =  " + useDep +
						"AND UseDep IN "+organDAO.getOrganSQL(Integer.parseInt(useDep),"useDep")+" "+
						"AND OutDate BETWEEN TO_DATE('"+startDate+"','YYYY-MM-DD') AND TO_DATE('"+endDate+"','YYYY-MM-DD') " +
						"GROUP BY TO_CHAR(OutDate,'YYYY-MM')";
		}else if(type.equals("2")) {
					sql="SELECT SUM(PriceUnit) AS nowreading, TO_CHAR(OutDate,'YYYY-MM') AS readdate " +
						"FROM Material_Out_Table,Material_Out_Detail,organ " +
						"WHERE Material_Out_Table.Outno = Material_Out_Detail.Outno " +
						"AND Material_Out_Table.UseDep = organ.organid " +
//						"AND UseDep = " + useDep + " or organ.SupOrganID =  " + useDep +
						"AND UseDep IN "+organDAO.getOrganSQL(Integer.parseInt(useDep),"useDep")+" "+
//						"AND MaterialTypeNo = " + materialTypeNo +
						"AND materialTypeNo IN "+mateTypeDAO.getMaterialSQL(materialTypeNo)+" "+
						"AND OutDate BETWEEN TO_DATE('"+startDate+"','YYYY-MM-DD') AND TO_DATE('"+endDate+"','YYYY-MM-DD') " +
						"GROUP BY TO_CHAR(OutDate,'YYYY-MM')";
		}
		try {
			conn = DBConnection.getConnection();
			stmt = conn.createStatement();
			rs = stmt.executeQuery(sql);
			
			while(rs.next()) {
				list.put(rs.getString("readdate"), rs.getFloat("nowreading"));
			}
			
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			DBConnection.close(rs);
			DBConnection.close(stmt);
			DBConnection.close(conn);
		}
		return list;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -