|
|
|
@@ -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) |
|
|
|
|