瀏覽代碼

update

master
CANCERYS\kw093 1 天之前
父節點
當前提交
a87edc50cb
共有 5 個檔案被更改,包括 21 行新增31 行删除
  1. +2
    -1
      src/main/java/com/ffii/fpsms/modules/jobOrder/entity/JoPickOrderRepository.kt
  2. +9
    -7
      src/main/java/com/ffii/fpsms/modules/jobOrder/service/JoPickOrderService.kt
  3. +1
    -0
      src/main/java/com/ffii/fpsms/modules/productProcess/entity/projections/ProductProcessInfo.kt
  4. +8
    -23
      src/main/java/com/ffii/fpsms/modules/productProcess/service/ProductProcessService.kt
  5. +1
    -0
      src/main/java/com/ffii/fpsms/modules/productProcess/web/model/SaveProductProcessRequest.kt

+ 2
- 1
src/main/java/com/ffii/fpsms/modules/jobOrder/entity/JoPickOrderRepository.kt 查看文件

@@ -16,5 +16,6 @@ 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?
fun findByJobOrderId(jobOrderId: Long): List<JoPickOrder>?

}

+ 9
- 7
src/main/java/com/ffii/fpsms/modules/jobOrder/service/JoPickOrderService.kt 查看文件

@@ -77,15 +77,17 @@ open class JoPickOrderService(
}
// Update JoPickOrder status to released
open fun updateHandledByForPickOrder(pickOrderId: Long, userId: Long?): List<JoPickOrder> {
open fun updateHandledByForPickOrder(pickOrderId: Long, userId: Long?, matchStatus: String?): List<JoPickOrder> {
val joPickOrders = joPickOrderRepository.findByPickOrderId(pickOrderId)
// Get pick order details to populate new fields
val pickOrder = pickOrderRepository.findById(pickOrderId).orElse(null)
joPickOrders.forEach {
it.handledBy = userId
it.matchStatus = JoPickOrderStatus.pending // Set initial status
if (matchStatus != null) { // 只在有传入状态时才修改
it.matchStatus = JoPickOrderStatus.valueOf(matchStatus)
}// Set initial status
// Set ticket release time (similar to pick order released date)
it.ticketReleaseTime = LocalDateTime.now()
@@ -113,8 +115,8 @@ open class JoPickOrderService(
// Update JoPickOrderRecord status to released
open fun updateRecordHandledByForPickOrder(pickOrderId: Long, userId: Long?): List<JoPickOrderRecord> {
val joPickOrderRecords = joPickOrderRecordRepository.findByPickOrderId(pickOrderId)
// Get pick order details to populate new fields
// Get pick order details to populate nw fields
val pickOrder = pickOrderRepository.findById(pickOrderId).orElse(null)
joPickOrderRecords.forEach {
@@ -934,7 +936,7 @@ open fun assignJobOrderPickOrderToUser(pickOrderId: Long, userId: Long): Message
pickOrderRepository.save(pickOrder)
// 修复:使用 this 而不是 joPickOrderService
this.updateHandledByForPickOrder(pickOrderId, userId)
this.updateHandledByForPickOrder(pickOrderId, userId, null)
this.updateRecordHandledByForPickOrder(pickOrderId, userId)
MessageResponse(
id = pickOrder.id,
@@ -975,7 +977,7 @@ open fun assignJobOrderPickOrderToUser(pickOrderId: Long, userId: Long): Message
}
pickOrder.assignTo = null
pickOrderRepository.save(pickOrder)
this.updateHandledByForPickOrder(pickOrderId, null)
this.updateHandledByForPickOrder(pickOrderId, null,null)
this.updateRecordHandledByForPickOrder(pickOrderId, null)
MessageResponse(
id = pickOrder.id,


+ 1
- 0
src/main/java/com/ffii/fpsms/modules/productProcess/entity/projections/ProductProcessInfo.kt 查看文件

@@ -27,6 +27,7 @@ data class ProductProcessInfo(
val isDense: Int?,
val isFloat: String?,
val scrapRate: Int?,
//val matchStatus: String?,
val allergicSubstance: String?,
val itemId: Long?,
val itemCode: String?,


+ 8
- 23
src/main/java/com/ffii/fpsms/modules/productProcess/service/ProductProcessService.kt 查看文件

@@ -44,6 +44,7 @@ import com.ffii.fpsms.modules.productProcess.entity.ProductionProcessIssue
import com.ffii.fpsms.modules.jobOrder.entity.JobTypeRepository
import com.ffii.fpsms.modules.pickOrder.entity.PickOrderRepository
import java.time.ZoneOffset
import com.ffii.fpsms.modules.jobOrder.entity.JoPickOrderRepository
@Service
@Transactional
open class ProductProcessService(
@@ -66,6 +67,7 @@ open class ProductProcessService(
private val equipmentDetailRepository: EquipmentDetailRepository,
private val jobTypeRepository: JobTypeRepository,
private val pickOrderRepository: PickOrderRepository,
private val joPickOrderRepository: JoPickOrderRepository,
) {
open fun findAll(pageable: Pageable): Page<ProductProcess> {
@@ -530,29 +532,7 @@ open class ProductProcessService(
val itemId = jobOrder?.bom?.item?.id
val planEndDate = jobOrder?.planEnd?.toLocalDate()

/*
val productionPriority = if (itemId != null && planEndDate != null) {
val scheduleLine = productionScheduleLineRepository
.findByItemIdAndProduceAtAndType(
itemId,
planEndDate.atStartOfDay(),
"detailed"
)
if (scheduleLine != null) {
// 计算 targetMinStock
val targetMinStock = scheduleLine.lastMonthAvgSales * 2
// 调整后的生产数量(与 generateDetailedScheduleByDay 逻辑一致)
val adjustedProdQty = scheduleLine.prodQty * 2
// 计算 difference(缺口)
val difference = -(targetMinStock + adjustedProdQty - scheduleLine.estCloseBal)
difference.toString()
} else {
"0"
}
} else {
"0"
}
*/

fun calculateColourScore(value: Int?): String {
return when (value) {
0 -> "淺"
@@ -578,6 +558,8 @@ open class ProductProcessService(
return productProcesses.map { process ->

val jobType = jobTypeRepository.findById(process.jobOrder?.jobTypeId?:0L).orElse(null)

//val joPickOrders = joPickOrderRepository.findByJobOrderId(process.jobOrder?.id?:0L)
println("jobType id ${process.jobOrder?.jobTypeId}")
ProductProcessInfo(
@@ -598,6 +580,7 @@ open class ProductProcessService(
scrapRate = bom?.scrapRate?:-1,
allergicSubstance = calculateAllergicSubstanceScore(bom?.allergicSubstances),
outputQtyUom = bom?.outputQtyUom?:"",
//matchStatus = joPickOrders?.matchStatus?.value?:"",
//outputQty = bom?.outputQty?.toInt()?:0,
outputQty = jobOrder?.reqQty?.toInt()?:0,
productProcessCode = process.productProcessCode?:"",
@@ -1098,6 +1081,7 @@ open class ProductProcessService(
val stockInLine = jobOrder?.stockInLines?.firstOrNull()
val stockInLineId = stockInLine?.id
val pickOrder = pickOrderRepository.findAllByJobOrder_Id(jobOrder?.id?:0L).firstOrNull()
val joPickOrders = joPickOrderRepository.findByPickOrderId(pickOrder?.id?:0L).firstOrNull()

//val silHandlerId = stockInLine?.escalationLog?.firstOrNull { it.status == "pending" }?.handler?.id

@@ -1107,6 +1091,7 @@ open class ProductProcessService(
status = productProcesses.status.value,
startTime = productProcesses.startTime,
endTime = productProcesses.endTime,
matchStatus = joPickOrders?.matchStatus?.value?:"",
RequiredQty = jobOrder?.reqQty?.toInt() ?: 0,
date = productProcesses.date,
bomId = productProcesses.bom?.id,


+ 1
- 0
src/main/java/com/ffii/fpsms/modules/productProcess/web/model/SaveProductProcessRequest.kt 查看文件

@@ -163,6 +163,7 @@ data class AllJoborderProductProcessInfoResponse(
val date: LocalDate?,
val bomId: Long?,
val itemName: String?,
val matchStatus: String?,
val RequiredQty: Int?,
val jobOrderId: Long?,
val jobOrderCode: String?,


Loading…
取消
儲存