ssm+mysql+SSM 프레임워크 기반의 인적 자원 관리 시스템 졸업 설계 - 소스 코드 060936 포함

SSM 인적 자원 관리 시스템

요약

과학 기술의 급속한 발전은 사람들의 일상 생활에 큰 변화를 가져왔으며 전자 정보 기술의 급속한 발전은 다양한 분야에서 전자 정보 기술의 응용 수준을 대중화하고 응용하게 만들었습니다. 정보화 시대의 도래는 거부할 수 없는 패션 트렌드가 되었고 인류 발전의 역사는 새로운 시대로 접어들고 있습니다. 실제 응용에서 응용 소프트웨어의 작업 규칙 및 개발 단계는 Java 기술을 사용하여 인적 자원 관리 시스템의 보안 체계를 구성하는 데 사용됩니다.

이 디자인은 주로 인간화, 고효율, 편의성의 장점을 통합한 인사관리 시스템 보안 솔루션을 구현하고 홈페이지, 사용자 관리, 부서 정보, 교육 정보, 급여 정보 및 직원 정보와 같은 기능 모듈을 완성합니다. 시스템은 브라우저를 통해 서버와 통신하여 데이터 상호 작용 및 변경을 실현합니다. 과학적인 관리 방법과 편리한 서비스를 통해 업무 효율성을 높이고 데이터 저장의 오류와 누락을 줄여주는 시스템입니다. 인사관리시스템 보안솔루션은 Java 언어를 사용하며 MVVM 모델 기반의 Java 기술로 개발 MyEclipse 2017 CI 10 컴파일러를 사용하여 작성 데이터의 경우 주로 Microsoft의 MySQL 관계형 데이터베이스를 데이터 저장소로 사용 매체, 프론트 엔드 HTML + CSS 기술과 협력하여 시스템 개발을 완료합니다.

키워드: 보안 체계, Java 언어, 관계형 데이터베이스, 데이터 저장소

SSM 인사관리 시스템

추상적인

과학 기술 진보의 급속한 발전은 사람들의 일상 생활에 큰 변화를 가져 왔습니다. 전자정보기술의 비약적인 발전은 전자정보기술의 응용 수준을 대중화시켜 다양한 분야에 응용하고 있다. 정보화 시대의 도래는 거부할 수 없는 패션 트렌드가 되었고 인류 발전의 역사는 새로운 시대로 접어들고 있습니다. 실제 응용에서 응용 소프트웨어의 작업 규칙과 개발 단계에 따라 Java 기술을 사용하여 인적 자원 관리 시스템의 보안 체계를 구축합니다.

이 디자인은 주로 인간화, 고효율 및 편의성의 장점을 통합하는 인적 자원 관리 시스템 보안 체계를 구현하고 홈페이지, 사용자 관리, 부서 정보, 교육 정보, 급여 정보 및 직원 정보와 같은 기능 모듈을 완성합니다. 시스템은 브라우저를 통해 서버와 통신하여 데이터의 상호 작용 및 변경을 실현합니다. 과학적인 관리와 편리한 서비스를 통해 업무 효율성을 높이고 데이터 저장의 오류와 누락을 줄이는 시스템입니다. 인사 관리 시스템의 보안 체계는 MVVM 모드를 기반으로 Java 언어 및 Java 기술을 사용합니다. MyEclipse 2017 CI 10 컴파일러로 작성되었습니다. 데이터 측면에서 마이크로소프트의 MySQL 관계형 데이터베이스는 주로 데이터 저장 매체로 사용되며,

키워드: 안전 계획; 자바 언어; 관계형 데이터베이스; 데이터 저장고

목차

1 장 소개

1.1  연구 배경

1.2  개발 현황

1.3  본 논문의 구성 구조

2장 관련 기술 소개

2.1 SSM 프레임워크

2.2 자바 소개

2.3 MySQL 데이터베이스

2.4 B/S 구조

2.5 MyEclipse 개발 도구

2.6 Vue.js의 주요 기능

제3장 시스템 분석

3.1  타당성 분석

3.1.1  기술적 타당성 분석

3.1.2  경제성 분석

3.1.3  운영 타당성 분석

3.2  기능 요구사항 분석

3.3  비기능적 요구사항 분석 7

3.4  데이터 흐름 분석 7

4장 시스템 설계 8

4.1  시스템 아키텍처 설계 8

4.2  시스템 기능 구조 8

4.3  데이터베이스 설계

4. 3 .1  개념적 모델

4. 3 .3  데이터 시트

5장 시스템 구현

5.1  로그인 모듈 구현

5.2 관리자 기능 모듈 구현 1  9

5.3  관리자 서브시스템 모듈 구현

6장 시스템 테스트 2 4

6.1  테스트 목적 2 4

6.2  테스트 프로세스 2 4

6.3  테스트 결과 2 5

제7장 요약 및 전망 2 6

참고 문헌 2 7

감사합니다 2 9

  1. 소개
    1. 연구 배경

직원 관리의 효율성을 높이고 불필요한 비용을 줄이고 인사 관리 직원이 기업 인사 결과의 기본 상황을 완전히 파악할 수 있도록 합니다. 따라서 전담 전사적 인적자원관리 시스템을 설계하고 개발하는 것이 매우 중요합니다. 다만, 제도의 구체적인 설계 및 시행은 각 기업의 인사관리 상황에 따라 진행한다. 시스템 개발은 기존 시스템의 단점을 먼저 이해하고 새로운 시스템 개발을 위한 보다 편리한 솔루션을 제공하여 관리자가 일상적인 관리 작업 프로세스에서 업무 효율성을 향상시키고 기업을 활성화할 수 있도록 해야 합니다. 자원을 보다 효율적으로 할당 기업의 일일 관리 수준을 향상시킵니다.

