itn 출퇴근 관리 수정

This commit is contained in:
hehihoho3@gmail.com 2025-02-06 14:24:43 +09:00
parent 364991f6b4
commit 7251dcd517
16 changed files with 31 additions and 644 deletions

View File

@ -1,45 +0,0 @@
package com.itn.admin.agent.client.five.mapper;
import com.itn.admin.agent.client.five.mapper.domain.AgentCFiveVO;
import com.itn.admin.agent.client.one.mapper.domain.AgentCOneVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
/**
* packageName : com.itn.admin.agent.client.three.mapper
* fileName : AgentCThreeMapper
* author : hylee
* date : 2024-09-20
* description :
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------$------------------------------
* 2024-09-20 hylee 최초 생성
*/
@Mapper
public interface AgentCFiveMapper {
@Select(
"SELECT count(*) " +
"FROM MUNJAON_MSG " +
"WHERE MESSAGE LIKE CONCAT(#{message}, '%') "
)
int findByInsertCnt(AgentCFiveVO agentCFiveVO);
@Select("SELECT min(REQUEST_DATE) as requestDate " +
"FROM MUNJAON_MSG_LOG " +
"WHERE MESSAGE LIKE CONCAT(#{message}, '%')")
String findByRequestDateWhereMessageFromLog(AgentCFiveVO agentCFiveVO);
@Select("""
SELECT
COUNT(*) AS reportCnt, -- ' 카운트',
MIN(REPORT_DATE) AS minReportDate, -- '가장 빠른 REPORT_DATE',
MAX(REPORT_DATE) AS maxReportDate -- '가장 늦은 REPORT_DATE'
FROM
MUNJAON_MSG_LOG
WHERE
MESSAGE LIKE CONCAT(#{message}, '%')
""")
AgentCFiveVO findByReportLog(AgentCFiveVO agentCFiveVO);
}

View File

@ -1,58 +0,0 @@
package com.itn.admin.agent.client.five.mapper.domain;
import lombok.*;
import java.io.Serializable;
/**
* packageName : com.itn.admin.agent.client.three.mapper.domain
* fileName : AgentCThreeVO
* author : hylee
* date : 2024-07-31
* description : 에이젼트 테스트발송
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 2023-05-09 hylee 최초 생성
*/
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Getter
@Setter
@ToString
public class AgentCFiveVO implements Serializable {
private static final long serialVersionUID = 1L;
private int msgId; // int unsigned
private String msgType;
private String sendStatus;
private String requestSate;
private String recvPhone;
private String sendPhone;
private String subject;
private String message;
private String sendCnt;
private String fileName01;
private String fileName02;
private String fileName03;
private String requestDate; // datetime
private String telecom; // varchar(7)
private String agentCode; // varchar(5)
private String kakaoSenderKey; // varchar(40)
private String kakaoTemplateCode; // varchar(64)
private String kakaoJsonFile; // varchar(100)
private String deliverDate; // datetime
private String sentDate; // datetime
private String reportDate; // datetime
private String cnt;
private String reportCnt;
private String minReportDate;
private String maxReportDate;
}

View File

@ -1,13 +0,0 @@
package com.itn.admin.agent.client.five.service;
import com.itn.admin.agent.client.five.mapper.domain.AgentCFiveVO;
import com.itn.admin.cmn.msg.RestResponse;
public interface AgentCFiveService {
RestResponse findByInsertCnt(AgentCFiveVO agentCFiveVO);
RestResponse findByRequestDateWhereMessageFromLog(AgentCFiveVO agentCFiveVO);
RestResponse findByReportLog(AgentCFiveVO agentCFiveVO);
}

View File

@ -1,37 +0,0 @@
package com.itn.admin.agent.client.five.service.impl;
import com.itn.admin.agent.client.five.mapper.AgentCFiveMapper;
import com.itn.admin.agent.client.five.mapper.domain.AgentCFiveVO;
import com.itn.admin.agent.client.five.service.AgentCFiveService;
import com.itn.admin.cmn.msg.RestResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class AgentCFiveServiceImpl implements AgentCFiveService {
@Autowired
AgentCFiveMapper agentCFiveMapper;
@Override
public RestResponse findByInsertCnt(AgentCFiveVO agentCFiveVO) {
int cnt = agentCFiveMapper.findByInsertCnt(agentCFiveVO);
return new RestResponse(HttpStatus.OK,"", cnt);
}
@Override
public RestResponse findByRequestDateWhereMessageFromLog(AgentCFiveVO agentCFiveVO) {
String cnt = agentCFiveMapper.findByRequestDateWhereMessageFromLog(agentCFiveVO);
return new RestResponse(HttpStatus.OK,"", cnt);
}
@Override
public RestResponse findByReportLog(AgentCFiveVO agentCFiveVO) {
return new RestResponse(HttpStatus.OK,"", agentCFiveMapper.findByReportLog(agentCFiveVO));
}
}

