From 0422579132fa49dfd1ed9694fd30e29b8ba0cb7c Mon Sep 17 00:00:00 2001 From: "CANCERYS\\kw093" Date: Wed, 18 Mar 2026 12:05:53 +0800 Subject: [PATCH] update --- .../jobOrder/service/JoPickOrderService.kt | 4 ++-- .../jobOrder/service/JobOrderService.kt | 20 +++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JoPickOrderService.kt b/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JoPickOrderService.kt index cc49550..efc861c 100644 --- a/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JoPickOrderService.kt +++ b/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JoPickOrderService.kt @@ -760,8 +760,8 @@ open class JoPickOrderService( } println("Found ${completedRecords.size} completed job order pick order records for user $userId") - - val recordDetails = completedRecords.mapNotNull { record -> + val sortedRecords = completedRecords.sortedByDescending { it.created } + val recordDetails = sortedRecords.mapNotNull { record -> // Get pick order details val pickOrder = pickOrderRepository.findById(record.pickOrderId!!).orElse(null) if (pickOrder != null && pickOrder.jobOrder != null) { diff --git a/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JobOrderService.kt b/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JobOrderService.kt index 60f90de..db4630b 100644 --- a/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JobOrderService.kt +++ b/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JobOrderService.kt @@ -402,33 +402,33 @@ open class JobOrderService( ) } - open fun assignJobNo(): String { + open fun assignJobNo(planStart: LocalDateTime): String { + val planStartDate = planStart.toLocalDate() val suffixFormat = "%03d" - val pattern = "yyyyMMdd" + val pattern = "yyMMdd" val formatter = DateTimeFormatter.ofPattern(pattern) - + val prefix = "JO" - val midfix = LocalDate.now().format(formatter) + val midfix = planStart.format(formatter) // 👈 用 planStart,而不是 LocalDate.now() val suffix = String.format(suffixFormat, 1) - + val latestCode = jobOrderRepository.findLatestCodeByPrefix("${prefix}-${midfix}") if (latestCode != null) { val splitLatestCode = latestCode.split("-") if (splitLatestCode.size > 2) { val latestNo = splitLatestCode[2].toInt() - return listOf(prefix, midfix, String.format(suffixFormat, latestNo + 1)).joinToString("-") + return listOf(prefix, midfix, String.format(suffixFormat, latestNo + 1)).joinToString("-") } } - - return listOf(prefix, midfix, suffix).joinToString("-") + + return listOf(prefix, midfix, suffix).joinToString("-") } - open fun createJobOrder(request: CreateJobOrderRequest): MessageResponse { val jo = JobOrder() val bom = request.bomId?.let { bomService.findById(it) } val approver = request.approverId?.let { userService.find(it).getOrNull() } ?: SecurityUtils.getUser().getOrNull() val prodScheduleLine = request.prodScheduleLineId?.let { productionScheduleLineRepository.findById(it).getOrNull() } - val code = assignJobNo() + val code = assignJobNo(request.planStart ?: LocalDateTime.now()) val status = JobOrderStatus.entries.find { it.value == request.status } //val jobTypeId = jobTypeRepository.findByName(request.jobType).orElse(null)?.id