Browse Source

update

master
CANCERYS\kw093 2 months ago
parent
commit
52e8aae2a5
11 changed files with 79 additions and 50 deletions
  1. +2
    -1
      src/main/java/com/ffii/fpsms/modules/jobOrder/entity/JoPickOrderRecordRepository.kt
  2. +57
    -42
      src/main/java/com/ffii/fpsms/modules/jobOrder/service/JoPickOrderService.kt
  3. +10
    -7
      src/main/java/com/ffii/fpsms/modules/jobOrder/web/JobOrderController.kt
  4. +10
    -0
      src/main/java/com/ffii/fpsms/modules/jobOrder/web/model/UpdateMatchStatusRequest.kt
  5. +0
    -0
      src/main/resources/db/changelog/changes/20250926_01_enson/01_altertable_enson.sql
  6. +0
    -0
      src/main/resources/db/changelog/changes/20250927_01_enson/01_altertable_enson.sql
  7. +0
    -0
      src/main/resources/db/changelog/changes/20250927_01_enson/02_altertable_enson.sql
  8. +0
    -0
      src/main/resources/db/changelog/changes/20250927_01_enson/03_fix_bug.sql
  9. +0
    -0
      src/main/resources/db/changelog/changes/20251005_01_enson/01_altertable_enson.sql
  10. +0
    -0
      src/main/resources/db/changelog/changes/20251005_01_enson/02_altertable_enson.sql
  11. +0
    -0
      src/main/resources/db/changelog/changes/20251005_08_enson/01_altertable_enson1.sql

+ 2
- 1
src/main/java/com/ffii/fpsms/modules/jobOrder/entity/JoPickOrderRecordRepository.kt View File

@@ -8,9 +8,10 @@ import org.springframework.data.jpa.repository.Query
import org.springframework.stereotype.Repository
import java.io.Serializable
import java.time.LocalDateTime
import java.util.Optional
@Repository
interface JoPickOrderRecordRepository : JpaRepository<JoPickOrderRecord, Long> {
fun findByPickOrderId(pickOrderId: Long): List<JoPickOrderRecord>
//fun findByTicketNoStartingWith(ticketPrefix: String): List<JoPickOrderRecord>
fun findByPickOrderIdAndItemId(pickOrderId: Long, itemId: Long): Optional<JoPickOrderRecord>
}

+ 57
- 42
src/main/java/com/ffii/fpsms/modules/jobOrder/service/JoPickOrderService.kt View File

