这个系统包含了四块,第一块就是人员管理,经理分配三位分别有“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;
}
}
}
}