📄 statisticaction.java
字号:
package cn.edu.hlju.oa.kygl.action;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import cn.edu.hlju.oa.kygl.util.GlobalUtil;
import cn.edu.hlju.oa.kygl.statistic.StatisticDSFactory;
import java.sql.ResultSet;
import java.sql.PreparedStatement;
import cn.edu.hlju.oa.kygl.db.DBConnection;
import java.sql.Connection;
public class StatisticAction extends GeneralAction {
/**
* 一些预处理操作
*
* @param request HttpServletRequest
* @param response HttpServletResponse
* @throws Exception
* @todo Implement this cn.edu.hlju.oa.kygl.action.GeneralAction method
*/
void preProcess(HttpServletRequest request, HttpServletResponse response) throws Exception {
request.setCharacterEncoding("UTF-8");
String action=request.getParameter("action");
/**
* action=null的情况是从左侧工具栏直接到达的结果。
* 而statisticQueryCommit是提交查询动作
*/
if( action == null)
action = "statisticQuery";
else if( action.equals("statisticQueryCommit") ){
action = "statisticWhole";
}
if( action.equals("statisticQuery")){
actionType=STATISTIC_QUERY;
actionPage="StatisticQuery.jsp";
}else if( action.equals("statisticWhole") ){
actionType=STATISTIC_WHOLE;
actionPage="StatisticWholeViewer.jsp";
}else if( action.equals("statisticWholeProject") ){
actionType=STATISTIC_PROJECT;
actionPage="StatisticGeneralViewer.jsp";
}else if( action.equals("statisticWholeAward") ){
actionType=STATISTIC_AWARD;
actionPage="StatisticGeneralViewer.jsp";
}else if( action.equals("statisticWholeResult") ){
actionType=STATISTIC_RESULT;
actionPage="StatisticGeneralViewer.jsp";
}else if( action.equals("statisticWholeArticle") ){
actionType=STATISTIC_ARTICLE;
actionPage="StatisticGeneralViewer.jsp";
}else if( action.equals("statisticWholePaper") ){
actionType=STATISTIC_PAPER;
actionPage="StatisticGeneralViewer.jsp";
}
}
/**
* 验证操作
*
* @param request HttpServletRequest
* @param response HttpServletResponse
* @throws Exception
* @todo Implement this cn.edu.hlju.oa.kygl.action.GeneralAction method
*/
void validate(HttpServletRequest request, HttpServletResponse response) throws Exception {
String action=request.getParameter("action");
if( action != null && action.equals("statisticQueryCommit")){
//检查用户是否点了输入人事姓名和编号之后又没有输入
String checked = request.getParameter("check"); //获得是否输入了人员的姓名
//如果用户未选择输入人员姓名,这一项应该是null
if (checked != null) {
if (request.getParameter("ryxm").equals("") ||
request.getParameter("rsbh").equals("") )
throw new Exception("必须输入要查询的人的姓名和其相应的人事编号!");
}
}
}
/**
* 执行业务逻辑的操作
*/
String ryxm = null;//人员姓名
String rsbh = null;//人事编号
void executeBusiniess(HttpServletRequest request, HttpServletResponse response) throws Exception {
//是否是重点实验室
String isILabStr = request.getParameter("isILab");
String iLabBm = null;
boolean isILab = false;
if( isILabStr != null ){
isILab = isILabStr.equals("true");
if( isILab)
iLabBm = request.getParameter("iLabSelection");
}
//分类处理动作-------------------------------------------
switch (actionType) {
case STATISTIC_QUERY: {
TreeMap map = GlobalUtil.getILabInfo("001");
TreeMap ministryInfo = GlobalUtil.getMinistryInfo();
request.setAttribute("ILabInfo",map);
request.setAttribute("MinistryInfo",ministryInfo);
ryxm = null;
rsbh = null;
}
break; //科研整体信息
case STATISTIC_WHOLE: {
ryxm = request.getParameter("ryxm");//获得人员姓名
if( ryxm != null )
ryxm = ryxm.substring(ryxm.indexOf(".")+1);
rsbh = request.getParameter("rsbh");//获得该人的编号
int startYear = Integer.parseInt(request.getParameter("startYear"));
int endYear = Integer.parseInt(request.getParameter("endYear"));
ArrayList wholeBeans = StatisticDSFactory.createWholeDS(startYear,endYear,ryxm,rsbh,isILab,iLabBm);
ArrayList titles = new ArrayList();
titles.add("年度");
titles.add("项目信息");
titles.add("获奖信息");
titles.add("成果/专利信息");
titles.add("著作信息");
titles.add("论文信息");
request.setAttribute("DataSource", wholeBeans);
request.setAttribute("StartYear", startYear);
request.setAttribute("EndYear", endYear);
request.setAttribute("Ryxm",ryxm);
request.setAttribute("Rsbh",rsbh);
request.setAttribute("IsILab",isILabStr);
request.setAttribute("ILabSelection",iLabBm);
}
break; //项目整体信息
case STATISTIC_PROJECT: {
/*String ryxm = request.getParameter("ryxm");//获得人员姓名
ryxm = ryxm.substring(0,ryxm.length()/2);
String rsbh = request.getParameter("rsbh");//获得该人的编号*/
Connection conn = DBConnection.getConnection();
int startYear = Integer.parseInt(request.getParameter("startYear"));
int endYear = Integer.parseInt(request.getParameter("endYear"));
ArrayList ds = StatisticDSFactory.createWholeProjectDS(startYear, endYear,ryxm,rsbh,isILab,iLabBm);
StringBuffer bmmcQueryBuf = new StringBuffer();
bmmcQueryBuf.append("SELECT bz FROM ky_kyxtbmb WHERE bmfl='007' AND bm>'00000' GROUP BY bz ORDER BY bm");
PreparedStatement bmmcStmt = conn.prepareStatement(bmmcQueryBuf.toString());
ResultSet bzRs = bmmcStmt.executeQuery();
ArrayList<String> titles = new ArrayList<String>();
titles.add("年度");
while (bzRs.next()) {
titles.add(bzRs.getString(1));
}
request.setAttribute("DataSource", ds);
request.setAttribute("Titles", titles);
request.setAttribute("StartYear", startYear);
request.setAttribute("EndYear", endYear);
request.setAttribute("ChartTitle", "整体科研项目趋势图");
request.setAttribute("PageTitle", "整体项目统计信息");
DBConnection.releaseConnection(conn);
}
break;
case STATISTIC_AWARD: {
/*String ryxm = request.getParameter("ryxm");//获得人员姓名
ryxm = ryxm.substring(0,ryxm.length()/2);
String rsbh = request.getParameter("rsbh");//获得该人的编号*/
Connection conn = DBConnection.getConnection();
int startYear = Integer.parseInt(request.getParameter("startYear"));
int endYear = Integer.parseInt(request.getParameter("endYear"));
ArrayList ds = StatisticDSFactory.createWholeAwardDS(startYear, endYear,ryxm,rsbh,isILab,iLabBm);
StringBuffer bmmcQueryBuf = new StringBuffer();
bmmcQueryBuf.append("SELECT bm,bmmc FROM ky_kyxtbmb WHERE bmfl='011' AND bm>'00000' ORDER BY bm");
PreparedStatement bmmcStmt = conn.prepareStatement(bmmcQueryBuf.toString());
ResultSet bzRs = bmmcStmt.executeQuery();
ArrayList<String> titles = new ArrayList<String>();
titles.add("年度");
while (bzRs.next()) {
titles.add(bzRs.getString(2));
}
request.setAttribute("DataSource", ds);
request.setAttribute("Titles", titles);
request.setAttribute("StartYear", startYear);
request.setAttribute("EndYear", endYear);
request.setAttribute("ChartTitle", "整体科研获奖趋势图");
request.setAttribute("PageTitle", "整体获奖统计信息");
DBConnection.releaseConnection(conn);
}
break;
case STATISTIC_RESULT: {
/*String ryxm = request.getParameter("ryxm");//获得人员姓名
ryxm = ryxm.substring(0,ryxm.length()/2);
String rsbh = request.getParameter("rsbh");//获得该人的编号*/
Connection conn = DBConnection.getConnection();
int startYear = Integer.parseInt(request.getParameter("startYear"));
int endYear = Integer.parseInt(request.getParameter("endYear"));
ArrayList ds = StatisticDSFactory.createWholeResultDS(startYear, endYear,ryxm,rsbh,isILab,iLabBm);
StringBuffer bmmcQueryBuf = new StringBuffer();
bmmcQueryBuf.append("SELECT bm,bmmc FROM ky_kyxtbmb WHERE bmfl='014' AND bm>'00000' ORDER BY bm");
PreparedStatement bmmcStmt = conn.prepareStatement(bmmcQueryBuf.toString());
ResultSet bzRs = bmmcStmt.executeQuery();
ArrayList<String> titles = new ArrayList<String>();
titles.add("年度");
while (bzRs.next()) {
titles.add(bzRs.getString(2));
}
request.setAttribute("DataSource", ds);
request.setAttribute("Titles", titles);
request.setAttribute("StartYear", startYear);
request.setAttribute("EndYear", endYear);
request.setAttribute("ChartTitle", "整体科研成果/专利趋势图");
request.setAttribute("PageTitle", "整体成果/专利统计信息");
DBConnection.releaseConnection(conn);
}
break;
case STATISTIC_ARTICLE: {
/*String ryxm = request.getParameter("ryxm");//获得人员姓名
ryxm = ryxm.substring(0,ryxm.length()/2);
String rsbh = request.getParameter("rsbh");//获得该人的编号*/
Connection conn = DBConnection.getConnection();
int startYear = Integer.parseInt(request.getParameter("startYear"));
int endYear = Integer.parseInt(request.getParameter("endYear"));
ArrayList ds = StatisticDSFactory.createWholeArticleDS(startYear, endYear,ryxm,rsbh,isILab,iLabBm);
StringBuffer bmmcQueryBuf = new StringBuffer();
bmmcQueryBuf.append("SELECT bm,bmmc FROM ky_kyxtbmb WHERE bmfl='009' AND bm>'00000' ORDER BY bm");
PreparedStatement bmmcStmt = conn.prepareStatement(bmmcQueryBuf.toString());
ResultSet bzRs = bmmcStmt.executeQuery();
ArrayList<String> titles = new ArrayList<String>();
titles.add("年度");
while (bzRs.next()) {
titles.add(bzRs.getString(2));
}
request.setAttribute("DataSource", ds);
request.setAttribute("Titles", titles);
request.setAttribute("StartYear", startYear);
request.setAttribute("EndYear", endYear);
request.setAttribute("ChartTitle", "整体科研著作趋势图");
request.setAttribute("PageTitle", "整体著作统计信息");
DBConnection.releaseConnection(conn);
}
break;
case STATISTIC_PAPER: {
/*String ryxm = request.getParameter("ryxm");//获得人员姓名
ryxm = ryxm.substring(0,ryxm.length()/2);
String rsbh = request.getParameter("rsbh");//获得该人的编号*/
Connection conn = DBConnection.getConnection();
int startYear = Integer.parseInt(request.getParameter("startYear"));
int endYear = Integer.parseInt(request.getParameter("endYear"));
ArrayList ds = StatisticDSFactory.createWholePaperDS(startYear, endYear,ryxm,rsbh,isILab,iLabBm);
StringBuffer bmmcQueryBuf = new StringBuffer();
bmmcQueryBuf.append("SELECT bm,bmmc FROM ky_kyxtbmb WHERE bmfl='008' AND bm>'00000' ORDER BY bm");
PreparedStatement bmmcStmt = conn.prepareStatement(bmmcQueryBuf.toString());
ResultSet bzRs = bmmcStmt.executeQuery();
ArrayList<String> titles = new ArrayList<String>();
titles.add("年度");
while (bzRs.next()) {
titles.add(bzRs.getString(2));
}
request.setAttribute("DataSource", ds);
request.setAttribute("Titles", titles);
request.setAttribute("StartYear", startYear);
request.setAttribute("EndYear", endYear);
request.setAttribute("ChartTitle", "整体科研论文趋势图");
request.setAttribute("PageTitle", "整体论文统计信息");
DBConnection.releaseConnection(conn);
}
break;
}
}
//我的图标测试
public static void main(String[] s){
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -