From 8de352fc11f092b61f9d30c4e4cc971fc1bcbbd7 Mon Sep 17 00:00:00 2001 From: Subin Cho Date: Thu, 22 May 2025 14:24:04 +0900 Subject: [PATCH 1/7] =?UTF-8?q?feat=20|=20sprint2=20|=20FRB-173=20|=20?= =?UTF-8?q?=EB=94=94=EB=A0=89=ED=86=A0=EB=A6=AC=20=EA=B5=AC=EC=A1=B0=20?= =?UTF-8?q?=EB=8F=84=EB=A9=94=EC=9D=B8=ED=98=95=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=20|=20=EC=A1=B0=EC=88=98=EB=B9=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../abnormalLog/api}/AbnormalController.java | 8 ++--- .../application}/AbnormalLogService.java | 31 +++++++++--------- .../abnormalLog/dao}/AbnLogRepository.java | 4 +-- .../abnormalLog/dto}/AbnormalLogDto.java | 2 +- .../abnormalLog/dto}/AbnormalPagingDto.java | 2 +- .../dto}/AbnormalTargetTypeDto.java | 2 +- .../abnormalLog/dto}/LogType.java | 2 +- .../dto}/SystemLogResponseDto.java | 4 +-- .../abnormalLog}/entity/AbnormalLog.java | 5 +-- .../controlLog}/entity/ControlLog.java | 4 ++- .../equip/api}/EquipController.java | 10 +++--- .../equip/application}/EquipService.java | 18 +++++------ .../equip/dao}/EquipRepository.java | 6 ++-- .../equip}/dto/EquipCreateRequest.java | 2 +- .../{ => domain/equip}/dto/EquipDto.java | 2 +- .../equip}/dto/EquipUpdateDto.java | 2 +- .../{ => domain/equip}/entity/Equip.java | 3 +- .../api}/NotificationController.java | 2 +- .../notifyLog}/entity/NotifyLog.java | 4 ++- .../sensor/api}/SensorController.java | 8 ++--- .../sensor/application}/SensorService.java | 20 ++++++------ .../sensor/dao}/SensorRepository.java | 6 ++-- .../sensor}/dto/SensorDataDto.java | 2 +- .../{ => domain/sensor}/dto/SensorDto.java | 4 +-- .../sensor}/dto/SensorKafkaDto.java | 2 +- .../sensor}/dto/SensorUpdateDto.java | 2 +- .../{ => domain/sensor}/entity/Sensor.java | 6 ++-- .../wearable}/entity/Wearable.java | 2 +- .../wearable}/entity/WearableHist.java | 4 ++- .../worker/api}/WorkerController.java | 8 ++--- .../worker/application}/WorkerService.java | 19 +++++------ .../worker/dao}/WorkerRepository.java | 4 +-- .../{ => domain/worker}/dto/WorkerDto.java | 4 +-- .../worker}/dto/WorkerLocationRequest.java | 2 +- .../{ => domain/worker}/entity/Worker.java | 2 +- .../workerZone/dao}/WorkerZoneRepository.java | 6 ++-- .../workerZone}/entity/WorkerZone.java | 4 ++- .../workerZone}/entity/WorkerZoneId.java | 2 +- .../zone/api}/SystemLogController.java | 8 ++--- .../zone/api}/WorkerLocationController.java | 6 ++-- .../zone/api}/ZoneController.java | 10 +++--- .../application}/WorkerLocationService.java | 14 ++++---- .../zone/application}/ZoneService.java | 24 ++++++++------ .../zone/dao}/ZoneHistRepository.java | 4 +-- .../zone/dao}/ZoneRepository.java | 4 +-- .../{ => domain/zone}/dto/FacilityDto.java | 3 +- .../{ => domain/zone}/dto/SystemLogDto.java | 2 +- .../{ => domain/zone}/dto/ZoneDangerDto.java | 2 +- .../{ => domain/zone}/dto/ZoneDto.java | 2 +- .../{entity => domain/zone/dto}/ZoneHist.java | 4 ++- .../{ => domain/zone}/dto/ZoneItemDto.java | 3 +- .../zone}/dto/ZoneManagerResponseDto.java | 6 ++-- .../{ => domain/zone}/dto/ZoneUpdateDto.java | 2 +- .../{ => domain/zone}/entity/Zone.java | 2 +- .../{ => global}/config/AwsMqttListener.java | 8 ++--- .../{ => global}/config/AwsServiceConfig.java | 2 +- .../config/ElasticsearchConfig.java | 2 +- .../{ => global}/config/MqttConfig.java | 4 +-- .../{ => global}/config/WebConfig.java | 2 +- .../{ => global}/config/WebSocketConfig.java | 2 +- .../{ => global}/kafka/KafkaConsumerD.java | 32 +++++++++---------- .../kafka/consumer/KafkaConsumer.java | 6 ++-- .../kafka/processor/SensorEventProcessor.java | 16 +++++----- .../strategy/NotificationStrategyFactory.java | 6 ++-- .../AppPushNotificationStrategy.java | 6 ++-- .../alarmList/NotificationStrategy.java | 6 ++-- .../alarmList/SmsNotificationStrategy.java | 10 +++--- .../WebSocketNotificationStrategy.java | 8 ++--- .../DefaultRiskMessageProvider.java | 6 ++-- .../alarmMessage/RiskMessageProvider.java | 8 +++++ .../kafka/strategy/enums/AlarmEventDto.java | 2 +- .../kafka/strategy/enums/RiskLevel.java | 2 +- .../kafka/strategy/enums/SensorType.java | 2 +- .../{ => global}/mqtt/MqttService.java | 8 ++--- .../{ => global}/sender/WebSocketSender.java | 8 ++--- .../{ => global}/util/EquipIdGenerator.java | 4 +-- .../backend/{ => global}/util/SslUtil.java | 2 +- .../{ => global}/util/ZoneIdGenerator.java | 2 +- .../alarmMessage/RiskMessageProvider.java | 8 ----- .../backend/service/AlarmEventService.java | 15 +++++---- .../backend/service/AutoControlService.java | 6 ++-- .../backend/service/WorkerServiceTest.java | 12 ++++--- .../strategy/SmsNotificationStrategyTest.java | 4 +-- 83 files changed, 268 insertions(+), 247 deletions(-) rename src/main/java/com/factoreal/backend/{controller => domain/abnormalLog/api}/AbnormalController.java (88%) rename src/main/java/com/factoreal/backend/{service => domain/abnormalLog/application}/AbnormalLogService.java (88%) rename src/main/java/com/factoreal/backend/{repository => domain/abnormalLog/dao}/AbnLogRepository.java (85%) rename src/main/java/com/factoreal/backend/{dto/abnormalLog => domain/abnormalLog/dto}/AbnormalLogDto.java (89%) rename src/main/java/com/factoreal/backend/{dto/abnormalLog => domain/abnormalLog/dto}/AbnormalPagingDto.java (86%) rename src/main/java/com/factoreal/backend/{dto/abnormalLog => domain/abnormalLog/dto}/AbnormalTargetTypeDto.java (67%) rename src/main/java/com/factoreal/backend/{dto/abnormalLog => domain/abnormalLog/dto}/LogType.java (52%) rename src/main/java/com/factoreal/backend/{dto/abnormalLog => domain/abnormalLog/dto}/SystemLogResponseDto.java (94%) rename src/main/java/com/factoreal/backend/{ => domain/abnormalLog}/entity/AbnormalLog.java (89%) rename src/main/java/com/factoreal/backend/{ => domain/controlLog}/entity/ControlLog.java (83%) rename src/main/java/com/factoreal/backend/{controller => domain/equip/api}/EquipController.java (87%) rename src/main/java/com/factoreal/backend/{service => domain/equip/application}/EquipService.java (85%) rename src/main/java/com/factoreal/backend/{repository => domain/equip/dao}/EquipRepository.java (81%) rename src/main/java/com/factoreal/backend/{ => domain/equip}/dto/EquipCreateRequest.java (87%) rename src/main/java/com/factoreal/backend/{ => domain/equip}/dto/EquipDto.java (83%) rename src/main/java/com/factoreal/backend/{ => domain/equip}/dto/EquipUpdateDto.java (84%) rename src/main/java/com/factoreal/backend/{ => domain/equip}/entity/Equip.java (88%) rename src/main/java/com/factoreal/backend/{controller => domain/notifyLog/api}/NotificationController.java (95%) rename src/main/java/com/factoreal/backend/{ => domain/notifyLog}/entity/NotifyLog.java (82%) rename src/main/java/com/factoreal/backend/{controller => domain/sensor/api}/SensorController.java (90%) rename src/main/java/com/factoreal/backend/{service => domain/sensor/application}/SensorService.java (83%) rename src/main/java/com/factoreal/backend/{repository => domain/sensor/dao}/SensorRepository.java (63%) rename src/main/java/com/factoreal/backend/{ => domain/sensor}/dto/SensorDataDto.java (84%) rename src/main/java/com/factoreal/backend/{ => domain/sensor}/dto/SensorDto.java (89%) rename src/main/java/com/factoreal/backend/{ => domain/sensor}/dto/SensorKafkaDto.java (93%) rename src/main/java/com/factoreal/backend/{ => domain/sensor}/dto/SensorUpdateDto.java (88%) rename src/main/java/com/factoreal/backend/{ => domain/sensor}/entity/Sensor.java (83%) rename src/main/java/com/factoreal/backend/{ => domain/wearable}/entity/Wearable.java (92%) rename src/main/java/com/factoreal/backend/{ => domain/wearable}/entity/WearableHist.java (87%) rename src/main/java/com/factoreal/backend/{controller => domain/worker/api}/WorkerController.java (88%) rename src/main/java/com/factoreal/backend/{service => domain/worker/application}/WorkerService.java (84%) rename src/main/java/com/factoreal/backend/{repository => domain/worker/dao}/WorkerRepository.java (56%) rename src/main/java/com/factoreal/backend/{ => domain/worker}/dto/WorkerDto.java (87%) rename src/main/java/com/factoreal/backend/{ => domain/worker}/dto/WorkerLocationRequest.java (88%) rename src/main/java/com/factoreal/backend/{ => domain/worker}/entity/Worker.java (92%) rename src/main/java/com/factoreal/backend/{repository => domain/workerZone/dao}/WorkerZoneRepository.java (71%) rename src/main/java/com/factoreal/backend/{ => domain/workerZone}/entity/WorkerZone.java (78%) rename src/main/java/com/factoreal/backend/{ => domain/workerZone}/entity/WorkerZoneId.java (88%) rename src/main/java/com/factoreal/backend/{controller => domain/zone/api}/SystemLogController.java (82%) rename src/main/java/com/factoreal/backend/{controller => domain/zone/api}/WorkerLocationController.java (87%) rename src/main/java/com/factoreal/backend/{controller => domain/zone/api}/ZoneController.java (89%) rename src/main/java/com/factoreal/backend/{service => domain/zone/application}/WorkerLocationService.java (87%) rename src/main/java/com/factoreal/backend/{service => domain/zone/application}/ZoneService.java (86%) rename src/main/java/com/factoreal/backend/{repository => domain/zone/dao}/ZoneHistRepository.java (82%) rename src/main/java/com/factoreal/backend/{repository => domain/zone/dao}/ZoneRepository.java (71%) rename src/main/java/com/factoreal/backend/{ => domain/zone}/dto/FacilityDto.java (82%) rename src/main/java/com/factoreal/backend/{ => domain/zone}/dto/SystemLogDto.java (92%) rename src/main/java/com/factoreal/backend/{ => domain/zone}/dto/ZoneDangerDto.java (85%) rename src/main/java/com/factoreal/backend/{ => domain/zone}/dto/ZoneDto.java (84%) rename src/main/java/com/factoreal/backend/{entity => domain/zone/dto}/ZoneHist.java (85%) rename src/main/java/com/factoreal/backend/{ => domain/zone}/dto/ZoneItemDto.java (76%) rename src/main/java/com/factoreal/backend/{ => domain/zone}/dto/ZoneManagerResponseDto.java (87%) rename src/main/java/com/factoreal/backend/{ => domain/zone}/dto/ZoneUpdateDto.java (84%) rename src/main/java/com/factoreal/backend/{ => domain/zone}/entity/Zone.java (91%) rename src/main/java/com/factoreal/backend/{ => global}/config/AwsMqttListener.java (95%) rename src/main/java/com/factoreal/backend/{ => global}/config/AwsServiceConfig.java (97%) rename src/main/java/com/factoreal/backend/{ => global}/config/ElasticsearchConfig.java (94%) rename src/main/java/com/factoreal/backend/{ => global}/config/MqttConfig.java (95%) rename src/main/java/com/factoreal/backend/{ => global}/config/WebConfig.java (95%) rename src/main/java/com/factoreal/backend/{ => global}/config/WebSocketConfig.java (95%) rename src/main/java/com/factoreal/backend/{ => global}/kafka/KafkaConsumerD.java (93%) rename src/main/java/com/factoreal/backend/{ => global}/kafka/consumer/KafkaConsumer.java (90%) rename src/main/java/com/factoreal/backend/{ => global}/kafka/processor/SensorEventProcessor.java (89%) rename src/main/java/com/factoreal/backend/{ => global}/kafka/strategy/NotificationStrategyFactory.java (89%) rename src/main/java/com/factoreal/backend/{ => global}/kafka/strategy/alarmList/AppPushNotificationStrategy.java (68%) rename src/main/java/com/factoreal/backend/{ => global}/kafka/strategy/alarmList/NotificationStrategy.java (64%) rename src/main/java/com/factoreal/backend/{ => global}/kafka/strategy/alarmList/SmsNotificationStrategy.java (85%) rename src/main/java/com/factoreal/backend/{ => global}/kafka/strategy/alarmList/WebSocketNotificationStrategy.java (79%) rename src/main/java/com/factoreal/backend/{ => global}/kafka/strategy/alarmMessage/DefaultRiskMessageProvider.java (90%) create mode 100644 src/main/java/com/factoreal/backend/global/kafka/strategy/alarmMessage/RiskMessageProvider.java rename src/main/java/com/factoreal/backend/{ => global}/kafka/strategy/enums/AlarmEventDto.java (95%) rename src/main/java/com/factoreal/backend/{ => global}/kafka/strategy/enums/RiskLevel.java (94%) rename src/main/java/com/factoreal/backend/{ => global}/kafka/strategy/enums/SensorType.java (78%) rename src/main/java/com/factoreal/backend/{ => global}/mqtt/MqttService.java (92%) rename src/main/java/com/factoreal/backend/{ => global}/sender/WebSocketSender.java (84%) rename src/main/java/com/factoreal/backend/{ => global}/util/EquipIdGenerator.java (85%) rename src/main/java/com/factoreal/backend/{ => global}/util/SslUtil.java (99%) rename src/main/java/com/factoreal/backend/{ => global}/util/ZoneIdGenerator.java (92%) delete mode 100644 src/main/java/com/factoreal/backend/kafka/strategy/alarmMessage/RiskMessageProvider.java diff --git a/src/main/java/com/factoreal/backend/controller/AbnormalController.java b/src/main/java/com/factoreal/backend/domain/abnormalLog/api/AbnormalController.java similarity index 88% rename from src/main/java/com/factoreal/backend/controller/AbnormalController.java rename to src/main/java/com/factoreal/backend/domain/abnormalLog/api/AbnormalController.java index 9cfbbdd0..7c83d00d 100644 --- a/src/main/java/com/factoreal/backend/controller/AbnormalController.java +++ b/src/main/java/com/factoreal/backend/domain/abnormalLog/api/AbnormalController.java @@ -1,8 +1,8 @@ -package com.factoreal.backend.controller; +package com.factoreal.backend.domain.abnormalLog.api; -import com.factoreal.backend.dto.abnormalLog.AbnormalLogDto; -import com.factoreal.backend.dto.abnormalLog.AbnormalPagingDto; -import com.factoreal.backend.service.AbnormalLogService; +import com.factoreal.backend.domain.abnormalLog.dto.AbnormalLogDto; +import com.factoreal.backend.domain.abnormalLog.dto.AbnormalPagingDto; +import com.factoreal.backend.domain.abnormalLog.application.AbnormalLogService; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Page; import org.springframework.http.ResponseEntity; diff --git a/src/main/java/com/factoreal/backend/service/AbnormalLogService.java b/src/main/java/com/factoreal/backend/domain/abnormalLog/application/AbnormalLogService.java similarity index 88% rename from src/main/java/com/factoreal/backend/service/AbnormalLogService.java rename to src/main/java/com/factoreal/backend/domain/abnormalLog/application/AbnormalLogService.java index 6e8ca23e..af7ab66c 100644 --- a/src/main/java/com/factoreal/backend/service/AbnormalLogService.java +++ b/src/main/java/com/factoreal/backend/domain/abnormalLog/application/AbnormalLogService.java @@ -1,17 +1,18 @@ -package com.factoreal.backend.service; - -import com.factoreal.backend.dto.abnormalLog.AbnormalLogDto; -import com.factoreal.backend.dto.abnormalLog.AbnormalPagingDto; -import com.factoreal.backend.dto.abnormalLog.LogType; -import com.factoreal.backend.dto.abnormalLog.SystemLogResponseDto; -import com.factoreal.backend.dto.SensorKafkaDto; -import com.factoreal.backend.entity.AbnormalLog; -import com.factoreal.backend.entity.Zone; -import com.factoreal.backend.repository.AbnLogRepository; -import com.factoreal.backend.sender.WebSocketSender; -import com.factoreal.backend.kafka.strategy.alarmMessage.RiskMessageProvider; -import com.factoreal.backend.kafka.strategy.enums.RiskLevel; -import com.factoreal.backend.kafka.strategy.enums.SensorType; +package com.factoreal.backend.domain.abnormalLog.application; + +import com.factoreal.backend.domain.zone.application.ZoneService; +import com.factoreal.backend.domain.abnormalLog.dto.AbnormalLogDto; +import com.factoreal.backend.domain.abnormalLog.dto.AbnormalPagingDto; +import com.factoreal.backend.domain.abnormalLog.dto.LogType; +import com.factoreal.backend.domain.abnormalLog.dto.SystemLogResponseDto; +import com.factoreal.backend.domain.sensor.dto.SensorKafkaDto; +import com.factoreal.backend.domain.abnormalLog.entity.AbnormalLog; +import com.factoreal.backend.domain.zone.entity.Zone; +import com.factoreal.backend.domain.abnormalLog.dao.AbnLogRepository; +import com.factoreal.backend.global.sender.WebSocketSender; +import com.factoreal.backend.global.kafka.strategy.alarmMessage.RiskMessageProvider; +import com.factoreal.backend.global.kafka.strategy.enums.RiskLevel; +import com.factoreal.backend.global.kafka.strategy.enums.SensorType; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -24,8 +25,6 @@ import org.springframework.web.server.ResponseStatusException; import java.time.LocalDateTime; -import java.util.List; -import java.util.stream.Collectors; @Service @Slf4j diff --git a/src/main/java/com/factoreal/backend/repository/AbnLogRepository.java b/src/main/java/com/factoreal/backend/domain/abnormalLog/dao/AbnLogRepository.java similarity index 85% rename from src/main/java/com/factoreal/backend/repository/AbnLogRepository.java rename to src/main/java/com/factoreal/backend/domain/abnormalLog/dao/AbnLogRepository.java index b066b882..04b39da9 100644 --- a/src/main/java/com/factoreal/backend/repository/AbnLogRepository.java +++ b/src/main/java/com/factoreal/backend/domain/abnormalLog/dao/AbnLogRepository.java @@ -1,6 +1,6 @@ -package com.factoreal.backend.repository; +package com.factoreal.backend.domain.abnormalLog.dao; -import com.factoreal.backend.entity.AbnormalLog; +import com.factoreal.backend.domain.abnormalLog.entity.AbnormalLog; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/src/main/java/com/factoreal/backend/dto/abnormalLog/AbnormalLogDto.java b/src/main/java/com/factoreal/backend/domain/abnormalLog/dto/AbnormalLogDto.java similarity index 89% rename from src/main/java/com/factoreal/backend/dto/abnormalLog/AbnormalLogDto.java rename to src/main/java/com/factoreal/backend/domain/abnormalLog/dto/AbnormalLogDto.java index fd57c79e..85137923 100644 --- a/src/main/java/com/factoreal/backend/dto/abnormalLog/AbnormalLogDto.java +++ b/src/main/java/com/factoreal/backend/domain/abnormalLog/dto/AbnormalLogDto.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.dto.abnormalLog; +package com.factoreal.backend.domain.abnormalLog.dto; import lombok.Builder; import lombok.Data; diff --git a/src/main/java/com/factoreal/backend/dto/abnormalLog/AbnormalPagingDto.java b/src/main/java/com/factoreal/backend/domain/abnormalLog/dto/AbnormalPagingDto.java similarity index 86% rename from src/main/java/com/factoreal/backend/dto/abnormalLog/AbnormalPagingDto.java rename to src/main/java/com/factoreal/backend/domain/abnormalLog/dto/AbnormalPagingDto.java index 7c90ea2a..9afb9fc1 100644 --- a/src/main/java/com/factoreal/backend/dto/abnormalLog/AbnormalPagingDto.java +++ b/src/main/java/com/factoreal/backend/domain/abnormalLog/dto/AbnormalPagingDto.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.dto.abnormalLog; +package com.factoreal.backend.domain.abnormalLog.dto; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/src/main/java/com/factoreal/backend/dto/abnormalLog/AbnormalTargetTypeDto.java b/src/main/java/com/factoreal/backend/domain/abnormalLog/dto/AbnormalTargetTypeDto.java similarity index 67% rename from src/main/java/com/factoreal/backend/dto/abnormalLog/AbnormalTargetTypeDto.java rename to src/main/java/com/factoreal/backend/domain/abnormalLog/dto/AbnormalTargetTypeDto.java index b7f7b30d..bfcf566f 100644 --- a/src/main/java/com/factoreal/backend/dto/abnormalLog/AbnormalTargetTypeDto.java +++ b/src/main/java/com/factoreal/backend/domain/abnormalLog/dto/AbnormalTargetTypeDto.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.dto.abnormalLog; +package com.factoreal.backend.domain.abnormalLog.dto; import lombok.Data; diff --git a/src/main/java/com/factoreal/backend/dto/abnormalLog/LogType.java b/src/main/java/com/factoreal/backend/domain/abnormalLog/dto/LogType.java similarity index 52% rename from src/main/java/com/factoreal/backend/dto/abnormalLog/LogType.java rename to src/main/java/com/factoreal/backend/domain/abnormalLog/dto/LogType.java index 43c17a91..d79e6efc 100644 --- a/src/main/java/com/factoreal/backend/dto/abnormalLog/LogType.java +++ b/src/main/java/com/factoreal/backend/domain/abnormalLog/dto/LogType.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.dto.abnormalLog; +package com.factoreal.backend.domain.abnormalLog.dto; public enum LogType { Sensor, diff --git a/src/main/java/com/factoreal/backend/dto/abnormalLog/SystemLogResponseDto.java b/src/main/java/com/factoreal/backend/domain/abnormalLog/dto/SystemLogResponseDto.java similarity index 94% rename from src/main/java/com/factoreal/backend/dto/abnormalLog/SystemLogResponseDto.java rename to src/main/java/com/factoreal/backend/domain/abnormalLog/dto/SystemLogResponseDto.java index c6fe9ea6..116db2cf 100644 --- a/src/main/java/com/factoreal/backend/dto/abnormalLog/SystemLogResponseDto.java +++ b/src/main/java/com/factoreal/backend/domain/abnormalLog/dto/SystemLogResponseDto.java @@ -1,6 +1,6 @@ -package com.factoreal.backend.dto.abnormalLog; +package com.factoreal.backend.domain.abnormalLog.dto; -import com.factoreal.backend.entity.AbnormalLog; +import com.factoreal.backend.domain.abnormalLog.entity.AbnormalLog; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/src/main/java/com/factoreal/backend/entity/AbnormalLog.java b/src/main/java/com/factoreal/backend/domain/abnormalLog/entity/AbnormalLog.java similarity index 89% rename from src/main/java/com/factoreal/backend/entity/AbnormalLog.java rename to src/main/java/com/factoreal/backend/domain/abnormalLog/entity/AbnormalLog.java index d3f53ae9..52ffb8f1 100644 --- a/src/main/java/com/factoreal/backend/entity/AbnormalLog.java +++ b/src/main/java/com/factoreal/backend/domain/abnormalLog/entity/AbnormalLog.java @@ -1,6 +1,7 @@ -package com.factoreal.backend.entity; +package com.factoreal.backend.domain.abnormalLog.entity; -import com.factoreal.backend.dto.abnormalLog.LogType; +import com.factoreal.backend.domain.zone.entity.Zone; +import com.factoreal.backend.domain.abnormalLog.dto.LogType; import jakarta.persistence.*; import lombok.*; import org.springframework.data.annotation.CreatedDate; diff --git a/src/main/java/com/factoreal/backend/entity/ControlLog.java b/src/main/java/com/factoreal/backend/domain/controlLog/entity/ControlLog.java similarity index 83% rename from src/main/java/com/factoreal/backend/entity/ControlLog.java rename to src/main/java/com/factoreal/backend/domain/controlLog/entity/ControlLog.java index 9e2d1bbc..77bd352b 100644 --- a/src/main/java/com/factoreal/backend/entity/ControlLog.java +++ b/src/main/java/com/factoreal/backend/domain/controlLog/entity/ControlLog.java @@ -1,5 +1,7 @@ -package com.factoreal.backend.entity; +package com.factoreal.backend.domain.controlLog.entity; +import com.factoreal.backend.domain.abnormalLog.entity.AbnormalLog; +import com.factoreal.backend.domain.zone.entity.Zone; import jakarta.persistence.*; import lombok.*; diff --git a/src/main/java/com/factoreal/backend/controller/EquipController.java b/src/main/java/com/factoreal/backend/domain/equip/api/EquipController.java similarity index 87% rename from src/main/java/com/factoreal/backend/controller/EquipController.java rename to src/main/java/com/factoreal/backend/domain/equip/api/EquipController.java index 5cf310c4..afb98cb6 100644 --- a/src/main/java/com/factoreal/backend/controller/EquipController.java +++ b/src/main/java/com/factoreal/backend/domain/equip/api/EquipController.java @@ -1,9 +1,9 @@ -package com.factoreal.backend.controller; +package com.factoreal.backend.domain.equip.api; -import com.factoreal.backend.dto.EquipCreateRequest; -import com.factoreal.backend.dto.EquipDto; -import com.factoreal.backend.dto.EquipUpdateDto; -import com.factoreal.backend.service.EquipService; +import com.factoreal.backend.domain.equip.dto.EquipCreateRequest; +import com.factoreal.backend.domain.equip.dto.EquipDto; +import com.factoreal.backend.domain.equip.dto.EquipUpdateDto; +import com.factoreal.backend.domain.equip.application.EquipService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; diff --git a/src/main/java/com/factoreal/backend/service/EquipService.java b/src/main/java/com/factoreal/backend/domain/equip/application/EquipService.java similarity index 85% rename from src/main/java/com/factoreal/backend/service/EquipService.java rename to src/main/java/com/factoreal/backend/domain/equip/application/EquipService.java index daed1256..61bc2e6c 100644 --- a/src/main/java/com/factoreal/backend/service/EquipService.java +++ b/src/main/java/com/factoreal/backend/domain/equip/application/EquipService.java @@ -1,13 +1,13 @@ -package com.factoreal.backend.service; +package com.factoreal.backend.domain.equip.application; -import com.factoreal.backend.dto.EquipCreateRequest; -import com.factoreal.backend.dto.EquipDto; -import com.factoreal.backend.dto.EquipUpdateDto; -import com.factoreal.backend.entity.Equip; -import com.factoreal.backend.entity.Zone; -import com.factoreal.backend.repository.EquipRepository; -import com.factoreal.backend.repository.ZoneRepository; -import com.factoreal.backend.util.EquipIdGenerator; +import com.factoreal.backend.domain.equip.dto.EquipCreateRequest; +import com.factoreal.backend.domain.equip.dto.EquipDto; +import com.factoreal.backend.domain.equip.dto.EquipUpdateDto; +import com.factoreal.backend.domain.equip.entity.Equip; +import com.factoreal.backend.domain.zone.entity.Zone; +import com.factoreal.backend.domain.equip.dao.EquipRepository; +import com.factoreal.backend.domain.zone.dao.ZoneRepository; +import com.factoreal.backend.global.util.EquipIdGenerator; import jakarta.transaction.Transactional; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; diff --git a/src/main/java/com/factoreal/backend/repository/EquipRepository.java b/src/main/java/com/factoreal/backend/domain/equip/dao/EquipRepository.java similarity index 81% rename from src/main/java/com/factoreal/backend/repository/EquipRepository.java rename to src/main/java/com/factoreal/backend/domain/equip/dao/EquipRepository.java index 4ce6e26f..d9aaae14 100644 --- a/src/main/java/com/factoreal/backend/repository/EquipRepository.java +++ b/src/main/java/com/factoreal/backend/domain/equip/dao/EquipRepository.java @@ -1,12 +1,12 @@ -package com.factoreal.backend.repository; +package com.factoreal.backend.domain.equip.dao; import java.util.List; import java.util.Optional; -import com.factoreal.backend.entity.Zone; +import com.factoreal.backend.domain.zone.entity.Zone; import org.springframework.data.jpa.repository.JpaRepository; -import com.factoreal.backend.entity.Equip; +import com.factoreal.backend.domain.equip.entity.Equip; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; diff --git a/src/main/java/com/factoreal/backend/dto/EquipCreateRequest.java b/src/main/java/com/factoreal/backend/domain/equip/dto/EquipCreateRequest.java similarity index 87% rename from src/main/java/com/factoreal/backend/dto/EquipCreateRequest.java rename to src/main/java/com/factoreal/backend/domain/equip/dto/EquipCreateRequest.java index d40e5aae..e13dcb91 100644 --- a/src/main/java/com/factoreal/backend/dto/EquipCreateRequest.java +++ b/src/main/java/com/factoreal/backend/domain/equip/dto/EquipCreateRequest.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.dto; +package com.factoreal.backend.domain.equip.dto; import lombok.Getter; import lombok.Setter; diff --git a/src/main/java/com/factoreal/backend/dto/EquipDto.java b/src/main/java/com/factoreal/backend/domain/equip/dto/EquipDto.java similarity index 83% rename from src/main/java/com/factoreal/backend/dto/EquipDto.java rename to src/main/java/com/factoreal/backend/domain/equip/dto/EquipDto.java index 2b79c9e0..86c2df77 100644 --- a/src/main/java/com/factoreal/backend/dto/EquipDto.java +++ b/src/main/java/com/factoreal/backend/domain/equip/dto/EquipDto.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.dto; +package com.factoreal.backend.domain.equip.dto; import lombok.*; diff --git a/src/main/java/com/factoreal/backend/dto/EquipUpdateDto.java b/src/main/java/com/factoreal/backend/domain/equip/dto/EquipUpdateDto.java similarity index 84% rename from src/main/java/com/factoreal/backend/dto/EquipUpdateDto.java rename to src/main/java/com/factoreal/backend/domain/equip/dto/EquipUpdateDto.java index c3c2a7bd..55a89900 100644 --- a/src/main/java/com/factoreal/backend/dto/EquipUpdateDto.java +++ b/src/main/java/com/factoreal/backend/domain/equip/dto/EquipUpdateDto.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.dto; +package com.factoreal.backend.domain.equip.dto; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/src/main/java/com/factoreal/backend/entity/Equip.java b/src/main/java/com/factoreal/backend/domain/equip/entity/Equip.java similarity index 88% rename from src/main/java/com/factoreal/backend/entity/Equip.java rename to src/main/java/com/factoreal/backend/domain/equip/entity/Equip.java index 80a39fea..7d01fa1c 100644 --- a/src/main/java/com/factoreal/backend/entity/Equip.java +++ b/src/main/java/com/factoreal/backend/domain/equip/entity/Equip.java @@ -1,5 +1,6 @@ -package com.factoreal.backend.entity; +package com.factoreal.backend.domain.equip.entity; +import com.factoreal.backend.domain.zone.entity.Zone; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.FetchType; diff --git a/src/main/java/com/factoreal/backend/controller/NotificationController.java b/src/main/java/com/factoreal/backend/domain/notifyLog/api/NotificationController.java similarity index 95% rename from src/main/java/com/factoreal/backend/controller/NotificationController.java rename to src/main/java/com/factoreal/backend/domain/notifyLog/api/NotificationController.java index 72465913..b39dd453 100644 --- a/src/main/java/com/factoreal/backend/controller/NotificationController.java +++ b/src/main/java/com/factoreal/backend/domain/notifyLog/api/NotificationController.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.controller; +package com.factoreal.backend.domain.notifyLog.api; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; diff --git a/src/main/java/com/factoreal/backend/entity/NotifyLog.java b/src/main/java/com/factoreal/backend/domain/notifyLog/entity/NotifyLog.java similarity index 82% rename from src/main/java/com/factoreal/backend/entity/NotifyLog.java rename to src/main/java/com/factoreal/backend/domain/notifyLog/entity/NotifyLog.java index 784c32e8..3c70a1d8 100644 --- a/src/main/java/com/factoreal/backend/entity/NotifyLog.java +++ b/src/main/java/com/factoreal/backend/domain/notifyLog/entity/NotifyLog.java @@ -1,5 +1,7 @@ -package com.factoreal.backend.entity; +package com.factoreal.backend.domain.notifyLog.entity; +import com.factoreal.backend.domain.abnormalLog.entity.AbnormalLog; +import com.factoreal.backend.domain.wearable.entity.Wearable; import jakarta.persistence.*; import lombok.*; diff --git a/src/main/java/com/factoreal/backend/controller/SensorController.java b/src/main/java/com/factoreal/backend/domain/sensor/api/SensorController.java similarity index 90% rename from src/main/java/com/factoreal/backend/controller/SensorController.java rename to src/main/java/com/factoreal/backend/domain/sensor/api/SensorController.java index 30cf0088..a5a24ba8 100644 --- a/src/main/java/com/factoreal/backend/controller/SensorController.java +++ b/src/main/java/com/factoreal/backend/domain/sensor/api/SensorController.java @@ -1,8 +1,8 @@ -package com.factoreal.backend.controller; +package com.factoreal.backend.domain.sensor.api; -import com.factoreal.backend.dto.SensorDto; -import com.factoreal.backend.dto.SensorUpdateDto; -import com.factoreal.backend.service.SensorService; +import com.factoreal.backend.domain.sensor.dto.SensorDto; +import com.factoreal.backend.domain.sensor.dto.SensorUpdateDto; +import com.factoreal.backend.domain.sensor.application.SensorService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.http.ResponseEntity; diff --git a/src/main/java/com/factoreal/backend/service/SensorService.java b/src/main/java/com/factoreal/backend/domain/sensor/application/SensorService.java similarity index 83% rename from src/main/java/com/factoreal/backend/service/SensorService.java rename to src/main/java/com/factoreal/backend/domain/sensor/application/SensorService.java index 3e78d1d4..7e0cf594 100644 --- a/src/main/java/com/factoreal/backend/service/SensorService.java +++ b/src/main/java/com/factoreal/backend/domain/sensor/application/SensorService.java @@ -1,23 +1,23 @@ -package com.factoreal.backend.service; +package com.factoreal.backend.domain.sensor.application; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; -import com.factoreal.backend.kafka.strategy.enums.SensorType; +import com.factoreal.backend.global.kafka.strategy.enums.SensorType; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.server.ResponseStatusException; -import com.factoreal.backend.dto.SensorDto; -import com.factoreal.backend.dto.SensorUpdateDto; -import com.factoreal.backend.entity.Equip; -import com.factoreal.backend.entity.Sensor; -import com.factoreal.backend.entity.Zone; -import com.factoreal.backend.repository.EquipRepository; -import com.factoreal.backend.repository.SensorRepository; -import com.factoreal.backend.repository.ZoneRepository; +import com.factoreal.backend.domain.sensor.dto.SensorDto; +import com.factoreal.backend.domain.sensor.dto.SensorUpdateDto; +import com.factoreal.backend.domain.equip.entity.Equip; +import com.factoreal.backend.domain.sensor.entity.Sensor; +import com.factoreal.backend.domain.zone.entity.Zone; +import com.factoreal.backend.domain.equip.dao.EquipRepository; +import com.factoreal.backend.domain.sensor.dao.SensorRepository; +import com.factoreal.backend.domain.zone.dao.ZoneRepository; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/factoreal/backend/repository/SensorRepository.java b/src/main/java/com/factoreal/backend/domain/sensor/dao/SensorRepository.java similarity index 63% rename from src/main/java/com/factoreal/backend/repository/SensorRepository.java rename to src/main/java/com/factoreal/backend/domain/sensor/dao/SensorRepository.java index 99928960..186ccae2 100644 --- a/src/main/java/com/factoreal/backend/repository/SensorRepository.java +++ b/src/main/java/com/factoreal/backend/domain/sensor/dao/SensorRepository.java @@ -1,11 +1,11 @@ -package com.factoreal.backend.repository; +package com.factoreal.backend.domain.sensor.dao; import java.util.Optional; -import com.factoreal.backend.entity.Zone; +import com.factoreal.backend.domain.zone.entity.Zone; import org.springframework.data.jpa.repository.JpaRepository; -import com.factoreal.backend.entity.Sensor; +import com.factoreal.backend.domain.sensor.entity.Sensor; import java.util.List; diff --git a/src/main/java/com/factoreal/backend/dto/SensorDataDto.java b/src/main/java/com/factoreal/backend/domain/sensor/dto/SensorDataDto.java similarity index 84% rename from src/main/java/com/factoreal/backend/dto/SensorDataDto.java rename to src/main/java/com/factoreal/backend/domain/sensor/dto/SensorDataDto.java index 12fc3224..33a769b8 100644 --- a/src/main/java/com/factoreal/backend/dto/SensorDataDto.java +++ b/src/main/java/com/factoreal/backend/domain/sensor/dto/SensorDataDto.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.dto; +package com.factoreal.backend.domain.sensor.dto; import lombok.Builder; import lombok.Data; diff --git a/src/main/java/com/factoreal/backend/dto/SensorDto.java b/src/main/java/com/factoreal/backend/domain/sensor/dto/SensorDto.java similarity index 89% rename from src/main/java/com/factoreal/backend/dto/SensorDto.java rename to src/main/java/com/factoreal/backend/domain/sensor/dto/SensorDto.java index 5e13afe9..b91c88bd 100644 --- a/src/main/java/com/factoreal/backend/dto/SensorDto.java +++ b/src/main/java/com/factoreal/backend/domain/sensor/dto/SensorDto.java @@ -1,6 +1,6 @@ -package com.factoreal.backend.dto; +package com.factoreal.backend.domain.sensor.dto; -import com.factoreal.backend.entity.Sensor; +import com.factoreal.backend.domain.sensor.entity.Sensor; import lombok.*; @Getter diff --git a/src/main/java/com/factoreal/backend/dto/SensorKafkaDto.java b/src/main/java/com/factoreal/backend/domain/sensor/dto/SensorKafkaDto.java similarity index 93% rename from src/main/java/com/factoreal/backend/dto/SensorKafkaDto.java rename to src/main/java/com/factoreal/backend/domain/sensor/dto/SensorKafkaDto.java index f1ae5000..2da45c8b 100644 --- a/src/main/java/com/factoreal/backend/dto/SensorKafkaDto.java +++ b/src/main/java/com/factoreal/backend/domain/sensor/dto/SensorKafkaDto.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.dto; +package com.factoreal.backend.domain.sensor.dto; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/src/main/java/com/factoreal/backend/dto/SensorUpdateDto.java b/src/main/java/com/factoreal/backend/domain/sensor/dto/SensorUpdateDto.java similarity index 88% rename from src/main/java/com/factoreal/backend/dto/SensorUpdateDto.java rename to src/main/java/com/factoreal/backend/domain/sensor/dto/SensorUpdateDto.java index 5bccb428..478f1577 100644 --- a/src/main/java/com/factoreal/backend/dto/SensorUpdateDto.java +++ b/src/main/java/com/factoreal/backend/domain/sensor/dto/SensorUpdateDto.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.dto; +package com.factoreal.backend.domain.sensor.dto; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/src/main/java/com/factoreal/backend/entity/Sensor.java b/src/main/java/com/factoreal/backend/domain/sensor/entity/Sensor.java similarity index 83% rename from src/main/java/com/factoreal/backend/entity/Sensor.java rename to src/main/java/com/factoreal/backend/domain/sensor/entity/Sensor.java index 2c9d7835..36893377 100644 --- a/src/main/java/com/factoreal/backend/entity/Sensor.java +++ b/src/main/java/com/factoreal/backend/domain/sensor/entity/Sensor.java @@ -1,6 +1,8 @@ -package com.factoreal.backend.entity; +package com.factoreal.backend.domain.sensor.entity; -import com.factoreal.backend.kafka.strategy.enums.SensorType; +import com.factoreal.backend.domain.equip.entity.Equip; +import com.factoreal.backend.domain.zone.entity.Zone; +import com.factoreal.backend.global.kafka.strategy.enums.SensorType; import jakarta.persistence.*; import lombok.*; import java.time.LocalDateTime; diff --git a/src/main/java/com/factoreal/backend/entity/Wearable.java b/src/main/java/com/factoreal/backend/domain/wearable/entity/Wearable.java similarity index 92% rename from src/main/java/com/factoreal/backend/entity/Wearable.java rename to src/main/java/com/factoreal/backend/domain/wearable/entity/Wearable.java index f6caaf2f..ff571ea3 100644 --- a/src/main/java/com/factoreal/backend/entity/Wearable.java +++ b/src/main/java/com/factoreal/backend/domain/wearable/entity/Wearable.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.entity; +package com.factoreal.backend.domain.wearable.entity; import jakarta.persistence.Column; import jakarta.persistence.Entity; diff --git a/src/main/java/com/factoreal/backend/entity/WearableHist.java b/src/main/java/com/factoreal/backend/domain/wearable/entity/WearableHist.java similarity index 87% rename from src/main/java/com/factoreal/backend/entity/WearableHist.java rename to src/main/java/com/factoreal/backend/domain/wearable/entity/WearableHist.java index 18bb9c49..a77e6c5b 100644 --- a/src/main/java/com/factoreal/backend/entity/WearableHist.java +++ b/src/main/java/com/factoreal/backend/domain/wearable/entity/WearableHist.java @@ -1,5 +1,7 @@ -package com.factoreal.backend.entity; +package com.factoreal.backend.domain.wearable.entity; +import com.factoreal.backend.domain.worker.entity.Worker; +import com.factoreal.backend.domain.zone.entity.Zone; import jakarta.persistence.*; import lombok.*; diff --git a/src/main/java/com/factoreal/backend/controller/WorkerController.java b/src/main/java/com/factoreal/backend/domain/worker/api/WorkerController.java similarity index 88% rename from src/main/java/com/factoreal/backend/controller/WorkerController.java rename to src/main/java/com/factoreal/backend/domain/worker/api/WorkerController.java index e4efd46f..4359a256 100644 --- a/src/main/java/com/factoreal/backend/controller/WorkerController.java +++ b/src/main/java/com/factoreal/backend/domain/worker/api/WorkerController.java @@ -1,8 +1,8 @@ -package com.factoreal.backend.controller; +package com.factoreal.backend.domain.worker.api; -import com.factoreal.backend.dto.WorkerDto; -import com.factoreal.backend.dto.ZoneManagerResponseDto; -import com.factoreal.backend.service.WorkerService; +import com.factoreal.backend.domain.worker.dto.WorkerDto; +import com.factoreal.backend.domain.zone.dto.ZoneManagerResponseDto; +import com.factoreal.backend.domain.worker.application.WorkerService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; diff --git a/src/main/java/com/factoreal/backend/service/WorkerService.java b/src/main/java/com/factoreal/backend/domain/worker/application/WorkerService.java similarity index 84% rename from src/main/java/com/factoreal/backend/service/WorkerService.java rename to src/main/java/com/factoreal/backend/domain/worker/application/WorkerService.java index 27b49682..911b6080 100644 --- a/src/main/java/com/factoreal/backend/service/WorkerService.java +++ b/src/main/java/com/factoreal/backend/domain/worker/application/WorkerService.java @@ -1,13 +1,14 @@ -package com.factoreal.backend.service; +package com.factoreal.backend.domain.worker.application; -import com.factoreal.backend.dto.WorkerDto; -import com.factoreal.backend.dto.ZoneManagerResponseDto; -import com.factoreal.backend.entity.Worker; -import com.factoreal.backend.entity.WorkerZone; -import com.factoreal.backend.entity.Zone; -import com.factoreal.backend.entity.ZoneHist; -import com.factoreal.backend.repository.WorkerRepository; -import com.factoreal.backend.repository.WorkerZoneRepository; +import com.factoreal.backend.domain.worker.dto.WorkerDto; +import com.factoreal.backend.domain.zone.dto.ZoneManagerResponseDto; +import com.factoreal.backend.domain.worker.entity.Worker; +import com.factoreal.backend.domain.workerZone.entity.WorkerZone; +import com.factoreal.backend.domain.zone.entity.Zone; +import com.factoreal.backend.domain.zone.dto.ZoneHist; +import com.factoreal.backend.domain.worker.dao.WorkerRepository; +import com.factoreal.backend.domain.workerZone.dao.WorkerZoneRepository; +import com.factoreal.backend.domain.zone.application.WorkerLocationService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; diff --git a/src/main/java/com/factoreal/backend/repository/WorkerRepository.java b/src/main/java/com/factoreal/backend/domain/worker/dao/WorkerRepository.java similarity index 56% rename from src/main/java/com/factoreal/backend/repository/WorkerRepository.java rename to src/main/java/com/factoreal/backend/domain/worker/dao/WorkerRepository.java index b6b15dd9..144e43fc 100644 --- a/src/main/java/com/factoreal/backend/repository/WorkerRepository.java +++ b/src/main/java/com/factoreal/backend/domain/worker/dao/WorkerRepository.java @@ -1,6 +1,6 @@ -package com.factoreal.backend.repository; +package com.factoreal.backend.domain.worker.dao; -import com.factoreal.backend.entity.Worker; +import com.factoreal.backend.domain.worker.entity.Worker; import org.springframework.data.jpa.repository.JpaRepository; public interface WorkerRepository extends JpaRepository { diff --git a/src/main/java/com/factoreal/backend/dto/WorkerDto.java b/src/main/java/com/factoreal/backend/domain/worker/dto/WorkerDto.java similarity index 87% rename from src/main/java/com/factoreal/backend/dto/WorkerDto.java rename to src/main/java/com/factoreal/backend/domain/worker/dto/WorkerDto.java index b79b04b7..a09fcef8 100644 --- a/src/main/java/com/factoreal/backend/dto/WorkerDto.java +++ b/src/main/java/com/factoreal/backend/domain/worker/dto/WorkerDto.java @@ -1,6 +1,6 @@ -package com.factoreal.backend.dto; +package com.factoreal.backend.domain.worker.dto; -import com.factoreal.backend.entity.Worker; +import com.factoreal.backend.domain.worker.entity.Worker; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Getter; diff --git a/src/main/java/com/factoreal/backend/dto/WorkerLocationRequest.java b/src/main/java/com/factoreal/backend/domain/worker/dto/WorkerLocationRequest.java similarity index 88% rename from src/main/java/com/factoreal/backend/dto/WorkerLocationRequest.java rename to src/main/java/com/factoreal/backend/domain/worker/dto/WorkerLocationRequest.java index 7530a47e..45c5ed7a 100644 --- a/src/main/java/com/factoreal/backend/dto/WorkerLocationRequest.java +++ b/src/main/java/com/factoreal/backend/domain/worker/dto/WorkerLocationRequest.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.dto; +package com.factoreal.backend.domain.worker.dto; import lombok.Getter; import lombok.Setter; diff --git a/src/main/java/com/factoreal/backend/entity/Worker.java b/src/main/java/com/factoreal/backend/domain/worker/entity/Worker.java similarity index 92% rename from src/main/java/com/factoreal/backend/entity/Worker.java rename to src/main/java/com/factoreal/backend/domain/worker/entity/Worker.java index 6f68d4c4..aa68f0f7 100644 --- a/src/main/java/com/factoreal/backend/entity/Worker.java +++ b/src/main/java/com/factoreal/backend/domain/worker/entity/Worker.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.entity; +package com.factoreal.backend.domain.worker.entity; import jakarta.persistence.*; import lombok.*; diff --git a/src/main/java/com/factoreal/backend/repository/WorkerZoneRepository.java b/src/main/java/com/factoreal/backend/domain/workerZone/dao/WorkerZoneRepository.java similarity index 71% rename from src/main/java/com/factoreal/backend/repository/WorkerZoneRepository.java rename to src/main/java/com/factoreal/backend/domain/workerZone/dao/WorkerZoneRepository.java index ab3dd503..171bc031 100644 --- a/src/main/java/com/factoreal/backend/repository/WorkerZoneRepository.java +++ b/src/main/java/com/factoreal/backend/domain/workerZone/dao/WorkerZoneRepository.java @@ -1,7 +1,7 @@ -package com.factoreal.backend.repository; +package com.factoreal.backend.domain.workerZone.dao; -import com.factoreal.backend.entity.WorkerZone; -import com.factoreal.backend.entity.WorkerZoneId; +import com.factoreal.backend.domain.workerZone.entity.WorkerZone; +import com.factoreal.backend.domain.workerZone.entity.WorkerZoneId; import org.springframework.data.jpa.repository.JpaRepository; import java.util.List; diff --git a/src/main/java/com/factoreal/backend/entity/WorkerZone.java b/src/main/java/com/factoreal/backend/domain/workerZone/entity/WorkerZone.java similarity index 78% rename from src/main/java/com/factoreal/backend/entity/WorkerZone.java rename to src/main/java/com/factoreal/backend/domain/workerZone/entity/WorkerZone.java index 7b5ddc69..630a14cf 100644 --- a/src/main/java/com/factoreal/backend/entity/WorkerZone.java +++ b/src/main/java/com/factoreal/backend/domain/workerZone/entity/WorkerZone.java @@ -1,5 +1,7 @@ -package com.factoreal.backend.entity; +package com.factoreal.backend.domain.workerZone.entity; +import com.factoreal.backend.domain.worker.entity.Worker; +import com.factoreal.backend.domain.zone.entity.Zone; import jakarta.persistence.*; import lombok.*; diff --git a/src/main/java/com/factoreal/backend/entity/WorkerZoneId.java b/src/main/java/com/factoreal/backend/domain/workerZone/entity/WorkerZoneId.java similarity index 88% rename from src/main/java/com/factoreal/backend/entity/WorkerZoneId.java rename to src/main/java/com/factoreal/backend/domain/workerZone/entity/WorkerZoneId.java index 6c44a049..02efa3b1 100644 --- a/src/main/java/com/factoreal/backend/entity/WorkerZoneId.java +++ b/src/main/java/com/factoreal/backend/domain/workerZone/entity/WorkerZoneId.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.entity; +package com.factoreal.backend.domain.workerZone.entity; import jakarta.persistence.Column; import jakarta.persistence.Embeddable; diff --git a/src/main/java/com/factoreal/backend/controller/SystemLogController.java b/src/main/java/com/factoreal/backend/domain/zone/api/SystemLogController.java similarity index 82% rename from src/main/java/com/factoreal/backend/controller/SystemLogController.java rename to src/main/java/com/factoreal/backend/domain/zone/api/SystemLogController.java index dfeb3839..020bf500 100644 --- a/src/main/java/com/factoreal/backend/controller/SystemLogController.java +++ b/src/main/java/com/factoreal/backend/domain/zone/api/SystemLogController.java @@ -1,8 +1,8 @@ -package com.factoreal.backend.controller; +package com.factoreal.backend.domain.zone.api; -import com.factoreal.backend.dto.abnormalLog.AbnormalPagingDto; -import com.factoreal.backend.dto.abnormalLog.SystemLogResponseDto; -import com.factoreal.backend.service.AbnormalLogService; +import com.factoreal.backend.domain.abnormalLog.dto.AbnormalPagingDto; +import com.factoreal.backend.domain.abnormalLog.dto.SystemLogResponseDto; +import com.factoreal.backend.domain.abnormalLog.application.AbnormalLogService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; diff --git a/src/main/java/com/factoreal/backend/controller/WorkerLocationController.java b/src/main/java/com/factoreal/backend/domain/zone/api/WorkerLocationController.java similarity index 87% rename from src/main/java/com/factoreal/backend/controller/WorkerLocationController.java rename to src/main/java/com/factoreal/backend/domain/zone/api/WorkerLocationController.java index 74bb5a8b..22474e5e 100644 --- a/src/main/java/com/factoreal/backend/controller/WorkerLocationController.java +++ b/src/main/java/com/factoreal/backend/domain/zone/api/WorkerLocationController.java @@ -1,7 +1,7 @@ -package com.factoreal.backend.controller; +package com.factoreal.backend.domain.zone.api; -import com.factoreal.backend.dto.WorkerLocationRequest; -import com.factoreal.backend.service.WorkerLocationService; +import com.factoreal.backend.domain.worker.dto.WorkerLocationRequest; +import com.factoreal.backend.domain.zone.application.WorkerLocationService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; diff --git a/src/main/java/com/factoreal/backend/controller/ZoneController.java b/src/main/java/com/factoreal/backend/domain/zone/api/ZoneController.java similarity index 89% rename from src/main/java/com/factoreal/backend/controller/ZoneController.java rename to src/main/java/com/factoreal/backend/domain/zone/api/ZoneController.java index 77d24d1f..2b0d21f9 100644 --- a/src/main/java/com/factoreal/backend/controller/ZoneController.java +++ b/src/main/java/com/factoreal/backend/domain/zone/api/ZoneController.java @@ -1,9 +1,9 @@ -package com.factoreal.backend.controller; +package com.factoreal.backend.domain.zone.api; import java.util.List; import java.util.Map; -import com.factoreal.backend.dto.ZoneItemDto; +import com.factoreal.backend.domain.zone.dto.ZoneItemDto; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; @@ -12,9 +12,9 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.factoreal.backend.dto.ZoneDto; -import com.factoreal.backend.dto.ZoneUpdateDto; -import com.factoreal.backend.service.ZoneService; +import com.factoreal.backend.domain.zone.dto.ZoneDto; +import com.factoreal.backend.domain.zone.dto.ZoneUpdateDto; +import com.factoreal.backend.domain.zone.application.ZoneService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; diff --git a/src/main/java/com/factoreal/backend/service/WorkerLocationService.java b/src/main/java/com/factoreal/backend/domain/zone/application/WorkerLocationService.java similarity index 87% rename from src/main/java/com/factoreal/backend/service/WorkerLocationService.java rename to src/main/java/com/factoreal/backend/domain/zone/application/WorkerLocationService.java index b647e731..fc9ab1c0 100644 --- a/src/main/java/com/factoreal/backend/service/WorkerLocationService.java +++ b/src/main/java/com/factoreal/backend/domain/zone/application/WorkerLocationService.java @@ -1,11 +1,11 @@ -package com.factoreal.backend.service; +package com.factoreal.backend.domain.zone.application; -import com.factoreal.backend.entity.Worker; -import com.factoreal.backend.entity.Zone; -import com.factoreal.backend.entity.ZoneHist; -import com.factoreal.backend.repository.WorkerRepository; -import com.factoreal.backend.repository.ZoneHistRepository; -import com.factoreal.backend.repository.ZoneRepository; +import com.factoreal.backend.domain.worker.entity.Worker; +import com.factoreal.backend.domain.zone.entity.Zone; +import com.factoreal.backend.domain.zone.dto.ZoneHist; +import com.factoreal.backend.domain.worker.dao.WorkerRepository; +import com.factoreal.backend.domain.zone.dao.ZoneHistRepository; +import com.factoreal.backend.domain.zone.dao.ZoneRepository; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; diff --git a/src/main/java/com/factoreal/backend/service/ZoneService.java b/src/main/java/com/factoreal/backend/domain/zone/application/ZoneService.java similarity index 86% rename from src/main/java/com/factoreal/backend/service/ZoneService.java rename to src/main/java/com/factoreal/backend/domain/zone/application/ZoneService.java index 39517073..02e02599 100644 --- a/src/main/java/com/factoreal/backend/service/ZoneService.java +++ b/src/main/java/com/factoreal/backend/domain/zone/application/ZoneService.java @@ -1,22 +1,28 @@ -package com.factoreal.backend.service; +package com.factoreal.backend.domain.zone.application; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; -import com.factoreal.backend.dto.*; -import com.factoreal.backend.entity.Equip; -import com.factoreal.backend.entity.Sensor; -import com.factoreal.backend.repository.EquipRepository; -import com.factoreal.backend.repository.SensorRepository; +import com.factoreal.backend.domain.equip.application.EquipService; +import com.factoreal.backend.domain.equip.dto.EquipDto; +import com.factoreal.backend.domain.sensor.dto.SensorDto; +import com.factoreal.backend.domain.zone.dto.FacilityDto; +import com.factoreal.backend.domain.zone.dto.ZoneDto; +import com.factoreal.backend.domain.zone.dto.ZoneItemDto; +import com.factoreal.backend.domain.zone.dto.ZoneUpdateDto; +import com.factoreal.backend.domain.equip.entity.Equip; +import com.factoreal.backend.domain.sensor.entity.Sensor; +import com.factoreal.backend.domain.equip.dao.EquipRepository; +import com.factoreal.backend.domain.sensor.dao.SensorRepository; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.web.server.ResponseStatusException; -import com.factoreal.backend.entity.Zone; -import com.factoreal.backend.repository.ZoneRepository; -import com.factoreal.backend.util.ZoneIdGenerator; +import com.factoreal.backend.domain.zone.entity.Zone; +import com.factoreal.backend.domain.zone.dao.ZoneRepository; +import com.factoreal.backend.global.util.ZoneIdGenerator; import jakarta.transaction.Transactional; import lombok.RequiredArgsConstructor; diff --git a/src/main/java/com/factoreal/backend/repository/ZoneHistRepository.java b/src/main/java/com/factoreal/backend/domain/zone/dao/ZoneHistRepository.java similarity index 82% rename from src/main/java/com/factoreal/backend/repository/ZoneHistRepository.java rename to src/main/java/com/factoreal/backend/domain/zone/dao/ZoneHistRepository.java index ba438d4b..3580924b 100644 --- a/src/main/java/com/factoreal/backend/repository/ZoneHistRepository.java +++ b/src/main/java/com/factoreal/backend/domain/zone/dao/ZoneHistRepository.java @@ -1,6 +1,6 @@ -package com.factoreal.backend.repository; +package com.factoreal.backend.domain.zone.dao; -import com.factoreal.backend.entity.ZoneHist; +import com.factoreal.backend.domain.zone.dto.ZoneHist; import org.springframework.data.jpa.repository.JpaRepository; import java.util.List; diff --git a/src/main/java/com/factoreal/backend/repository/ZoneRepository.java b/src/main/java/com/factoreal/backend/domain/zone/dao/ZoneRepository.java similarity index 71% rename from src/main/java/com/factoreal/backend/repository/ZoneRepository.java rename to src/main/java/com/factoreal/backend/domain/zone/dao/ZoneRepository.java index 1fee969f..89d65fd7 100644 --- a/src/main/java/com/factoreal/backend/repository/ZoneRepository.java +++ b/src/main/java/com/factoreal/backend/domain/zone/dao/ZoneRepository.java @@ -1,6 +1,6 @@ -package com.factoreal.backend.repository; +package com.factoreal.backend.domain.zone.dao; -import com.factoreal.backend.entity.Zone; +import com.factoreal.backend.domain.zone.entity.Zone; import org.springframework.data.jpa.repository.JpaRepository; import java.util.Optional; diff --git a/src/main/java/com/factoreal/backend/dto/FacilityDto.java b/src/main/java/com/factoreal/backend/domain/zone/dto/FacilityDto.java similarity index 82% rename from src/main/java/com/factoreal/backend/dto/FacilityDto.java rename to src/main/java/com/factoreal/backend/domain/zone/dto/FacilityDto.java index ebcc98ac..d7a7f13f 100644 --- a/src/main/java/com/factoreal/backend/dto/FacilityDto.java +++ b/src/main/java/com/factoreal/backend/domain/zone/dto/FacilityDto.java @@ -1,5 +1,6 @@ -package com.factoreal.backend.dto; +package com.factoreal.backend.domain.zone.dto; +import com.factoreal.backend.domain.sensor.dto.SensorDto; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.*; diff --git a/src/main/java/com/factoreal/backend/dto/SystemLogDto.java b/src/main/java/com/factoreal/backend/domain/zone/dto/SystemLogDto.java similarity index 92% rename from src/main/java/com/factoreal/backend/dto/SystemLogDto.java rename to src/main/java/com/factoreal/backend/domain/zone/dto/SystemLogDto.java index dc1b07c9..000695ad 100644 --- a/src/main/java/com/factoreal/backend/dto/SystemLogDto.java +++ b/src/main/java/com/factoreal/backend/domain/zone/dto/SystemLogDto.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.dto; +package com.factoreal.backend.domain.zone.dto; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/src/main/java/com/factoreal/backend/dto/ZoneDangerDto.java b/src/main/java/com/factoreal/backend/domain/zone/dto/ZoneDangerDto.java similarity index 85% rename from src/main/java/com/factoreal/backend/dto/ZoneDangerDto.java rename to src/main/java/com/factoreal/backend/domain/zone/dto/ZoneDangerDto.java index bc77c7d2..ba73ef84 100644 --- a/src/main/java/com/factoreal/backend/dto/ZoneDangerDto.java +++ b/src/main/java/com/factoreal/backend/domain/zone/dto/ZoneDangerDto.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.dto; +package com.factoreal.backend.domain.zone.dto; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/src/main/java/com/factoreal/backend/dto/ZoneDto.java b/src/main/java/com/factoreal/backend/domain/zone/dto/ZoneDto.java similarity index 84% rename from src/main/java/com/factoreal/backend/dto/ZoneDto.java rename to src/main/java/com/factoreal/backend/domain/zone/dto/ZoneDto.java index 23037044..f88e2823 100644 --- a/src/main/java/com/factoreal/backend/dto/ZoneDto.java +++ b/src/main/java/com/factoreal/backend/domain/zone/dto/ZoneDto.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.dto; +package com.factoreal.backend.domain.zone.dto; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/src/main/java/com/factoreal/backend/entity/ZoneHist.java b/src/main/java/com/factoreal/backend/domain/zone/dto/ZoneHist.java similarity index 85% rename from src/main/java/com/factoreal/backend/entity/ZoneHist.java rename to src/main/java/com/factoreal/backend/domain/zone/dto/ZoneHist.java index d35caa20..244630c4 100644 --- a/src/main/java/com/factoreal/backend/entity/ZoneHist.java +++ b/src/main/java/com/factoreal/backend/domain/zone/dto/ZoneHist.java @@ -1,5 +1,7 @@ -package com.factoreal.backend.entity; +package com.factoreal.backend.domain.zone.dto; +import com.factoreal.backend.domain.worker.entity.Worker; +import com.factoreal.backend.domain.zone.entity.Zone; import jakarta.persistence.*; import lombok.*; diff --git a/src/main/java/com/factoreal/backend/dto/ZoneItemDto.java b/src/main/java/com/factoreal/backend/domain/zone/dto/ZoneItemDto.java similarity index 76% rename from src/main/java/com/factoreal/backend/dto/ZoneItemDto.java rename to src/main/java/com/factoreal/backend/domain/zone/dto/ZoneItemDto.java index 46a920c0..6b05d2d8 100644 --- a/src/main/java/com/factoreal/backend/dto/ZoneItemDto.java +++ b/src/main/java/com/factoreal/backend/domain/zone/dto/ZoneItemDto.java @@ -1,6 +1,7 @@ -package com.factoreal.backend.dto; +package com.factoreal.backend.domain.zone.dto; +import com.factoreal.backend.domain.sensor.dto.SensorDto; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Builder; diff --git a/src/main/java/com/factoreal/backend/dto/ZoneManagerResponseDto.java b/src/main/java/com/factoreal/backend/domain/zone/dto/ZoneManagerResponseDto.java similarity index 87% rename from src/main/java/com/factoreal/backend/dto/ZoneManagerResponseDto.java rename to src/main/java/com/factoreal/backend/domain/zone/dto/ZoneManagerResponseDto.java index 476c5883..6f593356 100644 --- a/src/main/java/com/factoreal/backend/dto/ZoneManagerResponseDto.java +++ b/src/main/java/com/factoreal/backend/domain/zone/dto/ZoneManagerResponseDto.java @@ -1,7 +1,7 @@ -package com.factoreal.backend.dto; +package com.factoreal.backend.domain.zone.dto; -import com.factoreal.backend.entity.Worker; -import com.factoreal.backend.entity.Zone; +import com.factoreal.backend.domain.worker.entity.Worker; +import com.factoreal.backend.domain.zone.entity.Zone; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Getter; diff --git a/src/main/java/com/factoreal/backend/dto/ZoneUpdateDto.java b/src/main/java/com/factoreal/backend/domain/zone/dto/ZoneUpdateDto.java similarity index 84% rename from src/main/java/com/factoreal/backend/dto/ZoneUpdateDto.java rename to src/main/java/com/factoreal/backend/domain/zone/dto/ZoneUpdateDto.java index 3aae102e..b982f648 100644 --- a/src/main/java/com/factoreal/backend/dto/ZoneUpdateDto.java +++ b/src/main/java/com/factoreal/backend/domain/zone/dto/ZoneUpdateDto.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.dto; +package com.factoreal.backend.domain.zone.dto; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/src/main/java/com/factoreal/backend/entity/Zone.java b/src/main/java/com/factoreal/backend/domain/zone/entity/Zone.java similarity index 91% rename from src/main/java/com/factoreal/backend/entity/Zone.java rename to src/main/java/com/factoreal/backend/domain/zone/entity/Zone.java index 349e804a..1633e3b2 100644 --- a/src/main/java/com/factoreal/backend/entity/Zone.java +++ b/src/main/java/com/factoreal/backend/domain/zone/entity/Zone.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.entity; +package com.factoreal.backend.domain.zone.entity; import jakarta.persistence.Column; import jakarta.persistence.Entity; diff --git a/src/main/java/com/factoreal/backend/config/AwsMqttListener.java b/src/main/java/com/factoreal/backend/global/config/AwsMqttListener.java similarity index 95% rename from src/main/java/com/factoreal/backend/config/AwsMqttListener.java rename to src/main/java/com/factoreal/backend/global/config/AwsMqttListener.java index 4cef5777..60d1ecae 100644 --- a/src/main/java/com/factoreal/backend/config/AwsMqttListener.java +++ b/src/main/java/com/factoreal/backend/global/config/AwsMqttListener.java @@ -1,10 +1,10 @@ -package com.factoreal.backend.config; +package com.factoreal.backend.global.config; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; -import com.factoreal.backend.dto.SensorDto; -import com.factoreal.backend.service.SensorService; -import com.factoreal.backend.util.SslUtil; +import com.factoreal.backend.domain.sensor.dto.SensorDto; +import com.factoreal.backend.domain.sensor.application.SensorService; +import com.factoreal.backend.global.util.SslUtil; import jakarta.annotation.PostConstruct; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/factoreal/backend/config/AwsServiceConfig.java b/src/main/java/com/factoreal/backend/global/config/AwsServiceConfig.java similarity index 97% rename from src/main/java/com/factoreal/backend/config/AwsServiceConfig.java rename to src/main/java/com/factoreal/backend/global/config/AwsServiceConfig.java index 78603cbd..11301acc 100644 --- a/src/main/java/com/factoreal/backend/config/AwsServiceConfig.java +++ b/src/main/java/com/factoreal/backend/global/config/AwsServiceConfig.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.config; +package com.factoreal.backend.global.config; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; diff --git a/src/main/java/com/factoreal/backend/config/ElasticsearchConfig.java b/src/main/java/com/factoreal/backend/global/config/ElasticsearchConfig.java similarity index 94% rename from src/main/java/com/factoreal/backend/config/ElasticsearchConfig.java rename to src/main/java/com/factoreal/backend/global/config/ElasticsearchConfig.java index 817a6615..c31a1ea5 100644 --- a/src/main/java/com/factoreal/backend/config/ElasticsearchConfig.java +++ b/src/main/java/com/factoreal/backend/global/config/ElasticsearchConfig.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.config; +package com.factoreal.backend.global.config; import org.apache.http.HttpHost; import org.elasticsearch.client.RestClient; diff --git a/src/main/java/com/factoreal/backend/config/MqttConfig.java b/src/main/java/com/factoreal/backend/global/config/MqttConfig.java similarity index 95% rename from src/main/java/com/factoreal/backend/config/MqttConfig.java rename to src/main/java/com/factoreal/backend/global/config/MqttConfig.java index d201773e..49e9ac86 100644 --- a/src/main/java/com/factoreal/backend/config/MqttConfig.java +++ b/src/main/java/com/factoreal/backend/global/config/MqttConfig.java @@ -1,6 +1,6 @@ -package com.factoreal.backend.config; +package com.factoreal.backend.global.config; -import com.factoreal.backend.util.SslUtil; +import com.factoreal.backend.global.util.SslUtil; import lombok.extern.slf4j.Slf4j; import org.eclipse.paho.client.mqttv3.MqttClient; import org.eclipse.paho.client.mqttv3.MqttConnectOptions; diff --git a/src/main/java/com/factoreal/backend/config/WebConfig.java b/src/main/java/com/factoreal/backend/global/config/WebConfig.java similarity index 95% rename from src/main/java/com/factoreal/backend/config/WebConfig.java rename to src/main/java/com/factoreal/backend/global/config/WebConfig.java index 040b5848..0d0b32ee 100644 --- a/src/main/java/com/factoreal/backend/config/WebConfig.java +++ b/src/main/java/com/factoreal/backend/global/config/WebConfig.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.config; +package com.factoreal.backend.global.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/src/main/java/com/factoreal/backend/config/WebSocketConfig.java b/src/main/java/com/factoreal/backend/global/config/WebSocketConfig.java similarity index 95% rename from src/main/java/com/factoreal/backend/config/WebSocketConfig.java rename to src/main/java/com/factoreal/backend/global/config/WebSocketConfig.java index 50d6c27c..0dd97c19 100644 --- a/src/main/java/com/factoreal/backend/config/WebSocketConfig.java +++ b/src/main/java/com/factoreal/backend/global/config/WebSocketConfig.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.config; +package com.factoreal.backend.global.config; import org.springframework.context.annotation.Configuration; import org.springframework.messaging.simp.config.MessageBrokerRegistry; diff --git a/src/main/java/com/factoreal/backend/kafka/KafkaConsumerD.java b/src/main/java/com/factoreal/backend/global/kafka/KafkaConsumerD.java similarity index 93% rename from src/main/java/com/factoreal/backend/kafka/KafkaConsumerD.java rename to src/main/java/com/factoreal/backend/global/kafka/KafkaConsumerD.java index e79d016d..8a6bf031 100644 --- a/src/main/java/com/factoreal/backend/kafka/KafkaConsumerD.java +++ b/src/main/java/com/factoreal/backend/global/kafka/KafkaConsumerD.java @@ -1,17 +1,17 @@ -package com.factoreal.backend.kafka; - -import com.factoreal.backend.dto.SensorKafkaDto; -import com.factoreal.backend.dto.abnormalLog.LogType; -import com.factoreal.backend.entity.AbnormalLog; -import com.factoreal.backend.dto.SystemLogDto; -import com.factoreal.backend.sender.WebSocketSender; -import com.factoreal.backend.service.ZoneService; -import com.factoreal.backend.service.AbnormalLogService; -import com.factoreal.backend.kafka.strategy.alarmList.NotificationStrategy; -import com.factoreal.backend.kafka.strategy.NotificationStrategyFactory; -import com.factoreal.backend.kafka.strategy.enums.AlarmEventDto; -import com.factoreal.backend.kafka.strategy.enums.RiskLevel; -import com.factoreal.backend.kafka.strategy.enums.SensorType; +package com.factoreal.backend.global.kafka; + +import com.factoreal.backend.domain.sensor.dto.SensorKafkaDto; +import com.factoreal.backend.domain.abnormalLog.dto.LogType; +import com.factoreal.backend.domain.abnormalLog.entity.AbnormalLog; +import com.factoreal.backend.domain.zone.dto.SystemLogDto; +import com.factoreal.backend.global.sender.WebSocketSender; +import com.factoreal.backend.domain.zone.application.ZoneService; +import com.factoreal.backend.domain.abnormalLog.application.AbnormalLogService; +import com.factoreal.backend.global.kafka.strategy.alarmList.NotificationStrategy; +import com.factoreal.backend.global.kafka.strategy.NotificationStrategyFactory; +import com.factoreal.backend.global.kafka.strategy.enums.AlarmEventDto; +import com.factoreal.backend.global.kafka.strategy.enums.RiskLevel; +import com.factoreal.backend.global.kafka.strategy.enums.SensorType; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.RequiredArgsConstructor; @@ -22,8 +22,8 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; -import com.factoreal.backend.service.SensorService; -import com.factoreal.backend.entity.Sensor; +import com.factoreal.backend.domain.sensor.application.SensorService; +import com.factoreal.backend.domain.sensor.entity.Sensor; import java.time.ZonedDateTime; import java.time.ZoneId; diff --git a/src/main/java/com/factoreal/backend/kafka/consumer/KafkaConsumer.java b/src/main/java/com/factoreal/backend/global/kafka/consumer/KafkaConsumer.java similarity index 90% rename from src/main/java/com/factoreal/backend/kafka/consumer/KafkaConsumer.java rename to src/main/java/com/factoreal/backend/global/kafka/consumer/KafkaConsumer.java index 7a3cfff5..8546689e 100644 --- a/src/main/java/com/factoreal/backend/kafka/consumer/KafkaConsumer.java +++ b/src/main/java/com/factoreal/backend/global/kafka/consumer/KafkaConsumer.java @@ -1,7 +1,7 @@ -package com.factoreal.backend.kafka.consumer; +package com.factoreal.backend.global.kafka.consumer; -import com.factoreal.backend.dto.SensorKafkaDto; -import com.factoreal.backend.kafka.processor.SensorEventProcessor; +import com.factoreal.backend.domain.sensor.dto.SensorKafkaDto; +import com.factoreal.backend.global.kafka.processor.SensorEventProcessor; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/factoreal/backend/kafka/processor/SensorEventProcessor.java b/src/main/java/com/factoreal/backend/global/kafka/processor/SensorEventProcessor.java similarity index 89% rename from src/main/java/com/factoreal/backend/kafka/processor/SensorEventProcessor.java rename to src/main/java/com/factoreal/backend/global/kafka/processor/SensorEventProcessor.java index 32c2764a..c3692570 100644 --- a/src/main/java/com/factoreal/backend/kafka/processor/SensorEventProcessor.java +++ b/src/main/java/com/factoreal/backend/global/kafka/processor/SensorEventProcessor.java @@ -1,14 +1,14 @@ -package com.factoreal.backend.kafka.processor; +package com.factoreal.backend.global.kafka.processor; -import com.factoreal.backend.dto.SensorKafkaDto; -import com.factoreal.backend.dto.abnormalLog.LogType; -import com.factoreal.backend.entity.AbnormalLog; -import com.factoreal.backend.sender.WebSocketSender; -import com.factoreal.backend.service.AbnormalLogService; +import com.factoreal.backend.domain.sensor.dto.SensorKafkaDto; +import com.factoreal.backend.domain.abnormalLog.dto.LogType; +import com.factoreal.backend.domain.abnormalLog.entity.AbnormalLog; +import com.factoreal.backend.global.sender.WebSocketSender; +import com.factoreal.backend.domain.abnormalLog.application.AbnormalLogService; import com.factoreal.backend.service.AlarmEventService; import com.factoreal.backend.service.AutoControlService; -import com.factoreal.backend.kafka.strategy.enums.RiskLevel; -import com.factoreal.backend.kafka.strategy.enums.SensorType; +import com.factoreal.backend.global.kafka.strategy.enums.RiskLevel; +import com.factoreal.backend.global.kafka.strategy.enums.SensorType; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; diff --git a/src/main/java/com/factoreal/backend/kafka/strategy/NotificationStrategyFactory.java b/src/main/java/com/factoreal/backend/global/kafka/strategy/NotificationStrategyFactory.java similarity index 89% rename from src/main/java/com/factoreal/backend/kafka/strategy/NotificationStrategyFactory.java rename to src/main/java/com/factoreal/backend/global/kafka/strategy/NotificationStrategyFactory.java index 34b0a58f..abcf4919 100644 --- a/src/main/java/com/factoreal/backend/kafka/strategy/NotificationStrategyFactory.java +++ b/src/main/java/com/factoreal/backend/global/kafka/strategy/NotificationStrategyFactory.java @@ -1,7 +1,7 @@ -package com.factoreal.backend.kafka.strategy; +package com.factoreal.backend.global.kafka.strategy; -import com.factoreal.backend.kafka.strategy.alarmList.NotificationStrategy; -import com.factoreal.backend.kafka.strategy.enums.RiskLevel; +import com.factoreal.backend.global.kafka.strategy.alarmList.NotificationStrategy; +import com.factoreal.backend.global.kafka.strategy.enums.RiskLevel; import org.springframework.stereotype.Component; import java.util.List; diff --git a/src/main/java/com/factoreal/backend/kafka/strategy/alarmList/AppPushNotificationStrategy.java b/src/main/java/com/factoreal/backend/global/kafka/strategy/alarmList/AppPushNotificationStrategy.java similarity index 68% rename from src/main/java/com/factoreal/backend/kafka/strategy/alarmList/AppPushNotificationStrategy.java rename to src/main/java/com/factoreal/backend/global/kafka/strategy/alarmList/AppPushNotificationStrategy.java index b0279f22..2eac0c1d 100644 --- a/src/main/java/com/factoreal/backend/kafka/strategy/alarmList/AppPushNotificationStrategy.java +++ b/src/main/java/com/factoreal/backend/global/kafka/strategy/alarmList/AppPushNotificationStrategy.java @@ -1,7 +1,7 @@ -package com.factoreal.backend.kafka.strategy.alarmList; +package com.factoreal.backend.global.kafka.strategy.alarmList; -import com.factoreal.backend.kafka.strategy.enums.AlarmEventDto; -import com.factoreal.backend.kafka.strategy.enums.RiskLevel; +import com.factoreal.backend.global.kafka.strategy.enums.AlarmEventDto; +import com.factoreal.backend.global.kafka.strategy.enums.RiskLevel; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; diff --git a/src/main/java/com/factoreal/backend/kafka/strategy/alarmList/NotificationStrategy.java b/src/main/java/com/factoreal/backend/global/kafka/strategy/alarmList/NotificationStrategy.java similarity index 64% rename from src/main/java/com/factoreal/backend/kafka/strategy/alarmList/NotificationStrategy.java rename to src/main/java/com/factoreal/backend/global/kafka/strategy/alarmList/NotificationStrategy.java index 0f1fd6c8..ac774673 100644 --- a/src/main/java/com/factoreal/backend/kafka/strategy/alarmList/NotificationStrategy.java +++ b/src/main/java/com/factoreal/backend/global/kafka/strategy/alarmList/NotificationStrategy.java @@ -1,7 +1,7 @@ -package com.factoreal.backend.kafka.strategy.alarmList; +package com.factoreal.backend.global.kafka.strategy.alarmList; -import com.factoreal.backend.kafka.strategy.enums.AlarmEventDto; -import com.factoreal.backend.kafka.strategy.enums.RiskLevel; +import com.factoreal.backend.global.kafka.strategy.enums.AlarmEventDto; +import com.factoreal.backend.global.kafka.strategy.enums.RiskLevel; public interface NotificationStrategy { void send(AlarmEventDto alarmEventDto); diff --git a/src/main/java/com/factoreal/backend/kafka/strategy/alarmList/SmsNotificationStrategy.java b/src/main/java/com/factoreal/backend/global/kafka/strategy/alarmList/SmsNotificationStrategy.java similarity index 85% rename from src/main/java/com/factoreal/backend/kafka/strategy/alarmList/SmsNotificationStrategy.java rename to src/main/java/com/factoreal/backend/global/kafka/strategy/alarmList/SmsNotificationStrategy.java index 76c84cf6..3e6e5580 100644 --- a/src/main/java/com/factoreal/backend/kafka/strategy/alarmList/SmsNotificationStrategy.java +++ b/src/main/java/com/factoreal/backend/global/kafka/strategy/alarmList/SmsNotificationStrategy.java @@ -1,9 +1,9 @@ -package com.factoreal.backend.kafka.strategy.alarmList; +package com.factoreal.backend.global.kafka.strategy.alarmList; -import com.factoreal.backend.kafka.strategy.enums.AlarmEventDto; -import com.factoreal.backend.entity.Worker; -import com.factoreal.backend.kafka.strategy.enums.RiskLevel; -import com.factoreal.backend.repository.WorkerRepository; +import com.factoreal.backend.global.kafka.strategy.enums.AlarmEventDto; +import com.factoreal.backend.domain.worker.entity.Worker; +import com.factoreal.backend.global.kafka.strategy.enums.RiskLevel; +import com.factoreal.backend.domain.worker.dao.WorkerRepository; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; diff --git a/src/main/java/com/factoreal/backend/kafka/strategy/alarmList/WebSocketNotificationStrategy.java b/src/main/java/com/factoreal/backend/global/kafka/strategy/alarmList/WebSocketNotificationStrategy.java similarity index 79% rename from src/main/java/com/factoreal/backend/kafka/strategy/alarmList/WebSocketNotificationStrategy.java rename to src/main/java/com/factoreal/backend/global/kafka/strategy/alarmList/WebSocketNotificationStrategy.java index 269da77d..18c825f4 100644 --- a/src/main/java/com/factoreal/backend/kafka/strategy/alarmList/WebSocketNotificationStrategy.java +++ b/src/main/java/com/factoreal/backend/global/kafka/strategy/alarmList/WebSocketNotificationStrategy.java @@ -1,8 +1,8 @@ -package com.factoreal.backend.kafka.strategy.alarmList; +package com.factoreal.backend.global.kafka.strategy.alarmList; -import com.factoreal.backend.sender.WebSocketSender; -import com.factoreal.backend.kafka.strategy.enums.AlarmEventDto; -import com.factoreal.backend.kafka.strategy.enums.RiskLevel; +import com.factoreal.backend.global.sender.WebSocketSender; +import com.factoreal.backend.global.kafka.strategy.enums.AlarmEventDto; +import com.factoreal.backend.global.kafka.strategy.enums.RiskLevel; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; diff --git a/src/main/java/com/factoreal/backend/kafka/strategy/alarmMessage/DefaultRiskMessageProvider.java b/src/main/java/com/factoreal/backend/global/kafka/strategy/alarmMessage/DefaultRiskMessageProvider.java similarity index 90% rename from src/main/java/com/factoreal/backend/kafka/strategy/alarmMessage/DefaultRiskMessageProvider.java rename to src/main/java/com/factoreal/backend/global/kafka/strategy/alarmMessage/DefaultRiskMessageProvider.java index 347deedd..ffe575d8 100644 --- a/src/main/java/com/factoreal/backend/kafka/strategy/alarmMessage/DefaultRiskMessageProvider.java +++ b/src/main/java/com/factoreal/backend/global/kafka/strategy/alarmMessage/DefaultRiskMessageProvider.java @@ -1,7 +1,7 @@ -package com.factoreal.backend.kafka.strategy.alarmMessage; +package com.factoreal.backend.global.kafka.strategy.alarmMessage; -import com.factoreal.backend.kafka.strategy.enums.RiskLevel; -import com.factoreal.backend.kafka.strategy.enums.SensorType; +import com.factoreal.backend.global.kafka.strategy.enums.RiskLevel; +import com.factoreal.backend.global.kafka.strategy.enums.SensorType; import org.springframework.stereotype.Component; @Component diff --git a/src/main/java/com/factoreal/backend/global/kafka/strategy/alarmMessage/RiskMessageProvider.java b/src/main/java/com/factoreal/backend/global/kafka/strategy/alarmMessage/RiskMessageProvider.java new file mode 100644 index 00000000..dfad4897 --- /dev/null +++ b/src/main/java/com/factoreal/backend/global/kafka/strategy/alarmMessage/RiskMessageProvider.java @@ -0,0 +1,8 @@ +package com.factoreal.backend.global.kafka.strategy.alarmMessage; + +import com.factoreal.backend.global.kafka.strategy.enums.RiskLevel; +import com.factoreal.backend.global.kafka.strategy.enums.SensorType; + +public interface RiskMessageProvider { + String getMessage(SensorType sensorType, RiskLevel riskLevel); +} diff --git a/src/main/java/com/factoreal/backend/kafka/strategy/enums/AlarmEventDto.java b/src/main/java/com/factoreal/backend/global/kafka/strategy/enums/AlarmEventDto.java similarity index 95% rename from src/main/java/com/factoreal/backend/kafka/strategy/enums/AlarmEventDto.java rename to src/main/java/com/factoreal/backend/global/kafka/strategy/enums/AlarmEventDto.java index caf29649..2399763a 100644 --- a/src/main/java/com/factoreal/backend/kafka/strategy/enums/AlarmEventDto.java +++ b/src/main/java/com/factoreal/backend/global/kafka/strategy/enums/AlarmEventDto.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.kafka.strategy.enums; +package com.factoreal.backend.global.kafka.strategy.enums; import lombok.Builder; import lombok.Data; diff --git a/src/main/java/com/factoreal/backend/kafka/strategy/enums/RiskLevel.java b/src/main/java/com/factoreal/backend/global/kafka/strategy/enums/RiskLevel.java similarity index 94% rename from src/main/java/com/factoreal/backend/kafka/strategy/enums/RiskLevel.java rename to src/main/java/com/factoreal/backend/global/kafka/strategy/enums/RiskLevel.java index f0f232bc..e262007d 100644 --- a/src/main/java/com/factoreal/backend/kafka/strategy/enums/RiskLevel.java +++ b/src/main/java/com/factoreal/backend/global/kafka/strategy/enums/RiskLevel.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.kafka.strategy.enums; +package com.factoreal.backend.global.kafka.strategy.enums; import lombok.Getter; diff --git a/src/main/java/com/factoreal/backend/kafka/strategy/enums/SensorType.java b/src/main/java/com/factoreal/backend/global/kafka/strategy/enums/SensorType.java similarity index 78% rename from src/main/java/com/factoreal/backend/kafka/strategy/enums/SensorType.java rename to src/main/java/com/factoreal/backend/global/kafka/strategy/enums/SensorType.java index e036b306..e4141b4c 100644 --- a/src/main/java/com/factoreal/backend/kafka/strategy/enums/SensorType.java +++ b/src/main/java/com/factoreal/backend/global/kafka/strategy/enums/SensorType.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.kafka.strategy.enums; +package com.factoreal.backend.global.kafka.strategy.enums; public enum SensorType { current, diff --git a/src/main/java/com/factoreal/backend/mqtt/MqttService.java b/src/main/java/com/factoreal/backend/global/mqtt/MqttService.java similarity index 92% rename from src/main/java/com/factoreal/backend/mqtt/MqttService.java rename to src/main/java/com/factoreal/backend/global/mqtt/MqttService.java index c6ca290a..1efde097 100644 --- a/src/main/java/com/factoreal/backend/mqtt/MqttService.java +++ b/src/main/java/com/factoreal/backend/global/mqtt/MqttService.java @@ -1,8 +1,7 @@ -package com.factoreal.backend.mqtt; +package com.factoreal.backend.global.mqtt; -import com.factoreal.backend.dto.EquipDto; -import com.factoreal.backend.dto.SensorDto; -import com.factoreal.backend.service.SensorService; +import com.factoreal.backend.domain.sensor.dto.SensorDto; +import com.factoreal.backend.domain.sensor.application.SensorService; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import jakarta.annotation.PostConstruct; @@ -12,7 +11,6 @@ import org.eclipse.paho.client.mqttv3.MqttException; import org.springframework.dao.DataIntegrityViolationException; import org.springframework.stereotype.Component; -import org.springframework.stereotype.Service; import java.nio.charset.StandardCharsets; diff --git a/src/main/java/com/factoreal/backend/sender/WebSocketSender.java b/src/main/java/com/factoreal/backend/global/sender/WebSocketSender.java similarity index 84% rename from src/main/java/com/factoreal/backend/sender/WebSocketSender.java rename to src/main/java/com/factoreal/backend/global/sender/WebSocketSender.java index b57e485d..e00566f7 100644 --- a/src/main/java/com/factoreal/backend/sender/WebSocketSender.java +++ b/src/main/java/com/factoreal/backend/global/sender/WebSocketSender.java @@ -1,8 +1,8 @@ -package com.factoreal.backend.sender; +package com.factoreal.backend.global.sender; -import com.factoreal.backend.dto.SystemLogDto; -import com.factoreal.backend.dto.ZoneDangerDto; -import com.factoreal.backend.kafka.strategy.enums.AlarmEventDto; +import com.factoreal.backend.domain.zone.dto.SystemLogDto; +import com.factoreal.backend.domain.zone.dto.ZoneDangerDto; +import com.factoreal.backend.global.kafka.strategy.enums.AlarmEventDto; import lombok.RequiredArgsConstructor; import org.springframework.messaging.simp.SimpMessagingTemplate; import org.springframework.stereotype.Component; diff --git a/src/main/java/com/factoreal/backend/util/EquipIdGenerator.java b/src/main/java/com/factoreal/backend/global/util/EquipIdGenerator.java similarity index 85% rename from src/main/java/com/factoreal/backend/util/EquipIdGenerator.java rename to src/main/java/com/factoreal/backend/global/util/EquipIdGenerator.java index 347c8581..c72937d5 100644 --- a/src/main/java/com/factoreal/backend/util/EquipIdGenerator.java +++ b/src/main/java/com/factoreal/backend/global/util/EquipIdGenerator.java @@ -1,6 +1,4 @@ -package com.factoreal.backend.util; - -import org.springframework.stereotype.Component; +package com.factoreal.backend.global.util; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; diff --git a/src/main/java/com/factoreal/backend/util/SslUtil.java b/src/main/java/com/factoreal/backend/global/util/SslUtil.java similarity index 99% rename from src/main/java/com/factoreal/backend/util/SslUtil.java rename to src/main/java/com/factoreal/backend/global/util/SslUtil.java index 535d1453..40c0b64d 100644 --- a/src/main/java/com/factoreal/backend/util/SslUtil.java +++ b/src/main/java/com/factoreal/backend/global/util/SslUtil.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.util; +package com.factoreal.backend.global.util; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/src/main/java/com/factoreal/backend/util/ZoneIdGenerator.java b/src/main/java/com/factoreal/backend/global/util/ZoneIdGenerator.java similarity index 92% rename from src/main/java/com/factoreal/backend/util/ZoneIdGenerator.java rename to src/main/java/com/factoreal/backend/global/util/ZoneIdGenerator.java index c5273512..88455284 100644 --- a/src/main/java/com/factoreal/backend/util/ZoneIdGenerator.java +++ b/src/main/java/com/factoreal/backend/global/util/ZoneIdGenerator.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.util; +package com.factoreal.backend.global.util; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; diff --git a/src/main/java/com/factoreal/backend/kafka/strategy/alarmMessage/RiskMessageProvider.java b/src/main/java/com/factoreal/backend/kafka/strategy/alarmMessage/RiskMessageProvider.java deleted file mode 100644 index 97516636..00000000 --- a/src/main/java/com/factoreal/backend/kafka/strategy/alarmMessage/RiskMessageProvider.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.factoreal.backend.kafka.strategy.alarmMessage; - -import com.factoreal.backend.kafka.strategy.enums.RiskLevel; -import com.factoreal.backend.kafka.strategy.enums.SensorType; - -public interface RiskMessageProvider { - String getMessage(SensorType sensorType, RiskLevel riskLevel); -} diff --git a/src/main/java/com/factoreal/backend/service/AlarmEventService.java b/src/main/java/com/factoreal/backend/service/AlarmEventService.java index 206c703f..cb1677cb 100644 --- a/src/main/java/com/factoreal/backend/service/AlarmEventService.java +++ b/src/main/java/com/factoreal/backend/service/AlarmEventService.java @@ -1,12 +1,13 @@ package com.factoreal.backend.service; -import com.factoreal.backend.dto.SensorKafkaDto; -import com.factoreal.backend.entity.AbnormalLog; -import com.factoreal.backend.kafka.strategy.alarmList.NotificationStrategy; -import com.factoreal.backend.kafka.strategy.NotificationStrategyFactory; -import com.factoreal.backend.kafka.strategy.enums.AlarmEventDto; -import com.factoreal.backend.kafka.strategy.enums.RiskLevel; -import com.factoreal.backend.kafka.strategy.enums.SensorType; +import com.factoreal.backend.domain.zone.application.ZoneService; +import com.factoreal.backend.domain.sensor.dto.SensorKafkaDto; +import com.factoreal.backend.domain.abnormalLog.entity.AbnormalLog; +import com.factoreal.backend.global.kafka.strategy.alarmList.NotificationStrategy; +import com.factoreal.backend.global.kafka.strategy.NotificationStrategyFactory; +import com.factoreal.backend.global.kafka.strategy.enums.AlarmEventDto; +import com.factoreal.backend.global.kafka.strategy.enums.RiskLevel; +import com.factoreal.backend.global.kafka.strategy.enums.SensorType; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; diff --git a/src/main/java/com/factoreal/backend/service/AutoControlService.java b/src/main/java/com/factoreal/backend/service/AutoControlService.java index 09fafc20..01ce6ce8 100644 --- a/src/main/java/com/factoreal/backend/service/AutoControlService.java +++ b/src/main/java/com/factoreal/backend/service/AutoControlService.java @@ -1,8 +1,8 @@ package com.factoreal.backend.service; -import com.factoreal.backend.dto.SensorKafkaDto; -import com.factoreal.backend.entity.Sensor; -import com.factoreal.backend.repository.SensorRepository; +import com.factoreal.backend.domain.sensor.dto.SensorKafkaDto; +import com.factoreal.backend.domain.sensor.entity.Sensor; +import com.factoreal.backend.domain.sensor.dao.SensorRepository; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; diff --git a/src/test/java/com/factoreal/backend/service/WorkerServiceTest.java b/src/test/java/com/factoreal/backend/service/WorkerServiceTest.java index 5e527e98..2a2fc769 100644 --- a/src/test/java/com/factoreal/backend/service/WorkerServiceTest.java +++ b/src/test/java/com/factoreal/backend/service/WorkerServiceTest.java @@ -1,10 +1,12 @@ package com.factoreal.backend.service; -import com.factoreal.backend.dto.WorkerDto; -import com.factoreal.backend.entity.Worker; -import com.factoreal.backend.entity.Zone; -import com.factoreal.backend.entity.ZoneHist; -import com.factoreal.backend.repository.WorkerRepository; +import com.factoreal.backend.domain.worker.application.WorkerService; +import com.factoreal.backend.domain.worker.dto.WorkerDto; +import com.factoreal.backend.domain.worker.entity.Worker; +import com.factoreal.backend.domain.zone.application.WorkerLocationService; +import com.factoreal.backend.domain.zone.entity.Zone; +import com.factoreal.backend.domain.zone.dto.ZoneHist; +import com.factoreal.backend.domain.worker.dao.WorkerRepository; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; diff --git a/src/test/java/com/factoreal/backend/strategy/SmsNotificationStrategyTest.java b/src/test/java/com/factoreal/backend/strategy/SmsNotificationStrategyTest.java index da92c7e7..fa46821a 100644 --- a/src/test/java/com/factoreal/backend/strategy/SmsNotificationStrategyTest.java +++ b/src/test/java/com/factoreal/backend/strategy/SmsNotificationStrategyTest.java @@ -1,7 +1,7 @@ //package com.factoreal.backend.strategy; // -//import com.factoreal.backend.entity.Worker; -//import com.factoreal.backend.repository.WorkerRepository; +//import com.factoreal.backend.domain.worker.entity.Worker; +//import com.factoreal.backend.domain.worker.dao.WorkerRepository; //import com.factoreal.backend.strategy.enums.AlarmEventDto; //import com.factoreal.backend.strategy.enums.AlarmType; //import com.factoreal.backend.strategy.enums.RiskLevel; From aeff63952297257422578fe351b87a154cdb9e6b Mon Sep 17 00:00:00 2001 From: Subin Cho Date: Thu, 22 May 2025 15:07:13 +0900 Subject: [PATCH 2/7] =?UTF-8?q?feat=20|=20sprint2=20|=20FRB-173=20|=20?= =?UTF-8?q?=EA=B3=B5=ED=86=B5=20=EC=9D=91=EB=8B=B5=20=EC=84=A4=EC=A0=95=20?= =?UTF-8?q?|=20=EC=A1=B0=EC=88=98=EB=B9=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/equip/api/EquipController.java | 9 ++-- .../equip/application/EquipService.java | 6 +-- .../dto/{ => request}/EquipCreateRequest.java | 2 +- .../dto/{ => request}/EquipUpdateDto.java | 2 +- .../equip/dto/{ => response}/EquipDto.java | 2 +- .../domain/zone/application/ZoneService.java | 2 +- .../common/response/CommonResponse.java | 37 ++++++++++++++++ .../common/response/CommonResponseAdvice.java | 44 +++++++++++++++++++ 8 files changed, 91 insertions(+), 13 deletions(-) rename src/main/java/com/factoreal/backend/domain/equip/dto/{ => request}/EquipCreateRequest.java (85%) rename src/main/java/com/factoreal/backend/domain/equip/dto/{ => request}/EquipUpdateDto.java (81%) rename src/main/java/com/factoreal/backend/domain/equip/dto/{ => response}/EquipDto.java (81%) create mode 100644 src/main/java/com/factoreal/backend/global/common/response/CommonResponse.java create mode 100644 src/main/java/com/factoreal/backend/global/common/response/CommonResponseAdvice.java diff --git a/src/main/java/com/factoreal/backend/domain/equip/api/EquipController.java b/src/main/java/com/factoreal/backend/domain/equip/api/EquipController.java index afb98cb6..d2f3dbc8 100644 --- a/src/main/java/com/factoreal/backend/domain/equip/api/EquipController.java +++ b/src/main/java/com/factoreal/backend/domain/equip/api/EquipController.java @@ -1,8 +1,8 @@ package com.factoreal.backend.domain.equip.api; -import com.factoreal.backend.domain.equip.dto.EquipCreateRequest; -import com.factoreal.backend.domain.equip.dto.EquipDto; -import com.factoreal.backend.domain.equip.dto.EquipUpdateDto; +import com.factoreal.backend.domain.equip.dto.request.EquipCreateRequest; +import com.factoreal.backend.domain.equip.dto.response.EquipDto; +import com.factoreal.backend.domain.equip.dto.request.EquipUpdateDto; import com.factoreal.backend.domain.equip.application.EquipService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -21,7 +21,6 @@ public class EquipController { private final EquipService service; - // 설비 등록 @PostMapping @Operation(summary = "설비 등록", description = "UI로부터 설비명과 공간명을 입력받아 고유 ID를 생성하여 설비 정보를 등록합니다.") public ResponseEntity createEquip(@Valid @RequestBody EquipCreateRequest req) { @@ -29,7 +28,6 @@ public ResponseEntity createEquip(@Valid @RequestBody EquipCreateReque return ResponseEntity.status(HttpStatus.CREATED).body(created); } - // 설비 정보 수정 @PostMapping("/{equipId}") @Operation(summary = "설비 정보 수정", description = "기존 설비의 이름을 수정합니다.") public ResponseEntity updateEquip( @@ -40,7 +38,6 @@ public ResponseEntity updateEquip( return ResponseEntity.ok(updated); } - // 설비 목록 조회 @GetMapping @Operation(summary = "설비 목록 조회", description = "등록된 모든 설비 정보를 조회합니다.") public ResponseEntity> listEquips() { diff --git a/src/main/java/com/factoreal/backend/domain/equip/application/EquipService.java b/src/main/java/com/factoreal/backend/domain/equip/application/EquipService.java index 61bc2e6c..7dbd48f0 100644 --- a/src/main/java/com/factoreal/backend/domain/equip/application/EquipService.java +++ b/src/main/java/com/factoreal/backend/domain/equip/application/EquipService.java @@ -1,8 +1,8 @@ package com.factoreal.backend.domain.equip.application; -import com.factoreal.backend.domain.equip.dto.EquipCreateRequest; -import com.factoreal.backend.domain.equip.dto.EquipDto; -import com.factoreal.backend.domain.equip.dto.EquipUpdateDto; +import com.factoreal.backend.domain.equip.dto.request.EquipCreateRequest; +import com.factoreal.backend.domain.equip.dto.response.EquipDto; +import com.factoreal.backend.domain.equip.dto.request.EquipUpdateDto; import com.factoreal.backend.domain.equip.entity.Equip; import com.factoreal.backend.domain.zone.entity.Zone; import com.factoreal.backend.domain.equip.dao.EquipRepository; diff --git a/src/main/java/com/factoreal/backend/domain/equip/dto/EquipCreateRequest.java b/src/main/java/com/factoreal/backend/domain/equip/dto/request/EquipCreateRequest.java similarity index 85% rename from src/main/java/com/factoreal/backend/domain/equip/dto/EquipCreateRequest.java rename to src/main/java/com/factoreal/backend/domain/equip/dto/request/EquipCreateRequest.java index e13dcb91..0b015efb 100644 --- a/src/main/java/com/factoreal/backend/domain/equip/dto/EquipCreateRequest.java +++ b/src/main/java/com/factoreal/backend/domain/equip/dto/request/EquipCreateRequest.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.domain.equip.dto; +package com.factoreal.backend.domain.equip.dto.request; import lombok.Getter; import lombok.Setter; diff --git a/src/main/java/com/factoreal/backend/domain/equip/dto/EquipUpdateDto.java b/src/main/java/com/factoreal/backend/domain/equip/dto/request/EquipUpdateDto.java similarity index 81% rename from src/main/java/com/factoreal/backend/domain/equip/dto/EquipUpdateDto.java rename to src/main/java/com/factoreal/backend/domain/equip/dto/request/EquipUpdateDto.java index 55a89900..8b15010a 100644 --- a/src/main/java/com/factoreal/backend/domain/equip/dto/EquipUpdateDto.java +++ b/src/main/java/com/factoreal/backend/domain/equip/dto/request/EquipUpdateDto.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.domain.equip.dto; +package com.factoreal.backend.domain.equip.dto.request; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/src/main/java/com/factoreal/backend/domain/equip/dto/EquipDto.java b/src/main/java/com/factoreal/backend/domain/equip/dto/response/EquipDto.java similarity index 81% rename from src/main/java/com/factoreal/backend/domain/equip/dto/EquipDto.java rename to src/main/java/com/factoreal/backend/domain/equip/dto/response/EquipDto.java index 86c2df77..8334c470 100644 --- a/src/main/java/com/factoreal/backend/domain/equip/dto/EquipDto.java +++ b/src/main/java/com/factoreal/backend/domain/equip/dto/response/EquipDto.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.domain.equip.dto; +package com.factoreal.backend.domain.equip.dto.response; import lombok.*; diff --git a/src/main/java/com/factoreal/backend/domain/zone/application/ZoneService.java b/src/main/java/com/factoreal/backend/domain/zone/application/ZoneService.java index 02e02599..5be4838a 100644 --- a/src/main/java/com/factoreal/backend/domain/zone/application/ZoneService.java +++ b/src/main/java/com/factoreal/backend/domain/zone/application/ZoneService.java @@ -6,7 +6,7 @@ import java.util.stream.Collectors; import com.factoreal.backend.domain.equip.application.EquipService; -import com.factoreal.backend.domain.equip.dto.EquipDto; +import com.factoreal.backend.domain.equip.dto.response.EquipDto; import com.factoreal.backend.domain.sensor.dto.SensorDto; import com.factoreal.backend.domain.zone.dto.FacilityDto; import com.factoreal.backend.domain.zone.dto.ZoneDto; diff --git a/src/main/java/com/factoreal/backend/global/common/response/CommonResponse.java b/src/main/java/com/factoreal/backend/global/common/response/CommonResponse.java new file mode 100644 index 00000000..41fa1033 --- /dev/null +++ b/src/main/java/com/factoreal/backend/global/common/response/CommonResponse.java @@ -0,0 +1,37 @@ +package com.factoreal.backend.global.common.response; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDateTime; + +@NoArgsConstructor +@AllArgsConstructor +@Builder +@Data +public class CommonResponse { + private boolean success; + private int status; + private T data; + private LocalDateTime timestamp; + + public static CommonResponse onSuccess(int status, T data) { + return CommonResponse.builder() + .success(true) + .status(status) + .data(data) + .timestamp(LocalDateTime.now()) + .build(); + } + + public static CommonResponse onFailure(int status, T data) { + return CommonResponse.builder() + .success(false) + .status(status) + .data(data) + .timestamp(LocalDateTime.now()) + .build(); + } +} \ No newline at end of file diff --git a/src/main/java/com/factoreal/backend/global/common/response/CommonResponseAdvice.java b/src/main/java/com/factoreal/backend/global/common/response/CommonResponseAdvice.java new file mode 100644 index 00000000..b879b54a --- /dev/null +++ b/src/main/java/com/factoreal/backend/global/common/response/CommonResponseAdvice.java @@ -0,0 +1,44 @@ +package com.factoreal.backend.global.common.response; + +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.core.MethodParameter; +import org.springframework.core.io.Resource; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.server.ServerHttpRequest; +import org.springframework.http.server.ServerHttpResponse; +import org.springframework.http.server.ServletServerHttpResponse; +import org.springframework.web.bind.annotation.RestControllerAdvice; +import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice; + +@RestControllerAdvice(basePackages = "com.factoreal.backend") +public class CommonResponseAdvice implements ResponseBodyAdvice { + @Override + public boolean supports(MethodParameter returnType, Class converterType) { + return true; // 어떤 응답을 가로채서 반환할 것인지 -> 모든 응답 가로채기 + } + + @Override + public Object beforeBodyWrite( + Object body, + MethodParameter returnType, + MediaType selectedContentType, + Class selectedConverterType, + ServerHttpRequest request, + ServerHttpResponse response) { + HttpServletResponse httpServletResponse = + ((ServletServerHttpResponse) response).getServletResponse(); + int status = httpServletResponse.getStatus(); + HttpStatus resolve = HttpStatus.resolve(status); + + if (resolve == null || body instanceof String || body instanceof Resource) { + return body; + } + + if (resolve.is2xxSuccessful()) { + return CommonResponse.onSuccess(status, body); + } + + return body; + } +} From 522a2e34516dcab28b1074d2bc1b8084850599ba Mon Sep 17 00:00:00 2001 From: Subin Cho Date: Thu, 22 May 2025 15:38:20 +0900 Subject: [PATCH 3/7] =?UTF-8?q?feat=20|=20sprint2=20|=20FRB-173=20|=20sens?= =?UTF-8?q?or=20=EB=8F=84=EB=A9=94=EC=9D=B8=20=EB=A6=AC=ED=8C=A9=ED=86=A0?= =?UTF-8?q?=EB=A7=81=20|=20=EC=A1=B0=EC=88=98=EB=B9=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/sensor/api/SensorController.java | 41 +++--------- .../sensor/application/SensorService.java | 67 +++++++++---------- .../domain/sensor/dao/SensorRepository.java | 1 - .../domain/sensor/dto/SensorDataDto.java | 15 ----- .../dto/request/SensorCreateRequest.java | 34 ++++++++++ .../SensorUpdateRequest.java} | 6 +- .../SensorInfoResponse.java} | 16 ++--- .../domain/zone/application/ZoneService.java | 14 ++-- .../backend/domain/zone/dto/FacilityDto.java | 4 +- .../backend/domain/zone/dto/ZoneItemDto.java | 5 +- .../global/config/AwsMqttListener.java | 4 +- .../backend/global/mqtt/MqttService.java | 4 +- 12 files changed, 99 insertions(+), 112 deletions(-) delete mode 100644 src/main/java/com/factoreal/backend/domain/sensor/dto/SensorDataDto.java create mode 100644 src/main/java/com/factoreal/backend/domain/sensor/dto/request/SensorCreateRequest.java rename src/main/java/com/factoreal/backend/domain/sensor/dto/{SensorUpdateDto.java => request/SensorUpdateRequest.java} (74%) rename src/main/java/com/factoreal/backend/domain/sensor/dto/{SensorDto.java => response/SensorInfoResponse.java} (65%) diff --git a/src/main/java/com/factoreal/backend/domain/sensor/api/SensorController.java b/src/main/java/com/factoreal/backend/domain/sensor/api/SensorController.java index a5a24ba8..8c3e654d 100644 --- a/src/main/java/com/factoreal/backend/domain/sensor/api/SensorController.java +++ b/src/main/java/com/factoreal/backend/domain/sensor/api/SensorController.java @@ -1,10 +1,11 @@ package com.factoreal.backend.domain.sensor.api; -import com.factoreal.backend.domain.sensor.dto.SensorDto; -import com.factoreal.backend.domain.sensor.dto.SensorUpdateDto; +import com.factoreal.backend.domain.sensor.dto.response.SensorInfoResponse; import com.factoreal.backend.domain.sensor.application.SensorService; +import com.factoreal.backend.domain.sensor.dto.request.SensorUpdateRequest; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -12,45 +13,23 @@ @RestController @RequestMapping("/api/sensors") +@RequiredArgsConstructor @Tag(name = "센서 정보 API", description = "센서 정보 처리 API입니다.") public class SensorController { - private final SensorService service; - public SensorController(SensorService service) { - this.service = service; - } - - // // 센서 등록 (임시 코드) - // @PostMapping - // // @Operation(summary = "센서 등록 (임시 기능)", description = "센서 정보를 수동으로 등록하는 임시 메서드", hidden = true) - // @Operation(summary = "센서 등록 (임시 기능)", description = "센서 정보를 수동으로 등록하는 임시 메서드", hidden = false) - // public ResponseEntity> createSensor(@RequestBody SensorDto dto) { - // Map response = new HashMap<>(); - // try { - // Sensor sens = service.saveSensor(dto); - // response.put("success", true); - // return ResponseEntity.ok(response); - // } catch (Exception e) { - // response.put("success", false); - // return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(response); - // } - // } - - // 전체 센서 리스트 조회 ( BE -> FE 센서ID, 센서종류 넘기기 ) @GetMapping - @Operation(summary = "전체 센서 리스트 조회", description = "전체 센서 정보를 조회하는 기능") - public ResponseEntity> list() { - return ResponseEntity.ok(service.getAllSensors()); + @Operation(summary = "전체 센서 리스트 조회", description = "센서 ID, 센서 종류를 포함한 전체 센서 정보를 조회하는 기능") + public List getSensorList() { + return service.getAllSensors(); } - // DB Sensor Table 업데이트 ( FE -> BE 센서ID 매핑해서 센서목적, 위치, 임계치 업데이트 ) @PostMapping("/{sensorId}") @Operation(summary = "센서 정보 업데이트", description = "센서ID 매핑해서 임계치(sensorThres)와 허용치(allowVal) 업데이트 (FE -> BE) ") public ResponseEntity update( @PathVariable("sensorId") String sensorId, - @RequestBody SensorUpdateDto dto) { - service.updateSensor(sensorId, dto); - return ResponseEntity.noContent().build(); + @RequestBody SensorUpdateRequest sensorUpdateRequest) { + service.updateSensor(sensorId, sensorUpdateRequest); + return ResponseEntity.ok().build(); } } \ No newline at end of file diff --git a/src/main/java/com/factoreal/backend/domain/sensor/application/SensorService.java b/src/main/java/com/factoreal/backend/domain/sensor/application/SensorService.java index 7e0cf594..1a20fe35 100644 --- a/src/main/java/com/factoreal/backend/domain/sensor/application/SensorService.java +++ b/src/main/java/com/factoreal/backend/domain/sensor/application/SensorService.java @@ -4,14 +4,15 @@ import java.util.Optional; import java.util.stream.Collectors; +import com.factoreal.backend.domain.sensor.dto.request.SensorCreateRequest; +import com.factoreal.backend.domain.sensor.dto.response.SensorInfoResponse; +import com.factoreal.backend.domain.sensor.dto.request.SensorUpdateRequest; import com.factoreal.backend.global.kafka.strategy.enums.SensorType; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.server.ResponseStatusException; -import com.factoreal.backend.domain.sensor.dto.SensorDto; -import com.factoreal.backend.domain.sensor.dto.SensorUpdateDto; import com.factoreal.backend.domain.equip.entity.Equip; import com.factoreal.backend.domain.sensor.entity.Sensor; import com.factoreal.backend.domain.zone.entity.Zone; @@ -26,40 +27,27 @@ @Service @RequiredArgsConstructor public class SensorService { - private final SensorRepository repo; - private final ZoneRepository zoneRepo; - private final EquipRepository equipRepo; + private final SensorRepository sensorRepository; + private final ZoneRepository zoneRepository; + private final EquipRepository equipRepository; - // 센서 등록 @Transactional - public Sensor saveSensor(SensorDto dto) { - // 1. Zone 존재 여부 확인 - Zone zone = zoneRepo.findById(dto.getZoneId()) - .orElseThrow(() -> new ResponseStatusException( - HttpStatus.NOT_FOUND, "존재하지 않는 공간 ID: " + dto.getZoneId())); + public Sensor saveSensor(SensorCreateRequest dto) { + Zone zone = getZoneById(dto.getZoneId()); + Equip equip = getEquipById(dto.getEquipId()); - // 2. Equip 존재 여부 확인 - Optional equip = Optional.ofNullable(equipRepo.findByEquipId(dto.getEquipId()) - .orElseThrow(() -> new ResponseStatusException( - HttpStatus.NOT_FOUND, "존재하지 않는 설비 ID: " + dto.getEquipId()))); - if(equip.isEmpty()) { - log.info("존재하지 않는 설비 ID"); - - } - // 3. 센서 정보 저장 Sensor sens = new Sensor(); sens.setSensorId(dto.getSensorId()); sens.setSensorType(SensorType.valueOf(dto.getSensorType())); sens.setZone(zone); - sens.setEquip(equip.get()); + sens.setEquip(equip); sens.setIsZone(dto.getIsZone()); - return repo.save(sens); + return sensorRepository.save(sens); } - // 센서 전체 리스트 조회 - public List getAllSensors() { - return repo.findAll().stream() - .map(s -> new SensorDto( + public List getAllSensors() { + return sensorRepository.findAll().stream() + .map(s -> new SensorInfoResponse( s.getSensorId(), s.getSensorType().toString(), s.getZone().getZoneId(), @@ -71,22 +59,27 @@ public List getAllSensors() { .collect(Collectors.toList()); } - // Sensor Table 업데이트 @Transactional - public void updateSensor(String sensorId, SensorUpdateDto dto) { - Sensor sensor = repo.findBySensorId(sensorId) - .orElseThrow(() -> new ResponseStatusException( - HttpStatus.NOT_FOUND, "존재하지 않는 센서 ID: " + sensorId)); + public void updateSensor(String sensorId, SensorUpdateRequest dto) { + Sensor sensor = getSensorById(sensorId); sensor.setSensorThres(dto.getSensorThres()); sensor.setAllowVal(dto.getAllowVal()); - repo.save(sensor); + sensorRepository.save(sensor); } - /** 이전에 repository를 직접 호출하던 부분을 메서드로 분리 */ - // 센서 ID로 Sensor 엔티티 조회 + private Zone getZoneById(String zoneId) { + return zoneRepository.findById(zoneId) + .orElseThrow(() -> new ResponseStatusException( + HttpStatus.NOT_FOUND, "존재하지 않는 공간 ID: " + zoneId)); + } + private Equip getEquipById(String eqiuipId) { + return equipRepository.findById(eqiuipId) + .orElseThrow(() -> new ResponseStatusException( + HttpStatus.NOT_FOUND, "존재하지 않는 센서 ID: " + eqiuipId)); + } public Sensor getSensorById(String sensorId) { - return repo.findBySensorId(sensorId) - .orElseThrow(() -> new ResponseStatusException( - HttpStatus.NOT_FOUND, "존재하지 않는 센서 ID: " + sensorId)); + return sensorRepository.findById(sensorId) + .orElseThrow(() -> new ResponseStatusException( + HttpStatus.NOT_FOUND, "존재하지 않는 센서 ID: " + sensorId)); } } \ No newline at end of file diff --git a/src/main/java/com/factoreal/backend/domain/sensor/dao/SensorRepository.java b/src/main/java/com/factoreal/backend/domain/sensor/dao/SensorRepository.java index 186ccae2..66997b5d 100644 --- a/src/main/java/com/factoreal/backend/domain/sensor/dao/SensorRepository.java +++ b/src/main/java/com/factoreal/backend/domain/sensor/dao/SensorRepository.java @@ -10,6 +10,5 @@ import java.util.List; public interface SensorRepository extends JpaRepository { - Optional findBySensorId(String sensorId); List findByZone(Zone zone); } \ No newline at end of file diff --git a/src/main/java/com/factoreal/backend/domain/sensor/dto/SensorDataDto.java b/src/main/java/com/factoreal/backend/domain/sensor/dto/SensorDataDto.java deleted file mode 100644 index 33a769b8..00000000 --- a/src/main/java/com/factoreal/backend/domain/sensor/dto/SensorDataDto.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.factoreal.backend.domain.sensor.dto; - -import lombok.Builder; -import lombok.Data; - -@Data -@Builder -public class SensorDataDto { // Kafka -> BE 용 Dto - private String zoneId; - private String equipId; - private String sensorId; - private String sensorType; - private Float val; - private String time; -} diff --git a/src/main/java/com/factoreal/backend/domain/sensor/dto/request/SensorCreateRequest.java b/src/main/java/com/factoreal/backend/domain/sensor/dto/request/SensorCreateRequest.java new file mode 100644 index 00000000..e627ec2d --- /dev/null +++ b/src/main/java/com/factoreal/backend/domain/sensor/dto/request/SensorCreateRequest.java @@ -0,0 +1,34 @@ +package com.factoreal.backend.domain.sensor.dto.request; + +import com.factoreal.backend.domain.sensor.dto.response.SensorInfoResponse; +import com.factoreal.backend.domain.sensor.entity.Sensor; +import lombok.*; + +@Getter +@Setter +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class SensorCreateRequest { + private String sensorId; + private String sensorType; + private String zoneId; + private String equipId; + private Double sensorThres; // 임계치 + private Double allowVal; // 허용치 + private Integer isZone; + + public static SensorInfoResponse from (Sensor sensor) { + if (sensor == null) return null; + + return SensorInfoResponse.builder() + .sensorId(sensor.getSensorId()) + .sensorType(sensor.getSensorType().toString()) + .zoneId(sensor.getZone().getZoneId()) + .equipId(sensor.getEquip().getEquipId()) + .sensorThres(sensor.getSensorThres()) + .allowVal(sensor.getAllowVal()) + .isZone(sensor.getIsZone()) + .build(); + } +} \ No newline at end of file diff --git a/src/main/java/com/factoreal/backend/domain/sensor/dto/SensorUpdateDto.java b/src/main/java/com/factoreal/backend/domain/sensor/dto/request/SensorUpdateRequest.java similarity index 74% rename from src/main/java/com/factoreal/backend/domain/sensor/dto/SensorUpdateDto.java rename to src/main/java/com/factoreal/backend/domain/sensor/dto/request/SensorUpdateRequest.java index 478f1577..3557d740 100644 --- a/src/main/java/com/factoreal/backend/domain/sensor/dto/SensorUpdateDto.java +++ b/src/main/java/com/factoreal/backend/domain/sensor/dto/request/SensorUpdateRequest.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.domain.sensor.dto; +package com.factoreal.backend.domain.sensor.dto.request; import lombok.AllArgsConstructor; import lombok.Getter; @@ -7,11 +7,9 @@ @Getter @Setter @AllArgsConstructor -public class SensorUpdateDto { +public class SensorUpdateRequest { // private String sensorPurpose; // 센서목적 // private String location; // 위치 private Double sensorThres; // 임계치 private Double allowVal; // 허용치(오차범위) - - public SensorUpdateDto() {} } \ No newline at end of file diff --git a/src/main/java/com/factoreal/backend/domain/sensor/dto/SensorDto.java b/src/main/java/com/factoreal/backend/domain/sensor/dto/response/SensorInfoResponse.java similarity index 65% rename from src/main/java/com/factoreal/backend/domain/sensor/dto/SensorDto.java rename to src/main/java/com/factoreal/backend/domain/sensor/dto/response/SensorInfoResponse.java index b91c88bd..783961b5 100644 --- a/src/main/java/com/factoreal/backend/domain/sensor/dto/SensorDto.java +++ b/src/main/java/com/factoreal/backend/domain/sensor/dto/response/SensorInfoResponse.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.domain.sensor.dto; +package com.factoreal.backend.domain.sensor.dto.response; import com.factoreal.backend.domain.sensor.entity.Sensor; import lombok.*; @@ -8,19 +8,19 @@ @Builder @AllArgsConstructor @NoArgsConstructor -public class SensorDto { // BE -> FE 용 DTO - private String sensorId; // 센서ID - private String sensorType; // 센서종류 - private String zoneId; // zoneId 저장 +public class SensorInfoResponse { + private String sensorId; + private String sensorType; + private String zoneId; private String equipId; - private Double sensorThres; // 임계치 + private Double sensorThres; // 임계치 private Double allowVal; // 허용치 private Integer isZone; - public static SensorDto fromEntity(Sensor sensor) { + public static SensorInfoResponse from (Sensor sensor) { if (sensor == null) return null; - return SensorDto.builder() + return SensorInfoResponse.builder() .sensorId(sensor.getSensorId()) .sensorType(sensor.getSensorType().toString()) .zoneId(sensor.getZone().getZoneId()) diff --git a/src/main/java/com/factoreal/backend/domain/zone/application/ZoneService.java b/src/main/java/com/factoreal/backend/domain/zone/application/ZoneService.java index 5be4838a..95a85ffe 100644 --- a/src/main/java/com/factoreal/backend/domain/zone/application/ZoneService.java +++ b/src/main/java/com/factoreal/backend/domain/zone/application/ZoneService.java @@ -7,7 +7,7 @@ import com.factoreal.backend.domain.equip.application.EquipService; import com.factoreal.backend.domain.equip.dto.response.EquipDto; -import com.factoreal.backend.domain.sensor.dto.SensorDto; +import com.factoreal.backend.domain.sensor.dto.response.SensorInfoResponse; import com.factoreal.backend.domain.zone.dto.FacilityDto; import com.factoreal.backend.domain.zone.dto.ZoneDto; import com.factoreal.backend.domain.zone.dto.ZoneItemDto; @@ -106,8 +106,8 @@ public List getZoneItems() { .toList(); // 1) Sensor 엔티티 → SensorDto 변환 - List envSensorDtos = envSensors.stream() // List - .map(SensorDto::fromEntity) // Sensor → SensorDto + List envSensorDtos = envSensors.stream() // List + .map(SensorInfoResponse::from) // Sensor → SensorDto .toList(); @@ -116,10 +116,10 @@ public List getZoneItems() { .toList(); // empty이름을 가진 설비(환경센서)는 설비 목록에서 제외하기 // 설비 센서 그룹핑 - Map> facGroup = sensors.stream() + Map> facGroup = sensors.stream() .filter(s -> !Objects.equals(s.getZone().getZoneId(), s.getEquip().getEquipId())) - .map(SensorDto::fromEntity) // ★ Sensor → SensorDto - .collect(Collectors.groupingBy(SensorDto::getEquipId)); + .map(SensorInfoResponse::from) // ★ Sensor → SensorDto + .collect(Collectors.groupingBy(SensorInfoResponse::getEquipId)); List facilities = equips.stream() .map(entry -> { @@ -127,7 +127,7 @@ public List getZoneItems() { String equipId = entry.getEquipId(); String equipName = equipRepo.findEquipNameByEquipId(equipId); // 1-row 조회 - List facSensors = facGroup.getOrDefault(equipId, List.of()); + List facSensors = facGroup.getOrDefault(equipId, List.of()); return FacilityDto.builder() .name(equipName) diff --git a/src/main/java/com/factoreal/backend/domain/zone/dto/FacilityDto.java b/src/main/java/com/factoreal/backend/domain/zone/dto/FacilityDto.java index d7a7f13f..7e679fa1 100644 --- a/src/main/java/com/factoreal/backend/domain/zone/dto/FacilityDto.java +++ b/src/main/java/com/factoreal/backend/domain/zone/dto/FacilityDto.java @@ -1,6 +1,6 @@ package com.factoreal.backend.domain.zone.dto; -import com.factoreal.backend.domain.sensor.dto.SensorDto; +import com.factoreal.backend.domain.sensor.dto.response.SensorInfoResponse; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.*; @@ -18,5 +18,5 @@ public class FacilityDto { @JsonProperty("id") private String id; @JsonProperty("fac_sensor") - private List facSensor; + private List facSensor; } diff --git a/src/main/java/com/factoreal/backend/domain/zone/dto/ZoneItemDto.java b/src/main/java/com/factoreal/backend/domain/zone/dto/ZoneItemDto.java index 6b05d2d8..315a0026 100644 --- a/src/main/java/com/factoreal/backend/domain/zone/dto/ZoneItemDto.java +++ b/src/main/java/com/factoreal/backend/domain/zone/dto/ZoneItemDto.java @@ -1,7 +1,6 @@ package com.factoreal.backend.domain.zone.dto; - -import com.factoreal.backend.domain.sensor.dto.SensorDto; +import com.factoreal.backend.domain.sensor.dto.response.SensorInfoResponse; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Builder; @@ -13,7 +12,7 @@ public class ZoneItemDto { private String title; @JsonProperty("env_sensor") - private List envSensor; + private List envSensor; @JsonProperty("facility") private List facility; } diff --git a/src/main/java/com/factoreal/backend/global/config/AwsMqttListener.java b/src/main/java/com/factoreal/backend/global/config/AwsMqttListener.java index 60d1ecae..1f99ce0c 100644 --- a/src/main/java/com/factoreal/backend/global/config/AwsMqttListener.java +++ b/src/main/java/com/factoreal/backend/global/config/AwsMqttListener.java @@ -1,8 +1,8 @@ package com.factoreal.backend.global.config; +import com.factoreal.backend.domain.sensor.dto.request.SensorCreateRequest; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; -import com.factoreal.backend.domain.sensor.dto.SensorDto; import com.factoreal.backend.domain.sensor.application.SensorService; import com.factoreal.backend.global.util.SslUtil; import jakarta.annotation.PostConstruct; @@ -86,7 +86,7 @@ public void connect() throws Exception { String sensorId = jsonNode.at("/id").asText(); String type = jsonNode.at("/type").asText(); // SensorDto dto = new SensorDto(sensorId, type); - SensorDto dto = new SensorDto(); + SensorCreateRequest dto = new SensorCreateRequest(); sensorService.saveSensor(dto); // 중복이면 예외 발생 log.info("✅ 센서 저장 완료: {}", sensorId); } catch (DataIntegrityViolationException e) { diff --git a/src/main/java/com/factoreal/backend/global/mqtt/MqttService.java b/src/main/java/com/factoreal/backend/global/mqtt/MqttService.java index 1efde097..228ba257 100644 --- a/src/main/java/com/factoreal/backend/global/mqtt/MqttService.java +++ b/src/main/java/com/factoreal/backend/global/mqtt/MqttService.java @@ -1,7 +1,7 @@ package com.factoreal.backend.global.mqtt; -import com.factoreal.backend.domain.sensor.dto.SensorDto; import com.factoreal.backend.domain.sensor.application.SensorService; +import com.factoreal.backend.domain.sensor.dto.request.SensorCreateRequest; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import jakarta.annotation.PostConstruct; @@ -51,7 +51,7 @@ public void SensorShadowSubscription() throws MqttException { Integer iszone = equipId.equals(zoneId) ? 1 : 0; - SensorDto dto = new SensorDto(sensorId, type , zoneId, equipId, null, null, iszone); + SensorCreateRequest dto = new SensorCreateRequest(sensorId, type , zoneId, equipId, null, null, iszone); sensorService.saveSensor(dto); // 중복이면 예외 발생 log.info("✅ 센서 저장 완료: {}", sensorId); } catch (DataIntegrityViolationException e) { From ec7c4b01909ea8d242dfe44c66a5246e045937ed Mon Sep 17 00:00:00 2001 From: Subin Cho Date: Thu, 22 May 2025 18:25:36 +0900 Subject: [PATCH 4/7] =?UTF-8?q?feat=20|=20sprint2=20|=20FRB-173=20|=20zone?= =?UTF-8?q?=20=EB=8F=84=EB=A9=94=EC=9D=B8=20=EB=A6=AC=ED=8C=A9=ED=86=A0?= =?UTF-8?q?=EB=A7=81=20|=20=EC=A1=B0=EC=88=98=EB=B9=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/AbnormalLogService.java | 17 +-- .../equip/application/EquipService.java | 4 +- .../dto/response/EquipDetailResponse.java | 18 +++ .../worker/application/WorkerService.java | 10 +- .../domain/zone/api/SystemLogController.java | 31 ---- .../domain/zone/api/ZoneController.java | 56 +++---- ...roller.java => ZoneHistoryController.java} | 18 +-- ...onService.java => ZoneHistoryService.java} | 8 +- .../domain/zone/application/ZoneService.java | 142 ++++++++++-------- ...sitory.java => ZoneHistoryRepository.java} | 4 +- .../backend/domain/zone/dto/FacilityDto.java | 22 --- .../backend/domain/zone/dto/ZoneItemDto.java | 18 --- .../ZoneCreateRequest.java} | 7 +- .../dto/request/ZoneHistoryRequest.java} | 6 +- .../ZoneUpdateRequest.java} | 4 +- .../zone/dto/response/ZoneDetailResponse.java | 18 +++ .../zone/dto/response/ZoneInfoResponse.java | 20 +++ .../dto/response/ZoneLogResponse.java} | 9 +- .../domain/zone/{dto => entity}/ZoneHist.java | 3 +- .../backend/global/kafka/KafkaConsumerD.java | 4 +- .../backend/global/util/EquipIdGenerator.java | 17 --- ...{ZoneIdGenerator.java => IdGenerator.java} | 8 +- .../backend/service/AlarmEventService.java | 5 +- .../backend/service/WorkerServiceTest.java | 2 +- 24 files changed, 209 insertions(+), 242 deletions(-) create mode 100644 src/main/java/com/factoreal/backend/domain/equip/dto/response/EquipDetailResponse.java delete mode 100644 src/main/java/com/factoreal/backend/domain/zone/api/SystemLogController.java rename src/main/java/com/factoreal/backend/domain/zone/api/{WorkerLocationController.java => ZoneHistoryController.java} (65%) rename src/main/java/com/factoreal/backend/domain/zone/application/{WorkerLocationService.java => ZoneHistoryService.java} (93%) rename src/main/java/com/factoreal/backend/domain/zone/dao/{ZoneHistRepository.java => ZoneHistoryRepository.java} (76%) delete mode 100644 src/main/java/com/factoreal/backend/domain/zone/dto/FacilityDto.java delete mode 100644 src/main/java/com/factoreal/backend/domain/zone/dto/ZoneItemDto.java rename src/main/java/com/factoreal/backend/domain/zone/dto/{ZoneDto.java => request/ZoneCreateRequest.java} (66%) rename src/main/java/com/factoreal/backend/domain/{worker/dto/WorkerLocationRequest.java => zone/dto/request/ZoneHistoryRequest.java} (62%) rename src/main/java/com/factoreal/backend/domain/zone/dto/{ZoneUpdateDto.java => request/ZoneUpdateRequest.java} (71%) create mode 100644 src/main/java/com/factoreal/backend/domain/zone/dto/response/ZoneDetailResponse.java create mode 100644 src/main/java/com/factoreal/backend/domain/zone/dto/response/ZoneInfoResponse.java rename src/main/java/com/factoreal/backend/domain/{abnormalLog/dto/SystemLogResponseDto.java => zone/dto/response/ZoneLogResponse.java} (88%) rename src/main/java/com/factoreal/backend/domain/zone/{dto => entity}/ZoneHist.java (91%) delete mode 100644 src/main/java/com/factoreal/backend/global/util/EquipIdGenerator.java rename src/main/java/com/factoreal/backend/global/util/{ZoneIdGenerator.java => IdGenerator.java} (86%) diff --git a/src/main/java/com/factoreal/backend/domain/abnormalLog/application/AbnormalLogService.java b/src/main/java/com/factoreal/backend/domain/abnormalLog/application/AbnormalLogService.java index af7ab66c..6f526688 100644 --- a/src/main/java/com/factoreal/backend/domain/abnormalLog/application/AbnormalLogService.java +++ b/src/main/java/com/factoreal/backend/domain/abnormalLog/application/AbnormalLogService.java @@ -1,12 +1,11 @@ package com.factoreal.backend.domain.abnormalLog.application; -import com.factoreal.backend.domain.zone.application.ZoneService; import com.factoreal.backend.domain.abnormalLog.dto.AbnormalLogDto; import com.factoreal.backend.domain.abnormalLog.dto.AbnormalPagingDto; import com.factoreal.backend.domain.abnormalLog.dto.LogType; -import com.factoreal.backend.domain.abnormalLog.dto.SystemLogResponseDto; import com.factoreal.backend.domain.sensor.dto.SensorKafkaDto; import com.factoreal.backend.domain.abnormalLog.entity.AbnormalLog; +import com.factoreal.backend.domain.zone.dao.ZoneRepository; import com.factoreal.backend.domain.zone.entity.Zone; import com.factoreal.backend.domain.abnormalLog.dao.AbnLogRepository; import com.factoreal.backend.global.sender.WebSocketSender; @@ -31,7 +30,7 @@ @RequiredArgsConstructor public class AbnormalLogService { private final AbnLogRepository abnLogRepository; - private final ZoneService zoneService; + private final ZoneRepository zoneRepository; private final RiskMessageProvider riskMessageProvider; private final ObjectMapper objectMapper; private final WebSocketSender webSocketSender; @@ -46,7 +45,7 @@ public AbnormalLog saveAbnormalLogFromKafkaDto( ) throws Exception{ - Zone zone = zoneService.getZone(sensorKafkaDto.getZoneId()); + Zone zone = zoneRepository.findByZoneId(sensorKafkaDto.getZoneId()); if (zone == null) { @@ -161,16 +160,6 @@ public Long readRequired(){ return count; } - @Transactional(readOnly = true) - public Page findSystemLogsByZoneId(String zoneId, AbnormalPagingDto pagingDto) { - log.info("공간 ID: {}의 시스템 로그 조회", zoneId); - Pageable pageable = getPageable(pagingDto); - - // zoneId로 직접 필터링된 로그 조회 - Page logs = abnLogRepository.findByZone_ZoneIdOrderByDetectedAtDesc(zoneId, pageable); - return logs.map(SystemLogResponseDto::fromEntity); - } - private Pageable getPageable(AbnormalPagingDto abnormalPagingDto){ return PageRequest.of( abnormalPagingDto.getPage(), diff --git a/src/main/java/com/factoreal/backend/domain/equip/application/EquipService.java b/src/main/java/com/factoreal/backend/domain/equip/application/EquipService.java index 7dbd48f0..79fc575e 100644 --- a/src/main/java/com/factoreal/backend/domain/equip/application/EquipService.java +++ b/src/main/java/com/factoreal/backend/domain/equip/application/EquipService.java @@ -7,12 +7,12 @@ import com.factoreal.backend.domain.zone.entity.Zone; import com.factoreal.backend.domain.equip.dao.EquipRepository; import com.factoreal.backend.domain.zone.dao.ZoneRepository; -import com.factoreal.backend.global.util.EquipIdGenerator; import jakarta.transaction.Transactional; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.web.server.ResponseStatusException; +import com.factoreal.backend.global.util.IdGenerator; import java.util.List; import java.util.stream.Collectors; @@ -47,7 +47,7 @@ public EquipDto createEquip(EquipCreateRequest req) { HttpStatus.BAD_REQUEST, "존재하지 않는 공간명: " + req.getZoneName())); // 2. 고유한 설비ID 생성 - String equipId = EquipIdGenerator.generateEquipId(); + String equipId = IdGenerator.generateId(); // 3. 설비 정보 저장 Equip equip = new Equip(equipId, req.getEquipName(), zone); diff --git a/src/main/java/com/factoreal/backend/domain/equip/dto/response/EquipDetailResponse.java b/src/main/java/com/factoreal/backend/domain/equip/dto/response/EquipDetailResponse.java new file mode 100644 index 00000000..05e54643 --- /dev/null +++ b/src/main/java/com/factoreal/backend/domain/equip/dto/response/EquipDetailResponse.java @@ -0,0 +1,18 @@ +package com.factoreal.backend.domain.equip.dto.response; + +import com.factoreal.backend.domain.sensor.dto.response.SensorInfoResponse; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.*; + +import java.util.List; + +@Getter +@Setter +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class EquipDetailResponse { + private String equipId; + private String equipName; + private List facSensor; +} diff --git a/src/main/java/com/factoreal/backend/domain/worker/application/WorkerService.java b/src/main/java/com/factoreal/backend/domain/worker/application/WorkerService.java index 911b6080..e972aff3 100644 --- a/src/main/java/com/factoreal/backend/domain/worker/application/WorkerService.java +++ b/src/main/java/com/factoreal/backend/domain/worker/application/WorkerService.java @@ -1,14 +1,14 @@ package com.factoreal.backend.domain.worker.application; import com.factoreal.backend.domain.worker.dto.WorkerDto; +import com.factoreal.backend.domain.zone.application.ZoneHistoryService; import com.factoreal.backend.domain.zone.dto.ZoneManagerResponseDto; import com.factoreal.backend.domain.worker.entity.Worker; import com.factoreal.backend.domain.workerZone.entity.WorkerZone; import com.factoreal.backend.domain.zone.entity.Zone; -import com.factoreal.backend.domain.zone.dto.ZoneHist; +import com.factoreal.backend.domain.zone.entity.ZoneHist; import com.factoreal.backend.domain.worker.dao.WorkerRepository; import com.factoreal.backend.domain.workerZone.dao.WorkerZoneRepository; -import com.factoreal.backend.domain.zone.application.WorkerLocationService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -22,7 +22,7 @@ @RequiredArgsConstructor public class WorkerService { private final WorkerRepository workerRepository; - private final WorkerLocationService workerLocationService; + private final ZoneHistoryService zoneHistoryService; private final WorkerZoneRepository workerZoneRepository; @Transactional(readOnly = true) @@ -42,7 +42,7 @@ public List getWorkersByZoneId(String zoneId) { log.info("공간 ID: {}의 현재 작업자 목록 조회", zoneId); // 현재 해당 공간에 있는 작업자 이력 조회 (existFlag = 1) - List currentWorkers = workerLocationService.getCurrentWorkersByZoneId(zoneId); + List currentWorkers = zoneHistoryService.getCurrentWorkersByZoneId(zoneId); // ZoneHist에서 Worker 정보만 추출하여 DTO로 변환 return currentWorkers.stream() @@ -64,7 +64,7 @@ public ZoneManagerResponseDto getZoneManagerWithLocation(String zoneId) { Worker manager = zoneManager.getWorker(); // 2. 담당자의 현재 위치 조회 (existFlag = 1) - ZoneHist currentLocation = workerLocationService.getCurrentWorkerLocation(manager.getWorkerId()); + ZoneHist currentLocation = zoneHistoryService.getCurrentWorkerLocation(manager.getWorkerId()); // 3. 현재 위치한 공간 정보 (없을 수 있음) Zone currentZone = currentLocation != null ? currentLocation.getZone() : null; diff --git a/src/main/java/com/factoreal/backend/domain/zone/api/SystemLogController.java b/src/main/java/com/factoreal/backend/domain/zone/api/SystemLogController.java deleted file mode 100644 index 020bf500..00000000 --- a/src/main/java/com/factoreal/backend/domain/zone/api/SystemLogController.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.factoreal.backend.domain.zone.api; - -import com.factoreal.backend.domain.abnormalLog.dto.AbnormalPagingDto; -import com.factoreal.backend.domain.abnormalLog.dto.SystemLogResponseDto; -import com.factoreal.backend.domain.abnormalLog.application.AbnormalLogService; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.tags.Tag; -import lombok.RequiredArgsConstructor; -import org.springframework.data.domain.Page; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; - -@Tag(name = "시스템 로그 API", description = "공간별 시스템 로그 조회 API") -@RestController -@RequestMapping("/api/system-logs") -@RequiredArgsConstructor -public class SystemLogController { - private final AbnormalLogService abnormalLogService; - - @Operation(summary = "공간별 시스템 로그 조회", description = "특정 공간(zone)의 시스템 로그를 페이징 처리하여 조회합니다.") - @GetMapping("/zone/{zoneId}") - public ResponseEntity> getSystemLogsByZone( - @Parameter(description = "조회할 공간 ID", required = true) - @PathVariable String zoneId, - @Parameter(description = "페이징 정보 (page: 페이지 번호, size: 페이지 크기)") - @ModelAttribute AbnormalPagingDto pagingDto) { - Page logs = abnormalLogService.findSystemLogsByZoneId(zoneId, pagingDto); - return ResponseEntity.ok(logs); - } -} \ No newline at end of file diff --git a/src/main/java/com/factoreal/backend/domain/zone/api/ZoneController.java b/src/main/java/com/factoreal/backend/domain/zone/api/ZoneController.java index 2b0d21f9..d0ae259c 100644 --- a/src/main/java/com/factoreal/backend/domain/zone/api/ZoneController.java +++ b/src/main/java/com/factoreal/backend/domain/zone/api/ZoneController.java @@ -1,25 +1,22 @@ package com.factoreal.backend.domain.zone.api; import java.util.List; -import java.util.Map; -import com.factoreal.backend.domain.zone.dto.ZoneItemDto; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.factoreal.backend.domain.abnormalLog.dto.AbnormalPagingDto; +import com.factoreal.backend.domain.zone.dto.response.ZoneLogResponse; +import com.factoreal.backend.domain.zone.dto.request.ZoneCreateRequest; +import com.factoreal.backend.domain.zone.dto.request.ZoneUpdateRequest; +import com.factoreal.backend.domain.zone.dto.response.ZoneDetailResponse; +import com.factoreal.backend.domain.zone.dto.response.ZoneInfoResponse; +import io.swagger.v3.oas.annotations.Parameter; +import org.springframework.data.domain.Page; +import org.springframework.web.bind.annotation.*; -import com.factoreal.backend.domain.zone.dto.ZoneDto; -import com.factoreal.backend.domain.zone.dto.ZoneUpdateDto; import com.factoreal.backend.domain.zone.application.ZoneService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; -import org.springframework.web.bind.annotation.RequestBody; import lombok.RequiredArgsConstructor; @RestController @@ -31,34 +28,37 @@ public class ZoneController { @PostMapping @Operation(summary = "공간 생성", description = "UI에서 입력한 공간명으로 Zone을 등록하고 고유 zoneId를 생성하여 반환합니다.") - public ResponseEntity createZone(@RequestBody Map req) { - // 1. 공간명 받아오기 - String zoneName = req.get("zoneName"); - // 2. service 호출 - ZoneDto created = service.createZone(zoneName); - // 3. 201 CREATED 응답으로 DTO 반환 - return ResponseEntity.status(HttpStatus.CREATED).body(created); + public ZoneInfoResponse createZone (@RequestBody ZoneCreateRequest zoneCreateRequest) { + return service.createZone(zoneCreateRequest); } @PostMapping("/{zoneName}") @Operation(summary = "공간 정보 수정", description = "기존 공간의 이름을 수정합니다.") - public ResponseEntity updateZone( + public ZoneInfoResponse updateZone( @PathVariable String zoneName, - @RequestBody ZoneUpdateDto dto) { - ZoneDto updated = service.updateZone(zoneName, dto); - return ResponseEntity.ok(updated); + @RequestBody ZoneUpdateRequest dto) { + return service.updateZone(zoneName, dto); } @GetMapping @Operation(summary = "공간 리스트 조회", description = "등록된 모든 공간 정보를 조회합니다.") - public ResponseEntity> listZones() { - List list = service.getAllZones(); - return ResponseEntity.ok(list); + public List listZones() { + return service.getAllZones(); } @GetMapping("/zoneitems") @Operation(summary = "공간별 설비,센서 데이터 조회", description = "등록된 공간들의 각 정보를 조회합니다.") - public ResponseEntity> listZoneItems() { - return ResponseEntity.ok(service.getZoneItems()); + public List listZoneItems() { + return service.getZoneItems(); + } + + @Operation(summary = "공간별 시스템 로그 조회", description = "특정 공간(zone)의 시스템 로그를 페이징 처리하여 조회합니다.") + @GetMapping("/{zoneId}/logs") + public Page getSystemLogsByZone( + @Parameter(description = "조회할 공간 ID", required = true) + @PathVariable String zoneId, + @Parameter(description = "페이징 정보 (page: 페이지 번호, size: 페이지 크기)") + @ModelAttribute AbnormalPagingDto pagingDto) { + return service.findSystemLogsByZoneId(zoneId, pagingDto); } } \ No newline at end of file diff --git a/src/main/java/com/factoreal/backend/domain/zone/api/WorkerLocationController.java b/src/main/java/com/factoreal/backend/domain/zone/api/ZoneHistoryController.java similarity index 65% rename from src/main/java/com/factoreal/backend/domain/zone/api/WorkerLocationController.java rename to src/main/java/com/factoreal/backend/domain/zone/api/ZoneHistoryController.java index 22474e5e..ce38c8ca 100644 --- a/src/main/java/com/factoreal/backend/domain/zone/api/WorkerLocationController.java +++ b/src/main/java/com/factoreal/backend/domain/zone/api/ZoneHistoryController.java @@ -1,7 +1,7 @@ package com.factoreal.backend.domain.zone.api; -import com.factoreal.backend.domain.worker.dto.WorkerLocationRequest; -import com.factoreal.backend.domain.zone.application.WorkerLocationService; +import com.factoreal.backend.domain.zone.application.ZoneHistoryService; +import com.factoreal.backend.domain.zone.dto.request.ZoneHistoryRequest; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; @@ -15,22 +15,20 @@ @Slf4j @Tag(name = "작업자 위치 API", description = "작업자의 실시간 위치 정보를 관리하는 API") @RestController -@RequestMapping("/api/worker-locations") +@RequestMapping("/api/zone-history") @RequiredArgsConstructor -// 웨어러블 디바이스에서 받아오는 데이터를 업데이트하는 컨트롤러 -public class WorkerLocationController { - - private final WorkerLocationService workerLocationService; +public class ZoneHistoryController { + private final ZoneHistoryService zoneHistoryService; @Operation(summary = "작업자 위치 업데이트", description = "웨어러블 디바이스로부터 받은 작업자의 위치 정보를 업데이트합니다.") @PostMapping("/update") - public ResponseEntity updateWorkerLocation(@RequestBody WorkerLocationRequest request) { + public ResponseEntity updateWorkerLocation(@RequestBody ZoneHistoryRequest request) { log.info("작업자 위치 업데이트 요청: {}", request); - workerLocationService.updateWorkerLocation( + zoneHistoryService.updateWorkerLocation( request.getWorkerId(), request.getZoneId(), request.getTimestamp() != null ? request.getTimestamp() : LocalDateTime.now() ); - return ResponseEntity.ok().build(); // 200 OK 응답 + return ResponseEntity.ok().build(); } } \ No newline at end of file diff --git a/src/main/java/com/factoreal/backend/domain/zone/application/WorkerLocationService.java b/src/main/java/com/factoreal/backend/domain/zone/application/ZoneHistoryService.java similarity index 93% rename from src/main/java/com/factoreal/backend/domain/zone/application/WorkerLocationService.java rename to src/main/java/com/factoreal/backend/domain/zone/application/ZoneHistoryService.java index fc9ab1c0..4d976250 100644 --- a/src/main/java/com/factoreal/backend/domain/zone/application/WorkerLocationService.java +++ b/src/main/java/com/factoreal/backend/domain/zone/application/ZoneHistoryService.java @@ -1,10 +1,10 @@ package com.factoreal.backend.domain.zone.application; import com.factoreal.backend.domain.worker.entity.Worker; +import com.factoreal.backend.domain.zone.dao.ZoneHistoryRepository; import com.factoreal.backend.domain.zone.entity.Zone; -import com.factoreal.backend.domain.zone.dto.ZoneHist; +import com.factoreal.backend.domain.zone.entity.ZoneHist; import com.factoreal.backend.domain.worker.dao.WorkerRepository; -import com.factoreal.backend.domain.zone.dao.ZoneHistRepository; import com.factoreal.backend.domain.zone.dao.ZoneRepository; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -17,9 +17,9 @@ @Slf4j @Service @RequiredArgsConstructor -public class WorkerLocationService { +public class ZoneHistoryService { - private final ZoneHistRepository zoneHistRepository; + private final ZoneHistoryRepository zoneHistRepository; private final WorkerRepository workerRepository; private final ZoneRepository zoneRepository; diff --git a/src/main/java/com/factoreal/backend/domain/zone/application/ZoneService.java b/src/main/java/com/factoreal/backend/domain/zone/application/ZoneService.java index 95a85ffe..a5475627 100644 --- a/src/main/java/com/factoreal/backend/domain/zone/application/ZoneService.java +++ b/src/main/java/com/factoreal/backend/domain/zone/application/ZoneService.java @@ -5,100 +5,85 @@ import java.util.Objects; import java.util.stream.Collectors; -import com.factoreal.backend.domain.equip.application.EquipService; -import com.factoreal.backend.domain.equip.dto.response.EquipDto; +import com.factoreal.backend.domain.abnormalLog.dao.AbnLogRepository; +import com.factoreal.backend.domain.abnormalLog.dto.AbnormalPagingDto; +import com.factoreal.backend.domain.abnormalLog.entity.AbnormalLog; +import com.factoreal.backend.domain.equip.dto.response.EquipDetailResponse; import com.factoreal.backend.domain.sensor.dto.response.SensorInfoResponse; -import com.factoreal.backend.domain.zone.dto.FacilityDto; -import com.factoreal.backend.domain.zone.dto.ZoneDto; -import com.factoreal.backend.domain.zone.dto.ZoneItemDto; -import com.factoreal.backend.domain.zone.dto.ZoneUpdateDto; import com.factoreal.backend.domain.equip.entity.Equip; import com.factoreal.backend.domain.sensor.entity.Sensor; import com.factoreal.backend.domain.equip.dao.EquipRepository; import com.factoreal.backend.domain.sensor.dao.SensorRepository; +import com.factoreal.backend.domain.zone.dto.request.ZoneCreateRequest; +import com.factoreal.backend.domain.zone.dto.request.ZoneUpdateRequest; +import com.factoreal.backend.domain.zone.dto.response.ZoneDetailResponse; +import com.factoreal.backend.domain.zone.dto.response.ZoneInfoResponse; +import com.factoreal.backend.domain.zone.dto.response.ZoneLogResponse; +import com.factoreal.backend.global.util.IdGenerator; +import lombok.extern.slf4j.Slf4j; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.web.server.ResponseStatusException; import com.factoreal.backend.domain.zone.entity.Zone; import com.factoreal.backend.domain.zone.dao.ZoneRepository; -import com.factoreal.backend.global.util.ZoneIdGenerator; import jakarta.transaction.Transactional; import lombok.RequiredArgsConstructor; @Service +@Slf4j @RequiredArgsConstructor public class ZoneService { - private final ZoneRepository repo; + private final ZoneRepository zoneRepository; + private final SensorRepository sensorRepository; + private final EquipRepository equipRepository; + private final AbnLogRepository abnLogRepository; - private final SensorRepository sensorRepo; - private final EquipRepository equipRepo; - - private final EquipService equipService; - // 1. 공간명 중복 체크 -> 2. 고유한 공간ID 할당 -> 3. save 한 뒤 DTO로 반환 @Transactional - public ZoneDto createZone(String zoneName) { - // 1. 공간명 중복 체크 - if (repo.findByZoneName(zoneName).isPresent()) { - throw new ResponseStatusException( - HttpStatus.BAD_REQUEST, "이미 존재하는 공간명: " + zoneName); - } - // 2. 고유한 공간ID 할당 - String zoneId = ZoneIdGenerator.generateZoneId(); - // 3. save 한 뒤 DTO로 반환 - Zone zone = repo.save(new Zone(zoneId, zoneName)); - // 4. equip_id 가 없는 (설비 명이 없는 데이터를 위한 빈 equip_객체 생성) - //equipRepo. - EquipDto equipDto = EquipDto - .builder() - .equipName("empty") - .zoneId(zoneId) - .zoneName(zoneName) - .build(); - equipService.saveEquip(equipDto); - return new ZoneDto(zone.getZoneId(), zone.getZoneName()); + public ZoneInfoResponse createZone(ZoneCreateRequest zoneCreateRequest) { + String zoneName = zoneCreateRequest.getZoneName(); + String zoneId = IdGenerator.generateId(); + + validateZoneName(zoneName); + + Zone zone = zoneRepository.save(new Zone(zoneId, zoneName)); + return ZoneInfoResponse.from(zone); } - // 공간정보 업데이트 @Transactional - public ZoneDto updateZone(String zoneName, ZoneUpdateDto dto) { + public ZoneInfoResponse updateZone(String zoneName, ZoneUpdateRequest dto) { // 1. 수정할 공간이 존재하는지 확인 - Zone zone = repo.findByZoneName(zoneName) - .orElseThrow(() -> new ResponseStatusException( - HttpStatus.NOT_FOUND, "존재하지 않는 공간: " + zoneName)); + Zone zone = getZoneByName(zoneName); // 2. 새로운 공간명이 이미 존재하는지 확인 - if (!zone.getZoneName().equals(dto.getZoneName()) && - repo.findByZoneName(dto.getZoneName()).isPresent()) { - throw new ResponseStatusException( - HttpStatus.BAD_REQUEST, "이미 존재하는 공간명: " + dto.getZoneName()); + if (!zone.getZoneName().equals(dto.getZoneName())) { + validateZoneName(dto.getZoneName()); } - // 3. 공간명 업데이트 zone.setZoneName(dto.getZoneName()); - Zone updatedZone = repo.save(zone); - - // 4. DTO로 반환 - return new ZoneDto(updatedZone.getZoneId(), updatedZone.getZoneName()); + Zone updatedZone = zoneRepository.save(zone); + return ZoneInfoResponse.from(updatedZone); } - // 모든 공간 조회 - public List getAllZones() { - return repo.findAll().stream() - .map(zone -> new ZoneDto(zone.getZoneId(), zone.getZoneName())) + public List getAllZones() { + return zoneRepository.findAll().stream() + .map(ZoneInfoResponse::from) .collect(Collectors.toList()); } @Transactional - public List getZoneItems() { + public List getZoneItems() { - List zones = repo.findAll(); + List zones = zoneRepository.findAll(); return zones.stream() .map(zone -> { - List sensors = sensorRepo.findByZone(zone); + List sensors = sensorRepository.findByZone(zone); // 환경 센서 List envSensors = sensors.stream() @@ -111,7 +96,7 @@ public List getZoneItems() { .toList(); - List equips = equipRepo.findEquipsByZone(zone).stream() + List equips = equipRepository.findEquipsByZone(zone).stream() .filter(e -> e.getEquipName() != null && !e.getEquipName().equalsIgnoreCase("empty")) .toList(); // empty이름을 가진 설비(환경센서)는 설비 목록에서 제외하기 @@ -121,33 +106,58 @@ public List getZoneItems() { .map(SensorInfoResponse::from) // ★ Sensor → SensorDto .collect(Collectors.groupingBy(SensorInfoResponse::getEquipId)); - List facilities = equips.stream() + List facilities = equips.stream() .map(entry -> { String equipId = entry.getEquipId(); - String equipName = equipRepo.findEquipNameByEquipId(equipId); // 1-row 조회 + String equipName = equipRepository.findEquipNameByEquipId(equipId); // 1-row 조회 List facSensors = facGroup.getOrDefault(equipId, List.of()); - return FacilityDto.builder() - .name(equipName) + return EquipDetailResponse.builder() + .equipName(equipName) .facSensor(facSensors) - .id(equipId) + .equipId(equipId) .build(); }) .toList(); /* 4) ZoneItemDto 조립 */ - return ZoneItemDto.builder() - .title(zone.getZoneName()) - .envSensor(envSensorDtos) - .facility(facilities) + return ZoneDetailResponse.builder() + .zoneName(zone.getZoneName()) + .zoneSensorList(envSensorDtos) + .equipList(facilities) .build(); }) .toList(); } - public Zone getZone(String zoneId) { - return repo.findByZoneId(zoneId); + @Transactional + public Page findSystemLogsByZoneId(String zoneId, AbnormalPagingDto pagingDto) { + log.info("공간 ID: {}의 시스템 로그 조회", zoneId); + Pageable pageable = getPageable(pagingDto); + + Page logs = abnLogRepository.findByZone_ZoneIdOrderByDetectedAtDesc(zoneId, pageable); + return logs.map(ZoneLogResponse::from); + } + + private Zone getZoneByName(String zoneName) { + return zoneRepository.findByZoneName(zoneName) + .orElseThrow(() -> new ResponseStatusException( + HttpStatus.NOT_FOUND, "존재하지 않는 공간: " + zoneName)); + } + + private void validateZoneName(String zoneName) { + if (zoneRepository.findByZoneName(zoneName).isPresent()) { + throw new ResponseStatusException( + HttpStatus.BAD_REQUEST, "이미 존재하는 공간명: " + zoneName); + } + } + + private Pageable getPageable(AbnormalPagingDto abnormalPagingDto){ + return PageRequest.of( + abnormalPagingDto.getPage(), + abnormalPagingDto.getSize() + ); } } \ No newline at end of file diff --git a/src/main/java/com/factoreal/backend/domain/zone/dao/ZoneHistRepository.java b/src/main/java/com/factoreal/backend/domain/zone/dao/ZoneHistoryRepository.java similarity index 76% rename from src/main/java/com/factoreal/backend/domain/zone/dao/ZoneHistRepository.java rename to src/main/java/com/factoreal/backend/domain/zone/dao/ZoneHistoryRepository.java index 3580924b..b810d6b7 100644 --- a/src/main/java/com/factoreal/backend/domain/zone/dao/ZoneHistRepository.java +++ b/src/main/java/com/factoreal/backend/domain/zone/dao/ZoneHistoryRepository.java @@ -1,11 +1,11 @@ package com.factoreal.backend.domain.zone.dao; -import com.factoreal.backend.domain.zone.dto.ZoneHist; +import com.factoreal.backend.domain.zone.entity.ZoneHist; import org.springframework.data.jpa.repository.JpaRepository; import java.util.List; -public interface ZoneHistRepository extends JpaRepository { +public interface ZoneHistoryRepository extends JpaRepository { // 특정 공간에 현재 있는 작업자들 조회 (existFlag = 1) List findByZone_ZoneIdAndExistFlag(String zoneId, Integer existFlag); diff --git a/src/main/java/com/factoreal/backend/domain/zone/dto/FacilityDto.java b/src/main/java/com/factoreal/backend/domain/zone/dto/FacilityDto.java deleted file mode 100644 index 7e679fa1..00000000 --- a/src/main/java/com/factoreal/backend/domain/zone/dto/FacilityDto.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.factoreal.backend.domain.zone.dto; - -import com.factoreal.backend.domain.sensor.dto.response.SensorInfoResponse; -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.*; - -import java.util.List; - -@Getter // ← 모든 필드 Getter -@Setter // ← Setter (원하면 삭제) -@Builder // ← ⭐ Builder 자동 생성 -@AllArgsConstructor -@NoArgsConstructor -public class FacilityDto { - - @JsonProperty("name") - private String name; - @JsonProperty("id") - private String id; - @JsonProperty("fac_sensor") - private List facSensor; -} diff --git a/src/main/java/com/factoreal/backend/domain/zone/dto/ZoneItemDto.java b/src/main/java/com/factoreal/backend/domain/zone/dto/ZoneItemDto.java deleted file mode 100644 index 315a0026..00000000 --- a/src/main/java/com/factoreal/backend/domain/zone/dto/ZoneItemDto.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.factoreal.backend.domain.zone.dto; - -import com.factoreal.backend.domain.sensor.dto.response.SensorInfoResponse; -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Builder; - -import java.util.List; - -@Builder -public class ZoneItemDto { - @JsonProperty("title") - private String title; - - @JsonProperty("env_sensor") - private List envSensor; - @JsonProperty("facility") - private List facility; -} diff --git a/src/main/java/com/factoreal/backend/domain/zone/dto/ZoneDto.java b/src/main/java/com/factoreal/backend/domain/zone/dto/request/ZoneCreateRequest.java similarity index 66% rename from src/main/java/com/factoreal/backend/domain/zone/dto/ZoneDto.java rename to src/main/java/com/factoreal/backend/domain/zone/dto/request/ZoneCreateRequest.java index f88e2823..21f5f610 100644 --- a/src/main/java/com/factoreal/backend/domain/zone/dto/ZoneDto.java +++ b/src/main/java/com/factoreal/backend/domain/zone/dto/request/ZoneCreateRequest.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.domain.zone.dto; +package com.factoreal.backend.domain.zone.dto.request; import lombok.AllArgsConstructor; import lombok.Getter; @@ -9,7 +9,6 @@ @Setter @NoArgsConstructor @AllArgsConstructor -public class ZoneDto { - private String zoneId; +public class ZoneCreateRequest { private String zoneName; -} \ No newline at end of file +} diff --git a/src/main/java/com/factoreal/backend/domain/worker/dto/WorkerLocationRequest.java b/src/main/java/com/factoreal/backend/domain/zone/dto/request/ZoneHistoryRequest.java similarity index 62% rename from src/main/java/com/factoreal/backend/domain/worker/dto/WorkerLocationRequest.java rename to src/main/java/com/factoreal/backend/domain/zone/dto/request/ZoneHistoryRequest.java index 45c5ed7a..4bbb2ad8 100644 --- a/src/main/java/com/factoreal/backend/domain/worker/dto/WorkerLocationRequest.java +++ b/src/main/java/com/factoreal/backend/domain/zone/dto/request/ZoneHistoryRequest.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.domain.worker.dto; +package com.factoreal.backend.domain.zone.dto.request; import lombok.Getter; import lombok.Setter; @@ -10,8 +10,8 @@ @Setter @ToString // Wearable 장치에서 받아오는 데이터 by 우영. 추후 논의 예정 -public class WorkerLocationRequest { +public class ZoneHistoryRequest { private String workerId; private String zoneId; - private LocalDateTime timestamp; // 장치에서 받아오는 데이터 + private LocalDateTime timestamp; } \ No newline at end of file diff --git a/src/main/java/com/factoreal/backend/domain/zone/dto/ZoneUpdateDto.java b/src/main/java/com/factoreal/backend/domain/zone/dto/request/ZoneUpdateRequest.java similarity index 71% rename from src/main/java/com/factoreal/backend/domain/zone/dto/ZoneUpdateDto.java rename to src/main/java/com/factoreal/backend/domain/zone/dto/request/ZoneUpdateRequest.java index b982f648..e291dcdd 100644 --- a/src/main/java/com/factoreal/backend/domain/zone/dto/ZoneUpdateDto.java +++ b/src/main/java/com/factoreal/backend/domain/zone/dto/request/ZoneUpdateRequest.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.domain.zone.dto; +package com.factoreal.backend.domain.zone.dto.request; import lombok.AllArgsConstructor; import lombok.Getter; @@ -9,6 +9,6 @@ @Setter @NoArgsConstructor @AllArgsConstructor -public class ZoneUpdateDto { +public class ZoneUpdateRequest { private String zoneName; // 수정할 공간명 } diff --git a/src/main/java/com/factoreal/backend/domain/zone/dto/response/ZoneDetailResponse.java b/src/main/java/com/factoreal/backend/domain/zone/dto/response/ZoneDetailResponse.java new file mode 100644 index 00000000..20c5a0fa --- /dev/null +++ b/src/main/java/com/factoreal/backend/domain/zone/dto/response/ZoneDetailResponse.java @@ -0,0 +1,18 @@ +package com.factoreal.backend.domain.zone.dto.response; + +import com.factoreal.backend.domain.equip.dto.response.EquipDetailResponse; +import com.factoreal.backend.domain.sensor.dto.response.SensorInfoResponse; +import lombok.*; + +import java.util.List; + +@Builder +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +public class ZoneDetailResponse { + private String zoneName; + private List zoneSensorList; + private List equipList; +} diff --git a/src/main/java/com/factoreal/backend/domain/zone/dto/response/ZoneInfoResponse.java b/src/main/java/com/factoreal/backend/domain/zone/dto/response/ZoneInfoResponse.java new file mode 100644 index 00000000..424ab3de --- /dev/null +++ b/src/main/java/com/factoreal/backend/domain/zone/dto/response/ZoneInfoResponse.java @@ -0,0 +1,20 @@ +package com.factoreal.backend.domain.zone.dto.response; + +import com.factoreal.backend.domain.zone.entity.Zone; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +public class ZoneInfoResponse { + private String zoneId; + private String zoneName; + + public static ZoneInfoResponse from(Zone zone) { + return new ZoneInfoResponse(zone.getZoneId(), zone.getZoneName()); + } +} \ No newline at end of file diff --git a/src/main/java/com/factoreal/backend/domain/abnormalLog/dto/SystemLogResponseDto.java b/src/main/java/com/factoreal/backend/domain/zone/dto/response/ZoneLogResponse.java similarity index 88% rename from src/main/java/com/factoreal/backend/domain/abnormalLog/dto/SystemLogResponseDto.java rename to src/main/java/com/factoreal/backend/domain/zone/dto/response/ZoneLogResponse.java index 116db2cf..2246a303 100644 --- a/src/main/java/com/factoreal/backend/domain/abnormalLog/dto/SystemLogResponseDto.java +++ b/src/main/java/com/factoreal/backend/domain/zone/dto/response/ZoneLogResponse.java @@ -1,5 +1,6 @@ -package com.factoreal.backend.domain.abnormalLog.dto; +package com.factoreal.backend.domain.zone.dto.response; +import com.factoreal.backend.domain.abnormalLog.dto.LogType; import com.factoreal.backend.domain.abnormalLog.entity.AbnormalLog; import lombok.AllArgsConstructor; import lombok.Builder; @@ -12,7 +13,7 @@ @Builder @NoArgsConstructor @AllArgsConstructor -public class SystemLogResponseDto { +public class ZoneLogResponse { private String zoneId; private String targetType; private String sensorType; @@ -22,8 +23,8 @@ public class SystemLogResponseDto { private String abnormalType; private String targetId; - public static SystemLogResponseDto fromEntity(AbnormalLog abnormalLog) { - return SystemLogResponseDto.builder() + public static ZoneLogResponse from (AbnormalLog abnormalLog) { + return ZoneLogResponse.builder() .zoneId(abnormalLog.getZone().getZoneId()) .targetType(convertLogTypeToKorean(abnormalLog.getTargetType())) .sensorType(abnormalLog.getTargetType().toString()) diff --git a/src/main/java/com/factoreal/backend/domain/zone/dto/ZoneHist.java b/src/main/java/com/factoreal/backend/domain/zone/entity/ZoneHist.java similarity index 91% rename from src/main/java/com/factoreal/backend/domain/zone/dto/ZoneHist.java rename to src/main/java/com/factoreal/backend/domain/zone/entity/ZoneHist.java index 244630c4..1ce251c1 100644 --- a/src/main/java/com/factoreal/backend/domain/zone/dto/ZoneHist.java +++ b/src/main/java/com/factoreal/backend/domain/zone/entity/ZoneHist.java @@ -1,7 +1,6 @@ -package com.factoreal.backend.domain.zone.dto; +package com.factoreal.backend.domain.zone.entity; import com.factoreal.backend.domain.worker.entity.Worker; -import com.factoreal.backend.domain.zone.entity.Zone; import jakarta.persistence.*; import lombok.*; diff --git a/src/main/java/com/factoreal/backend/global/kafka/KafkaConsumerD.java b/src/main/java/com/factoreal/backend/global/kafka/KafkaConsumerD.java index 8a6bf031..a44293ac 100644 --- a/src/main/java/com/factoreal/backend/global/kafka/KafkaConsumerD.java +++ b/src/main/java/com/factoreal/backend/global/kafka/KafkaConsumerD.java @@ -3,6 +3,7 @@ import com.factoreal.backend.domain.sensor.dto.SensorKafkaDto; import com.factoreal.backend.domain.abnormalLog.dto.LogType; import com.factoreal.backend.domain.abnormalLog.entity.AbnormalLog; +import com.factoreal.backend.domain.zone.dao.ZoneRepository; import com.factoreal.backend.domain.zone.dto.SystemLogDto; import com.factoreal.backend.global.sender.WebSocketSender; import com.factoreal.backend.domain.zone.application.ZoneService; @@ -40,6 +41,7 @@ public class KafkaConsumerD { private final ObjectMapper objectMapper; private final WebSocketSender webSocketSender; + private final ZoneRepository zoneRepository; private final ZoneService zoneService; // 알람 푸시 용 @@ -259,7 +261,7 @@ private AlarmEventDto generateAlarmDto(SensorKafkaDto data, AbnormalLog abnormal String source = data.getZoneId().equals(data.getEquipId()) ? "공간 센서" : "설비 센서"; SensorType sensorType = SensorType.valueOf(data.getSensorType()); - String zoneName = zoneService.getZone(data.getZoneId()).getZoneName(); + String zoneName = zoneRepository.findByZoneId(data.getZoneId()).getZoneName(); // 알람 이벤트 객체 반환 return AlarmEventDto.builder() .eventId(abnormalLog.getId()) diff --git a/src/main/java/com/factoreal/backend/global/util/EquipIdGenerator.java b/src/main/java/com/factoreal/backend/global/util/EquipIdGenerator.java deleted file mode 100644 index c72937d5..00000000 --- a/src/main/java/com/factoreal/backend/global/util/EquipIdGenerator.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.factoreal.backend.global.util; - -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import java.util.Random; - - -public class EquipIdGenerator { - private static final Random RANDOM = new Random(); - private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); - - public static String generateEquipId() { - String now = LocalDateTime.now().format(FORMATTER); - int randomSuffix = RANDOM.nextInt(900) + 100; // 100~999 - return now + "-" + randomSuffix; - } -} diff --git a/src/main/java/com/factoreal/backend/global/util/ZoneIdGenerator.java b/src/main/java/com/factoreal/backend/global/util/IdGenerator.java similarity index 86% rename from src/main/java/com/factoreal/backend/global/util/ZoneIdGenerator.java rename to src/main/java/com/factoreal/backend/global/util/IdGenerator.java index 88455284..0298e52f 100644 --- a/src/main/java/com/factoreal/backend/global/util/ZoneIdGenerator.java +++ b/src/main/java/com/factoreal/backend/global/util/IdGenerator.java @@ -4,14 +4,14 @@ import java.time.format.DateTimeFormatter; import java.util.Random; -public class ZoneIdGenerator { + +public class IdGenerator { private static final Random RANDOM = new Random(); private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); - public static String generateZoneId() { + public static String generateId() { String now = LocalDateTime.now().format(FORMATTER); int randomSuffix = RANDOM.nextInt(900) + 100; // 100~999 return now + "-" + randomSuffix; } - -} \ No newline at end of file +} diff --git a/src/main/java/com/factoreal/backend/service/AlarmEventService.java b/src/main/java/com/factoreal/backend/service/AlarmEventService.java index cb1677cb..29c21662 100644 --- a/src/main/java/com/factoreal/backend/service/AlarmEventService.java +++ b/src/main/java/com/factoreal/backend/service/AlarmEventService.java @@ -3,6 +3,7 @@ import com.factoreal.backend.domain.zone.application.ZoneService; import com.factoreal.backend.domain.sensor.dto.SensorKafkaDto; import com.factoreal.backend.domain.abnormalLog.entity.AbnormalLog; +import com.factoreal.backend.domain.zone.dao.ZoneRepository; import com.factoreal.backend.global.kafka.strategy.alarmList.NotificationStrategy; import com.factoreal.backend.global.kafka.strategy.NotificationStrategyFactory; import com.factoreal.backend.global.kafka.strategy.enums.AlarmEventDto; @@ -21,7 +22,7 @@ public class AlarmEventService { // 위험 레벨별 알람 전략을 가져오기 위한 팩토리 서비스 private final NotificationStrategyFactory notificationStrategyFactory; - private final ZoneService zoneService; + private final ZoneRepository zoneRepository; // Todo 추후 Flink에서 SensorKafkaDto에 dangerLevel을 포함하면 제거 public void startAlarm(SensorKafkaDto sensorData, AbnormalLog abnormalLog, int dangerLevel) { AlarmEventDto alarmEventDto; @@ -51,7 +52,7 @@ private AlarmEventDto generateAlarmDto(SensorKafkaDto data, AbnormalLog abnormal String source = data.getZoneId().equals(data.getEquipId()) ? "공간 센서" : "설비 센서"; SensorType sensorType = SensorType.valueOf(data.getSensorType()); - String zoneName = zoneService.getZone(data.getZoneId()).getZoneName(); + String zoneName = zoneRepository.findByZoneId(data.getZoneId()).getZoneName(); // 알람 이벤트 객체 반환 return AlarmEventDto.builder() .eventId(abnormalLog.getId()) diff --git a/src/test/java/com/factoreal/backend/service/WorkerServiceTest.java b/src/test/java/com/factoreal/backend/service/WorkerServiceTest.java index 2a2fc769..79618281 100644 --- a/src/test/java/com/factoreal/backend/service/WorkerServiceTest.java +++ b/src/test/java/com/factoreal/backend/service/WorkerServiceTest.java @@ -5,7 +5,7 @@ import com.factoreal.backend.domain.worker.entity.Worker; import com.factoreal.backend.domain.zone.application.WorkerLocationService; import com.factoreal.backend.domain.zone.entity.Zone; -import com.factoreal.backend.domain.zone.dto.ZoneHist; +import com.factoreal.backend.domain.zone.entity.ZoneHist; import com.factoreal.backend.domain.worker.dao.WorkerRepository; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; From 4917389b457150c3367b1862af9e2f8c9baa17cf Mon Sep 17 00:00:00 2001 From: Subin Cho Date: Fri, 23 May 2025 09:59:16 +0900 Subject: [PATCH 5/7] =?UTF-8?q?=20feat=20|=20sprint2=20|=20FRB-173=20|=20e?= =?UTF-8?q?quip=20&=20worker=20=EB=8F=84=EB=A9=94=EC=9D=B8=20=EB=A6=AC?= =?UTF-8?q?=ED=8C=A9=ED=86=A0=EB=A7=81=20|=20=EC=A1=B0=EC=88=98=EB=B9=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/equip/api/EquipController.java | 21 +++--- .../equip/application/EquipService.java | 64 +++++++------------ .../equip/dto/request/EquipCreateRequest.java | 1 - ...UpdateDto.java => EquipUpdateRequest.java} | 2 +- .../dto/response/EquipDetailResponse.java | 1 - .../{EquipDto.java => EquipInfoResponse.java} | 3 +- .../domain/worker/api/WorkerController.java | 20 +++--- .../worker/application/WorkerService.java | 38 +++++------ .../dao/WorkerZoneRepository.java | 6 +- .../WorkerInfoResponse.java} | 11 ++-- .../dto/response/ZoneManagerResponse.java} | 21 +++--- .../backend/domain/worker/entity/Worker.java | 7 +- .../entity/WorkerZone.java | 4 +- .../entity/WorkerZoneId.java | 2 +- .../zone/application/ZoneHistoryService.java | 17 ----- .../backend/global/kafka/KafkaConsumerD.java | 2 +- .../global/sender/WebSocketSender.java | 4 +- .../zone/dto => global/tmp}/SystemLogDto.java | 2 +- .../dto => global/tmp}/ZoneDangerDto.java | 2 +- .../backend/service/WorkerServiceTest.java | 12 ++-- 20 files changed, 93 insertions(+), 147 deletions(-) rename src/main/java/com/factoreal/backend/domain/equip/dto/request/{EquipUpdateDto.java => EquipUpdateRequest.java} (89%) rename src/main/java/com/factoreal/backend/domain/equip/dto/response/{EquipDto.java => EquipInfoResponse.java} (85%) rename src/main/java/com/factoreal/backend/domain/{workerZone => worker}/dao/WorkerZoneRepository.java (71%) rename src/main/java/com/factoreal/backend/domain/worker/dto/{WorkerDto.java => response/WorkerInfoResponse.java} (69%) rename src/main/java/com/factoreal/backend/domain/{zone/dto/ZoneManagerResponseDto.java => worker/dto/response/ZoneManagerResponse.java} (51%) rename src/main/java/com/factoreal/backend/domain/{workerZone => worker}/entity/WorkerZone.java (82%) rename src/main/java/com/factoreal/backend/domain/{workerZone => worker}/entity/WorkerZoneId.java (88%) rename src/main/java/com/factoreal/backend/{domain/zone/dto => global/tmp}/SystemLogDto.java (92%) rename src/main/java/com/factoreal/backend/{domain/zone/dto => global/tmp}/ZoneDangerDto.java (85%) diff --git a/src/main/java/com/factoreal/backend/domain/equip/api/EquipController.java b/src/main/java/com/factoreal/backend/domain/equip/api/EquipController.java index d2f3dbc8..12d5b1a1 100644 --- a/src/main/java/com/factoreal/backend/domain/equip/api/EquipController.java +++ b/src/main/java/com/factoreal/backend/domain/equip/api/EquipController.java @@ -1,9 +1,9 @@ package com.factoreal.backend.domain.equip.api; import com.factoreal.backend.domain.equip.dto.request.EquipCreateRequest; -import com.factoreal.backend.domain.equip.dto.response.EquipDto; -import com.factoreal.backend.domain.equip.dto.request.EquipUpdateDto; import com.factoreal.backend.domain.equip.application.EquipService; +import com.factoreal.backend.domain.equip.dto.request.EquipUpdateRequest; +import com.factoreal.backend.domain.equip.dto.response.EquipInfoResponse; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; @@ -23,25 +23,22 @@ public class EquipController { @PostMapping @Operation(summary = "설비 등록", description = "UI로부터 설비명과 공간명을 입력받아 고유 ID를 생성하여 설비 정보를 등록합니다.") - public ResponseEntity createEquip(@Valid @RequestBody EquipCreateRequest req) { - EquipDto created = service.createEquip(req); - return ResponseEntity.status(HttpStatus.CREATED).body(created); + public EquipInfoResponse createEquip(@Valid @RequestBody EquipCreateRequest equipCreateRequest) { + return service.createEquip(equipCreateRequest); } @PostMapping("/{equipId}") @Operation(summary = "설비 정보 수정", description = "기존 설비의 이름을 수정합니다.") - public ResponseEntity updateEquip( + public EquipInfoResponse updateEquip( @PathVariable String equipId, - @RequestBody EquipUpdateDto dto) { - - EquipDto updated = service.updateEquip(equipId, dto); - return ResponseEntity.ok(updated); + @RequestBody EquipUpdateRequest dto) { + return service.updateEquip(equipId, dto); } @GetMapping @Operation(summary = "설비 목록 조회", description = "등록된 모든 설비 정보를 조회합니다.") - public ResponseEntity> listEquips() { - return ResponseEntity.ok(service.getAllEquips()); + public List listEquips() { + return service.getAllEquips(); } // // 공간별로 구분된 설비 조회 diff --git a/src/main/java/com/factoreal/backend/domain/equip/application/EquipService.java b/src/main/java/com/factoreal/backend/domain/equip/application/EquipService.java index 79fc575e..1e58f0ba 100644 --- a/src/main/java/com/factoreal/backend/domain/equip/application/EquipService.java +++ b/src/main/java/com/factoreal/backend/domain/equip/application/EquipService.java @@ -1,8 +1,8 @@ package com.factoreal.backend.domain.equip.application; import com.factoreal.backend.domain.equip.dto.request.EquipCreateRequest; -import com.factoreal.backend.domain.equip.dto.response.EquipDto; -import com.factoreal.backend.domain.equip.dto.request.EquipUpdateDto; +import com.factoreal.backend.domain.equip.dto.request.EquipUpdateRequest; +import com.factoreal.backend.domain.equip.dto.response.EquipInfoResponse; import com.factoreal.backend.domain.equip.entity.Equip; import com.factoreal.backend.domain.zone.entity.Zone; import com.factoreal.backend.domain.equip.dao.EquipRepository; @@ -23,44 +23,22 @@ public class EquipService { private final EquipRepository equipRepo; private final ZoneRepository zoneRepo; - // 설비 등록 @Transactional - public Equip saveEquip(EquipDto dto) { - Zone zone = zoneRepo.findById(dto.getZoneId()) - .orElseThrow(() -> new ResponseStatusException( - HttpStatus.NOT_FOUND, "존재하지 않는 공간 ID: " + dto.getZoneId())); - // 설비 정보 저장 - Equip equips = new Equip(); - equips.setEquipId(zone.getZoneId()); - equips.setEquipName(dto.getEquipName()); - equips.setZone(zone); - return equipRepo.save(equips); - } - - - // 설비 생성 - @Transactional - public EquipDto createEquip(EquipCreateRequest req) { + public EquipInfoResponse createEquip(EquipCreateRequest req) { // 1. UI에서 입력받은 zoneName으로 zoneId 조회 - Zone zone = zoneRepo.findByZoneName(req.getZoneName()) - .orElseThrow(() -> new ResponseStatusException( - HttpStatus.BAD_REQUEST, "존재하지 않는 공간명: " + req.getZoneName())); - + Zone zone = findByZoneName(req.getZoneName()); + // 2. 고유한 설비ID 생성 String equipId = IdGenerator.generateId(); // 3. 설비 정보 저장 - Equip equip = new Equip(equipId, req.getEquipName(), zone); - equipRepo.save(equip); - - // 4. DTO로 반환 - return new EquipDto(equipId, req.getEquipName(), zone.getZoneName(), zone.getZoneId()); + equipRepo.save(new Equip(equipId, req.getEquipName(), zone)); + return new EquipInfoResponse(equipId, req.getEquipName(), zone.getZoneName(), zone.getZoneId()); } - // 설비 정보 수정 @Transactional - public EquipDto updateEquip(String equipId, EquipUpdateDto dto) { + public EquipInfoResponse updateEquip(String equipId, EquipUpdateRequest dto) { // 1. 수정할 설비가 존재하는지 확인 Equip equip = equipRepo.findById(equipId) .orElseThrow(() -> new ResponseStatusException( @@ -70,11 +48,9 @@ public EquipDto updateEquip(String equipId, EquipUpdateDto dto) { equip.setEquipName(dto.getEquipName()); Equip updated = equipRepo.save(equip); - // 3. DTO로 반환 - Zone zone = zoneRepo.findById(updated.getZone().getZoneId()) - .orElse(new Zone("", "미등록 공간")); + Zone zone = findByZoneId(updated.getZone().getZoneId()); - return new EquipDto( + return new EquipInfoResponse( updated.getEquipId(), updated.getEquipName(), zone.getZoneName(), @@ -82,15 +58,12 @@ public EquipDto updateEquip(String equipId, EquipUpdateDto dto) { ); } - - // 모든 설비 조회 - public List getAllEquips() { + public List getAllEquips() { return equipRepo.findAll().stream() .map(equip -> { - Zone zone = zoneRepo.findById(equip.getZone().getZoneId()) - .orElse(new Zone("", "미등록 공간")); - return new EquipDto( + Zone zone = findByZoneId(equip.getZone().getZoneId()); + return new EquipInfoResponse( equip.getEquipId(), equip.getEquipName(), zone.getZoneName(), @@ -99,4 +72,15 @@ public List getAllEquips() { }) .collect(Collectors.toList()); } + + private Zone findByZoneName(String zoneName) { + return zoneRepo.findByZoneName(zoneName) + .orElseThrow(() -> new ResponseStatusException( + HttpStatus.BAD_REQUEST, "존재하지 않는 공간명: " + zoneName)); + } + + private Zone findByZoneId(String zoneId) { + return zoneRepo.findById(zoneId) + .orElse(new Zone("", "미등록 공간")); + } } diff --git a/src/main/java/com/factoreal/backend/domain/equip/dto/request/EquipCreateRequest.java b/src/main/java/com/factoreal/backend/domain/equip/dto/request/EquipCreateRequest.java index 0b015efb..17415042 100644 --- a/src/main/java/com/factoreal/backend/domain/equip/dto/request/EquipCreateRequest.java +++ b/src/main/java/com/factoreal/backend/domain/equip/dto/request/EquipCreateRequest.java @@ -9,7 +9,6 @@ @Setter @NoArgsConstructor @AllArgsConstructor -// 설비 생성 요청 DTO ( FE -> BE ) public class EquipCreateRequest { private String equipName; private String zoneName; // 사용자가 선택한 공간명 diff --git a/src/main/java/com/factoreal/backend/domain/equip/dto/request/EquipUpdateDto.java b/src/main/java/com/factoreal/backend/domain/equip/dto/request/EquipUpdateRequest.java similarity index 89% rename from src/main/java/com/factoreal/backend/domain/equip/dto/request/EquipUpdateDto.java rename to src/main/java/com/factoreal/backend/domain/equip/dto/request/EquipUpdateRequest.java index 8b15010a..de04346d 100644 --- a/src/main/java/com/factoreal/backend/domain/equip/dto/request/EquipUpdateDto.java +++ b/src/main/java/com/factoreal/backend/domain/equip/dto/request/EquipUpdateRequest.java @@ -9,6 +9,6 @@ @Setter @NoArgsConstructor @AllArgsConstructor -public class EquipUpdateDto { +public class EquipUpdateRequest { private String equipName; // 수정할 설비명 } diff --git a/src/main/java/com/factoreal/backend/domain/equip/dto/response/EquipDetailResponse.java b/src/main/java/com/factoreal/backend/domain/equip/dto/response/EquipDetailResponse.java index 05e54643..60c25f82 100644 --- a/src/main/java/com/factoreal/backend/domain/equip/dto/response/EquipDetailResponse.java +++ b/src/main/java/com/factoreal/backend/domain/equip/dto/response/EquipDetailResponse.java @@ -1,7 +1,6 @@ package com.factoreal.backend.domain.equip.dto.response; import com.factoreal.backend.domain.sensor.dto.response.SensorInfoResponse; -import com.fasterxml.jackson.annotation.JsonProperty; import lombok.*; import java.util.List; diff --git a/src/main/java/com/factoreal/backend/domain/equip/dto/response/EquipDto.java b/src/main/java/com/factoreal/backend/domain/equip/dto/response/EquipInfoResponse.java similarity index 85% rename from src/main/java/com/factoreal/backend/domain/equip/dto/response/EquipDto.java rename to src/main/java/com/factoreal/backend/domain/equip/dto/response/EquipInfoResponse.java index 8334c470..fbbe95a7 100644 --- a/src/main/java/com/factoreal/backend/domain/equip/dto/response/EquipDto.java +++ b/src/main/java/com/factoreal/backend/domain/equip/dto/response/EquipInfoResponse.java @@ -7,8 +7,7 @@ @Builder @NoArgsConstructor @AllArgsConstructor -// 설비 정보 DTO -public class EquipDto { +public class EquipInfoResponse { private String equipId; private String equipName; private String zoneName; diff --git a/src/main/java/com/factoreal/backend/domain/worker/api/WorkerController.java b/src/main/java/com/factoreal/backend/domain/worker/api/WorkerController.java index 4359a256..20c2b97c 100644 --- a/src/main/java/com/factoreal/backend/domain/worker/api/WorkerController.java +++ b/src/main/java/com/factoreal/backend/domain/worker/api/WorkerController.java @@ -1,14 +1,13 @@ package com.factoreal.backend.domain.worker.api; -import com.factoreal.backend.domain.worker.dto.WorkerDto; -import com.factoreal.backend.domain.zone.dto.ZoneManagerResponseDto; +import com.factoreal.backend.domain.worker.dto.response.WorkerInfoResponse; +import com.factoreal.backend.domain.worker.dto.response.ZoneManagerResponse; import com.factoreal.backend.domain.worker.application.WorkerService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -23,26 +22,23 @@ public class WorkerController { @Operation(summary = "전체 작업자 목록 조회", description = "전체 작업자 목록을 조회합니다.") @GetMapping - public ResponseEntity> getAllWorkers() { + public List getAllWorkers() { log.info("전체 작업자 목록 조회 요청"); - List workers = workerService.getAllWorkers(); - return ResponseEntity.ok(workers); + return workerService.getAllWorkers(); } @Operation(summary = "공간별 작업자 목록 조회", description = "공간 ID를 기반으로 현재 해당 공간에 들어가있는 작업자 리스트를 조회합니다.") @GetMapping("/zone/{zoneId}") - public ResponseEntity> getWorkersByZoneId(@PathVariable String zoneId) { + public List getWorkersByZoneId(@PathVariable String zoneId) { log.info("공간 ID: {}의 작업자 목록 조회 요청", zoneId); - List zoneWorkers = workerService.getWorkersByZoneId(zoneId); - return ResponseEntity.ok(zoneWorkers); + return workerService.getWorkersByZoneId(zoneId); } @Operation(summary = "공간 담당자 정보 조회", description = "공간 ID를 기반으로 해당 공간의 담당자와 현재 위치 정보를 조회합니다.") @GetMapping("/zone/{zoneId}/manager") - public ResponseEntity getZoneManager(@PathVariable String zoneId) { + public ZoneManagerResponse getZoneManager(@PathVariable String zoneId) { log.info("공간 ID: {}의 담당자 정보 조회 요청", zoneId); - ZoneManagerResponseDto manager = workerService.getZoneManagerWithLocation(zoneId); - return ResponseEntity.ok(manager); + return workerService.getZoneManagerWithLocation(zoneId); } } \ No newline at end of file diff --git a/src/main/java/com/factoreal/backend/domain/worker/application/WorkerService.java b/src/main/java/com/factoreal/backend/domain/worker/application/WorkerService.java index e972aff3..452f52ce 100644 --- a/src/main/java/com/factoreal/backend/domain/worker/application/WorkerService.java +++ b/src/main/java/com/factoreal/backend/domain/worker/application/WorkerService.java @@ -1,14 +1,14 @@ package com.factoreal.backend.domain.worker.application; -import com.factoreal.backend.domain.worker.dto.WorkerDto; -import com.factoreal.backend.domain.zone.application.ZoneHistoryService; -import com.factoreal.backend.domain.zone.dto.ZoneManagerResponseDto; +import com.factoreal.backend.domain.worker.dto.response.WorkerInfoResponse; +import com.factoreal.backend.domain.worker.dto.response.ZoneManagerResponse; +import com.factoreal.backend.domain.zone.dao.ZoneHistoryRepository; import com.factoreal.backend.domain.worker.entity.Worker; -import com.factoreal.backend.domain.workerZone.entity.WorkerZone; +import com.factoreal.backend.domain.worker.entity.WorkerZone; import com.factoreal.backend.domain.zone.entity.Zone; import com.factoreal.backend.domain.zone.entity.ZoneHist; import com.factoreal.backend.domain.worker.dao.WorkerRepository; -import com.factoreal.backend.domain.workerZone.dao.WorkerZoneRepository; +import com.factoreal.backend.domain.worker.dao.WorkerZoneRepository; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -22,15 +22,15 @@ @RequiredArgsConstructor public class WorkerService { private final WorkerRepository workerRepository; - private final ZoneHistoryService zoneHistoryService; + private final ZoneHistoryRepository zoneHistoryRepository; private final WorkerZoneRepository workerZoneRepository; @Transactional(readOnly = true) - public List getAllWorkers() { + public List getAllWorkers() { log.info("전체 작업자 목록 조회"); List workers = workerRepository.findAll(); return workers.stream() - .map(worker -> WorkerDto.fromEntity(worker, false)) + .map(worker -> WorkerInfoResponse.from(worker, false)) .collect(Collectors.toList()); } @@ -38,15 +38,11 @@ public List getAllWorkers() { * 특정 공간에 현재 들어가있는 작업자 목록 조회 */ @Transactional(readOnly = true) - public List getWorkersByZoneId(String zoneId) { + public List getWorkersByZoneId(String zoneId) { log.info("공간 ID: {}의 현재 작업자 목록 조회", zoneId); - - // 현재 해당 공간에 있는 작업자 이력 조회 (existFlag = 1) - List currentWorkers = zoneHistoryService.getCurrentWorkersByZoneId(zoneId); - - // ZoneHist에서 Worker 정보만 추출하여 DTO로 변환 + List currentWorkers = zoneHistoryRepository.findByZone_ZoneIdAndExistFlag(zoneId, 1); return currentWorkers.stream() - .map(zoneHist -> WorkerDto.fromEntity(zoneHist.getWorker(), false)) + .map(zoneHist -> WorkerInfoResponse.from(zoneHist.getWorker(), false)) .collect(Collectors.toList()); } @@ -54,23 +50,21 @@ public List getWorkersByZoneId(String zoneId) { * 특정 공간의 담당자와 현재 위치 정보 조회 */ @Transactional(readOnly = true) - public ZoneManagerResponseDto getZoneManagerWithLocation(String zoneId) { + public ZoneManagerResponse getZoneManagerWithLocation(String zoneId) { log.info("공간 ID: {}의 담당자 정보 조회", zoneId); - // 1. 해당 공간의 담당자 조회 (manageYn = true) WorkerZone zoneManager = workerZoneRepository.findByZoneZoneIdAndManageYnIsTrue(zoneId) .orElseThrow(() -> new IllegalArgumentException("해당 공간의 담당자를 찾을 수 없습니다: " + zoneId)); Worker manager = zoneManager.getWorker(); // 2. 담당자의 현재 위치 조회 (existFlag = 1) - ZoneHist currentLocation = zoneHistoryService.getCurrentWorkerLocation(manager.getWorkerId()); - + ZoneHist currentLocation = zoneHistoryRepository.findByWorker_WorkerIdAndExistFlag(manager.getWorkerId(), 1); + // 3. 현재 위치한 공간 정보 (없을 수 있음) Zone currentZone = currentLocation != null ? currentLocation.getZone() : null; - - // 4. DTO 변환 및 반환 - return ZoneManagerResponseDto.fromEntity(manager, currentZone); + + return ZoneManagerResponse.from(manager, currentZone); } } diff --git a/src/main/java/com/factoreal/backend/domain/workerZone/dao/WorkerZoneRepository.java b/src/main/java/com/factoreal/backend/domain/worker/dao/WorkerZoneRepository.java similarity index 71% rename from src/main/java/com/factoreal/backend/domain/workerZone/dao/WorkerZoneRepository.java rename to src/main/java/com/factoreal/backend/domain/worker/dao/WorkerZoneRepository.java index 171bc031..ccda65b1 100644 --- a/src/main/java/com/factoreal/backend/domain/workerZone/dao/WorkerZoneRepository.java +++ b/src/main/java/com/factoreal/backend/domain/worker/dao/WorkerZoneRepository.java @@ -1,7 +1,7 @@ -package com.factoreal.backend.domain.workerZone.dao; +package com.factoreal.backend.domain.worker.dao; -import com.factoreal.backend.domain.workerZone.entity.WorkerZone; -import com.factoreal.backend.domain.workerZone.entity.WorkerZoneId; +import com.factoreal.backend.domain.worker.entity.WorkerZone; +import com.factoreal.backend.domain.worker.entity.WorkerZoneId; import org.springframework.data.jpa.repository.JpaRepository; import java.util.List; diff --git a/src/main/java/com/factoreal/backend/domain/worker/dto/WorkerDto.java b/src/main/java/com/factoreal/backend/domain/worker/dto/response/WorkerInfoResponse.java similarity index 69% rename from src/main/java/com/factoreal/backend/domain/worker/dto/WorkerDto.java rename to src/main/java/com/factoreal/backend/domain/worker/dto/response/WorkerInfoResponse.java index a09fcef8..1c0a7f29 100644 --- a/src/main/java/com/factoreal/backend/domain/worker/dto/WorkerDto.java +++ b/src/main/java/com/factoreal/backend/domain/worker/dto/response/WorkerInfoResponse.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.domain.worker.dto; +package com.factoreal.backend.domain.worker.dto.response; import com.factoreal.backend.domain.worker.entity.Worker; import lombok.AllArgsConstructor; @@ -10,16 +10,15 @@ @AllArgsConstructor @NoArgsConstructor @Builder -public class WorkerDto { +public class WorkerInfoResponse { private String workerId; private String name; private String phoneNumber; private String email; - private Boolean isManager; // 관리자 여부 + private Boolean isManager; - // Entity -> DTO 변환 - public static WorkerDto fromEntity(Worker worker, Boolean isManager) { - return WorkerDto.builder() + public static WorkerInfoResponse from(Worker worker, Boolean isManager) { + return WorkerInfoResponse.builder() .workerId(worker.getWorkerId()) .name(worker.getName()) .phoneNumber(worker.getPhoneNumber()) diff --git a/src/main/java/com/factoreal/backend/domain/zone/dto/ZoneManagerResponseDto.java b/src/main/java/com/factoreal/backend/domain/worker/dto/response/ZoneManagerResponse.java similarity index 51% rename from src/main/java/com/factoreal/backend/domain/zone/dto/ZoneManagerResponseDto.java rename to src/main/java/com/factoreal/backend/domain/worker/dto/response/ZoneManagerResponse.java index 6f593356..32a713c3 100644 --- a/src/main/java/com/factoreal/backend/domain/zone/dto/ZoneManagerResponseDto.java +++ b/src/main/java/com/factoreal/backend/domain/worker/dto/response/ZoneManagerResponse.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.domain.zone.dto; +package com.factoreal.backend.domain.worker.dto.response; import com.factoreal.backend.domain.worker.entity.Worker; import com.factoreal.backend.domain.zone.entity.Zone; @@ -11,17 +11,16 @@ @Builder @NoArgsConstructor @AllArgsConstructor -// 공간 담당자 정보 조회 시 사용되는 DTO (BE -> FE) -public class ZoneManagerResponseDto { - private String workerId; // 작업자 ID - private String name; // 작업자 이름 - private String phoneNumber; // 연락처 - private String email; // 이메일 - private String currentZoneId; // 현재 위치한 공간 ID - private String currentZoneName; // 현재 위치한 공간 이름 +public class ZoneManagerResponse { + private String workerId; + private String name; + private String phoneNumber; + private String email; + private String currentZoneId; + private String currentZoneName; - public static ZoneManagerResponseDto fromEntity(Worker worker, Zone currentZone) { - return ZoneManagerResponseDto.builder() + public static ZoneManagerResponse from(Worker worker, Zone currentZone) { + return ZoneManagerResponse.builder() .workerId(worker.getWorkerId()) .name(worker.getName()) .phoneNumber(worker.getPhoneNumber()) diff --git a/src/main/java/com/factoreal/backend/domain/worker/entity/Worker.java b/src/main/java/com/factoreal/backend/domain/worker/entity/Worker.java index aa68f0f7..3c42e417 100644 --- a/src/main/java/com/factoreal/backend/domain/worker/entity/Worker.java +++ b/src/main/java/com/factoreal/backend/domain/worker/entity/Worker.java @@ -10,19 +10,18 @@ @NoArgsConstructor @AllArgsConstructor @Builder -// 작업자 정보 Table public class Worker { @Id @Column(name = "worker_id", length = 100, nullable = false) - private String workerId; //작업자 고유 ID + private String workerId; @Column(name = "name", length = 100) - private String name; // 작업자 이름 + private String name; @Column(name = "phone_number", length = 50) private String phoneNumber; // 작업자 번호 (국가번호+전화번호의 조합) ex) +8201012345678 @Column(name = "email", length = 100) - private String email; // 작업자 이메일 + private String email; } \ No newline at end of file diff --git a/src/main/java/com/factoreal/backend/domain/workerZone/entity/WorkerZone.java b/src/main/java/com/factoreal/backend/domain/worker/entity/WorkerZone.java similarity index 82% rename from src/main/java/com/factoreal/backend/domain/workerZone/entity/WorkerZone.java rename to src/main/java/com/factoreal/backend/domain/worker/entity/WorkerZone.java index 630a14cf..9c945225 100644 --- a/src/main/java/com/factoreal/backend/domain/workerZone/entity/WorkerZone.java +++ b/src/main/java/com/factoreal/backend/domain/worker/entity/WorkerZone.java @@ -1,6 +1,5 @@ -package com.factoreal.backend.domain.workerZone.entity; +package com.factoreal.backend.domain.worker.entity; -import com.factoreal.backend.domain.worker.entity.Worker; import com.factoreal.backend.domain.zone.entity.Zone; import jakarta.persistence.*; import lombok.*; @@ -20,7 +19,6 @@ public class WorkerZone { @Column(name = "manage_yn", nullable = false) private Boolean manageYn; // 공간담당자 여부 - // 연관관계 @ManyToOne(fetch = FetchType.LAZY) @MapsId("workerId") @JoinColumn(name = "worker_id") diff --git a/src/main/java/com/factoreal/backend/domain/workerZone/entity/WorkerZoneId.java b/src/main/java/com/factoreal/backend/domain/worker/entity/WorkerZoneId.java similarity index 88% rename from src/main/java/com/factoreal/backend/domain/workerZone/entity/WorkerZoneId.java rename to src/main/java/com/factoreal/backend/domain/worker/entity/WorkerZoneId.java index 02efa3b1..7bf29deb 100644 --- a/src/main/java/com/factoreal/backend/domain/workerZone/entity/WorkerZoneId.java +++ b/src/main/java/com/factoreal/backend/domain/worker/entity/WorkerZoneId.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.domain.workerZone.entity; +package com.factoreal.backend.domain.worker.entity; import jakarta.persistence.Column; import jakarta.persistence.Embeddable; diff --git a/src/main/java/com/factoreal/backend/domain/zone/application/ZoneHistoryService.java b/src/main/java/com/factoreal/backend/domain/zone/application/ZoneHistoryService.java index 4d976250..9ae17a76 100644 --- a/src/main/java/com/factoreal/backend/domain/zone/application/ZoneHistoryService.java +++ b/src/main/java/com/factoreal/backend/domain/zone/application/ZoneHistoryService.java @@ -12,7 +12,6 @@ import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; -import java.util.List; @Slf4j @Service @@ -61,20 +60,4 @@ public void updateWorkerLocation(String workerId, String zoneId, LocalDateTime t currentLocation != null ? currentLocation.getZone().getZoneId() : "없음", zoneId); } - - /** - * 특정 공간에 현재 들어가있는 작업자 리스트 조회 - */ - @Transactional(readOnly = true) - public List getCurrentWorkersByZoneId(String zoneId) { - return zoneHistRepository.findByZone_ZoneIdAndExistFlag(zoneId, 1); // 해당 공간의 existFlag가 1인 모든 작업자 리스트 - } - - /** - * 특정 작업자의 현재 위치 조회 - */ - @Transactional(readOnly = true) - public ZoneHist getCurrentWorkerLocation(String workerId) { - return zoneHistRepository.findByWorker_WorkerIdAndExistFlag(workerId, 1); - } } \ No newline at end of file diff --git a/src/main/java/com/factoreal/backend/global/kafka/KafkaConsumerD.java b/src/main/java/com/factoreal/backend/global/kafka/KafkaConsumerD.java index a44293ac..5cf2e6d9 100644 --- a/src/main/java/com/factoreal/backend/global/kafka/KafkaConsumerD.java +++ b/src/main/java/com/factoreal/backend/global/kafka/KafkaConsumerD.java @@ -4,7 +4,7 @@ import com.factoreal.backend.domain.abnormalLog.dto.LogType; import com.factoreal.backend.domain.abnormalLog.entity.AbnormalLog; import com.factoreal.backend.domain.zone.dao.ZoneRepository; -import com.factoreal.backend.domain.zone.dto.SystemLogDto; +import com.factoreal.backend.global.tmp.SystemLogDto; import com.factoreal.backend.global.sender.WebSocketSender; import com.factoreal.backend.domain.zone.application.ZoneService; import com.factoreal.backend.domain.abnormalLog.application.AbnormalLogService; diff --git a/src/main/java/com/factoreal/backend/global/sender/WebSocketSender.java b/src/main/java/com/factoreal/backend/global/sender/WebSocketSender.java index e00566f7..3f7e9ecc 100644 --- a/src/main/java/com/factoreal/backend/global/sender/WebSocketSender.java +++ b/src/main/java/com/factoreal/backend/global/sender/WebSocketSender.java @@ -1,7 +1,7 @@ package com.factoreal.backend.global.sender; -import com.factoreal.backend.domain.zone.dto.SystemLogDto; -import com.factoreal.backend.domain.zone.dto.ZoneDangerDto; +import com.factoreal.backend.global.tmp.SystemLogDto; +import com.factoreal.backend.global.tmp.ZoneDangerDto; import com.factoreal.backend.global.kafka.strategy.enums.AlarmEventDto; import lombok.RequiredArgsConstructor; import org.springframework.messaging.simp.SimpMessagingTemplate; diff --git a/src/main/java/com/factoreal/backend/domain/zone/dto/SystemLogDto.java b/src/main/java/com/factoreal/backend/global/tmp/SystemLogDto.java similarity index 92% rename from src/main/java/com/factoreal/backend/domain/zone/dto/SystemLogDto.java rename to src/main/java/com/factoreal/backend/global/tmp/SystemLogDto.java index 000695ad..41243c0e 100644 --- a/src/main/java/com/factoreal/backend/domain/zone/dto/SystemLogDto.java +++ b/src/main/java/com/factoreal/backend/global/tmp/SystemLogDto.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.domain.zone.dto; +package com.factoreal.backend.global.tmp; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/src/main/java/com/factoreal/backend/domain/zone/dto/ZoneDangerDto.java b/src/main/java/com/factoreal/backend/global/tmp/ZoneDangerDto.java similarity index 85% rename from src/main/java/com/factoreal/backend/domain/zone/dto/ZoneDangerDto.java rename to src/main/java/com/factoreal/backend/global/tmp/ZoneDangerDto.java index ba73ef84..dc324039 100644 --- a/src/main/java/com/factoreal/backend/domain/zone/dto/ZoneDangerDto.java +++ b/src/main/java/com/factoreal/backend/global/tmp/ZoneDangerDto.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.domain.zone.dto; +package com.factoreal.backend.global.tmp; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/src/test/java/com/factoreal/backend/service/WorkerServiceTest.java b/src/test/java/com/factoreal/backend/service/WorkerServiceTest.java index 79618281..fa6354f2 100644 --- a/src/test/java/com/factoreal/backend/service/WorkerServiceTest.java +++ b/src/test/java/com/factoreal/backend/service/WorkerServiceTest.java @@ -1,9 +1,9 @@ package com.factoreal.backend.service; import com.factoreal.backend.domain.worker.application.WorkerService; -import com.factoreal.backend.domain.worker.dto.WorkerDto; +import com.factoreal.backend.domain.worker.dto.response.WorkerInfoResponse; import com.factoreal.backend.domain.worker.entity.Worker; -import com.factoreal.backend.domain.zone.application.WorkerLocationService; +import com.factoreal.backend.domain.zone.dao.ZoneHistoryRepository; import com.factoreal.backend.domain.zone.entity.Zone; import com.factoreal.backend.domain.zone.entity.ZoneHist; import com.factoreal.backend.domain.worker.dao.WorkerRepository; @@ -27,7 +27,7 @@ public class WorkerServiceTest { private WorkerRepository workerRepository; @Mock - private WorkerLocationService workerLocationService; + private ZoneHistoryRepository zoneHistoryRepository; @InjectMocks private WorkerService workerService; @@ -79,7 +79,7 @@ public void testGetAllWorkers() { when(workerRepository.findAll()).thenReturn(Arrays.asList(worker1, worker2)); // 서비스 메소드 호출 - List result = workerService.getAllWorkers(); + List result = workerService.getAllWorkers(); // 결과 검증 assertNotNull(result); @@ -103,10 +103,10 @@ public void testGetAllWorkers() { @Test void testGetWorkersByZoneId() { // Mock 설정 - when(workerLocationService.getCurrentWorkersByZoneId("zone1")).thenReturn(Arrays.asList(zoneHist1)); + when(zoneHistoryRepository.findByZone_ZoneIdAndExistFlag("zone1", 1)).thenReturn(Arrays.asList(zoneHist1)); // 테스트 실행 - List workers = workerService.getWorkersByZoneId("zone1"); + List workers = workerService.getWorkersByZoneId("zone1"); // 검증 assertEquals(1, workers.size()); From 0deb67918b3f4338ef999ec0bae48d8ae6b08c52 Mon Sep 17 00:00:00 2001 From: Subin Cho Date: Fri, 23 May 2025 10:26:04 +0900 Subject: [PATCH 6/7] =?UTF-8?q?=20feat=20|=20sprint2=20|=20FRB-173=20|=20l?= =?UTF-8?q?og=203=EC=A2=85=20=EB=8F=84=EB=A9=94=EC=9D=B8=20=EB=A6=AC?= =?UTF-8?q?=ED=8C=A9=ED=86=A0=EB=A7=81=20|=20=EC=A1=B0=EC=88=98=EB=B9=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../abnormalLog/api/AbnormalController.java | 16 ++++----- .../application/AbnormalLogService.java | 33 +++++++++---------- .../dto/AbnormalTargetTypeDto.java | 9 ----- .../AbnormalPagingRequest.java} | 6 ++-- .../AbnormalLogResponse.java} | 5 +-- .../abnormalLog/entity/AbnormalLog.java | 3 +- .../notifyLog/api/NotificationController.java | 1 + .../domain/notifyLog/entity/NotifyLog.java | 1 - 8 files changed, 32 insertions(+), 42 deletions(-) delete mode 100644 src/main/java/com/factoreal/backend/domain/abnormalLog/dto/AbnormalTargetTypeDto.java rename src/main/java/com/factoreal/backend/domain/abnormalLog/dto/{AbnormalPagingDto.java => request/AbnormalPagingRequest.java} (62%) rename src/main/java/com/factoreal/backend/domain/abnormalLog/dto/{AbnormalLogDto.java => response/AbnormalLogResponse.java} (73%) diff --git a/src/main/java/com/factoreal/backend/domain/abnormalLog/api/AbnormalController.java b/src/main/java/com/factoreal/backend/domain/abnormalLog/api/AbnormalController.java index 7c83d00d..291ac94c 100644 --- a/src/main/java/com/factoreal/backend/domain/abnormalLog/api/AbnormalController.java +++ b/src/main/java/com/factoreal/backend/domain/abnormalLog/api/AbnormalController.java @@ -1,8 +1,8 @@ package com.factoreal.backend.domain.abnormalLog.api; -import com.factoreal.backend.domain.abnormalLog.dto.AbnormalLogDto; -import com.factoreal.backend.domain.abnormalLog.dto.AbnormalPagingDto; import com.factoreal.backend.domain.abnormalLog.application.AbnormalLogService; +import com.factoreal.backend.domain.abnormalLog.dto.request.AbnormalPagingRequest; +import com.factoreal.backend.domain.abnormalLog.dto.response.AbnormalLogResponse; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Page; import org.springframework.http.ResponseEntity; @@ -17,27 +17,27 @@ public class AbnormalController { // 전체 로그 조회 @GetMapping - public Page getAllAbnormalLogs(@ModelAttribute AbnormalPagingDto pagingDto) { + public Page getAllAbnormalLogs(@ModelAttribute AbnormalPagingRequest pagingDto) { return abnormalLogService.findAllAbnormalLogs(pagingDto); } @GetMapping("/unread") - public Page getAllAbnormalLogsUnRead(@ModelAttribute AbnormalPagingDto pagingDto) { + public Page getAllAbnormalLogsUnRead(@ModelAttribute AbnormalPagingRequest pagingDto) { return abnormalLogService.findAllAbnormalLogsUnRead(pagingDto); } // 특정 이상 유형으로 필터링 @GetMapping("/type/{abnormalType}") - public Page getAbnormalLogsByType( - @ModelAttribute AbnormalPagingDto pagingDto, + public Page getAbnormalLogsByType( + @ModelAttribute AbnormalPagingRequest pagingDto, @PathVariable String abnormalType) { return abnormalLogService.findAbnormalLogsByAbnormalType(pagingDto, abnormalType); } // 특정 타겟 ID로 필터링 @GetMapping("/target/{targetType}/{targetId}") - public Page getAbnormalLogsByTarget( - @ModelAttribute AbnormalPagingDto pagingDto, + public Page getAbnormalLogsByTarget( + @ModelAttribute AbnormalPagingRequest pagingDto, @PathVariable String targetType, @PathVariable String targetId) { return abnormalLogService.findAbnormalLogsByTargetId(pagingDto, targetType, targetId); diff --git a/src/main/java/com/factoreal/backend/domain/abnormalLog/application/AbnormalLogService.java b/src/main/java/com/factoreal/backend/domain/abnormalLog/application/AbnormalLogService.java index 6f526688..9f87731b 100644 --- a/src/main/java/com/factoreal/backend/domain/abnormalLog/application/AbnormalLogService.java +++ b/src/main/java/com/factoreal/backend/domain/abnormalLog/application/AbnormalLogService.java @@ -1,8 +1,8 @@ package com.factoreal.backend.domain.abnormalLog.application; -import com.factoreal.backend.domain.abnormalLog.dto.AbnormalLogDto; -import com.factoreal.backend.domain.abnormalLog.dto.AbnormalPagingDto; import com.factoreal.backend.domain.abnormalLog.dto.LogType; +import com.factoreal.backend.domain.abnormalLog.dto.request.AbnormalPagingRequest; +import com.factoreal.backend.domain.abnormalLog.dto.response.AbnormalLogResponse; import com.factoreal.backend.domain.sensor.dto.SensorKafkaDto; import com.factoreal.backend.domain.abnormalLog.entity.AbnormalLog; import com.factoreal.backend.domain.zone.dao.ZoneRepository; @@ -33,7 +33,6 @@ public class AbnormalLogService { private final ZoneRepository zoneRepository; private final RiskMessageProvider riskMessageProvider; private final ObjectMapper objectMapper; - private final WebSocketSender webSocketSender; // 알람 객체를 받아와서 로그 객체 생성. @Transactional(rollbackFor = Exception.class) @@ -71,12 +70,12 @@ public AbnormalLog saveAbnormalLogFromKafkaDto( } - public Page findAllAbnormalLogs(AbnormalPagingDto abnormalPagingDto) { + public Page findAllAbnormalLogs(AbnormalPagingRequest abnormalPagingDto) { // 한번에 DB전체를 주는 것이 아닌 구간 나눠서 전달하기 위함 Pageable pageable = getPageable(abnormalPagingDto); Page abnormalLogs = abnLogRepository.findAll(pageable); return abnormalLogs.map(abn_log -> - AbnormalLogDto.builder() + AbnormalLogResponse.builder() .id(abn_log.getId()) .targetType(abn_log.getTargetType()) .targetId(abn_log.getTargetId()) @@ -89,12 +88,12 @@ public Page findAllAbnormalLogs(AbnormalPagingDto abnormalPaging ); } - public Page findAllAbnormalLogsUnRead(AbnormalPagingDto abnormalPagingDto) { + public Page findAllAbnormalLogsUnRead(AbnormalPagingRequest abnormalPagingRequest) { // 한번에 DB전체를 주는 것이 아닌 구간 나눠서 전달하기 위함 - Pageable pageable = getPageable(abnormalPagingDto); + Pageable pageable = getPageable(abnormalPagingRequest); Page abnormalLogs = abnLogRepository.findAllByIsReadIsFalse(pageable); return abnormalLogs.map(abn_log -> - AbnormalLogDto.builder() + AbnormalLogResponse.builder() .id(abn_log.getId()) .targetType(abn_log.getTargetType()) .targetId(abn_log.getTargetId()) @@ -107,12 +106,12 @@ public Page findAllAbnormalLogsUnRead(AbnormalPagingDto abnormal ); } - public Page findAbnormalLogsByAbnormalType(AbnormalPagingDto abnormalPagingDto, String abnormalType){ + public Page findAbnormalLogsByAbnormalType(AbnormalPagingRequest abnormalPagingRequest, String abnormalType){ // 한번에 DB전체를 주는 것이 아닌 구간 나눠서 전달하기 위함 - Pageable pageable = getPageable(abnormalPagingDto); + Pageable pageable = getPageable(abnormalPagingRequest); Page abnormalLogs = abnLogRepository.findAbnormalLogsByAbnormalType(abnormalType,pageable); return abnormalLogs.map(abn_log -> - AbnormalLogDto.builder() + AbnormalLogResponse.builder() .id(abn_log.getId()) .targetType(abn_log.getTargetType()) .targetId(abn_log.getTargetId()) @@ -126,15 +125,15 @@ public Page findAbnormalLogsByAbnormalType(AbnormalPagingDto abn } // - public Page findAbnormalLogsByTargetId(AbnormalPagingDto abnormalPagingDto, String targetType, String targetId){ + public Page findAbnormalLogsByTargetId(AbnormalPagingRequest abnormalPagingRequest, String targetType, String targetId){ // 한번에 DB전체를 주는 것이 아닌 구간 나눠서 전달하기 위함 - Pageable pageable = getPageable(abnormalPagingDto); + Pageable pageable = getPageable(abnormalPagingRequest); Page abnormalLogs = abnLogRepository.findAbnormalLogsByTargetTypeAndTargetId( targetType, targetId, pageable); return abnormalLogs.map( - abn_log -> objectMapper.convertValue(abn_log, AbnormalLogDto.class) + abn_log -> objectMapper.convertValue(abn_log, AbnormalLogResponse.class) ); } @@ -160,10 +159,10 @@ public Long readRequired(){ return count; } - private Pageable getPageable(AbnormalPagingDto abnormalPagingDto){ + private Pageable getPageable(AbnormalPagingRequest abnormalPagingRequest){ return PageRequest.of( - abnormalPagingDto.getPage(), - abnormalPagingDto.getSize() + abnormalPagingRequest.getPage(), + abnormalPagingRequest.getSize() ); } } diff --git a/src/main/java/com/factoreal/backend/domain/abnormalLog/dto/AbnormalTargetTypeDto.java b/src/main/java/com/factoreal/backend/domain/abnormalLog/dto/AbnormalTargetTypeDto.java deleted file mode 100644 index bfcf566f..00000000 --- a/src/main/java/com/factoreal/backend/domain/abnormalLog/dto/AbnormalTargetTypeDto.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.factoreal.backend.domain.abnormalLog.dto; - -import lombok.Data; - -@Data -public class AbnormalTargetTypeDto { - LogType targetType; - String targetId; -} \ No newline at end of file diff --git a/src/main/java/com/factoreal/backend/domain/abnormalLog/dto/AbnormalPagingDto.java b/src/main/java/com/factoreal/backend/domain/abnormalLog/dto/request/AbnormalPagingRequest.java similarity index 62% rename from src/main/java/com/factoreal/backend/domain/abnormalLog/dto/AbnormalPagingDto.java rename to src/main/java/com/factoreal/backend/domain/abnormalLog/dto/request/AbnormalPagingRequest.java index 9afb9fc1..a32238a0 100644 --- a/src/main/java/com/factoreal/backend/domain/abnormalLog/dto/AbnormalPagingDto.java +++ b/src/main/java/com/factoreal/backend/domain/abnormalLog/dto/request/AbnormalPagingRequest.java @@ -1,11 +1,11 @@ -package com.factoreal.backend.domain.abnormalLog.dto; +package com.factoreal.backend.domain.abnormalLog.dto.request; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @Data -@Schema(description = "페이징 정보 DTO") -public class AbnormalPagingDto { +@Schema(description = "\uD398\uC774\uC9D5 \uC815\uBCF4 DTO") +public class AbnormalPagingRequest { @Schema(description = "페이지 번호 (0부터 시작)", example = "0") private int page; diff --git a/src/main/java/com/factoreal/backend/domain/abnormalLog/dto/AbnormalLogDto.java b/src/main/java/com/factoreal/backend/domain/abnormalLog/dto/response/AbnormalLogResponse.java similarity index 73% rename from src/main/java/com/factoreal/backend/domain/abnormalLog/dto/AbnormalLogDto.java rename to src/main/java/com/factoreal/backend/domain/abnormalLog/dto/response/AbnormalLogResponse.java index 85137923..209f88f1 100644 --- a/src/main/java/com/factoreal/backend/domain/abnormalLog/dto/AbnormalLogDto.java +++ b/src/main/java/com/factoreal/backend/domain/abnormalLog/dto/response/AbnormalLogResponse.java @@ -1,5 +1,6 @@ -package com.factoreal.backend.domain.abnormalLog.dto; +package com.factoreal.backend.domain.abnormalLog.dto.response; +import com.factoreal.backend.domain.abnormalLog.dto.LogType; import lombok.Builder; import lombok.Data; @@ -7,7 +8,7 @@ @Data @Builder -public class AbnormalLogDto { +public class AbnormalLogResponse { private Long id; private LogType targetType; private String targetId; diff --git a/src/main/java/com/factoreal/backend/domain/abnormalLog/entity/AbnormalLog.java b/src/main/java/com/factoreal/backend/domain/abnormalLog/entity/AbnormalLog.java index 52ffb8f1..a1918ae5 100644 --- a/src/main/java/com/factoreal/backend/domain/abnormalLog/entity/AbnormalLog.java +++ b/src/main/java/com/factoreal/backend/domain/abnormalLog/entity/AbnormalLog.java @@ -15,13 +15,12 @@ @NoArgsConstructor @AllArgsConstructor @Builder -// 이상 감지 LOG ENTITY public class AbnormalLog { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id", nullable = false) - private Long id; // ID + private Long id; @Enumerated(EnumType.STRING) @Column(name = "target_type", length = 50) diff --git a/src/main/java/com/factoreal/backend/domain/notifyLog/api/NotificationController.java b/src/main/java/com/factoreal/backend/domain/notifyLog/api/NotificationController.java index b39dd453..a9e4d49c 100644 --- a/src/main/java/com/factoreal/backend/domain/notifyLog/api/NotificationController.java +++ b/src/main/java/com/factoreal/backend/domain/notifyLog/api/NotificationController.java @@ -19,6 +19,7 @@ public class NotificationController { // 3. swagger에서 아래 api 호출 // https://jiangxy.github.io/websocket-debug-tool/ @PostMapping("/api/notify") + @Deprecated public ResponseEntity notify(@RequestBody Map body) { String message = body.get("message"); simpMessagingTemplate.convertAndSend("/topic/notify", message); diff --git a/src/main/java/com/factoreal/backend/domain/notifyLog/entity/NotifyLog.java b/src/main/java/com/factoreal/backend/domain/notifyLog/entity/NotifyLog.java index 3c70a1d8..a6fe9a68 100644 --- a/src/main/java/com/factoreal/backend/domain/notifyLog/entity/NotifyLog.java +++ b/src/main/java/com/factoreal/backend/domain/notifyLog/entity/NotifyLog.java @@ -14,7 +14,6 @@ @NoArgsConstructor @AllArgsConstructor @Builder -// 알림 로그 ENTITY public class NotifyLog { @Id From 135fb1b71f1d44ad9775ab1c76ec7c0f1474aade Mon Sep 17 00:00:00 2001 From: Subin Cho Date: Fri, 23 May 2025 11:11:07 +0900 Subject: [PATCH 7/7] =?UTF-8?q?=20feat=20|=20sprint2=20|=20FRB-173=20|=20m?= =?UTF-8?q?essaging=20=EA=B4=80=EB=A0=A8=20=EB=A1=9C=EC=A7=81=20=EA=B5=AC?= =?UTF-8?q?=EC=A1=B0=20=EB=B3=80=EA=B2=BD=20|=20=EC=A1=B0=EC=88=98?= =?UTF-8?q?=EB=B9=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/AbnormalLogService.java | 7 +++---- .../domain/sensor/application/SensorService.java | 3 +-- .../backend/domain/sensor/entity/Sensor.java | 2 +- .../backend/domain/zone/api/ZoneController.java | 4 ++-- .../domain/zone/application/ZoneService.java | 6 +++--- .../alarmMessage/RiskMessageProvider.java | 8 -------- .../common/dto}/SystemLogDto.java | 2 +- .../common/dto}/ZoneDangerDto.java | 2 +- .../common}/util/SslUtil.java | 2 +- .../config/AwsMqttListener.java | 4 ++-- .../{global => messaging}/config/MqttConfig.java | 4 ++-- .../config/WebSocketConfig.java | 2 +- .../kafka/KafkaConsumerD.java | 16 ++++++++-------- .../kafka/consumer/KafkaConsumer.java | 4 ++-- .../kafka/processor/SensorEventProcessor.java | 12 ++++++------ .../strategy/NotificationStrategyFactory.java | 6 +++--- .../alarmList/AppPushNotificationStrategy.java | 6 +++--- .../strategy/alarmList/NotificationStrategy.java | 6 +++--- .../alarmList/SmsNotificationStrategy.java | 6 +++--- .../alarmList/WebSocketNotificationStrategy.java | 8 ++++---- .../alarmMessage/DefaultRiskMessageProvider.java | 6 +++--- .../alarmMessage/RiskMessageProvider.java | 8 ++++++++ .../kafka/strategy/enums/AlarmEventDto.java | 2 +- .../kafka/strategy/enums/RiskLevel.java | 2 +- .../kafka/strategy/enums/SensorType.java | 2 +- .../{global => messaging}/mqtt/MqttService.java | 2 +- .../sender/WebSocketSender.java | 8 ++++---- .../service/AlarmEventService.java | 13 ++++++------- .../service/AutoControlService.java | 2 +- 29 files changed, 76 insertions(+), 79 deletions(-) delete mode 100644 src/main/java/com/factoreal/backend/global/kafka/strategy/alarmMessage/RiskMessageProvider.java rename src/main/java/com/factoreal/backend/{global/tmp => messaging/common/dto}/SystemLogDto.java (92%) rename src/main/java/com/factoreal/backend/{global/tmp => messaging/common/dto}/ZoneDangerDto.java (84%) rename src/main/java/com/factoreal/backend/{global => messaging/common}/util/SslUtil.java (99%) rename src/main/java/com/factoreal/backend/{global => messaging}/config/AwsMqttListener.java (97%) rename src/main/java/com/factoreal/backend/{global => messaging}/config/MqttConfig.java (95%) rename src/main/java/com/factoreal/backend/{global => messaging}/config/WebSocketConfig.java (94%) rename src/main/java/com/factoreal/backend/{global => messaging}/kafka/KafkaConsumerD.java (96%) rename src/main/java/com/factoreal/backend/{global => messaging}/kafka/consumer/KafkaConsumer.java (93%) rename src/main/java/com/factoreal/backend/{global => messaging}/kafka/processor/SensorEventProcessor.java (92%) rename src/main/java/com/factoreal/backend/{global => messaging}/kafka/strategy/NotificationStrategyFactory.java (88%) rename src/main/java/com/factoreal/backend/{global => messaging}/kafka/strategy/alarmList/AppPushNotificationStrategy.java (67%) rename src/main/java/com/factoreal/backend/{global => messaging}/kafka/strategy/alarmList/NotificationStrategy.java (63%) rename src/main/java/com/factoreal/backend/{global => messaging}/kafka/strategy/alarmList/SmsNotificationStrategy.java (90%) rename src/main/java/com/factoreal/backend/{global => messaging}/kafka/strategy/alarmList/WebSocketNotificationStrategy.java (78%) rename src/main/java/com/factoreal/backend/{global => messaging}/kafka/strategy/alarmMessage/DefaultRiskMessageProvider.java (90%) create mode 100644 src/main/java/com/factoreal/backend/messaging/kafka/strategy/alarmMessage/RiskMessageProvider.java rename src/main/java/com/factoreal/backend/{global => messaging}/kafka/strategy/enums/AlarmEventDto.java (95%) rename src/main/java/com/factoreal/backend/{global => messaging}/kafka/strategy/enums/RiskLevel.java (93%) rename src/main/java/com/factoreal/backend/{global => messaging}/kafka/strategy/enums/SensorType.java (77%) rename src/main/java/com/factoreal/backend/{global => messaging}/mqtt/MqttService.java (98%) rename src/main/java/com/factoreal/backend/{global => messaging}/sender/WebSocketSender.java (83%) rename src/main/java/com/factoreal/backend/{ => messaging}/service/AlarmEventService.java (89%) rename src/main/java/com/factoreal/backend/{ => messaging}/service/AutoControlService.java (98%) diff --git a/src/main/java/com/factoreal/backend/domain/abnormalLog/application/AbnormalLogService.java b/src/main/java/com/factoreal/backend/domain/abnormalLog/application/AbnormalLogService.java index 9f87731b..f4acddb9 100644 --- a/src/main/java/com/factoreal/backend/domain/abnormalLog/application/AbnormalLogService.java +++ b/src/main/java/com/factoreal/backend/domain/abnormalLog/application/AbnormalLogService.java @@ -8,10 +8,9 @@ import com.factoreal.backend.domain.zone.dao.ZoneRepository; import com.factoreal.backend.domain.zone.entity.Zone; import com.factoreal.backend.domain.abnormalLog.dao.AbnLogRepository; -import com.factoreal.backend.global.sender.WebSocketSender; -import com.factoreal.backend.global.kafka.strategy.alarmMessage.RiskMessageProvider; -import com.factoreal.backend.global.kafka.strategy.enums.RiskLevel; -import com.factoreal.backend.global.kafka.strategy.enums.SensorType; +import com.factoreal.backend.messaging.kafka.strategy.alarmMessage.RiskMessageProvider; +import com.factoreal.backend.messaging.kafka.strategy.enums.RiskLevel; +import com.factoreal.backend.messaging.kafka.strategy.enums.SensorType; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/factoreal/backend/domain/sensor/application/SensorService.java b/src/main/java/com/factoreal/backend/domain/sensor/application/SensorService.java index 1a20fe35..f9cd2472 100644 --- a/src/main/java/com/factoreal/backend/domain/sensor/application/SensorService.java +++ b/src/main/java/com/factoreal/backend/domain/sensor/application/SensorService.java @@ -1,13 +1,12 @@ package com.factoreal.backend.domain.sensor.application; import java.util.List; -import java.util.Optional; import java.util.stream.Collectors; import com.factoreal.backend.domain.sensor.dto.request.SensorCreateRequest; import com.factoreal.backend.domain.sensor.dto.response.SensorInfoResponse; import com.factoreal.backend.domain.sensor.dto.request.SensorUpdateRequest; -import com.factoreal.backend.global.kafka.strategy.enums.SensorType; +import com.factoreal.backend.messaging.kafka.strategy.enums.SensorType; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/src/main/java/com/factoreal/backend/domain/sensor/entity/Sensor.java b/src/main/java/com/factoreal/backend/domain/sensor/entity/Sensor.java index 36893377..409ee7ff 100644 --- a/src/main/java/com/factoreal/backend/domain/sensor/entity/Sensor.java +++ b/src/main/java/com/factoreal/backend/domain/sensor/entity/Sensor.java @@ -2,7 +2,7 @@ import com.factoreal.backend.domain.equip.entity.Equip; import com.factoreal.backend.domain.zone.entity.Zone; -import com.factoreal.backend.global.kafka.strategy.enums.SensorType; +import com.factoreal.backend.messaging.kafka.strategy.enums.SensorType; import jakarta.persistence.*; import lombok.*; import java.time.LocalDateTime; diff --git a/src/main/java/com/factoreal/backend/domain/zone/api/ZoneController.java b/src/main/java/com/factoreal/backend/domain/zone/api/ZoneController.java index d0ae259c..a7ac6cd6 100644 --- a/src/main/java/com/factoreal/backend/domain/zone/api/ZoneController.java +++ b/src/main/java/com/factoreal/backend/domain/zone/api/ZoneController.java @@ -2,7 +2,7 @@ import java.util.List; -import com.factoreal.backend.domain.abnormalLog.dto.AbnormalPagingDto; +import com.factoreal.backend.domain.abnormalLog.dto.request.AbnormalPagingRequest; import com.factoreal.backend.domain.zone.dto.response.ZoneLogResponse; import com.factoreal.backend.domain.zone.dto.request.ZoneCreateRequest; import com.factoreal.backend.domain.zone.dto.request.ZoneUpdateRequest; @@ -58,7 +58,7 @@ public Page getSystemLogsByZone( @Parameter(description = "조회할 공간 ID", required = true) @PathVariable String zoneId, @Parameter(description = "페이징 정보 (page: 페이지 번호, size: 페이지 크기)") - @ModelAttribute AbnormalPagingDto pagingDto) { + @ModelAttribute AbnormalPagingRequest pagingDto) { return service.findSystemLogsByZoneId(zoneId, pagingDto); } } \ No newline at end of file diff --git a/src/main/java/com/factoreal/backend/domain/zone/application/ZoneService.java b/src/main/java/com/factoreal/backend/domain/zone/application/ZoneService.java index a5475627..0c08699b 100644 --- a/src/main/java/com/factoreal/backend/domain/zone/application/ZoneService.java +++ b/src/main/java/com/factoreal/backend/domain/zone/application/ZoneService.java @@ -6,7 +6,7 @@ import java.util.stream.Collectors; import com.factoreal.backend.domain.abnormalLog.dao.AbnLogRepository; -import com.factoreal.backend.domain.abnormalLog.dto.AbnormalPagingDto; +import com.factoreal.backend.domain.abnormalLog.dto.request.AbnormalPagingRequest; import com.factoreal.backend.domain.abnormalLog.entity.AbnormalLog; import com.factoreal.backend.domain.equip.dto.response.EquipDetailResponse; import com.factoreal.backend.domain.sensor.dto.response.SensorInfoResponse; @@ -133,7 +133,7 @@ public List getZoneItems() { } @Transactional - public Page findSystemLogsByZoneId(String zoneId, AbnormalPagingDto pagingDto) { + public Page findSystemLogsByZoneId(String zoneId, AbnormalPagingRequest pagingDto) { log.info("공간 ID: {}의 시스템 로그 조회", zoneId); Pageable pageable = getPageable(pagingDto); @@ -154,7 +154,7 @@ private void validateZoneName(String zoneName) { } } - private Pageable getPageable(AbnormalPagingDto abnormalPagingDto){ + private Pageable getPageable(AbnormalPagingRequest abnormalPagingDto){ return PageRequest.of( abnormalPagingDto.getPage(), abnormalPagingDto.getSize() diff --git a/src/main/java/com/factoreal/backend/global/kafka/strategy/alarmMessage/RiskMessageProvider.java b/src/main/java/com/factoreal/backend/global/kafka/strategy/alarmMessage/RiskMessageProvider.java deleted file mode 100644 index dfad4897..00000000 --- a/src/main/java/com/factoreal/backend/global/kafka/strategy/alarmMessage/RiskMessageProvider.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.factoreal.backend.global.kafka.strategy.alarmMessage; - -import com.factoreal.backend.global.kafka.strategy.enums.RiskLevel; -import com.factoreal.backend.global.kafka.strategy.enums.SensorType; - -public interface RiskMessageProvider { - String getMessage(SensorType sensorType, RiskLevel riskLevel); -} diff --git a/src/main/java/com/factoreal/backend/global/tmp/SystemLogDto.java b/src/main/java/com/factoreal/backend/messaging/common/dto/SystemLogDto.java similarity index 92% rename from src/main/java/com/factoreal/backend/global/tmp/SystemLogDto.java rename to src/main/java/com/factoreal/backend/messaging/common/dto/SystemLogDto.java index 41243c0e..91d03be2 100644 --- a/src/main/java/com/factoreal/backend/global/tmp/SystemLogDto.java +++ b/src/main/java/com/factoreal/backend/messaging/common/dto/SystemLogDto.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.global.tmp; +package com.factoreal.backend.messaging.common.dto; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/src/main/java/com/factoreal/backend/global/tmp/ZoneDangerDto.java b/src/main/java/com/factoreal/backend/messaging/common/dto/ZoneDangerDto.java similarity index 84% rename from src/main/java/com/factoreal/backend/global/tmp/ZoneDangerDto.java rename to src/main/java/com/factoreal/backend/messaging/common/dto/ZoneDangerDto.java index dc324039..cbfdf6d8 100644 --- a/src/main/java/com/factoreal/backend/global/tmp/ZoneDangerDto.java +++ b/src/main/java/com/factoreal/backend/messaging/common/dto/ZoneDangerDto.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.global.tmp; +package com.factoreal.backend.messaging.common.dto; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/src/main/java/com/factoreal/backend/global/util/SslUtil.java b/src/main/java/com/factoreal/backend/messaging/common/util/SslUtil.java similarity index 99% rename from src/main/java/com/factoreal/backend/global/util/SslUtil.java rename to src/main/java/com/factoreal/backend/messaging/common/util/SslUtil.java index 40c0b64d..2096819e 100644 --- a/src/main/java/com/factoreal/backend/global/util/SslUtil.java +++ b/src/main/java/com/factoreal/backend/messaging/common/util/SslUtil.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.global.util; +package com.factoreal.backend.messaging.common.util; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/src/main/java/com/factoreal/backend/global/config/AwsMqttListener.java b/src/main/java/com/factoreal/backend/messaging/config/AwsMqttListener.java similarity index 97% rename from src/main/java/com/factoreal/backend/global/config/AwsMqttListener.java rename to src/main/java/com/factoreal/backend/messaging/config/AwsMqttListener.java index 1f99ce0c..0c07e061 100644 --- a/src/main/java/com/factoreal/backend/global/config/AwsMqttListener.java +++ b/src/main/java/com/factoreal/backend/messaging/config/AwsMqttListener.java @@ -1,10 +1,10 @@ -package com.factoreal.backend.global.config; +package com.factoreal.backend.messaging.config; import com.factoreal.backend.domain.sensor.dto.request.SensorCreateRequest; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.factoreal.backend.domain.sensor.application.SensorService; -import com.factoreal.backend.global.util.SslUtil; +import com.factoreal.backend.messaging.common.util.SslUtil; import jakarta.annotation.PostConstruct; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/factoreal/backend/global/config/MqttConfig.java b/src/main/java/com/factoreal/backend/messaging/config/MqttConfig.java similarity index 95% rename from src/main/java/com/factoreal/backend/global/config/MqttConfig.java rename to src/main/java/com/factoreal/backend/messaging/config/MqttConfig.java index 49e9ac86..22244ea9 100644 --- a/src/main/java/com/factoreal/backend/global/config/MqttConfig.java +++ b/src/main/java/com/factoreal/backend/messaging/config/MqttConfig.java @@ -1,6 +1,6 @@ -package com.factoreal.backend.global.config; +package com.factoreal.backend.messaging.config; -import com.factoreal.backend.global.util.SslUtil; +import com.factoreal.backend.messaging.common.util.SslUtil; import lombok.extern.slf4j.Slf4j; import org.eclipse.paho.client.mqttv3.MqttClient; import org.eclipse.paho.client.mqttv3.MqttConnectOptions; diff --git a/src/main/java/com/factoreal/backend/global/config/WebSocketConfig.java b/src/main/java/com/factoreal/backend/messaging/config/WebSocketConfig.java similarity index 94% rename from src/main/java/com/factoreal/backend/global/config/WebSocketConfig.java rename to src/main/java/com/factoreal/backend/messaging/config/WebSocketConfig.java index 0dd97c19..8edae0f2 100644 --- a/src/main/java/com/factoreal/backend/global/config/WebSocketConfig.java +++ b/src/main/java/com/factoreal/backend/messaging/config/WebSocketConfig.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.global.config; +package com.factoreal.backend.messaging.config; import org.springframework.context.annotation.Configuration; import org.springframework.messaging.simp.config.MessageBrokerRegistry; diff --git a/src/main/java/com/factoreal/backend/global/kafka/KafkaConsumerD.java b/src/main/java/com/factoreal/backend/messaging/kafka/KafkaConsumerD.java similarity index 96% rename from src/main/java/com/factoreal/backend/global/kafka/KafkaConsumerD.java rename to src/main/java/com/factoreal/backend/messaging/kafka/KafkaConsumerD.java index 5cf2e6d9..ffd2ea11 100644 --- a/src/main/java/com/factoreal/backend/global/kafka/KafkaConsumerD.java +++ b/src/main/java/com/factoreal/backend/messaging/kafka/KafkaConsumerD.java @@ -1,18 +1,18 @@ -package com.factoreal.backend.global.kafka; +package com.factoreal.backend.messaging.kafka; import com.factoreal.backend.domain.sensor.dto.SensorKafkaDto; import com.factoreal.backend.domain.abnormalLog.dto.LogType; import com.factoreal.backend.domain.abnormalLog.entity.AbnormalLog; import com.factoreal.backend.domain.zone.dao.ZoneRepository; -import com.factoreal.backend.global.tmp.SystemLogDto; -import com.factoreal.backend.global.sender.WebSocketSender; +import com.factoreal.backend.messaging.common.dto.SystemLogDto; +import com.factoreal.backend.messaging.sender.WebSocketSender; import com.factoreal.backend.domain.zone.application.ZoneService; import com.factoreal.backend.domain.abnormalLog.application.AbnormalLogService; -import com.factoreal.backend.global.kafka.strategy.alarmList.NotificationStrategy; -import com.factoreal.backend.global.kafka.strategy.NotificationStrategyFactory; -import com.factoreal.backend.global.kafka.strategy.enums.AlarmEventDto; -import com.factoreal.backend.global.kafka.strategy.enums.RiskLevel; -import com.factoreal.backend.global.kafka.strategy.enums.SensorType; +import com.factoreal.backend.messaging.kafka.strategy.alarmList.NotificationStrategy; +import com.factoreal.backend.messaging.kafka.strategy.NotificationStrategyFactory; +import com.factoreal.backend.messaging.kafka.strategy.enums.AlarmEventDto; +import com.factoreal.backend.messaging.kafka.strategy.enums.RiskLevel; +import com.factoreal.backend.messaging.kafka.strategy.enums.SensorType; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.RequiredArgsConstructor; diff --git a/src/main/java/com/factoreal/backend/global/kafka/consumer/KafkaConsumer.java b/src/main/java/com/factoreal/backend/messaging/kafka/consumer/KafkaConsumer.java similarity index 93% rename from src/main/java/com/factoreal/backend/global/kafka/consumer/KafkaConsumer.java rename to src/main/java/com/factoreal/backend/messaging/kafka/consumer/KafkaConsumer.java index 8546689e..4e888aff 100644 --- a/src/main/java/com/factoreal/backend/global/kafka/consumer/KafkaConsumer.java +++ b/src/main/java/com/factoreal/backend/messaging/kafka/consumer/KafkaConsumer.java @@ -1,7 +1,7 @@ -package com.factoreal.backend.global.kafka.consumer; +package com.factoreal.backend.messaging.kafka.consumer; import com.factoreal.backend.domain.sensor.dto.SensorKafkaDto; -import com.factoreal.backend.global.kafka.processor.SensorEventProcessor; +import com.factoreal.backend.messaging.kafka.processor.SensorEventProcessor; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/factoreal/backend/global/kafka/processor/SensorEventProcessor.java b/src/main/java/com/factoreal/backend/messaging/kafka/processor/SensorEventProcessor.java similarity index 92% rename from src/main/java/com/factoreal/backend/global/kafka/processor/SensorEventProcessor.java rename to src/main/java/com/factoreal/backend/messaging/kafka/processor/SensorEventProcessor.java index c3692570..b4c89ced 100644 --- a/src/main/java/com/factoreal/backend/global/kafka/processor/SensorEventProcessor.java +++ b/src/main/java/com/factoreal/backend/messaging/kafka/processor/SensorEventProcessor.java @@ -1,14 +1,14 @@ -package com.factoreal.backend.global.kafka.processor; +package com.factoreal.backend.messaging.kafka.processor; import com.factoreal.backend.domain.sensor.dto.SensorKafkaDto; import com.factoreal.backend.domain.abnormalLog.dto.LogType; import com.factoreal.backend.domain.abnormalLog.entity.AbnormalLog; -import com.factoreal.backend.global.sender.WebSocketSender; +import com.factoreal.backend.messaging.sender.WebSocketSender; import com.factoreal.backend.domain.abnormalLog.application.AbnormalLogService; -import com.factoreal.backend.service.AlarmEventService; -import com.factoreal.backend.service.AutoControlService; -import com.factoreal.backend.global.kafka.strategy.enums.RiskLevel; -import com.factoreal.backend.global.kafka.strategy.enums.SensorType; +import com.factoreal.backend.messaging.service.AlarmEventService; +import com.factoreal.backend.messaging.service.AutoControlService; +import com.factoreal.backend.messaging.kafka.strategy.enums.RiskLevel; +import com.factoreal.backend.messaging.kafka.strategy.enums.SensorType; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; diff --git a/src/main/java/com/factoreal/backend/global/kafka/strategy/NotificationStrategyFactory.java b/src/main/java/com/factoreal/backend/messaging/kafka/strategy/NotificationStrategyFactory.java similarity index 88% rename from src/main/java/com/factoreal/backend/global/kafka/strategy/NotificationStrategyFactory.java rename to src/main/java/com/factoreal/backend/messaging/kafka/strategy/NotificationStrategyFactory.java index abcf4919..afd38964 100644 --- a/src/main/java/com/factoreal/backend/global/kafka/strategy/NotificationStrategyFactory.java +++ b/src/main/java/com/factoreal/backend/messaging/kafka/strategy/NotificationStrategyFactory.java @@ -1,7 +1,7 @@ -package com.factoreal.backend.global.kafka.strategy; +package com.factoreal.backend.messaging.kafka.strategy; -import com.factoreal.backend.global.kafka.strategy.alarmList.NotificationStrategy; -import com.factoreal.backend.global.kafka.strategy.enums.RiskLevel; +import com.factoreal.backend.messaging.kafka.strategy.alarmList.NotificationStrategy; +import com.factoreal.backend.messaging.kafka.strategy.enums.RiskLevel; import org.springframework.stereotype.Component; import java.util.List; diff --git a/src/main/java/com/factoreal/backend/global/kafka/strategy/alarmList/AppPushNotificationStrategy.java b/src/main/java/com/factoreal/backend/messaging/kafka/strategy/alarmList/AppPushNotificationStrategy.java similarity index 67% rename from src/main/java/com/factoreal/backend/global/kafka/strategy/alarmList/AppPushNotificationStrategy.java rename to src/main/java/com/factoreal/backend/messaging/kafka/strategy/alarmList/AppPushNotificationStrategy.java index 2eac0c1d..61bc0814 100644 --- a/src/main/java/com/factoreal/backend/global/kafka/strategy/alarmList/AppPushNotificationStrategy.java +++ b/src/main/java/com/factoreal/backend/messaging/kafka/strategy/alarmList/AppPushNotificationStrategy.java @@ -1,7 +1,7 @@ -package com.factoreal.backend.global.kafka.strategy.alarmList; +package com.factoreal.backend.messaging.kafka.strategy.alarmList; -import com.factoreal.backend.global.kafka.strategy.enums.AlarmEventDto; -import com.factoreal.backend.global.kafka.strategy.enums.RiskLevel; +import com.factoreal.backend.messaging.kafka.strategy.enums.AlarmEventDto; +import com.factoreal.backend.messaging.kafka.strategy.enums.RiskLevel; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; diff --git a/src/main/java/com/factoreal/backend/global/kafka/strategy/alarmList/NotificationStrategy.java b/src/main/java/com/factoreal/backend/messaging/kafka/strategy/alarmList/NotificationStrategy.java similarity index 63% rename from src/main/java/com/factoreal/backend/global/kafka/strategy/alarmList/NotificationStrategy.java rename to src/main/java/com/factoreal/backend/messaging/kafka/strategy/alarmList/NotificationStrategy.java index ac774673..02242a5b 100644 --- a/src/main/java/com/factoreal/backend/global/kafka/strategy/alarmList/NotificationStrategy.java +++ b/src/main/java/com/factoreal/backend/messaging/kafka/strategy/alarmList/NotificationStrategy.java @@ -1,7 +1,7 @@ -package com.factoreal.backend.global.kafka.strategy.alarmList; +package com.factoreal.backend.messaging.kafka.strategy.alarmList; -import com.factoreal.backend.global.kafka.strategy.enums.AlarmEventDto; -import com.factoreal.backend.global.kafka.strategy.enums.RiskLevel; +import com.factoreal.backend.messaging.kafka.strategy.enums.AlarmEventDto; +import com.factoreal.backend.messaging.kafka.strategy.enums.RiskLevel; public interface NotificationStrategy { void send(AlarmEventDto alarmEventDto); diff --git a/src/main/java/com/factoreal/backend/global/kafka/strategy/alarmList/SmsNotificationStrategy.java b/src/main/java/com/factoreal/backend/messaging/kafka/strategy/alarmList/SmsNotificationStrategy.java similarity index 90% rename from src/main/java/com/factoreal/backend/global/kafka/strategy/alarmList/SmsNotificationStrategy.java rename to src/main/java/com/factoreal/backend/messaging/kafka/strategy/alarmList/SmsNotificationStrategy.java index 3e6e5580..f88bc7c5 100644 --- a/src/main/java/com/factoreal/backend/global/kafka/strategy/alarmList/SmsNotificationStrategy.java +++ b/src/main/java/com/factoreal/backend/messaging/kafka/strategy/alarmList/SmsNotificationStrategy.java @@ -1,8 +1,8 @@ -package com.factoreal.backend.global.kafka.strategy.alarmList; +package com.factoreal.backend.messaging.kafka.strategy.alarmList; -import com.factoreal.backend.global.kafka.strategy.enums.AlarmEventDto; +import com.factoreal.backend.messaging.kafka.strategy.enums.AlarmEventDto; import com.factoreal.backend.domain.worker.entity.Worker; -import com.factoreal.backend.global.kafka.strategy.enums.RiskLevel; +import com.factoreal.backend.messaging.kafka.strategy.enums.RiskLevel; import com.factoreal.backend.domain.worker.dao.WorkerRepository; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/factoreal/backend/global/kafka/strategy/alarmList/WebSocketNotificationStrategy.java b/src/main/java/com/factoreal/backend/messaging/kafka/strategy/alarmList/WebSocketNotificationStrategy.java similarity index 78% rename from src/main/java/com/factoreal/backend/global/kafka/strategy/alarmList/WebSocketNotificationStrategy.java rename to src/main/java/com/factoreal/backend/messaging/kafka/strategy/alarmList/WebSocketNotificationStrategy.java index 18c825f4..237f2c91 100644 --- a/src/main/java/com/factoreal/backend/global/kafka/strategy/alarmList/WebSocketNotificationStrategy.java +++ b/src/main/java/com/factoreal/backend/messaging/kafka/strategy/alarmList/WebSocketNotificationStrategy.java @@ -1,8 +1,8 @@ -package com.factoreal.backend.global.kafka.strategy.alarmList; +package com.factoreal.backend.messaging.kafka.strategy.alarmList; -import com.factoreal.backend.global.sender.WebSocketSender; -import com.factoreal.backend.global.kafka.strategy.enums.AlarmEventDto; -import com.factoreal.backend.global.kafka.strategy.enums.RiskLevel; +import com.factoreal.backend.messaging.sender.WebSocketSender; +import com.factoreal.backend.messaging.kafka.strategy.enums.AlarmEventDto; +import com.factoreal.backend.messaging.kafka.strategy.enums.RiskLevel; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; diff --git a/src/main/java/com/factoreal/backend/global/kafka/strategy/alarmMessage/DefaultRiskMessageProvider.java b/src/main/java/com/factoreal/backend/messaging/kafka/strategy/alarmMessage/DefaultRiskMessageProvider.java similarity index 90% rename from src/main/java/com/factoreal/backend/global/kafka/strategy/alarmMessage/DefaultRiskMessageProvider.java rename to src/main/java/com/factoreal/backend/messaging/kafka/strategy/alarmMessage/DefaultRiskMessageProvider.java index ffe575d8..3e8315dc 100644 --- a/src/main/java/com/factoreal/backend/global/kafka/strategy/alarmMessage/DefaultRiskMessageProvider.java +++ b/src/main/java/com/factoreal/backend/messaging/kafka/strategy/alarmMessage/DefaultRiskMessageProvider.java @@ -1,7 +1,7 @@ -package com.factoreal.backend.global.kafka.strategy.alarmMessage; +package com.factoreal.backend.messaging.kafka.strategy.alarmMessage; -import com.factoreal.backend.global.kafka.strategy.enums.RiskLevel; -import com.factoreal.backend.global.kafka.strategy.enums.SensorType; +import com.factoreal.backend.messaging.kafka.strategy.enums.RiskLevel; +import com.factoreal.backend.messaging.kafka.strategy.enums.SensorType; import org.springframework.stereotype.Component; @Component diff --git a/src/main/java/com/factoreal/backend/messaging/kafka/strategy/alarmMessage/RiskMessageProvider.java b/src/main/java/com/factoreal/backend/messaging/kafka/strategy/alarmMessage/RiskMessageProvider.java new file mode 100644 index 00000000..9e0ffd2b --- /dev/null +++ b/src/main/java/com/factoreal/backend/messaging/kafka/strategy/alarmMessage/RiskMessageProvider.java @@ -0,0 +1,8 @@ +package com.factoreal.backend.messaging.kafka.strategy.alarmMessage; + +import com.factoreal.backend.messaging.kafka.strategy.enums.RiskLevel; +import com.factoreal.backend.messaging.kafka.strategy.enums.SensorType; + +public interface RiskMessageProvider { + String getMessage(SensorType sensorType, RiskLevel riskLevel); +} diff --git a/src/main/java/com/factoreal/backend/global/kafka/strategy/enums/AlarmEventDto.java b/src/main/java/com/factoreal/backend/messaging/kafka/strategy/enums/AlarmEventDto.java similarity index 95% rename from src/main/java/com/factoreal/backend/global/kafka/strategy/enums/AlarmEventDto.java rename to src/main/java/com/factoreal/backend/messaging/kafka/strategy/enums/AlarmEventDto.java index 2399763a..e62cca36 100644 --- a/src/main/java/com/factoreal/backend/global/kafka/strategy/enums/AlarmEventDto.java +++ b/src/main/java/com/factoreal/backend/messaging/kafka/strategy/enums/AlarmEventDto.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.global.kafka.strategy.enums; +package com.factoreal.backend.messaging.kafka.strategy.enums; import lombok.Builder; import lombok.Data; diff --git a/src/main/java/com/factoreal/backend/global/kafka/strategy/enums/RiskLevel.java b/src/main/java/com/factoreal/backend/messaging/kafka/strategy/enums/RiskLevel.java similarity index 93% rename from src/main/java/com/factoreal/backend/global/kafka/strategy/enums/RiskLevel.java rename to src/main/java/com/factoreal/backend/messaging/kafka/strategy/enums/RiskLevel.java index e262007d..462751be 100644 --- a/src/main/java/com/factoreal/backend/global/kafka/strategy/enums/RiskLevel.java +++ b/src/main/java/com/factoreal/backend/messaging/kafka/strategy/enums/RiskLevel.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.global.kafka.strategy.enums; +package com.factoreal.backend.messaging.kafka.strategy.enums; import lombok.Getter; diff --git a/src/main/java/com/factoreal/backend/global/kafka/strategy/enums/SensorType.java b/src/main/java/com/factoreal/backend/messaging/kafka/strategy/enums/SensorType.java similarity index 77% rename from src/main/java/com/factoreal/backend/global/kafka/strategy/enums/SensorType.java rename to src/main/java/com/factoreal/backend/messaging/kafka/strategy/enums/SensorType.java index e4141b4c..3971321c 100644 --- a/src/main/java/com/factoreal/backend/global/kafka/strategy/enums/SensorType.java +++ b/src/main/java/com/factoreal/backend/messaging/kafka/strategy/enums/SensorType.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.global.kafka.strategy.enums; +package com.factoreal.backend.messaging.kafka.strategy.enums; public enum SensorType { current, diff --git a/src/main/java/com/factoreal/backend/global/mqtt/MqttService.java b/src/main/java/com/factoreal/backend/messaging/mqtt/MqttService.java similarity index 98% rename from src/main/java/com/factoreal/backend/global/mqtt/MqttService.java rename to src/main/java/com/factoreal/backend/messaging/mqtt/MqttService.java index 228ba257..fc1a6f68 100644 --- a/src/main/java/com/factoreal/backend/global/mqtt/MqttService.java +++ b/src/main/java/com/factoreal/backend/messaging/mqtt/MqttService.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.global.mqtt; +package com.factoreal.backend.messaging.mqtt; import com.factoreal.backend.domain.sensor.application.SensorService; import com.factoreal.backend.domain.sensor.dto.request.SensorCreateRequest; diff --git a/src/main/java/com/factoreal/backend/global/sender/WebSocketSender.java b/src/main/java/com/factoreal/backend/messaging/sender/WebSocketSender.java similarity index 83% rename from src/main/java/com/factoreal/backend/global/sender/WebSocketSender.java rename to src/main/java/com/factoreal/backend/messaging/sender/WebSocketSender.java index 3f7e9ecc..8d5a4111 100644 --- a/src/main/java/com/factoreal/backend/global/sender/WebSocketSender.java +++ b/src/main/java/com/factoreal/backend/messaging/sender/WebSocketSender.java @@ -1,8 +1,8 @@ -package com.factoreal.backend.global.sender; +package com.factoreal.backend.messaging.sender; -import com.factoreal.backend.global.tmp.SystemLogDto; -import com.factoreal.backend.global.tmp.ZoneDangerDto; -import com.factoreal.backend.global.kafka.strategy.enums.AlarmEventDto; +import com.factoreal.backend.messaging.common.dto.SystemLogDto; +import com.factoreal.backend.messaging.common.dto.ZoneDangerDto; +import com.factoreal.backend.messaging.kafka.strategy.enums.AlarmEventDto; import lombok.RequiredArgsConstructor; import org.springframework.messaging.simp.SimpMessagingTemplate; import org.springframework.stereotype.Component; diff --git a/src/main/java/com/factoreal/backend/service/AlarmEventService.java b/src/main/java/com/factoreal/backend/messaging/service/AlarmEventService.java similarity index 89% rename from src/main/java/com/factoreal/backend/service/AlarmEventService.java rename to src/main/java/com/factoreal/backend/messaging/service/AlarmEventService.java index 29c21662..0b462454 100644 --- a/src/main/java/com/factoreal/backend/service/AlarmEventService.java +++ b/src/main/java/com/factoreal/backend/messaging/service/AlarmEventService.java @@ -1,14 +1,13 @@ -package com.factoreal.backend.service; +package com.factoreal.backend.messaging.service; -import com.factoreal.backend.domain.zone.application.ZoneService; import com.factoreal.backend.domain.sensor.dto.SensorKafkaDto; import com.factoreal.backend.domain.abnormalLog.entity.AbnormalLog; import com.factoreal.backend.domain.zone.dao.ZoneRepository; -import com.factoreal.backend.global.kafka.strategy.alarmList.NotificationStrategy; -import com.factoreal.backend.global.kafka.strategy.NotificationStrategyFactory; -import com.factoreal.backend.global.kafka.strategy.enums.AlarmEventDto; -import com.factoreal.backend.global.kafka.strategy.enums.RiskLevel; -import com.factoreal.backend.global.kafka.strategy.enums.SensorType; +import com.factoreal.backend.messaging.kafka.strategy.alarmList.NotificationStrategy; +import com.factoreal.backend.messaging.kafka.strategy.NotificationStrategyFactory; +import com.factoreal.backend.messaging.kafka.strategy.enums.AlarmEventDto; +import com.factoreal.backend.messaging.kafka.strategy.enums.RiskLevel; +import com.factoreal.backend.messaging.kafka.strategy.enums.SensorType; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; diff --git a/src/main/java/com/factoreal/backend/service/AutoControlService.java b/src/main/java/com/factoreal/backend/messaging/service/AutoControlService.java similarity index 98% rename from src/main/java/com/factoreal/backend/service/AutoControlService.java rename to src/main/java/com/factoreal/backend/messaging/service/AutoControlService.java index 01ce6ce8..344c792d 100644 --- a/src/main/java/com/factoreal/backend/service/AutoControlService.java +++ b/src/main/java/com/factoreal/backend/messaging/service/AutoControlService.java @@ -1,4 +1,4 @@ -package com.factoreal.backend.service; +package com.factoreal.backend.messaging.service; import com.factoreal.backend.domain.sensor.dto.SensorKafkaDto; import com.factoreal.backend.domain.sensor.entity.Sensor;