package com.hcc.controller;
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
import com.hcc.pojo.*;
import com.hcc.service.*;
import io.swagger.annotations.ApiOperation;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.time.LocalDate;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author CC
* @since 2022-04-28
*/
@RestController
@RequestMapping("/employee/basid")
public class EmployeeController {
@Autowired
private IEmployeeService employeeService;
@Autowired
private IPoliticsStatusService politicsStatusService;
@Autowired
private IJoblevelService joblevelService;
@Autowired
private INationService nationService;
@Autowired
private IPositionService positionService;
@Autowired
private IDepartmentService departmentService;
@ApiOperation(value = "获取所有员工")
@GetMapping("/")
public RespPageBean getEmployee(@RequestParam(defaultValue = "1") Integer currentPage,
@RequestParam(defaultValue = "10") Integer size,
Employee employee,
LocalDate[] beginDateScope){
return employeeService.getEmployee(currentPage,size,employee,beginDateScope);
}
@ApiOperation(value = "获取所有政治面貌")
@GetMapping("/politicsstatus")
public List<PoliticsStatus> getAllPoliticeStatus(){
return politicsStatusService.list();
}
@ApiOperation(value = "获取所有职称")
@GetMapping("/joblevels")
public List<Joblevel> getJoblevels(){
return joblevelService.list();
}
@ApiOperation(value = "获取所有民族")
@GetMapping("/nations")
public List<Nation> getNation(){
return nationService.list();
}
@ApiOperation(value = "获取所有职位")
@GetMapping("/position")
public List<Position> getPosition(){
return positionService.list();
}
@ApiOperation(value = "获取所有部门")
@GetMapping("/department")
public List<Department> getAllDepartment(){
return departmentService.getAllDepartments();
}
@ApiOperation(value = "获取工号")
@GetMapping("/maxWorkID")
public RespBean maxWorkID(){
return employeeService.maxWorkID();
}
@ApiOperation(value = "添加员工")
@PostMapping("/")
public RespBean addEmp(@RequestBody Employee employee){
return employeeService.addEmp(employee);
}
@ApiOperation(value = "更新员工")
@PutMapping("/")
public RespBean updateEmployee(@RequestBody Employee employee){
if (employeeService.updateById(employee)){
return RespBean.success("更新成功");
}
return RespBean.success("更新失败");
}
@ApiOperation(value = "删除员工")
@DeleteMapping("/{id}")
public RespBean deleteEmployee(@PathVariable Integer id){
if (employeeService.removeById(id)){
return RespBean.success("删除成功");
}
return RespBean.success("删除失败");
}
@ApiOperation(value = "导出员工数据")
@GetMapping(value = "/export",produces = "application/octet-stream")
public void exportEmployee(HttpServletResponse response){
List<Employee> list = employeeService.getEmployee(null);
ExportParams Params = new ExportParams("员工表", "员工表", ExcelType.HSSF);
Workbook workbook = ExcelExportUtil.exportExcel(Params,Employee.class,list);
ServletOutputStream out = null;
try {
//以流的方式传出
response.setHeader("content-type","application/octet-stream");
//防止响应乱码
response.setHeader("content-disposition","attachment;filename="+URLEncoder.encode("员工表.xls","UTF-8"));
out=response.getOutputStream();
workbook.write(out);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if (out!=null){
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
@ApiOperation(value = "导入员工数据")
@PostMapping(value = "/import")
public RespBean importEmployee(MultipartFile file){
ImportParams importParams = new ImportParams();
//去掉标题行
importParams.setTitleRows(1);
List<Nation> nationList = nationService.list();
List<PoliticsStatus> politicsStatusList = politicsStatusService.list();
List<Department> departmentList = departmentService.list();
List<Joblevel> joblevelList = joblevelService.list();
List<Position> positionList = positionService.list();
try {
//重写
List<Employee> list = ExcelImportUtil.importExcel(file.getInputStream(), Employee.class, importParams);
list.forEach(employee -> {
//民族id
employee.setNationId(nationList.get(nationList.indexOf(new Nation(employee.getNation().getName()))).getId());
//政治面貌id
employee.setPoliticId(politicsStatusList.get(politicsStatusList.indexOf(new PoliticsStatus(employee.getPoliticsStatus().getName()))).getId());
//部门id
employee.setDepartmentId(departmentList.get(departmentList.indexOf(new Department(employee.getDepartment().getName()))).getId());
//职称id
employee.setJobLevelId(joblevelList.get(joblevelList.indexOf(new Joblevel(employee.getJoblevel().getName()))).getId());
//职位id
employee.setPosId(positionList.get(positionList.indexOf(new Position(employee.getPosition().getName()))).getId());
});
if(employeeService.saveBatch(list)){
return RespBean.success("插入员工成功");
}
} catch (Exception e) {
e.printStackTrace();
}
return RespBean.error("插入员工失败");
}
}
Springboot+vue的OA办公系统.zip
需积分: 0 40 浏览量
更新于2024-03-26
收藏 1.59MB ZIP 举报
"Springboot+Vue的OA办公系统"是一个典型的现代企业级应用开发框架,它结合了Java后端的Spring Boot框架与前端的Vue.js框架,以实现高效、灵活的办公自动化系统。Spring Boot简化了Spring应用的初始搭建以及开发过程,而Vue.js则提供了轻量级的前端解决方案,使得用户界面更加直观且易于维护。
"基于Java的程序源码及相关资料"意味着这个压缩包包含了完整的项目源代码,以及可能包括设计文档、数据库脚本、部署指南等资源。对于学习者或开发者而言,这是一个宝贵的学习和参考材料,能够深入理解如何将Java技术栈应用于实际的OA办公系统开发中。
"毕业设计"表明这可能是某个学生或团队的毕业项目,他们通过这个项目展示了对软件工程流程的理解,以及在特定领域(如OA办公系统)的技术应用能力。"源码"标签提示我们可以期待看到实现系统的具体代码,这对于初学者或有经验的开发者来说都是一个很好的学习资源。"Java"标签明确了主要使用的编程语言,Java以其稳定性和跨平台特性,常被用于构建大型企业系统。
【压缩包子文件的文件名称列表】"23dhjig"看起来像是一个随机生成的文件名,这通常是临时文件或打包过程中产生的。在解压后的文件夹中,通常会包含以下结构:
1. **pom.xml** - Spring Boot项目的配置文件,定义了项目依赖和构建设置。
2. **src/main/java** - 存放Java源代码,包括Spring Boot的启动类、配置类和服务接口及实现。
3. **src/main/resources** - 配置文件、静态资源(如图片、字体)和国际化文件存放的地方。
4. **src/main/webapp** - 如果是传统的Web项目,这里会有HTML、CSS和JavaScript文件。但Spring Boot通常使用静态资源目录来存储这些文件。
5. **src/main/resources/static** - Vue.js的静态文件,包括Vue组件、样式表和JavaScript文件。
6. **src/main/resources/templates** - Thymeleaf或其他模板引擎的视图文件,用于渲染动态内容。
7. **db脚本** - 创建数据库表和初始化数据的SQL脚本。
8. **README.md** - 项目介绍和使用指南。
9. **Dockerfile** - 可能包含Docker配置,用于容器化部署。
10. **LICENSE** - 项目的授权协议信息。
11. **.gitignore** - Git版本控制系统忽略的文件列表。
通过这个项目,开发者可以学习到如何使用Spring Boot构建RESTful API,集成数据库操作,使用Vue.js进行前端开发,以及如何设计和实现一个完整的OA办公系统,包括用户管理、任务分配、审批流程等功能。此外,还可以了解到如何组织项目结构、编写单元测试,以及应用部署和持续集成的实践。
奔强的程序
- 粉丝: 1027
- 资源: 2750