From c52c72b078e4ef69a1b4ad8c74aabc6cece77087 Mon Sep 17 00:00:00 2001 From: "DESKTOP-MAVEOS0\\lmh32" Date: Mon, 8 May 2023 18:28:25 +0900 Subject: [PATCH 01/20] =?UTF-8?q?=EC=9E=91=EC=97=85=EC=A4=91=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95=20=ED=99=94=EB=A9=B4=20=EC=B4=88=EA=B8=B0=20=EC=BB=A4?= =?UTF-8?q?=EB=B0=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/modules/sysMgt/router/index.js | 9 +- .../src/modules/sysMgt/views/WorkState.vue | 326 ++++++++++++++++++ 2 files changed, 334 insertions(+), 1 deletion(-) create mode 100644 frontend/src/modules/sysMgt/views/WorkState.vue diff --git a/frontend/src/modules/sysMgt/router/index.js b/frontend/src/modules/sysMgt/router/index.js index ce98166..2c043f3 100644 --- a/frontend/src/modules/sysMgt/router/index.js +++ b/frontend/src/modules/sysMgt/router/index.js @@ -5,6 +5,7 @@ import AuthModify from '../views/AuthModify' import BatchList from '../views/BatchList' import BatchDetail from '../views/BatchDetail' import NotiList from '../views/NotiList' +import WorkState from '../views/WorkState' export default [ { @@ -39,7 +40,7 @@ export default [ meta: { public: false } }, { - path: '/sysMgt/batchDetail/:batchId', + path: '/sysMgt/batchDetail/:batchId', component: BatchDetail, name: 'batchDetail', meta: { public: false } @@ -49,6 +50,12 @@ export default [ component: NotiList, name: 'notiList', meta: { public: false } + }, + { + path: '/sysMgt/workState', + component: WorkState, + name: 'workState', + meta: { public: false } } ] diff --git a/frontend/src/modules/sysMgt/views/WorkState.vue b/frontend/src/modules/sysMgt/views/WorkState.vue new file mode 100644 index 0000000..7851f5d --- /dev/null +++ b/frontend/src/modules/sysMgt/views/WorkState.vue @@ -0,0 +1,326 @@ + + + From 96fe1ec899ae21444bc84d1e635ec9f44b69fc95 Mon Sep 17 00:00:00 2001 From: "DESKTOP-MAVEOS0\\lmh32" Date: Tue, 9 May 2023 14:13:42 +0900 Subject: [PATCH 02/20] =?UTF-8?q?=EC=9E=91=EC=97=85=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/modules/sysMgt/views/WorkState.vue | 158 ++---------------- 1 file changed, 11 insertions(+), 147 deletions(-) diff --git a/frontend/src/modules/sysMgt/views/WorkState.vue b/frontend/src/modules/sysMgt/views/WorkState.vue index 7851f5d..b0c6c2a 100644 --- a/frontend/src/modules/sysMgt/views/WorkState.vue +++ b/frontend/src/modules/sysMgt/views/WorkState.vue @@ -26,7 +26,7 @@
- +
@@ -34,54 +34,18 @@
- +
-
- - -
-
- - -
-
- - +
+ + + +
- -
-
- -
-
- 총 {{ totalItems.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') }} 건 -
- +
@@ -98,15 +62,12 @@ :addCls="grid.addCls" > - From 081e9b8712c8a783487dda673a0422eef4b08305 Mon Sep 17 00:00:00 2001 From: "DESKTOP-MAVEOS0\\lmh32" Date: Tue, 9 May 2023 20:23:00 +0900 Subject: [PATCH 03/20] =?UTF-8?q?=EC=9E=91=EC=97=85=EC=A4=91=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95=20=EC=A7=84=ED=96=89=20=EC=A4=91=20&=20=EB=B0=B0?= =?UTF-8?q?=EC=B9=98=20=EB=AA=A8=EB=8B=88=ED=84=B0=EB=A7=81=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/modules/sysMgt/router/index.js | 2 +- .../src/modules/sysMgt/service/sysMgtApi.js | 8 +- .../src/modules/sysMgt/views/BatchDetail.vue | 28 +++-- .../src/modules/sysMgt/views/BatchList.vue | 20 ++- .../src/modules/sysMgt/views/WorkState.vue | 117 +++++++----------- .../uplus/ez/api/sysMgt/SysMgtController.java | 82 +++++------- .../ez/api/sysMgt/dto/BatchDetailReqDto.java | 6 + 7 files changed, 126 insertions(+), 137 deletions(-) diff --git a/frontend/src/modules/sysMgt/router/index.js b/frontend/src/modules/sysMgt/router/index.js index 2c043f3..7e3af13 100644 --- a/frontend/src/modules/sysMgt/router/index.js +++ b/frontend/src/modules/sysMgt/router/index.js @@ -40,7 +40,7 @@ export default [ meta: { public: false } }, { - path: '/sysMgt/batchDetail/:batchId', + path: '/sysMgt/batchDetail', component: BatchDetail, name: 'batchDetail', meta: { public: false } diff --git a/frontend/src/modules/sysMgt/service/sysMgtApi.js b/frontend/src/modules/sysMgt/service/sysMgtApi.js index 6d6059f..cb89df5 100644 --- a/frontend/src/modules/sysMgt/service/sysMgtApi.js +++ b/frontend/src/modules/sysMgt/service/sysMgtApi.js @@ -85,6 +85,11 @@ const notiList = (params) => { return httpClient.post('/api/v1/bo/sysMgt/notiList', params, { withCredentials: false }) } +const setWorkState = (params) => { + console.log("api호출",params) + return httpClient.post('/api/v1/bo/sysMgt/setWorkState', params, { withCredentials: false }) +} + export default { insertAdmin, @@ -104,5 +109,6 @@ export default { batchList, batchDetail, batchExecuteJob, - notiList + notiList, + setWorkState, } diff --git a/frontend/src/modules/sysMgt/views/BatchDetail.vue b/frontend/src/modules/sysMgt/views/BatchDetail.vue index f9f970c..76cfec0 100644 --- a/frontend/src/modules/sysMgt/views/BatchDetail.vue +++ b/frontend/src/modules/sysMgt/views/BatchDetail.vue @@ -9,7 +9,7 @@

- +

@@ -57,10 +57,9 @@
@@ -107,7 +106,7 @@ export default { name: 'batchDetail', data() { return { - //paramBatchId : this.$route.params.batchId, + paramBatchId : this.$route.params.batchId, //날짜 조회 ko: vdp_translation_ko.js, periodDay: 7, @@ -120,8 +119,9 @@ export default { pageType: 'CALC', - batchId : this.$route.params.batchId, - batchNm : this.$route.params.batchNm, + batchId : this.$route.params.props.batchId, + batchNm : this.$route.params.props.batchNm, + batchType: this.$route.params.props.batchType, //상태조회 sttusCd: '', @@ -154,6 +154,8 @@ export default { noDataStr: '검색 결과가 없습니다.', params: { batchId : '', + batchType: '', + batchNm: '', sttusCd: '', startDt: '', endDt: '', @@ -220,6 +222,8 @@ export default { startDt: moment(this.startDate).format('YYYYMMDD'), endDt: moment(this.endDate).format('YYYYMMDD'), batchId: this.batchId, + batchNm: this.batchNm, + batchType: this.batchType, sttusCd: this.sttusCd } this.$refs.table.search(this.grid.params, isKeep); @@ -291,10 +295,14 @@ export default { }, async runExecuteJob(){ + console.log("this.strDate",this.strDate) const params = { - strDate : this.strDate, - batchId : this.batchId + strDate : moment(this.strDate).format('YYYY-MM-DD'), + batchId : this.batchId, + batchType : this.batchType, + batchNm : this.batchNm, } + console.log("params",params) try { const response = await sysMgtApi.batchExecuteJob(params); diff --git a/frontend/src/modules/sysMgt/views/BatchList.vue b/frontend/src/modules/sysMgt/views/BatchList.vue index afcfd74..b6da52c 100644 --- a/frontend/src/modules/sysMgt/views/BatchList.vue +++ b/frontend/src/modules/sysMgt/views/BatchList.vue @@ -7,13 +7,21 @@
+ +
+ 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 a9ece02..73ea990 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 @@ -14,6 +14,7 @@ import kr.co.uplus.ez.common.components.ValidComponents; import kr.co.uplus.ez.common.components.WebClientRequestService; import kr.co.uplus.ez.common.data.ApiResponseCode; import kr.co.uplus.ez.common.data.Const; +import springfox.documentation.spring.web.json.Json; import org.apache.http.HttpStatus; import org.apache.http.protocol.HTTP; @@ -274,8 +275,8 @@ public class SysMgtController { /** * data: 2022. 10.24. - * auth: Lee minha - * desc: 배치 리스트 조회 + * auth: Lee + * desc: 배치 리스트 조회. * @return */ @ApiOperation(value = "batchList", notes = "배치 리스트 조회") @@ -286,9 +287,9 @@ public class SysMgtController { } /** - * data : 2022. 10. 26 - * auth : Lee minha - * desc : 배치 상세내용 + * date : 2022. 10. 26 + * auth : Lee + * desc : 배치 상세내용. * @return */ @@ -299,16 +300,21 @@ public class SysMgtController { public BatchDetailResDto batchDetail(@RequestBody @Valid BatchDetailReqDto batchDetailReqDto, BindingResult bindingResult) { + if (validComponents.validParameter(bindingResult)) { return new BatchDetailResDto(ApiResponseCode.CM_PARAMETER_ERROR); } -// batchDetailReqDto.setBatchId("BATCH_010"); - logger.debug("param 확인 : "+ batchDetailReqDto); return sysService.batchDetail(batchDetailReqDto); } + /** + * date : 2022. 10. 26 + * auth : Lee + * @param batchReqMap + * @return + */ @RequestMapping(value = "batchExecuteJob", method = {RequestMethod.POST}) @ResponseBody public BatchExeLogResDto batchExecuteJob(@RequestBody @Valid Map batchReqMap) { @@ -324,35 +330,22 @@ public class SysMgtController { String dayBatch = "yyyyMMdd"; String timeBatch = "yyyyMMddHHmmss"; + SimpleDateFormat monthDateFormat = new SimpleDateFormat(monthBatch); SimpleDateFormat dayDateFormat = new SimpleDateFormat(dayBatch); SimpleDateFormat timeDateFormat = new SimpleDateFormat(timeBatch); - - - - - + logger.info("callUrl={}",callUrl); String jobId = (String) batchReqMap.get("batchId"); + String batchType = (String) batchReqMap.get("batchType"); String strDate = (String) batchReqMap.get("strDate"); - logger.info("유입날짜 확인 {}",batchReqMap.get("strDate")); + logger.info("batchExecuteJob input Date Check = {}",batchReqMap.get("strDate")); + logger.debug("확인 batchType={}",batchType); - - - if( - //월배치일 경우 날짜 - jobId.equals("BATCH_001")|| - jobId.equals("BATCH_002")|| - jobId.equals("BATCH_004")|| - jobId.equals("BATCH_005")|| - jobId.equals("BATCH_006")|| - jobId.equals("BATCH_009")|| - jobId.equals("BATCH_011")|| - jobId.equals("BATCH_017")|| - jobId.equals("BATCH_020")) { - - + // 배치 타입 : 일배치, 월배치, 매시간 + if("월배치".equals(batchType)) { + logger.debug("월배치 batchType={}",batchType); try { Date date = new SimpleDateFormat("yyyy-MM-dd").parse(strDate); strDate = (String)monthDateFormat.format(date); @@ -360,32 +353,17 @@ public class SysMgtController { // TODO Auto-generated catch block e1.printStackTrace(); } - - } else if ( - //일배치일 경우 날짜 - jobId.equals("BATCH_003")|| - jobId.equals("BATCH_008")|| - jobId.equals("BATCH_010")|| - jobId.equals("BATCH_012")|| - jobId.equals("BATCH_013")|| - jobId.equals("BATCH_014")|| - jobId.equals("BATCH_015")|| - jobId.equals("BATCH_018")|| - jobId.equals("BATCH_019")|| - jobId.equals("BATCH_021")|| - jobId.equals("BATCH_022")|| - jobId.equals("BATCH_023")){ - + }else if("일배치".equals(batchType)) { + logger.debug("일배치 batchType={}",batchType); try { Date date = new SimpleDateFormat("yyyy-MM-dd").parse(strDate); strDate = (String)dayDateFormat.format(date); } catch (ParseException e1) { // TODO Auto-generated catch block e1.printStackTrace(); - } - - } else { - + } + }else if("매시간".equals(batchType)) { + logger.debug("매시간 batchType={}",batchType); try { Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S").parse(strDate); strDate = (String)timeDateFormat.format(date); @@ -394,7 +372,7 @@ public class SysMgtController { e1.printStackTrace(); } } - + try { jsonObject.put("strDate", strDate); @@ -449,4 +427,10 @@ public class SysMgtController { return sysService.notiList(notiListReqDto); } + @RequestMapping(value = "/setWorkState", method = {RequestMethod.POST}) + @ResponseBody + public void setWorkState(@RequestBody @Valid Object setWorkParam) { + + logger.debug("setWorkParam={}",setWorkParam); + } } diff --git a/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/BatchDetailReqDto.java b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/BatchDetailReqDto.java index 820bfe2..7b5a545 100644 --- a/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/BatchDetailReqDto.java +++ b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/BatchDetailReqDto.java @@ -15,6 +15,12 @@ public class BatchDetailReqDto implements Serializable{ //배치 아이디 private String batchId; + //배치명 + private String batchNm; + + //배치 유형 + private String batchType; + //검색 시작일 private String startDt; From 6119858d740e96dcf01f2089503683fb9ab6a31e Mon Sep 17 00:00:00 2001 From: "DESKTOP-MAVEOS0\\lmh32" Date: Wed, 10 May 2023 11:33:45 +0900 Subject: [PATCH 04/20] =?UTF-8?q?WorkState=20=EB=B7=B0=20=EB=B0=8F=20?= =?UTF-8?q?=EC=BB=A8=ED=8A=B8=EB=A1=A4=EB=9F=AC=20=EB=B0=8F=20=EC=84=9C?= =?UTF-8?q?=EB=B9=84=EC=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/modules/sysMgt/views/WorkState.vue | 9 ++------ .../kr/co/uplus/ez/api/comm/FileService.java | 18 ++++++++++++++++ .../uplus/ez/api/sysMgt/SysMgtController.java | 9 +++++--- .../co/uplus/ez/api/sysMgt/SysMgtService.java | 11 ++++++++++ .../ez/api/sysMgt/dto/SetWorkStateResDto.java | 21 +++++++++++++++++++ 5 files changed, 58 insertions(+), 10 deletions(-) create mode 100644 src/main/java/kr/co/uplus/ez/api/comm/FileService.java create mode 100644 src/main/java/kr/co/uplus/ez/api/sysMgt/dto/SetWorkStateResDto.java diff --git a/frontend/src/modules/sysMgt/views/WorkState.vue b/frontend/src/modules/sysMgt/views/WorkState.vue index 27b8ef5..7a83ab4 100644 --- a/frontend/src/modules/sysMgt/views/WorkState.vue +++ b/frontend/src/modules/sysMgt/views/WorkState.vue @@ -110,11 +110,6 @@ export default { created() { }, destroyed() { - // this.$store.commit('dataStore/updateDataStore', ''); - this.$store.commit('searchcondition/updateSearchCondition', { - params: { - }, - }); }, mounted() { let page = 1; @@ -128,7 +123,7 @@ export default { isKeep = true; } */ - this.grid.pagePerRows = 50; + this.grid.pagePerRows = 30; page = 1; this.search(isKeep); }, @@ -136,7 +131,7 @@ export default { methods: { fnSaveTxt(){ let params = { - startDate : this.startDate, + startDate : moment(this.startDate).format('YYYY-MM-DD'), startTime : this.startTime, endTime : this.endTime, state : this.state, diff --git a/src/main/java/kr/co/uplus/ez/api/comm/FileService.java b/src/main/java/kr/co/uplus/ez/api/comm/FileService.java new file mode 100644 index 0000000..a67a3c3 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/comm/FileService.java @@ -0,0 +1,18 @@ +package kr.co.uplus.ez.api.comm; + +import java.nio.file.Path; +import java.util.stream.Stream; + +import org.springframework.core.io.Resource; +import org.springframework.web.multipart.MultipartFile; + +public interface FileService { + + void init(); + void store(MultipartFile file); + Stream loadAll(); + Path load(String filename); + Resource loadAsResource(String filename); + void deleteAll(); + void deleteFile(String filename); +} 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 73ea990..d29774d 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 @@ -292,7 +292,6 @@ public class SysMgtController { * desc : 배치 상세내용. * @return */ - @ApiOperation(value = "batchDetail", notes = "배치 상세내용") @ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") }) @RequestMapping(value = "batchDetail", method = {RequestMethod.POST}) @@ -429,8 +428,12 @@ public class SysMgtController { @RequestMapping(value = "/setWorkState", method = {RequestMethod.POST}) @ResponseBody - public void setWorkState(@RequestBody @Valid Object setWorkParam) { + public SetWorkStateResDto setWorkState(@RequestBody @Valid Object setWorkParam, BindingResult bindingResult) { - logger.debug("setWorkParam={}",setWorkParam); + if (validComponents.validParameter(bindingResult)) { + return new SetWorkStateResDto(ApiResponseCode.CM_PARAMETER_ERROR); + } + + return sysService.setWorkState(setWorkParam); } } 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 a05fc51..f854fef 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 @@ -1,6 +1,7 @@ package kr.co.uplus.ez.api.sysMgt; import kr.co.uplus.ez.api.calculate.dto.CalcListResDto; +import kr.co.uplus.ez.api.comm.FileService; import kr.co.uplus.ez.api.homeMgt.dto.NoticeListReqDto; import kr.co.uplus.ez.api.sysMgt.dto.*; import kr.co.uplus.ez.common.data.ApiResponseCode; @@ -34,6 +35,9 @@ public class SysMgtService { @Autowired @Qualifier("sqlSessionTemplateDb2") private SqlSessionTemplate sqlSessionSlave; + + @Autowired + FileService fileService; /** * date : 2022. 4. 25. @@ -526,5 +530,12 @@ public class SysMgtService { return new NotiListResDto(ApiResponseCode.SUCCESS, notiListRes); } + public SetWorkStateResDto setWorkState(Object setWorkParam) { + + logger.debug("setWorkParam={}",setWorkParam); + + + return new SetWorkStateResDto(ApiResponseCode.SUCCESS); + } } diff --git a/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/SetWorkStateResDto.java b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/SetWorkStateResDto.java new file mode 100644 index 0000000..c84e0ae --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/SetWorkStateResDto.java @@ -0,0 +1,21 @@ +package kr.co.uplus.ez.api.sysMgt.dto; + +import java.io.Serializable; + +import kr.co.uplus.ez.common.data.ApiResponseCode; +import kr.co.uplus.ez.common.data.ResponseMessage; + +public class SetWorkStateResDto extends ResponseMessage implements Serializable{ + + public SetWorkStateResDto() { + this.retCode = ApiResponseCode.SUCCESS.getResultCode(); + this.retMsg = ApiResponseCode.SUCCESS.getResultMsg(); + } + + public SetWorkStateResDto(ApiResponseCode returnStr) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + } + + +} From 7f6c83c61fb896384b7122f852243a7ef1f1910a Mon Sep 17 00:00:00 2001 From: "DESKTOP-MAVEOS0\\lmh32" Date: Wed, 10 May 2023 17:09:23 +0900 Subject: [PATCH 05/20] =?UTF-8?q?=EC=9E=91=EC=97=85=20=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/modules/sysMgt/views/WorkState.vue | 10 +- .../co/uplus/ez/api/comm/FileServiceImpl.java | 105 ++++++++++++++++++ .../uplus/ez/api/sysMgt/SysMgtController.java | 2 +- .../co/uplus/ez/api/sysMgt/SysMgtService.java | 58 +++++++++- .../ez/api/sysMgt/dto/SetWorkStateReqDto.java | 14 +++ 5 files changed, 180 insertions(+), 9 deletions(-) create mode 100644 src/main/java/kr/co/uplus/ez/api/comm/FileServiceImpl.java create mode 100644 src/main/java/kr/co/uplus/ez/api/sysMgt/dto/SetWorkStateReqDto.java 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; +} From 55d4685d08e51e91966f5fb0a383e39a91e0f4b7 Mon Sep 17 00:00:00 2001 From: won503 Date: Mon, 15 May 2023 11:26:12 +0900 Subject: [PATCH 06/20] =?UTF-8?q?=EC=84=9C=EB=B9=84=EC=8A=A4=20=EC=A0=90?= =?UTF-8?q?=EA=B2=80=20=EC=9D=B4=EB=A0=A5=EC=A1=B0=ED=9A=8C=20back?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/kr/co/uplus/ez/WebApplication.java | 4 +- .../uplus/ez/api/sysMgt/SysMgtController.java | 14 ++ .../co/uplus/ez/api/sysMgt/SysMgtMapper.java | 3 + .../co/uplus/ez/api/sysMgt/SysMgtService.java | 144 ++++++++++++++++++ .../uplus/ez/api/sysMgt/dto/SvcCheckList.java | 34 +++++ .../ez/api/sysMgt/dto/SvcCheckListReqDto.java | 21 +++ .../ez/api/sysMgt/dto/SvcCheckListRes.java | 17 +++ .../ez/api/sysMgt/dto/SvcCheckListResDto.java | 31 ++++ 8 files changed, 266 insertions(+), 2 deletions(-) create mode 100644 src/main/java/kr/co/uplus/ez/api/sysMgt/dto/SvcCheckList.java create mode 100644 src/main/java/kr/co/uplus/ez/api/sysMgt/dto/SvcCheckListReqDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/sysMgt/dto/SvcCheckListRes.java create mode 100644 src/main/java/kr/co/uplus/ez/api/sysMgt/dto/SvcCheckListResDto.java diff --git a/src/main/java/kr/co/uplus/ez/WebApplication.java b/src/main/java/kr/co/uplus/ez/WebApplication.java index 8a5dfd5..3803a94 100644 --- a/src/main/java/kr/co/uplus/ez/WebApplication.java +++ b/src/main/java/kr/co/uplus/ez/WebApplication.java @@ -72,7 +72,7 @@ class CheckProcess implements Runnable { long maxMemory = runtime.maxMemory() / (1024 * 1024); long usedMemory = totalMemory - freeMemory; - log.info("{} Process Monitoring : maxMemory -> {}MB, totalMemory -> {}MB, usedMemory -> {}MB, freeMemory -> {}MB, ActiveThread -> {}", - PROC_NAME, maxMemory, totalMemory, usedMemory, freeMemory, Thread.activeCount()); +// log.info("{} Process Monitoring : maxMemory -> {}MB, totalMemory -> {}MB, usedMemory -> {}MB, freeMemory -> {}MB, ActiveThread -> {}", +// PROC_NAME, maxMemory, totalMemory, usedMemory, freeMemory, Thread.activeCount()); } } \ No newline at end of file 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 b239ce8..70f0020 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 @@ -436,4 +436,18 @@ public class SysMgtController { return sysService.setWorkState(setWorkParam); } + + /** + * data: 2023. 05.09. + * auth: won + * desc: 서비스 점검 이력 조회 + * @return + */ + @ApiOperation(value = "svcCheckList", notes = "서비스 점검 이력 조회") + @RequestMapping(value = "/svcCheckList", method = {RequestMethod.POST}) + @ResponseBody + public SvcCheckListResDto svcCheckList(@RequestBody @Valid SvcCheckListReqDto svcCheckListReqDto) { + return sysService.svcCheckLists(svcCheckListReqDto); + + } } diff --git a/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtMapper.java b/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtMapper.java index cf05c72..f666967 100644 --- a/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtMapper.java +++ b/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtMapper.java @@ -4,7 +4,9 @@ import kr.co.uplus.ez.api.comm.dto.BatchChkDto; import kr.co.uplus.ez.api.homeMgt.dto.NoticeListReqDto; import kr.co.uplus.ez.api.sysMgt.dto.*; import org.apache.ibatis.annotations.Mapper; +import org.springframework.core.io.Resource; +import java.nio.file.Path; import java.util.List; import java.util.Map; @@ -56,4 +58,5 @@ public interface SysMgtMapper { public List notiListSelect(NotiListReqDto notiListReqDto); int notiListSelectCnt(NotiListReqDto notiListReqDto); + } \ No newline at end of file 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 9723d83..114270a 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 @@ -16,17 +16,26 @@ 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.core.io.Resource; +import org.springframework.core.io.UrlResource; import org.springframework.stereotype.Service; +import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; +import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; +import java.net.MalformedURLException; +import java.nio.file.Path; +import java.nio.file.Paths; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import javax.validation.Valid; + @Service @Slf4j public class SysMgtService { @@ -46,6 +55,9 @@ public class SysMgtService { // 파일위치 @Value("${hubeasy_file_info.work-location}") private String dirWorkState; + + // @Value("${spring.servlet.multipart.location}") + private String uploadPath = "/efs/admin"; /** * date : 2022. 4. 25. @@ -588,4 +600,136 @@ public class SysMgtService { logger.debug("setWorkParam={}",setWorkParam); return new SetWorkStateResDto(ApiResponseCode.SUCCESS); } + + //파일 load + public Path load(String filename) { + return Paths.get(uploadPath).resolve(filename); + } + + 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); + } + } + + /** + * data: 2023. 05.09. + * auth: won + * desc: 서비스 점검 이력 조회 + * @return + */ + public SvcCheckListResDto svcCheckLists(@Valid SvcCheckListReqDto svcCheckListReqDto) { + SysMgtMapper sysmgtmapper = sqlSessionSlave.getMapper(SysMgtMapper.class); + + String workStateData = ""; + log.debug("1번 ={}",workStateData); + String [] workStateDataArr = new String[7]; + log.info("getWorkStateCheck START =========================================="); + + //CheckList >= svcCheckList + SvcCheckListRes svcCheckListRes = new SvcCheckListRes(); + List CheckList = new ArrayList<>(); + SvcCheckList svcCheckList = new SvcCheckList(); + + String nowPage = String.valueOf(svcCheckListReqDto.getPage()); + int totalCnt = 0; +// sysmgtmapper.svcCheckListSelectCnt(svcCheckListReqDto); + + try { + //파일 읽기 + Resource file = loadAsResource(dirWorkState); + BufferedReader reader = new BufferedReader(new FileReader(file.getFile())); + StringBuilder sb = new StringBuilder(); + String line; + while ((line = reader.readLine()) != null) { + sb.append(line); + } + reader.close(); + + if(null != sb.toString() && !"".equals(sb.toString())) { + workStateData = sb.toString(); + String[] Data = workStateData.split(","); + + //항목 객체에 값 셋팅 + for (int i = 0; i < Data.length; i++) { + workStateDataArr = Data[i].split("@"); + svcCheckList.setWorkState(workStateDataArr[0]); + svcCheckList.setYear(workStateDataArr[1]); + svcCheckList.setMonth(workStateDataArr[2]); + svcCheckList.setDay(workStateDataArr[3]); + svcCheckList.setStrtHour(workStateDataArr[4]); + svcCheckList.setStrtMin(workStateDataArr[5]); + svcCheckList.setEndHour(workStateDataArr[6]); + svcCheckList.setEndMin(workStateDataArr[7]); + + String Ymd = svcCheckList.getYear()+"-"+ svcCheckList.getMonth()+"-"+ svcCheckList.getDay(); + svcCheckList.setYmd(Ymd); + String StrHd = svcCheckList.getStrtHour()+" : "+ svcCheckList.getStrtMin(); + svcCheckList.setStrHd(StrHd); + String EndHd = svcCheckList.getEndHour()+" : "+ svcCheckList.getEndMin(); + svcCheckList.setEndHd(EndHd); + log.debug("aa번 ={}",svcCheckList.getYmd()); + log.debug("aa번 ={}",svcCheckList.getStrHd()); + log.debug("aa번 ={}",svcCheckList.getEndHd()); + log.debug("2번 ={}",svcCheckList); + + } + // 리스트에 항목 추가 + CheckList.add(svcCheckList); + log.debug("4번 ={}",CheckList.add(svcCheckList)); + totalCnt = Data.length; + int page = svcCheckListReqDto.getPage(); + int pagePerRows = svcCheckListReqDto.getPagePerRows(); + page = (page - 1) * pagePerRows; + svcCheckListReqDto.setPage(page); + + } + } catch (Exception e) { + // 파일 읽기 실패 시 "USE"로 설정하고 결과 반환 + log.error("WORK STATE READ FAIL : {}",e.getMessage(), e); + svcCheckList.setWorkState("USE"); + log.debug("5번 ={}",svcCheckList.getWorkState()); + + String[] Data = workStateData.split(","); + + totalCnt = Data.length; + int page = svcCheckListReqDto.getPage(); + int pagePerRows = svcCheckListReqDto.getPagePerRows(); + page = (page - 1) * pagePerRows; + svcCheckListReqDto.setPage(page); + return new SvcCheckListResDto(ApiResponseCode.SUCCESS); + } + + if (totalCnt == 0) { + svcCheckListRes.setList(new ArrayList<>()); + Paging paging = new Paging(); + paging.setPage(nowPage); + paging.setTotalCnt(String.valueOf(totalCnt)); + svcCheckListRes.setPaging(paging); + + return new SvcCheckListResDto(ApiResponseCode.CM_NOT_FOUND, svcCheckListRes); + } + + + +// CheckList = sysmgtmapper.svcCheckListSelect(svcCheckListReqDto); + svcCheckListRes.setList(CheckList); + Paging paging = new Paging(); + paging.setPage(nowPage); + paging.setTotalCnt(String.valueOf(totalCnt)); + svcCheckListRes.setPaging(paging); + + return new SvcCheckListResDto(ApiResponseCode.SUCCESS,svcCheckListRes); + } } diff --git a/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/SvcCheckList.java b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/SvcCheckList.java new file mode 100644 index 0000000..f638763 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/SvcCheckList.java @@ -0,0 +1,34 @@ +package kr.co.uplus.ez.api.sysMgt.dto; + +import java.io.Serializable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class SvcCheckList implements Serializable{ + + @ApiModelProperty(example = "상태변경", name = "상태변경", dataType = "String") + private String workState; + @ApiModelProperty(example = "년도", name = "년도", dataType = "String") + private String year; + @ApiModelProperty(example = "월", name = "월", dataType = "String") + private String month; + @ApiModelProperty(example = "날", name = "날", dataType = "String") + private String day; + @ApiModelProperty(example = "시작시각", name = "시작시각", dataType = "String") + private String strtHour; + @ApiModelProperty(example = "시작분", name = "시작분", dataType = "String") + private String strtMin; + @ApiModelProperty(example = "종료시각", name = "종료시각", dataType = "String") + private String endHour; + @ApiModelProperty(example = "종료분", name = "종료분", dataType = "String") + private String endMin; + @ApiModelProperty(example = "날짜", name = "날짜", dataType = "String") + private String ymd; + @ApiModelProperty(example = "시작시간", name = "시작시간", dataType = "String") + private String strHd; + @ApiModelProperty(example = "종료시간", name = "종료시간", dataType = "String") + private String endHd; +} diff --git a/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/SvcCheckListReqDto.java b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/SvcCheckListReqDto.java new file mode 100644 index 0000000..f1b78cf --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/SvcCheckListReqDto.java @@ -0,0 +1,21 @@ +package kr.co.uplus.ez.api.sysMgt.dto; + +import java.io.Serializable; + +import javax.validation.constraints.NotNull; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class SvcCheckListReqDto implements Serializable{ + + @NotNull + @ApiModelProperty(example = "50", name = "페이지당 조회할 목록 수", dataType = "String") + private int pagePerRows; + + @NotNull + @ApiModelProperty(example = "1", name = "현재 페이지", dataType = "int") + private int page; +} diff --git a/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/SvcCheckListRes.java b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/SvcCheckListRes.java new file mode 100644 index 0000000..651b6f6 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/SvcCheckListRes.java @@ -0,0 +1,17 @@ +package kr.co.uplus.ez.api.sysMgt.dto; + +import java.io.Serializable; +import java.util.List; + +import javax.validation.Valid; + +import kr.co.uplus.ez.common.data.Paging; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class SvcCheckListRes implements Serializable{ + + private Paging paging; + private List list; +} diff --git a/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/SvcCheckListResDto.java b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/SvcCheckListResDto.java new file mode 100644 index 0000000..0e52946 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/SvcCheckListResDto.java @@ -0,0 +1,31 @@ +package kr.co.uplus.ez.api.sysMgt.dto; + +import java.io.Serializable; + +import kr.co.uplus.ez.common.data.ApiResponseCode; +import kr.co.uplus.ez.common.data.ResponseMessage; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class SvcCheckListResDto extends ResponseMessage implements Serializable{ + +private SvcCheckListRes data; + + public SvcCheckListResDto() { + this.retCode = ApiResponseCode.SUCCESS.getResultCode(); + this.retMsg = ApiResponseCode.SUCCESS.getResultMsg(); + } + + public SvcCheckListResDto(ApiResponseCode returnStr) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + } + + public SvcCheckListResDto(ApiResponseCode returnStr, SvcCheckListRes data) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + this.data = data; + } + +} From 8edad393dd4def8fabc67250fc89d8b814759b43 Mon Sep 17 00:00:00 2001 From: "DESKTOP-MAVEOS0\\lmh32" Date: Mon, 15 May 2023 11:28:36 +0900 Subject: [PATCH 07/20] =?UTF-8?q?=EB=A1=9C=EA=B7=B8=20=EC=9B=90=EB=B3=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/kr/co/uplus/ez/WebApplication.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/kr/co/uplus/ez/WebApplication.java b/src/main/java/kr/co/uplus/ez/WebApplication.java index 3803a94..8a5dfd5 100644 --- a/src/main/java/kr/co/uplus/ez/WebApplication.java +++ b/src/main/java/kr/co/uplus/ez/WebApplication.java @@ -72,7 +72,7 @@ class CheckProcess implements Runnable { long maxMemory = runtime.maxMemory() / (1024 * 1024); long usedMemory = totalMemory - freeMemory; -// log.info("{} Process Monitoring : maxMemory -> {}MB, totalMemory -> {}MB, usedMemory -> {}MB, freeMemory -> {}MB, ActiveThread -> {}", -// PROC_NAME, maxMemory, totalMemory, usedMemory, freeMemory, Thread.activeCount()); + log.info("{} Process Monitoring : maxMemory -> {}MB, totalMemory -> {}MB, usedMemory -> {}MB, freeMemory -> {}MB, ActiveThread -> {}", + PROC_NAME, maxMemory, totalMemory, usedMemory, freeMemory, Thread.activeCount()); } } \ No newline at end of file From 87a91f625acb19ad3bcb340bfea509e3a0c2b9d8 Mon Sep 17 00:00:00 2001 From: won503 Date: Mon, 15 May 2023 11:36:14 +0900 Subject: [PATCH 08/20] =?UTF-8?q?Resource=20file=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../co/uplus/ez/api/sysMgt/SysMgtService.java | 41 ++++--------------- 1 file changed, 8 insertions(+), 33 deletions(-) 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 114270a..0b44513 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 @@ -600,28 +600,6 @@ public class SysMgtService { logger.debug("setWorkParam={}",setWorkParam); return new SetWorkStateResDto(ApiResponseCode.SUCCESS); } - - //파일 load - public Path load(String filename) { - return Paths.get(uploadPath).resolve(filename); - } - - 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); - } - } /** * data: 2023. 05.09. @@ -648,7 +626,7 @@ public class SysMgtService { try { //파일 읽기 - Resource file = loadAsResource(dirWorkState); + Resource file = fileService.loadAsResource(dirWorkState); BufferedReader reader = new BufferedReader(new FileReader(file.getFile())); StringBuilder sb = new StringBuilder(); String line; @@ -679,21 +657,18 @@ public class SysMgtService { svcCheckList.setStrHd(StrHd); String EndHd = svcCheckList.getEndHour()+" : "+ svcCheckList.getEndMin(); svcCheckList.setEndHd(EndHd); - log.debug("aa번 ={}",svcCheckList.getYmd()); - log.debug("aa번 ={}",svcCheckList.getStrHd()); - log.debug("aa번 ={}",svcCheckList.getEndHd()); log.debug("2번 ={}",svcCheckList); - - } - // 리스트에 항목 추가 + // 리스트에 항목 추가 CheckList.add(svcCheckList); - log.debug("4번 ={}",CheckList.add(svcCheckList)); + } + + log.debug("4번 ={}",CheckList); totalCnt = Data.length; int page = svcCheckListReqDto.getPage(); int pagePerRows = svcCheckListReqDto.getPagePerRows(); page = (page - 1) * pagePerRows; svcCheckListReqDto.setPage(page); - + log.debug("22번 ={}",svcCheckList); } } catch (Exception e) { // 파일 읽기 실패 시 "USE"로 설정하고 결과 반환 @@ -702,7 +677,7 @@ public class SysMgtService { log.debug("5번 ={}",svcCheckList.getWorkState()); String[] Data = workStateData.split(","); - + log.debug("222번 ={}",svcCheckList); totalCnt = Data.length; int page = svcCheckListReqDto.getPage(); int pagePerRows = svcCheckListReqDto.getPagePerRows(); @@ -722,7 +697,7 @@ public class SysMgtService { } - + log.debug("2222번 ={}",svcCheckList); // CheckList = sysmgtmapper.svcCheckListSelect(svcCheckListReqDto); svcCheckListRes.setList(CheckList); Paging paging = new Paging(); From 5661395c94fc8b3c3882a549845073a40b29e4c4 Mon Sep 17 00:00:00 2001 From: won503 Date: Mon, 15 May 2023 14:34:13 +0900 Subject: [PATCH 09/20] =?UTF-8?q?workstate=EB=A6=AC=EC=8A=A4=ED=8A=B8=20?= =?UTF-8?q?=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/modules/sysMgt/service/sysMgtApi.js | 6 +++++ .../src/modules/sysMgt/views/WorkState.vue | 16 ++++++++----- .../co/uplus/ez/api/sysMgt/SysMgtService.java | 23 +++++++++++-------- 3 files changed, 30 insertions(+), 15 deletions(-) diff --git a/frontend/src/modules/sysMgt/service/sysMgtApi.js b/frontend/src/modules/sysMgt/service/sysMgtApi.js index cb89df5..2bec0a3 100644 --- a/frontend/src/modules/sysMgt/service/sysMgtApi.js +++ b/frontend/src/modules/sysMgt/service/sysMgtApi.js @@ -90,6 +90,11 @@ const setWorkState = (params) => { return httpClient.post('/api/v1/bo/sysMgt/setWorkState', params, { withCredentials: false }) } +const svcCheckList = (params) => { + console.log("api호출",params) + return httpClient.post('/api/v1/bo/sysMgt/svcCheckList', params, { withCredentials: false }) +} + export default { insertAdmin, @@ -111,4 +116,5 @@ export default { batchExecuteJob, notiList, setWorkState, + svcCheckList, } diff --git a/frontend/src/modules/sysMgt/views/WorkState.vue b/frontend/src/modules/sysMgt/views/WorkState.vue index ae0708b..334d1da 100644 --- a/frontend/src/modules/sysMgt/views/WorkState.vue +++ b/frontend/src/modules/sysMgt/views/WorkState.vue @@ -81,19 +81,23 @@ export default { startDate: new Date(), totalItems: 0, grid: { - url: '/api/v1/bo/sysMgt/notiList', + url: '/api/v1/bo/sysMgt/svcCheckList', pagePerRows: 50, pagination: true, addCls: 'box_OFvis', initialRequest: false, columns: [ - { name: 'day', header: '날짜', align: 'center', width: '15%' }, - { name: 'userId', header: '시작 시간', align: 'center', width: '15%' }, - { name: 'notiDiv', header: '종료 시간', align: 'center', width: '15%' }, - { name: 'webReqId', header: '상태 변경', align: 'center', width: '20%' }, + { name: 'ymd', header: '날짜', align: 'center', width: '15%' }, + { name: 'strHd', header: '시작시간', align: 'center', width: '15%' }, + { name: 'endHd', header: '종료시간', align: 'center', width: '15%' }, + { name: 'workState', header: '상태 변경', align: 'center', width: '20%' }, ], noDataStr: '발송 내역이 없습니다.', params: { + ymd: '', + strHd: '', + endHd: '', + workState: '', }, startTime : '', endTime : '', @@ -123,7 +127,7 @@ export default { isKeep = true; } */ - this.grid.pagePerRows = 30; + this.grid.pagePerRows = 50; page = 1; this.search(isKeep); }, 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 0b44513..6c15a05 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 @@ -571,7 +571,7 @@ public class SysMgtService { setWorkState += setWorkParam.getStartTimeT() + "@"; setWorkState += setWorkParam.getStartTimeM() + "@"; setWorkState += setWorkParam.getEndTimeT() + "@"; - setWorkState += setWorkParam.getEndTimeM(); + setWorkState += setWorkParam.getEndTimeM()+ ","; try { @@ -617,7 +617,7 @@ public class SysMgtService { //CheckList >= svcCheckList SvcCheckListRes svcCheckListRes = new SvcCheckListRes(); - List CheckList = new ArrayList<>(); + List CheckList = new ArrayList(); SvcCheckList svcCheckList = new SvcCheckList(); String nowPage = String.valueOf(svcCheckListReqDto.getPage()); @@ -641,6 +641,7 @@ public class SysMgtService { //항목 객체에 값 셋팅 for (int i = 0; i < Data.length; i++) { + svcCheckList = new SvcCheckList(); workStateDataArr = Data[i].split("@"); svcCheckList.setWorkState(workStateDataArr[0]); svcCheckList.setYear(workStateDataArr[1]); @@ -659,16 +660,22 @@ public class SysMgtService { svcCheckList.setEndHd(EndHd); log.debug("2번 ={}",svcCheckList); // 리스트에 항목 추가 - CheckList.add(svcCheckList); + CheckList.add(svcCheckList); + log.debug("3번 ={}",CheckList.get(i)); } + + log.debug("CheckList0={}",CheckList.get(0)); + log.debug("CheckList1={}",CheckList.get(1)); + log.debug("CheckList2={}",CheckList.get(2)); + log.debug("CheckList3={}",CheckList.get(3)); - log.debug("4번 ={}",CheckList); - totalCnt = Data.length; + svcCheckListRes.setList(CheckList); + log.debug("4번 ={}",svcCheckListRes.getList()); + totalCnt = CheckList.size(); int page = svcCheckListReqDto.getPage(); int pagePerRows = svcCheckListReqDto.getPagePerRows(); page = (page - 1) * pagePerRows; svcCheckListReqDto.setPage(page); - log.debug("22번 ={}",svcCheckList); } } catch (Exception e) { // 파일 읽기 실패 시 "USE"로 설정하고 결과 반환 @@ -677,8 +684,7 @@ public class SysMgtService { log.debug("5번 ={}",svcCheckList.getWorkState()); String[] Data = workStateData.split(","); - log.debug("222번 ={}",svcCheckList); - totalCnt = Data.length; + totalCnt = CheckList.size(); int page = svcCheckListReqDto.getPage(); int pagePerRows = svcCheckListReqDto.getPagePerRows(); page = (page - 1) * pagePerRows; @@ -697,7 +703,6 @@ public class SysMgtService { } - log.debug("2222번 ={}",svcCheckList); // CheckList = sysmgtmapper.svcCheckListSelect(svcCheckListReqDto); svcCheckListRes.setList(CheckList); Paging paging = new Paging(); From bda68878aec68f550d02993dabd5e458280f630c Mon Sep 17 00:00:00 2001 From: won503 Date: Tue, 16 May 2023 14:37:31 +0900 Subject: [PATCH 10/20] =?UTF-8?q?state=20list=20=EB=93=B1=EB=A1=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/modules/sysMgt/views/WorkState.vue | 20 ++++++++ .../co/uplus/ez/api/sysMgt/SysMgtService.java | 48 +++++++++++++++---- 2 files changed, 58 insertions(+), 10 deletions(-) diff --git a/frontend/src/modules/sysMgt/views/WorkState.vue b/frontend/src/modules/sysMgt/views/WorkState.vue index 334d1da..1c77042 100644 --- a/frontend/src/modules/sysMgt/views/WorkState.vue +++ b/frontend/src/modules/sysMgt/views/WorkState.vue @@ -114,6 +114,10 @@ export default { created() { }, destroyed() { + this.$store.commit('searchcondition/updateSearchCondition', { + page: 1, + perPage: 50, + }); }, mounted() { let page = 1; @@ -148,6 +152,22 @@ export default { search: function (isKeep) { this.$refs.table.search(this.grid.params, isKeep); }, + changePerPage: function () { + // 페이지당 조회할 개수 + this.grid.pagePerRows = this.perPageCnt; + this.search(true); + }, + + sendStoreData: function () { + const getP = this.$refs.table.getPagination(); + this.$store.commit('searchcondition/updateSearchCondition', { + page: getP._currentPage, + perPage: this.perPageCnt, + params: this.grid.params + }); + + const getCondition = this.$store.getters['searchcondition/getSearchCondition']; + }, customFormatter: function (date) { if (this.sDateDiv == 'month') { 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 6c15a05..489e884 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 @@ -30,6 +30,7 @@ import java.net.MalformedURLException; import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -554,6 +555,7 @@ public class SysMgtService { public SetWorkStateResDto setWorkState(SetWorkStateReqDto setWorkParam) { File file = new File("C:\\efs\\home\\workState\\workStatefile.txt"); + File fileList = new File("C:\\efs\\admin\\workState\\workStatefile.txt"); String[] workParamArr = setWorkParam.getStartDate().split("-"); @@ -578,6 +580,7 @@ public class SysMgtService { //1. workState 파일이 없다면? 만들어라 if(!file.exists()) { file.createNewFile(); + fileList.createNewFile(); } //2. Buffer를 사용해서 File에 write할 수 있는 BufferedWriter 생성 @@ -592,12 +595,42 @@ public class SysMgtService { //4. Buffer writer.close(); + //5. admin파일에 저장 + + String workStateData = ""; + + Resource filethree = fileService.loadAsResource(dirWorkState); + BufferedReader reader = new BufferedReader(new FileReader(filethree.getFile())); + StringBuilder sb = new StringBuilder(); + String line; + while ((line = reader.readLine()) != null) { + sb.append(line); + } + reader.close(); + + FileWriter fwList = new FileWriter(fileList); + BufferedWriter writerList = new BufferedWriter(fwList); + + workStateData = sb.toString(); + String[] Data = workStateData.split(","); + + List newList = new ArrayList<>(Arrays.asList(workStateData)); + newList.add(setWorkState); + + for (String data : newList) { + writerList.write(data); + writerList.newLine(); + } + writerList.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } logger.debug("setWorkParam={}",setWorkParam); + + + return new SetWorkStateResDto(ApiResponseCode.SUCCESS); } @@ -611,7 +644,7 @@ public class SysMgtService { SysMgtMapper sysmgtmapper = sqlSessionSlave.getMapper(SysMgtMapper.class); String workStateData = ""; - log.debug("1번 ={}",workStateData); +// log.debug("1번 ={}",workStateData); String [] workStateDataArr = new String[7]; log.info("getWorkStateCheck START =========================================="); @@ -658,19 +691,14 @@ public class SysMgtService { svcCheckList.setStrHd(StrHd); String EndHd = svcCheckList.getEndHour()+" : "+ svcCheckList.getEndMin(); svcCheckList.setEndHd(EndHd); - log.debug("2번 ={}",svcCheckList); +// log.debug("2번 ={}",svcCheckList); // 리스트에 항목 추가 CheckList.add(svcCheckList); - log.debug("3번 ={}",CheckList.get(i)); +// log.debug("3번 ={}",CheckList.get(i)); } - log.debug("CheckList0={}",CheckList.get(0)); - log.debug("CheckList1={}",CheckList.get(1)); - log.debug("CheckList2={}",CheckList.get(2)); - log.debug("CheckList3={}",CheckList.get(3)); - svcCheckListRes.setList(CheckList); - log.debug("4번 ={}",svcCheckListRes.getList()); +// log.debug("4번 ={}",svcCheckListRes.getList()); totalCnt = CheckList.size(); int page = svcCheckListReqDto.getPage(); int pagePerRows = svcCheckListReqDto.getPagePerRows(); @@ -681,7 +709,7 @@ public class SysMgtService { // 파일 읽기 실패 시 "USE"로 설정하고 결과 반환 log.error("WORK STATE READ FAIL : {}",e.getMessage(), e); svcCheckList.setWorkState("USE"); - log.debug("5번 ={}",svcCheckList.getWorkState()); +// log.debug("5번 ={}",svcCheckList.getWorkState()); String[] Data = workStateData.split(","); totalCnt = CheckList.size(); From c7552afa953841a8fea8fcf032cc40ca7ca04d2e Mon Sep 17 00:00:00 2001 From: won503 Date: Wed, 17 May 2023 10:54:08 +0900 Subject: [PATCH 11/20] =?UTF-8?q?=EC=84=9C=EB=B9=84=EC=8A=A4=EC=A0=90?= =?UTF-8?q?=EA=B2=80=EC=84=A4=EC=A0=95=20=ED=94=84=EB=A1=A0=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/modules/sysMgt/service/sysMgtApi.js | 2 - .../src/modules/sysMgt/views/WorkState.vue | 53 ++++++++++++++++--- 2 files changed, 45 insertions(+), 10 deletions(-) diff --git a/frontend/src/modules/sysMgt/service/sysMgtApi.js b/frontend/src/modules/sysMgt/service/sysMgtApi.js index 2bec0a3..d22b4c5 100644 --- a/frontend/src/modules/sysMgt/service/sysMgtApi.js +++ b/frontend/src/modules/sysMgt/service/sysMgtApi.js @@ -86,12 +86,10 @@ const notiList = (params) => { } const setWorkState = (params) => { - console.log("api호출",params) return httpClient.post('/api/v1/bo/sysMgt/setWorkState', params, { withCredentials: false }) } const svcCheckList = (params) => { - console.log("api호출",params) return httpClient.post('/api/v1/bo/sysMgt/svcCheckList', params, { withCredentials: false }) } diff --git a/frontend/src/modules/sysMgt/views/WorkState.vue b/frontend/src/modules/sysMgt/views/WorkState.vue index 1c77042..81455b4 100644 --- a/frontend/src/modules/sysMgt/views/WorkState.vue +++ b/frontend/src/modules/sysMgt/views/WorkState.vue @@ -2,13 +2,13 @@
-

알림 이력

- +

서비스 점검 설정

+
- +
{ + // 저장이 완료된 후에 테이블 다시 로드 + this.$nextTick(() => { + this.$refs.table.reloadData(); + }); + }); }, search: function (isKeep) { this.$refs.table.search(this.grid.params, isKeep); + const getP = this.$refs.table.getPagination(); + this.$store.commit('searchcondition/updateSearchCondition', { + page: getP._currentPage, + perPage: this.perPageCnt, + params: this.grid.params, + }); + + const getCondition = this.$store.getters['searchcondition/getSearchCondition']; }, changePerPage: function () { // 페이지당 조회할 개수 @@ -178,6 +207,14 @@ export default { return moment(date).format('YYYY-MM-DD'); } }, + beforeRouteLeave(to, from, next) { + const getP = this.$refs.table.getPagination(); + this.$store.commit('searchcondition/updateSearchCondition', { + params: this.grid.params, + }); + // 라우트 하기전 실행 + next(); + }, } }; From 9f7cb323bed274c86378c8c69627348cc6581bd2 Mon Sep 17 00:00:00 2001 From: "DESKTOP-MAVEOS0\\lmh32" Date: Wed, 17 May 2023 13:47:42 +0900 Subject: [PATCH 12/20] =?UTF-8?q?=EA=B0=9C=ED=96=89=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/kr/co/uplus/ez/api/sysMgt/SysMgtService.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) 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 489e884..774d037 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 @@ -573,7 +573,7 @@ public class SysMgtService { setWorkState += setWorkParam.getStartTimeT() + "@"; setWorkState += setWorkParam.getStartTimeM() + "@"; setWorkState += setWorkParam.getEndTimeT() + "@"; - setWorkState += setWorkParam.getEndTimeM()+ ","; + setWorkState += setWorkParam.getEndTimeM(); try { @@ -614,12 +614,14 @@ public class SysMgtService { workStateData = sb.toString(); String[] Data = workStateData.split(","); - List newList = new ArrayList<>(Arrays.asList(workStateData)); + List newList = new ArrayList<>(); + for (String data : Data) { + newList.add(data); + } newList.add(setWorkState); for (String data : newList) { - writerList.write(data); - writerList.newLine(); + writerList.write(data+",\r\n"); } writerList.close(); From 9adafe96041ccf003a85020118b4d16265060091 Mon Sep 17 00:00:00 2001 From: won503 Date: Wed, 17 May 2023 15:51:50 +0900 Subject: [PATCH 13/20] =?UTF-8?q?=ED=8C=8C=EC=9D=BC=20=EC=83=9D=EC=84=B1?= =?UTF-8?q?=EC=88=98=EC=A0=95&=20=EC=97=90=EB=9F=AC=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../co/uplus/ez/api/sysMgt/SysMgtService.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) 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 774d037..cfc0063 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 @@ -580,6 +580,7 @@ public class SysMgtService { //1. workState 파일이 없다면? 만들어라 if(!file.exists()) { file.createNewFile(); + }else if(!fileList.exists()) { fileList.createNewFile(); } @@ -615,14 +616,18 @@ public class SysMgtService { String[] Data = workStateData.split(","); List newList = new ArrayList<>(); - for (String data : Data) { - newList.add(data); - } + + if((Data[0].equals(""))==false) { + for (String data : Data) { + newList.add(data); + } + } newList.add(setWorkState); for (String data : newList) { writerList.write(data+",\r\n"); } + writerList.close(); } catch (IOException e) { @@ -658,7 +663,8 @@ public class SysMgtService { String nowPage = String.valueOf(svcCheckListReqDto.getPage()); int totalCnt = 0; // sysmgtmapper.svcCheckListSelectCnt(svcCheckListReqDto); - + File fileList = new File("C:\\efs\\admin\\workState\\workStatefile.txt"); + try { //파일 읽기 Resource file = fileService.loadAsResource(dirWorkState); @@ -708,6 +714,9 @@ public class SysMgtService { svcCheckListReqDto.setPage(page); } } catch (Exception e) { + if(!fileList.exists()) { + log.debug("파일이 존재하지 않습니다."); + }else { // 파일 읽기 실패 시 "USE"로 설정하고 결과 반환 log.error("WORK STATE READ FAIL : {}",e.getMessage(), e); svcCheckList.setWorkState("USE"); @@ -720,6 +729,7 @@ public class SysMgtService { page = (page - 1) * pagePerRows; svcCheckListReqDto.setPage(page); return new SvcCheckListResDto(ApiResponseCode.SUCCESS); + } } if (totalCnt == 0) { From d4058a04ab4a6d548f5267b53530a88511970f8b Mon Sep 17 00:00:00 2001 From: won503 Date: Tue, 23 May 2023 14:46:59 +0900 Subject: [PATCH 14/20] =?UTF-8?q?=EC=A0=80=EC=9E=A5=ED=8C=9D=EC=97=85=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/modules/sysMgt/views/WorkState.vue | 49 ++++++++++++------- src/main/resources/application.yml | 8 +++ 2 files changed, 40 insertions(+), 17 deletions(-) diff --git a/frontend/src/modules/sysMgt/views/WorkState.vue b/frontend/src/modules/sysMgt/views/WorkState.vue index 81455b4..9e28d8b 100644 --- a/frontend/src/modules/sysMgt/views/WorkState.vue +++ b/frontend/src/modules/sysMgt/views/WorkState.vue @@ -59,6 +59,8 @@ :addCls="grid.addCls" >
+ +
@@ -69,6 +71,8 @@ import moment from 'moment'; import VueTimepicker from 'vue2-timepicker'; import 'vue2-timepicker/dist/VueTimepicker.css' import sysMgtApi from '../service/sysMgtApi' +// import CommonModal from '../components/modal/commonModal'; +import CommonModal from '../components/commonModal.vue'; export default { name: 'workState', @@ -114,7 +118,8 @@ export default { customGrid: customGrid, vuejsDatepicker, VueTimepicker, - + CommonModal, + }, created() { }, @@ -143,6 +148,11 @@ export default { methods: { fnSaveTxt(){ + if (this.state == 'NOTUSE') { + this.row.title = '서비스 점검 설정'; + this.row.msg1 = '저장 하시겠습니까?'; + this.$refs.commonModal.confirmModalOpen(this.row); + } let params = { startDate : moment(this.startDate).format('YYYY-MM-DD'), startTimeT : '', @@ -151,25 +161,27 @@ export default { endTimeM : '', state : this.state, } - if (this.startTime) { params.startTimeT = moment(this.startTime, 'HH:mm').format('HH'); params.startTimeM = moment(this.startTime, 'HH:mm').format('mm'); } - if (this.endTime) { params.endTimeT = moment(this.endTime, 'HH:mm').format('HH'); params.endTimeM = moment(this.endTime, 'HH:mm').format('mm'); } - - sysMgtApi.setWorkState(params).then(() => { - // 저장이 완료된 후에 테이블 다시 로드 - this.$nextTick(() => { - this.$refs.table.reloadData(); - }); + sysMgtApi.setWorkState(params).then((respose) => { + var result = respose.data; + if (result != null && result.retCode == "0000"){ + // 저장이 완료된 후에 테이블 다시 로드 + this.toComplete(); + } }); }, + toComplete(){ + this.$refs.table.reloadData(); + // this.confirmCalbackFnc(); + }, search: function (isKeep) { this.$refs.table.search(this.grid.params, isKeep); const getP = this.$refs.table.getPagination(); @@ -208,14 +220,17 @@ export default { } }, beforeRouteLeave(to, from, next) { - const getP = this.$refs.table.getPagination(); - this.$store.commit('searchcondition/updateSearchCondition', { - params: this.grid.params, - }); - // 라우트 하기전 실행 - next(); - }, - + const getP = this.$refs.table.getPagination(); + this.$store.commit('searchcondition/updateSearchCondition', { + params: this.grid.params, + }); + // 라우트 하기전 실행 + next(); + }, + confirmCalbackFnc(props) { + // if (props.result) { + // } + }, } }; diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 0554d7f..8ca8f46 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -28,6 +28,14 @@ app.props: header: Authorization prefix: "Bearer " +# file +hubeasy_file_info: + send-message-location: /efs/home/sendMessage + rsv-message-location: /efs/home/rsvMessage + caller-id-location: /efs/home/callidDoc + consult-location: /efs/home/consult + work-location: /efs/admin/workState/workStatefile.txt + logging: config: classpath:logback-spring.xml From 893e6eac698845298863fbdb3f5bd9084386d176 Mon Sep 17 00:00:00 2001 From: won503 Date: Thu, 8 Jun 2023 14:11:51 +0900 Subject: [PATCH 15/20] =?UTF-8?q?vue=20=EC=88=98=EC=A0=95=EC=99=84?= =?UTF-8?q?=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/modules/sysMgt/views/WorkState.vue | 144 +++++++++++++++--- .../co/uplus/ez/api/sysMgt/SysMgtService.java | 9 -- 2 files changed, 120 insertions(+), 33 deletions(-) diff --git a/frontend/src/modules/sysMgt/views/WorkState.vue b/frontend/src/modules/sysMgt/views/WorkState.vue index 9e28d8b..6650da7 100644 --- a/frontend/src/modules/sysMgt/views/WorkState.vue +++ b/frontend/src/modules/sysMgt/views/WorkState.vue @@ -14,7 +14,9 @@
@@ -71,7 +73,6 @@ import moment from 'moment'; import VueTimepicker from 'vue2-timepicker'; import 'vue2-timepicker/dist/VueTimepicker.css' import sysMgtApi from '../service/sysMgtApi' -// import CommonModal from '../components/modal/commonModal'; import CommonModal from '../components/commonModal.vue'; export default { @@ -81,8 +82,11 @@ export default { isFocused: false, //날짜 조회 ko: vdp_translation_ko.js, + periodDay: 7, sDateDiv: 'day', startDate: new Date(), + disabledSDate: '', + startDateOptions: {disabledDate: this.disabledStDate}, totalItems: 0, row: {}, grid: { @@ -110,8 +114,12 @@ export default { }, startTime : '', endTime : '', - state: '', - + state: 'USE', + startDate2 :'', + startTimeT2: '', + startTimeM2: '', + endTimeT2 : '', + endTimeM2: '', }; }, components: { @@ -122,6 +130,7 @@ export default { }, created() { + this.setPeriodDay(0); }, destroyed() { this.$store.commit('searchcondition/updateSearchCondition', { @@ -148,11 +157,6 @@ export default { methods: { fnSaveTxt(){ - if (this.state == 'NOTUSE') { - this.row.title = '서비스 점검 설정'; - this.row.msg1 = '저장 하시겠습니까?'; - this.$refs.commonModal.confirmModalOpen(this.row); - } let params = { startDate : moment(this.startDate).format('YYYY-MM-DD'), startTimeT : '', @@ -161,6 +165,13 @@ export default { endTimeM : '', state : this.state, } + + this.startDate2 = moment(this.startDate).format('YYYY-MM-DD'); + this.startTimeT2 = moment(this.startTime, 'HH:mm').format('HH'); + this.startTimeM2 = moment(this.startTime, 'HH:mm').format('mm'); + this.endTimeT2 = moment(this.endTime, 'HH:mm').format('HH'); + this.endTimeM2 = moment(this.endTime, 'HH:mm').format('mm'); + if (this.startTime) { params.startTimeT = moment(this.startTime, 'HH:mm').format('HH'); params.startTimeM = moment(this.startTime, 'HH:mm').format('mm'); @@ -169,19 +180,77 @@ export default { params.endTimeT = moment(this.endTime, 'HH:mm').format('HH'); params.endTimeM = moment(this.endTime, 'HH:mm').format('mm'); } - sysMgtApi.setWorkState(params).then((respose) => { - var result = respose.data; - if (result != null && result.retCode == "0000"){ - // 저장이 완료된 후에 테이블 다시 로드 - this.toComplete(); - } - }); + if(params.startTimeT == ''){ + this.row.title = '서비스 점검 설정'; + this.row.msg1 = '시작시간을 설정해 주세요 '; + this.$refs.commonModal.alertSysModalOpen(this.row); + return false; + } + if(params.startTimeM== ''){ + this.row.title = '서비스 점검 설정'; + this.row.msg1 = '시작시간을 설정해 주세요 '; + this.$refs.commonModal.alertSysModalOpen(this.row); + return false; + } + if(params.endTimeT== ''){ + this.row.title = '서비스 점검 설정'; + this.row.msg1 = '종료시간을 설정해 주세요 '; + this.$refs.commonModal.alertSysModalOpen(this.row); + return false; + } + if(params.endTimeM== ''){ + this.row.title = '서비스 점검 설정'; + this.row.msg1 = '종료시간을 설정해 주세요 '; + this.$refs.commonModal.alertSysModalOpen(this.row); + return false; + } + // 사용 && 점검중 선택 + if (this.state == 'NOTUSE') { + this.row.title = '서비스 점검 설정'; + this.row.msg1 = '저장 하시겠습니까?'; + this.$refs.commonModal.confirmModalOpen(this.row); + }else{ + this.setState(params); + } }, - toComplete(){ - this.$refs.table.reloadData(); - // this.confirmCalbackFnc(); - }, + + async setState(){ + let params = { + startDate : this.startDate2, + startTimeT : this.startTimeT2, + startTimeM : this.startTimeM2, + endTimeT : this.endTimeT2, + endTimeM : this.endTimeM2, + state : this.state, + } + try { + let response = await sysMgtApi.setWorkState(params); + const result = response.data; + if (result != null && result.retCode == "0000"){ + // 저장이 완료된 후에 테이블 다시 로드 + this.$refs.table.reloadData(); + return; + } else { + this.row.title = '서비스 점검 설정'; + this.row.msg1 = '실패 하였습니다.'; + this.$refs.commonModal.alertSysModalOpen(this.row); + return false; + } + } catch (error) { + this.row.title = '서비스 점검 설정'; + this.row.msg1 = '실패 하였습니다.'; + this.$refs.commonModal.alertSysModalOpen(this.row); + return false; + } + }, + + confirmCalbackFnc(props) { + if (props.result) { + this.setState(); + } + }, + search: function (isKeep) { this.$refs.table.search(this.grid.params, isKeep); const getP = this.$refs.table.getPagination(); @@ -209,7 +278,12 @@ export default { const getCondition = this.$store.getters['searchcondition/getSearchCondition']; }, - + setPeriodDay(day) { + this.periodDay = day; + this.initSetStartDate(); + this.initSetEndDate(); + this.closeDate('start'); + }, customFormatter: function (date) { if (this.sDateDiv == 'month') { return moment(date).format('YYYY-MM'); @@ -219,6 +293,31 @@ export default { return moment(date).format('YYYY-MM-DD'); } }, + + closeDate(type){ + if (type != undefined && type != null){ + let initStartDate = new Date(); + let initEndDate = new Date(); + initStartDate.setDate(Number(moment(initStartDate).format('DD'))+365 ); + initEndDate.setDate(Number(moment(initEndDate).format('DD')) -1) + + this.disabledSDate = {to: initEndDate, from: initStartDate}; + if (this.startDate !== initStartDate) { + this.disabledSDate = {to: initEndDate, from: initStartDate}; + } + + } + }, + initSetStartDate() { + let initStartDate = new Date(); + initStartDate.setDate(Number(moment(initStartDate).format('DD'))+365 ); + this.startDate = initStartDate; + }, + initSetEndDate(){ + let initEndDate = new Date(); + initEndDate.setDate(Number(moment(initEndDate).format('DD')) ) + this.startDate = initEndDate; + }, beforeRouteLeave(to, from, next) { const getP = this.$refs.table.getPagination(); this.$store.commit('searchcondition/updateSearchCondition', { @@ -227,10 +326,7 @@ export default { // 라우트 하기전 실행 next(); }, - confirmCalbackFnc(props) { - // if (props.result) { - // } - }, + } }; 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 cfc0063..894ebc0 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 @@ -648,21 +648,17 @@ public class SysMgtService { * @return */ public SvcCheckListResDto svcCheckLists(@Valid SvcCheckListReqDto svcCheckListReqDto) { - SysMgtMapper sysmgtmapper = sqlSessionSlave.getMapper(SysMgtMapper.class); String workStateData = ""; -// log.debug("1번 ={}",workStateData); String [] workStateDataArr = new String[7]; log.info("getWorkStateCheck START =========================================="); - //CheckList >= svcCheckList SvcCheckListRes svcCheckListRes = new SvcCheckListRes(); List CheckList = new ArrayList(); SvcCheckList svcCheckList = new SvcCheckList(); String nowPage = String.valueOf(svcCheckListReqDto.getPage()); int totalCnt = 0; -// sysmgtmapper.svcCheckListSelectCnt(svcCheckListReqDto); File fileList = new File("C:\\efs\\admin\\workState\\workStatefile.txt"); try { @@ -699,14 +695,11 @@ public class SysMgtService { svcCheckList.setStrHd(StrHd); String EndHd = svcCheckList.getEndHour()+" : "+ svcCheckList.getEndMin(); svcCheckList.setEndHd(EndHd); -// log.debug("2번 ={}",svcCheckList); // 리스트에 항목 추가 CheckList.add(svcCheckList); -// log.debug("3번 ={}",CheckList.get(i)); } svcCheckListRes.setList(CheckList); -// log.debug("4번 ={}",svcCheckListRes.getList()); totalCnt = CheckList.size(); int page = svcCheckListReqDto.getPage(); int pagePerRows = svcCheckListReqDto.getPagePerRows(); @@ -720,7 +713,6 @@ public class SysMgtService { // 파일 읽기 실패 시 "USE"로 설정하고 결과 반환 log.error("WORK STATE READ FAIL : {}",e.getMessage(), e); svcCheckList.setWorkState("USE"); -// log.debug("5번 ={}",svcCheckList.getWorkState()); String[] Data = workStateData.split(","); totalCnt = CheckList.size(); @@ -743,7 +735,6 @@ public class SysMgtService { } -// CheckList = sysmgtmapper.svcCheckListSelect(svcCheckListReqDto); svcCheckListRes.setList(CheckList); Paging paging = new Paging(); paging.setPage(nowPage); From cee7bc89610d5d81bfaa803f1d9a4975900e6fc9 Mon Sep 17 00:00:00 2001 From: won503 Date: Tue, 13 Jun 2023 10:49:38 +0900 Subject: [PATCH 16/20] =?UTF-8?q?=EC=9E=84=EC=8B=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../custMgt/components/InsertChrgModal.vue | 79 +++++++++++++++---- .../mapper/mysql/custMgt/custMgt-mapper.xml | 3 + 2 files changed, 67 insertions(+), 15 deletions(-) diff --git a/frontend/src/modules/custMgt/components/InsertChrgModal.vue b/frontend/src/modules/custMgt/components/InsertChrgModal.vue index 9af7cf1..6a62fc6 100644 --- a/frontend/src/modules/custMgt/components/InsertChrgModal.vue +++ b/frontend/src/modules/custMgt/components/InsertChrgModal.vue @@ -17,11 +17,10 @@
- 충전월 - +
@@ -54,8 +53,27 @@
+ +
+
+ + + +
+
+ - + 충전금액
@@ -91,6 +109,28 @@
+ + 충전금액 + +
+ + + +
+ +