ssm项目实战------------OA管理项目

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_30764991/article/details/91356335

“我不是代码的生产者,我只是代码的搬运工,搬砖的假码农”.......................坚持,朝着坚定的目标继续前进,成功的道路是孤独的,相信自己,自己为自己加油,自己为自己带盐!!!!我为自己带盐,我是从放弃到开始,从开始到放弃,从放弃再到开始,无限循环,希望意志坚定!加油

本项目技术介绍:

spring springmvc  mybatis   jsp  jquery   mysql  bootstrip  js  等所以要看懂本篇项目最少需要以上技术基础,加油!!!

ssm实战项目分享给大家参考上,希望对大家有帮助,加油!代码量太大,一些关键的代码,博主贴在这里供大家参考,完全代码博主这里就上传到csdn中提供大家下载参考,sql在resource中。

代码下载链接:https://download.csdn.net/download/qq_30764991/11232514

这边博主简单的截图给大家,如果需要参考,请自行参考。如果你认认真真的把这个项目搞懂,说明你也算入门这个行业了,还得继续加油......这个行业是不断学习,不断练习的一个大坑行业,不断的填坑,一直到展现一个完整的项目,才说明ok。

项目结构:

项目运行后的截图:

在这个下载中心代码这里需要注意路径问题:项目运行的时候会报一个路径找不到的问题,这个问题已经找到,需要手动的去配置路径:这是博主的文件上传存储的路径:D:\alldemospace\StsDemoSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\myoa\uploadFile\admin,其中uploadFile\admin需要去你存储的路径中添加,这样上传文档就会存在这个路径中。

文件上传下载controller的代码如下:

package com.dzx.controller;

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

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import com.dzx.domain.Doc;
import com.dzx.domain.User;
import com.dzx.service.DocService;
import com.dzx.util.HrmConstants;
import com.dzx.util.HrmDownloadUtil;

@Controller
public class MyDocController {
	@Autowired
	private DocService docService;

	// 查找
	@RequestMapping("/selectFile")
	public ModelAndView SelectFile(Doc doc) {
		// 查询文档
		List<Doc> docList = docService.selectFile(doc);
		// 创建一个ModelAndView
		ModelAndView modelAndView = new ModelAndView();
		// 传给前端数据
		modelAndView.addObject(HrmConstants.DOC_LIST, docList);
		// 跳转到docList页面
		modelAndView.setViewName("doc/docList");
		return modelAndView;
	}

	// 删除
	@RequestMapping("/deleteFile")
	public String delteFile(Integer[] caption) {
		docService.deleteFile(caption);
		return "redirect:/selectFile";
	}

	// 上传文档
	@RequestMapping("/uploadFile")
	public String uploadFile(Doc doc, HttpServletRequest request)
			throws IllegalStateException, IOException {
		if (doc.getSrcfile() != null) {// 如果获取的文件路径不为空null
			// session中获取user
			// User user = (User) request.getSession().getAttribute("user");
			User user = (User) request.getSession().getAttribute("user");
			doc.setUser(user);
			// 上传文件名
			String filename = doc.getSrcfile().getOriginalFilename();
			// 站点路径
			String servletPath = request.getServletContext().getRealPath(
					"/uploadFile");
			// 为上传文件用户创建一个单独的文件夹
			File userDir = new File(servletPath + File.separator
					+ user.getLoginname());
			// 如果userDir不存在,则创建
			if (!userDir.exists()) {
				userDir.mkdir();
			}
			// 上传文件到该用户文件夹
			File file = new File(userDir + File.separator + filename);
			System.out.println(file);
			if (!file.getParentFile().exists()) {
				file.mkdir();
			}
			// 上传文件到路径
			doc.getSrcfile().transferTo(file);
			// 设置doc的值
			doc.setFilename(filename);
			docService.fileUpload(doc);
			request.setAttribute("message", "上传成功");
			return "doc/docUpload";
		}
		request.setAttribute("message", "上传文件不能为空");
		return "doc/docUpload";
	}

	// 跳转到上传页面
	@RequestMapping("/toUploadFile")
	public String toUploadFile() {
		return "doc/docUpload";
	}

	// 文件下载
	@RequestMapping("/downloadFile")
	public ResponseEntity<byte[]> downloadFile(Doc doc,
			HttpServletRequest request) throws IOException {
		// 下载文件路径,文件对象
		String servletPath = request.getServletContext().getRealPath(
				"/uploadFile" + File.separator + doc.getUser().getLoginname());
		String path = servletPath + File.separator + doc.getFilename();

		// 文件下载
		return HrmDownloadUtil.download(path, doc.getFilename());
	}
	// 文件导出
		@RequestMapping("/docImportExcel")
		public ResponseEntity<byte[]> importExcel(HttpServletRequest request) throws IOException {
			// 下载文件路径,文件对象,doc所有字段值
			String servletPath = request.getServletContext().getRealPath("/uploadFile");
			String path = servletPath + File.separator + HrmConstants.DOC_TABLENAME + ".xls";
			String[] thTitle = { "文件编号", "标题", "文件名", "创建时间", "创建人", "描述" };
			// 获取所有的文件
			List<Doc> allFile = docService.selectAllFile(new Doc());
			// 调用导出Excel方法
			docService.importExcel(thTitle, allFile, HrmConstants.DOC_TABLENAME, path);
			// 文件下载
			return HrmDownloadUtil.download(path, HrmConstants.DOC_TABLENAME+ ".xls");
		}
		
