From 95f20378eaedd99ba099e2f9eb532f3183e90659 Mon Sep 17 00:00:00 2001 From: "CANCERYS\\kw093" Date: Wed, 20 May 2026 20:36:42 +0800 Subject: [PATCH] jo dashbaord update --- .../service/ProductProcessService.kt | 37 +++++++------------ .../web/ProductProcessController.kt | 11 +++++- .../web/model/SaveProductProcessRequest.kt | 1 + 3 files changed, 23 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/ffii/fpsms/modules/productProcess/service/ProductProcessService.kt b/src/main/java/com/ffii/fpsms/modules/productProcess/service/ProductProcessService.kt index 49b5e69..c308fdc 100644 --- a/src/main/java/com/ffii/fpsms/modules/productProcess/service/ProductProcessService.kt +++ b/src/main/java/com/ffii/fpsms/modules/productProcess/service/ProductProcessService.kt @@ -2291,10 +2291,16 @@ open class ProductProcessService( ) } - open fun getJobProcessStatus(date: LocalDate?): List { + open fun getJobProcessStatus( + date: LocalDate?, + productProcessStatus: ProductProcessStatus? + ): List { val productProcesses = productProcessRepository.findAllByDeletedIsFalse() .let { list -> if (date == null) list else list.filter { it.date == date } } - + .let { list -> + if (productProcessStatus == null) list + else list.filter { it.status == productProcessStatus } + } return productProcesses.mapNotNull { process -> val jobOrder = jobOrderRepository.findById(process.jobOrder?.id ?: 0L).orElse(null) @@ -2327,26 +2333,22 @@ open class ProductProcessService( itemName = process.item?.name ?: "", status = process.status?.value ?: "", planEndTime = calculatedPlanEndTime, - processes = (0 until 16).map { index -> - if (index < lines.size) { - val line = lines[index] - - // equipment.description + equipment_detail.name + processes = lines.map { line -> val equipmentName = try { line.bomProcess?.equipment?.name } catch (_: jakarta.persistence.EntityNotFoundException) { null } - val equipmentDetailName = line.equipmentDetailId?.let { id -> equipmentDetailRepository.findById(id).orElse(null)?.name } ProcessStatusInfo( - processName = line.name, // ✅ 新增:工序名称 - equipmentName = equipmentName, // ✅ 替代 equipmentCode - equipmentDetailName = equipmentDetailName, // ✅ 新增 + processName = line.name, + equipmentName = equipmentName, + equipmentDetailName = equipmentDetailName, + handlerName = line.handler?.name, startTime = line.startTime, endTime = line.endTime, processingTime = line.processingTime, @@ -2354,20 +2356,7 @@ open class ProductProcessService( changeoverTime = line.changeoverTime, isRequired = true ) - } else { - ProcessStatusInfo( - processName = null, - equipmentName = null, - equipmentDetailName = null, - startTime = null, - endTime = null, - processingTime = null, - setupTime = null, - changeoverTime = null, - isRequired = false - ) } - } ) } } diff --git a/src/main/java/com/ffii/fpsms/modules/productProcess/web/ProductProcessController.kt b/src/main/java/com/ffii/fpsms/modules/productProcess/web/ProductProcessController.kt index 9f0b14d..071be15 100644 --- a/src/main/java/com/ffii/fpsms/modules/productProcess/web/ProductProcessController.kt +++ b/src/main/java/com/ffii/fpsms/modules/productProcess/web/ProductProcessController.kt @@ -2,6 +2,7 @@ package com.ffii.fpsms.modules.productProcess.web import com.ffii.fpsms.modules.productProcess.entity.ProductProcess import com.ffii.fpsms.modules.productProcess.entity.ProductProcessLine +import com.ffii.fpsms.modules.productProcess.enums.ProductProcessStatus import com.ffii.fpsms.modules.productProcess.service.ProductProcessService import com.ffii.fpsms.modules.productProcess.web.model.* import org.springframework.data.domain.Page @@ -274,11 +275,17 @@ class ProductProcessController( return productProcessService.UpdateProductProcessLineProcessingTimeSetupTimeChangeoverTime(request) } @GetMapping("/Demo/JobProcessStatus") - fun getJobProcessStatus(@RequestParam(required = false) date: String?): List { + fun getJobProcessStatus( + @RequestParam(required = false) date: String?, + @RequestParam(required = false) productProcessStatus: String? + ): List { val parsedDate = date?.takeIf { it.isNotBlank() }?.let { LocalDate.parse(it, DateTimeFormatter.ISO_DATE) // yyyy-MM-dd } - return productProcessService.getJobProcessStatus(parsedDate) + val statusFilter = productProcessStatus?.takeIf { it.isNotBlank() }?.let { raw -> + ProductProcessStatus.values().find { it.value.equals(raw, ignoreCase = true) } + } + return productProcessService.getJobProcessStatus(parsedDate, statusFilter) } @PostMapping("/Demo/ProcessLine/delete/{lineId}") fun deleteProductProcessLine(@PathVariable lineId: Long): MessageResponse { diff --git a/src/main/java/com/ffii/fpsms/modules/productProcess/web/model/SaveProductProcessRequest.kt b/src/main/java/com/ffii/fpsms/modules/productProcess/web/model/SaveProductProcessRequest.kt index 97f8b55..7f52f8d 100644 --- a/src/main/java/com/ffii/fpsms/modules/productProcess/web/model/SaveProductProcessRequest.kt +++ b/src/main/java/com/ffii/fpsms/modules/productProcess/web/model/SaveProductProcessRequest.kt @@ -258,6 +258,7 @@ data class ProcessStatusInfo( val processName: String?, val equipmentName: String?, val equipmentDetailName: String?, + val handlerName: String?, val startTime: LocalDateTime?, val endTime: LocalDateTime?, val processingTime: Int?,