View File

@ -1,58 +0,0 @@
package com.itn.admin.agent.client.five.web;
import com.itn.admin.agent.client.five.mapper.domain.AgentCFiveVO;
import com.itn.admin.agent.client.five.service.AgentCFiveService;
import com.itn.admin.agent.client.four.mapper.domain.AgentCFourVO;
import com.itn.admin.cmn.msg.RestResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class AgentCFiveRestController {
private AgentCFiveService agentCFiveService;
private final String UPLOAD_DIR = "/home/mjon_client_agent_2/mmsfile";
@Autowired
public void setAgentService(AgentCFiveService agentCFiveService) {
this.agentCFiveService = agentCFiveService;
}
/*
* client db에 insert 됐는지 확인 count
* */
@GetMapping("/agent/five/findByInsertCnt")
public ResponseEntity<RestResponse> findByInsertCnt(@RequestParam String message) throws Exception {
AgentCFiveVO agentCFiveVO = new AgentCFiveVO();
agentCFiveVO.setMessage(message);
return ResponseEntity.ok().body(agentCFiveService.findByInsertCnt(agentCFiveVO));
}
/*
* client db에 최초 insert된 시간
* */
@GetMapping("/agent/five/findByRequestDateWhereMessageFromLog")
public ResponseEntity<RestResponse> findByRequestDateWhereMessageFromLog(@RequestParam String message) throws Exception {
AgentCFiveVO agentCFiveVO = new AgentCFiveVO();
agentCFiveVO.setMessage(message);
return ResponseEntity.ok().body(agentCFiveService.findByRequestDateWhereMessageFromLog(agentCFiveVO));
}
/*
* client db에 report한 시간
* */
@GetMapping("/agent/five/findByReportLog")
public ResponseEntity<RestResponse> findByReportLog(@RequestParam String message) throws Exception {
AgentCFiveVO agentCFiveVO = new AgentCFiveVO();
agentCFiveVO.setMessage(message);
return ResponseEntity.ok().body(agentCFiveService.findByReportLog(agentCFiveVO));
}
}

View File

@ -1,45 +0,0 @@
package com.itn.admin.agent.client.four.mapper;
import com.itn.admin.agent.client.four.mapper.domain.AgentCFourVO;
import com.itn.admin.agent.client.one.mapper.domain.AgentCOneVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
/**
* packageName : com.itn.admin.agent.client.three.mapper
* fileName : AgentCThreeMapper
* author : hylee
* date : 2024-09-20
* description :
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------$------------------------------
* 2024-09-20 hylee 최초 생성
*/
@Mapper
public interface AgentCFourMapper {
@Select(
"SELECT count(*) " +
"FROM MUNJAON_MSG " +
"WHERE MESSAGE LIKE CONCAT(#{message}, '%') "
)
int findByInsertCnt(AgentCFourVO agentCFourVO);
@Select("SELECT min(REQUEST_DATE) as requestDate " +
"FROM MUNJAON_MSG_LOG " +
"WHERE MESSAGE LIKE CONCAT(#{message}, '%')")
String findByRequestDateWhereMessageFromLog(AgentCFourVO agentCFourVO);
@Select("""
SELECT
COUNT(*) AS reportCnt, -- ' 카운트',
MIN(REPORT_DATE) AS minReportDate, -- '가장 빠른 REPORT_DATE',
MAX(REPORT_DATE) AS maxReportDate -- '가장 늦은 REPORT_DATE'
FROM
MUNJAON_MSG_LOG
WHERE
MESSAGE LIKE CONCAT(#{message}, '%')
""")
AgentCFourVO findByReportLog(AgentCFourVO agentCFourVO);
}

View File

