@@ -1407,11 +1407,15 @@ open class ProductProcessService(
)
}
open fun getAllJoborderProductProcessInfo(isDrink: Boolean ?): List<AllJoborderProductProcessInfoResponse> {
open fun getAllJoborderProductProcessInfo(bomType: String ?): List<AllJoborderProductProcessInfoResponse> {
val productProcesses = productProcessRepository.findAllByDeletedIsFalse()
val productProcessIds = productProcesses.map { it.id }
val normalizedType = bomType?.trim()?.lowercase()?.takeIf { it.isNotBlank() }
val filteredProductProcesses = productProcesses.filter { process ->
if (normalizedType == null) return@filter true
process.bom?.type?.trim()?.lowercase() == normalizedType
}
return productProcesses.map { productProcesses ->
return filteredP roductProcesses.map { productProcesses ->
val productProcessLines = productProcessLineRepository.findByProductProcess_Id(productProcesses.id ?: 0L)
val jobOrder = jobOrderRepository.findById(productProcesses.jobOrder?.id ?: 0L).orElse(null)
val FinishedProductProcessLineCount =
@@ -1478,9 +1482,6 @@ open class ProductProcessService(
)
}.filter { response ->
// 过滤掉已完成上架的 job order
if (isDrink != null && response.isDrink != isDrink) {
return@filter false
}
val jobOrder = jobOrderRepository.findById(response.jobOrderId ?: 0L).orElse(null)
val stockInLineStatus = jobOrder?.stockInLines?.firstOrNull()?.status
stockInLineStatus != "completed"
@@ -1504,7 +1505,7 @@ open class ProductProcessService(
jobOrderCode: String?,
bomIds: List<Long>?,
qcReady: Boolean?,
isDrink: Boolean ?,
bomType: String ?,
page: Int,
size: Int
): JobOrderProductProcessPageResponse {
@@ -1514,7 +1515,7 @@ open class ProductProcessService(
val trimmedItemCode = itemCode?.trim()?.takeIf { it.isNotBlank() }
val trimmedJobOrderCode = jobOrderCode?.trim()?.takeIf { it.isNotBlank() }
// 1) 找出候选 jobOrder:用 date/itemCode/jobOrderCode/bomIds/isDrink 先把数据缩小到今天等范围
// 1) 找出候选 jobOrder:用 date/itemCode/jobOrderCode/bomIds/type 先把数据缩小到今天等范围
val candidateProcesses = if (date != null) {
productProcessRepository.findAllByDeletedIsFalseAndDate(date)
} else {
@@ -1523,9 +1524,10 @@ open class ProductProcessService(
val filteredCandidateProcesses = candidateProcesses.filter { p ->
if (p.jobOrder?.isHidden == true) return@filter false
if (isDrink != null) {
val bomIsDrink = p.bom?.isDrink
if (bomIsDrink != isDrink) return@filter false
val normalizedType = bomType?.trim()?.lowercase()?.takeIf { it.isNotBlank() }
if (normalizedType != null) {
val currentType = p.bom?.type?.trim()?.lowercase()
if (currentType != normalizedType) return@filter false
}
if (trimmedItemCode != null) {
val code = p.item?.code