기업의 현재 상황에 따라 개발자는 개인이 소유한 컴퓨터 하드웨어 장비 및 소프트웨어 조건을 사용하여 완전한 기업 인적 자원 관리 시스템을 개발하여 사고, 작업 사고 및 작업 방법의 관점에서 기본 인사 정보를 실현합니다. . 추가, 삭제 및 수정합니다. 직원 관리 인력의 부담을 줄이기 위해서는 과중한 작업과 오류가 발생하기 쉬운 수동 작업 문제를 근본적으로 해결해야 하며 이는 직원 관리 분야에서 향후 발전의 불가피한 추세이기도 합니다.

    1. 개발 상태

전사적 인적 자원 관리 시스템의 발전 역사는 1960년대 후반으로 거슬러 올라갑니다. 그 당시 컴퓨터 기술은 이미 실용화 단계에 접어들었고 대기업은 급여를 수동으로 계산하고 지불하는 데 시간이 많이 걸리고 힘들고 오류가 발생하기 쉬웠기 때문에 이러한 모순을 해결하기 위해 1세대 기업 인적 자원 관리 시스템이 등장했습니다. 존재로. 당시에는 기술적인 조건과 요구사항의 한계로 사용자가 매우 적었고, 시스템은 기껏해야 비재무적 정보나 과거 급여 정보가 포함되지 않고 보고서 생성도 거의 없는 자동 급여 계산 도구에 불과했습니다. .기능 및 급여 데이터 분석 기능. 그러나 그 출현은 인사 관리에 대한 밝은 전망을 보여주었습니다. 즉, 컴퓨터의 고속 자동화를 사용하여 막대한 수동 작업을 대체하고 컴퓨터의 높은 정확도를 사용하여 수동 오류 및 오류를 피하고 대규모 중앙 집중식을 만듭니다. 대기업 급여 처리가 가능해졌습니다.

기업인적자원관리시스템의 변혁은 1990년대 후반에 나타났다. 시장 경쟁의 필요성으로 인해 인재를 유치하고 유지하는 방법, 직원의 창의성을 자극하는 방법, 업무 책임 및 업무 열정이 기업의 흥망성쇠와 관련된 중요한 요소가 되었으며, 인재는 기업의 가장 중요한 자산 중 하나가 되었습니다. 기업. "공정하고 합리적이며 합리적인" 기업 경영 이념과 기업 경영 수준의 향상으로 인해 사회는 기업 인적 자원 관리 시스템에 대한 요구 사항이 높아지고 동시에 개인용 컴퓨터, 데이터베이스 기술, 클라이언트의 인기로 인해 /서버 기술, 특히 인터넷/인트라넷 기술의 발달은 3세대 전사적 인사관리 시스템의 등장을 불가피하게 만들고 있다. 3세대 기업인적자원관리시스템의 특징은 인사관리의 관점에서 볼 때 거의 모든 인사관련 데이터(급여 및 복리후생, 채용, 개인경력설계, 상벌, 직위관리, 성과관리, 등), 직무기술서, 인적사항, 과거자료)를 함께 관리하여 통합정보원을 형성한다. 친숙한 사용자 인터페이스, 강력한 보고서 생성 도구, 분석 도구 및 정보 공유를 통해 인사 관리자는 무거운 일상 업무를 없애고 전략적 관점에서 기업 인사 계획 및 정책을 고려하는 데 집중할 수 있습니다.

    1. 이 기사의 구성

첫 번째 장은 소개, 이 기사의 시작 부분, 이 주제의 연구 배경 및 연구 중요성에 대한 텍스트 설명입니다.

2장에서는 인적자원관리시스템의 보안체계에 사용되는 개발기법과 개발도구를 연구한다.

세 번째 장은 시스템 분석 부분으로 시스템의 전반적인 요구사항에 대한 설명, 기능적 관점에서 시스템 요구사항 분석, 시스템 구현 가능 여부에 대한 비기능 분석을 포함한다.

네 번째 장은 이 기사의 중요한 부분인 시스템 설계 부분으로, 시스템 아키텍처의 세부 설계와 일부 주요 기능 모듈의 설계 설명을 제공합니다.

다섯 번째 장은 시스템의 특정 구현으로 시스템의 각 모듈의 특정 구현을 소개합니다.

여섯 번째 장에서는 이전 장을 기반으로 시스템을 테스트하고 실행합니다.

마지막으로 시스템을 진지하게 정리하여 미래에 대한 새로운 전망을 제시합니다.

  1. 관련 기술 소개
    1. SSM 프레임워크

오늘날 인기 있는 "SSM 조합 프레임워크"는 Spring + SpringMVC + MyBatis의 약자로 많은 사람들이 찾고 있습니다. 일반적으로 더 간단한 데이터 소스인 웹 프로젝트용 프레임워크입니다. Spring은 가벼운 IoC(Inversion of Control Framework)에 속하지만 표면 지향 컨테이너(AOP)이기도 합니다. SpringMVC는 모델 객체와 분리된 컨트롤러의 분류 작업 모드에서 자주 사용되며 프로그램 객체의 역할은 ATM에서 처리된다. 이 분리 처리를 통해 전체 시스템을 보다 쉽게 ​​개인화할 수 있습니다. MyBatis는 일반적인 SQL 쿼리를 지원하고 저장 프로시저의 고급 매핑을 위한 데이터 최적화를 허용하는 우수한 지속 가능성 프레임워크입니다. 대규모 Java 웹 어플리케이션은 개발 비용이 높기 때문에 개발 후 유지 관리가 어렵고 개발 과정에서 해결하기 어려운 몇 가지 문제가 있으며 "SSM 구성 프레임워크"를 채택하여 비즈니스 계층 및 이 문제에 대한 좋은 해결책을 제공합니다.

    1. 자바 소개