@ -1,58 +0,0 @@
package com.itn.admin.agent.client.four.mapper.domain;
import lombok.*;
import java.io.Serializable;
/**
* packageName : com.itn.admin.agent.client.three.mapper.domain
* fileName : AgentCThreeVO
* author : hylee
* date : 2024-07-31
* description : 에이젼트 테스트발송
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 2023-05-09 hylee 최초 생성
*/
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Getter
@Setter
@ToString
public class AgentCFourVO implements Serializable {
private static final long serialVersionUID = 1L;
private int msgId; // int unsigned
private String msgType;
private String sendStatus;
private String requestSate;
private String recvPhone;
private String sendPhone;
private String subject;
private String message;
private String sendCnt;
private String fileName01;
private String fileName02;
private String fileName03;
private String requestDate; // datetime
private String telecom; // varchar(7)
private String agentCode; // varchar(5)
private String kakaoSenderKey; // varchar(40)
private String kakaoTemplateCode; // varchar(64)
private String kakaoJsonFile; // varchar(100)
private String deliverDate; // datetime
private String sentDate; // datetime
private String reportDate; // datetime
private String cnt;
private String reportCnt;
private String minReportDate;
private String maxReportDate;
}

View File

@ -1,13 +0,0 @@
package com.itn.admin.agent.client.four.service;
import com.itn.admin.agent.client.four.mapper.domain.AgentCFourVO;
import com.itn.admin.cmn.msg.RestResponse;
public interface AgentCFourService {
RestResponse findByInsertCnt(AgentCFourVO agentCFourVO);
RestResponse findByRequestDateWhereMessageFromLog(AgentCFourVO agentCFourVO);
RestResponse findByReportLog(AgentCFourVO agentCFourVO);
}

View File

@ -1,37 +0,0 @@
package com.itn.admin.agent.client.four.service.impl;
import com.itn.admin.agent.client.four.mapper.AgentCFourMapper;
import com.itn.admin.agent.client.four.mapper.domain.AgentCFourVO;
import com.itn.admin.agent.client.four.service.AgentCFourService;
import com.itn.admin.cmn.msg.RestResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class AgentCFourServiceImpl implements AgentCFourService {
@Autowired
AgentCFourMapper agentCFourMapper;
@Override
public RestResponse findByInsertCnt(AgentCFourVO agentCFourVO) {
int cnt = agentCFourMapper.findByInsertCnt(agentCFourVO);
return new RestResponse(HttpStatus.OK,"", cnt);
}
@Override
public RestResponse findByRequestDateWhereMessageFromLog(AgentCFourVO agentCFourVO) {
String cnt = agentCFourMapper.findByRequestDateWhereMessageFromLog(agentCFourVO);
return new RestResponse(HttpStatus.OK,"", cnt);
}
@Override
public RestResponse findByReportLog(AgentCFourVO agentCFourVO) {
return new RestResponse(HttpStatus.OK,"", agentCFourMapper.findByReportLog(agentCFourVO));
}
}

View File

@ -1,58 +0,0 @@
package com.itn.admin.agent.client.four.web;
import com.itn.admin.agent.client.four.mapper.domain.AgentCFourVO;
import com.itn.admin.agent.client.four.service.AgentCFourService;
import com.itn.admin.agent.client.three.mapper.domain.AgentCThreeVO;
import com.itn.admin.cmn.msg.RestResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class AgentCFourRestController {
private AgentCFourService agentCFourService;
private final String UPLOAD_DIR = "/home/mjon_client_agent_2/mmsfile";
@Autowired
public void setAgentService(AgentCFourService agentCFourService) {
this.agentCFourService = agentCFourService;
}
/*
* client db에 insert 됐는지 확인 count
* */
@GetMapping("/agent/four/findByInsertCnt")
public ResponseEntity<RestResponse> findByInsertCnt(@RequestParam String message) throws Exception {
AgentCFourVO agentCFourVO = new AgentCFourVO();
agentCFourVO.setMessage(message);
return ResponseEntity.ok().body(agentCFourService.findByInsertCnt(agentCFourVO));
}
/*
* client db에 최초 insert된 시간
* */
@GetMapping("/agent/four/findByRequestDateWhereMessageFromLog")
public ResponseEntity<RestResponse> findByRequestDateWhereMessageFromLog(@RequestParam String message) throws Exception {
AgentCFourVO agentCFourVO = new AgentCFourVO();
agentCFourVO.setMessage(message);
return ResponseEntity.ok().body(agentCFourService.findByRequestDateWhereMessageFromLog(agentCFourVO));
}
/*
* client db에 report한 시간
* */
@GetMapping("/agent/four/findByReportLog")
public ResponseEntity<RestResponse> findByReportLog(@RequestParam String message) throws Exception {
AgentCFourVO agentCFourVO = new AgentCFourVO();
agentCFourVO.setMessage(message);
return ResponseEntity.ok().body(agentCFourService.findByReportLog(agentCFourVO));
}
}

View File

