| @@ -96,9 +96,18 @@ open class StockInLineService( | |||||
| open fun assignLotNo(): String { | open fun assignLotNo(): String { | ||||
| val prefix = "LT" | val prefix = "LT" | ||||
| val midfix = CodeGenerator.DEFAULT_MIDFIX | |||||
| val latestCode = inventoryLotRepository.findLatestLotNoByPrefix("${prefix}-${midfix}") | |||||
| return CodeGenerator.generateNo(prefix = prefix, latestCode = latestCode) | |||||
| // ✅ 每次调用都取今天的日期段 | |||||
| val midfix = LocalDate.now().format(CodeGenerator.DEFAULT_FORMATTER) | |||||
| // ✅ 用同一个 midfix 去查最新记录 | |||||
| val latestCode = inventoryLotRepository.findLatestLotNoByPrefix("$prefix-$midfix") | |||||
| // ✅ 并且把同一个 midfix 传给 CodeGenerator | |||||
| return CodeGenerator.generateNo( | |||||
| prefix = prefix, | |||||
| midfix = midfix, | |||||
| latestCode = latestCode | |||||
| ) | |||||
| } | } | ||||
| @Throws(IOException::class) | @Throws(IOException::class) | ||||
| @@ -791,7 +800,7 @@ open class StockInLineService( | |||||
| // Step 2: Create a row in stock_in_line table | // Step 2: Create a row in stock_in_line table | ||||
| val item = itemRepository.findById(request.itemId).orElseThrow() | val item = itemRepository.findById(request.itemId).orElseThrow() | ||||
| val newLotNo = request.lotNo ?: assignLotNo() | |||||
| val stockInLine = StockInLine().apply { | val stockInLine = StockInLine().apply { | ||||
| this.item = item | this.item = item | ||||
| this.itemNo = request.itemNo | this.itemNo = request.itemNo | ||||
| @@ -802,7 +811,7 @@ open class StockInLineService( | |||||
| this.productionDate = LocalDateTime.now() | this.productionDate = LocalDateTime.now() | ||||
| this.expiryDate = request.expiryDate | this.expiryDate = request.expiryDate | ||||
| this.status = StockInLineStatus.COMPLETE.status | this.status = StockInLineStatus.COMPLETE.status | ||||
| this.lotNo = request.lotNo ?: assignLotNo() | |||||
| this.lotNo = newLotNo | |||||
| this.productLotNo = request.productLotNo | this.productLotNo = request.productLotNo | ||||
| this.dnNo = request.dnNo | this.dnNo = request.dnNo | ||||
| this.type = request.type | this.type = request.type | ||||
| @@ -811,7 +820,7 @@ open class StockInLineService( | |||||
| // Step 3: Create a row in inventory_lot table | // Step 3: Create a row in inventory_lot table | ||||
| val lotNo = request.lotNo ?: assignLotNo() | |||||
| val lotNo = newLotNo | |||||
| val inventoryLot = InventoryLot().apply { | val inventoryLot = InventoryLot().apply { | ||||
| this.item = item | this.item = item | ||||
| this.stockInLine = savedStockInLine | this.stockInLine = savedStockInLine | ||||