Java는 주로 CORBA 기술과 보안 모델을 채택하여 인터넷 애플리케이션의 데이터를 보호할 수 있습니다. 또한 EJB(Enterprise JavaBeans), 자바 서블릿 API, SSM(자바 서버 페이지) 및 XML 기술에 대한 포괄적인 지원을 제공합니다. JAVA 언어는 객체 지향 언어로 지정된 작업을 완료하는 가장 기본적인 방법을 제공합니다.개발자는 일부 응용 프로그램을 작성하기 위해 몇 가지 개념만 알면 됩니다. Java 프로그램은 상대적으로 작으며 코드는 작은 시스템에서 실행될 수 있습니다. Java는 캡슐화, 상속 및 다형성의 세 가지 주요 기능을 가진 컴퓨터 프로그래밍 언어로 엔터프라이즈 웹 애플리케이션 개발 및 모바일 애플리케이션 개발에 널리 사용됩니다.

Java 언어와 일반 컴파일러 및 리터럴 번역의 차이점은 Java는 먼저 소스 코드를 바이트 코드로 변환한 다음 다양한 JVM에서 실행할 수 있는 JVM용 실행 파일로 변환한다는 것입니다. 따라서 크로스 플랫폼 특성이 실현됩니다. 이로 인해 초기에는 Java가 매우 느려졌지만 Java가 개발되면서 개선되었습니다.

    1. MySQL 데이터베이스

과학 기술의 발전은 일상 생활에 많은 편의를 가져왔습니다. 교실 프로젝터는 가상 이미징 기술을 사용하고 디지털 카메라는 광전 감지 기술을 사용합니다. 예를 들어 슈퍼마켓의 창고에 들어오고 나가는 상품 기록에는 정보 창고가 필요합니다. 이 정보 웨어하우스는 데이터베이스이며, 이번에 인적 자원 관리 시스템 보안 솔루션도 이 기술의 지원이 필요합니다.

MySQL 소프트웨어를 사용하는 이유는 여러 사용자가 액세스할 수 있고 아카이브 등이 있기 때문입니다. 먼저 데이터를 분류한 후 별도로 테이블에 저장하며, 이러한 특수 작업은 데이터 관리 시스템 자체의 속도를 향상시켜 데이터베이스를 유연하게 사용할 수 있도록 합니다. MySQL의 코드는 공개되어 있으며 다른 사람들이 두 번 컴파일하고 업그레이드할 수 있습니다. 이 기능은 사용자의 비용을 절감할 수 있으며 적합한 소프트웨어와 매칭하여 좋은 웹사이트 시스템을 형성할 수 있습니다. 단점이 있지만 모든 측면에서 사용자의 주류 응용 대상입니다[8].

    1. B/S 구조

B/S(Browser/Server)는 이전 아키텍처보다 편리한 아키텍처입니다. 웹 서버를 사용하여 데이터 전송 및 교환을 완료합니다. 브라우저를 클라이언트로 다운로드하기만 하면 작업이 "슬리밍" 효과를 얻을 수 있으며 소프트웨어의 논스톱 설치 문제를 고려할 필요가 없습니다[9].

    1. MyEclipse개발 도구

MyEclipse는 완전한 코딩, 디버깅, 테스트 및 게시 기능[10], JSP, Spring, CSS, JavaScript, SpringMVC, HTML, JSF, Mybatis, SQL 및 다른 기술. 아키텍처 측면에서 MyEclipse의 기능은 JavaEE 모델, 웹 개발 도구, EJB 개발 도구, JavaEE 프로젝트 배포 서비스, 애플리케이션 서버용 커넥터, 데이터베이스 서비스 및 MyEclipse 통합 도움말의 7가지 범주로 나눌 수 있습니다[11].

위의 기능 카테고리 각각에 대해 MyEclipse에는 해당 기능 부분이 있으며 일련의 플러그인을 통해 구현됩니다. MyEclipse의 모듈식 구조는 다른 모듈에 영향을 주지 않고 모듈 중 하나를 독립적으로 확장하고 업그레이드할 수 있도록 합니다. 강력한 MyEclipse 애플리케이션 개발 플랫폼은 Eclipse 플러그인일 뿐만 아니라 JavaEE를 위한 강력한 통합 개발 환경이기도 합니다[12].

    1.  Vue.js의 주요 기능

Vue.js는 사용자 인터페이스 구축을 위한 진보적인 프레임워크입니다. 다른 헤비급 프레임워크와 달리 Vue는 상향식 점진적 개발로 설계되었습니다. Vue의 핵심 라이브러리는 뷰 계층에만 초점을 맞추고 있으며 다른 라이브러리 또는 기존 프로젝트와 통합하고 배우기가 매우 쉽습니다. 반면에 Vue는 Vue 생태계에서 지원하는 단일 파일 구성 요소 및 라이브러리로 개발된 복잡한 단일 페이지 애플리케이션을 완벽하게 구동할 수 있습니다.

Vue.js의 목표는 가능한 가장 간단한 API로 반응형 데이터 바인딩 및 구성된 뷰 구성 요소를 활성화하는 것입니다.

Vue.js 자체는 포괄적인 프레임워크가 아닙니다. 뷰 레이어에만 초점을 맞춥니다. 따라서 배우기가 매우 쉽고 다른 라이브러리나 기존 프로젝트와 통합하기가 매우 쉽습니다. 반면에 Vue.js는 관련 도구 및 지원 라이브러리와 함께 사용할 때 복잡한 단일 페이지 애플리케이션을 구동할 수도 있습니다.

  1. 시스템 분석
    1. 타당성 분석