@ -1,45 +0,0 @@
package com.itn.admin.agent.client.three.mapper;
import com.itn.admin.agent.client.three.mapper.domain.AgentCThreeVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
/**
* packageName : com.itn.admin.agent.client.three.mapper
* fileName : AgentCThreeMapper
* author : hylee
* date : 2024-09-20
* description :
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------$------------------------------
* 2024-09-20 hylee 최초 생성
*/
@Mapper
public interface AgentCThreeMapper {
@Select(
"SELECT count(*) " +
"FROM MUNJAON_MSG " +
"WHERE MESSAGE LIKE CONCAT(#{message}, '%') "
)
int findByInsertCnt(AgentCThreeVO agentCFourVO);
@Select("SELECT min(REQUEST_DATE) as requestDate " +
"FROM MUNJAON_MSG_LOG " +
"WHERE MESSAGE LIKE CONCAT(#{message}, '%')")
String findByRequestDateWhereMessageFromLog(AgentCThreeVO agentCFourVO);
@Select("""
SELECT
COUNT(*) AS reportCnt, -- ' 카운트',
MIN(REPORT_DATE) AS minReportDate, -- '가장 빠른 REPORT_DATE',
MAX(REPORT_DATE) AS maxReportDate -- '가장 늦은 REPORT_DATE'
FROM
MUNJAON_MSG_LOG
WHERE
MESSAGE LIKE CONCAT(#{message}, '%')
""")
AgentCThreeVO findByReportLog(AgentCThreeVO agentCThreeVO);
}

View File

@ -1,58 +0,0 @@
package com.itn.admin.agent.client.three.mapper.domain;
import lombok.*;
import java.io.Serializable;
/**
* packageName : com.itn.admin.agent.client.three.mapper.domain
* fileName : AgentCThreeVO
* author : hylee
* date : 2024-07-31
* description : 에이젼트 테스트발송
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 2023-05-09 hylee 최초 생성
*/
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Getter
@Setter
@ToString
public class AgentCThreeVO implements Serializable {
private static final long serialVersionUID = 1L;
private int msgId; // int unsigned
private String msgType;
private String sendStatus;
private String requestSate;
private String recvPhone;
private String sendPhone;
private String subject;
private String message;
private String sendCnt;
private String fileName01;
private String fileName02;
private String fileName03;
private String requestDate; // datetime
private String telecom; // varchar(7)
private String agentCode; // varchar(5)
private String kakaoSenderKey; // varchar(40)
private String kakaoTemplateCode; // varchar(64)
private String kakaoJsonFile; // varchar(100)
private String deliverDate; // datetime
private String sentDate; // datetime
private String reportDate; // datetime
private String cnt;
private String reportCnt;
private String minReportDate;
private String maxReportDate;
}

View File

@ -1,13 +0,0 @@
package com.itn.admin.agent.client.three.service;
import com.itn.admin.agent.client.three.mapper.domain.AgentCThreeVO;
import com.itn.admin.cmn.msg.RestResponse;
public interface AgentCThreeService {
RestResponse findByInsertCnt(AgentCThreeVO agentCFourVO);
RestResponse findByRequestDateWhereMessageFromLog(AgentCThreeVO agentCFourVO);
RestResponse findByReportLog(AgentCThreeVO agentCThreeVO);
}

View File

@ -1,38 +0,0 @@
package com.itn.admin.agent.client.three.service.impl;
import com.itn.admin.agent.client.three.mapper.AgentCThreeMapper;
import com.itn.admin.agent.client.three.mapper.domain.AgentCThreeVO;
import com.itn.admin.agent.client.three.service.AgentCThreeService;
import com.itn.admin.cmn.msg.RestResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class AgentCThreeServiceImpl implements AgentCThreeService {
@Autowired
AgentCThreeMapper agentCThreeMapper;
@Override
public RestResponse findByInsertCnt(AgentCThreeVO agentCThreeVO) {
int cnt = agentCThreeMapper.findByInsertCnt(agentCThreeVO);
return new RestResponse(HttpStatus.OK,"", cnt);
}
@Override
public RestResponse findByRequestDateWhereMessageFromLog(AgentCThreeVO agentCThreeVO) {
String requestDateText = agentCThreeMapper.findByRequestDateWhereMessageFromLog(agentCThreeVO);
return new RestResponse(HttpStatus.OK,"", requestDateText);
}
@Override
public RestResponse findByReportLog(AgentCThreeVO agentCThreeVO) {
return new RestResponse(HttpStatus.OK,"", agentCThreeMapper.findByReportLog(agentCThreeVO));
}
}

View File

