⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tr_trainregisterservlet.java

📁 J2ee开发的 人事管理系统 使用oracle数据库 myeclips平台开发
💻 JAVA
字号:
package com.galaxy.controller;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.galaxy.dao.TrainRecordDAO;
import com.galaxy.dao.UserInfoDAO;
import com.galaxy.dao.TrUiRsDAO;

import com.galaxy.vo.TrainRecordVO;
import com.galaxy.vo.UserInfoVO;
import com.galaxy.vo.TrUiRsIdVO;
import com.galaxy.vo.TrUiRsVO;

import com.galaxy.util.PageHelp;

public class TR_TrainRegisterServlet extends HttpServlet {

	public TR_TrainRegisterServlet() {
		super();
	}

	public void destroy() {
		super.destroy(); // Just puts "destroy" string in log

	}

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		doPost(request, response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		request.setCharacterEncoding("gb2312");
		response.setCharacterEncoding("gb2312");
		String opraParam = request.getParameter("opraParam");
		String condition = request.getParameter("condition");
		String errorMsg = "";
		String msg = "";// 用于在页面上输出错误信息
		PrintWriter out = response.getWriter();
		int pageSize = 5;// 设置单页显示条数
		String currentPage = "1";// 当前显示的页面号

		TrUiRsDAO turDao = new TrUiRsDAO();
		PageHelp pagehelp = new PageHelp();// 实例化PageHelp对象pageHelp

		// list分支显示培训记录列表
		if ("list".equals(opraParam)) {

			pagehelp = turDao.getTrainRegisterList(condition, pageSize, Integer
					.parseInt(request.getParameter("currentPage")));
			// 转发至列表页面
			request.setAttribute("pagehelp", pagehelp);

			request.setAttribute("currentPage", request
					.getParameter("currentPage"));
			request.getRequestDispatcher("TrainRegisterList.jsp").forward(
					request, response);

		}
		// query分支处理查询请求
		else if ("query".equals(opraParam)) {
			String cdstr = "";

			// 获取列表页面传来的查询条件
			String[] ckey = request.getParameterValues("keyparam");
			String[] cvalue = request.getParameterValues("keyvalue");

			for (int i = 0; i < ckey.length; i++) {
				// 判断查询条件是否为空,如果用户没有在查询框中输入任何条件,则查出培训类别表中所有记录
				// 查询均为模糊查询
				if (!"".equals(cvalue[i])) {
					UserInfoDAO userDao = new UserInfoDAO();
					//UserInfoVO userVo = new UserInfoVO();
					String ui_id = "";

					// 用户培训记录表是用户和培训记录的多对多关系表。
					// 同一个姓名可能对应多个培训记录,同一个记录可能对应多个用户。
					// 所以在查询条件SQL语句连接上要作出判断。
					if ("load_name".equals(ckey[i])) {
						List userList = userDao
								.queryByCondition("and ui_loadname like '%"
										+ cvalue[i] + "%'");
						// 如果不存在对应输入的用户名的用户,那么ui_id设置为0。因为存在的用户ui_id不可能为0。
						if (userList.size() == 0)
							cdstr += "and ui_id=0";

						// 对应输入用户名的用户只有一个
						if (userList.size() == 1) {
							ui_id = ((UserInfoVO) userList.get(0)).getUiId()
									.toString();
							cdstr += "and ui_id in (" + ui_id + ")";
						}
						// 对应输入用户名的用户有多个
						else if (userList.size() > 1) {
							cdstr += "and ui_id in (";
							for (int j = 0; j < userList.size(); j++) {
								ui_id = ((UserInfoVO) userList.get(j))
										.getUiId().toString();
								if (j == userList.size() - 1)
									cdstr += ui_id;
								else
									cdstr += ui_id + ",";
							}
							cdstr += ")";
						}

					} else if ("real_name".equals(ckey[i])) {
						List userList = userDao
								.queryByCondition(" and ui_realname like '%"
										+ cvalue[i] + "%'");
						// 如果不存在对应输入的真实名的用户,那么ui_id设置为0。因为存在的用户ui_id不可能为0。
						if (userList.size() == 0)
							cdstr += "and ui_id=0";

						// 对应输入真实名的用户只有一个
						if (userList.size() == 1) {
							ui_id = ((UserInfoVO) userList.get(0)).getUiId()
									.toString();
							cdstr += "and ui_id in (" + ui_id + ")";
						}
						// 对应输入真实名的用户有多个
						else if (userList.size() > 1) {
							cdstr += "and ui_id in (";
							for (int k = 0; k < userList.size(); k++) {
								ui_id = ((UserInfoVO) userList.get(k))
										.getUiId().toString();
								if (k == userList.size() - 1)
									cdstr += ui_id;
								else
									cdstr += ui_id + ",";
							}
							cdstr += ")";
						}

					} else
						cdstr += " and " + ckey[i] + " like '%" + cvalue[i]
								+ "%' ";
				}

			}
			pagehelp = turDao.getTrainRegisterList(cdstr, pageSize, 1);
			// 转发至列表页面
			request.setAttribute("pagehelp", pagehelp);

			request.getRequestDispatcher("TrainRegisterList.jsp").forward(
					request, response);
		}
		// 当用户在菜单栏中点击培训报名记录时,跳入trainrecord分支。显示培训报名记录列表页面
		else if ("trainregister".equals(opraParam)) {
			pagehelp = turDao.getTrainRegisterList("", pageSize, 1);
			/** 通过userdb对象调用的getUserList方法等到要显示的内容,方法中的参数分别为查询条件,每页显示记录数,当前页码 */
			request.setAttribute("pagehelp", pagehelp);
			request.getRequestDispatcher("TrainRegisterList.jsp").forward(
					request, response);
		}

		// 用户在添加页面点击提交后,add分支进行处理,写入数据库
		if (opraParam.equals("insert")) {
			int i = 0;

			try {
				String load_name = request.getParameter("load_name");
				Long tr_id = Long.valueOf(request.getParameter("tr_id"));

				TrainRecordDAO trDao = new TrainRecordDAO();
				TrainRecordVO trVo = trDao.getNengBaoMing(tr_id);

				UserInfoDAO userDao = new UserInfoDAO();
				UserInfoVO userVo = null;

				List userList = userDao.queryByCondition("and ui_loadname = '"
						+ load_name + "'");
				if (userList.size() > 0)
					userVo = (UserInfoVO) userList.get(0);
				else
					userVo = null;

				if (userVo == null) {
					errorMsg = "输入的用户名不存在,请重新输入!";
					out.println(errorMsg);
				} else if (trVo == null) {
					errorMsg = "输入的培训记录编码不存在或培训报名已结束,只有状态是报名中的培训才能报名,请重新输入!";
					out.println(errorMsg);
				} else {
					tr_id = trVo.getTrId();
					Long ui_id = userVo.getUiId();
					int j = turDao.queryByCondition(
							"and tr_id=" + tr_id + "and ui_id=" + ui_id + "")
							.size();

					if (j > 0) {
						errorMsg = "报名信息已存在,请不要重复提交!";
						out.println(errorMsg);
					} else {
						TrUiRsVO turVo = new TrUiRsVO();
						TrUiRsIdVO turiVo = new TrUiRsIdVO();

						turiVo.setTrainRecord(trVo);
						turiVo.setUserInfo(userVo);
						turVo.setId(turiVo);
						turVo.setUiExtend("");
						turVo.setUiIspass("无");
						turVo.setUiState("审批中");

						i = turDao.add(turVo);
						if (i > 0) {// 注册成功
							msg = "报名提交成功,审核是否通过请下次查询!";
							out.println(msg);
							// PageHelp pageHelp = tcDao.getTrainClassList("",
							// pageSize, 1);
							/** 通过userdb对象调用的getUserList方法等到要显示的内容,方法中的参数分别为查询条件,每页显示记录数,当前页码 */
							// request.setAttribute("pagehelp", pageHelp);
							// request.getRequestDispatcher("TrainClassList.jsp").forward(request,
							// response);
						} else {
							errorMsg = "保存失败,请重试!!";
							request.setAttribute("errorMsg", errorMsg);
							request.getRequestDispatcher("Insert_failure.jsp")
									.forward(request, response);
						}
					}
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		}

		// 用户在列表页面点击删除后,进入delete分支处理
		if (opraParam.equals("delete")) {// 如果要删除信息
			try {
				String tcIds[] = request.getParameterValues("ch1");// 得到选中的checkbox的值,可以进行批量删除。
				for (int m = 0; m < tcIds.length; m++) {
					String a[] = tcIds[m].split(",");
					Long tr_id = Long.parseLong(a[0]);
					Long ui_id = Long.parseLong(a[1]);

					turDao.delete(tr_id, ui_id);// 删除所有选中的纪录
				}
				pagehelp = turDao.getTrainRegisterList("", pageSize, Integer
						.parseInt(request.getParameter("currentPage")));
				request.setAttribute("pagehelp", pagehelp);
				// 转发至列表页面
				request.getRequestDispatcher("/training/TrainRegisterList.jsp")
						.forward(request, response);
			} catch (Throwable t) {
				// 写异常日志
				getServletContext().log(t.getMessage());
			}

		}

		// 用户在列表页面点击修改按钮后,detail分支进行处理,将请求转向更新页面
		if (opraParam.equals("detail")) {
			try {
				String tcIds = request.getParameter("ch1");
				String a[] = tcIds.split(",");
				Long tr_id = Long.parseLong(a[0]);
				Long ui_id = Long.parseLong(a[1]);

				TrainRecordDAO trDao = new TrainRecordDAO();
				UserInfoDAO userDao = new UserInfoDAO();
				TrainRecordVO trVo = trDao.get(tr_id);
				UserInfoVO userVo = (UserInfoVO) userDao.queryByCondition(
						"and ui_id=" + ui_id + "").get(0);

				TrUiRsIdVO turiVo = new TrUiRsIdVO();
				turiVo.setTrainRecord(trVo);
				turiVo.setUserInfo(userVo);

				TrUiRsVO turVo = turDao.get(turiVo);

				request.setAttribute("currentPage", request
						.getParameter("currentPage"));
				request.setAttribute("turInfo", turVo);
				request.getRequestDispatcher("TrainRegisterUpdate.jsp")
						.forward(request, response);
			} catch (Exception e) {
				// 写异常日志
				System.out.println(e);
			}

		}
		/*
		 * if (opraParam.equals("score")) { try { String tcIds =
		 * request.getParameter("ch1"); String a[] = tcIds.split(","); Long
		 * tr_id = Long.parseLong(a[0]); Long ui_id = Long.parseLong(a[1]);
		 * 
		 * TrainRecordDAO trDao = new TrainRecordDAO(); UserInfoDAO userDao =
		 * new UserInfoDAO(); TrainRecordVO trVo = trDao.get(tr_id); UserInfoVO
		 * userVo = (UserInfoVO)userDao.queryByCondition("and ui_id=" +
		 * ui_id+"").get(0);
		 * 
		 * TrUiRsIdVO turiVo = new TrUiRsIdVO(); turiVo.setTrainRecord(trVo);
		 * turiVo.setUserInfo(userVo);
		 * 
		 * TrUiRsVO turVo = turDao.get(turiVo);
		 * 
		 * request.setAttribute("currentPage",
		 * request.getParameter("currentPage")); request.setAttribute("turInfo",
		 * turVo); request.getRequestDispatcher("TrainScoreUpdate.jsp").forward(
		 * request, response); } catch (Exception e) { // 写异常日志
		 * System.out.println(e); } }
		 */

		// 用户在修改页面点击提交,进入update分支处理,将更改后结果写入数据库
		if (opraParam.equals("update")) {

			// 培训记录中包含培训记录和用户的外键。
			// 所以通过培训记录ID转化得到培训记录VO,封装到用户培训关系VO中
			// 通过用户名转化得到用户VO,封装到用户培训关系VO中
			Long tr_id = Long.parseLong(request.getParameter("tr_id"));
			String loadname = request.getParameter("loadname");

			TrainRecordDAO trDao = new TrainRecordDAO();
			UserInfoDAO userDao = new UserInfoDAO();
			TrainRecordVO trVo = trDao.get(tr_id);
			UserInfoVO userVo = (UserInfoVO) userDao.queryByCondition(
					"and ui_loadname= '" + loadname + "'").get(0);

			TrUiRsIdVO turiVo = new TrUiRsIdVO();
			turiVo.setTrainRecord(trVo);
			turiVo.setUserInfo(userVo);

			TrUiRsVO turVo = turDao.get(turiVo);
			turVo.setUiState(request.getParameter("state"));

			// 写入数据库
			int i = turDao.update(turVo);
			if (i > 0) {// 修改成功
				request.setAttribute("turVo", turVo);
				try {
					pagehelp = turDao.getTrainRegisterList("", pageSize,
							Integer.parseInt(request
									.getParameter("currentPage")));
					// 转发至列表页面
					request.setAttribute("pagehelp", pagehelp);
					request.setAttribute("currentPage", request
							.getParameter("currentPage"));
					request.getRequestDispatcher(
							"/training/TrainRegisterList.jsp").forward(request,
							response);
				} catch (Exception e) {
					// 写异常日志
					System.out.println("in the update :" + e);
				}
			} else {
				errorMsg = "修改失败,请重试!!";
				out.println(errorMsg);
			}
		}
	}

	public void init() throws ServletException {
	}

}

⌨️ 快捷键说明

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