이 설계는 MySQL 데이터베이스와 Myeclipse를 사용하는 Java 및 JSP 기술을 사용하는 B/S 모드를 기반으로 하며 전체적인 실현 가능성은 다음 세 가지 측면으로 나뉩니다.

      1. 기술적 타당성 분석

이른바 기술적 타당성이란 초기 단계에서 계획된 기능이 제한된 시간 내에 충족될 수 있는지 여부를 말합니다. 개발 및 설계에서 해결할 수 없는 문제가 있는지 여부. 완성된 프로젝트가 잘 적용될 수 있는지, 미흡한 부분이 있는지, 추후 유지보수에 큰 어려움이 있는지. 시스템을 평가한 후 기존 기술이 목표를 달성할 수 있다고 판단되었습니다. JSP 기술을 사용하여 동적 페이지를 구현하고 종속성이 낮은 디자인 패턴, 유연한 데이터베이스 및 안정적인 서버를 내장하여 전체 시스템의 운영 효율성을 크게 향상시킵니다. 기술적인 수준에서 목표를 달성하는 것은 말도 안되는 일이 아니라는 것을 알 수 있습니다.

      1. 경제성 분석

프로젝트에 사용되는 대부분의 도구는 현재 대중적인 오픈 소스이며 무료이므로 개발 초기 단계에서 프로젝트에 사용되는 자금이 크게 줄어들고 소프트웨어 개발은 ​​자금의 영향을 받지 않습니다. 프로젝트 시작 기간이므로 여전히 경제적으로 실현 가능합니다. 사용자의 요구를 충족시키기 위해 최소한의 비용을 사용하십시오. 인건비 및 장비 비용을 위한 자금을 절약하십시오. 페이퍼리스(Paperless)와 고효율(High Efficiency)의 길을 더욱 더 나아가게 될 것입니다.

      1. 운영 타당성 분석

기능을 구현하는 이 시스템의 작동은 매우 간단합니다.일반 컴퓨터의 일반적인 구성으로 이 소프트웨어를 실행할 수 있으며 컴퓨터 사용의 기본 상식을 대략적으로 이해하는 한 이 소프트웨어를 원활하게 사용할 수 있습니다. 컴퓨터는 인터넷에 접속할 수 있는 능력을 갖추고 시스템에 정상적으로 접속할 수 있으며, 운영자가 뛰어난 능력을 필요로 하지 않으며, 업무 프로세스를 이해하고 전문 지식에 따라 올바르게 작동하기만 하면 됩니다. 인적 자원 관리 시스템의 운영 및 실행 가능성 성별.

    1. 기능적 요구사항 분석

시스템 개발 및 설계 전에 기능에 대한 예비 아이디어를 만들고 관리 시스템에 어떤 섹션이 있는지, 각 섹션에 어떤 기능이 있는지, 전체 설계가 사용자의 요구를 충족하는지 여부를 파악한 다음 자세한 분석 및 요약을 수행해야 합니다. 개발된 시스템 기능의 완전한 시스템을 설계하고 구현합니다. 사용자와 개발자의 의사 소통 분석을 통해 최상의 이해를 얻고 시스템 기능을 최고로 만듭니다.

관리자 사용 사례 다이어그램은 다음과 같습니다.

 

그림 3-1 관리자 사용 사례 다이어그램

직원 사용 사례 다이어그램은 다음과 같습니다.

 

그림 3-2 사용자 사용 사례 다이어그램

인적 자원 관리 시스템 보안 솔루션의 요구 사항을 분석한 후 전체 시스템은 주로 관리자와 직원의 두 부분으로 나뉘며 각 모듈의 분기 기능은 다릅니다. 다음과 같이 기능을 설명합니다.

직원 모듈:

계정 로그인 인증.

프로필 정보를 관리하고 수정 가능한 정보 항목을 수정합니다.

직원 교육 조회와 동시에 교육 기록 내역을 조회합니다.

직원 급여 쿼리와 동시에 기존 급여 기록 내역을 확인합니다.

관리 모듈:

직원 유지, 직원 계정 검토, 직원 로그인 권한 동결 또는 직원 계정 삭제.

공지사항 게시 및 공지사항 파기, 공지사항 데이터 업데이트, 퍼지 검색 공지사항 데이터 등

직원 교육 데이터를 관리합니다.

    1. 비기능 요구 사항 분석

성능 요구 사항, 휴대할 수 있는 최대 사용자 수, 안정성 및 사용성 요구 사항과 같은 시스템의 많은 비 기능적 요구 사항이 있습니다. 이 시스템의 분석은 시스템이 사람에 의해 사용되기 때문에 사용 용이성의 요구 사항을 고려하므로 사용자의 관점에서 사용자 경험을 충분히 고려하여 시스템을 이해하기 쉽고 쉽게 만들 수 있습니다. 사용하기 쉽고 작동하기 쉽습니다.

    1. 데이터 흐름 분석

첫 번째 수준의 데이터 흐름도는 로그인, 사용자 기능 및 검색 유지 관리와 같은 모듈을 포함합니다.로그인 모듈에서 사용되는 데이터는 사용자 계정 문서를 저장하고 사용자 기능 모듈에서 요구하는 스토리지는 각 사용자 기능 모듈의 데이터 파일입니다. . 검색 유지 관리는 위의 데이터 문서를 키워드로 검색합니다.

시스템의 계층별 데이터 흐름도는 아래 그림과 같습니다.

 

