|
|
|
@@ -1362,8 +1362,9 @@ return MessageResponse( |
|
|
|
dop.deliveryNoteCode = CodeGenerator.generateNo(prefix = prefix, midfix = midfix, latestCode = latestCode) |
|
|
|
} |
|
|
|
deliveryOrderPickOrderRepository.save(dop) |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
markDeliveryOrdersCompletedForDeliveryOrderPickOrder(deliveryOrderPickOrderId) |
|
|
|
return MessageResponse( |
|
|
|
id = dop.id, |
|
|
|
code = "SUCCESS", |
|
|
|
@@ -2276,6 +2277,35 @@ return MessageResponse( |
|
|
|
""".trimIndent(), |
|
|
|
mapOf("dopId" to dopId, "deliveryNoteCode" to newDeliveryNoteCode), |
|
|
|
) |
|
|
|
markDeliveryOrdersCompletedForDeliveryOrderPickOrder(dopId) |
|
|
|
} |
|
|
|
/** |
|
|
|
* When a workbench ticket ([delivery_order_pick_order]) is completed, align linked [delivery_order] headers. |
|
|
|
*/ |
|
|
|
private fun markDeliveryOrdersCompletedForDeliveryOrderPickOrder(dopId: Long) { |
|
|
|
if (dopId <= 0L) return |
|
|
|
val rows = try { |
|
|
|
jdbcDao.queryForList( |
|
|
|
""" |
|
|
|
SELECT DISTINCT po.doId AS doId |
|
|
|
FROM fpsmsdb.pick_order po |
|
|
|
WHERE po.deliveryOrderPickOrderId = :dopId |
|
|
|
AND po.deleted = 0 |
|
|
|
AND po.doId IS NOT NULL |
|
|
|
""".trimIndent(), |
|
|
|
mapOf("dopId" to dopId), |
|
|
|
) |
|
|
|
} catch (_: Exception) { |
|
|
|
emptyList() |
|
|
|
} |
|
|
|
for (row in rows) { |
|
|
|
val doId = (row["doId"] as? Number)?.toLong() ?: continue |
|
|
|
val deliveryOrder = deliveryOrderRepository.findByIdAndDeletedIsFalse(doId) ?: continue |
|
|
|
if (deliveryOrder.status == DeliveryOrderStatus.COMPLETED) continue |
|
|
|
deliveryOrder.status = DeliveryOrderStatus.COMPLETED |
|
|
|
deliveryOrder.completeDate = LocalDateTime.now() |
|
|
|
deliveryOrderRepository.save(deliveryOrder) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private fun checkWorkbenchPickOrderLineCompleted(pickOrderLineId: Long, allStockOutLines: List<StockOutLineInfo>) { |
|
|
|
|