출퇴근

This commit is contained in:
yoon 2025-03-10 15:45:58 +09:00
parent eb7b65aed7
commit e8ae11250e
5 changed files with 212 additions and 0 deletions

View File

@ -35,6 +35,7 @@ public class MapBasedUrlRoleMapper implements UrlRoleMapper{
urlRoleMappings.put("/api/vote/**", PERMIT_ALL);
urlRoleMappings.put("/api/worddict/**", PERMIT_ALL);
urlRoleMappings.put("/api/quilleditor/**", PERMIT_ALL);
urlRoleMappings.put("/api/commuters/**", PERMIT_ALL);
return new HashMap<>(urlRoleMappings);
}
}

View File

@ -0,0 +1,64 @@
/************************************************************
*
* @packageName : io.company.localhost.controller.api
* @fileName : CommuterController.java
* @author : 박지윤
* @date : 25.03.10
* @description : 출퇴근
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 25.03.10 박지윤 최초 생성
*
*************************************************************/
package io.company.localhost.controller.api;
import java.util.List;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import io.company.localhost.common.annotation.ReqMap;
import io.company.localhost.common.dto.ApiResponse;
import io.company.localhost.common.dto.MapDto;
import io.company.localhost.service.CommutersService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@RestController
@RequestMapping("/api/commuters")
@RequiredArgsConstructor
@Slf4j
public class CommutersController {
private final CommutersService commutersService;
/**
* 출퇴근 등록
*
* @param map
* @return
*/
@PostMapping("/insert")
public ApiResponse<Integer> insertCommuters(@ReqMap MapDto map) {
int commuters = commutersService.insertCommuters(map);
return ApiResponse.ok(commuters);
}
/**
* 출퇴근 당일 조회
*
* @param map
* @return
*/
@GetMapping("/today")
public ApiResponse<List<MapDto>> selectTodayCommuter(int memberSeq) {
return ApiResponse.ok(commutersService.selectTodayCommuter(memberSeq));
}
}

View File

@ -0,0 +1,32 @@
/************************************************************
*
* @packageName : io.company.localhost.mapper
* @fileName : CommutersMapper.java
* @author : 박지윤
* @date : 24.03.10
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.03.10 박지윤 최초 생성
*
*************************************************************/
package io.company.localhost.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import io.company.localhost.common.dto.MapDto;
@Mapper
public interface CommutersMapper {
int insertCommuters(MapDto map);
int updateLeaveTime(MapDto map);
List<MapDto> selectTodayCommuter(int memberSeq);
}

View File

@ -0,0 +1,72 @@
/************************************************************
*
* @packageName : io.company.localhost.CommutersService
* @fileName : CommutersService.java
* @author : 박지윤
* @date : 25.03.10
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 25.03.10 박지윤 최초 생성
*
*************************************************************/
package io.company.localhost.service;
import java.time.LocalDateTime;
import java.util.List;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import io.company.localhost.common.annotation.ReqMap;
import io.company.localhost.common.dto.MapDto;
import io.company.localhost.mapper.CommutersMapper;
import io.company.localhost.mapper.NetprojctMapper;
import io.company.localhost.mapper.PromemberMapper;
import io.company.localhost.mapper.commoncodMapper;
import lombok.RequiredArgsConstructor;
@Service
@RequiredArgsConstructor
public class CommutersService {
private final CommutersMapper commutersMapper;
/**
* 출퇴근 등록
*
* @param map
* @return
*/
public int insertCommuters(MapDto map) {
map.put("commutDay", LocalDateTime.now());
int result = commutersMapper.insertCommuters(map);
return result;
}
/**
* 퇴근 시간 업데이트
* @param map
* @return
*/
// public List<MapDto> updateLeaveTime(MapDto map) {
//
//
// return ;
// }
//
/**
* 당일 출근 기록 조회
* @param memberSeq 사용자 번호
* @return 당일 출근 정보
*/
public List<MapDto> selectTodayCommuter(int memberSeq) {
return commutersMapper.selectTodayCommuter(memberSeq);
}
}

View File

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="io.company.localhost.mapper.CommutersMapper">
<!-- 출퇴근 등록 -->
<insert id="insertCommuters" useGeneratedKeys="true" keyProperty="COMMUTSEQ">
INSERT INTO commuters (
COMMUTSEQ,
MRMBERSEQ,
PROJCTSEQ,
COMMUTCMT,
COMMUTLVT,
COMMUTDAY,
COMMUTARR
) VALUES (
#{commutSeq},
#{memberSeq},
#{projctSeq},
#{commutCmt},
#{commutLvt},
#{commutDay},
#{commutArr}
)
</insert>
<!-- 퇴근 시간 업데이트 -->
<update id="updateLeaveTime" parameterType="map">
UPDATE commuters
SET COMMUTLVT = #{commutLvt}
WHERE MRMBERSEQ = #{memberSeq}
AND COMMUTDAY = CURDATE()
</update>
<!-- 당일 출근 기록 조회 -->
<select id="selectTodayCommuter" parameterType="int" resultType="map">
SELECT c.*, p.PROJCTNAM, p.projctcolor
FROM commuters c
LEFT JOIN project p ON c.PROJCTSEQ = p.PROJCTSEQ
WHERE c.MRMBERSEQ = #{memberSeq}
AND c.COMMUTDAY = CURDATE()
</select>
</mapper>