그림 3-2 시스템 데이터 흐름 다이어그램(한 계층)

  1. 시스템 디자인
    1. 시스템 아키텍처 설계

현재 B/S 시스템의 주요 데이터 액세스 방법은 사용자가 브라우저 페이지를 통해 시스템에 들어갈 수 있고 시스템은 사용자가 서버에 보낸 요청을 자동으로 처리할 수 있습니다. 처리 요청은 다음에서 수행됩니다. 시스템의 배경 페이지에서 해당 작업을 수행하면 서버에서 전달한 처리 결과를 볼 수 있습니다. 인적 자원 관리 시스템의 보안 체계는 주로 보기-모델-제어 아키텍처 설계의 세 계층으로 나뉩니다. 뷰 레이어에서는 주로 서버에서 클라이언트로 피드백되어 표시되는 데이터를 운용하고, 모델 레이어에서는 관련 비즈니스 로직, 데이터 통합 ​​등을 주로 다루며 최종 컨트롤 레이어는 뷰와 클라이언트 사이에 있습니다. 두 레이어 간의 관계를 조정하고 최종적으로 데이터 전송을 구현하는 것입니다.

시스템 아키텍처 다이어그램은 아래 그림과 같습니다.

 

그림 4-1 시스템 아키텍처 다이어그램

    1. 시스템 기능 구조

시스템 설계의 목적은 시스템에 포함된 모든 기능적 구조를 분석하고 개발자가 시스템을 설계, 개발 및 구현할 수 있도록 준비하는 것입니다. 예비 수요 조사, 분석 및 분류 후 결정된 전체 수요에는 주로 사용자 관리, 사용자 관리, 부서 정보, 교육 정보, 급여 정보, 직원 정보와 같은 여러 모듈이 포함됩니다. 시스템의 전반적인 역할은 두 부분으로 나뉘는데 하나는 직원이고 마지막은 관리자입니다. 권한 분포도 분명합니다.정보를 검색하는 것 외에도 직원은 자신의 계정 정보를 조회하고 관리할 수 있으며 관리자는 최고 권한 소유자입니다.

시스템의 기능적 구조 다이어그램은 아래 그림과 같습니다.

             

 

그림 4-2 시스템 기능 구조 다이어그램

 

    1. 데이터베이스 설계
      1. 개념적 모델

개발할 시스템의 경우 ER 다이어그램을 통해 다른 사람들이 시스템의 트랜잭션과 이들 간의 관계를 더 빠르고 쉽게 이해할 수 있습니다. 시스템 분석 단계에서 도출된 결론에 따르면 인사관리 시스템의 보안 체계에는 직원 정보, 부서 정보, 교육 정보, 급여 정보, 직원 정보 등 여러 개의 엔터티가 존재하는 것으로 판단됩니다.

시스템의 전체 ER 다이어그램은 아래 그림과 같습니다.

 

      1. 데이터 시트

데이터베이스의 논리적 구조는 특정 필드가 있는 데이터베이스의 ER 다이어그램을 설명하는 것입니다. 필드 및 데이터 유형 설명을 사용하여 개체 특성을 구체화하고 최종적으로 특정 논리적 관계를 가진 데이터베이스 테이블 구조를 형성합니다. 인사관리시스템 보안솔루션에서 요구하는 데이터 구조 테이블의 일부는 다음 표와 같다.

plain_users

분야 명

유형

길이

null이 아님

기본 키

필드 설명

plain_users_id

정수

11

아니요

기본 키

공통 사용자 ID

사용자 이름

varchar

64

사용자 이름

full_name

varchar

64

이름

성별

varchar

64

성별

나이

varchar

64

나이

검사_상태

varchar

16

아니요

승인 상태

추천하다

정수

11

아니요

지능형 추천

user_id

정수

11

아니요

사용자 아이디

생성 시간

날짜 시간

0

아니요

생성 시간

업데이트 시간

타임스탬프

0

아니요

업데이트 시간

부서_정보

분야 명

유형

길이

null이 아님

기본 키

필드 설명

부서_정보_ID

정수

11

아니요

기본 키

부서 정보 ID

부서 이름

varchar

64

부서 이름

부서_커버

varchar

255

부서 표지

사무실 주소

varchar

64

사무실 주소

책임 범위

varchar

64

책임

목사 이름

varchar

64

장관 이름

연락처_번호

varchar

64

연락처

추천하다

정수

11

아니요

지능형 추천

생성 시간

날짜 시간

0

아니요

생성 시간

업데이트 시간

타임스탬프

0

아니요

업데이트 시간

직원 정보

분야 명

유형

길이

null이 아님

기본 키

필드 설명

직원_정보_ID

정수

11

아니요

기본 키

직원 정보 ID

직원_번호

정수

11

아니요

직원 ID

직원 이름

varchar

64

직원 이름

직원_성별

varchar

64

직원 성별

직원 나이

varchar

64

직원 연령

직원_부서

varchar

64

직원 부서

직원_직위

varchar

64

직원 위치

entry_date

날짜

0

입국일

추천하다

정수

11

아니요

지능형 추천

생성 시간

날짜 시간

0

아니요

생성 시간

업데이트 시간

타임스탬프

0

아니요

업데이트 시간

plain_users

분야 명

유형

길이

null이 아님

기본 키

필드 설명

plain_users_id

정수

11

아니요

기본 키

공통 사용자 ID

직원_번호

varchar

64

아니요

직원 ID

직원 이름

varchar

64

직원 이름

직원_성별

varchar

64

직원 성별

직원 나이

varchar

64

직원 연령

검사_상태

varchar

16

아니요

승인 상태

추천하다

정수

11

아니요

지능형 추천

user_id

정수

11

아니요

