From 184df4654119af1d6cc533dfa8558c1cedd06bbd Mon Sep 17 00:00:00 2001 From: "semin.baek" Date: Fri, 28 Feb 2025 17:21:52 +0900 Subject: [PATCH] =?UTF-8?q?DropBox(=EB=A9=94=EC=8B=9C=EC=A7=80=20=EC=B2=98?= =?UTF-8?q?=EB=A6=AC)=20=EC=A7=84=ED=96=89=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dfcms/violation-history.xml | 12 ++++++++++++ src/docs/settings-examples/dfxagent.json | 15 ++++++++++++++- .../com/bsmlab/dfx/agent/config/Settings.java | 19 +++++++++++++++++++ .../listener/service/ListenerService.java | 4 ++++ .../dfx/agent/task/dropbox/DropBoxDto.java | 14 ++++++++++++++ 5 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 src/docs/mapper-examples/dfcms/violation-history.xml create mode 100644 src/main/java/com/bsmlab/dfx/agent/task/dropbox/DropBoxDto.java diff --git a/src/docs/mapper-examples/dfcms/violation-history.xml b/src/docs/mapper-examples/dfcms/violation-history.xml new file mode 100644 index 0000000..1bbeefb --- /dev/null +++ b/src/docs/mapper-examples/dfcms/violation-history.xml @@ -0,0 +1,12 @@ + + + + + INSERT INTO TB_VIOLATION_HISTORY ( + CONFIRM_YMD, COMPANY_TYPE, COMPANY_NAME, ADDRESS, VIOLATION_TITLE, VIOLATION_TYPE, VIOLATION_YMD + ) + VALUES ( + #{CONFIRM_YMD}, #{COMPANY_TYPE}, #{COMPANY_NAME}, #{ADDRESS}, #{VIOLATION_TITLE}, #{VIOLATION_TYPE}, #{VIOLATION_YMD} + ) + + diff --git a/src/docs/settings-examples/dfxagent.json b/src/docs/settings-examples/dfxagent.json index 2db8f28..6dc4596 100644 --- a/src/docs/settings-examples/dfxagent.json +++ b/src/docs/settings-examples/dfxagent.json @@ -15,5 +15,18 @@ "password": "MOCHASTORY" } ], - "sqlMapperLocations": ["D:/projects/bsm-lab/dfx/dfxagent/src/docs/mapper-examples/**/*.xml"] + "sqlMapperLocations": ["D:/projects/bsm-lab/dfx/dfxagent/src/docs/mapper-examples/**/*.xml"], + "drop-box": [ + { + "drop-box-id": "save-violation-history", + "task-type": "SAVE_DATA_TABLE", + "dataSourceId": "dfcms", + "sql-id": "dfcms.violation.insertViolationHistory" + }, + { + "drop-box-id": "receive-work-image-file", + "task-type": "RECEIVE_FILE", + "save-directory-root": "D:\\projects\\bsm-lab\\dfx\\run\\receive_file" + } + ] } diff --git a/src/main/java/com/bsmlab/dfx/agent/config/Settings.java b/src/main/java/com/bsmlab/dfx/agent/config/Settings.java index 1f0ba76..5baaadb 100644 --- a/src/main/java/com/bsmlab/dfx/agent/config/Settings.java +++ b/src/main/java/com/bsmlab/dfx/agent/config/Settings.java @@ -1,6 +1,7 @@ package com.bsmlab.dfx.agent.config; import com.bsmlab.dfx.agent.config.datasource.DataSourceDto; +import com.bsmlab.dfx.agent.task.dropbox.DropBoxDto; import com.fasterxml.jackson.databind.DatabindException; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.extern.slf4j.Slf4j; @@ -21,6 +22,7 @@ import java.util.Map; @Component public class Settings { private final Map dataSourceDtoMap = new HashMap<>(); + private Map dropBoxDtoMap = new HashMap<>(); private Resource[] mapperLocations; public void loadSettingFile(String settingFilePath) { try { @@ -29,6 +31,7 @@ public class Settings { this.mapperLocations = this.createMapperLocations(settingMap); log.debug("settingMap: {}", settingMap); this.parseDataSources(settingMap); + this.parseDropBoxes(settingMap); } catch (DatabindException e) { log.error("cannot parse a setting file. {}", settingFilePath, e); log.error(e.getMessage(), e); @@ -64,6 +67,18 @@ public class Settings { return resources; } + @SuppressWarnings("unchecked") + private void parseDropBoxes(Map settingMap) { + List> dropBoxMapList = (List>)settingMap.get("drop-box"); + //TODO drop-box parser 개발 + //TODO drop-box executor 개발 + for(Map dropBoxMap : dropBoxMapList) { + DropBoxDto dataSourceDto = DropBoxDto.builder() + .build(); + this.dropBoxDtoMap.put("", null); + } + } + public Resource[] getMapperLocations() { return this.mapperLocations; } @@ -71,4 +86,8 @@ public class Settings { public Map getDataSourceDtoMap() { return this.dataSourceDtoMap; } + + private Map getDropBoxDtoMap() { + return this.dropBoxDtoMap; + } } diff --git a/src/main/java/com/bsmlab/dfx/agent/listener/service/ListenerService.java b/src/main/java/com/bsmlab/dfx/agent/listener/service/ListenerService.java index 559637e..d2acd79 100644 --- a/src/main/java/com/bsmlab/dfx/agent/listener/service/ListenerService.java +++ b/src/main/java/com/bsmlab/dfx/agent/listener/service/ListenerService.java @@ -1,5 +1,6 @@ package com.bsmlab.dfx.agent.listener.service; +import com.bsmlab.dfx.agent.config.datasource.SqlExecuteService; import com.bsmlab.dfx.agent.listener.dto.AckDto; import com.bsmlab.dfx.agent.listener.dto.ListenerMapper; import com.bsmlab.dfx.agent.listener.dto.ReceiveMessageDto; @@ -16,6 +17,7 @@ import org.springframework.stereotype.Service; @Service public class ListenerService { private final ListenerMapper listenerMapper; + private final SqlExecuteService sqlExecuteService; public AckDto saveNewMessage(String messageJsonString) { AckDto ackDto = null; @@ -27,7 +29,9 @@ public class ListenerService { } else { listenerMapper.insertReceiveMessage(receiveMessageDto); + ackDto = AckDto.builder().result(AckDto.RESULT_SUCCESS).build(); + } } catch (IllegalMessageException | NullMessageException | InCompleteMessageException e) { log.error("{}", e, e); diff --git a/src/main/java/com/bsmlab/dfx/agent/task/dropbox/DropBoxDto.java b/src/main/java/com/bsmlab/dfx/agent/task/dropbox/DropBoxDto.java new file mode 100644 index 0000000..8ce66e6 --- /dev/null +++ b/src/main/java/com/bsmlab/dfx/agent/task/dropbox/DropBoxDto.java @@ -0,0 +1,14 @@ +package com.bsmlab.dfx.agent.task.dropbox; + +import lombok.Builder; +import lombok.Data; + +@Data +@Builder +public class DropBoxDto { + private String dropBoxId; + private String taskType; + private String dataSourceId; + private String sqlId; + private String saveDirectoryRoot; +}