這個系統包含了四塊,第一塊就是人員管理,經理分配三位分別有“ABC"權限的人,分別管理請假申請,請假審批,門衛登記管理。同時不屬於本公司的內部人員,如別的公司的人員如果想到本公司訪問,也是先通過這”ABC“權限的三個人代爲寫來訪申請,來訪審批,來訪門衛登記管理。
具體步驟如下:
因爲後面都會用到很多相同的方法,和相同的屬性,所以我先建立了兩個接口讓後面的方法類和屬性類都實現這兩個接口,這樣就降低了耦合度。
從零開始學Java之出入門衛管理(一)裏面包含了我所建立屬性接口、方法接口以及 經理管理賦予“ABC”權限及解除權限的界面,我寫了默認的三個賬號跟密碼(權限A:賬號1001 密碼:1314 權限B:賬號1002 密碼:1314 權限C:賬號1003 密碼:1314 ),你通過管理界面可以重新建立“新人”,或者“解僱老人”。
此次要寫的內容爲:本公司內部人員請假外出申請與其他公司人員到本公司訪問申請,都由本公司權限爲A的人寫申請單,然後遞交到權限B的人進行批閱。都是有權限A的人寫申請,這兩個類屬性也有很多近似!
具體代碼如下:
1.其他公司到本公司訪問 A寫的申請屬性類:
package com.jereh.discrepancy;
public class Guests implements Attribute,java.io.Serializable{
private int req_no; //申請編號
private String emp_name; //訪客姓名
private String req_sesc; //來訪事由
private String iCard_no; //證件號
private String guest_comp; //來訪公司
private String go_time; //來訪時間
private String back_time; //返回時間
private int stus; //狀態
private String rgdt_emp; //申請者
private String cf_data; //批准日期
private String cf_emp; //審覈者
public int getReq_no() {
return req_no;
}
public void setReq_no(int reqNo) {
req_no = reqNo;
}
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 getiCard_no() {
return iCard_no;
}
public void setiCard_no(String iCardNo) {
iCard_no = iCardNo;
}
public String getGuest_comp() {
return guest_comp;
}
public void setGuest_comp(String guestComp) {
guest_comp = guestComp;
}
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 getRgdt_emp() {
return rgdt_emp;
}
public void setRgdt_emp(String rgdtEmp) {
rgdt_emp = rgdtEmp;
}
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..其他公司到本公司訪問 A寫的申請方法類:
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.ArrayList;
import java.util.List;
public class GuestsBiz implements Father{
List<Guests> list = new ArrayList<Guests>();
Guests gs = new Guests();
Replenish rep = new Replenish();
@Override
public boolean add(Attribute at) { //添加申請訪客信息
read();
list.add((Guests) at);
write();
return true;
}
@Override
public boolean delete(int num) { //刪除訪客申請信息
read();
for(int i =0;i<list.size();i++){
gs = (Guests)list.get(i);
if(gs.getReq_no()==num){
list.remove(i);
write();
return true;
}
}
return false;
}
public Guests getGoRequest(int num) { //判斷是否存在此條信息,返回對象,在門衛那邊調用
read();
for(int i = 0; i<list.size();i++){
gs = (Guests)list.get(i);
if(gs.getReq_no() == num){
return gs;
}
}
return null;
}
public void change3(int num) { //判斷是否存在此條信息
read();
for(int i = 0; i<list.size();i++){
gs = (Guests)list.get(i);
if(gs.getReq_no() == num){
gs.setStus(3);
write();
}
}
}
public void change4(int num) { //判斷是否存在此條信息
read();
for(int i = 0; i<list.size();i++){
gs = (Guests)list.get(i);
if(gs.getReq_no() == num){
gs.setStus(4);
write();
}
}
}
@Override
public void show() { //展示來客信息
read();
for(int i=0;i<list.size();i++){
gs = (Guests)list.get(i);
System.out.println("\t"+gs.getReq_no()+"\t\t"+gs.getEmp_name()+"\t\t\t"+
gs.getReq_sesc()+"\t\t"+gs.getGuest_comp()+"\t\t"+gs.getGo_time()
+"\t"+rep.tran(gs.getStus()));
}
}
@Override
public boolean update(int num) { //查詢是否有此人
read();
for(int i = 0; i<list.size();i++){
gs = (Guests)list.get(i);
if(gs.getReq_no() == num){
return true;
}
}
return false;
}
public boolean change(int num,int n){ //ExamineView審批時使用的改變狀態的方法
read();
for(int i = 0; i<list.size();i++){
gs = (Guests)list.get(i);
if(gs.getReq_no()==num){
gs.setStus(n);
write();
return true;
}
}
return false;
}
public void show1(){ //輸出狀態爲1的所有申請信息,門衛登記時使用
read();
for(int i =0;i<list.size();i++){
gs = (Guests)list.get(i);
if(gs.getStus()==1){
System.out.println("\t"+gs.getReq_no()+"\t\t"+gs.getEmp_name()+"\t\t\t"+
gs.getReq_sesc()+"\t\t"+gs.getGuest_comp()+"\t\t"+gs.getGo_time()
+"\t"+rep.tran(gs.getStus()));
}
}
}
public void show0(){ //輸出狀態爲0的所有申請信息,審批時使用
read();
for(int i =0;i<list.size();i++){
gs = (Guests)list.get(i);
if(gs.getStus()==0){
System.out.println("\t"+gs.getReq_no()+"\t\t"+gs.getEmp_name()+"\t\t\t"+
gs.getReq_sesc()+"\t\t"+gs.getGuest_comp()+"\t\t"+gs.getGo_time()
+"\t"+rep.tran(gs.getStus()));
}
}
}
@Override
public boolean updateJu(int num) {
// TODO Auto-generated method stub
return false;
}
@Override
public void read() {
ObjectInputStream ois = null;
FileInputStream fis = null;
File file = new File("E:\\h\\123\\guests.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();
}
}
}
@Override
public void write() {
ObjectOutputStream oos = null;
FileOutputStream fos = null;
File file = new File("E:\\h\\123\\guests.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.其他公司到本公司訪問 A寫的申請View類:
package com.jereh.discrepancy;
import java.util.Scanner;
public class GuestsView {
Scanner input = new Scanner(System.in);
GuestsBiz gb = new GuestsBiz();
Guests guest = new Guests();
int req_no; //申請編號
String emp_name; //訪客姓名
String req_sesc; //來訪事由
String guest_comp; //來訪公司
String go_time; //來訪時間
int stus; //狀態
public void addView(){
System.out.println("####現在開始錄入信息,請正確操作####");
System.out.print("¥¥¥¥請輸入來訪編號:");
req_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("¥¥¥¥¥請輸入來訪者所在公司:");
guest_comp = input.next();
guest.setReq_no(req_no);
guest.setEmp_name(emp_name);
guest.setGuest_comp(guest_comp);
guest.setReq_sesc(req_sesc);
guest.setGo_time(go_time);
if(gb.add(guest)){
System.out.println("####錄入成功… ^_^ #####");
}else
System.out.println("####錄入失敗… -_- #####");
}
public void updateView(){
System.out.print(" ……請輸入您要修改的員工工號:");
req_no = input.nextInt();
if(gb.update(req_no)){
System.out.println("%%%%%%%修改成功,呵呵………………");
}else
System.out.println("@@@@@@@@沒找到您要修改的員工信息@@@@@@@");
}
public void deleteView(){
System.out.print(" ……請輸入您要刪除的員工工號:");
req_no = input.nextInt();
if(gb.delete(req_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");
gb.show();
System.out.println("=======================================================");
}
public void guestsMain(){
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;
}
}
}
}