사용자 아이디

생성 시간

날짜 시간

0

아니요

생성 시간

업데이트 시간

타임스탬프

0

아니요

업데이트 시간

급여_정보

분야 명

유형

길이

null이 아님

기본 키

필드 설명

급여_정보_ID

정수

11

아니요

기본 키

급여 정보 ID

직원_번호

정수

11

아니요

직원 ID

직원 이름

varchar

64

직원 이름

직원_부서

varchar

64

직원 부서

기본 급여

정수

11

기본 급여

보너스

정수

11

보너스

괜찮은

정수

11

괜찮은

순 급여

varchar

64

실제 급여

추천하다

정수

11

아니요

지능형 추천

생성 시간

날짜 시간

0

아니요

생성 시간

업데이트 시간

타임스탬프

0

아니요

업데이트 시간

training_information

분야 명

유형

길이

null이 아님

기본 키

필드 설명

training_information_id

정수

11

아니요

기본 키

교육 정보 ID

training_name

varchar

64

훈련 이름

training_date

날짜

0

교육 날짜

training_address

varchar

64

교육 주소

training_host

varchar

64

교육 진행자

비고

varchar

64

주목

training_content

긴 문장

0

교육 내용

추천하다

정수

11

아니요

지능형 추천

생성 시간

날짜 시간

0

아니요

생성 시간

업데이트 시간

타임스탬프

0

아니요

업데이트 시간

업로드

분야 명

유형

길이

null이 아님

기본 키

필드 설명

업로드 아이디

정수

11

아니요

기본 키

아이디 업로드

이름

varchar

64

파일 이름

varchar

255

액세스 경로

파일

varchar

255

파일 경로

표시하다

varchar

255

표시 순서

father_id

정수

11

부모 ID

디렉토리

varchar

255

폴더

유형

varchar

32

파일 형식

  1. 시스템 구현
    1. 登录模块的实现

系统的登录窗口是用户的入口,用户只有在登录成功后才可以进入访问。通过在登录提交表单,后台处理判断是否为合法用户,进行页面跳转,进入系统中去。

登录合法性判断过程:用户输入账号和密码后,系统首先确定输入输入数据合法性,然后在login.jsp页面发送登录请求,调用src下的mainctrl类的dopost方法来验证。

用户登录模块的IPO如下所示:

输入:用户名和密码。

处理:

1)检测用户输入的账号、密码是否正确及在数据库已对应存在。

2)从数据库中提取记录,并储存在本地的session中(timeout默认=30min)。

3)根据用户名,将其显示在系统首页上。

输出:是否成功的信息。

登录流程图如下所示。

 

图5-1登录流程图       

系统登录界面如下所示。

 

图5-2系统登录界面

用户登录的逻辑代码如下。

  /**

     * 登录

     * @param data

     * @param httpServletRequest

     * @return

     */

    @PostMapping("login")

    public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {

        log.info("[执行登录接口]");

        String username = data.get("username");

        String email = data.get("email");

        String phone = data.get("phone");

        String password = data.get("password");

        List resultList = null;

        QueryWrapper wrapper = new QueryWrapper<User>();

        Map<String, String> map = new HashMap<>();

        if(username != null && "".equals(username) == false){

            map.put("username", username);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(email != null && "".equals(email) == false){

            map.put("email", email);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(phone != null && "".equals(phone) == false){

            map.put("phone", phone);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }else{

            return error(30000, "账号或密码不能为空");

        }

        if (resultList == null || password == null) {

            return error(30000, "账号或密码不能为空");

        }

        //判断是否有这个用户

        if (resultList.size()<=0){

            return error(30000,"用户不存在");

        }

        User byUsername = (User) resultList.get(0);

        Map<String, String> groupMap = new HashMap<>();

        groupMap.put("name",byUsername.getUserGroup());

        List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));

        if (groupList.size()<1){

            return error(30000,"用户组不存在");

        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态

        if (!StringUtils.isEmpty(userGroup.getSourceTable())){

            String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());

            if (res==null){

                return error(30000,"用户不存在");

            }

            if (!res.equals("已通过")){

                return error(30000,"该用户审核未通过");

            }

        }

        //查询用户状态

        if (byUsername.getState()!=1){

            return error(30000,"用户非可用状态,不能登录");

        }

        String md5password = service.encryption(password);

        if (byUsername.getPassword().equals(md5password)) {

            // 存储Token到数据库

            AccessToken accessToken = new AccessToken();

            accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

            accessToken.setUser_id(byUsername.getUserId());

            tokenService.save(accessToken);

            // 返回用户信息

            JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

            user.put("token", accessToken.getToken());

            JSONObject ret = new JSONObject();

            ret.put("obj",user);

            return success(ret);

        } else {

            return error(30000, "账号或密码不正确");

        }

}

    public String select(Map<String,String> query,Map<String,String> config){

        StringBuffer sql = new StringBuffer("select ");

        sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");

        sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));

        if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){

            sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");

        }

        if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){

            sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");

        }

        if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){

            int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;

            int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;

            sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);

        }

        log.info("[{}] - 查询操作,sql: {}",table,sql);

        return sql.toString();

}

    public List selectBaseList(String select) {

        List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);

        List<E> list = new ArrayList<>();

        for (Map<String,Object> map:mapList) {

            list.add(JSON.parseObject(JSON.toJSONString(map),eClass));

        }

        return list;

}

    1. 管理员功能模块

系统呈现出一种简洁大方的首页:界面简约、鳞次栉比,用户能轻车熟路的使用。出于对系统使用群体广泛的顾虑,应有良好性能的后台。

如下图所示为系统的首页界面。

 

图5-3系统首页界面

