您的位置:首页 > 其它

实现Staff类的汇报工作功能

2018-03-20 17:55 211 查看


解决方案:
1创建汇报类Reportpublic class Report {
//汇报类
private int reportId;
private int reporterId;
private String content;
public int getReportId() {
return reportId;
}
public void setReportId(int reportId) {
this.reportId = reportId;
}
public int getReporterId() {
return reporterId;
}
public void setReporterId(int reporterId) {
this.reporterId = reporterId;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}

}
2,创建Data数据初始化类public class Data {
//保存当前登录的员工
public static Employee currentEmployee;
//角色值为1普通员工 2经理 3 管理员
//部门值1表示市场部 2表示开发部 3信息部
//实例普通员工
public static Staff staff=new Staff(1,"DH001","Staff","Staff",2,1,3000.5);
//部门经理
public static Manager manager=new Manager(2,"DH002","Manager","Manager",2,2,5000.5);
//实例管理员
public static Admin admin=new Admin(3,"DH003","Admin","Admin",2,3,4000.5);
public static Report[] reports=new Report[1000];
//初始化数据
public static void init(){
for(int i=0;i<reports.length;i++){
reports[i]=new Report();
}
}

}
3,创建业务逻辑类hrhelperpublic class HrHelper {
//登录检测
public Employee login(String name,String password){
if(name.equals(Data.staff .getUserName())&& password.equals(Data.staff.getPassword())){
Data.currentEmployee=Data.staff ;
}else if(name.equals(Data.manager.getUserName())&& password.equals(Data.manager.getPassword())){
Data.currentEmployee=Data.manager ;

}else if(name.equals(Data.admin.getUserName())&& password.equals(Data.admin.getPassword())){
Data.currentEmployee=Data.admin;
}
return Data.currentEmployee;
}
public int getReportsCount(){
int count=0;
//如果遍历完现有汇报
for(Report item:Data.reports){
if(item.getReportId()<=0)
break;
count++;
}
//返回现有汇报数量

return count;
}
//通过员工id返回员工对象
public Employee getEmployeeByUserId(int userId){
if(Data.staff.getUserId()==userId)
return Data.staff;
if(Data.manager.getUserId()==userId)
return Data.manager;
if(Data.admin.getUserId()==userId)
return Data.admin;
return null;

}
//显示所有汇报
public void displayReports(){
System.out.println("汇报如下");
System.out.println("*****************************");
for(int i=0;i<Data.reports.length;i++){
//如果遍历完现有汇报
if(Data.reports[i]==null)
break;
//得到汇报人信息
Employee employee=getEmployeeByUserId(Data.reports[i].getReporterId());
if(employee!=null)
System.out.println("编号"+Data.reports[i].getReporterId()+"\t汇报人:"+employee.getUserName()+employee.getUserName()+"\t汇报内容:"+Data.reports[i].getContent());
}
}
//添加汇报
public void addReport(Report report){
//得到当前汇报的数量
int count =getReportsCount();
if(count>=Data.reports.length){
System.out.println("汇报日志已满");
return;

}else{
//将汇报存储到report数组
Data.reports[count]=report;
System.out.println("汇报成功");
}
}
/**
*修改员工角色
*@param empNo 员工编号
*@param roleName 角色名称
*
*/
public void modifyEmployeeRole(String empNo,String roleName){
int roleId=0;
switch(roleName){
case "Staff":
roleId=1;
break;
case "Manager":
roleId=2;
break;
case "Admin":
roleId=3;
break;
default:
System.out.println("输入的角色不存在!");;
break;
}
if(empNo.equals(Data.staff.getEmpNo())){
Data.staff.setRoleId(roleId);
}else if(empNo.equals(Data.manager.getRoleId())){
Data.manager.setRoleId(roleId);
}else if(empNo.equals(Data.admin.getRoleId())){
Data.admin.setRoleId(roleId);
}else{
System.out.println("不存在此员工!");
}
}

}
4  修改Staff类public class Staff extends Employee{
public Staff(){
super();
}
public Staff(int userId,String empNo,String userName,String password,int departId,int roleId,double salary){
super(userId,empNo,userName,password,departId,roleId,salary);
}
HrHelper helper=new HrHelper();
public void addReport(){
System.out.println("请输入汇报信息\n");
Scanner input=new Scanner(System.in);
String content=input.next();
//实例化report对象
Report report =new Report();
//汇报id,每一次在上一次的基础上加一
report.setReporterId(helper.getReportsCount()+1);
report.setContent(content);
//设置汇报人id
report.setReporterId(Data.currentEmployee.getUserId());
//加入汇报数组
helper.addReport(report);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