|
|
@@ -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 suffixFormat = "%03d" |
|
|
val pattern = "yyyyMMdd" |
|
|
|
|
|
|
|
|
val pattern = "yyMMdd" |
|
|
val formatter = DateTimeFormatter.ofPattern(pattern) |
|
|
val formatter = DateTimeFormatter.ofPattern(pattern) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
val prefix = "JO" |
|
|
val prefix = "JO" |
|
|
val midfix = LocalDate.now().format(formatter) |
|
|
|
|
|
|
|
|
val midfix = planStart.format(formatter) // 👈 用 planStart,而不是 LocalDate.now() |
|
|
val suffix = String.format(suffixFormat, 1) |
|
|
val suffix = String.format(suffixFormat, 1) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
val latestCode = jobOrderRepository.findLatestCodeByPrefix("${prefix}-${midfix}") |
|
|
val latestCode = jobOrderRepository.findLatestCodeByPrefix("${prefix}-${midfix}") |
|
|
if (latestCode != null) { |
|
|
if (latestCode != null) { |
|
|
val splitLatestCode = latestCode.split("-") |
|
|
val splitLatestCode = latestCode.split("-") |
|
|
if (splitLatestCode.size > 2) { |
|
|
if (splitLatestCode.size > 2) { |
|
|
val latestNo = splitLatestCode[2].toInt() |
|
|
val latestNo = splitLatestCode[2].toInt() |
|
|
return listOf<String>(prefix, midfix, String.format(suffixFormat, latestNo + 1)).joinToString("-") |
|
|
|
|
|
|
|
|
return listOf(prefix, midfix, String.format(suffixFormat, latestNo + 1)).joinToString("-") |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
return listOf<String>(prefix, midfix, suffix).joinToString("-") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return listOf(prefix, midfix, suffix).joinToString("-") |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
open fun createJobOrder(request: CreateJobOrderRequest): MessageResponse { |
|
|
open fun createJobOrder(request: CreateJobOrderRequest): MessageResponse { |
|
|
val jo = JobOrder() |
|
|
val jo = JobOrder() |
|
|
val bom = request.bomId?.let { bomService.findById(it) } |
|
|
val bom = request.bomId?.let { bomService.findById(it) } |
|
|
val approver = request.approverId?.let { userService.find(it).getOrNull() } ?: SecurityUtils.getUser().getOrNull() |
|
|
val approver = request.approverId?.let { userService.find(it).getOrNull() } ?: SecurityUtils.getUser().getOrNull() |
|
|
val prodScheduleLine = request.prodScheduleLineId?.let { productionScheduleLineRepository.findById(it).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 status = JobOrderStatus.entries.find { it.value == request.status } |
|
|
|
|
|
|
|
|
//val jobTypeId = jobTypeRepository.findByName(request.jobType).orElse(null)?.id |
|
|
//val jobTypeId = jobTypeRepository.findByName(request.jobType).orElse(null)?.id |
|
|
|