scoremanaction.java

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

JAVA
524
字号
package com.huawei.icd30.agt.exam;

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.*;

/**
 * <p> 从ScoreManForm类中提取从评阅考卷模块页面提交的数据信息,
 * 进行所评阅试卷的查询,处理所评阅的答卷的Action类。</p>
 * <p> </p>
 * <p> </p>
 * @author 龙燕茜
 * @version 1.0
 */

public class ScoreManAction 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 = ((ScoreManForm)form).getOpeType();//从form中获取

        if(opeType.equalsIgnoreCase(OperatorFlagCode.SCOREMAN_GETLIST) ||
            opeType.equalsIgnoreCase(OperatorFlagCode.SCOREMAN_QUERY)
        )
        {//获取评阅考试列表
             return getScoreList(mapping,form,req,res);
        }
        else if(opeType.equalsIgnoreCase(OperatorFlagCode.SCOREMAN_GETDETAIL))
        {//获取所评阅考卷的试题信息
             return getScoreDetail(mapping,form,req,res);
        }
        else if(opeType.equalsIgnoreCase(OperatorFlagCode.SCOREMAN_DEALSCORE))
        {//处理所评卷的得分
             return dealScore(mapping,form,req,res);
        }
        else if(opeType.equalsIgnoreCase(OperatorFlagCode.SCOREMAN_GETEXAMNAME))
        {//处理所评卷的得分
             return getExamName(mapping,form,req,res);
        }
        ///:huangyuyuan add 2004-06-03
        else if(opeType.equalsIgnoreCase(OperatorFlagCode.SCOREMAN_MODIFYLIST) ||
                opeType.equalsIgnoreCase(OperatorFlagCode.SCOREMAN_MODIFY_QUERY))
        {//获取已经评阅的试卷列表
             return getScoreModifyList(mapping,form,req,res);
        }
        else if(opeType.equalsIgnoreCase(OperatorFlagCode.SCOREMAN_MODIFY))
        {//获取所评阅考卷的试题信息
             return getScoreModifyDetail(mapping,form,req,res);
        }
        ///:~
        else
        {//操作类型错误,定向到错误页面,错误编码:UNKNOW_ERROR
             req.setAttribute("errorId",ErrorCode.UNKNOW_ERROR);
             return (mapping.findForward("error"));
        }
    }

    /**
     * 获取评阅考试列表
     */
    private ActionForward getScoreList(ActionMapping mapping,
           ActionForm form, HttpServletRequest req,
           HttpServletResponse res)
    {
       //获取操作类型
       String opeType = ((ScoreManForm)form).getOpeType();//从form中获取

       //从Session中获取工号
       String staffNo = (String)req.getSession().getAttribute("workerNo");

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

           SysResultSet rs2 = null;
           if(opeType.equalsIgnoreCase(OperatorFlagCode.SCOREMAN_QUERY))
           {
              aplcoms.preparedSP();
              aplcoms.setString(1,req.getParameter("title"));
              aplcoms.setString(2,staffNo);
              aplcoms.setString(3,req.getParameter("replyer"));

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

              aplcoms.preparedQuery(rs1.getString(1));

              rs2 = aplcoms.csCommonQuery("SELFSQL","1","-1").getResultSet();
           }
           else
           {
              //根据工号从数据库中获取评阅考卷列表记录
              aplcoms.preparedSP();
              aplcoms.setString(1,"");
              aplcoms.setString(2,staffNo);
              aplcoms.setString(3,"");

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

              aplcoms.preparedQuery(rs1.getString(1));

              rs2 = aplcoms.csCommonQuery("SELFSQL","1","-1").getResultSet();
           }

           //把结果集存放到session中
           req.getSession().setAttribute("SCOREMAN-GET-RESULTSET",rs2);

           //定向到列表显示页面
           return (mapping.findForward("scoremanlist"));
       }
       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 getScoreDetail(ActionMapping mapping,
           ActionForm form, HttpServletRequest req,
           HttpServletResponse res)
    {
       //获取记录ID号
       String recordId = ((ScoreManForm)form).getRecordId();
       //获取该考试记录的试卷的ID号
       String paperId = ((ScoreManForm)form).getPaperId();

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

            //根据考试记录ID号获取所评阅考卷的试题信息
            aplcoms.preparedQuery("");
            aplcoms.setString(1, recordId);
            aplcoms.setString(2, paperId);

            SysResultSet rs1 = aplcoms.csCommonQuery("SQL_Agt_ScoreManGetDetail" ,"1" ,"-1").getResultSet();

            //传送参数
            req.setAttribute("recordId",recordId);
            req.setAttribute("paperId",paperId);

            //把结果集传送到页面
            req.setAttribute("SCOREMAN-GET-DETAILSET",rs1);

            //定向到列表显示页面
            return (mapping.findForward("scoremandetail"));
       }
       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 dealScore(ActionMapping mapping,
           ActionForm form, HttpServletRequest req,
           HttpServletResponse res)
    {

       //从ScoreManForm中获取所评阅答卷的评分信息与试题,记录ID;
       String[] testIds = ((ScoreManForm)form).getTestIds();
       String[] score = ((ScoreManForm)form).getScore();
       String recordId = ((ScoreManForm)form).getRecordId();
       //获取该考试记录的试卷的ID号
       String paperId = ((ScoreManForm)form).getPaperId();
       //答题人工号
       String replyStaffNo = ((ScoreManForm)form).getReplyStaffNo();
       //答题的时间
       String examTime = ((ScoreManForm)form).getExamTime();
       examTime = examTime.substring(0,4) + examTime.substring(5,7) + examTime.substring(8,10);

       //对试题,记录ID以#号进行分隔
       String testIdsSet = Tools.getStringSet(testIds);
       String scoreSet = Tools.getStringSet(score);

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

           //调用存储过程P_Agt_ScoreDeal处理评分

           //设置参数:记录ID号、试题ID号、得分
           aplcoms.preparedSP();
           aplcoms.setString(1 ,recordId);
           aplcoms.setString(2 ,testIdsSet);
           aplcoms.setString(3 ,scoreSet);

⌨️ 快捷键说明

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