From 9facf94d5be85bfc4e90c37d68cbb6e510d83da6 Mon Sep 17 00:00:00 2001 From: "CANCERYS\\kw093" Date: Mon, 6 Apr 2026 14:39:38 +0800 Subject: [PATCH] update --- .../service/DeliveryOrderService.kt | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/ffii/fpsms/modules/deliveryOrder/service/DeliveryOrderService.kt b/src/main/java/com/ffii/fpsms/modules/deliveryOrder/service/DeliveryOrderService.kt index f2ea549..12fd41d 100644 --- a/src/main/java/com/ffii/fpsms/modules/deliveryOrder/service/DeliveryOrderService.kt +++ b/src/main/java/com/ffii/fpsms/modules/deliveryOrder/service/DeliveryOrderService.kt @@ -1505,6 +1505,14 @@ open class DeliveryOrderService( pickOrderEntity.consoCode = consoCode pickOrderEntity.status = com.ffii.fpsms.modules.pickOrder.enums.PickOrderStatus.RELEASED pickOrderRepository.saveAndFlush(pickOrderEntity) + // 创建 stock out + val stockOut = StockOut().apply { + this.type = "do" + this.consoPickOrderCode = consoCode + this.status = StockOutStatus.PENDING.status + this.handler = request.userId + } + val savedStockOut = stockOutRepository.saveAndFlush(stockOut) // 创建 suggestions 和 hold inventory val lines = pickOrderLineRepository.findAllByPickOrderId(pickOrderEntity.id!!) @@ -1514,7 +1522,7 @@ open class DeliveryOrderService( val saveSuggestedPickLots = suggestedPickLotService.saveAll(suggestions.suggestedList) val insufficientCount = suggestions.suggestedList.count { it.suggestedLotLine == null } if (insufficientCount > 0) { - println("⚠️ WARNING: $insufficientCount items have insufficient stock (issues auto-created)") + println(" WARNING: $insufficientCount items have insufficient stock (issues auto-created)") } val inventoryLotLines = inventoryLotLineRepository.findAllByIdIn( saveSuggestedPickLots.mapNotNull { it.suggestedLotLine?.id } @@ -1531,16 +1539,10 @@ open class DeliveryOrderService( } inventoryLotLineRepository.saveAll(inventoryLotLines) - // 创建 stock out - val stockOut = StockOut().apply { - this.type = "do" - this.consoPickOrderCode = consoCode - this.status = StockOutStatus.PENDING.status - this.handler = request.userId - } - val savedStockOut = stockOutRepository.saveAndFlush(stockOut) - + + // No-lot (insufficient stock) lines are created in suggestedPickLotService.saveAll → createStockOutLineForSuggestion; skip here to avoid duplicates. saveSuggestedPickLots.forEach { lot -> + if (lot.suggestedLotLine == null) return@forEach val polId = lot.pickOrderLine?.id val illId = lot.suggestedLotLine?.id if (polId != null) {