Bladeren bron

update

master
CANCERYS\kw093 2 maanden geleden
bovenliggende
commit
c6d81c0469
2 gewijzigde bestanden met toevoegingen van 25 en 12 verwijderingen
  1. +18
    -10
      src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickExecutionIssueService.kt
  2. +7
    -2
      src/main/java/com/ffii/fpsms/modules/stock/service/SuggestedPickLotService.kt

+ 18
- 10
src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickExecutionIssueService.kt Bestand weergeven

@@ -5,7 +5,7 @@ import com.ffii.fpsms.modules.master.web.models.MessageResponse
import com.ffii.fpsms.modules.pickOrder.entity.PickExecutionIssue
import com.ffii.fpsms.modules.pickOrder.entity.PickExecutionIssueRepository
import com.ffii.fpsms.modules.stock.entity.StockOutLine
import com.ffii.fpsms.modules.pickOrder.entity.IssueCategory // ✅ 添加这行
import com.ffii.fpsms.modules.pickOrder.entity.IssueCategory // ✅ 添加这行
import com.ffii.fpsms.modules.pickOrder.entity.HandleStatus
import com.ffii.fpsms.modules.stock.entity.StockOutLIneRepository
import com.ffii.fpsms.modules.stock.entity.InventoryLotLine
@@ -20,14 +20,15 @@ import org.springframework.transaction.annotation.Propagation
import java.math.BigDecimal
import java.time.LocalDate
import java.time.LocalDateTime
import com.ffii.fpsms.modules.pickOrder.entity.PickOrderRepository
@Service
open class PickExecutionIssueService(
private val pickExecutionIssueRepository: PickExecutionIssueRepository,
private val stockOutLineRepository: StockOutLIneRepository,
private val inventoryLotLineRepository: InventoryLotLineRepository,
private val inventoryRepository: InventoryRepository,
private val suggestedPickLotService: SuggestedPickLotService
private val suggestedPickLotService: SuggestedPickLotService,
private val pickOrderRepository: PickOrderRepository
) {

@Transactional(rollbackFor = [Exception::class])
@@ -49,18 +50,21 @@ open class PickExecutionIssueService(
errorPosition = null
)
}
val pickOrder = pickOrderRepository.findById(request.pickOrderId).orElse(null)
// 2. 创建 pick execution issue 记录
val pickExecutionIssue = PickExecutionIssue(
issueNo = generateIssueNo(),
issueCategory = IssueCategory.valueOf(
request.issueCategory ?: "lot_issue"
),
id = null, // ✅ 添加 id
pickOrderId = request.pickOrderId,
pickOrderCode = request.pickOrderCode,
pickOrderCreateDate = request.pickOrderCreateDate,
pickExecutionDate = request.pickExecutionDate ?: LocalDate.now(),
pickOrderLineId = request.pickOrderLineId,
issueNo = generateIssueNo(),
joPickOrderId = pickOrder?.jobOrder?.id, // ✅ 添加
doPickOrderId = if (pickOrder?.type?.value == "do") pickOrder.id else null, // ✅ 添加
issueCategory = IssueCategory.valueOf(
request.issueCategory ?: "lot_issue"
),
itemId = request.itemId,
itemCode = request.itemCode,
itemDescription = request.itemDescription,
@@ -72,12 +76,16 @@ open class PickExecutionIssueService(
missQty = request.missQty,
badItemQty = request.badItemQty,
issueRemark = request.issueRemark,
pickerName = request.pickerName,
pickerName = request.pickerName, // ✅ 确保从 request 中获取
handleStatus = HandleStatus.pending, // ✅ 添加
handleDate = null, // ✅ 添加
handledBy = request.handledBy,
created = LocalDateTime.now(),
createdBy = "system",
version = 0, // ✅ 添加
modified = LocalDateTime.now(),
modifiedBy = "system"
modifiedBy = "system",
deleted = false // ✅ 添加
)

val savedIssue = pickExecutionIssueRepository.save(pickExecutionIssue)


+ 7
- 2
src/main/java/com/ffii/fpsms/modules/stock/service/SuggestedPickLotService.kt Bestand weergeven

@@ -114,8 +114,13 @@ open class SuggestedPickLotService(
// ✅ FIX: Calculate remaining quantity needed (not the full required quantity)
val stockOutLines = stockOutLIneRepository.findAllByPickOrderLineIdAndDeletedFalse(line.id!!)
val totalPickedQty = stockOutLines // Exclude rejected lines
.sumOf { it.qty ?: zero }
val totalPickedQty = stockOutLines
.filter {
it.status == "completed" ||
it.status == "partially_completed" ||
(it.status == "rejected" && (it.qty ?: zero) > zero) // ✅ 包含已 picked 的 rejected
}
.sumOf { it.qty ?: zero }
val requiredQty = line.qty ?: zero
val remainingQty = requiredQty.minus(totalPickedQty)


Laden…
Annuleren
Opslaan