其中载入前台页面的主要代码如下。

<mapper namespace="com.project.demo.dao.base.BaseMapper">

    <select id="selectBaseList" resultType="java.util.LinkedHashMap">

        ${select}

    </select>

    <select id="selectBaseCount" resultType="Integer">

        ${count}

    </select>

    <select id="selectBaseOne" resultType="Object">

        ${select}

    </select>

    <update id="updateBaseSql">

        ${sql}

    </update>

    <delete id="deleteBaseSql">

        ${sql}

    </delete>

</mapper>

管理员登录进入人力资源管理系统可以查看管理员:首页、用户管理、部门信息、培训信息、薪资信息、员工信息管理等内容,如图5-4所示。

 

图5-4管理员信息界面图

用户管理,在用户管理可以查看用户账号、姓名、头像、联系电话、邮箱等信息,并可根据需要进行修改或删除操作,如图5-5所示。

 

图5-5企业管理界面图

部门信息管理,在部门信息列表可以查看部门名称、部门封面、办公地址、负责范围、部长名称、联系电话等信息,并可根据需要进行修改或删除操作,如图5-6所示。

图5-5部门信息管理界面图

 

薪资管理,在薪资管理列表可以查看员工编号、员工姓名、员工性别、员工年龄、员工部门、员工职位、等信息,如图5-6所示。

图5-6薪酬管理界面图

 

培训信息管理,在培训信息列表可以查看培训名称、员工、培训地点、培训时间、培训内容等信息,并可根据需要进行修改或删除操作,如图5-7所示。

 

图5-7培训信息管理界面图

    1. 用户功能模块

用户登录进入人力资源管理系统可以查看首页、部门信息、培训信息、薪资信息、员工信息等内容,如图5-8所示。

 

图5-8员工功能界面图

个人中心,在个人信息页面通过填写用户名、用户组、状态、昵称、联系电话、邮箱等内容,并可根据需要对个人信息信息进行修改,如图5-9所示。

 

                                                          图5-9个人中心界面图

员工信息管理,在员工信息列表可以查看员工编号、员工姓名、员工性别、员工年龄、员工部门、员工职位、入职日期等信息,如图5-10所示。

 

                                                       图5-10员工信息管理界面图

  1. 统测试
    1. 测试目的

在对该系统进行完详细设计和编码之后,就要对人力资源管理系统安全方案的程序进行测试,检测程序是否运行无误,反复进行测试和修改,使之最后成为完整的软件,满足用户的需求,实现预期的功能。

    1. 测试过程

在软件的测试过程中,通常测试人员需要针对不同的功能模块设计多种测试用例。通过测试用例能够及时发现代码业务逻辑上是否与真实的业务逻辑相对应,及时发现代码上或逻辑上的缺陷,以此来来完善系统,提高软件产品的质量,使软件具有良好的用户体验。

登录测试用例表如下所示。

表6-1登录测试用例

测试性能

用户或操作员登录系统

用例目的

测试用户或操作员登录系统时功能是否正常

前提条件

进入用户登录页面或操作员登录页面

输入条件

预期输出

实际情况

各项信息不予填写,直接点击登陆按钮

不允许登录,提示填写账号相关信息

一致

填写错误的登录名或密码后点击登录系统

提示用户名或密码错误,要求重新填写进行登录

一致

填写与验证码信息不一致的信息

系统显示出提示信息,表明验证码错误,要求重新填写

一致

员工培训测试用例表如下所示。

表6-2员工培训测试用例

测试性能

用户进行员工培训的操作

用例目的

测试用户进行员工培训操作时,该功能是否正常

前提条件

用户进入员工详情页,该员工能够被培训

输入条件

预期输出

实际情况

对着某员工点击“培训”按钮

界面跳转至培训界面

一致

在培训界面,输入必填项,点击“提交”按钮

提示“培训成功”,并返回上一级界面

一致

在培训界面,填写培训表单的时候未输入完整,点击“提交”按钮

提示“培训失败”

一致

员工管理测试用例表如下所示。

表6-3员工管理测试用例

测试性能

员工相关信息管理功能

用例目的

测试系统操作者对员工相关信息进行管理的功能是否正常

前提条件

登录系统进入相关管理页面

输入条件

预期输出

实际情况

进入员工管理界面,点击“录入”按钮,填写所有必填项,点击提交

提示“录入成功”,并返回查询界面

一致

进入员工管理界面,点击“录入”按钮,未填写一个或者多个必填项,点击提交

提示“录入失败”,请填写必填项

一致

进入员工管理界面,选择要修改的一条数据,点击该条数据后面的“修改”按钮 

节目跳转至修改界面

一致

在修改界面,修改可修改项后,点击“提交”按钮

提示“修改成功”,并返回查询界面

一致

进入员工管理界面,点击某条数据后面的删除按钮

提示“是否要删除该数据”,如果用户点击“确定”按钮,则成功删除该条数据,并提示“删除成功”,之后返回查询界面

一致

    1. 测试结果

经过对此系统的测试,得出该系统足以满足用户日常需求,在功能项目和操作等方面也能满足操作员对于其他用户的管理。但是,还有很多功能有待添加,这个系统仅能满足大部分的需求,还需要对此系统的功能更进一步的完善,这样使用起来才能更加的完美。

  1. 总结与展望

通过人力资源管理系统安全方案的开发,本人巩固了之前学过的知识,如今将平时所学到的知识融合在设计中,在设计过程中,做了很多的准备,首先,在数据库系统的设计过程中,尤其是在数据库的工作原理、工作特点,对其深刻的讨论,与此同时,对于小型站点来说,最好服务器的选择,其次,利用所学的知识点分析所做的系统,并在此基础上设计。

