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

📄 fileaction.java

📁 人力资源管理系统
💻 JAVA
字号:
package org.HumResManSys.action;

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;

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

import org.HumResManSys.factory.ServiceFactory;
import org.HumResManSys.util.ExcelTools;
import org.HumResManSys.util.WordTools;
import org.HumResManSys.vo.Employee;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.log4j.Category;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

public class FileAction extends DispatchAction {
	private ServiceFactory serviceFactory;
	Log log=LogFactory.getLog(EmployeeAction.class);//log.debug
	
	
	
	
	//从word导入员工信息
	public ActionForward addEmployeeFromWord(ActionMapping mapping,
            ActionForm form,
            HttpServletRequest request,
            HttpServletResponse response){
		String path=null;
		String fileName=null;
		System.out.println("从word导入员工信息");
		try {
			Map values=initResourceFileUpload();
			if(values==null){
				return mapping.findForward("YGadminFail");
			}
			ServletFileUpload servletFileUpload=(ServletFileUpload)values.get("servletFileUpload");
			System.out.println("servletFileUpload:"+servletFileUpload);
			
			path=(String)values.get("path");
			System.out.println("上传路径:"+path);
			//获取表单中的各个项
			List items=servletFileUpload.parseRequest(request);
			
			System.out.println("size:"+items.size());
			
			Iterator iterator = items.iterator();
			//遍历
			while (iterator.hasNext()){
				System.out.println("遍历");
				//获取某一个表单域
				//临时存放表单中的某一项
				FileItem item = (FileItem) iterator.next();
				//如果是文件域,则上传文件
				if(!item.isFormField()){
					System.out.println("是文件域");
					if(item.getSize()==0){
						System.out.println("文件大小为0");
						return mapping.findForward("YGadminFail");
					}
					fileName=path+String.valueOf(System.currentTimeMillis())+".doc";
					System.out.println("文件名:"+fileName);
					
					FileOutputStream fileOutputStream=new FileOutputStream(fileName);
					if(item.isInMemory()){//如果上传文件域对应的文件已经在内存中
						fileOutputStream.write(item.get());
					}else{//如果文件内容不完全在内存中
						InputStream inputStream=item.getInputStream();
						byte[] buffer=new byte[1024];
						int length;
						while((length=inputStream.read(buffer)) >0 ){
							fileOutputStream.write(buffer, 0, length);
						}
						inputStream.close();
						fileOutputStream.close();
					}
					
					
				}else{//如果不是文件域,则是普通的表单内容
					System.out.println("不是文件域");
				}
			}
			
			WordTools wt=new WordTools(fileName);
			List<String> conditions=new ArrayList();
			conditions.add("姓名:[ A-Za-z0-9\u4e00-\u9fa5]+");
			conditions.add("性别:[ A-Za-z0-9\u4e00-\u9fa5]+");
			conditions.add("出生年月:[ ,,.。A-Za-z0-9\u4e00-\u9fa5]+");
			conditions.add("身份证号:[ A-Za-z0-9\u4e00-\u9fa5]+");
			conditions.add("部门名称:[ A-Za-z0-9\u4e00-\u9fa5]+");
			conditions.add("职位:[ A-Za-z0-9\u4e00-\u9fa5]+");
			List<String[]> results=wt.getInfo(conditions);
			
			//System.out.println("conditions.size() : "+conditions.size());
			int conditionsSize=conditions.size();
			
			
			for(int j=0;j<results.get(0).length;j++){
				
				Employee emp=new Employee();
				//for(int i=0;i<conditionsSize;i++){//显示一个员工的数据
					
					if(results.get(0)[j]!=null){
						
						
						List<Employee> list=serviceFactory.getEmployeeService().queryEmpsByOneCondition("emp_name", results.get(0)[j]);
			            //不能用已经存在的姓名来增加员工记录
						if(list.size()!=0){
							//log.debug(list.size());
							//return mapping.findForward("YGadminFail");
							continue;
						}
						
						emp.setEmp_name(results.get(0)[j]);
						emp.setSex(results.get(1)[j]);
						emp.setBirthday(results.get(2)[j]);
						emp.setId_card(results.get(3)[j]);
						emp.setDept_name(results.get(4)[j]);
						emp.setJob(results.get(5)[j]);
						emp.setPsw("123456");
						emp.setHire_date(new SimpleDateFormat("yy,MM,dd").format(new Date(System.currentTimeMillis())));
						
						System.out.println(emp.getEmp_name());
						System.out.println(emp.getSex());
						System.out.println(emp.getBirthday());
						System.out.println(emp.getId_card());
						System.out.println(emp.getDept_name());
						System.out.println(emp.getJob());
						System.out.println(emp.getHire_date());
						
						this.getServiceFactory().getEmployeeService().addEmployee(emp);
					}
					
					
					//System.out.println(new SimpleDateFormat("yy-MM-dd").format(new Date(System.currentTimeMillis())));
					//
				//}
			}
			
/*			for(String[] s:results){
				for(int i=0;i<s.length;i++){
					if(s[i]!=null){
						System.out.println("结果"+i+":"+s[i]);
					}else{}
				}
			}*/
			

			request.setAttribute("dest", "EmployeeAction.do?method=displayEmployees");
			return mapping.findForward("jump");
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return mapping.findForward("YGadminFail");
		}
	}
	//	从excel导入员工信息
	public ActionForward addEmployeeFromExcel(ActionMapping mapping,
            ActionForm form,
            HttpServletRequest request,
            HttpServletResponse response){
		String path=null;
		String fileName=null;
		System.out.println("从excel导入员工信息");
		try {
			Map values=initResourceFileUpload();
			if(values==null){
				return mapping.findForward("YGadminFail");
			}
			ServletFileUpload servletFileUpload=(ServletFileUpload)values.get("servletFileUpload");
			System.out.println("servletFileUpload:"+servletFileUpload);
			
			path=(String)values.get("path");
			System.out.println("上传路径:"+path);
			//获取表单中的各个项
			List items=servletFileUpload.parseRequest(request);
			
			System.out.println("size:"+items.size());
			
			Iterator iterator = items.iterator();
			//遍历
			while (iterator.hasNext()){
				System.out.println("遍历");
				//获取某一个表单域
				//临时存放表单中的某一项
				FileItem item = (FileItem) iterator.next();
				//如果是文件域,则上传文件
				if(!item.isFormField()){
					System.out.println("是文件域");
					if(item.getSize()==0){
						System.out.println("文件大小为0");
						return mapping.findForward("YGadminFail");
					}
					fileName=path+String.valueOf(System.currentTimeMillis())+".xls";
					System.out.println("文件名:"+fileName);
					
					FileOutputStream fileOutputStream=new FileOutputStream(fileName);
					if(item.isInMemory()){//如果上传文件域对应的文件已经在内存中
						fileOutputStream.write(item.get());
					}else{//如果文件内容不完全在内存中
						InputStream inputStream=item.getInputStream();
						byte[] buffer=new byte[1024];
						int length;
						while((length=inputStream.read(buffer)) >0 ){
							fileOutputStream.write(buffer, 0, length);
						}
						inputStream.close();
						fileOutputStream.close();
					}
					
					
				}else{//如果不是文件域,则是普通的表单内容
					System.out.println("不是文件域");
				}
			}
			
			
			ExcelTools et=new ExcelTools(fileName,false);
			String [][]results=et.readFromExcelByPage(0,50,false);
			for(int i=0;i<results.length;i++){
				if(results[i][0]!=null){
					Employee emp=new Employee();
					emp.setEmp_name(results[i][0]);
					emp.setSex(results[i][1]);
					emp.setBirthday(results[i][2]);
					emp.setId_card(results[i][3]);
					emp.setDept_name(results[i][4]);
					emp.setJob(results[i][5]);
					emp.setPsw("123456");
					emp.setHire_date(new SimpleDateFormat("yy,MM,dd").format(new Date(System.currentTimeMillis())));
					this.getServiceFactory().getEmployeeService().addEmployee(emp);
					
					System.out.println(emp.getEmp_name());
					System.out.println(emp.getSex());
					System.out.println(emp.getBirthday());
					System.out.println(emp.getId_card());
					System.out.println(emp.getDept_name());
					System.out.println(emp.getJob());
					System.out.println(emp.getHire_date());
				}
/*				for(int j=0;j<results[0].length;j++){
					if(results[i][j]!=null){
						System.out.println(results[i][j]);
					}
					
				}*/
			}
			

			

			request.setAttribute("dest", "EmployeeAction.do?method=displayEmployees");
			return mapping.findForward("jump");
			//return null;
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return mapping.findForward("YGadminFail");
		}
	}
	
	
	