@ -1,56 +0,0 @@
package com.itn.admin.agent.client.three.web;
import com.itn.admin.agent.client.one.mapper.domain.AgentCOneVO;
import com.itn.admin.agent.client.three.mapper.domain.AgentCThreeVO;
import com.itn.admin.agent.client.three.service.AgentCThreeService;
import com.itn.admin.cmn.msg.RestResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.GetMapping;
@RestController
public class AgentCThreeRestController {
private AgentCThreeService agentCThreeService;
private final String UPLOAD_DIR = "/home/mjon_client_agent_2/mmsfile";
@Autowired
public void setAgentService(AgentCThreeService agentCThreeService) {
this.agentCThreeService = agentCThreeService;
}
/*
* client db에 insert 됐는지 확인 count
* */
@GetMapping("/agent/three/findByInsertCnt")
public ResponseEntity<RestResponse> findByInsertCnt(@RequestParam String message) throws Exception {
AgentCThreeVO agentCThreeVO = new AgentCThreeVO();
agentCThreeVO.setMessage(message);
return ResponseEntity.ok().body(agentCThreeService.findByInsertCnt(agentCThreeVO));
}
/*
* client db에 최초 insert된 시간
* */
@GetMapping("/agent/three/findByRequestDateWhereMessageFromLog")
public ResponseEntity<RestResponse> findByRequestDateWhereMessageFromLog(@RequestParam String message) throws Exception {
AgentCThreeVO agentCThreeVO = new AgentCThreeVO();
agentCThreeVO.setMessage(message);
return ResponseEntity.ok().body(agentCThreeService.findByRequestDateWhereMessageFromLog(agentCThreeVO));
}
/*
* client db에 report한 시간
* */
@GetMapping("/agent/three/findByReportLog")
public ResponseEntity<RestResponse> findByReportLog(@RequestParam String message) throws Exception {
AgentCThreeVO agentCThreeVO = new AgentCThreeVO();
agentCThreeVO.setMessage(message);
return ResponseEntity.ok().body(agentCThreeService.findByReportLog(agentCThreeVO));
}
}

View File

@ -33,33 +33,52 @@ public class ItnCommuteServiceImpl implements ItnCommuteService {
// controller에 return
Map<String, Object> map = new HashMap<String, Object>();
List<ItnCommuteBackVO> resultList = itnCommuteMapper.findAll(itnCommuteBackVO);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss"); // 시간 형식 패턴
List<ItnCommuteBackVO> resultList = itnCommuteMapper.findAll(itnCommuteBackVO);
for (ItnCommuteBackVO result : resultList) {
// 출근 시간에 랜덤 추가
if(StringUtils.isEmpty(result.getCommuteStartTime()))
if("-".equals(result.getCommuteStartTime()))
continue;
String startTimeStr = result.getCommuteStartTime();
LocalTime startTime = LocalTime.parse(startTimeStr, formatter); // String을 LocalTime으로 변환
LocalTime randomStartTime = startTime.withSecond(random.nextInt(59) + 1); // 01 ~ 59 사이의 랜덤
result.setCommuteStartTime(randomStartTime.format(formatter)); // 다시 String으로 변환하여 설정
System.out.println("Random Start Time: " + randomStartTime.format(formatter));
result.setCommuteStartTime(this.addSeconds(startTimeStr));
// 퇴근 시간에 랜덤 추가
String endTimeStr = result.getCommuteEndTime();
LocalTime endTime = LocalTime.parse(endTimeStr, formatter); // String을 LocalTime으로 변환
LocalTime randomEndTime = endTime.withSecond(random.nextInt(59) + 1); // 01 ~ 59 사이의 랜덤
result.setCommuteEndTime(randomEndTime.format(formatter)); // 다시 String으로 변환하여 설정
System.out.println("Random End Time: " + randomEndTime.format(formatter));
result.setCommuteEndTime(this.addSeconds(endTimeStr));
System.out.println("==");
}
map.put("resultList", resultList);
return map;
}
private String addSeconds(String startTimeStr) {
// 랜덤 초를 생성하기 위한 Random 객체
Random random = new Random();
// 시간 형식 지정 (입력 형식: HH:mm, 출력 형식: HH:mm:ss)
DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("HH:mm");
DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("HH:mm:ss");
// 문자열을 LocalTime으로 파싱
LocalTime startTime = LocalTime.parse(startTimeStr, inputFormatter);
// 랜덤 (1~59) 생성
int randomSecond = random.nextInt(59) + 1;
// 랜덤 초를 추가한 새로운 시간 생성
LocalTime randomStartTime = startTime.withSecond(randomSecond);
// 최종 결과를 HH:mm:ss 형식의 문자열로 변환
String resultTimeStr = randomStartTime.format(outputFormatter);
return resultTimeStr;
}
}