근태 관리 목록 조회시 1번의 쿼리로 조회되게 변경

This commit is contained in:
2026-02-24 17:17:21 +09:00
parent befcd92f2b
commit 23f59a4894
3 changed files with 854 additions and 724 deletions

View File

@@ -12,7 +12,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
@Repository @Repository
public class WebAttendanceSqlMapDAO extends SqlSessionDaoSupport{ public class WebAttendanceSqlMapDAO extends SqlSessionDaoSupport {
@Autowired @Autowired
private SqlSessionTemplate sqlSessionTemplate; private SqlSessionTemplate sqlSessionTemplate;
@@ -21,13 +21,13 @@ public class WebAttendanceSqlMapDAO extends SqlSessionDaoSupport{
void init() { void init() {
setSqlSessionTemplate(sqlSessionTemplate); setSqlSessionTemplate(sqlSessionTemplate);
} }
/** /**
* 근태관리 정보 - 조회날짜 조회 (List) * 근태관리 정보 - 조회날짜 조회 (List)
* *
* @param Map * @param Map
* @return * @return
* @throws DataAccessException * @throws DataAccessException
*/ */
public List<Map<String, Object>> selectListAttendanceDate(HashMap<String, Object> paramMap) public List<Map<String, Object>> selectListAttendanceDate(HashMap<String, Object> paramMap)
throws DataAccessException { throws DataAccessException {
@@ -36,13 +36,13 @@ public class WebAttendanceSqlMapDAO extends SqlSessionDaoSupport{
logger.debug("WebAttendanceSqlMapDAO selectListAttendanceDate END"); logger.debug("WebAttendanceSqlMapDAO selectListAttendanceDate END");
return getSqlSession().selectList(sqlId, paramMap); return getSqlSession().selectList(sqlId, paramMap);
} }
/** /**
* 근태관리 정보 - 직원 조회 (List) * 근태관리 정보 - 직원 조회 (List)
* *
* @param Map * @param Map
* @return * @return
* @throws DataAccessException * @throws DataAccessException
*/ */
public List<Map<String, Object>> selectListAttendanceMember(HashMap<String, Object> paramMap) public List<Map<String, Object>> selectListAttendanceMember(HashMap<String, Object> paramMap)
throws DataAccessException { throws DataAccessException {
@@ -51,13 +51,13 @@ public class WebAttendanceSqlMapDAO extends SqlSessionDaoSupport{
logger.debug("WebAttendanceSqlMapDAO selectListAttendanceMember END"); logger.debug("WebAttendanceSqlMapDAO selectListAttendanceMember END");
return getSqlSession().selectList(sqlId, paramMap); return getSqlSession().selectList(sqlId, paramMap);
} }
/** /**
* 근태관리 정보 - 날짜별,직원 근태 조회 (List) * 근태관리 정보 - 날짜별,직원 근태 조회 (List)
* *
* @param Map * @param Map
* @return * @return
* @throws DataAccessException * @throws DataAccessException
*/ */
public List<Map<String, Object>> selectListAttendance(HashMap<String, Object> paramMap) public List<Map<String, Object>> selectListAttendance(HashMap<String, Object> paramMap)
throws DataAccessException { throws DataAccessException {
@@ -66,13 +66,28 @@ public class WebAttendanceSqlMapDAO extends SqlSessionDaoSupport{
logger.debug("WebAttendanceSqlMapDAO selectListAttendance END"); logger.debug("WebAttendanceSqlMapDAO selectListAttendance END");
return getSqlSession().selectList(sqlId, paramMap); return getSqlSession().selectList(sqlId, paramMap);
} }
/**
* 근태관리 정보 - 날짜별,직원 근태 전체 조회(최적화용) (List)
*
* @param Map
* @return
* @throws DataAccessException
*/
public List<Map<String, Object>> selectListAttendanceAll(HashMap<String, Object> paramMap)
throws DataAccessException {
logger.debug("WebAttendanceSqlMapDAO selectListAttendanceAll START");
String sqlId = "WebAttendance.selectListAttendanceAll";
logger.debug("WebAttendanceSqlMapDAO selectListAttendanceAll END");
return getSqlSession().selectList(sqlId, paramMap);
}
/** /**
* 근태관리 정보 - 해당 날짜 등록여부 조회 (List) * 근태관리 정보 - 해당 날짜 등록여부 조회 (List)
* *
* @param Map * @param Map
* @return * @return
* @throws DataAccessException * @throws DataAccessException
*/ */
public List<Map<String, Object>> selectAttendanceDate(HashMap<String, Object> paramMap) public List<Map<String, Object>> selectAttendanceDate(HashMap<String, Object> paramMap)
throws DataAccessException { throws DataAccessException {
@@ -81,13 +96,13 @@ public class WebAttendanceSqlMapDAO extends SqlSessionDaoSupport{
logger.debug("WebAttendanceSqlMapDAO selectAttendanceDate END"); logger.debug("WebAttendanceSqlMapDAO selectAttendanceDate END");
return getSqlSession().selectList(sqlId, paramMap); return getSqlSession().selectList(sqlId, paramMap);
} }
/** /**
* 근태관리 상세 정보 조회 (출/퇴근 조회) * 근태관리 상세 정보 조회 (출/퇴근 조회)
* *
* @param Map * @param Map
* @return * @return
* @throws DataAccessException * @throws DataAccessException
*/ */
public List<Map<String, Object>> selectAttendanceCommute(HashMap<String, Object> paramMap) public List<Map<String, Object>> selectAttendanceCommute(HashMap<String, Object> paramMap)
throws DataAccessException { throws DataAccessException {
@@ -96,13 +111,13 @@ public class WebAttendanceSqlMapDAO extends SqlSessionDaoSupport{
logger.debug("WebAttendanceSqlMapDAO selectAttendanceCommute END"); logger.debug("WebAttendanceSqlMapDAO selectAttendanceCommute END");
return getSqlSession().selectList(sqlId, paramMap); return getSqlSession().selectList(sqlId, paramMap);
} }
/** /**
* 근태관리 상세 정보 조회 (연차 조회) * 근태관리 상세 정보 조회 (연차 조회)
* *
* @param Map * @param Map
* @return * @return
* @throws DataAccessException * @throws DataAccessException
*/ */
public List<Map<String, Object>> selectAttendanceVacation(HashMap<String, Object> paramMap) public List<Map<String, Object>> selectAttendanceVacation(HashMap<String, Object> paramMap)
throws DataAccessException { throws DataAccessException {
@@ -111,13 +126,13 @@ public class WebAttendanceSqlMapDAO extends SqlSessionDaoSupport{
logger.debug("WebAttendanceSqlMapDAO selectAttendanceVacation END"); logger.debug("WebAttendanceSqlMapDAO selectAttendanceVacation END");
return getSqlSession().selectList(sqlId, paramMap); return getSqlSession().selectList(sqlId, paramMap);
} }
/** /**
* 금일 근무현황 정보 조회 (List) * 금일 근무현황 정보 조회 (List)
* *
* @param Map * @param Map
* @return * @return
* @throws DataAccessException * @throws DataAccessException
*/ */
public List<Map<String, Object>> selectListTodayAttendance(HashMap<String, Object> paramMap) public List<Map<String, Object>> selectListTodayAttendance(HashMap<String, Object> paramMap)
throws DataAccessException { throws DataAccessException {
@@ -126,7 +141,7 @@ public class WebAttendanceSqlMapDAO extends SqlSessionDaoSupport{
logger.debug("WebAttendanceSqlMapDAO selectListTodayAttendance END"); logger.debug("WebAttendanceSqlMapDAO selectListTodayAttendance END");
return getSqlSession().selectList(sqlId, paramMap); return getSqlSession().selectList(sqlId, paramMap);
} }
/** /**
* 근태관리 정보 등록 * 근태관리 정보 등록
* *
@@ -141,7 +156,7 @@ public class WebAttendanceSqlMapDAO extends SqlSessionDaoSupport{
logger.debug("WebAttendanceSqlMapDAO insertAttendance END"); logger.debug("WebAttendanceSqlMapDAO insertAttendance END");
return getSqlSession().insert(sqlId, paramMap); return getSqlSession().insert(sqlId, paramMap);
} }
/** /**
* 근태관리 정보 수정 (출/퇴근) * 근태관리 정보 수정 (출/퇴근)
* *
@@ -156,7 +171,7 @@ public class WebAttendanceSqlMapDAO extends SqlSessionDaoSupport{
logger.debug("WebAttendanceSqlMapDAO updateAttendanceCommute END"); logger.debug("WebAttendanceSqlMapDAO updateAttendanceCommute END");
return getSqlSession().insert(sqlId, paramMap); return getSqlSession().insert(sqlId, paramMap);
} }
/** /**
* 근태관리 정보 수정 (연차) * 근태관리 정보 수정 (연차)
* *
@@ -171,7 +186,7 @@ public class WebAttendanceSqlMapDAO extends SqlSessionDaoSupport{
logger.debug("WebAttendanceSqlMapDAO updateAttendanceVacation END"); logger.debug("WebAttendanceSqlMapDAO updateAttendanceVacation END");
return getSqlSession().insert(sqlId, paramMap); return getSqlSession().insert(sqlId, paramMap);
} }
/** /**
* 근태관리 정보 취소 (연차) * 근태관리 정보 취소 (연차)
* *

View File

@@ -76,6 +76,28 @@
ORDER BY MA.MEMBER_CODE ASC ORDER BY MA.MEMBER_CODE ASC
</select> </select>
<select id="selectListAttendanceAll" parameterType="hashmap" resultType="hashmap">
SELECT MA.MU_ATTENDANCE_ID AS "muAttendanceId"
,MA.MU_MEMBER_ID AS "muMemberId"
,MA.ATTENDANCE_TYPE AS "attendanceType"
,DATE_FORMAT(MA.START_DATE,'%Y-%m-%d') AS "startDate"
,DATE_FORMAT(MA.END_DATE,'%Y-%m-%d') AS "endDate"
,DATE_FORMAT(MA.ATTENDANCE_TIME, '%H:%i') AS "attendanceTime"
,DATE_FORMAT(MA.START_TIME, '%H:%i') AS "startTime"
,DATE_FORMAT(MA.END_TIME, '%H:%i') AS "endTime"
,MA.MU_VACATION_ID AS "muVacationId"
,IFNULL(MV.VACATION_NAME, '') AS "vacationName"
FROM MU_ATTENDANCE AS MA
LEFT JOIN MU_VACATION AS MV
ON MV.MU_VACATION_ID = MA.MU_VACATION_ID
AND MV.USE_YN = 'Y'
WHERE MA.USE_YN = 'Y'
AND MA.STATUS != 'D'
AND ((DATE_FORMAT(MA.START_DATE,'%Y-%m-%d') &lt;= #{attendanceSearchStartDate} AND DATE_FORMAT(MA.END_DATE,'%Y-%m-%d') &gt;= #{attendanceSearchStartDate})
OR (DATE_FORMAT(MA.START_DATE,'%Y-%m-%d') &lt;= #{attendanceSearchEndDate} AND DATE_FORMAT(MA.END_DATE,'%Y-%m-%d') &gt;= #{attendanceSearchEndDate})
OR (DATE_FORMAT(MA.START_DATE,'%Y-%m-%d') &gt; #{attendanceSearchStartDate} AND DATE_FORMAT(MA.END_DATE,'%Y-%m-%d') &lt; #{attendanceSearchEndDate}))
</select>
<select id="selectListAttendance" parameterType="hashmap" resultType="hashmap"> <select id="selectListAttendance" parameterType="hashmap" resultType="hashmap">
SELECT MAX(MU_ATTENDANCE_ID) AS "muAttendanceId" SELECT MAX(MU_ATTENDANCE_ID) AS "muAttendanceId"
,MA.MU_MEMBER_ID AS "muMemberId" ,MA.MU_MEMBER_ID AS "muMemberId"