任务要求 idea jdk1.8 三层结构的任务管理系统可以实现登录,判断登录用户权限等操作
任务管理系统
一、系统需求
查询所有任务信息:展示所有任务信息
录入任务信息:
- 用户输入:任务名, 预计完成时间(Date) , 责任人
- 状态: 默认是 未开始
开始任务
提示用户输入任务编号
将任务的状态改为进行中
完成任务
提示用户输入任务编号
将任务的状态改为已完成, 同时将 finishDate 设置为当前系统时间
二、任务信息
编号 id , 任务名 name,预计完成时间 deadLine ,完成时间 finishDate , 状态: 进行中、已完成、未开始,责任人:worker
三、升级
不做强制要求
难度: ⭐⭐⭐⭐⭐
添加一个登录功能:
运行系统,
**** 欢迎使用 xxx 系统 ****
请登录
请输入账户:xxx
请输入密码:xxx
1、登录失败
用户名密码错误!
**** 欢迎使用 xxx 系统 ****
请登录
请输入账户:xxx
请输入密码:xxx
2、登录成功
欢迎您:昵称
原始菜单: 用户类User: nickname, loginname,password , role
如果role = 1: 超级管理员,能看到所有菜单
如果role = 0:普通用户: 看不到添加菜单
3、查询任务
普通用户只能查到自己的任务
超管能查到所有用户的任务
任务类中,应该多一个用户id字段
4、退出
实体类-Task(任务信息)
package cn.kgc.bms.entity;
import java.util.Date;
import java.util.Objects;
public class Task {
private int id;
private String name;
private Date deadLine;
private Date finishDate;
private String state;
private String worker;
public Task(String state) {
this.state = state;
}
public Task(int id, String name, Date deadLine, Date finishDate, String state, String worker) {
this.id = id;
this.name = name;
this.deadLine = deadLine;
this.finishDate = finishDate;
this.state = state;
this.worker = worker;
}
public Task(String name, Date deadLine, Date finishDate, String state, String worker) {
this.name = name;
this.deadLine = deadLine;
this.finishDate = finishDate;
this.state = state;
this.worker = worker;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Task task = (Task) o;
return id == task.id;
}
@Override
public int hashCode() {
return Objects.hash(id);
}
@Override
public String toString() {
return id+"\t"+name+"\t"+deadLine+"\t"+finishDate+"\t"+state+"\t"+worker;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getDeadLine() {
return deadLine;
}
public void setDeadLine(Date deadLine) {
this.deadLine = deadLine;
}
public Date getFinishDate() {
return finishDate;
}
public void setFinishDate(Date finishDate) {
this.finishDate = finishDate;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getWorker() {
return worker;
}
public void setWorker(String worker) {
this.worker = worker;
}
public Task() {
}
}
实体类-User(用户信息)
package cn.kgc.bms.entity;
public class User {
private String nickName;
private String loginName;
private String password;
private int role;
public User() {
}
public User(String loginName, String password) {
this.loginName = loginName;
this.password = password;
}
public User(String nickName, String loginName, String password, int role) {
this.nickName = nickName;
this.loginName = loginName;
this.password = password;
this.role = role;
}
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
public String getLoginName() {
return loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getRole() {
return role;
}
public void setRole(int role) {
this.role = role;
}
}
工具包-DateUtil
package cn.kgc.bms.util;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateUtil {
private static final String DEFAULT_PATTERN = "yyyy-MM-dd HH:mm:ss";
/**
* 获取当前的系统时间
* @return 系统时间
*/
public static Date currentDate(){
return new Date();
}
/**
* 将 date 格式的字符串转换为一个日期对象
* @param dateStr date 格式的字符串
* @param pattern 日期字符串的格式
* @return 日期对象
*/
public static Date str2Date(String dateStr,String pattern) {
try {
SimpleDateFormat sf = new SimpleDateFormat(pattern);
return sf.parse(dateStr);
} catch (ParseException e) {
throw new RuntimeException("字符串转换日期出错,字符串:" + dateStr+",格式为:" + pattern,e);
}