这个系统包含了四块,第一块就是人员管理,经理分配三位分别有“ABC"权限的人,分别管理请假申请,请假审批,门卫登记管理。同时不属于本公司的内部人员,如别的公司的人员如果想到本公司访问,也是先通过这”ABC“权限的三个人代为写来访申请,来访审批,来访门卫登记管理。
具体步骤如下:
因为后面都会用到很多相同的方法,和相同的属性,所以我先建立了两个接口让后面的方法类和属性类都实现这两个接口,这样就降低了耦合度。
从零开始学Java之出入门卫管理(一)里面包含了我所建立属性接口、方法接口以及 经理管理赋予“ABC”权限及解除权限的界面,我写了默认的三个账号跟密码(权限A:账号1001 密码:1314 权限B:账号1002 密码:1314 权限C:账号1003 密码:1314 ),你通过管理界面可以重新建立“新人”,或者“解雇老人”。
此次要写的内容为:本公司内部人员请假外出申请与其他公司人员到本公司访问申请,都由本公司权限为A的人写申请单,然后递交到权限B的人进行批阅。都是有权限A的人写申请,这两个类属性也有很多近似!
具体内容为:
1.公司内部人员外出申请属性类:
package com.jereh.discrepancy;
public class GoRequest implements Attribute,java.io.Serializable{
private int emp_no; //工号
private String emp_name; //姓名
private String req_sesc; //事由
private String go_date; //外出时间
private String go_time; //外出时间
private String back_time; //返回时间
private int stus; //状态
private String cf_data; //批准日期
private String cf_emp; //审核者
public int getEmp_no() {
return emp_no;
}
public void setEmp_no(int empNo) {
emp_no = empNo;
}
public String getEmp_name() {
return emp_name;
}
public void setEmp_name(String empName) {
emp_name = empName;
}
public String getReq_sesc() {
return req_sesc;
}
public void setReq_sesc(String reqSesc) {
req_sesc = reqSesc;
}
public String getGo_date() {
return go_date;
}
public void setGo_date(String goDate) {
go_date = goDate;
}
public String getGo_time() {
return go_time;
}
public void setGo_time(String goTime) {
go_time = goTime;
}
public String getBack_time() {
return back_time;
}
public void setBack_time(String backTime) {
back_time = backTime;
}
public int getStus() {
return stus;
}
public void setStus(int stus) {
this.stus = stus;
}
public String getCf_data() {
return cf_data;
}
public void setCf_data(String cfData) {
cf_data = cfData;
}
public String getCf_emp() {
return cf_emp;
}
public void setCf_emp(String cfEmp) {
cf_emp = cfEmp;
}
}
2.公司内部人员外出申请方法类:
package com.jereh.discrepancy;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.*;
public class GoRequestBiz implements Father{
List<GoRequest> list = new ArrayList<GoRequest>();
GoRequest go = new GoRequest();
Replenish rep = new Replenish();
@Override
public boolean add(Attribute at) { // 添加信息
read();
// for(int i =0; i<list.size();i++){
// go = (GoRequest)list.get(i);
// if(go.getEmp_no() == 1){
// return false;
// }
// }
list.add((GoRequest) at);
write();
return true;
}
@Override
public boolean delete(int num) { //删除信息
read();
for(int i =0; i<list.size();i++){
go = (GoRequest)list.get(i);
if(go.getEmp_no() == num){
list.remove(i);
write();
return true;
}
}
return false;
}
@Override
public void show() { //展示信息
read();
for(int i =0;i<list.size();i++){
go = (GoRequest)list.get(i);
System.out.println("\t"+go.getEmp_no()+"\t\t"+go.getEmp_name()+"\t\t"
+go.getReq_sesc()+ "\t\t"+go.getGo_time()+"\t\t"+go.getBack_time()
+"\t\t"+rep.tran(go.getStus()));
}
}
public void change3(int num) { //判断是否存在此条信息
read();
for(int i = 0; i<list.size();i++){
go = (GoRequest)list.get(i);
if(go.getEmp_no() == num){
go.setStus(3);
write();
}
}
}
public void change4(int num) { //判断是否存在此条信息
read();
for(int i = 0; i<list.size();i++){
go = (GoRequest)list.get(i);
if(go.getEmp_no() == num){
go.setStus(4);
write();
}
}
}
@Override
public boolean update(int num) { //判断是否存在此条信息
read();
for(int i = 0; i<list.size();i++){
go = (GoRequest)list.get(i);
if(go.getEmp_no() == num){
return true;
}
}
return false;
}
public GoRequest getGoRequest(int num) { //判断是否存在此条信息,返回对象,在门卫那边调用
read();
for(int i = 0; i<list.size();i++){
go = (GoRequest)list.get(i);
if(go.getEmp_no() == num){
return go;
}
}
return null;
}
public void show0(){ //输出状态为0的所有申请信息,审批时使用
read();
for(int i =0;i<list.size();i++){
go = (GoRequest)list.get(i);
if(go.getStus()==0){
System.out.println("\t"+go.getEmp_no()+"\t\t"+go.getEmp_name()+"\t\t"
+go.getReq_sesc()+ "\t\t"+go.getGo_time()+"\t\t"+go.getBack_time()
+"\t\t"+rep.tran(go.getStus()));
}
}
}
public void show1(){ //输出状态为1的所有申请信息,门卫登记时使用
read();
for(int i =0;i<list.size();i++){
go = (GoRequest)list.get(i);
if(go.getStus()==1){
System.out.println("\t"+go.getEmp_no()+"\t\t"+go.getEmp_name()+"\t\t"
+go.getReq_sesc()+ "\t\t"+go.getGo_time()+"\t\t"+go.getBack_time()
+"\t\t"+rep.tran(go.getStus()));
}
}
}
public boolean change(int num,int n){ //ExamineView审批时使用的改变状态的方法
read();
for(int i = 0; i<list.size();i++){
go = (GoRequest)list.get(i);
if(go.getEmp_no()==num){
go.setStus(n);
write();
return true;
}
}
return false;
}
@Override
public boolean updateJu(int num) { //修改该条信息
return false;
}
@Override
public void read(){ //读取123.txt中的文件
ObjectInputStream ois = null;
FileInputStream fis = null;
File file = new File("E:\\h\\123\\go.txt");
try {
fis = new FileInputStream(file);
ois = new ObjectInputStream(fis);
list = (List)ois.readObject();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
ois.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void write(){ //写入123.txt文件中数据
ObjectOutputStream oos = null;
FileOutputStream fos = null;
File file = new File("E:\\h\\123\\go.txt");
try {
if(!file.exists()){
fos = new FileOutputStream(file);
oos = new ObjectOutputStream(fos);
oos.writeObject(list);
}else{
file.createNewFile();
fos = new FileOutputStream(file);
oos = new ObjectOutputStream(fos);
oos.writeObject(list);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
oos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
3.公司内部人员外出申请View类:
package com.jereh.discrepancy;
import java.util.Scanner;
public class GoRequestView {
Scanner input = new Scanner(System.in);
Father gr = new GoRequestBiz();
GoRequest go = new GoRequest();
int emp_no; //工号
String emp_name; //姓名
String req_sesc; //事由
String go_time; //外出时间
String back_time; //返回时间
int stus; //状态
String cf_data; //批准日期
String cf_emp; //审核者
public void addView(){
System.out.println("####现在开始录入信息,请正确操作####");
System.out.print("¥¥¥¥请输入申请人的工号:");
emp_no = input.nextInt();
System.out.print("¥¥¥¥请输入申请人的姓名:");
emp_name = input.next();
System.out.print("¥¥¥¥请输入外出事由:");
req_sesc = input.next();
System.out.print("¥¥¥¥¥请输入外出时间:");
go_time = input.next();
System.out.print("¥¥¥¥¥请输入返回时间:");
back_time = input.next();
go.setBack_time(back_time);
go.setEmp_name(emp_name);
go.setEmp_no(emp_no);
go.setReq_sesc(req_sesc);
go.setGo_date(go_time);
if(gr.add(go)){
System.out.println("####录入成功… ^_^ #####");
}else
System.out.println("####录入失败… -_- #####");
}
public void updateView(){
System.out.print(" ……请输入您要修改的员工工号:");
emp_no = input.nextInt();
if(gr.update(emp_no)){
System.out.println("%%%%%%%修改成功,呵呵………………");
}else
System.out.println("@@@@@@@@没找到您要修改的员工信息@@@@@@@");
}
public void deleteView(){
System.out.print(" ……请输入您要删除的员工工号:");
emp_no = input.nextInt();
if(gr.delete(emp_no)){
System.out.println("%%%%%%%删除成功,此人已经灵车漂移………………");
}else
System.out.println("@@@@@@@@没找到,有事请烧纸@@@@@@@");
}
public void showView(){
System.out.println("*************员工申请外出记录**********************");
System.out.println("\t员工工号\t\t员工姓名\t\t外出事由\t\t外出时间\t\t" +
"返回时间\t\t状态\t\t");
gr.show();
System.out.println("=======================================================");
}
public void goMain(){
while(true){
System.out.println("***************外出申请信息管理********************");
System.out.println("\t===1.外出信息录入===");
System.out.println("\t***2.外出信息修改***");
System.out.println("\t###3.外出信息删除###");
System.out.println("\t@@@4.外出信息查询@@@");
System.out.println("\t===5.退出===");
System.out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++");
System.out.print("======请输入您要操作的选项编号:");
int no = input.nextInt();
switch(no){
case 1:
addView();
break;
case 2:
updateView();
break;
case 3:
deleteView();
break;
case 4:
showView();
break;
case 5:
System.exit(0);
break;
default :
System.out.println("@@@@@并没有这个选项!为了世界和平,请正确操作@@@@");
break;
}
}
}
}
未完待续。。。。。。。