Quellcode durchsuchen

jo dashbaord update

production
CANCERYS\kw093 vor 1 Monat
Ursprung
Commit
95f20378ea
3 geänderte Dateien mit 23 neuen und 26 gelöschten Zeilen
  1. +13
    -24
      src/main/java/com/ffii/fpsms/modules/productProcess/service/ProductProcessService.kt
  2. +9
    -2
      src/main/java/com/ffii/fpsms/modules/productProcess/web/ProductProcessController.kt
  3. +1
    -0
      src/main/java/com/ffii/fpsms/modules/productProcess/web/model/SaveProductProcessRequest.kt

+ 13
- 24
src/main/java/com/ffii/fpsms/modules/productProcess/service/ProductProcessService.kt Datei anzeigen

@@ -2291,10 +2291,16 @@ open class ProductProcessService(
) )
} }


open fun getJobProcessStatus(date: LocalDate?): List<JobProcessStatusResponse> {
open fun getJobProcessStatus(
date: LocalDate?,
productProcessStatus: ProductProcessStatus?
): List<JobProcessStatusResponse> {
val productProcesses = productProcessRepository.findAllByDeletedIsFalse() val productProcesses = productProcessRepository.findAllByDeletedIsFalse()
.let { list -> if (date == null) list else list.filter { it.date == date } } .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 -> return productProcesses.mapNotNull { process ->
val jobOrder = jobOrderRepository.findById(process.jobOrder?.id ?: 0L).orElse(null) val jobOrder = jobOrderRepository.findById(process.jobOrder?.id ?: 0L).orElse(null)
@@ -2327,26 +2333,22 @@ open class ProductProcessService(
itemName = process.item?.name ?: "", itemName = process.item?.name ?: "",
status = process.status?.value ?: "", status = process.status?.value ?: "",
planEndTime = calculatedPlanEndTime, 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 { val equipmentName = try {
line.bomProcess?.equipment?.name line.bomProcess?.equipment?.name
} catch (_: jakarta.persistence.EntityNotFoundException) { } catch (_: jakarta.persistence.EntityNotFoundException) {
null null
} }



val equipmentDetailName = line.equipmentDetailId?.let { id -> val equipmentDetailName = line.equipmentDetailId?.let { id ->
equipmentDetailRepository.findById(id).orElse(null)?.name equipmentDetailRepository.findById(id).orElse(null)?.name
} }


ProcessStatusInfo( ProcessStatusInfo(
processName = line.name, // ✅ 新增:工序名称
equipmentName = equipmentName, // ✅ 替代 equipmentCode
equipmentDetailName = equipmentDetailName, // ✅ 新增
processName = line.name,
equipmentName = equipmentName,
equipmentDetailName = equipmentDetailName,
handlerName = line.handler?.name,
startTime = line.startTime, startTime = line.startTime,
endTime = line.endTime, endTime = line.endTime,
processingTime = line.processingTime, processingTime = line.processingTime,
@@ -2354,20 +2356,7 @@ open class ProductProcessService(
changeoverTime = line.changeoverTime, changeoverTime = line.changeoverTime,
isRequired = true isRequired = true
) )
} else {
ProcessStatusInfo(
processName = null,
equipmentName = null,
equipmentDetailName = null,
startTime = null,
endTime = null,
processingTime = null,
setupTime = null,
changeoverTime = null,
isRequired = false
)
} }
}
) )
} }
} }


+ 9
- 2
src/main/java/com/ffii/fpsms/modules/productProcess/web/ProductProcessController.kt Datei anzeigen

@@ -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.ProductProcess
import com.ffii.fpsms.modules.productProcess.entity.ProductProcessLine 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.service.ProductProcessService
import com.ffii.fpsms.modules.productProcess.web.model.* import com.ffii.fpsms.modules.productProcess.web.model.*
import org.springframework.data.domain.Page import org.springframework.data.domain.Page
@@ -274,11 +275,17 @@ class ProductProcessController(
return productProcessService.UpdateProductProcessLineProcessingTimeSetupTimeChangeoverTime(request) return productProcessService.UpdateProductProcessLineProcessingTimeSetupTimeChangeoverTime(request)
} }
@GetMapping("/Demo/JobProcessStatus") @GetMapping("/Demo/JobProcessStatus")
fun getJobProcessStatus(@RequestParam(required = false) date: String?): List<JobProcessStatusResponse> {
fun getJobProcessStatus(
@RequestParam(required = false) date: String?,
@RequestParam(required = false) productProcessStatus: String?
): List<JobProcessStatusResponse> {
val parsedDate = date?.takeIf { it.isNotBlank() }?.let { val parsedDate = date?.takeIf { it.isNotBlank() }?.let {
LocalDate.parse(it, DateTimeFormatter.ISO_DATE) // yyyy-MM-dd 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}") @PostMapping("/Demo/ProcessLine/delete/{lineId}")
fun deleteProductProcessLine(@PathVariable lineId: Long): MessageResponse { fun deleteProductProcessLine(@PathVariable lineId: Long): MessageResponse {


+ 1
- 0
src/main/java/com/ffii/fpsms/modules/productProcess/web/model/SaveProductProcessRequest.kt Datei anzeigen

@@ -258,6 +258,7 @@ data class ProcessStatusInfo(
val processName: String?, val processName: String?,
val equipmentName: String?, val equipmentName: String?,
val equipmentDetailName: String?, val equipmentDetailName: String?,
val handlerName: String?,
val startTime: LocalDateTime?, val startTime: LocalDateTime?,
val endTime: LocalDateTime?, val endTime: LocalDateTime?,
val processingTime: Int?, val processingTime: Int?,


Laden…
Abbrechen
Speichern