一、项目介绍
随着信息化技术的发展,项目管理对于企业的成功变得至关重要。然而,传统的手工方法已经无法满足日益增长的项目规模和复杂性,因此需要一个高效、可靠的项目管理系统。SpringBoot作为一种流行的Java开发框架,具有快速开发和易于维护的优势,能够为项目管理系统的设计和实现提供有力的支持。
本课题的目的是设计和实现一套基于SpringBoot的项目管理系统,用于支持企业对于项目的全生命周期管理。系统将提供项目计划、任务分配、进度跟踪、资源管理、文档共享、团队协作等功能,帮助企业高效地进行项目管理并提升团队协作和沟通效率。
二、开发环境
开发语言:Java
框架:springboot
JDK版本:JDK1.8
服务器:tomcat7
数据库:mysql
数据库工具:Navicat11
开发软件:eclipse/myeclipse/idea
Maven包:Maven
————————————————
三、功能介绍
系统管理人员:
1、个人中心:系统管理人员可以在此查看和编辑自己的个人信息。
2、用户管理:系统管理人员可以在此管理项目人员,包括添加新的项目人员,删除已经离开的项目人员等。
3、公告信息管理:系统管理人员可以在此编辑系统维修、更新公告。
项目管理人员:
1、个人中心:项目管理人员可以在此查看和编辑自己的个人信息,包括姓名,职位等。
2、用户管理:项目管理人员可以在此管理项目参与人员,包括添加新的参与人员,删除已经离开的参与人员等。
3、项目管理:项目管理人员可以在此管理项目,包括添加新的项目,删除已经完成的项目等。
4、项目申报管理:项目管理人员可以在此管理项目的申报,包括添加新的申报,删除已经过期的申报等。
5、资源管理:项目管理人员可以在此管理项目的资源,包括人力资源,物资资源等。
6、合同管理:项目管理人员可以在此管理项目的合同,包括合同的签订,合同的执行等。
7、进度管理:项目管理人员可以在此控制项目的进度,包括设置项目的进度,监控项目的进度等。
8、风险管理:项目管理人员可以在此管理项目的风险,包括识别项目的风险,制定风险应对策略等。
9、成本管理:项目管理人员可以在此管理项目的成本,包括预算的制定,成本的控制等。
10、操作日志管理:项目管理人员可以在此查看项目的操作日志,包括谁在什么时候做了什么操作等。
项目参与人员:
1、个人中心:项目参与人员可以在此查看和编辑自己的个人信息。
2、查看筛选项目:项目参与人员可以在此查看和筛选自己参与的项目。
3、项目申报信息:项目参与人员可以在此查看项目的申报信息,包括申报的内容,申报的时间等。
4、项目管理:项目参与人员可以在此管理项目,包括添加新的项目,删除已经完成的项目等。
5、进度管理:项目参与人员可以在此控制项目的进度,包括设置项目的进度,监控项目的进度等。
四、核心代码
部分代码:
package com.example.controller;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import com.example.common.Result;
import com.example.common.ResultCode;
import com.example.entity.Caiwu;
import com.example.exception.CustomException;
import com.example.service.CaiwuService;
import com.example.utils.MapWrapperUtils;
import com.example.utils.jwt.JwtUtil;
import com.example.vo.CaiwuVo;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping(value = "/caiwu")
public class CaiwuController {
@Resource
private CaiwuService caiwuService;
@PostMapping
public Result<Caiwu> add(@RequestBody CaiwuVo caiwu) {
caiwuService.add(caiwu);
return Result.success(caiwu);
}
@PostMapping("/deleteList")
public Result<Caiwu> deleteList(@RequestBody CaiwuVo caiwu) {
caiwuService.deleteList(caiwu.getList());
return Result.success();
}
@DeleteMapping("/{id}")
public Result delete(@PathVariable Long id) {
caiwuService.delete(id);
return Result.success();
}
@PutMapping
public Result update(@RequestBody CaiwuVo caiwu) {
caiwuService.update(caiwu);
return Result.success();
}
@GetMapping("/{id}")
public Result<Caiwu> detail(@PathVariable Integer id) {
Caiwu caiwu = caiwuService.findById(id);
return Result.success(caiwu);
}
@GetMapping
public Result<List<Caiwu>> all() {
return Result.success(caiwuService.list());
}
@PostMapping("/page")
public Result<CaiwuVo> page(@RequestBody CaiwuVo caiwuVo) {
return Result.success(caiwuService.findPage(caiwuVo));
}
@PostMapping("/login")
public Result login(@RequestBody Caiwu caiwu, HttpServletRequest request) {
if (StrUtil.isBlank(caiwu.getZhanghao()) || StrUtil.isBlank(caiwu.getMima())) {
throw new CustomException(ResultCode.PARAM_LOST_ERROR);
}
Caiwu login = caiwuService.login(caiwu);
// if(!login.getStatus()){
// return Result.error("1001","状态限制,无法登录系统");
// }
if(login != null) {
HashMap hashMap = new HashMap();
hashMap.put("user", login);
Map<String, Object> map = MapWrapperUtils.builder(MapWrapperUtils.KEY_USER_ID,caiwu.getId());
String token = JwtUtil.creatToken(map);
hashMap.put("token", token);
return Result.success(hashMap);
}else {
return Result.error();
}
}
@PutMapping("/updatePassword")
public Result updatePassword(@RequestBody Caiwu info, HttpServletRequest request) {
Caiwu caiwu = caiwuService.findById(info.getId());
String oldPassword = SecureUtil.md5(info.getMima());
if (!oldPassword.equals(caiwu.getMima())) {
return Result.error(ResultCode.PARAM_PASSWORD_ERROR.code, ResultCode.PARAM_PASSWORD_ERROR.msg);
}
info.setMima(SecureUtil.md5(info.getNewPassword()));
Caiwu caiwu1 = new Caiwu();
BeanUtils.copyProperties(info, caiwu1);
caiwuService.update(caiwu1);
return Result.success();
}
}
五、效果图