examaction.java
来自「培训考试系统代码」· Java 代码 · 共 1,685 行 · 第 1/5 页
JAVA
1,685 行
package com.huawei.icd30.agt.exam;
import java.util.Random;
import java.util.ArrayList;
import javax.servlet.http.*;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import com.huawei.icd30.agt.util.*;
import com.huawei.icd30.common.db.*;
import com.huawei.icd30.common.systemconfig.*;
/**
* <p> 从ExamForm类中提取从页面提交的信息,
* 实现考试安排的增加、修改、删除、查询、审查、审批与取消操作,
* 操作失败定向到出错页面。</p>
* <p> </p>
* <p> </p>
* @author 龙燕茜
* @version 1.0
*/
public class ExamAction extends Action
{
public ActionForward perform(ActionMapping mapping,
ActionForm form, HttpServletRequest req,
HttpServletResponse res)
{
//判断session是否超时
// ActionForward checkForword = Tools.checkSession(req,res);
// if(checkForword != null)
// {
// return checkForword;
// }
//获取操作类型
String opeType = ((ExamForm)form).getOpeType();//从form中获取
if(opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_ADD))
{//增加考试安排
return addExam(mapping,form,req,res);
}
else if(opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_ADD_BYCLASS))
{//增加考试安排,按班级
return addExamByClass(mapping,form,req,res);
}
else if(opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_QUERY_DRAFT)
|| opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_QUERY_CHECK)
||opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_QUERY_APPROVE))
{//获取考试安排中的草稿、审查箱、审批箱列表
return getOpeBoxList(mapping,form,req,res);
}
else if(opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_MODIFY))
{//修改考试安排
return modifyExam(mapping,form,req,res);
}
else if(opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_MODIFY_BYCLASS))
{//修改考试安排
return modifyExamByClass(mapping,form,req,res);
}
else if(opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_DELETE))
{//删除考试安排
return deleteExam(mapping,form,req,res);
}
else if(Integer.parseInt(opeType) >= Integer.parseInt(OperatorFlagCode.EXAM_SUBMIT_CHECK) &&
Integer.parseInt(opeType) <= Integer.parseInt(OperatorFlagCode.EXAM_CANCEL))
{//对考试安排进行提交审查、审查通过、驳回等操作
return dealExam(mapping,form,req,res);
}
else if(opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_QUERY))
{//查询考试
return queryExam(mapping,form,req,res);
}
else if(opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_QUERY_DETAIL))
{//查询考试详细信息
return queryExamDetail(mapping,form,req,res);
}
else if(opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_GET_STATINFO))
{//获取考试统计信息
return getStatInfo(mapping,form,req,res);
}
else if(opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_SCORE_QUERY))
{//获取考试统计信息
return queryScore(mapping,form,req,res);
}
else if(opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_SCORE_INPUT))
{
return getScoreCondition(mapping,form,req,res);
}
///:huangyuyuan add at 2004-05-28
else if (opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_SCORE_ANALYSE)) {
return getScoreAnalyse(mapping, form, req, res);
}
else if (opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_SCORE_ANALYSE_SEARCH)) {
return queryScoreAnalyse(mapping, form, req, res);
}
else if (opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_SCORE_LOST_QUERY)) {
return getScoreLost(mapping, form, req, res);
}
else if (opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_SCORE_LOST_SEARCH)) {
return queryScoreLost(mapping, form, req, res);
}
///:~
//dingjiangtao 2004-6-3
else if(opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_SCORE_DELETE))
{
return deleteRecord(mapping,form,req,res);
}
//end
else
{//操作类型错误,定向到错误页面,错误编码:UNKNOW_ERROR
req.setAttribute("errorId",ErrorCode.UNKNOW_ERROR);
return (mapping.findForward("error"));
}
}
/**
* 增加考试安排操作
*/
private ActionForward addExam(ActionMapping mapping,
ActionForm form, HttpServletRequest req,
HttpServletResponse res)
{
//从ExamFrom中获取数据
String title = ((ExamForm)form).getTitle();
String subject = ((ExamForm)form).getSubject();
String paperId = ((ExamForm)form).getPaperId();
String cityId = ((ExamForm)form).getCityId();
String classId = ((ExamForm)form).getClassId();
int examTime = ((ExamForm)form).getExamTime();
int maxCount = ((ExamForm)form).getMaxCount();
int passScore = ((ExamForm)form).getPassScore();
String teacherId = ((ExamForm)form).getTeacherId();
String startTime = ((ExamForm)form).getStartTime();
String endTime = ((ExamForm)form).getEndTime();
int scope = ((ExamForm)form).getScope();
String creator = (String)req.getSession().getAttribute("workerNo");
int state = ((ExamForm)form).getState();
String checkHander = ((ExamForm)form).getCheckHandler();
String staffIds = ((ExamForm)form).getStaffIds();
String groupIds= ((ExamForm)form).getGroupIds();
int publicResult = ((ExamForm)form).getPublicResult();
//定义连接的实例
SysDbConn aplcoms = null;
try
{
//得到一个连接的实例
aplcoms = SysConnPool.getInstance().getAplComs();
//调用存储过程P_Agt_ExamAdd完成考试安排的增加
aplcoms.preparedSP();
aplcoms.setString(1 ,title);
aplcoms.setString(2 ,subject);
aplcoms.setString(3 ,paperId);
aplcoms.setString(4 ,cityId);
aplcoms.setString(5 ,classId);
aplcoms.setInt(6 ,examTime);
aplcoms.setInt(7 ,maxCount);
aplcoms.setInt(8 ,passScore);
aplcoms.setString(9 ,teacherId);
aplcoms.setString(10 ,startTime);
aplcoms.setString(11 ,endTime);
aplcoms.setInt(12 ,scope);
aplcoms.setString(13 ,creator);
aplcoms.setInt(14 ,state);
aplcoms.setString(15 ,checkHander);
aplcoms.setString(16 ,staffIds);
aplcoms.setString(17 ,groupIds);
aplcoms.setInt(18 ,publicResult);
SysDataSet ds = aplcoms.csCommonSP("P_Agt_ExamAdd");
SysRecord rc = ds.getParamSet() ;
if(rc==null || rc.getInt(0) == OperatorFlagCode.OPERATOR_EORROR)
{//增加考试安排失败
//定向到错误页面,错误号为EXAM_ADD_ERROR;
req.setAttribute("errorId",ErrorCode.EXAM_ADD_ERROR);
return (mapping.findForward("error"));
}
//增加考试安排成功
//定向到成功页面,成功号为ADDEXAM_SUCCESS;
req.setAttribute("successId",SuccessCode.EXAM_ADD_SUCCESS);
return (mapping.findForward("success"));
}
catch (SysDbException aple)
{//捕获CommonService系统异常,定向到出错页面
//输出异常信息
aple.printStackTrace();
req.setAttribute("errorId",ErrorCode.COMMONSERVICE_ERROR);
return (mapping.findForward("error"));
}
catch(java.sql.SQLException sqle)
{//捕获调用aplcoms异常,定向到出错页面
// 输出异常信息
sqle.printStackTrace();
req.setAttribute("errorId",ErrorCode.DATABASE_ERROR);
return (mapping.findForward("error"));
}
catch(Exception e)
{//捕获未知异常,定向到出错页面
//输出异常信息
e.printStackTrace();
req.setAttribute("errorId",ErrorCode.UNKNOW_ERROR);
return (mapping.findForward("error"));
}
finally
{//关闭连接实例
if(aplcoms != null)
{
aplcoms.close();
}
}
}
/**
* 增加考试安排操作,按班级
*/
private ActionForward addExamByClass(ActionMapping mapping,
ActionForm form, HttpServletRequest req,
HttpServletResponse res)
{
//从ExamFrom中获取数据
String title = ((ExamForm)form).getTitle();
String subject = ((ExamForm)form).getSubject();
String cityId = ((ExamForm)form).getCityId();
String classId = ((ExamForm)form).getClassId();
int examTime = ((ExamForm)form).getExamTime();
int maxCount = ((ExamForm)form).getMaxCount();
int passScore = ((ExamForm)form).getPassScore();
String teacherId = ((ExamForm)form).getTeacherId();
String startTime = ((ExamForm)form).getStartTime();
String endTime = ((ExamForm)form).getEndTime();
String creator = (String)req.getSession().getAttribute("workerNo");
int state = ((ExamForm)form).getState();
String checkHander = ((ExamForm)form).getCheckHandler();
int publicResult = ((ExamForm)form).getPublicResult();
String examClassId = req.getParameter("examClassId");
String paperId1 = req.getParameter("paperId1");
String paperId2 = req.getParameter("paperId2");
String paperId3 = req.getParameter("paperId3");
String paperId4 = req.getParameter("paperId4");
//定义连接的实例
SysDbConn aplcoms = null;
try
{
//得到一个连接的实例
aplcoms = SysConnPool.getInstance().getAplComs();
//调用存储过程P_Agt_ExamAdd完成考试安排的增加
aplcoms.preparedSP();
aplcoms.setString(1 ,title);
aplcoms.setString(2 ,subject);
aplcoms.setString(3 ,cityId);
aplcoms.setString(4 ,classId);
aplcoms.setInt(5 ,examTime);
aplcoms.setInt(6 ,maxCount);
aplcoms.setInt(7 ,passScore);
aplcoms.setString(8 ,teacherId);
aplcoms.setString(9 ,startTime);
aplcoms.setString(10 ,endTime);
aplcoms.setInt(11 ,3);
aplcoms.setString(12 ,creator);
aplcoms.setInt(13 ,state);
aplcoms.setString(14 ,checkHander);
aplcoms.setInt(15 ,publicResult);
aplcoms.setString(16 ,examClassId);
aplcoms.setString(17 ,paperId1);
aplcoms.setString(18 ,paperId2);
aplcoms.setString(19 ,paperId3);
aplcoms.setString(20 ,paperId4);
SysDataSet ds = aplcoms.csCommonSP("P_Agt_ExamAddByClass");
SysRecord rc = ds.getParamSet() ;
if(rc==null || rc.getInt(0) == OperatorFlagCode.OPERATOR_EORROR)
{//增加考试安排失败
//定向到错误页面,错误号为EXAM_ADD_ERROR;
req.setAttribute("errorId",ErrorCode.EXAM_ADD_ERROR);
return (mapping.findForward("error"));
}
//增加考试安排成功
//定向到成功页面,成功号为ADDEXAM_SUCCESS;
req.setAttribute("successId",SuccessCode.EXAM_ADD_SUCCESS);
return (mapping.findForward("success"));
}
catch (SysDbException aple)
{//捕获CommonService系统异常,定向到出错页面
//输出异常信息
aple.printStackTrace();
req.setAttribute("errorId",ErrorCode.COMMONSERVICE_ERROR);
return (mapping.findForward("error"));
}
catch(java.sql.SQLException sqle)
{//捕获调用aplcoms异常,定向到出错页面
// 输出异常信息
sqle.printStackTrace();
req.setAttribute("errorId",ErrorCode.DATABASE_ERROR);
return (mapping.findForward("error"));
}
catch(Exception e)
{//捕获未知异常,定向到出错页面
//输出异常信息
e.printStackTrace();
req.setAttribute("errorId",ErrorCode.UNKNOW_ERROR);
return (mapping.findForward("error"));
}
finally
{//关闭连接实例
if(aplcoms != null)
{
aplcoms.close();
}
}
}
/**
* 获取考试安排中的草稿、审查箱、审批箱列表
*/
private ActionForward getOpeBoxList(ActionMapping mapping,
ActionForm form, HttpServletRequest req,
HttpServletResponse res)
{
//从ExamFrom中获取操作类型
String opeType = ((ExamForm)form).getOpeType();//从form中获取
//从Session中获取工号
String staffNo = (String)req.getSession().getAttribute("workerNo");
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?