출퇴근
This commit is contained in:
parent
1c42e51664
commit
d0f9cefa80
@ -18,6 +18,8 @@ package io.company.localhost.controller.api;
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PatchMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
@ -51,14 +53,63 @@ public class CommutersController {
|
||||
}
|
||||
|
||||
/**
|
||||
* 출퇴근 당일 조회
|
||||
* 퇴근 업데이트
|
||||
*
|
||||
* @param map
|
||||
* @return
|
||||
*
|
||||
*/
|
||||
@PatchMapping("/updateLve")
|
||||
public ApiResponse<Boolean> updateLeaveTime(@ReqMap MapDto map) {
|
||||
boolean isLeaveTime = commutersService.updateLeaveTime(map);
|
||||
return ApiResponse.ok(isLeaveTime);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 현재 달의 모든 출근 정보 조회
|
||||
*
|
||||
* @param map
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/today")
|
||||
public ApiResponse<List<MapDto>> selectTodayCommuter(int memberSeq) {
|
||||
return ApiResponse.ok(commutersService.selectTodayCommuter(memberSeq));
|
||||
@GetMapping("/month")
|
||||
public ApiResponse<List<MapDto>> selectCommutersByMonth(int year, int month) {
|
||||
return ApiResponse.ok(commutersService.selectCommutersByMonth(year, month));
|
||||
}
|
||||
|
||||
/**
|
||||
* 오늘 사용자의 출근 정보 조회
|
||||
*
|
||||
* @param map
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/today/{memberSeq}")
|
||||
public ApiResponse<List<MapDto>> selectTodayCommuterInfo(@PathVariable Integer memberSeq) {
|
||||
return ApiResponse.ok(commutersService.selectTodayCommuterInfo(memberSeq));
|
||||
}
|
||||
|
||||
/**
|
||||
* 오늘 출근 모든 사용자 조회
|
||||
*
|
||||
* @param map
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/todays")
|
||||
public ApiResponse<List<MapDto>> selectTodayCommuter() {
|
||||
return ApiResponse.ok(commutersService.selectTodayCommuter());
|
||||
}
|
||||
|
||||
/**
|
||||
* 출근 프로젝트 업데이트
|
||||
*
|
||||
* @param map
|
||||
* @return
|
||||
*
|
||||
*/
|
||||
@PatchMapping("/update")
|
||||
public ApiResponse<Boolean> updateCommuterProject(@ReqMap MapDto map) {
|
||||
boolean isCommuter = commutersService.updateCommuterProject(map);
|
||||
return ApiResponse.ok(isCommuter);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -27,6 +27,14 @@ public interface CommutersMapper {
|
||||
|
||||
int updateLeaveTime(MapDto map);
|
||||
|
||||
List<MapDto> selectTodayCommuter(int memberSeq);
|
||||
List<MapDto> selectCommutersByMonth(int year, int month);
|
||||
|
||||
List<MapDto> selectTodayCommuterInfo(Integer memberSeq);
|
||||
|
||||
List<MapDto> selectTodayCommuter();
|
||||
|
||||
int updateCommuterProject(MapDto map);
|
||||
|
||||
int deleteCommuters(MapDto map);
|
||||
|
||||
}
|
||||
|
||||
@ -32,4 +32,5 @@ public interface NetprojctMapper {
|
||||
List<MapDto> selectProjectLog(int projctSeq);
|
||||
|
||||
int deleteProject(MapDto map);
|
||||
|
||||
}
|
||||
|
||||
@ -33,4 +33,6 @@ public interface PromemberMapper {
|
||||
|
||||
List<MapDto> selectMemberProjects(int memberSeq);
|
||||
|
||||
int deletePromember(MapDto map);
|
||||
|
||||
}
|
||||
|
||||
@ -15,17 +15,13 @@
|
||||
package io.company.localhost.service;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
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
|
||||
@ -42,6 +38,8 @@ public class CommutersService {
|
||||
*/
|
||||
public int insertCommuters(MapDto map) {
|
||||
map.put("commutDay", LocalDateTime.now());
|
||||
map.put("commutCme", LocalTime.now());
|
||||
|
||||
int result = commutersMapper.insertCommuters(map);
|
||||
|
||||
return result;
|
||||
@ -52,21 +50,58 @@ public class CommutersService {
|
||||
* @param map
|
||||
* @return
|
||||
*/
|
||||
// public List<MapDto> updateLeaveTime(MapDto map) {
|
||||
//
|
||||
//
|
||||
// return ;
|
||||
// }
|
||||
//
|
||||
public boolean updateLeaveTime(MapDto map) {
|
||||
|
||||
/**
|
||||
* 당일 출근 기록 조회
|
||||
* @param memberSeq 사용자 번호
|
||||
* @return 당일 출근 정보
|
||||
*/
|
||||
public List<MapDto> selectTodayCommuter(int memberSeq) {
|
||||
return commutersMapper.selectTodayCommuter(memberSeq);
|
||||
if(map.get("commutLve") != null) {
|
||||
map.put("commutLve", null);
|
||||
} else {
|
||||
map.put("commutLve", LocalTime.now());
|
||||
}
|
||||
|
||||
|
||||
return commutersMapper.updateLeaveTime(map) > 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 현재 달의 모든 출근 정보 조회
|
||||
*
|
||||
* @param year, month
|
||||
* @return
|
||||
*/
|
||||
public List<MapDto> selectCommutersByMonth(int year, int month) {
|
||||
return commutersMapper.selectCommutersByMonth(year, month);
|
||||
}
|
||||
|
||||
/**
|
||||
* 오늘 사용자 출근 정보 조회
|
||||
*
|
||||
* @param memberSeq
|
||||
* @return
|
||||
*/
|
||||
public List<MapDto> selectTodayCommuterInfo(Integer memberSeq) {
|
||||
return commutersMapper.selectTodayCommuterInfo(memberSeq);
|
||||
}
|
||||
|
||||
/**
|
||||
* 오늘 출근 모든 사용자 조회
|
||||
*
|
||||
* @param
|
||||
* @return
|
||||
*/
|
||||
public List<MapDto> selectTodayCommuter() {
|
||||
return commutersMapper.selectTodayCommuter();
|
||||
}
|
||||
|
||||
/**
|
||||
* 출근 프로젝트 업데이트
|
||||
*
|
||||
* @param map
|
||||
* @return
|
||||
*/
|
||||
public boolean updateCommuterProject(MapDto map) {
|
||||
return commutersMapper.updateCommuterProject(map) > 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -22,6 +22,7 @@ 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;
|
||||
@ -33,6 +34,7 @@ public class NetprojctService {
|
||||
private final commoncodMapper commoncodMapper;
|
||||
private final NetprojctMapper netprojctMapper;
|
||||
private final PromemberMapper promemberMapper;
|
||||
private final CommutersMapper commutersMapper;
|
||||
|
||||
|
||||
/**
|
||||
@ -123,6 +125,10 @@ public class NetprojctService {
|
||||
*/
|
||||
public boolean deleteProject(MapDto map) {
|
||||
|
||||
promemberMapper.deletePromember(map);
|
||||
|
||||
commutersMapper.deleteCommuters(map);
|
||||
|
||||
boolean result = netprojctMapper.deleteProject(map) > 0;
|
||||
|
||||
Integer color = map.getInt("projctCol");
|
||||
|
||||
@ -6,38 +6,83 @@
|
||||
<insert id="insertCommuters" useGeneratedKeys="true" keyProperty="COMMUTSEQ">
|
||||
INSERT INTO commuters (
|
||||
COMMUTSEQ,
|
||||
MRMBERSEQ,
|
||||
MEMBERSEQ,
|
||||
PROJCTSEQ,
|
||||
COMMUTCMT,
|
||||
COMMUTLVT,
|
||||
COMMUTLVE,
|
||||
COMMUTDAY,
|
||||
COMMUTARR
|
||||
) VALUES (
|
||||
#{commutSeq},
|
||||
#{memberSeq},
|
||||
#{projctSeq},
|
||||
#{commutCmt},
|
||||
#{commutLvt},
|
||||
#{commutCme},
|
||||
#{commutLve},
|
||||
#{commutDay},
|
||||
#{commutArr}
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 퇴근 시간 업데이트 -->
|
||||
<update id="updateLeaveTime" parameterType="map">
|
||||
<update id="updateLeaveTime">
|
||||
UPDATE commuters
|
||||
SET COMMUTLVT = #{commutLvt}
|
||||
WHERE MRMBERSEQ = #{memberSeq}
|
||||
SET COMMUTLVE = #{commutLve}
|
||||
WHERE MEMBERSEQ = #{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 id="selectCommutersByMonth" parameterType="map" resultType="map">
|
||||
SELECT
|
||||
c.COMMUTSEQ,
|
||||
c.MEMBERSEQ,
|
||||
c.PROJCTSEQ,
|
||||
c.COMMUTCMT,
|
||||
c.COMMUTLVE,
|
||||
c.COMMUTDAY,
|
||||
c.COMMUTARR,
|
||||
m.MEMBERNAM as memberName,
|
||||
m.MEMBERPRF as profile,
|
||||
p.PROJCTNAM,
|
||||
cc.CMNCODNAM AS projctcolor
|
||||
FROM
|
||||
commuters c
|
||||
JOIN
|
||||
netmember m ON c.MEMBERSEQ = m.MEMBERSEQ
|
||||
JOIN
|
||||
netprojct p ON c.PROJCTSEQ = p.PROJCTSEQ
|
||||
LEFT JOIN commoncod cc ON p.PROJCTCOL = cc.CMNCODVAL AND cc.CMNCODYNP = '1'
|
||||
WHERE
|
||||
YEAR(c.COMMUTDAY) = #{year}
|
||||
AND MONTH(c.COMMUTDAY) = #{month}
|
||||
</select>
|
||||
|
||||
<!-- 사용자 오늘 출근 정보 조회 -->
|
||||
<select id="selectTodayCommuterInfo" parameterType="Integer" resultType="map">
|
||||
SELECT c.COMMUTCMT, c.COMMUTLVE
|
||||
FROM commuters c
|
||||
WHERE c.MEMBERSEQ = #{memberSeq}
|
||||
AND c.COMMUTDAY = CURDATE()
|
||||
</select>
|
||||
|
||||
<!-- 오늘 출근 모든 사용자 조회 -->
|
||||
<select id="selectTodayCommuter">
|
||||
SELECT c.COMMUTCMT, m.MEMBERSEQ, m.MEMBERPRF as profile, p.PROJCTNAM
|
||||
FROM commuters c
|
||||
JOIN netmember m ON c.MEMBERSEQ = m.MEMBERSEQ
|
||||
JOIN netprojct p ON c.PROJCTSEQ = p.PROJCTSEQ
|
||||
WHERE c.COMMUTDAY = CURDATE()
|
||||
</select>
|
||||
|
||||
<!-- 출근 프로젝트 업데이트 -->
|
||||
<update id="updateCommuterProject">
|
||||
UPDATE commuters
|
||||
SET PROJCTSEQ = #{projctSeq}
|
||||
WHERE MEMBERSEQ = #{memberSeq}
|
||||
AND COMMUTDAY = CURDATE()
|
||||
</update>
|
||||
|
||||
<delete id="deleteCommuters" parameterType="int">
|
||||
DELETE FROM commuters WHERE PROJCTSEQ = #{projctSeq}
|
||||
</delete>
|
||||
</mapper>
|
||||
|
||||
@ -30,6 +30,9 @@
|
||||
<if test="category != null and category != ''">
|
||||
AND SUBSTRING(p.PROJCTSTR, 1, 4) = #{category}
|
||||
</if>
|
||||
<if test="excludeEnded != null and excludeEnded == 'true'">
|
||||
AND (p.PROJCTEND IS NULL OR p.PROJCTEND > CURDATE())
|
||||
</if>
|
||||
ORDER BY p.PROJCTSTR DESC
|
||||
</select>
|
||||
|
||||
@ -105,9 +108,9 @@
|
||||
</select>
|
||||
|
||||
<!-- 프로젝트 삭제 -->
|
||||
<delete id="deleteProject">
|
||||
DELETE FROM netprojct WHERE PROJCTSEQ = #{projctSeq}
|
||||
</delete>
|
||||
<delete id="deleteProject" parameterType="int">
|
||||
DELETE FROM netprojct WHERE PROJCTSEQ = #{projctSeq}
|
||||
</delete>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
||||
@ -47,4 +47,8 @@
|
||||
ORDER BY p.PROJCTSTR DESC
|
||||
</select>
|
||||
|
||||
<delete id="deletePromember" parameterType="int">
|
||||
DELETE FROM promember WHERE PROJCTSEQ = #{projctSeq}
|
||||
</delete>
|
||||
|
||||
</mapper>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user