Browse Source

update

master
CANCERYS\kw093 3 weeks ago
parent
commit
4be7c97572
4 changed files with 30 additions and 4 deletions
  1. +1
    -0
      src/main/java/com/ffii/fpsms/modules/jobOrder/entity/JoPickOrderRepository.kt
  2. +6
    -2
      src/main/java/com/ffii/fpsms/modules/productProcess/entity/projections/ProductProcessInfo.kt
  3. +21
    -2
      src/main/java/com/ffii/fpsms/modules/productProcess/service/ProductProcessService.kt
  4. +2
    -0
      src/main/java/com/ffii/fpsms/modules/productProcess/web/model/SaveProductProcessRequest.kt

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

@@ -16,4 +16,5 @@ interface JoPickOrderRepository : JpaRepository<JoPickOrder, Long> {

fun findByPickOrderId(pickOrderId: Long): List<JoPickOrder>
fun findByPickOrderIdAndItemId(pickOrderId: Long, itemId: Long): java.util.Optional<JoPickOrder>
fun findByJobOrderId(jobOrderId: Long): JoPickOrder?
}

+ 6
- 2
src/main/java/com/ffii/fpsms/modules/productProcess/entity/projections/ProductProcessInfo.kt View File

@@ -64,8 +64,10 @@ data class ProductProcessLineInfo(
@JsonFormat(pattern = "yyyy-MM-dd")
val startTime: LocalDateTime?,
@JsonFormat(pattern = "yyyy-MM-dd")
val endTime: LocalDateTime?
val endTime: LocalDateTime?,
)


data class jobOrderLineInfo(
val id: Long?,
val itemId: Long?,
@@ -75,5 +77,7 @@ data class jobOrderLineInfo(
val stockQty: Int?,
val uom: String?,
val shortUom: String?,
val availableStatus: String?
val availableStatus: String?,
val bomProcessId: Long?,
val bomProcessSeqNo: Long?
)

+ 21
- 2
src/main/java/com/ffii/fpsms/modules/productProcess/service/ProductProcessService.kt View File

@@ -36,6 +36,8 @@ import com.ffii.fpsms.modules.stock.entity.enum.InventoryLotLineStatus
import com.ffii.fpsms.modules.jobOrder.enums.JobOrderStatus
import com.ffii.fpsms.modules.stock.service.StockInLineService
import com.ffii.fpsms.modules.stock.web.model.SaveStockInLineRequest
import com.ffii.fpsms.modules.master.entity.BomProcessMaterialRepository
import com.ffii.fpsms.modules.master.entity.BomMaterialRepository
@Service
@Transactional
open class ProductProcessService(
@@ -53,6 +55,8 @@ open class ProductProcessService(
private val inventoryLotLineRepository: InventoryLotLineRepository,
private val productionScheduleLineRepository: ProductionScheduleLineRepository,
private val stockInLineService: StockInLineService,
private val bomProcessMaterialRepository: BomProcessMaterialRepository,
private val bomMaterialRepository: BomMaterialRepository,
) {
open fun findAll(pageable: Pageable): Page<ProductProcess> {
@@ -473,6 +477,7 @@ open class ProductProcessService(
val bomProcess = bomProcessRepository.findByBomId(jobOrder?.bom?.id?:0L)
// get bom materials
val bomMaterials = jobOrderBomMaterialRepository.findAllByJobOrderId(jobOrder?.id?:0)
val bomProcessIds = bomProcess.mapNotNull { it.id }
val itemIds = bomMaterials.mapNotNull { it.item?.id }
// calculate each item's available stock
@@ -591,6 +596,7 @@ open class ProductProcessService(
outputFromProcessUom = line.outputFromProcessUom?:"",
startTime = line.startTime,
endTime = line.endTime
)
},
jobOrderLines = bomMaterials.map { line ->
@@ -598,7 +604,16 @@ open class ProductProcessService(
val stockQty = stockQtyMap[itemId]?.toInt() ?: 0
val uom = line.uom
val shortUom = uom?.udfShortDesc ?: uom?.udfudesc ?: ""
// 首先通过 bomId 和 itemId 找到 BomMaterial
val bomMaterial = bom?.id?.let { bomId ->
bomMaterialRepository.findByBomIdAndItemId(bomId, itemId)
}
// 然后遍历 bomProcessIds 找到第一个匹配的 BomProcessMaterial
val bomProcessMaterial = bomMaterial?.id?.let { bomMaterialId ->
bomProcessIds.firstNotNullOfOrNull { bomProcessId ->
bomProcessMaterialRepository.findByBomProcessIdAndBomMaterialId(bomProcessId, bomMaterialId)
}
}
// 计算 availableStatus
val availableStatus = if (stockQty >= (line.reqQty?.toInt() ?: 0)) {
"available"
@@ -615,7 +630,9 @@ open class ProductProcessService(
stockQty = stockQty,
uom = uom?.udfudesc ?: "",
shortUom = shortUom,
availableStatus = availableStatus
availableStatus = availableStatus,
bomProcessId = bomProcessMaterial?.bomProcess?.id?:0,
bomProcessSeqNo = bomProcessMaterial?.bomProcess?.seqNo?:0
)
}
)
@@ -750,6 +767,7 @@ open class ProductProcessService(
operatorId = productProcessLine.operator?.id?:0,
operatorName = productProcessLine.operator?.name?:"",
handlerId = productProcessLine.handler?.id?:0,
durationInMinutes = productProcessLine.bomProcess?.durationInMinute?:0,
seqNo = productProcessLine.seqNo?:0,
name = productProcessLine.name?:"",
description = productProcessLine.description?:"",
@@ -883,6 +901,7 @@ open fun updateProductProcessLineQty(request: UpdateProductProcessLineQtyRequest
status = productProcesses.status.value,
startTime = productProcesses.startTime,
endTime = productProcesses.endTime,
RequiredQty = jobOrder?.reqQty?.toInt() ?: 0,
date = productProcesses.date,
bomId = productProcesses.bom?.id,
itemName = productProcesses.item?.name,


+ 2
- 0
src/main/java/com/ffii/fpsms/modules/productProcess/web/model/SaveProductProcessRequest.kt View File

@@ -114,6 +114,7 @@ data class JobOrderProcessLineDetailResponse(
val equipmentType: String?,
val operatorName: String?,
val handlerId: Long?,
val durationInMinutes: Int?,
val seqNo: Long?,
val name: String?,
val description: String?,
@@ -143,6 +144,7 @@ data class AllJoborderProductProcessInfoResponse(
val date: LocalDate?,
val bomId: Long?,
val itemName: String?,
val RequiredQty: Int?,
val jobOrderId: Long?,
val jobOrderCode: String?,
val productProcessLineCount: Int,


Loading…
Cancel
Save