소율로그

[Java, Java FX] HR 서비스 본문

Portfolio

[Java, Java FX] HR 서비스

이소율 2021. 10. 28. 14:49

프로젝트 주제 : 인적자원 관리 시스템

개발 도구 : Eclipse, Sql Developer, Scene Builder

사용 언어 : Java

 

* 오라클사에서 제공하는 hr 샘플을 활용해서 만들었습니다. 오라클 hr 샘플 데이터 사용법은 아래 링크에서 확인할 수 있습니다

 

[Oracle] Oracle HR 계정 사용하기

오라클사에서는 몇 가지 샘플 데이터들을 제공합니다. 저는 그중에서 HR 계정을 사용했습니다. 일단 오라클을 사용하기 위해서는 OracleServiceXE와 OracleXETNSListener이 실행중이어야 합니다. 1. 실행

soyurr.tistory.com

 

1. 전체적인 디자인은 Scene Builder를 사용해서 만들었습니다.

2. 직원 CRUD

2-1.  직원 Insert

👉 EMPLOYEE_ID는 자동 부여되므로 입력할 수 없도록 막았습니다

 

2-2. 직원 Update

👉 Update하고자 하는 직원을 선택하면 왼쪽에 직원의 정보가 불러와지는데 내용을 수정하고 UPDATE 버튼을 누르면 반영됩니다

 

2-3. 직원 Index & Delete

👉 Index는 where절을 사용해 검색을 하며 조건에 만족되는 모든 직원 목록이 나타납니다

👉 삭제하고자 하는 직원을 선택 후 DELETE 버튼을 누르면 삭제됩니다

 

 

3. 람다식

👉 아코디언 형식으로 몇 가지 항목들을 체크할 수 있도록 서비스를 구현했습니다

 

3-1) 주어진 기간의 입사자목록

	public List<Employees> getEmpListByHireDate(Date a,Date b){
		List<Employees> result = null;
		try {
			Predicate<Employees> bt= m->{
				Date x = m.getHire_date();
				return (x.after(a) && x.before(b))
						|| x.equals(a) || x.equals(b);
			};
			result = (List<Employees>) edao.selectAll().stream().filter(bt).collect(Collectors.toList());
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return result;
	}

3-2)근무부서별 직원 목록

	public List<Employees> getEmpListByDep(int depId){
		List<Employees> result = null;
		try {
			Predicate<Employees> bt= m->{
				return m.getDepartment_id()==depId;
			};
			result = (List<Employees>) edao.selectAll().stream().filter(bt).collect(Collectors.toList());
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return result;
	}

3-3) 급여순으로 본 직원 목록

	public List<Employees> getEmpListOrderbyPay(){
		List<Employees> result = null;
		try {
			result = (List<Employees>) edao.selectAll().stream().sorted(
					(em,em2) ->em2.getSalary() - em.getSalary()
					).collect(Collectors.toList());
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return result;
	}

 

3-4) 커미션율

3-5) 연봉 입력한 액수 이상인 직원

3-6) 이메일로 직원 찾기

	public List<Employees> getFindByEmail(String email){
		List<Employees> result = null;
		try {
			result = (List<Employees>) edao.selectAll().stream().filter(t->t.getEmail().equalsIgnoreCase(email))
					.collect(Collectors.toList());
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return result;
	}

3-7) 전화번호로 직원 찾기

3-8) 성으로 직원 검색

3-9) 직업 ID별 직원목록 보기

 

4. 소스 코드 깃허브

👉 https://github.com/soyurr/hr-service

 

GitHub - soyurr/hr-service: java hr서비스

java hr서비스. Contribute to soyurr/hr-service development by creating an account on GitHub.

github.com

 

'Portfolio' 카테고리의 다른 글

[Java, Spring] 스프링 팀 프로젝트  (0) 2021.11.01
[Python, Django] 장고 웹 프로젝트  (1) 2021.10.30
[Python] 가계부  (0) 2021.10.29
[Python] 계산기  (0) 2021.10.29
[Java, Java FX] 가계부  (0) 2021.10.27
Comments