@@ -452,9 +452,9 @@ open class JoPickOrderService(
"routerArea" to row["routerArea"],
"routerRoute" to row["routerRoute"],
"uomShortDesc" to row["uomShortDesc"],
"match_status" to row["match_status"],
"match_by" to row["match_by"],
"match_qty" to row["match_qty"]
"matchStatus" to row["match_status"],
"matchBy" to row["match_by"],
"matchQty" to row["match_qty"]
)
}
)
@@ -727,9 +727,9 @@ open fun getCompletedJobOrderLotsHierarchical(userId: Long): Map<String, Any?> {
"routerArea" to row["routerArea"],
"routerRoute" to row["routerRoute"],
"uomShortDesc" to row["uomShortDesc"],
"match_status" to row["match_status"],
"match_by" to row["match_by"],
"match_qty" to row["match_qty"]
"matchStatus" to row["match_status"],
"matchBy" to row["match_by"],
"matchQty" to row["match_qty"]
)
}
)
@@ -905,50 +905,65 @@ open fun assignJobOrderPickOrderToUser(pickOrderId: Long, userId: Long): Message
}
}
// ✅ Fix the updateMatchStatus method
open fun updateMatchStatus(pickOrderId: Long, itemId: Long): MessageResponse {
try {
println("=== Debug: updateMatchStatus ===")
println("pickOrderId: $pickOrderId, itemId: $itemId")
val joPickOrder = joPickOrderRepository.findByPickOrderIdAndItemId(pickOrderId, itemId)
if (joPickOrder.isEmpty) {
open fun updateMatchStatus(pickOrderId: Long, itemId: Long, userId: Long, qty: Int): MessageResponse {
try {
println("=== Debug: updateMatchStatus ===")
println("pickOrderId: $pickOrderId, itemId: $itemId, userId: $userId, qty: $qty")
val joPickOrder = joPickOrderRepository.findByPickOrderIdAndItemId(pickOrderId, itemId)
if (joPickOrder.isEmpty) {
return MessageResponse(
id = null,
name = null,
code = "ERROR",
type = "NOT_FOUND",
message = "Job Order Pick Order not found for pickOrderId: $pickOrderId, itemId: $itemId",
errorPosition = null
)
}
val joPickOrderEntity = joPickOrder.get()
// ✅ 设置扫描状态和相关字段
joPickOrderEntity.matchStatus = JoPickOrderStatus.scanned
joPickOrderEntity.matchBy = userId
joPickOrderEntity.matchQty = qty // ✅ 使用传递的 qty
joPickOrderRepository.save(joPickOrderEntity)
// ✅ 同时更新 jo_pick_order_record
val joPickOrderRecord = joPickOrderRecordRepository.findByPickOrderIdAndItemId(pickOrderId, itemId)
if (joPickOrderRecord.isPresent) {
val recordEntity = joPickOrderRecord.get()
recordEntity.matchStatus = JoPickOrderStatus.scanned
recordEntity.matchBy = userId
recordEntity.matchQty = qty // ✅ 使用相同的 qty
joPickOrderRecordRepository.save(recordEntity)
}
println("✅ Updated match status: pickOrderId=$pickOrderId, itemId=$itemId, matchQty=$qty")
return MessageResponse(
id = null,
name = null,
code = "SUCCESS",
type = "UPDATED",
message = "Second QR scan status updated to scanned with quantity $qty",
errorPosition = null
)
} catch (e: Exception) {
println("❌ Error updating second QR scan status: ${e.message}")
return MessageResponse(
id = null,
name = null,
code = "ERROR",
type = "NOT_FOUND",
message = "Job Order Pick Order not found for pickOrderId: $pickOrderId, itemId: $itemId",
type = "EXCEPTION",
message = "Error updating second QR scan status: ${e.message}",
errorPosition = null
)
}
val joPickOrderEntity = joPickOrder.get()
joPickOrderEntity.matchStatus = JoPickOrderStatus.scanned // ✅ Use enum instead of string
joPickOrderRepository.save(joPickOrderEntity)
return MessageResponse(
id = null,
name = null,
code = "SUCCESS",
type = "UPDATED",
message = "Second QR scan status updated to checked",
errorPosition = null
)
} catch (e: Exception) {
println("❌ Error updating second QR scan status: ${e.message}")
return MessageResponse(
id = null,
name = null,
code = "ERROR",
type = "EXCEPTION",
message = "Error updating second QR scan status: ${e.message}",
errorPosition = null
)
}
}

open fun submitSecondScanQty(request: SecondScanSubmitRequest): MessageResponse {
try {
println("=== Debug: submitSecondScanQty ===")


+ 10
- 7
src/main/java/com/ffii/fpsms/modules/jobOrder/web/JobOrderController.kt View File

@@ -32,7 +32,8 @@ import org.springframework.context.NoSuchMessageException
import java.io.OutputStream
import java.io.UnsupportedEncodingException
import java.text.ParseException

import org.springframework.web.bind.annotation.*
import org.springframework.web.bind.annotation.RequestParam
@RestController
@RequestMapping("/jo")
class JobOrderController(
@@ -116,12 +117,14 @@ class JobOrderController(
return joPickOrderService.assignJobOrderPickOrderToUser(pickOrderId, userId)
}

@PostMapping("/second-scan-qr/{pickOrderId}/{itemId}")
fun updateMatchStatus(
@PathVariable pickOrderId: Long,
@PathVariable itemId: Long
): MessageResponse {
return joPickOrderService.updateMatchStatus(pickOrderId, itemId)
@PostMapping("/update-match-status")
fun updateMatchStatus(@RequestBody request: UpdateMatchStatusRequest): MessageResponse {
return joPickOrderService.updateMatchStatus(
request.pickOrderId,
request.itemId,
request.userId,
request.qty
)
}

@PostMapping("/second-scan-submit/{pickOrderId}/{itemId}")


+ 10
- 0
src/main/java/com/ffii/fpsms/modules/jobOrder/web/model/UpdateMatchStatusRequest.kt View File

@@ -0,0 +1,10 @@
package com.ffii.fpsms.modules.jobOrder.web.model

import jakarta.validation.constraints.NotNull

data class UpdateMatchStatusRequest(
val pickOrderId: Long,
val itemId: Long,
val userId: Long,
val qty: Int
)

src/main/resources/db/changelog/changes/202510926_01_enson/01_altertable_enson.sql → src/main/resources/db/changelog/changes/20250926_01_enson/01_altertable_enson.sql View File


src/main/resources/db/changelog/changes/202510927_01_enson/01_altertable_enson.sql → src/main/resources/db/changelog/changes/20250927_01_enson/01_altertable_enson.sql View File


src/main/resources/db/changelog/changes/202510927_01_enson/02_altertable_enson.sql → src/main/resources/db/changelog/changes/20250927_01_enson/02_altertable_enson.sql View File


src/main/resources/db/changelog/changes/202510927_01_enson/03_fix_bug.sql → src/main/resources/db/changelog/changes/20250927_01_enson/03_fix_bug.sql View File


src/main/resources/db/changelog/changes/202511005_01_enson/01_altertable_enson.sql → src/main/resources/db/changelog/changes/20251005_01_enson/01_altertable_enson.sql View File


src/main/resources/db/changelog/changes/202511005_01_enson/02_altertable_enson.sql → src/main/resources/db/changelog/changes/20251005_01_enson/02_altertable_enson.sql View File


src/main/resources/db/changelog/changes/202511005_08_enson/01_altertable_enson1.sql → src/main/resources/db/changelog/changes/20251005_08_enson/01_altertable_enson1.sql View File


Loading…
Cancel
Save