From db220dd7b0a176f4f4576c8eb2c17c9369fe7a19 Mon Sep 17 00:00:00 2001 From: "hehihoho3@gmail.com" Date: Tue, 29 Oct 2024 15:48:55 +0900 Subject: [PATCH] =?UTF-8?q?DB=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/itn/admin/ItnAdminApplication.java | 2 + .../client/four/mapper/AgentCFourMapper.java | 2 +- .../three/mapper/AgentCThreeMapper.java | 2 +- .../itn/commute/mapper/ItnCommuteMapper.java | 23 +++ .../commute/mapper/domain/ItnCommuteVO.java | 26 +++ .../commute/service/ItnCommuteService.java | 12 ++ .../service/impl/ItnCommuteServiceImpl.java | 65 ++++++ .../itn/commute/web/ItnCommuteController.java | 64 ++++++ src/main/resources/application.properties | 9 +- .../mapper/itn/commute/CommuteMapper.xml | 28 +++ src/main/resources/mybatis-config.xml | 1 + .../resources/templates/commute/list.html | 8 +- .../templates/fragments/mainsidebar.html | 9 + .../resources/templates/itn/commute/list.html | 190 ++++++++++++++++++ 14 files changed, 431 insertions(+), 10 deletions(-) create mode 100644 src/main/java/com/itn/admin/itn/commute/mapper/ItnCommuteMapper.java create mode 100644 src/main/java/com/itn/admin/itn/commute/mapper/domain/ItnCommuteVO.java create mode 100644 src/main/java/com/itn/admin/itn/commute/service/ItnCommuteService.java create mode 100644 src/main/java/com/itn/admin/itn/commute/service/impl/ItnCommuteServiceImpl.java create mode 100644 src/main/java/com/itn/admin/itn/commute/web/ItnCommuteController.java create mode 100644 src/main/resources/mapper/itn/commute/CommuteMapper.xml create mode 100644 src/main/resources/templates/itn/commute/list.html diff --git a/src/main/java/com/itn/admin/ItnAdminApplication.java b/src/main/java/com/itn/admin/ItnAdminApplication.java index ebe399a..78d7ef9 100644 --- a/src/main/java/com/itn/admin/ItnAdminApplication.java +++ b/src/main/java/com/itn/admin/ItnAdminApplication.java @@ -1,5 +1,6 @@ package com.itn.admin; +import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration; @@ -10,6 +11,7 @@ import org.springframework.scheduling.annotation.EnableScheduling; @EnableScheduling @SpringBootApplication +@MapperScan("com.itn.admin.itn.commute.mapper") // 패키지 경로를 정확히 지정 //@SpringBootApplication(exclude = SecurityAutoConfiguration.class) public class ItnAdminApplication { diff --git a/src/main/java/com/itn/admin/agent/client/four/mapper/AgentCFourMapper.java b/src/main/java/com/itn/admin/agent/client/four/mapper/AgentCFourMapper.java index 81f9f7a..0956b66 100644 --- a/src/main/java/com/itn/admin/agent/client/four/mapper/AgentCFourMapper.java +++ b/src/main/java/com/itn/admin/agent/client/four/mapper/AgentCFourMapper.java @@ -31,7 +31,7 @@ public interface AgentCFourMapper { String findByRequestDateWhereMessageFromLog(AgentCFourVO agentCFourVO); @Select(""" - + SELECT COUNT(*) AS reportCnt, -- '총 카운트', MIN(REPORT_DATE) AS minReportDate, -- '가장 빠른 REPORT_DATE', diff --git a/src/main/java/com/itn/admin/agent/client/three/mapper/AgentCThreeMapper.java b/src/main/java/com/itn/admin/agent/client/three/mapper/AgentCThreeMapper.java index e5af211..355465a 100644 --- a/src/main/java/com/itn/admin/agent/client/three/mapper/AgentCThreeMapper.java +++ b/src/main/java/com/itn/admin/agent/client/three/mapper/AgentCThreeMapper.java @@ -31,7 +31,7 @@ public interface AgentCThreeMapper { String findByRequestDateWhereMessageFromLog(AgentCThreeVO agentCFourVO); @Select(""" - + SELECT COUNT(*) AS reportCnt, -- '총 카운트', MIN(REPORT_DATE) AS minReportDate, -- '가장 빠른 REPORT_DATE', diff --git a/src/main/java/com/itn/admin/itn/commute/mapper/ItnCommuteMapper.java b/src/main/java/com/itn/admin/itn/commute/mapper/ItnCommuteMapper.java new file mode 100644 index 0000000..9eda445 --- /dev/null +++ b/src/main/java/com/itn/admin/itn/commute/mapper/ItnCommuteMapper.java @@ -0,0 +1,23 @@ +package com.itn.admin.itn.commute.mapper; + +import com.itn.admin.itn.commute.mapper.domain.ItnCommuteVO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * packageName : com.itn.mjonApi.mjon.api.send.mapper.domain + * fileName : SendMapper + * author : hylee + * date : 2023-05-19 + * description : + * =========================================================== + * DATE AUTHOR NOTE + * ----------------------------------------------------------- + * 2023-05-19 hylee 최초 생성 + */ +@Mapper +public interface ItnCommuteMapper { + + List findAll(ItnCommuteVO itnCommuteVO); +} diff --git a/src/main/java/com/itn/admin/itn/commute/mapper/domain/ItnCommuteVO.java b/src/main/java/com/itn/admin/itn/commute/mapper/domain/ItnCommuteVO.java new file mode 100644 index 0000000..266766d --- /dev/null +++ b/src/main/java/com/itn/admin/itn/commute/mapper/domain/ItnCommuteVO.java @@ -0,0 +1,26 @@ +package com.itn.admin.itn.commute.mapper.domain; + +import lombok.*; + +import java.io.Serializable; + +@NoArgsConstructor +@AllArgsConstructor +@Builder +@Getter +@Setter +@ToString +public class ItnCommuteVO implements Serializable { + + private static final long serialVersionUID = 1L; + + private String commuteId; // 아이디 + private String commuteName; // 이름 + private String commuteCategory; // 구분 + private String commuteWorkDate; // 근무일자 + private String commuteStartTime; // 출근시간 + private String commuteEndTime; // 퇴근시간 + + private String startDate; + private String endDate; +} \ No newline at end of file diff --git a/src/main/java/com/itn/admin/itn/commute/service/ItnCommuteService.java b/src/main/java/com/itn/admin/itn/commute/service/ItnCommuteService.java new file mode 100644 index 0000000..6e15da4 --- /dev/null +++ b/src/main/java/com/itn/admin/itn/commute/service/ItnCommuteService.java @@ -0,0 +1,12 @@ +package com.itn.admin.itn.commute.service; + +import com.itn.admin.itn.commute.mapper.domain.ItnCommuteVO; + +import java.util.Map; + + +public interface ItnCommuteService { + + + Map getList(ItnCommuteVO itnCommuteVO); +} diff --git a/src/main/java/com/itn/admin/itn/commute/service/impl/ItnCommuteServiceImpl.java b/src/main/java/com/itn/admin/itn/commute/service/impl/ItnCommuteServiceImpl.java new file mode 100644 index 0000000..ca0dfc0 --- /dev/null +++ b/src/main/java/com/itn/admin/itn/commute/service/impl/ItnCommuteServiceImpl.java @@ -0,0 +1,65 @@ +package com.itn.admin.itn.commute.service.impl; + +import com.itn.admin.itn.commute.mapper.ItnCommuteMapper; +import com.itn.admin.itn.commute.mapper.domain.ItnCommuteVO; +import com.itn.admin.itn.commute.service.ItnCommuteService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.thymeleaf.util.StringUtils; + +import java.time.LocalTime; +import java.time.format.DateTimeFormatter; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Random; + + +@Slf4j +@Service +public class ItnCommuteServiceImpl implements ItnCommuteService { + + + @Autowired + ItnCommuteMapper itnCommuteMapper; + + private static final int PAGE_SIZE = 5; + + public Map getList(ItnCommuteVO itnCommuteVO) { + + + Random random = new Random(); // Random 객체 생성 + // controller에 return + Map map = new HashMap(); + + List resultList = itnCommuteMapper.findAll(itnCommuteVO); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss"); // 시간 형식 패턴 + + for (ItnCommuteVO result : resultList) { + // 출근 시간에 랜덤 초 추가 + if(StringUtils.isEmpty(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)); + + // 퇴근 시간에 랜덤 초 추가 + 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)); + + System.out.println("=="); + } + + map.put("resultList", resultList); + return map; + } + + +} diff --git a/src/main/java/com/itn/admin/itn/commute/web/ItnCommuteController.java b/src/main/java/com/itn/admin/itn/commute/web/ItnCommuteController.java new file mode 100644 index 0000000..0d92924 --- /dev/null +++ b/src/main/java/com/itn/admin/itn/commute/web/ItnCommuteController.java @@ -0,0 +1,64 @@ +package com.itn.admin.itn.commute.web; + +import com.itn.admin.itn.commute.mapper.domain.ItnCommuteVO; +import com.itn.admin.itn.commute.service.ItnCommuteService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.Map; + +@Controller +public class ItnCommuteController { + + private ItnCommuteService commuteService; + + @Autowired + public void setCommuteService(ItnCommuteService commuteService) { + this.commuteService = commuteService; + } + + @GetMapping(value = "/itn/commute/list") + public String list( + @RequestParam(value = "startDate", required = false) String startDate, + @RequestParam(value = "endDate", required = false) String endDate, + Model model) { + + // 기본 값 설정 (만약 값이 없으면 현재 날짜를 기준으로 설정) + if (startDate == null || endDate == null) { + startDate = "2023-01-01"; // 예시 기본값 + endDate = "2024-12-31"; // 예시 기본값 + } + + // CommuteVO 생성 + ItnCommuteVO itnCommuteVO = ItnCommuteVO.builder() + .startDate(startDate) + .endDate(endDate) + .build(); + + + Map resultMap = commuteService.getList(itnCommuteVO); + + model.addAttribute("list", resultMap.get("resultList")); + model.addAttribute("commuteVO", itnCommuteVO); + model.addAttribute("startDate", startDate); + model.addAttribute("endDate", endDate); + + return "itn/commute/list"; + } +// @GetMapping(value = "/itn/commute/list") +// public String list(@ModelAttribute("commuteVO") ItnCommuteVO itnCommuteVO, Model model) { +// +// +// Map resultMap = commuteService.getList(itnCommuteVO); +// +// model.addAttribute("list", resultMap.get("resultList")); +// model.addAttribute("commuteVO", itnCommuteVO); +// +// return "itn/commute/list"; +// } + +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index dfd71a8..524ac72 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,3 +1,4 @@ + server.port=8077 # mybatis setting @@ -46,9 +47,9 @@ spring.mjagent.client.one.datasource.password=mjagent123$ # agent client 2 spring.mjagent.client.two.userid=006star spring.mjagent.client.two.datasource.driverClassName=net.sf.log4jdbc.sql.jdbcapi.DriverSpy -spring.mjagent.client.two.datasource.jdbc-url=jdbc:log4jdbc:mysql://192.168.0.30:3306/mjonUr_agent?serverTimezone=Asia/Seoul -spring.mjagent.client.two.datasource.username=mjonAgentUr -spring.mjagent.client.two.datasource.password=mjonAgentUr!@#$ +spring.mjagent.client.two.datasource.jdbc-url=jdbc:log4jdbc:mysql://192.168.0.60:3303/mjon_agent?serverTimezone=Asia/Seoul +spring.mjagent.client.two.datasource.username=mjonUr_agent +spring.mjagent.client.two.datasource.password=mjagent123$ # agent client 3 @@ -74,7 +75,7 @@ spring.mjagent.client.five.datasource.password=mjonAgentUr!@#$ # agent server spring.mjagent.server.datasource.driverClassName=net.sf.log4jdbc.sql.jdbcapi.DriverSpy -spring.mjagent.server.datasource.jdbc-url=jdbc:log4jdbc:mysql://119.193.215.98:3306/mjon_agent_back?serverTimezone=Asia/Seoul +spring.mjagent.server.datasource.jdbc-url=jdbc:log4jdbc:mysql://192.168.0.60:3303/mjon_agent_server?serverTimezone=Asia/Seoul spring.mjagent.server.datasource.username=mjonUr_agent spring.mjagent.server.datasource.password=mjagent123$ spring.mjagent.server.datasource.hikari.minimum-idle=2 diff --git a/src/main/resources/mapper/itn/commute/CommuteMapper.xml b/src/main/resources/mapper/itn/commute/CommuteMapper.xml new file mode 100644 index 0000000..488be5b --- /dev/null +++ b/src/main/resources/mapper/itn/commute/CommuteMapper.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mybatis-config.xml b/src/main/resources/mybatis-config.xml index a4b2404..81a6f1e 100644 --- a/src/main/resources/mybatis-config.xml +++ b/src/main/resources/mybatis-config.xml @@ -25,6 +25,7 @@ + diff --git a/src/main/resources/templates/commute/list.html b/src/main/resources/templates/commute/list.html index adf8b44..0e343f1 100644 --- a/src/main/resources/templates/commute/list.html +++ b/src/main/resources/templates/commute/list.html @@ -70,7 +70,7 @@ + th:selected="${year.toString() == itnCommuteVO.searchYear}"> @@ -81,7 +81,7 @@ + th:selected="${month.toString() == itnCommuteVO.searchMonth}"> @@ -92,7 +92,7 @@ + th:selected="${day.toString() == itnCommuteVO.searchDay}"> @@ -112,7 +112,7 @@ - + diff --git a/src/main/resources/templates/fragments/mainsidebar.html b/src/main/resources/templates/fragments/mainsidebar.html index b15f65c..2eff239 100644 --- a/src/main/resources/templates/fragments/mainsidebar.html +++ b/src/main/resources/templates/fragments/mainsidebar.html @@ -57,6 +57,15 @@ +