diff --git a/frontend/src/modules/sysMgt/views/WorkState.vue b/frontend/src/modules/sysMgt/views/WorkState.vue
index 7a83ab4..ae0708b 100644
--- a/frontend/src/modules/sysMgt/views/WorkState.vue
+++ b/frontend/src/modules/sysMgt/views/WorkState.vue
@@ -36,9 +36,9 @@
@@ -132,8 +132,10 @@ export default {
fnSaveTxt(){
let params = {
startDate : moment(this.startDate).format('YYYY-MM-DD'),
- startTime : this.startTime,
- endTime : this.endTime,
+ startTimeT : this.startTime.HH,
+ startTimeM : this.startTime.mm,
+ endTimeT : this.endTime.HH,
+ endTimeM : this.endTime.mm,
state : this.state,
}
sysMgtApi.setWorkState(params);
diff --git a/src/main/java/kr/co/uplus/ez/api/comm/FileServiceImpl.java b/src/main/java/kr/co/uplus/ez/api/comm/FileServiceImpl.java
new file mode 100644
index 0000000..728d8b9
--- /dev/null
+++ b/src/main/java/kr/co/uplus/ez/api/comm/FileServiceImpl.java
@@ -0,0 +1,105 @@
+package kr.co.uplus.ez.api.comm;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.StandardCopyOption;
+import java.util.stream.Stream;
+
+import org.springframework.core.io.Resource;
+import org.springframework.core.io.UrlResource;
+import org.springframework.stereotype.Service;
+import org.springframework.util.FileSystemUtils;
+import org.springframework.web.multipart.MultipartFile;
+
+import kr.co.uplus.ez.api.comm.FileService;
+
+@Service
+public class FileServiceImpl implements FileService {
+ // @Value("${spring.servlet.multipart.location}")
+ private String uploadPath = "/efs/admin";
+
+ @Override
+ public void init() {
+ try {
+ Files.createDirectories(Paths.get(uploadPath));
+
+ } catch (IOException e) {
+ throw new RuntimeException("폴더 생성 실패");
+ }
+ }
+
+ @Override
+ public void store(MultipartFile file) {
+ try {
+ if (file.isEmpty()) {
+ throw new Exception("빈 파일입니다.");
+ }
+
+ Path root = Paths.get(uploadPath);
+
+ if (!Files.exists(root)) {
+ init();
+ }
+
+ try (InputStream inputStream = file.getInputStream()) {
+ Files.copy(inputStream, root.resolve(
+ file.getOriginalFilename()), StandardCopyOption.REPLACE_EXISTING
+ );
+
+ } catch (Exception e) {
+ throw new RuntimeException("파일을 저장할 수 없습니다. Error: " + e.getMessage());
+ }
+
+ } catch (Exception e) {
+ throw new RuntimeException("파일을 저장할 수 없습니다. Error: " + e.getMessage());
+ }
+ }
+
+ @Override
+ public Stream
loadAll() {
+ try {
+ Path root = Paths.get(uploadPath);
+ return Files.walk(root, 1).filter(path -> !path.equals(root));
+
+ } catch (IOException e) {
+ throw new RuntimeException("파일 읽기 실패", e);
+ }
+ }
+
+ @Override
+ public Path load(String filename) {
+ return Paths.get(uploadPath).resolve(filename);
+ }
+
+ @Override
+ public Resource loadAsResource(String filename) {
+ try {
+ Path file = load(filename);
+ Resource resource = new UrlResource(file.toUri());
+
+ if (resource.exists() || resource.isReadable()) {
+ return resource;
+
+ } else {
+ throw new RuntimeException("파일을 읽을 수 없습니다. : " + filename);
+ }
+
+ } catch (MalformedURLException e) {
+ throw new RuntimeException("파일을 읽을 수 없습니다. : " + filename, e);
+ }
+ }
+
+ @Override
+ public void deleteAll() {
+ FileSystemUtils.deleteRecursively(Paths.get(uploadPath).toFile());
+ }
+
+ @Override
+ public void deleteFile(String filename) {
+ FileSystemUtils.deleteRecursively(Paths.get(uploadPath + "\\" + filename).toFile());
+ }
+}
diff --git a/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtController.java b/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtController.java
index d29774d..b239ce8 100644
--- a/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtController.java
+++ b/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtController.java
@@ -428,7 +428,7 @@ public class SysMgtController {
@RequestMapping(value = "/setWorkState", method = {RequestMethod.POST})
@ResponseBody
- public SetWorkStateResDto setWorkState(@RequestBody @Valid Object setWorkParam, BindingResult bindingResult) {
+ public SetWorkStateResDto setWorkState(@RequestBody @Valid SetWorkStateReqDto setWorkParam, BindingResult bindingResult) {
if (validComponents.validParameter(bindingResult)) {
return new SetWorkStateResDto(ApiResponseCode.CM_PARAMETER_ERROR);
diff --git a/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtService.java b/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtService.java
index f854fef..9723d83 100644
--- a/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtService.java
+++ b/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtService.java
@@ -15,8 +15,13 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -38,6 +43,9 @@ public class SysMgtService {
@Autowired
FileService fileService;
+
+ // 파일위치
+ @Value("${hubeasy_file_info.work-location}") private String dirWorkState;
/**
* date : 2022. 4. 25.
@@ -530,12 +538,54 @@ public class SysMgtService {
return new NotiListResDto(ApiResponseCode.SUCCESS, notiListRes);
}
- public SetWorkStateResDto setWorkState(Object setWorkParam) {
+ public SetWorkStateResDto setWorkState(SetWorkStateReqDto setWorkParam) {
+
+ File file = new File("C:\\efs\\home\\workState\\workStatefile.txt");
+
+ String[] workParamArr = setWorkParam.getStartDate().split("-");
+
+ String year = "";
+ String month = "";
+ String day = "";
+
+ //1.파일 값 셋팅
+ String setWorkState = "";
+
+ setWorkState += setWorkParam.getState() + "@";
+ setWorkState += workParamArr[0] + "@";
+ setWorkState += workParamArr[1] + "@";
+ setWorkState += workParamArr[2] + "@";
+ setWorkState += setWorkParam.getStartTimeT() + "@";
+ setWorkState += setWorkParam.getStartTimeM() + "@";
+ setWorkState += setWorkParam.getEndTimeT() + "@";
+ setWorkState += setWorkParam.getEndTimeM();
+
+
+ try {
+ //1. workState 파일이 없다면? 만들어라
+ if(!file.exists()) {
+ file.createNewFile();
+ }
+
+ //2. Buffer를 사용해서 File에 write할 수 있는 BufferedWriter 생성
+ FileWriter fw = new FileWriter(file);
+ BufferedWriter writer = new BufferedWriter(fw);
+
+ logger.debug("setWorkString={}",setWorkState);
+
+ //3. 파일에 쓰기
+ writer.write(setWorkState);
+
+ //4. Buffer
+ writer.close();
+
+
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
logger.debug("setWorkParam={}",setWorkParam);
-
-
return new SetWorkStateResDto(ApiResponseCode.SUCCESS);
}
-
}
diff --git a/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/SetWorkStateReqDto.java b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/SetWorkStateReqDto.java
new file mode 100644
index 0000000..15e409b
--- /dev/null
+++ b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/SetWorkStateReqDto.java
@@ -0,0 +1,14 @@
+package kr.co.uplus.ez.api.sysMgt.dto;
+
+import lombok.Data;
+
+@Data
+public class SetWorkStateReqDto {
+
+ String startDate;
+ String startTimeT;
+ String startTimeM;
+ String endTimeT;
+ String endTimeM;
+ String state;
+}