package com.ts017.zjh;
import java.text.NumberFormat;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import com.ts017.zjh.dao.IDeptDAO;
import com.ts017.zjh.dao.IEmpDAO;
import com.ts017.zjh.dao.factory.DAOFactory;
import com.ts017.zjh.vo.Department;
import com.ts017.zjh.vo.Employee;
public class DepartmentOperate {
private IDeptDAO dao = null;
Scanner scn = null;
public DepartmentOperate() {
this.dao = DAOFactory.getIDemptDAOInstance();
scn = new Scanner(System.in);
}
public void addDepartment() {
System.out.println();
System.out.println(" 添加部门信息");
System.out.println("=================================");
System.out.print("请输入部门名称: ");
String deptName = scn.next();
Department repeatDept = getDepartmentByName(deptName);
if (repeatDept != null) {
System.out.println("您输入的部门名已存在");
return;
}
Department dept = new Department();
dept.setDeptName(deptName);
boolean flag = false;
try {
flag = this.dao.doCreate(dept);
} catch (Exception e) {
e.printStackTrace();
}
if (flag) {
System.out.println("添加部门成功");
} else {
System.out.println("添加部门失败");
}
}
public void delDepartment() {
System.out.println();
System.out.print("请输入要删除的部门编号: ");
int deptId = scn.nextInt();
Department dept = getDepartmentById(deptId);
if (dept == null) {
System.out.println("您输入的部门不存在");
return;
}
IEmpDAO empDAO = DAOFactory.getIEmpDAOInstance();
List emps = null;
try {
emps = empDAO.findByDeptId(deptId);
} catch (Exception e) {
e.printStackTrace();
}
if (emps != null) {
this.showDepartment(dept);
if (emps.size() > 0) {
System.out.println("该部门中有员工存在,若删除该部门,则相应的员工也会被删除,确定要删除吗(y/n)?");
String opt = scn.next();
if (opt.equalsIgnoreCase("y")) {
boolean flag = false;
try {
empDAO.doDeleteByDeptId(deptId);
flag = this.dao.doDelete(deptId);
} catch (Exception e) {
e.printStackTrace();
}
if (flag) {
System.out.println("删除部门成功");
} else {
System.out.println("删除部门失败");
}
}
} else {
System.out.println("确定要删除该部门信息吗(y/n)?");
String opt = scn.next();
if (opt.equalsIgnoreCase("y")) {
boolean flag = false;
try {
flag = this.dao.doDelete(deptId);
} catch (Exception e) {
e.printStackTrace();
}
if (flag) {
System.out.println("删除部门成功");
} else {
System.out.println("删除部门失败");
}
}
}
}
}
public void findAll() {
List depts = null;
try {
depts = this.dao.findAll();
} catch (Exception e) {
e.printStackTrace();
}
if (depts != null && depts.size() != 0) {
this.showDepartment(depts);
} else {
System.out.println("没有部门信息");
}
}
public void findDepartment() {
int opt;
do {
this.showFindMenu();
opt = scn.nextInt();
switch (opt) {
case 1:
this.findByDeptId();
break;
case 2:
this.findByDeptname();
break;
case 0:
return;
}
} while (opt != 0);
}
public void findByDeptname() {
System.out.println();
System.out.print("请输入查找的部门名称: ");
String deptName = scn.next();
Department dept = getDepartmentByName(deptName);
if (dept != null) {
this.showDepartment(dept);
} else {
System.out.println("相关信息不存在");
}
}
public void findByDeptId() {
System.out.println();
System.out.print("请输入要查找的部门号: ");
int deptId = scn.nextInt();
Department dept = getDepartmentById(deptId);
if (dept != null) {
this.showDepartment(dept);
} else {
System.out.println("相关信息不存在");
}
}
public void updateDepartment() {
System.out.println();
System.out.print("请输入要更新的部门编号: ");
int deptId = scn.nextInt();
Department dept = getDepartmentById(deptId);
if (dept == null) {
System.out.println("您输入的部门不存在");
return;
}
this.showDepartment(dept);
System.out.println(" 更新部门信息");
System.out.println("============================");
System.out.print("请输入新的部门名称: ");
String deptName = scn.next();
Department repeatDept = getDepartmentByName(deptName);
while(repeatDept!=null){
System.out.println("您输入的部门名称已存在,请重新输入");
deptName = scn.next();
repeatDept = getDepartmentByName(deptName);
}
Department newDept = new Department();
newDept.setDeptId(deptId);
newDept.setDeptName(deptName);
boolean flag = false;
try {
flag = this.dao.doUpdate(newDept);
} catch (Exception e) {
e.printStackTrace();
}
if (flag) {
System.out.println("更新员工信息成功");
} else {
System.out.println("更新员工信息失败");
}
}
public void showGroupAvgSalaryAboutDept() {
Map deptMap = null;
Map avgSalary = null;
try {
deptMap = this.dao.getDepartmentMap();
avgSalary = this.dao.getAverageSalaryByGroup();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println();
System.out.println("\t 部门平均薪水");
System.out.println();
System.out.println("\t部门编号\t部门名称\t平均薪水");
System.out.println("===========================================");
Iterator it = avgSalary.keySet().iterator();
NumberFormat format = NumberFormat.getInstance();
format.setMaximumFractionDigits(1);
while (it.hasNext()) {
Integer id = it.next();
System.out.println("\t" + id.intValue() + "\t"
+ deptMap.get(id).getDeptName() + "\t"
+ format.format(avgSalary.get(id)));
}
System.out.println();
}
public void showEmpCountAboutDept() {
Map empCountMap = null;
Map deptMap = null;
try {
empCountMap = this.dao.getEmpCountByGroup();
deptMap = this.dao.getDepartmentMap();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println();
System.out.println("\t 部门员工信息");
System.out.println();
System.out.println("\t编号\t名称\t人数");
System.out.println("===========================================");
Iterator it = empCountMap.keySet().iterator();
while (it.hasNext()) {
Integer id = it.next();
System.out.println("\t" + id.intValue() + "\t"
+ deptMap.get(id).getDeptName() + "\t"
+ empCountMap.get(id));
}
System.out.println();
}
public void showTopAndLowSalaryAboutDept() {
Map topSalaryMap = null;
Map lowSalaryMap = null;
Map depts = null;
try {
topSalaryMap = this.dao.getTopSalaryByGroup();
lowSalaryMap = this.dao.getLowSalaryByGroup();
depts = this.dao.getDepartmentMap();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("\t\t部门最高薪水与最低薪水");
System.out.println();
System.out.println("\t部门编号\t部门名称\t最高薪水\t最低薪水");
System.out.println("===========================================");
Iterator it = topSalaryMap.keySet().iterator();
NumberFormat format = NumberFormat.getInstance();
format.setMaximumFractionDigits(1);
while (it.hasNext()) {
Integer id = it.next();
System.out.println("\t" + id.intValue() + "\t"
+ depts.get(id).getDeptName() + "\t"
+ format.format(topSalaryMap.get(id).floatValue()) + "\t"
+ format.format(lowSalaryMap.get(id).floatValue()));
}
System.out.println();
}
public void showDepartmentNoEmp() {
List depts = null;
try {
depts = this.dao.getDepartmentWithoutEmp();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("\t 员工数为零的部门");
System.out.println();
System.out.println("\t部门编号\t部门名称");
System.out.println("==============================");
Iterator it = depts.iterator();
while (it.hasNext()) {
Department dept = it.next();
System.out.println("\t" + dept.getDeptId() + "\t"
+ dept.getDeptName());
}
System.out.println();
}
public void showDepartmentSummarize() {
int opt;
do {
this.showSummarizeMenu();
opt = scn.nextInt();
switch (opt) {
case 1:
this.showGroupAvgSalaryAboutDept();
break;
case 2:
this.showEmpCountAboutDept();
break;
case 3:
this.showTopAndLowSalaryAboutDept();
break;
case 4:
this.showDepartmentNoEmp();
break;
case 0:
return;
default:
System.out.println("您的输入 有误");
}
} while (opt != 0);
}
private Department getDepartmentById(int deptId) {
Department dept = null;
try {
dept = this.dao.findById(deptId);
} catch (Exception e) {
e.printStackTrace();
}
return dept;
}
private Department getDepartmentByName(String deptName) {
Department repeatDept = null;
try {
repeatDept = this.dao.findByName(deptName);
} catch (Exception e1) {
e1.printStackTrace();
}
return repeatDept;
}
private void showDepartment(Department dept) {
System.out.println();
System.out.println("\t 部门信息");
System.out.println("==============================");
System.out.println("\t部门编号: " + dept.getDeptId());
System.out.println("\t部门名称: " + dept.getDeptName());
System.out.println();
}
private void showDepartment(List depts) {
System.out.println();
System.out.println("\t 部门信息");
System.out.println();
System.out.println("\t编号\t名称");
System.out.println("===============================");
Iterator it = depts.iterator();
while (it.hasNext()) {
Department dept = it.next();
System.out.println("\t" + dept.getDeptId() + "\t"
+ dept.getDeptName());
}
System.out.println();
}
private void showFindMenu() {
System.out.println();
System.out.println("\t 部门信息查询");
System.out.println("=================================");
System.out.println("\t1. 按部门编号查询");
System.out.println("\t2. 按部门名称查询");
System.out.println("\t0. 退出查询");
System.out.println();
System.out.print(" 请选择: ");
}
private void showSummarizeMenu() {
System.out.println();
System.out.println("\t 查看部门汇总");
System.out.println("=================================");
System.out.println("\t1. 查看部门平均薪水");
System.out.println("\t2. 查看部门员工数");
System.out.println("\t3. 查看部门最高最低工资");
System.out.println("\t4. 查看没有员工的部门");
System.out.println("\t0. 退出操作");
System.out.println();
System.out.print(" 请选择: ");
}
}
package com.ts017.zjh;
import java.text.NumberFormat;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
import com.ts017.zjh.dao.IDeptDAO;
import com.ts017.zjh.dao.IEmpDAO;
import com.ts017.zjh.dao.factory.DAOFactory;
import com.ts017.zjh.vo.Department;
import com.ts017.zjh.vo.Employee;
public class EmployeeOperate {
private IEmpDAO dao = null;
Scanner scn = null;
public EmployeeOperate() {
this.dao = DAOFactory.getIEmpDAOInstance();
scn = new Scanner(System.in);
}
public void addEmp() {
System.out.println();
System.out.println("\tÌí¼ÓÔ±¹¤");
System.out.println("=============================");
Employee emp = inputNewEmpInfo();
boolean flag = false;
try {
flag = this.dao.doCreate(emp);
} catch (Exception e) {
e.printStackTrace();
}
if (flag) {
System.out.println("Ìí¼ÓÔ±¹¤³É¹¦");
} else {
System.out.println("Ìí¼ÓÔ±¹¤Ê§°Ü");
}
}
public void updateEmp() {
System.out.println();
System.out.print("ÇëÊäÈëÒª¸üеÄÔ±¹¤ºÅ: ");
int empId = scn.nextInt();
Employee emp = getEmployeeById(empId);
if (emp == null) {
System.out.println("ÄúÊäÈëµÄÔ±¹¤²»´æÔÚ");
return;
}
this.showEmp(emp);
System.out.println("\tÊäÈëеÄÔ±¹¤ÐÅÏ¢");
System.out.println("=========================================");
Employee newEmp = inputNewEmpInfo();
newEmp.setEmpId(empId);
boolean flag = false;
try {
flag = this.dao.doUpdate(newEmp);
} catch (Exception e) {
e.printStackTrace();
}
if (flag) {
System.out.println("Ô±¹¤¸üгɹ¦");
} else {
System.out.println("Ô±¹¤¸üÐÂʧ°Ü");
}
}
public void findEmp() {
int opt;
do {
showFindMenu();
opt = scn.nextInt();
switch (opt) {
case 1:
this.findByEmpId();
break;
case 2:
this.findByEmpName();
break;
case 3:
this.findBySex();
break;
case 4:
this.findByDepartment();
break;
case 5:
this.findByPassport();
break;
case 0:
return;
}
} while (opt != 0);
}
public void findByPassport() {
System.out.println();
System.out.print("ÇëÊäÈëÒª²éÕÒµÄÉí·ÝÖ¤ºÅ: ");
String passport = scn.next();
Employee emp = getEmployeeByPassport(passport);
if (emp != null) {
this.showEmp(emp);
} else {
System.out.println("δÕÒµ½Ïà¹ØÐÅÏ¢");
}
}
public void findByDepartment() {
System.out.println("ÊäÈ벿ÃűàºÅ");
int deptId = inputDepartmentId();
Department dept = getDepartmentById(deptId);
if (dept == null) {
System.out.println("ÄúÊäÈëµÄ²¿ÃŲ»´æÔÚ");
return;
}
List emps = null;
try {
emps = this.dao.findByDeptId(deptId);
} catch (Exception e) {
e.printStackTrace();
}
if (emps != null && emps.size() != 0) {
this.showEmp(emps);
} else {
System.out.println("¸Ã²¿ÃÅûÓÐÔ±¹¤");
}
}
public void findBySex() {
System.out.println();
System.out.print("ÇëÊäÈëÄúÒª²éÕÒµÄÔ±¹¤ÐÔ±ð: ");
String sex = scn.next();
List emps = getEmployeesBySex(sex);
if (emps != null && emps.size() != 0) {
this.showEmp(emps);
} else {
System.out.println("δÕÒµ½Ïà¹ØÐÅÏ¢");
}
}
public void findByEmpName() {
System.out.println();
System.out.print("ÇëÊäÈëÄúÒª²éÕÒµÄÔ±¹¤ÐÕÃû: ");
String empName = scn.next();
List emps = getEmployeesByName(empName);
if (emps != null && emps.size() != 0) {
this.showEmp(emps);
} else {
System.out.println("δÕÒµ½Ïà¹ØÐÅÏ¢");
}
}
public void findByEmpId() {
System.out.println();
System.out.print("ÇëÊäÈëÄúÒª²éÕÒµÄÔ±¹¤ºÅ: ");
int empId = scn.nextInt();
Employee emp = getEmployeeById(empId);
if (emp != null) {
this.showEmp(emp);
} else {
System.out.println("δÕÒµ½¸ÃÔ±¹¤ÐÅÏ¢");
}
}
public void findAll() {
List emps = null;
try {
emps = this.dao.findAll();
} catch (Exception e) {
e.printStackTrace();
}
if (emps != null && emps.size() != 0) {
this.showEmp(emps);
} else {
System.out.println("ûÓÐÔ±¹¤ÐÅÏ¢");
}
}
public void deleteEmp() {
System.out.println("");
System.out.print("ÇëÊäÈëҪɾ³ýµÄÔ±¹¤ºÅ£º");
int empId = scn.nextInt();
Employee emp = getEmployeeById(empId);
if (emp == null) {
System.out.println("ÄúÊäÈëµÄÔ±¹¤ÐÅÏ¢²»´æÔÚ");
return;
}
this.showEmp(emp);
System.out.print("È·¶¨ÒªÉ¾³ý¸ÃÔ±¹¤Âð(y/n)? ");
String opt = scn.next();
if (opt.equalsIgnoreCase("Y")) {
boolean flag = false;
try {
flag = this.dao.doDelete(empId);
} catch (Exception e) {
e.printStackTrace();
}
if (flag) {
System.out.println("Ô±¹¤ÐÅÏ¢ÒÑɾ³ý");
} else {
System.out.println("Ô±¹¤ÐÅϢɾ³ýʧ°Ü");
}
}
}
private int inputDepartmentId() {
IDeptDAO deptDAO = DAOFactory.getIDemptDAOInstance();
List depts = null;
try {
depts = deptDAO.findAll();
} catch (Exception e) {
e.printStackTrace();
}
int deptId;
boolean valid = false;
Set empIds = new HashSet();
do {
System.out.println();
System.out.println("\tÑ¡Ôñ²¿ÃÅÁбí");
System.out.println("\t±àºÅ\tÃû³Æ");
System.out.println("============================");
Iterator it = depts.iterator();
Department dept = null;
while (it.hasNext()) {
dept = it.next();
empIds.add(dept.getDeptId());
System.out.println("\t" + dept.getDeptId() + "\t"
+ dept.getDeptName());
}
System.out.print("ÇëÑ¡Ôñ: ");
deptId = scn.nextInt();
valid = empIds.contains(deptId);
if(!valid){
System.out.println("ÊäÈëµÄ²¿ÃźÅÓÐÎó");
}
} while (!valid);
return deptId;
}
private Employee inputNewEmpInfo() {
System.out.print("ÇëÊäÈëÔ±¹¤ÐÕÃû: ");
String empName = scn.next();
System.out.print("ÇëÊäÈëÔ±¹¤ÐÔ±ð: ");
String empSex = scn.next();
System.out.print("ÇëÑ¡ÔñÔ±¹¤ËùÔÚ²¿ÃÅ: ");
int deptId = this.inputDepartmentId();
System.out.print("ÇëÊäÈëÔ±¹¤Éí·ÝÖ¤ºÅ: ");
String passport = scn.next();
System.out.print("ÇëÊäÈëÔ±¹¤Ð½Ë®: ");
double salary = scn.nextDouble();
Employee newEmp = new Employee();
newEmp.setEmpName(empName);
newEmp.setEmpSex(empSex);
newEmp.setDeptId(deptId);
newEmp.setPassport(passport);
newEmp.setSalary(salary);
return newEmp;
}
private Employee getEmployeeById(int empId) {
Employee emp = null;
try {
emp = this.dao.findById(empId);
} catch (Exception e) {
e.printStackTrace();
}
return emp;
}
private List getEmployeesByName(String empName) {
List emps = null;
try {
emps = this.dao.findByName(empName);
} catch (Exception e) {
e.printStackTrace();
}
return emps;
}
private List getEmployeesBySex(String sex) {
List emps = null;
try {
emps = this.dao.findBySex(sex);
} catch (Exception e) {
e.printStackTrace();
}
return emps;
}
private Employee getEmployeeByPassport(String passport) {
Employee emp = null;
try {
emp = this.dao.findByPassport(passport);
} catch (Exception e) {
e.printStackTrace();
}
return emp;
}
private Department getDepartmentById(int deptId) {
IDeptDAO deptDAO = DAOFactory.getIDemptDAOInstance();
Department dept = null;
try {
dept = deptDAO.findById(deptId);
} catch (Exception e1) {
e1.printStackTrace();
}
return dept;
}
private void showEmp(Employee emp) {
System.out.println();
System.out.println("\t Ô±¹¤ÐÅÏ¢");
System.out.println("=============================================");
System.out.println("\tÔ±¹¤±àºÅ: " + emp.getEmpId());
System.out.println("\tÔ±¹¤ÐÕÃû: " + emp.getEmpName());
System.out.println("\tÔ±¹¤ÐÔ±ð: " + emp.getEmpSex());
IDeptDAO dao = DAOFactory.getIDemptDAOInstance();
Department dept = null;
try {
dept = dao.findById(emp.getDeptId());
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("\tËùÔÚ²¿ÃÅ: " + dept.getDeptName());
System.out.println("\tÉí·ÝÖ¤ºÅ: " + emp.getPassport());
System.out.println("\tµ±Ç°Ð½Ë®: " + getFormatedNumber(emp.getSalary()));
System.out.println();
}
private void showEmp(List emps) {
System.out.println();
System.out.println("\t\t\t\tÔ±¹¤ÐÅÏ¢");
System.out.println();
System.out.println("\t±àºÅ\tÐÕÃû\tÐÔ±ð\t²¿ÃÅ\tÉí·ÝÖ¤ºÅ\t\t\tнˮ");
System.out
.println("===========================================================================");
Map map = null;
IDeptDAO deptDAO = DAOFactory.getIDemptDAOInstance();
try {
map = deptDAO.getDepartmentMap();
} catch (Exception e1) {
e1.printStackTrace();
}
Iterator it = emps.iterator();
while (it.hasNext()) {
Employee emp = it.next();
System.out.print("\t" + emp.getEmpId() + "\t");
System.out.print(emp.getEmpName() + "\t");
System.out.print(emp.getEmpSex() + "\t");
System.out.print(map.get(emp.getDeptId()).getDeptName() + "\t");
System.out.print(emp.getPassport() + "\t");
System.out.println(getFormatedNumber(emp.getSalary()) + "\t");
}
System.out.println();
}
private String getFormatedNumber(double d){
NumberFormat format = NumberFormat.getInstance();
format.setMaximumFractionDigits(1);
return format.format(d);
}
private void showFindMenu() {
System.out.println();
System.out.println("\t\tÑ¡Ôñ²éѯÌõ¼þ");
System.out.println("========
本文档为【java开发的ERP】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。