huresmanuseraction.java

来自「用JAVA环境开发的人力资源管理系统」· Java 代码 · 共 207 行

JAVA
207
字号
/*
 * Created on 2006-11-4
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package com.liyu.action;

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.DecimalFormat;
import java.text.NumberFormat;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartRenderingInfo;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.entity.StandardEntityCollection;
import org.jfree.chart.labels.PieSectionLabelGenerator;
import org.jfree.chart.labels.PieToolTipGenerator;
import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
import org.jfree.chart.labels.StandardPieToolTipGenerator;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.general.DefaultPieDataset;

import com.liyu.common.AbstractAction;
import com.liyu.form.HuResManUserForm;
import com.liyu.server.IHuResManUserServer;

/**
 * @author Administrator
 * 
 * TODO To change the template for this generated type comment go to Window -
 * Preferences - Java - Code Style - Code Templates
 */
public class HuResManUserAction extends AbstractAction {
    private static final String FN_FM = "fmstati";
    private static final String FN_JOB = "jobstati";
    private static final String FN_RTN = "rtn";
    private Font titleFont = new Font("黑体",Font.CENTER_BASELINE,18);

    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response) {
        HuResManUserForm buResManUserForm = (HuResManUserForm) form;
        IHuResManUserServer huResManUserServer = (IHuResManUserServer)getBean("huResManUserServer");
        String sFn = buResManUserForm.getFn();
        if (sFn == null) {
            return mapping.findForward("init");
        }
        if (sFn.equals(FN_FM)) {
            int femaleCnt;
            int maleCnt;
            buResManUserForm.setFMStatiInfo(huResManUserServer.getFmStati());
            femaleCnt = Integer.parseInt(buResManUserForm.getFMStatiInfo().getFemaleCnt());
            maleCnt = Integer.parseInt(buResManUserForm.getFMStatiInfo().getMaleCnt());
            DefaultPieDataset dataset = new DefaultPieDataset();
            dataset.setValue("男", maleCnt);
            dataset.setValue("女", femaleCnt);
            JFreeChart chart = ChartFactory.createPieChart3D("男女比例统计", dataset, true, false, false);
            
			//设置图片的背景色
			chart.setBackgroundPaint(new Color(215,215,215));
			
			//设置透明度,好像对servlet没有用
			chart.setBackgroundImageAlpha(0.5f);
			
			//设置图片标题的字体和大小
			TextTitle _title = new TextTitle("男女比例统计");
			_title.setFont(titleFont);
			chart.setTitle(_title);			

			PiePlot plot = (PiePlot) chart.getPlot();			
			
			plot.setNoDataMessage("无对应的数据,请重新查询。");
			plot.setNoDataMessagePaint(Color.red);
			
			//指定 section 轮廓线的厚度(OutlinePaint不能为null)
			plot.setOutlineStroke(new BasicStroke(0));
			
			//设置第一个 section 的开始位置,默认是12点钟方向
			plot.setStartAngle(90);			
			
			String unitSytle = "{0}={1}({2})";

			plot.setToolTipGenerator(new StandardPieToolTipGenerator(unitSytle,
					NumberFormat.getNumberInstance(),
					new DecimalFormat("0.00%")));
			
			//指定图片的透明度
			plot.setForegroundAlpha(0.65f);
			
			//引出标签显示样式
			plot.setLabelGenerator(new StandardPieSectionLabelGenerator(unitSytle,
					NumberFormat.getNumberInstance(),
					new DecimalFormat("0.00%")));
				
			//图例显示样式
			plot.setLegendLabelGenerator(new StandardPieSectionLabelGenerator(unitSytle,
					NumberFormat.getNumberInstance(),
					new DecimalFormat("0.00%")));
			
            chart.setBackgroundPaint(java.awt.Color.green);
            HttpSession session = request.getSession();
            ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
            String filename = "";
            try {
                filename = ServletUtilities.saveChartAsPNG(chart, 400, 200, info, session);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;

            request.setAttribute("filename", filename); 
            request.setAttribute("graphURL",graphURL);
            return mapping.findForward("fmStati");
        } else if (sFn.equals(FN_JOB)) {
            int salesManagerCnt;
            int salesCnt;
            int ManagerCnt;
            buResManUserForm.setJobStatiInfo(huResManUserServer.getJobsStatic());
            salesManagerCnt = Integer.parseInt(buResManUserForm.getJobStatiInfo().getSalesManagerCnt());
            salesCnt = Integer.parseInt(buResManUserForm.getJobStatiInfo().getSalesCnt());
            ManagerCnt = Integer.parseInt(buResManUserForm.getJobStatiInfo().getManagerCnt());
            DefaultPieDataset dataset = new DefaultPieDataset();
            dataset.setValue("销售经理", salesManagerCnt);
            dataset.setValue("销售人员", salesCnt);
            dataset.setValue("总经理", ManagerCnt);
            JFreeChart chart = ChartFactory.createPieChart3D("职位比例统计", dataset, true, false, false);
            
			//设置图片的背景色
			chart.setBackgroundPaint(new Color(215,215,215));
			
			//设置透明度,好像对servlet没有用
			chart.setBackgroundImageAlpha(0.5f);
			
			//设置图片标题的字体和大小
			TextTitle _title = new TextTitle("职位比例统计");
			_title.setFont(titleFont);
			chart.setTitle(_title);			

			PiePlot plot = (PiePlot) chart.getPlot();			
			
			plot.setNoDataMessage("无对应的数据,请重新查询。");
			plot.setNoDataMessagePaint(Color.red);
			
			//指定 section 轮廓线的厚度(OutlinePaint不能为null)
			plot.setOutlineStroke(new BasicStroke(0));
			
			//设置第一个 section 的开始位置,默认是12点钟方向
			plot.setStartAngle(90);			
			
			String unitSytle = "{0}={1}({2})";

			plot.setToolTipGenerator(new StandardPieToolTipGenerator(unitSytle,
					NumberFormat.getNumberInstance(),
					new DecimalFormat("0.00%")));
			
			//指定图片的透明度
			plot.setForegroundAlpha(0.65f);
			
			//引出标签显示样式
			plot.setLabelGenerator(new StandardPieSectionLabelGenerator(unitSytle,
					NumberFormat.getNumberInstance(),
					new DecimalFormat("0.00%")));
				
			//图例显示样式
			plot.setLegendLabelGenerator(new StandardPieSectionLabelGenerator(unitSytle,
					NumberFormat.getNumberInstance(),
					new DecimalFormat("0.00%")));
			
            chart.setBackgroundPaint(java.awt.Color.green);
            HttpSession session = request.getSession();
            ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
            String filename = "";
            try {
                filename = ServletUtilities.saveChartAsPNG(chart, 400, 200, info, session);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;

            request.setAttribute("filename", filename); 
            request.setAttribute("graphURL",graphURL);
            return mapping.findForward("jobStati");
        }else if(sFn.equals(FN_RTN)){
            return mapping.findForward("huResManUser");
        }

        return null;
    }
}

⌨️ 快捷键说明

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