examaction.java

来自「培训考试系统代码」· Java 代码 · 共 1,685 行 · 第 1/5 页

JAVA
1,685
字号
           return getOpeBoxList(mapping,form,req,res);
       }
       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 dealExam(ActionMapping mapping,
           ActionForm form, HttpServletRequest req,
           HttpServletResponse res)
    {

       //从ExamForm中获取考试安排ID号
       String examId = ((ExamForm)form).getExamId();
       String[] examIds = ((ExamForm)form).getExamIds();

       //获取相关参数
       String checkNotion = ((ExamForm)form).getCheckNotion();
       String confirmHandler = ((ExamForm)form).getConfirmHandler();
       String confirmNotion = ((ExamForm)form).getConfirmNotion();

       //获取操作类型
       String opeType = ((ExamForm)form).getOpeType();//从form中获取

       //新状态
       int newState = 0;
       if(opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_SUBMIT_CHECK))
       {
           newState = 1;
       }
       else if(opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_CHECK_PASS))
       {
          newState = 3;
       }
       else if(opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_CHECK_NOPASS))
       {
          newState = 2;
       }
       else if(opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_APPROVE_PASS))
       {
          newState = 5;
       }
       else if(opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_APPROVE_NOPASS))
       {
          newState = 4;
       }
       else if(opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_CANCEL))
       {
          newState = 6;
       }
       else
       {
          newState = 0;
       }

       //考试安排ID号集合,之间以"#"号分割
       String examIdSet = Tools.getStringSet(examIds);

       //定义连接的实例
       SysDbConn aplcoms = null;
       try
       {
           //得到一个连接的实例
           aplcoms = SysConnPool.getInstance().getAplComs();

           //调用存储过程 P_Agt_ExamDeal完成考试安排的处理操作
           aplcoms.preparedSP();
           aplcoms.setString(1 ,examId);
           aplcoms.setString(2 ,examIdSet);
           aplcoms.setInt(3 ,newState);
           aplcoms.setString(4,null);
           aplcoms.setString(5,null);

           if(opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_CHECK_PASS)
              || opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_CHECK_NOPASS))
           {
               aplcoms.setString(4,checkNotion);
               aplcoms.setString(5,confirmHandler);
           }
           if(opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_APPROVE_PASS)
               || opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_APPROVE_NOPASS))
           {
               aplcoms.setString(4,confirmNotion);
           }

           SysDataSet ds1 = aplcoms.csCommonSP("P_Agt_ExamDeal");
           SysRecord rc1 = ds1.getParamSet() ;

           if(rc1==null || rc1.getInt(0) == OperatorFlagCode.OPERATOR_EORROR)
           {//定向到错误页面,错误号为EXAM_DELETE_ERROR;
               req.setAttribute("errorId",ErrorCode.EXAM_DEAL_ERROR);
               return (mapping.findForward("error"));
           }

           //操作成功
           if(opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_APPROVE_PASS))
           { //发邮件通知
              aplcoms.preparedSP();

              aplcoms.setString(1 ,examId);
              aplcoms.setInt(2,Initor.systemConfig.getInt("agt/examNotify",4));
              SysDataSet ds2 = aplcoms.csCommonSP("P_Agt_ExamSendEmail");
              SysRecord rc2 = ds2.getParamSet() ;
           }

           if(opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_SUBMIT_CHECK))
           {
              //调用getOpeBoxList函数进行重新查询后返回到草稿箱列表页面
              ((ExamForm)form).setOpeType(OperatorFlagCode.EXAM_QUERY_DRAFT);
              return getOpeBoxList(mapping,form,req,res);
           }
           else if(opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_CHECK_PASS)
                   || opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_CHECK_NOPASS))
           {
              //调用getOpeBoxList函数进行重新查询后返回到审查箱列表页面
              ((ExamForm)form).setOpeType(OperatorFlagCode.EXAM_QUERY_CHECK);
              return getOpeBoxList(mapping,form,req,res);
           }
           else if(opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_APPROVE_PASS)
                   || opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_APPROVE_NOPASS))
           {
              //调用getOpeBoxList函数进行重新查询后返回到审批箱列表页面
              ((ExamForm)form).setOpeType(OperatorFlagCode.EXAM_QUERY_APPROVE);
              return getOpeBoxList(mapping,form,req,res);
           }
           else if(opeType.equalsIgnoreCase(OperatorFlagCode.EXAM_CANCEL))
           {
              //调用queryExam函数进行重新查询后返回到列表页面
              return queryExam(mapping,form,req,res);
           }
           else
           {//操作类型错误,定向到错误页面,错误编码:UNKNOW_ERROR
               req.setAttribute("errorId",ErrorCode.UNKNOW_ERROR);
               return (mapping.findForward("error"));
           }
       }
       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 queryExam(ActionMapping mapping,
           ActionForm form, HttpServletRequest req,
           HttpServletResponse res)
    {

       //从ExamForm中获取查询条件;
       String titleTerm = ((ExamForm)form).getTitleTerm();
       String subjectTerm = ((ExamForm)form).getSubjectTerm();
       String classIdTerm = ((ExamForm)form).getClassIdTerm();
       int stateTerm = ((ExamForm)form).getStateTerm();
       int scopeTerm = ((ExamForm)form).getScopeTerm();
       String cityIdTerm = ((ExamForm)form).getCityIdTerm();
       String startTimeTerm = ((ExamForm)form).getStartTimeTerm();
       String endTimeTerm = ((ExamForm)form).getEndTimeTerm();
       String partStaffTerm = ((ExamForm)form).getPartStaffTerm();
       String creator = (String)req.getSession().getAttribute("workerNo");
       int byClass = ((ExamForm)form).getByClass();

       String opeType = ((ExamForm)form).getOpeType();//从form中获取

       //定义连接的实例
       SysDbConn aplcoms = null;
       try
       {
           //得到一个连接的实例
           aplcoms = SysConnPool.getInstance().getAplComs();
           SysResultSet rs2 = null;
           if(stateTerm == 8)
           {
              aplcoms.preparedQuery("");
              aplcoms.setString(1,creator);
              rs2 = aplcoms.csCommonQuery("SQL_Agt_ExamGetRelease","1","-1").getResultSet();
           }
           else
           {
            //根据查询条件,从数据库中获取考试安排记录
            aplcoms.preparedSP();
            aplcoms.setString(1 ,titleTerm);
            aplcoms.setString(2 ,subjectTerm);
            aplcoms.setString(3 ,classIdTerm);
            aplcoms.setInt(4 ,stateTerm);
            aplcoms.setInt(5 ,scopeTerm);
            aplcoms.setString(6 ,cityIdTerm);
            aplcoms.setString(7 ,startTimeTerm);
            aplcoms.setString(8 ,endTimeTerm);
            aplcoms.setString(9 ,partStaffTerm);
            aplcoms.setString(10 ,creator);

            SysResultSet rs1 = aplcoms.csCommonSP("P_Agt_ExamQuery").getResultSet();
            rs1.next();

            aplcoms.preparedQuery(rs1.getString(1));
            rs2 = aplcoms.csCommonQuery("SELFSQL","1","-1").getResultSet();
          }
            //把结果集存放到session中
            req.getSession().setAttribute("EXAM-QUERY-RESULTSET",new ResUtil(rs2));

            //把查询条件传送到页面
            //req.setAttribute(参数名称,参数值);

            //定向到列表显示页面
            req.getSession().setAttribute("BYCLASS",String.valueOf(byClass));
            return (mapping.findForward("examlist"));

       }
       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 queryExamDetail(ActionMapping mapping,
           ActionForm form, HttpServletRequest req,
           HttpServletResponse res)
    {
       //从ExamForm中获取考试的ID号
       String examId = ((ExamForm)form).getExamId();
       if(examId == null)
       {//从列表页面中传过来的
          examId = (((ExamForm)form).getExamIds())[0];
       }

       //从ExamForm中获取定向的名称;
       String directName = ((ExamForm)form).getDirectName();//从form中获取

       //定义连接的实例
       SysDbConn aplcoms = null;
       try
       {
           //得到一个连接的实例
           aplcoms = SysConnPool.getInstance().getAplComs();

           //根据试卷ID号,从数据库中获取试卷的详细信息

           SysResultSet rs1 = null;
           SysResultSet rs2 = null;
           SysResultSet rs3 = null;

           if(3 == ((ExamForm)form).getScope())
           {//分班级的考试
               aplcoms.preparedQuery("");
               aplcoms.setString(1 ,examId);
               rs1 = aplcoms.csCommonQuery("SQL_Agt_ExamQueryDetailNoPaper" ,"1" ,"-1").getResultSet();
               rs1 = new ResUtil(rs1);

               //获取参加班级
               aplcoms.preparedQuery("");
               aplcoms.setString(1 ,examId);
               rs2 = aplcoms.csCommonQuery("SQL_Agt_ExamGetClassByExam" ,"1" ,"-1").getResultSet();
               //获取班级的试卷
               aplcoms.preparedQuery("");
               aplcoms.setString(1 ,examId);
               rs3 = aplcoms.csCommonQuery("SQL_Agt_ExamGetPaperByClass" ,"1" ,"-1").getResultSet();

⌨️ 快捷键说明

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