DropBox(메시지 처리) 진행중

main
semin.baek 11 months ago
parent 6d3c29787c
commit 184df46541

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="execute">
<insert id="dfcms.violation.insertViolationHistory" parameterType="map">
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}
)
</insert>
</mapper>

@ -15,5 +15,18 @@
"password": "MOCHASTORY" "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"
}
]
} }

@ -1,6 +1,7 @@
package com.bsmlab.dfx.agent.config; package com.bsmlab.dfx.agent.config;
import com.bsmlab.dfx.agent.config.datasource.DataSourceDto; 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.DatabindException;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -21,6 +22,7 @@ import java.util.Map;
@Component @Component
public class Settings { public class Settings {
private final Map<String, DataSourceDto> dataSourceDtoMap = new HashMap<>(); private final Map<String, DataSourceDto> dataSourceDtoMap = new HashMap<>();
private Map<String, DropBoxDto> dropBoxDtoMap = new HashMap<>();
private Resource[] mapperLocations; private Resource[] mapperLocations;
public void loadSettingFile(String settingFilePath) { public void loadSettingFile(String settingFilePath) {
try { try {
@ -29,6 +31,7 @@ public class Settings {
this.mapperLocations = this.createMapperLocations(settingMap); this.mapperLocations = this.createMapperLocations(settingMap);
log.debug("settingMap: {}", settingMap); log.debug("settingMap: {}", settingMap);
this.parseDataSources(settingMap); this.parseDataSources(settingMap);
this.parseDropBoxes(settingMap);
} catch (DatabindException e) { } catch (DatabindException e) {
log.error("cannot parse a setting file. {}", settingFilePath, e); log.error("cannot parse a setting file. {}", settingFilePath, e);
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
@ -64,6 +67,18 @@ public class Settings {
return resources; return resources;
} }
@SuppressWarnings("unchecked")
private void parseDropBoxes(Map<String, Object> settingMap) {
List<Map<String, String>> dropBoxMapList = (List<Map<String, String>>)settingMap.get("drop-box");
//TODO drop-box parser 개발
//TODO drop-box executor 개발
for(Map<String, String> dropBoxMap : dropBoxMapList) {
DropBoxDto dataSourceDto = DropBoxDto.builder()
.build();
this.dropBoxDtoMap.put("", null);
}
}
public Resource[] getMapperLocations() { public Resource[] getMapperLocations() {
return this.mapperLocations; return this.mapperLocations;
} }
@ -71,4 +86,8 @@ public class Settings {
public Map<String, DataSourceDto> getDataSourceDtoMap() { public Map<String, DataSourceDto> getDataSourceDtoMap() {
return this.dataSourceDtoMap; return this.dataSourceDtoMap;
} }
private Map<String, DropBoxDto> getDropBoxDtoMap() {
return this.dropBoxDtoMap;
}
} }

@ -1,5 +1,6 @@
package com.bsmlab.dfx.agent.listener.service; 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.AckDto;
import com.bsmlab.dfx.agent.listener.dto.ListenerMapper; import com.bsmlab.dfx.agent.listener.dto.ListenerMapper;
import com.bsmlab.dfx.agent.listener.dto.ReceiveMessageDto; import com.bsmlab.dfx.agent.listener.dto.ReceiveMessageDto;
@ -16,6 +17,7 @@ import org.springframework.stereotype.Service;
@Service @Service
public class ListenerService { public class ListenerService {
private final ListenerMapper listenerMapper; private final ListenerMapper listenerMapper;
private final SqlExecuteService sqlExecuteService;
public AckDto saveNewMessage(String messageJsonString) { public AckDto saveNewMessage(String messageJsonString) {
AckDto ackDto = null; AckDto ackDto = null;
@ -27,7 +29,9 @@ public class ListenerService {
} }
else { else {
listenerMapper.insertReceiveMessage(receiveMessageDto); listenerMapper.insertReceiveMessage(receiveMessageDto);
ackDto = AckDto.builder().result(AckDto.RESULT_SUCCESS).build(); ackDto = AckDto.builder().result(AckDto.RESULT_SUCCESS).build();
} }
} catch (IllegalMessageException | NullMessageException | InCompleteMessageException e) { } catch (IllegalMessageException | NullMessageException | InCompleteMessageException e) {
log.error("{}", e, e); log.error("{}", e, e);

@ -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;
}
Loading…
Cancel
Save