|
|
|
@@ -921,6 +921,16 @@ open class ProductProcessService( |
|
|
|
val productProcessLine = productProcessLineRepository.findById(productProcessLineId).orElse(null) |
|
|
|
val bomProcess = bomProcessRepository.findById(productProcessLine?.bomProcess?.id?:0L).orElse(null) |
|
|
|
val productProcessIssue = productionProcessIssueRepository.findByProductProcessLineId(productProcessLineId).filter{it.status == "Paused"}.firstOrNull() |
|
|
|
|
|
|
|
// ✅ 计算所有已恢复的暂停记录的总暂停时间(毫秒) |
|
|
|
val allIssues = productionProcessIssueRepository.findByProductProcessLineId(productProcessLineId) |
|
|
|
val totalPausedTimeMs = allIssues |
|
|
|
.filter { it.status == "Resumed" && it.stopTime != null && it.resumeTime != null } |
|
|
|
.sumOf { issue -> |
|
|
|
val stopTime = issue.stopTime?.toEpochSecond(ZoneOffset.UTC) ?: 0L |
|
|
|
val resumeTime = issue.resumeTime?.toEpochSecond(ZoneOffset.UTC) ?: 0L |
|
|
|
(resumeTime - stopTime) * 1000 // 转换为毫秒 |
|
|
|
} |
|
|
|
|
|
|
|
return JobOrderProcessLineDetailResponse( |
|
|
|
id = productProcessLine.id?:0, |
|
|
|
@@ -940,7 +950,10 @@ open class ProductProcessService( |
|
|
|
equipmentType = productProcessLine.equipmentType, |
|
|
|
equipmentId = productProcessLine.equipment?.id?:0, |
|
|
|
startTime = productProcessLine.startTime?:LocalDateTime.now(), |
|
|
|
endTime = productProcessLine.endTime?:LocalDateTime.now(), |
|
|
|
endTime = productProcessLine.endTime?:LocalDateTime.now(), |
|
|
|
stopTime = productProcessIssue?.stopTime, |
|
|
|
// ✅ 添加总暂停时间(毫秒) |
|
|
|
totalPausedTimeMs = totalPausedTimeMs.toLong(), |
|
|
|
status = productProcessLine.status?:"", |
|
|
|
outputFromProcessQty = productProcessLine.outputFromProcessQty?:0, |
|
|
|
outputFromProcessUom = productProcessLine.outputFromProcessUom?:"", |
|
|
|
|