Bladeren bron

[Job Order] Search Job Order By Page

master
cyril.tsui 1 maand geleden
bovenliggende
commit
9cffb64efa
6 gewijzigde bestanden met toevoegingen van 81 en 0 verwijderingen
  1. +5
    -0
      src/main/java/com/ffii/fpsms/modules/jobOrder/entity/JobOrderRepository.kt
  2. +15
    -0
      src/main/java/com/ffii/fpsms/modules/jobOrder/entity/projections/JobOrderInfo.kt
  3. +17
    -0
      src/main/java/com/ffii/fpsms/modules/jobOrder/service/JobOrderService.kt
  4. +22
    -0
      src/main/java/com/ffii/fpsms/modules/jobOrder/web/JobOrderController.kt
  5. +8
    -0
      src/main/java/com/ffii/fpsms/modules/jobOrder/web/model/SearchJobOrderInfoRequest.kt
  6. +14
    -0
      src/main/resources/db/changelog/changes/20250717_01_cyril/01_update_job_order_bom_material.sql

+ 5
- 0
src/main/java/com/ffii/fpsms/modules/jobOrder/entity/JobOrderRepository.kt Bestand weergeven

@@ -1,6 +1,9 @@
package com.ffii.fpsms.modules.jobOrder.entity

import com.ffii.core.support.AbstractRepository
import com.ffii.fpsms.modules.jobOrder.entity.projections.JobOrderInfo
import org.springframework.data.domain.Page
import org.springframework.data.domain.Pageable
import org.springframework.data.jpa.repository.Query
import org.springframework.stereotype.Repository

@@ -10,4 +13,6 @@ interface JobOrderRepository : AbstractRepository<JobOrder, Long> {
select jo.code from JobOrder jo where jo.code like :prefix% order by jo.code desc limit 1
""")
fun findLatestCodeByPrefix(prefix: String): String?

fun findJobOrderInfoByCodeContainsAndBomNameContainsAndDeletedIsFalseOrderByIdDesc(code: String, bomName: String, pageable: Pageable): Page<JobOrderInfo>
}

+ 15
- 0
src/main/java/com/ffii/fpsms/modules/jobOrder/entity/projections/JobOrderInfo.kt Bestand weergeven

@@ -0,0 +1,15 @@
package com.ffii.fpsms.modules.jobOrder.entity.projections

import org.springframework.beans.factory.annotation.Value
import java.math.BigDecimal

interface JobOrderInfo {
val id: Long;
val code: String;
@get:Value("#{target.bom.name}")
val name: String;
val reqQty: BigDecimal;
@get:Value("#{target.bom.outputQtyUom}")
val uom: String;
val status: String;
}

+ 17
- 0
src/main/java/com/ffii/fpsms/modules/jobOrder/service/JobOrderService.kt Bestand weergeven

@@ -1,12 +1,16 @@
package com.ffii.fpsms.modules.jobOrder.service

import com.ffii.core.response.RecordsRes
import com.ffii.fpsms.modules.jobOrder.entity.JobOrder
import com.ffii.fpsms.modules.jobOrder.entity.JobOrderRepository
import com.ffii.fpsms.modules.jobOrder.entity.projections.JobOrderInfo
import com.ffii.fpsms.modules.jobOrder.web.model.CreateJobOrderRequest
import com.ffii.fpsms.modules.jobOrder.web.model.SearchJobOrderInfoRequest
import com.ffii.fpsms.modules.master.entity.ProductionScheduleLineRepository
import com.ffii.fpsms.modules.master.service.BomService
import com.ffii.fpsms.modules.master.web.models.MessageResponse
import com.ffii.fpsms.modules.user.service.UserService
import org.springframework.data.domain.PageRequest
import org.springframework.stereotype.Service
import java.time.LocalDate
import java.time.LocalDateTime
@@ -20,6 +24,19 @@ open class JobOrderService(
val userService: UserService,
val productionScheduleLineRepository: ProductionScheduleLineRepository,
) {
open fun allJobOrdersByPage(request: SearchJobOrderInfoRequest): RecordsRes<JobOrderInfo> {
val pageable = PageRequest.of(request.pageNum ?: 0, request.pageSize ?: 10);

val response = jobOrderRepository.findJobOrderInfoByCodeContainsAndBomNameContainsAndDeletedIsFalseOrderByIdDesc(
code = request.code ?: "",
bomName = request.name ?: "",
pageable = pageable
)

val records = response.content
val total = response.totalElements
return RecordsRes<JobOrderInfo>(records, total.toInt());
}
open fun assignJobNo(): String {
val suffixFormat = "%03d"
val pattern = "yyyyMMdd"


+ 22
- 0
src/main/java/com/ffii/fpsms/modules/jobOrder/web/JobOrderController.kt Bestand weergeven

@@ -0,0 +1,22 @@
package com.ffii.fpsms.modules.jobOrder.web

import com.ffii.core.response.RecordsRes
import com.ffii.fpsms.modules.jobOrder.entity.projections.JobOrderInfo
import com.ffii.fpsms.modules.jobOrder.service.JobOrderService
import com.ffii.fpsms.modules.jobOrder.web.model.SearchJobOrderInfoRequest
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.ModelAttribute
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RestController

@RestController
@RequestMapping("/jo")
class JobOrderController(
private val jobOrderService: JobOrderService,
) {

@GetMapping("/getRecordByPage")
fun allJobOrdersByPage(@ModelAttribute request: SearchJobOrderInfoRequest): RecordsRes<JobOrderInfo> {
return jobOrderService.allJobOrdersByPage(request);
}
}

+ 8
- 0
src/main/java/com/ffii/fpsms/modules/jobOrder/web/model/SearchJobOrderInfoRequest.kt Bestand weergeven

@@ -0,0 +1,8 @@
package com.ffii.fpsms.modules.jobOrder.web.model

data class SearchJobOrderInfoRequest(
val code: String?,
val name: String?,
val pageSize: Int?,
val pageNum: Int?,
)

+ 14
- 0
src/main/resources/db/changelog/changes/20250717_01_cyril/01_update_job_order_bom_material.sql Bestand weergeven

@@ -0,0 +1,14 @@
-- liquibase formatted sql
-- changeset cyril:update_job_order_bom_material

ALTER TABLE `job_order_bom_material`
DROP FOREIGN KEY `FK_JOBM_TO_SUGGESTED_PICK_LOT_ON_SUGGESTED_PICK_LOT_ID`;
ALTER TABLE `job_order_bom_material`
CHANGE COLUMN `suggestedPickLotId` `stockOutLineId` INT NULL DEFAULT NULL ,
DROP INDEX `FK_JOBM_TO_SUGGESTED_PICK_LOT_ON_SUGGESTED_PICK_LOT_ID` ,
ADD INDEX `FK_JOBM_TO_STOCK_OUT_LINE_ID` (`stockOutLineId` ASC) VISIBLE;
;
ALTER TABLE `job_order_bom_material`
ADD CONSTRAINT `FK_JOBM_TO_STOCK_OUT_LINE_ON_STOCK_OUT_LINE_ID`
FOREIGN KEY (`stockOutLineId`)
REFERENCES `stock_out_line` (`id`);

Laden…
Annuleren
Opslaan