본문 바로가기

명사 美 비격식 (무리 중에서) 아주 뛰어난[눈에 띄는] 사람[것]

JAVA

기술등급 계산하기 insert, update

앞서 우리는 한 인물의 경력년차를 계산해봤다.

https://standout.tistory.com/1238

 

경력년차 계산하기 insert, update

경력년차는 insertCohistory 회사정보를 insert하거나 update할때 동시에 실행하도록 한다. public void insertCoHistory(List coHistoryList, int empId) { for (MpVO.CoHistory coHistory : coHistoryList) { System.out.println("coHistory! -> f

standout.tistory.com

 

 

우선 작업 시작전, 아래와같이 등급요건을 정해봤다.

등급요건 (4년제 대학 졸업 및 기사 자격증 소지시 등급 +1)초급중급고급특급

5년 이하
5년 초과 10년 이하
10년 초과 15년 이하
15년 이상

 

 

이 동작은 등록/수정시 모두 함께 실행되도록한다.

 public void insertCoHistory(List<MpVO.CoHistory> coHistoryList, int empId) {
		 for (MpVO.CoHistory coHistory : coHistoryList) {
			 System.out.println("coHistory! -> for문으로 출력했습니다 "+coHistory + "이건 아이디" + empId);
			 mpMapper.insertCoHistory(coHistory, empId);
		 }
		 mpMapper.updateExpYears(empId);
		 mpMapper.updateExpGrade(empId);
	    }
	 public void updateCoHistory(List<MpVO.CoHistory> coHistoryList, int empId) {
		 for (MpVO.CoHistory coHistory : coHistoryList) {
			 System.out.println("coHistory! -> for문으로 출력했습니다 "+coHistory + "이건 아이디" + empId);
			 if(coHistory.getHistoryId() == 0) {
			 mpMapper.insertCoHistory(coHistory, empId);
			 }else {
			 mpMapper.updateCoHistory(coHistory, empId);
			 }
		 }
		 mpMapper.updateExpYears(empId);
		 mpMapper.updateExpGrade(empId);
	    }

 

 

 

 

EMPID값을 받아 원하는 인물의 값을 수정하며

void updateExpGrade(int empId);

 

 

 

 

 

 

해당 인물의 EXP_YEARS의 기준에 따라 0, 1, 2, 3 등으로 값을 매겨보자.

<update id="updateExpGrade" parameterType="java.util.Map">
    <![CDATA[
        UPDATE emp_info
        SET EXP_GRADE =
        CASE
            WHEN CAST(EXP_YEARS AS SIGNED) <= 5 THEN 0
            WHEN CAST(EXP_YEARS AS SIGNED) > 5 AND CAST(EXP_YEARS AS SIGNED) <= 10 THEN 1
            WHEN CAST(EXP_YEARS AS SIGNED) > 10 AND CAST(EXP_YEARS AS SIGNED) <= 15 THEN 2
            ELSE 3
        END
        WHERE EMP_ID = #{empId}
    ]]>
</update>