Ver a proveniência

stock take status fix

fix負數倉
CANCERYS\kw093 há 2 semanas
ascendente
cometimento
453334fe33
1 ficheiros alterados com 11 adições e 11 eliminações
  1. +11
    -11
      src/main/java/com/ffii/fpsms/modules/stock/service/StockTakeRecordService.kt

+ 11
- 11
src/main/java/com/ffii/fpsms/modules/stock/service/StockTakeRecordService.kt Ver ficheiro

@@ -1615,6 +1615,9 @@ open class StockTakeRecordService(
)
}

/**
* FP-MTMS Version Checklist | Functions Ref. No. 70 | v1.0.0 | 2026-08-31
*/
open fun checkAndUpdateStockTakeStatus(stockTakeId: Long, stockTakeSection: String): Map<String, Any> {
try {
val stockTake = stockTakeRepository.findByIdAndDeletedIsFalse(stockTakeId)
@@ -1648,18 +1651,17 @@ open class StockTakeRecordService(
}
}

// 輪次預建後:以本 section 本輪「全部記錄是否已完成第一次盤點」為準(不再與即時庫存行逐行對齊)
val allLinesHaveRecords = stockTakeRecords.isNotEmpty() &&
stockTakeRecords.all { it.pickerFirstStockTakeQty != null }

// 以本 section 本輪「列狀態」升單頭。審核員單筆先核(無第一次數量)只要已是
// pass/completed 即算完成,不再要求每一筆都有 pickerFirstStockTakeQty。
val allRecordsPassed = stockTakeRecords.isNotEmpty() &&
stockTakeRecords.all { it.status == "pass" || it.status == "completed" }
val allRecordsCompleted = stockTakeRecords.isNotEmpty() &&
stockTakeRecords.all { it.status == "completed" }
// 6. 如果所有记录都已创建且都是 "pass",更新 stock take 状态为 "approving"
if (allLinesHaveRecords && allRecordsCompleted) {
val now = java.time.LocalDateTime.now()
if (allRecordsCompleted) {
stockTake.status = StockTakeStatus.COMPLETED
stockTake.planEnd = java.time.LocalDateTime.now()
stockTake.planEnd = now
stockTake.actualEnd = now
stockTakeRepository.save(stockTake)
println("Stock take $stockTakeId status updated to COMPLETED - all records are completed")
return mapOf(
@@ -1667,10 +1669,9 @@ open class StockTakeRecordService(
"message" to "Stock take status updated to COMPLETED",
"updated" to true
)
} else if (allLinesHaveRecords && allRecordsPassed) {
// 如果所有记录都已创建且都是 "pass" 或 "completed",更新 stock take 状态为 "approving"
} else if (allRecordsPassed) {
stockTake.status = StockTakeStatus.APPROVING
stockTake.actualEnd = java.time.LocalDateTime.now()
stockTake.actualEnd = now
stockTakeRepository.save(stockTake)

println("Stock take $stockTakeId status updated to APPROVING - all records are pass")
@@ -1684,7 +1685,6 @@ open class StockTakeRecordService(
"success" to true,
"message" to "Conditions not met for status update",
"updated" to false,
"allLinesHaveRecords" to allLinesHaveRecords,
"allRecordsPassed" to allRecordsPassed,
"allRecordsCompleted" to allRecordsCompleted
)


Carregando…
Cancelar
Guardar