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

📄 barchartdemo.java

📁 1.员工添加 2.人事调动 3.在职人员管理 4.部门(分厂)管理
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package pmsys.wyj;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.DynaActionForm;
import org.apache.struts.actions.DispatchAction;

import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.PreparedStatement;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.io.*;
import org.jfree.data.*;
import org.jfree.chart.*;
import org.jfree.chart.plot.*;
import org.jfree.data.category.*;

import pmsys.*;
import pmsys.wyj.*;

/**
 * 该类用于演示最简单的柱状图生成
 * @author Winter Lau
 */
public class BarChartDemo extends DispatchAction {
	//找出数据--职称
	public ActionForward tj_picture_zhicheng(ActionMapping mapping,
									ActionForm form,
									HttpServletRequest request,
									HttpServletResponse response) {
		ArrayList dlist1[] = new ArrayList[8];
		for (int i = 0; i < 8; i++) {
			dlist1[i] = new ArrayList();	
		}
		DynaActionForm dyform = (DynaActionForm) form;
		String tjdept = (String) dyform.get("tjdept");
		Connection conn = null; 
		Statement stmt = null;
		try{			
			DataSource ds = (DataSource)this.getDataSource(request,"oracledb");	
			conn = ds.getConnection();
			
			//查找数据库中全部职称类型的记录
			String sql = "SELECT * FROM zhichengs";
			stmt = conn.createStatement();
			ResultSet rs = stmt.executeQuery(sql);
			int k = 0;
			int n = 0;
			int h = 0;
			String n1 = "";
			for(int i = 0;rs.next(); i++){     
				int zhicheng_id = rs.getInt("zhicheng_id");
				n = 0;
				h = 0;
				n1 = "";
				//查找数据库中匹配职称类型的记录        
				String sql2 = "SELECT * FROM employees e,emp_zhich ez WHERE e.emp_id=ez.emp_id AND ez.zhicheng_id=? AND e.dep_dep_id=?";
				PreparedStatement pstmt = conn.prepareStatement(sql2);
				pstmt.setInt(1,zhicheng_id);
				pstmt.setString(2,tjdept);
				ResultSet rs2 = pstmt.executeQuery();	
				while(rs2.next()){
					
					UserForm dept1 = new UserForm();
					dept1.setDeptno(rs2.getInt("emp_id")+"");
					dept1.setDname(rs2.getString("emp_name"));
					dlist1[i].add(dept1);
					n++;
					k++;
				}
				n1 = n + "";
				ArrayList dlist2 = new ArrayList();
				UserForm dept3 = new UserForm();
				dept3.setDeptno(n1);
				dlist2.add(dept3);
				//request.setAttribute("j" + i,dlist2);
				request.setAttribute("j" + i,n1);
				String dept = "dept" + i;
				request.setAttribute(dept,dlist1[i]);
				//查找全厂该职称总数
				String sql4 = "SELECT * FROM employees e,emp_zhich ez WHERE e.emp_id=ez.emp_id AND ez.zhicheng_id=?";
				PreparedStatement pstmt4 = conn.prepareStatement(sql4);
				pstmt4.setInt(1,zhicheng_id);
				ResultSet rs4 = pstmt4.executeQuery();
				while(rs4.next()){
					h++;
				}
				request.setAttribute("count" + i,h + "");	
			}
			//查找当前部门名称
			String sql3 = "SELECT * FROM departments where dep_id=?";
			PreparedStatement pstmt3 = conn.prepareStatement(sql3);
			pstmt3.setString(1,tjdept);
			ResultSet rs3 = pstmt3.executeQuery();
			rs3.next();
			request.setAttribute("dept",rs3.getString("dep_name"));
			request.setAttribute("dep_id",rs3.getString("dep_id"));
			//某部门总人数
			request.setAttribute("dept_count",k + "");  
		} catch(Exception e1) {
			e1.printStackTrace();
		} finally {
			if (conn != null) {
				try {
					conn.close();
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		}
		return mapping.findForward("picture_zhicheng");
	}
	//绘图----职称
	public ActionForward picture_zhicheng(ActionMapping mapping,
									ActionForm form,
									HttpServletRequest request,
									HttpServletResponse response) throws IOException{
		String dept = (String)request.getAttribute("dept");

		String dept_id = (String)request.getAttribute("dept_id");
		int j0 = Integer.parseInt((String)request.getAttribute("j0"));
		int j1 = Integer.parseInt((String)request.getAttribute("j1"));
		int j2 = Integer.parseInt((String)request.getAttribute("j2"));
		int j3 = Integer.parseInt((String)request.getAttribute("j3"));
		int j4 = Integer.parseInt((String)request.getAttribute("j4"));
		int j5 = Integer.parseInt((String)request.getAttribute("j5"));
		int j6 = Integer.parseInt((String)request.getAttribute("j6"));
		int j7 = Integer.parseInt((String)request.getAttribute("j7"));
		
		//CategoryDataset dataset = getDataSet2();
		DefaultCategoryDataset datasets = new DefaultCategoryDataset();
		datasets.addValue(j0, dept, "经济师");
		datasets.addValue(j1, dept, "助理师");
		datasets.addValue(j2, dept, "工程师");
		datasets.addValue(j3, dept, "高工师");
		datasets.addValue(j4, dept, "会计师");
		datasets.addValue(j5, dept, "高会师");
		datasets.addValue(j6, dept, "统计师");
		datasets.addValue(j7, dept, "政治师");
		CategoryDataset dataset = datasets;
		JFreeChart chart = ChartFactory.createBarChart3D(
							"员工比例图", // 图表标题
							"类型", // 目录轴的显示标签
							"人数", // 数值轴的显示标签
							dataset, // 数据集
							PlotOrientation.VERTICAL, // 图表方向:水平、垂直
							true, 	// 是否显示图例(对于简单的柱状图必须是false)
							false, 	// 是否生成工具
							false 	// 是否生成URL链接
							);
							
		FileOutputStream fos_jpg = null;
		try {
			fos_jpg = new FileOutputStream("c:\\zhicheng.jpg");
			ChartUtilities.writeChartAsJPEG(fos_jpg,100,chart,600,400,null);
		} finally {
			try {
				fos_jpg.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return mapping.findForward("tj_zhicheng_pic");
	}
	/**
	 * 获取一个演示用的简单数据集对象
	 * @return
	 */
	private static CategoryDataset getDataSet() {
		DefaultCategoryDataset dataset = new DefaultCategoryDataset();
		dataset.addValue(10, null, "员工");
		dataset.addValue(20, null, "厂长");
		dataset.addValue(30, null, "副厂长");
		dataset.addValue(40, null, "技术员");
		//dataset.addValue(500, null, "荔枝");
		return dataset;
	}
	/**
	 * 获取一个演示用的组合数据集对象
	 * @return
	 */
	private static CategoryDataset getDataSet2() {
		DefaultCategoryDataset dataset = new DefaultCategoryDataset();
		dataset.addValue(10, "部门", "员工");
		//dataset.addValue(100, "上海", "苹果");
		//dataset.addValue(100, "广州", "苹果");
		dataset.addValue(20, "部门", "厂长");
		//dataset.addValue(200, "上海", "梨子");
		//dataset.addValue(200, "广州", "梨子");
		dataset.addValue(30, "部门", "副厂长");
		//dataset.addValue(300, "上海", "葡萄");
		//dataset.addValue(300, "广州", "葡萄");
		dataset.addValue(40, "部门", "技术员");
		//dataset.addValue(400, "上海", "香蕉");
		//dataset.addValue(400, "广州", "香蕉");
		//dataset.addValue(500, "北京", "荔枝");
		//dataset.addValue(500, "上海", "荔枝");
		//dataset.addValue(500, "广州", "荔枝");
		return dataset;
	}
	//找出数据--性别
	public ActionForward tj_picture_xingbie(ActionMapping mapping,
									ActionForm form,
									HttpServletRequest request,
									HttpServletResponse response) {
		ArrayList dlist1[] = new ArrayList[2];
		for (int i = 0; i < 2; i++) {
			dlist1[i] = new ArrayList();	
		}
		DynaActionForm dyform = (DynaActionForm) form;
		String tjdept = (String) dyform.get("tjdept");
		//TJ_Type_query ttq = new TJ_Type_query();

		Connection conn = null;
		Statement stmt = null;
		try{

			//链接池连接数据库
			DataSource ds = (DataSource)this.getDataSource(request,"oracledb");
			
			conn = ds.getConnection();
			
			//查找数据库中全部职称类型的记录
			int k = 0;
			int n = 0;
			int h = 0;
			String n1 = "";
			String sex = "";
			for(int i = 0;i < 2; i++){     
				if (i == 0){
					sex = "男";
				}else {
					sex = "女";
				}
				n = 0;
				h = 0;
				n1 = "";
				//查找数据库中匹配职称类型的记录        
				String sql2 = "SELECT * FROM employees e WHERE e.emp_sex=? AND e.dep_dep_id=?";
				PreparedStatement pstmt = conn.prepareStatement(sql2);
				pstmt.setString(1,sex);
				pstmt.setString(2,tjdept);
				ResultSet rs2 = pstmt.executeQuery();
					
				while(rs2.next()){
					
					UserForm dept1 = new UserForm();
					dept1.setDeptno(rs2.getInt("emp_id")+"");
					dept1.setDname(rs2.getString("emp_name"));
					dlist1[i].add(dept1);
					n++;
					k++;
				}
				n1 = n + "";
				ArrayList dlist2 = new ArrayList();
				UserForm dept3 = new UserForm();
				dept3.setDeptno(n1);
				dlist2.add(dept3);
				request.setAttribute("j" + i,n1);
				String dept = "dept" + i;
				request.setAttribute(dept,dlist1[i]);
				request.setAttribute("count",k + "");
				//查找全厂该职称总数
				String sql4 = "SELECT * FROM employees e WHERE e.emp_sex=?";
				//stmt = conn.createStatement();
				PreparedStatement pstmt4 = conn.prepareStatement(sql4);
				pstmt4.setString(1,sex);
				ResultSet rs4 = pstmt4.executeQuery();
				while(rs4.next()){
					h++;
				}
				request.setAttribute("count" + i,h + "");	
			}
			//查找当前部门名称
			String sql3 = "SELECT * FROM departments where dep_id=?";
			//stmt = conn.createStatement();
			PreparedStatement pstmt3 = conn.prepareStatement(sql3);
			pstmt3.setString(1,tjdept);
			ResultSet rs3 = pstmt3.executeQuery();
			rs3.next();
			request.setAttribute("dept",rs3.getString("dep_name"));
			request.setAttribute("dep_id",rs3.getString("dep_id"));
			//某部门有职称人数
			request.setAttribute("dept_count",k + "");  
		
		} catch(Exception e1) {
			e1.printStackTrace();
		} finally {
			if (conn != null) {
				try {
					conn.close();
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		}
			
		request.setAttribute("dept0",dlist1[0]);
		request.setAttribute("dept1",dlist1[1]);
		return mapping.findForward("picture_xingbie");	
	}
	//绘图----性别
	public ActionForward picture_xingbie(ActionMapping mapping,
									ActionForm form,
									HttpServletRequest request,
									HttpServletResponse response) throws IOException{
		String dept = (String)request.getAttribute("dept");
		

⌨️ 快捷键说明

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