Browse Source

update

master
CANCERYS\kw093 1 day ago
parent
commit
a87edc50cb
5 changed files with 21 additions and 31 deletions
  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 View File

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


fun findByPickOrderId(pickOrderId: Long): List<JoPickOrder> fun findByPickOrderId(pickOrderId: Long): List<JoPickOrder>
fun findByPickOrderIdAndItemId(pickOrderId: Long, itemId: Long): java.util.Optional<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 View File

@@ -77,15 +77,17 @@ open class JoPickOrderService(
} }
// Update JoPickOrder status to released // 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) val joPickOrders = joPickOrderRepository.findByPickOrderId(pickOrderId)
// Get pick order details to populate new fields // Get pick order details to populate new fields
val pickOrder = pickOrderRepository.findById(pickOrderId).orElse(null) val pickOrder = pickOrderRepository.findById(pickOrderId).orElse(null)
joPickOrders.forEach { joPickOrders.forEach {
it.handledBy = userId 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) // Set ticket release time (similar to pick order released date)
it.ticketReleaseTime = LocalDateTime.now() it.ticketReleaseTime = LocalDateTime.now()
@@ -113,8 +115,8 @@ open class JoPickOrderService(
// Update JoPickOrderRecord status to released // Update JoPickOrderRecord status to released
open fun updateRecordHandledByForPickOrder(pickOrderId: Long, userId: Long?): List<JoPickOrderRecord> { open fun updateRecordHandledByForPickOrder(pickOrderId: Long, userId: Long?): List<JoPickOrderRecord> {
val joPickOrderRecords = joPickOrderRecordRepository.findByPickOrderId(pickOrderId) 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) val pickOrder = pickOrderRepository.findById(pickOrderId).orElse(null)
joPickOrderRecords.forEach { joPickOrderRecords.forEach {
@@ -934,7 +936,7 @@ open fun assignJobOrderPickOrderToUser(pickOrderId: Long, userId: Long): Message
pickOrderRepository.save(pickOrder) pickOrderRepository.save(pickOrder)
// 修复:使用 this 而不是 joPickOrderService // 修复:使用 this 而不是 joPickOrderService
this.updateHandledByForPickOrder(pickOrderId, userId)
this.updateHandledByForPickOrder(pickOrderId, userId, null)
this.updateRecordHandledByForPickOrder(pickOrderId, userId) this.updateRecordHandledByForPickOrder(pickOrderId, userId)
MessageResponse( MessageResponse(
id = pickOrder.id, id = pickOrder.id,
@@ -975,7 +977,7 @@ open fun assignJobOrderPickOrderToUser(pickOrderId: Long, userId: Long): Message
} }
pickOrder.assignTo = null pickOrder.assignTo = null
pickOrderRepository.save(pickOrder) pickOrderRepository.save(pickOrder)
this.updateHandledByForPickOrder(pickOrderId, null)
this.updateHandledByForPickOrder(pickOrderId, null,null)
this.updateRecordHandledByForPickOrder(pickOrderId, null) this.updateRecordHandledByForPickOrder(pickOrderId, null)
MessageResponse( MessageResponse(
id = pickOrder.id, id = pickOrder.id,


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

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


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

@@ -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.jobOrder.entity.JobTypeRepository
import com.ffii.fpsms.modules.pickOrder.entity.PickOrderRepository import com.ffii.fpsms.modules.pickOrder.entity.PickOrderRepository
import java.time.ZoneOffset import java.time.ZoneOffset
import com.ffii.fpsms.modules.jobOrder.entity.JoPickOrderRepository
@Service @Service
@Transactional @Transactional
open class ProductProcessService( open class ProductProcessService(
@@ -66,6 +67,7 @@ open class ProductProcessService(
private val equipmentDetailRepository: EquipmentDetailRepository, private val equipmentDetailRepository: EquipmentDetailRepository,
private val jobTypeRepository: JobTypeRepository, private val jobTypeRepository: JobTypeRepository,
private val pickOrderRepository: PickOrderRepository, private val pickOrderRepository: PickOrderRepository,
private val joPickOrderRepository: JoPickOrderRepository,
) { ) {
open fun findAll(pageable: Pageable): Page<ProductProcess> { open fun findAll(pageable: Pageable): Page<ProductProcess> {
@@ -530,29 +532,7 @@ open class ProductProcessService(
val itemId = jobOrder?.bom?.item?.id val itemId = jobOrder?.bom?.item?.id
val planEndDate = jobOrder?.planEnd?.toLocalDate() 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 { fun calculateColourScore(value: Int?): String {
return when (value) { return when (value) {
0 -> "淺" 0 -> "淺"
@@ -578,6 +558,8 @@ open class ProductProcessService(
return productProcesses.map { process -> return productProcesses.map { process ->


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

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


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


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

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


Loading…
Cancel
Save