From c8b26bd628507c81f41c329a1c418495a9227033 Mon Sep 17 00:00:00 2001 From: Kim Taemin Date: Sun, 9 Nov 2025 15:48:13 +0900 Subject: [PATCH 1/2] =?UTF-8?q?[FIX]=20=EC=83=9D=EC=82=B0=20=EA=B3=84?= =?UTF-8?q?=ED=9A=8D=20=EB=AA=A9=EB=A1=9D=20=EC=A0=84=EC=B2=B4=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/part/controller/PartOrderController.java | 2 +- .../factory/api/part/service/PartOrderService.java | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/sampoom/factory/api/part/controller/PartOrderController.java b/src/main/java/com/sampoom/factory/api/part/controller/PartOrderController.java index de00402..af1bb92 100644 --- a/src/main/java/com/sampoom/factory/api/part/controller/PartOrderController.java +++ b/src/main/java/com/sampoom/factory/api/part/controller/PartOrderController.java @@ -91,7 +91,7 @@ public ResponseEntity>> getPar return ApiResponse.success(SuccessStatus.OK, response); } - @Operation(summary = "생산계획 목록 조회", description = "생산계획 탭용 조회 - 계획 상태와 최근 IN_PROGRESS로 전환된 데이터를 포함하여 조회합니다.") + @Operation(summary = "생산계획 목록 조회", description = "생산계획 탭용 조회 - 계획 상태와 최근 IN_PROGRESS로 전환된 데이터를 포함하여 조회합니다. includeRecentDays=-1로 전체 데이터 조회 가능합니다.") @GetMapping("/orders/production-plans") public ResponseEntity>> getProductionPlans( @PathVariable Long factoryId, diff --git a/src/main/java/com/sampoom/factory/api/part/service/PartOrderService.java b/src/main/java/com/sampoom/factory/api/part/service/PartOrderService.java index f9f8741..1ebf46d 100644 --- a/src/main/java/com/sampoom/factory/api/part/service/PartOrderService.java +++ b/src/main/java/com/sampoom/factory/api/part/service/PartOrderService.java @@ -580,8 +580,10 @@ public PageResponseDto getProductionPlans(Long factoryId, PartOrderStatus.DELAYED ); - // 최근 IN_PROGRESS로 전환된 데이터를 포함하기 위한 기준일 계산 - LocalDateTime cutoffDate = LocalDateTime.now().minusDays(includeRecentDays); + // includeRecentDays가 -1이면 모든 IN_PROGRESS 데이터 포함, 아니면 최근 며칠간만 + LocalDateTime cutoffDate = includeRecentDays == -1 ? + LocalDateTime.of(1900, 1, 1, 0, 0) : // 아주 오래된 날짜로 설정하여 모든 데이터 포함 + LocalDateTime.now().minusDays(includeRecentDays); Page partOrderPage; @@ -640,7 +642,7 @@ private PartOrderResponseDto toResponseDto(PartOrder partOrder) { .externalPartOrderId(partOrder.getExternalPartOrderId()) .requiredDate(partOrder.getRequiredDate()) .scheduledDate(partOrder.getScheduledDate()) - .progressRate(partOrder.getProgressRate()) + .progressRate(Math.round(partOrder.getProgressRate() * 100.0) / 100.0) .rejectionReason(partOrder.getRejectionReason()) .dDay(partOrder.getDDay()) .priority(partOrder.getPriority() != null ? partOrder.getPriority().name() : null) @@ -687,7 +689,7 @@ private PartOrderResponseDto toProductionPlanResponseDto(PartOrder partOrder) { .externalPartOrderId(partOrder.getExternalPartOrderId()) .requiredDate(partOrder.getRequiredDate()) .scheduledDate(partOrder.getScheduledDate()) - .progressRate(partOrder.getProgressRate()) + .progressRate(Math.round(partOrder.getProgressRate() * 100.0) / 100.0) .rejectionReason(partOrder.getRejectionReason()) .dDay(partOrder.getDDay()) .priority(partOrder.getPriority() != null ? partOrder.getPriority().name() : null) From e28b253f53f57fb6416afe8e6a74081fb0265d57 Mon Sep 17 00:00:00 2001 From: Kim Taemin Date: Sun, 9 Nov 2025 16:02:42 +0900 Subject: [PATCH 2/2] =?UTF-8?q?[FIX]=20partOrder=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../part/service/PartOrderCodeGenerator.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/sampoom/factory/api/part/service/PartOrderCodeGenerator.java b/src/main/java/com/sampoom/factory/api/part/service/PartOrderCodeGenerator.java index 58bf6aa..f85ee17 100644 --- a/src/main/java/com/sampoom/factory/api/part/service/PartOrderCodeGenerator.java +++ b/src/main/java/com/sampoom/factory/api/part/service/PartOrderCodeGenerator.java @@ -17,23 +17,23 @@ public class PartOrderCodeGenerator { private final PartOrderRepository partOrderRepository; /** - * WO-2025-001 형태의 주문 코드를 생성합니다. + * WO-251109-001 형태의 주문 코드를 생성합니다. * WO: Work Order의 약자 - * 2025: 현재 년도 - * 001: 해당 년도의 순차 번호 (3자리) + * 251109: YYMMDD 형태 (25년 11월 09일) + * 001: 해당 날짜의 순차 번호 (3자리) */ public String generateOrderCode() { LocalDateTime now = LocalDateTime.now(); - String year = now.format(DateTimeFormatter.ofPattern("yyyy")); + String dateCode = now.format(DateTimeFormatter.ofPattern("yyMMdd")); - // 해당 년도의 마지막 주문 코드 조회 - String lastOrderCode = partOrderRepository.findTopByOrderCodeStartingWithOrderByOrderCodeDesc("WO-" + year + "-") + // 해당 날짜의 마지막 주문 코드 조회 + String lastOrderCode = partOrderRepository.findTopByOrderCodeStartingWithOrderByOrderCodeDesc("WO-" + dateCode + "-") .map(PartOrder::getOrderCode) .orElse(null); int nextSequence = 1; if (lastOrderCode != null && !lastOrderCode.isEmpty()) { - // WO-2025-001에서 마지막 3자리 숫자 추출 + // WO-251109-001에서 마지막 3자리 숫자 추출 String[] parts = lastOrderCode.split("-"); if (parts.length == 3) { try { @@ -45,8 +45,8 @@ public String generateOrderCode() { } } - // WO-2025-001 형태로 생성 - String orderCode = String.format("WO-%s-%03d", year, nextSequence); + // WO-251109-001 형태로 생성 + String orderCode = String.format("WO-%s-%03d", dateCode, nextSequence); log.info("주문 코드 생성: {}", orderCode); return orderCode;