	private Map initResourceFileUpload(){

		try {
			Map returnValues=new TreeMap();
			//Calendar calendar = Calendar.getInstance();				//
			//指定上传路径
			String path=servlet.getServletContext().getRealPath("/uploads")+"\\";
			returnValues.put("path", path);

			DiskFileItemFactory diskFileItemFactory=new DiskFileItemFactory();
			//设置上传工厂限制
			diskFileItemFactory.setSizeThreshold(1024*1024*3);
			//设置临时目录
			
			diskFileItemFactory.setRepository(new File(path));
			
			ServletFileUpload servletFileUpload=new ServletFileUpload(diskFileItemFactory);
			//设置允许上传的文件最大值
			servletFileUpload.setFileSizeMax(1024*1024*2);
			//设置表单提交的数据最大值
			servletFileUpload.setSizeMax(1024*1024*3);
			returnValues.put("servletFileUpload", servletFileUpload);
			return returnValues;
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}
	}
	
	
	
	//ajax获取所有员工的名字
	public ActionForward getEmployeeNames(ActionMapping mapping,
            ActionForm form,
            HttpServletRequest request,
            HttpServletResponse response){
		try {
			response.setContentType("text/html;charset=gb2312");//设置编码方式
			PrintWriter out = response.getWriter();
			List<Employee> cat=getServiceFactory().getEmployeeService().showAllEmployees();
			//System.out.println("原始数据:"+cat.toString());
			if(cat==null){
				System.out.println("没有数据");
				out.write("0");
			}else{
				Employee c=null;
				String emps="";
				for(int i=0;i<cat.size();i++){
					c=(Employee)cat.get(i);
					emps=emps+c.getEmp_name()+"$$$$";
					System.out.println("员工名字数据:"+c.getEmp_name());
				}
				//System.out.println(newsTypes);
				emps=emps.substring(0, emps.length()-4);
				//System.out.println(newsTypes);
	
				out.write(emps);
			}
			return null;
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}
	}
	
	
	public ServiceFactory getServiceFactory() {
		return serviceFactory;
	}
	public void setServiceFactory(ServiceFactory serviceFactory) {
		this.serviceFactory = serviceFactory;
	}
}

⌨️ 快捷键说明

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