diff --git a/src/main/java/com/ffii/fpsms/modules/deliveryOrder/service/DoPickOrderService.kt b/src/main/java/com/ffii/fpsms/modules/deliveryOrder/service/DoPickOrderService.kt index 39609d8..659b5e5 100644 --- a/src/main/java/com/ffii/fpsms/modules/deliveryOrder/service/DoPickOrderService.kt +++ b/src/main/java/com/ffii/fpsms/modules/deliveryOrder/service/DoPickOrderService.kt @@ -63,7 +63,7 @@ class DoPickOrderService( datePrefix } // ✅ 修改搜索模式为新格式 - val searchPattern = "T-${shortDatePrefix}-${sanitizedStoreId}-" // T-20250915-4F- + val searchPattern = "TI-${shortDatePrefix}-${sanitizedStoreId}-" // T-20250915-4F- val todayTickets = doPickOrderRepository.findByTicketNoStartingWith(searchPattern) println("🔍 DEBUG: Found ${todayTickets.size} existing tickets with prefix $searchPattern") todayTickets.forEach { ticket -> @@ -71,7 +71,7 @@ class DoPickOrderService( } val nextNumber = (todayTickets.size + 1).toString().padStart(3, '0') // ✅ 修改生成格式 - val ticketNumber = "T-${datePrefix}-${sanitizedStoreId}-${nextNumber}" // T-20250915-4F-001 + val ticketNumber = "TI-${datePrefix}-${sanitizedStoreId}-${nextNumber}" // T-20250915-4F-001 println("🔍 DEBUG: Generated ticket number: $ticketNumber") return ticketNumber } catch (e: Exception) { diff --git a/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JoPickOrderService.kt b/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JoPickOrderService.kt index df72483..60f9d42 100644 --- a/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JoPickOrderService.kt +++ b/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JoPickOrderService.kt @@ -1135,7 +1135,7 @@ open fun recordSecondScanIssue(request: SecondScanIssueRequest): MessageResponse val pickExecutionIssue = PickExecutionIssue( id = null, // ✅ 1 pickOrderId = request.pickOrderId, // ✅ 2 - pickOrderCode = pickOrderCode ?: "P-${request.pickOrderId}", // ✅ 3 + pickOrderCode = pickOrderCode ?: "PI-${request.pickOrderId}", // ✅ 3 pickOrderCreateDate = pickOrderCreateDate, // ✅ 4 pickExecutionDate = LocalDate.now(), // ✅ 5 pickOrderLineId = pickOrderLineId, // ✅ 6 diff --git a/src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickOrderService.kt b/src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickOrderService.kt index 3cf6a4b..c4495d6 100644 --- a/src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickOrderService.kt +++ b/src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickOrderService.kt @@ -336,7 +336,7 @@ open class PickOrderService( val pattern = "yyMMdd" val formatter = DateTimeFormatter.ofPattern(pattern) - val prefix = "P" + val prefix = "PI" val midfix = LocalDate.now().format(formatter) val suffix = String.format(suffixFormat, 1) @@ -2767,7 +2767,89 @@ open fun autoAssignAndReleasePickOrderByStoreAndTicket(storeId: String, ticketNo return emptyList() } } - + open fun getFgPickOrdersByUserId(userId: Long): List> { + try { + println("🔍 Starting getFgPickOrdersByUserId with userId: $userId") + + // ✅ 完全修复:使用 shop 表的正确字段 + val sql = """ + SELECT + dpo.id as doPickOrderId, + dpo.pick_order_id as pickOrderId, + dpo.do_order_id as deliveryOrderId, + dpo.store_id as storeId, + dpo.ticket_no as ticketNo, + dpo.TruckLanceCode as truckLanceCode, + dpo.truck_departure_time as DepartureTime, + dpo.ShopCode as shopCode, + dpo.ShopName as shopName, + dpo.delivery_order_code as deliveryNo, + dpo.pick_order_code as pickOrderCode, + po.consoCode as pickOrderConsoCode, + po.targetDate as pickOrderTargetDate, + po.status as pickOrderStatus, + do.orderDate as deliveryDate, + s.id as shopId, + s.name as shopNameFromShop, + CONCAT_WS(', ', s.addr1, s.addr2, s.addr3, s.addr4, s.district) as shopAddress, + (SELECT COUNT(*) FROM pick_order_line pol WHERE pol.poId = po.id AND pol.deleted = false) as numberOfCartons + FROM do_pick_order dpo + JOIN pick_order po ON po.id = dpo.pick_order_id + LEFT JOIN delivery_order do ON do.id = dpo.do_order_id + LEFT JOIN shop s ON s.id = dpo.shop_id + WHERE po.assignTo = :userId + AND po.type = 'do' + AND po.status IN ('assigned', 'released', 'picking') + AND po.deleted = false + AND dpo.deleted = false + ORDER BY po.targetDate DESC, po.code ASC + """.trimIndent() + + println("🔍 Executing SQL for FG pick orders by userId: $sql") + println("🔍 With parameters: userId = $userId") + + val results = jdbcDao.queryForList(sql, mapOf("userId" to userId)) + + if (results.isEmpty()) { + println("❌ No active FG pick orders found for user: $userId") + return emptyList() + } + + println("🔍 Found ${results.size} active FG pick orders for user: $userId") + + val formattedResults = results.map { row -> + mapOf( + "pickOrderId" to (row["pickOrderId"] ?: 0L), + "pickOrderCode" to (row["pickOrderCode"] ?: ""), + "pickOrderConsoCode" to (row["pickOrderConsoCode"] ?: ""), + "pickOrderTargetDate" to (row["pickOrderTargetDate"]?.toString() ?: ""), + "pickOrderStatus" to (row["pickOrderStatus"] ?: ""), + "deliveryOrderId" to (row["deliveryOrderId"] ?: 0L), + "deliveryNo" to (row["deliveryNo"] ?: ""), + "deliveryDate" to (row["deliveryDate"]?.toString() ?: ""), + "shopId" to (row["shopId"] ?: 0L), + "shopCode" to (row["shopCode"] ?: ""), + "shopName" to (row["shopName"] ?: row["shopNameFromShop"] ?: ""), + "shopAddress" to (row["shopAddress"] ?: ""), + "shopPoNo" to "", + "numberOfCartons" to (row["numberOfCartons"] ?: 0), + "truckLanceCode" to (row["truckLanceCode"] ?: ""), + "DepartureTime" to (row["DepartureTime"]?.toString() ?: ""), + "ticketNo" to (row["ticketNo"] ?: ""), + "storeId" to (row["storeId"] ?: ""), + "qrCodeData" to (row["pickOrderId"] ?: 0L) + ) + } + + println("✅ Built ${formattedResults.size} FG pick orders for user: $userId") + return formattedResults + + } catch (e: Exception) { + println("❌ Error in getFgPickOrdersByUserId: ${e.message}") + e.printStackTrace() + return emptyList() + } + } open fun getFgPickOrdersByPickOrderId(pickOrderId: Long): List> { try { println("🔍 Starting getFgPickOrdersByPickOrderId method with pickOrderId: $pickOrderId") diff --git a/src/main/java/com/ffii/fpsms/modules/pickOrder/web/PickOrderController.kt b/src/main/java/com/ffii/fpsms/modules/pickOrder/web/PickOrderController.kt index de897eb..3078bba 100644 --- a/src/main/java/com/ffii/fpsms/modules/pickOrder/web/PickOrderController.kt +++ b/src/main/java/com/ffii/fpsms/modules/pickOrder/web/PickOrderController.kt @@ -257,10 +257,9 @@ class PickOrderController( fun getFgPickOrders(): List> { return pickOrderService.getFgPickOrders() } - - @GetMapping("/fg-pick-orders/{pickOrderId}") - fun getFgPickOrdersByPickOrderId(@PathVariable pickOrderId: Long): List> { - return pickOrderService.getFgPickOrdersByPickOrderId(pickOrderId) + @GetMapping("/fg-pick-orders/{userId}") + fun getFgPickOrdersByUserId(@PathVariable userId: Long): List> { + return pickOrderService.getFgPickOrdersByUserId(userId) } @GetMapping("/all-lots-with-details-no-auto-assign/{userId}")