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

📄 staple.java

📁 这是本人曾经在公司里用的,内部开发框架,基于struts+hibernate今天分享给大家
💻 JAVA
字号:
package cn.bway.foreigntrade.report;

import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.time.Day;
import org.jfree.data.time.Month;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.data.xy.XYDataset;

public class staple extends HttpServlet {
	public static int stores=1;
	public static String years="";
	public static String storesNames="";
	public static String month="";
	public static Integer value=0;
	public static Integer []sum=new Integer[12];
	public staple() {
		
	}
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		OutputStream out = response.getOutputStream();
		
		try {
			request.setCharacterEncoding("utf-8");
			String type = request.getParameter("type");
			stores=Integer.parseInt(request.getParameter("stores"));
			years=request.getParameter("years");
			System.out.println(years+"=========================================");
			//判断仓库类型
			switch (stores){
			case 1:
				storesNames="询价产品统计";
					break;
			case 2:
				storesNames="订单产品统计";
				break;
			case 3:
				storesNames="生产产品统计";
				break;
			case 4:
				storesNames="采购产品统计";
				break;
			case 5:
				storesNames="入库产品统计";
				break;
			case 6:
				storesNames="出库产品统计";
				break;
			case 7:
				storesNames="装箱产品统计";
				break;
			case 8:
				storesNames="样品产品统计";
				break;
			case 9:
				storesNames="退货产品统计";
				break;
			}
			//结所有值,赋初值
			for(int s=0;s<12;s++){
				sum[s]=null;
			}
			//开始成形图形
			JFreeChart chart = null;
			if (type.equals("pie")) {//判断是否生成饼图				
				chart = createPieChart();
			} else if (type.equals("bar")) {//判断是否生成柱形图	
				chart = createBarChart();
			} else if (type.equals("time")) {//判断是否生成曲线图	
				chart = createTimeSeriesChart();
			}
			if (chart != null) {
				response.setContentType("image/png");
				ChartUtilities.writeChartAsPNG(out, chart, 700, 420);
			}
		} catch (Exception e) {
			System.err.println(e.toString());
		} finally {
			out.close();
		}
	}
	//饼图
	private JFreeChart createPieChart() {
		DefaultPieDataset data = new DefaultPieDataset();	
//		String oo=years.;
		switch (stores){		
		case 1://询价产品统计
			sum=new BarGetValues().getExport(years, "");
			break;
		case 2://订单产品统计
			sum=new BarGetValues().guestorder(years, "");
			break;
		case 3://生产产品统计
			sum=new BarGetValues().producenote(years, "");
			break;
		case 4://采购产品统计
			sum=new BarGetValues().buydocument(years,"");
			break;
		case 5://入库产品统计
			sum=new BarGetValues().instoredocument(years,"");
			break;
		case 6://出库产品统计
			sum=new BarGetValues().outstoredocument(years,"");
			break;
		case 7://装箱产品统计
			sum=new BarGetValues().incasementdocument(years,"");
			break;
		case 8://样品产品统计
			sum=new BarGetValues().sampledocument(years,"");
			break;
		case 9://退货产品统计
			sum=new BarGetValues().canceldocument(years,"");
			break;
	}
	for(int i=0;i<12;i++){	
			data.setValue(new staple().getMonth(i+1), new Double(sum[i]));
		}
		JFreeChart chart = ChartFactory.createPieChart(storesNames, data, true,
				true, false);
		return chart;
	}
	
	//柱形图
	private JFreeChart createBarChart() {
		DefaultCategoryDataset dataset = new DefaultCategoryDataset();
		switch (stores){
			case 1://询价产品统计
				sum=new BarGetValues().getExport(years, "");
				break;
			case 2://订单产品统计
				sum=new BarGetValues().guestorder(years, "");
				break;
			case 3://生产产品统计
				sum=new BarGetValues().producenote(years, "");
				break;
			case 4://采购产品统计
				sum=new BarGetValues().buydocument(years,"");
				break;
			case 5://入库产品统计
				sum=new BarGetValues().instoredocument(years,"");
				break;
			case 6://出库产品统计
				sum=new BarGetValues().outstoredocument(years,"");
				break;
			case 7://装箱产品统计
				sum=new BarGetValues().incasementdocument(years,"");
				break;
			case 8://样品产品统计
				sum=new BarGetValues().sampledocument(years,"");
				break;
			case 9://退货产品统计
				sum=new BarGetValues().canceldocument(years,"");
				break;
		}
		for(int i=0;i<12;i++){	
			dataset.addValue(sum[i],storesNames,new staple().getMonth(i+1));
		}
		JFreeChart chart = ChartFactory.createBarChart3D(storesNames,"Category", "Value", dataset, PlotOrientation.VERTICAL, true,true, false);
		return chart;
	}
	//曲线图
	private JFreeChart createTimeSeriesChart() {
		TimeSeries series = new TimeSeries("Random Data");
		switch (stores){
		case 1://询价产品统计
			sum=new BarGetValues().getExport(years, "");
			break;
		case 2://订单产品统计
			sum=new BarGetValues().guestorder(years, "");
			break;
		case 3://生产产品统计
			sum=new BarGetValues().producenote(years, "");
			break;
		case 4://采购产品统计
			sum=new BarGetValues().buydocument(years,"");
			break;
		case 5://入库产品统计
			sum=new BarGetValues().instoredocument(years,"");
			break;
		case 6://出库产品统计
			sum=new BarGetValues().outstoredocument(years,"");
			break;
		case 7://装箱产品统计
			sum=new BarGetValues().incasementdocument(years,"");
			break;
		case 8://样品产品统计
			sum=new BarGetValues().sampledocument(years,"");
			break;
		case 9://退货产品统计
			sum=new BarGetValues().canceldocument(years,"");
			break;
	}

		Day current = new Day(new Date(20));
		Day dd=new Day(new Date(20));
	for(int i=0;i<12;i++){
//			System.out.println(current+"-------------");
			series.add(current,sum[i]);
			current = (Day) current.next();
		}
		XYDataset data = new TimeSeriesCollection(series);
		JFreeChart chart = ChartFactory.createTimeSeriesChart(storesNames, "Date", "Rate", data, true, true, false);
		return chart;
	}
	public String getMonth(int i){
		switch (i){
		case 1:
			month="一月";
			break;
		case 2:
			month="二月";
			break;
		case 3:
			month="三月";
			break;
		case 4:
			month="四月";
			break;
		case 5:
			month="五月";
			break;
		case 6:
			month="六月";
			break;
		case 7:
			month="七月";
			break;
		case 8:
			month="八月";
			break;
		case 9:
			month="九月";
			break;
		case 10:
			month="十月";
			break;
		case 11:
			month="十一月";
			break;
		case 12:
			month="十二月";
			break;
		}
		return month;	
	}
}

⌨️ 快捷键说明

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