diff --git a/src/database/create-database.sql b/src/database/create-database.sql index 5382e6d..a0b6f2c 100644 --- a/src/database/create-database.sql +++ b/src/database/create-database.sql @@ -83,6 +83,7 @@ CREATE TABLE TB_DFX_AGENT_MESSAGE_HISTORY ( , PROCESS_STATUS_CODE VARCHAR(64) , MESSAGE_DATA TEXT , MESSAGE_DATA_COUNT DECIMAL(9) DEFAULT 0 + , PROCESS_ACK_TS TIMESTAMPTZ(3) , CONSTRAINT PK_DFX_AGENT_MESSAGE_HISTORY PRIMARY KEY (SENDER_AGENT_ID, MESSAGE_UUID) ); CREATE INDEX IX_DFX_AGENT_MESSAGE_HISTORY_1 ON TB_DFX_AGENT_MESSAGE_HISTORY (RECIPIENT_AGENT_ID); @@ -98,6 +99,7 @@ COMMENT ON COLUMN TB_DFX_AGENT_MESSAGE_HISTORY.CONSOLE_RECEIVE_TS IS '콘솔 수 COMMENT ON COLUMN TB_DFX_AGENT_MESSAGE_HISTORY.PROCESS_STATUS_CODE IS '프로세스 상태 코드 CODE_GROUP: PROCESS_STATUS'; COMMENT ON COLUMN TB_DFX_AGENT_MESSAGE_HISTORY.MESSAGE_DATA IS '메시지 데이터'; COMMENT ON COLUMN TB_DFX_AGENT_MESSAGE_HISTORY.MESSAGE_DATA_COUNT IS '메시지 데이터 갯수'; +COMMENT ON COLUMN TB_DFX_AGENT_MESSAGE_HISTORY.PROCESS_ACK_TS IS '처리결과 수신 시간'; diff --git a/src/main/front/src/main.js b/src/main/front/src/main.js index a501abe..d696b18 100644 --- a/src/main/front/src/main.js +++ b/src/main/front/src/main.js @@ -2,13 +2,21 @@ import 'bootstrap/dist/css/bootstrap.min.css' import 'bootstrap' import 'bootstrap-icons/font/bootstrap-icons.css' import './assets/app.css' - -import { createApp } from 'vue' +import axios from 'axios' +import { createApp, getCurrentInstance } from 'vue' import App from './App.vue' import router from './router' -const app = createApp(App) +const apiClient = axios.create({ header: { 'Content-Type': 'application/json' } }) +const app = createApp(App) +app.config.globalProperties.$apiClient = apiClient app.use(router) - app.mount('#app') + +function useApiClient() { + const { proxy } = getCurrentInstance() + return proxy.$apiClient +} + +export { useApiClient } diff --git a/src/main/front/src/router/index.js b/src/main/front/src/router/index.js index 0a78fd1..5c9b0ff 100644 --- a/src/main/front/src/router/index.js +++ b/src/main/front/src/router/index.js @@ -16,6 +16,14 @@ const router = createRouter({ path: '/main.html', name: 'main', component: MainView, + props: { contentId: 'dashboard-view' }, + meta: { isRequiredAuth: true }, + }, + { + path: '/agent-manage.html', + name: 'agent-manage', + component: MainView, + props: { contentId: 'agent-manage-view' }, meta: { isRequiredAuth: true }, }, ], diff --git a/src/main/front/src/views/AgentManageView.vue b/src/main/front/src/views/AgentManageView.vue new file mode 100644 index 0000000..10cbfd0 --- /dev/null +++ b/src/main/front/src/views/AgentManageView.vue @@ -0,0 +1,66 @@ + + + + + diff --git a/src/main/front/src/views/DashboardView.vue b/src/main/front/src/views/DashboardView.vue new file mode 100644 index 0000000..3aa501b --- /dev/null +++ b/src/main/front/src/views/DashboardView.vue @@ -0,0 +1,123 @@ + + + + + diff --git a/src/main/front/src/views/MainView.vue b/src/main/front/src/views/MainView.vue index 4a6672a..895857c 100644 --- a/src/main/front/src/views/MainView.vue +++ b/src/main/front/src/views/MainView.vue @@ -1,41 +1,33 @@ diff --git a/src/main/java/com/bsmlab/dfx/dfxconsole/app/agent/service/DfxAgentMessageHistoryDto.java b/src/main/java/com/bsmlab/dfx/dfxconsole/app/agent/service/DfxAgentMessageHistoryDto.java index b3ae1b0..a04017c 100644 --- a/src/main/java/com/bsmlab/dfx/dfxconsole/app/agent/service/DfxAgentMessageHistoryDto.java +++ b/src/main/java/com/bsmlab/dfx/dfxconsole/app/agent/service/DfxAgentMessageHistoryDto.java @@ -12,13 +12,18 @@ public class DfxAgentMessageHistoryDto { private String senderAgentId; private String senderHostName; private long senderTs; + private String senderTimeString; private String recipientAgentId; private String recipientHostName; private long recipientTs; + private String recipientTimeString; private String messageUuid; private String messageTypeCode; private long consoleReceiveTs; + private String consoleReceiveTimeString; private String processStatusCode; private String messageData; private int messageDataCount; + private long processAckTs; + private long processAckTimeString; } diff --git a/src/main/java/com/bsmlab/dfx/dfxconsole/app/agent/service/DfxAgentMessageHistoryMapper.java b/src/main/java/com/bsmlab/dfx/dfxconsole/app/agent/service/DfxAgentMessageHistoryMapper.java index b15528e..ef0edc2 100644 --- a/src/main/java/com/bsmlab/dfx/dfxconsole/app/agent/service/DfxAgentMessageHistoryMapper.java +++ b/src/main/java/com/bsmlab/dfx/dfxconsole/app/agent/service/DfxAgentMessageHistoryMapper.java @@ -9,4 +9,5 @@ public interface DfxAgentMessageHistoryMapper { List selectDfxAgentMessageHistoryList(); DfxAgentMessageHistoryDto selectDfxAgentMessageHistoryBySenderAgentIdAndMessageUuid(DfxAgentMessageHistoryDto dfxAgentMessageHistoryDto); void insertDfxAgentMessageHistory(DfxAgentMessageHistoryDto dfxAgentMessageHistoryDto); + int updateDfxAgentMessageHistoryForProcessAck(DfxAgentMessageHistoryDto dfxAgentMessageHistoryDto); } diff --git a/src/main/java/com/bsmlab/dfx/dfxconsole/app/communicate/service/ListenerService.java b/src/main/java/com/bsmlab/dfx/dfxconsole/app/communicate/service/ListenerService.java index 6e22820..2a5c580 100644 --- a/src/main/java/com/bsmlab/dfx/dfxconsole/app/communicate/service/ListenerService.java +++ b/src/main/java/com/bsmlab/dfx/dfxconsole/app/communicate/service/ListenerService.java @@ -96,7 +96,13 @@ public class ListenerService { .processStatusCode(receiveMessageDto.getProcessStatus().name()) .messageData(receiveMessageDto.getData()).messageDataCount(messageDataCount) .build(); - dfxAgentMessageHistoryMapper.insertDfxAgentMessageHistory(dfxAgentMessageHistoryDto); + if(receiveMessageDto.getProcessStatus() == ReceiveMessageDto.ProcessStatus.PROCESS_RECEIVED) { + dfxAgentMessageHistoryMapper.insertDfxAgentMessageHistory(dfxAgentMessageHistoryDto); + } + else if(receiveMessageDto.getProcessStatus() == ReceiveMessageDto.ProcessStatus.PROCESS_DONE) { + // update PROCESS_DONE + dfxAgentMessageHistoryMapper.updateDfxAgentMessageHistoryForProcessAck((dfxAgentMessageHistoryDto)); + } ackDto = AckDto.builder().result(AckDto.ResultType.RECEIVE_SUCCESS).build(); } catch (IllegalMessageException | NullMessageException | InCompleteMessageException e) { log.error("{}", e, e); diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 4f2d654..367b6fa 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -39,7 +39,7 @@ server: include-stacktrace: always port: 17443 ssl: - enabled: false + enabled: true certificate: ${user.home}/.vite-plugin-mkcert/bsm-lab.dev.pem certificate-private-key: ${user.home}/.vite-plugin-mkcert/bsm-lab.dev-key.pem diff --git a/src/main/resources/mapper/app/dfx-agent-message-history.xml b/src/main/resources/mapper/app/dfx-agent-message-history.xml index 096a332..93a90e8 100644 --- a/src/main/resources/mapper/app/dfx-agent-message-history.xml +++ b/src/main/resources/mapper/app/dfx-agent-message-history.xml @@ -4,7 +4,14 @@