|
|
@@ -336,7 +336,7 @@ open class PickOrderService( |
|
|
val pattern = "yyMMdd" |
|
|
val pattern = "yyMMdd" |
|
|
val formatter = DateTimeFormatter.ofPattern(pattern) |
|
|
val formatter = DateTimeFormatter.ofPattern(pattern) |
|
|
|
|
|
|
|
|
val prefix = "P" |
|
|
|
|
|
|
|
|
val prefix = "PI" |
|
|
val midfix = LocalDate.now().format(formatter) |
|
|
val midfix = LocalDate.now().format(formatter) |
|
|
val suffix = String.format(suffixFormat, 1) |
|
|
val suffix = String.format(suffixFormat, 1) |
|
|
|
|
|
|
|
|
@@ -2767,7 +2767,89 @@ open fun autoAssignAndReleasePickOrderByStoreAndTicket(storeId: String, ticketNo |
|
|
return emptyList() |
|
|
return emptyList() |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
open fun getFgPickOrdersByUserId(userId: Long): List<Map<String, Any?>> { |
|
|
|
|
|
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<Map<String, Any?>> { |
|
|
open fun getFgPickOrdersByPickOrderId(pickOrderId: Long): List<Map<String, Any?>> { |
|
|
try { |
|
|
try { |
|
|
println("🔍 Starting getFgPickOrdersByPickOrderId method with pickOrderId: $pickOrderId") |
|
|
println("🔍 Starting getFgPickOrdersByPickOrderId method with pickOrderId: $pickOrderId") |
|
|
|