目前本系统已经上线,正在试运行阶段,用户反馈良好,基本完成用户所需,试运行过程中没有出现阻断性问题,有一些不足和小问题也及时予以修正,系统上线后,为了保证数据的安全性,对系统进行了备份操作,系统备份是每两个月备份一次,数据库备份为每周备份一次,系统部署在租赁的云平台服务器中。

本次系统上线成功后,得到了用户的高度认可,但是在功能上和性能上还需做进一步的研究处理,使其有更高的性能和更好的用户体验。

系统在以后的升级过程中,需要解决一系列用户所提出的问题,例如打印过程中如何避免浏览器的兼容性问题,大量用户访问时,如何保持较高的响应速度,在系统今后的升级过程中将着重解决这些安全性问题。

参考文献

[1]徐佩.新时期计算机软件开发技术的应用及发展趋势[J].农家参谋,2019(08):167.

[2]张帅,崔婀娜,魏立波.互联网+健康在线服务平台的设计与实现[J].科技创新与应用,2019(10):91-92.

[3]谷利国,陈存田,张甲瑞.基于B/S模式的人事教育信息管理系统的分析与设计[J].电脑知识与技术,2019,15(10):58-59.

[4]胥新政,强毅.基于JSP的常用金属材料标准检索平台开发设计[J].制造业自动化,2019,41(03):41-43+69.

[5]王祖维,南淮耀,张英.“互联网+”视域下的高校学生公寓管理系统设计与实现——以沈阳师范大学为例[J].现代商贸工业,2019,40(08):187-188.

[6]廖明华,齐攀.学生职业能力测评管理系统的设计与实现[J].广东交通职业技术学院学报,2019,18(01):48-52.

[7]李冬冬,刘华明,毕学慧,王秀友.旧衣申领系统的设计与实现[J].电脑知识与技术,2019,15(08):47-50.

[8]李庆年.“互联网+”视域下的人才招聘管理系统设计与实现[J].国际公关,2019(03):164-165.

[9]刘婷,彭焕峰,邵淑婷.基于云平台的高校监考管理系统[J].电脑知识与技术,2019,15(07):91-92.

[10]赵丙秀.基于百度AI平台的Web人脸注册和登录系统的实现[J].电脑知识与技术,2019,15(07):114-115.

[11]戴昭颖,尹涛.钢铁行业成本预算系统开发应用实践[J].电子技术与软件工程,2019(04):29-30.

[12]曹灿,刘志刚.基于SSH和Layui的工程科学前沿与实践系统[J].工业控制计算机,2019,32(02):91-92+96.

[13]谢路.基于Web的考务管理系统设计与实现[J].福建电脑,2019,35(01):136-137.

[14]张继东.MySQL数据库基于JSP的访问技术[J/OL].电子技术与软件工程,2017,(15):169(2017-08-03).

[15]韩思凡.Web开发中的JSP与HTML的基础应用[J].科学技术创新,2020(14):71-72.

[16]NastitiAndini,DaehaKim,JongAhnChun.Operationalsoilmoisturemodelingusingamulti-stageapproachbasedonthegeneralizedcomplementaryprinciple[J].AgriculturalWaterManagement,2020,231.

[17]A.D.Titisari,D.Phillips,I.W.Warmada,Hartono,A.Idrus.40Ar/39ArgeochronologyofthePongkorlowsulfidationepithermalgoldmineralisation,WestJava,Indonesia[J].OreGeologyReviews,2020,119.

[18]FranciscoOrtin,OscarRodriguez-Prieto,NicolasPascual,MiguelGarcia.HeterogeneoustreestructureclassificationtolabelJavaprogrammersaccordingtotheirexpertiselevel[J].FutureGenerationComputerSystems,2020,105.

[19]Satya Krismatama, Indah Riyantini, Iwang Gumilar, Lantun Paradhita Dewanti. Selectivity of Fishing Gear for Scomberomorusguttatus(Bloch & Schneider, 1801) Commodities in Pangandaran Fishing Ground, West Java[J]. Asian Journal of Fisheries and Aquatic Research, 2020.

[20]ZhongXiangfu,PlaAlbert,RaynerSimon.Jasmine:miRNA-Seqdata[J]에서 isomiR 특성화를 위한 Javapipeline[J].Bioinformatics,2020,36(6).

감사합니다

설계가 완료되면 대학 경력이 끝납니다. 대학시절은 내가 가장 소중하게 생각하는 시간이다. 대학시절을 통해 많은 것을 배우고 많이 성장했다. 그 동안의 모든 기억이 마음에 새겨진다. 함께 공부하고 성장한 학생들, 성장 과정에서 저를 가르쳐주신 선생님들 덕분에 귀사에 진심으로 감사드립니다.

먼저 강사님께 감사하다는 말씀을 드리고 싶습니다 디자인의 완성은 선생님의 일련의 지도와 뗄 수 없는 관계입니다. 졸업 프로젝트를 완료하는 동안 선생님은 많은 적절한 제안을 하셨고, 바로 선생님의 세심한 작업 태도 덕분에 제 디자인이 성공적으로 완성될 수 있었습니다.

마지막으로, 대학 생활 동안 저를 가르쳐 주신 모든 선생님들께 감사드립니다. 저에게 풍부한 지식을 가르쳐 주셨고, 문제가 생겼을 때 대처하고 해결하는 방법을 가르쳐 주셨습니다. 귀하의 도움과 지원에 감사드립니다.

좋아요+즐겨찾기+팔로우 → 비공개 메시지로 소스코드 및 데이터베이스 받기

추천

출처blog.csdn.net/weixin_61498557/article/details/131473039