Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,6 @@ public ResponseEntity<Void> update(
@PathVariable("sensorId") String sensorId,
@RequestBody SensorUpdateDto dto) {
service.updateSensor(sensorId, dto);
return ResponseEntity.noContent().build(); // 204 응닡 λ°˜ν™˜
return ResponseEntity.noContent().build();
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.factoreal.backend.controller;

import com.factoreal.backend.dto.CreateWorkerRequest;
import com.factoreal.backend.dto.WorkerDto;
import com.factoreal.backend.dto.ZoneManagerResponseDto;
import com.factoreal.backend.service.WorkerService;
Expand All @@ -18,18 +17,10 @@
@RequestMapping("/api/workers")
@RequiredArgsConstructor
@Slf4j
@Tag(name = "μž‘μ—…μž API", description = "μž‘μ—…μž 쑰회 및 생성 API")
@Tag(name = "μž‘μ—…μž API", description = "μž‘μ—…μž 쑰회 API")
public class WorkerController {
private final WorkerService workerService;

@Operation(summary = "μž‘μ—…μž 생성", description = "μƒˆλ‘œμš΄ μž‘μ—…μžλ₯Ό μƒμ„±ν•˜κ³  μ ‘κ·Ό κ°€λŠ₯ν•œ 곡간듀을 μ„ νƒν•©λ‹ˆλ‹€.")
@PostMapping
public ResponseEntity<Void> createWorker(@RequestBody CreateWorkerRequest request) {
log.info("μž‘μ—…μž 생성 μš”μ²­: {}", request);
workerService.createWorker(request);
return ResponseEntity.ok().build(); // μž‘μ—…μž 생성 성곡 μ‹œ 200 응닡
}

@Operation(summary = "전체 μž‘μ—…μž λͺ©λ‘ 쑰회", description = "전체 μž‘μ—…μž λͺ©λ‘μ„ μ‘°νšŒν•©λ‹ˆλ‹€.")
@GetMapping
public ResponseEntity<List<WorkerDto>> getAllWorkers() {
Expand Down

This file was deleted.

21 changes: 0 additions & 21 deletions src/main/java/com/factoreal/backend/dto/CreateWorkerRequest.java

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
@Getter
@Setter
@ToString
// Wearable μž₯μΉ˜μ—μ„œ λ°›μ•„μ˜€λŠ” 데이터 by 우영
// Wearable μž₯μΉ˜μ—μ„œ λ°›μ•„μ˜€λŠ” 데이터 by 우영. μΆ”ν›„ λ…Όμ˜ μ˜ˆμ •
public class WorkerLocationRequest {
private String workerId;
private String zoneId;
Expand Down
26 changes: 0 additions & 26 deletions src/main/java/com/factoreal/backend/dto/WorkerManagerResponse.java

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,4 @@ public interface WorkerZoneRepository extends JpaRepository<WorkerZone, WorkerZo

// νŠΉμ • zone_id의 λ‹΄λ‹Ήμž 쑰회 (manageYn = true)
Optional<WorkerZone> findByZoneZoneIdAndManageYnIsTrue(String zoneId);

// νŠΉμ • 곡간을 μ œμ™Έν•œ λ‹€λ₯Έ κ³΅κ°„μ˜ λ‹΄λ‹Ήμž λͺ©λ‘ 쑰회
List<WorkerZone> findByZoneZoneIdNotAndManageYnIsTrue(String zoneId);

// νŠΉμ • μž‘μ—…μžκ°€ λ‹΄λ‹Ήμžλ‘œ μžˆλŠ” 곡간 쑰회
Optional<WorkerZone> findByWorkerWorkerIdAndManageYnIsTrue(String workerId);
}
106 changes: 0 additions & 106 deletions src/main/java/com/factoreal/backend/service/WorkerManagerService.java

This file was deleted.

61 changes: 16 additions & 45 deletions src/main/java/com/factoreal/backend/service/WorkerService.java
Original file line number Diff line number Diff line change
@@ -1,16 +1,13 @@
package com.factoreal.backend.service;

import com.factoreal.backend.dto.CreateWorkerRequest;
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.WorkerZoneId;
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.repository.ZoneRepository;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
Expand All @@ -26,18 +23,13 @@ public class WorkerService {
private final WorkerRepository workerRepository;
private final WorkerLocationService workerLocationService;
private final WorkerZoneRepository workerZoneRepository;
private final ZoneRepository zoneRepository;

@Transactional(readOnly = true)
public List<WorkerDto> getAllWorkers() {
log.info("전체 μž‘μ—…μž λͺ©λ‘ 쑰회");
List<Worker> workers = workerRepository.findAll();
return workers.stream()
.map(worker -> {
// ν•΄λ‹Ή μž‘μ—…μžκ°€ μ–΄λ–€ κ³΅κ°„μ˜ λ‹΄λ‹ΉμžμΈμ§€ 확인
boolean isManager = workerZoneRepository.findByWorkerWorkerIdAndManageYnIsTrue(worker.getWorkerId()).isPresent();
return WorkerDto.fromEntity(worker, isManager);
})
.map(worker -> WorkerDto.fromEntity(worker, false))
.collect(Collectors.toList());
}

Expand Down Expand Up @@ -79,40 +71,19 @@ public ZoneManagerResponseDto getZoneManagerWithLocation(String zoneId) {
// 4. DTO λ³€ν™˜ 및 λ°˜ν™˜
return ZoneManagerResponseDto.fromEntity(manager, currentZone);
}
}

/**
* μž‘μ—…μž 생성 및 μΆœμž… κ°€λŠ₯ 곡간 μ„€μ •
*/
@Transactional
public void createWorker(CreateWorkerRequest request) {
log.info("μž‘μ—…μž 생성 μš”μ²­: {}", request);

// 1. μž‘μ—…μž 정보 μ €μž₯
Worker worker = Worker.builder()
.workerId(request.getWorkerId())
.name(request.getName())
.phoneNumber(request.getPhoneNumber())
.email(request.getEmail())
.build();

workerRepository.save(worker); // μž‘μ—…μž 정보 μ €μž₯

// 2. 각 곡간λͺ…μœΌλ‘œ Zone 쑰회 및 WorkerZone 생성
for (String zoneName : request.getZoneNames()) {
Zone zone = zoneRepository.findByZoneName(zoneName)
.orElseThrow(() -> new IllegalArgumentException("μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” 곡간λͺ…μž…λ‹ˆλ‹€: " + zoneName));

// WorkerZone 생성 (기본적으둜 κ΄€λ¦¬μž κΆŒν•œμ€ μ—†μŒ)
WorkerZone workerZone = WorkerZone.builder()
.id(new WorkerZoneId(worker.getWorkerId(), zone.getZoneId())) // 볡합킀 생성
.worker(worker)
.zone(zone)
.manageYn(false) // λ‹΄λ‹Ήμž κΆŒν•œμ€ μ—†μŒμ΄ default
.build();

workerZoneRepository.save(workerZone); // WorkerZone μ €μž₯
}

log.info("μž‘μ—…μž 생성 μ™„λ£Œ - workerId: {}", worker.getWorkerId());
}
}
// TODO. μˆ˜μ •λ˜μ–΄μ•Ό ν•  둜직. ν˜„μž¬λŠ” WorkerZone ν…Œμ΄λΈ”μ—μ„œ 곡간id둜 필터링 λ˜λŠ” λͺ¨λ“  μž‘μ—…μžλ₯Ό λŒκ³ μ™”λŠ”λ°,
// 사싀 ν˜„μž¬ κ·Έ κ³΅κ°„μ—μ„œ μ‹€μ œλ‘œ μž‘μ—…ν•˜κ³  μžˆλŠ”, 즉 λ“€μ–΄
// public List<WorkerDto> getWorkersByZoneId(String zoneId) {
// log.info("곡간 ID: {}의 μž‘μ—…μž λͺ©λ‘ 쑰회", zoneId);
// List<WorkerZone> workerZones = workerZoneRepository.findByZoneZoneId(zoneId);

// return workerZones.stream()
// .map(workerZone -> {
// Worker worker = workerZone.getWorker();
// Boolean isManager = workerZone.getManageYn();
// return WorkerDto.fromEntity(worker, isManager);
// })
// .collect(Collectors.toList());
// }
Loading