		// 打印
		@RequestMapping("/docPrint")
		public String docPrint(HttpServletRequest request) {
			// 获取所有的文件
			List<Doc> allFile = docService.selectAllFile(new Doc());
			request.setAttribute(HrmConstants.ALL_DOC, allFile);
			return "doc/docPrint";
		}
}

文件上传下载serviceImpl实现 业务类的代码如下:

package com.dzx.service.impl;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.io.FileUtils;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFFont;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.dzx.dao.DocDao;
import com.dzx.domain.Doc;
import com.dzx.service.DocService;
@Service
public class DocServiceImpl implements DocService {
	@Autowired
	private DocDao docDao;
	
	//添加文档
	@Transactional(readOnly = false)
	public int fileUpload(Doc doc) {
		int fileUpload = docDao.fileUpload(doc);
		return fileUpload;
	}

	//分页查询文档
	public List<Doc> selectFile(Doc doc) {
		//如果doc不为空
		if (doc!=null) {
			//查询文档数
			int totalRecord = docDao.selectFileCount(doc);
			//文档封装
			doc.setTotalRecord(totalRecord);
			//添加文档
			return docDao.selectFile(doc);
		} else {
			return new ArrayList<>();
		}
	}
	//批量删除
	@Transactional(readOnly=false)
	public int deleteFile(Integer[] caption) {
		if (caption!=null) {
			for (Integer integer : caption) {
				docDao.deleteFile(integer);
			}
		}
		return 0;
	}
	
	//查询所有文档
	public List<Doc> selectAllFile(Doc doc) {
		List<Doc> allFile = docDao.selectAllFile(doc);
		return allFile;
	}
	//导出方法
	public Boolean importExcel(String[] thTitle, List<Doc> listValue,
			String tableTitle, String path) {
		// 创建Excelworkbook
				XSSFWorkbook workbook = new XSSFWorkbook();
				// 创建一个工作表sheet
				XSSFSheet sheet = workbook.createSheet();

				// 创建表头样式
				XSSFCellStyle cellStyle = workbook.createCellStyle();
				XSSFFont font = workbook.createFont();// 字体
				font.setFontName("黑体");
				font.setFontHeightInPoints((short) 14);
				cellStyle.setAlignment(HorizontalAlignment.CENTER);// 居中
				cellStyle.setFont(font);// 字体
				sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, thTitle.length - 1)); // 合并单元格

				// 创建表格样式
				XSSFCellStyle cellStyle2 = workbook.createCellStyle();
				cellStyle2.setAlignment(HorizontalAlignment.CENTER);// 居中
				// 创建第一行
				XSSFRow row0 = sheet.createRow(0);
				XSSFCell cell = null;
				cell = row0.createCell(0);
				cell.setCellValue(tableTitle);// 设置标题值
				cell.setCellStyle(cellStyle);
				row0.setHeightInPoints((short) 20);// 设置行高

				// 创建第二行
				XSSFRow row2 = sheet.createRow(1);
				// 插入第二行的数据
				for (int i = 0; i < thTitle.length; i++) {
					cell = row2.createCell(i);
					cell.setCellValue(thTitle[i]);
					cell.setCellStyle(cellStyle2);
				}
				// 第三行,追加数据
				SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日");// 格式化日期
				for (int i = 0; i < listValue.size(); i++) {
					XSSFRow nextRow = sheet.createRow(i + 2);
					XSSFCell cell2 = nextRow.createCell(0);
					cell2.setCellValue(listValue.get(i).getId().toString());
					cell.setCellStyle(cellStyle2);
					
					cell2 = nextRow.createCell(1);
					cell2.setCellValue(listValue.get(i).getTitle());
					cell.setCellStyle(cellStyle2);
					
					cell2 = nextRow.createCell(2);
					cell2.setCellValue(listValue.get(i).getFilename());
					cell.setCellStyle(cellStyle2);
					
					cell2 = nextRow.createCell(3);
					String dateFormat = format.format(listValue.get(i).getCreate_date());
					cell2.setCellValue(dateFormat);
					cell.setCellStyle(cellStyle2);
					
					cell2 = nextRow.createCell(4);
					cell2.setCellValue(listValue.get(i).getUser().getUsername());
					cell.setCellStyle(cellStyle2);
					
					cell2 = nextRow.createCell(5);
					cell2.setCellValue(listValue.get(i).getRemark());
					cell.setCellStyle(cellStyle2);
//					设置列高,(第几列,像素)
					sheet.setColumnWidth((short) i, (short) 4000);
				}
				// 创建一个文件
				File file = new File(path);
				try {
					file.createNewFile();
					// 将excel的内容写入到流中
					FileOutputStream stream = FileUtils.openOutputStream(file);
					workbook.write(stream);
					stream.close();
					workbook.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				return true;
			}
	}

 

展开阅读全文

没有更多推荐了,返回首页