📄 staple.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 + -