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