From ef263594c486f30d83e46a8755fb792dfc95f536 Mon Sep 17 00:00:00 2001 From: "MSI\\derek" Date: Fri, 18 Jul 2025 15:17:44 +0800 Subject: [PATCH] update --- .../ffii/fpsms/modules/master/entity/Bom.kt | 2 ++ .../modules/master/entity/BomMaterial.kt | 1 + .../fpsms/modules/master/entity/BomProcess.kt | 2 ++ .../modules/master/service/BomService.kt | 15 ++++++++----- .../modules/master/service/ItemsService.kt | 22 +++++++++++++++++++ .../modules/master/web/ItemsController.kt | 4 ++++ .../modules/pickOrder/enums/PickOrderEnum.kt | 1 + .../pickOrder/service/PickOrderService.kt | 4 ++-- .../web/models/SavePickOrderRequest.kt | 5 +++-- .../fpsms/modules/stock/entity/Inventory.kt | 2 ++ 10 files changed, 48 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/ffii/fpsms/modules/master/entity/Bom.kt b/src/main/java/com/ffii/fpsms/modules/master/entity/Bom.kt index c11fb85..c9ba0dd 100644 --- a/src/main/java/com/ffii/fpsms/modules/master/entity/Bom.kt +++ b/src/main/java/com/ffii/fpsms/modules/master/entity/Bom.kt @@ -1,5 +1,6 @@ package com.ffii.fpsms.modules.master.entity +import com.fasterxml.jackson.annotation.JsonBackReference import com.fasterxml.jackson.annotation.JsonManagedReference import com.ffii.core.entity.BaseEntity import jakarta.persistence.* @@ -21,6 +22,7 @@ open class Bom : BaseEntity() { @Column open var isDense: Int? = null + @JsonBackReference @OneToOne @JoinColumn(name = "itemId") open var item: Items? = null diff --git a/src/main/java/com/ffii/fpsms/modules/master/entity/BomMaterial.kt b/src/main/java/com/ffii/fpsms/modules/master/entity/BomMaterial.kt index 3b9903b..04650d7 100644 --- a/src/main/java/com/ffii/fpsms/modules/master/entity/BomMaterial.kt +++ b/src/main/java/com/ffii/fpsms/modules/master/entity/BomMaterial.kt @@ -12,6 +12,7 @@ import java.time.LocalDateTime @Table(name = "bom_material") @Entity open class BomMaterial : BaseEntity() { + @JsonBackReference @ManyToOne @JoinColumn(name = "itemId") open var item: Items? = null diff --git a/src/main/java/com/ffii/fpsms/modules/master/entity/BomProcess.kt b/src/main/java/com/ffii/fpsms/modules/master/entity/BomProcess.kt index ff3c81e..3b47146 100644 --- a/src/main/java/com/ffii/fpsms/modules/master/entity/BomProcess.kt +++ b/src/main/java/com/ffii/fpsms/modules/master/entity/BomProcess.kt @@ -1,5 +1,6 @@ package com.ffii.fpsms.modules.master.entity +import com.fasterxml.jackson.annotation.JsonBackReference import com.fasterxml.jackson.annotation.JsonInclude import com.fasterxml.jackson.annotation.JsonManagedReference import com.ffii.core.entity.BaseEntity @@ -42,6 +43,7 @@ open class BomProcess : BaseEntity() { @NotNull @ManyToOne(optional = false) + @JsonBackReference @JoinColumn(name = "bomId", nullable = false) open var bom: Bom? = null diff --git a/src/main/java/com/ffii/fpsms/modules/master/service/BomService.kt b/src/main/java/com/ffii/fpsms/modules/master/service/BomService.kt index ed98ff0..63d4748 100644 --- a/src/main/java/com/ffii/fpsms/modules/master/service/BomService.kt +++ b/src/main/java/com/ffii/fpsms/modules/master/service/BomService.kt @@ -380,8 +380,10 @@ open class BomService( // println("hi") break } else { - println(tempCell.cellType) - println(tempCell.toString()) +// println(startRowIndex) +// println(startColumnIndex) +// println(tempCell.cellType) +// println(tempCell.toString()) try { when (startColumnIndex) { 0 -> { @@ -488,6 +490,7 @@ open class BomService( val resolver = PathMatchingResourcePatternResolver() // val excels = resolver.getResources("bomImport/*.xlsx") val excels = resolver.getResources("file:C:/Users/2Fi/Desktop/test folder/*.xlsx") +// val excels = resolver.getResources("file:C:/Users/2Fi/Desktop/Third Wave of BOM Excel/*.xlsx") println("size: ${excels.size}") val logExcel = ClassPathResource("excelTemplate/bom_excel_issue_log.xlsx") val templateInputStream = logExcel.inputStream @@ -497,11 +500,11 @@ open class BomService( /////// for outputing issue log //////////// // excels.forEachIndexed { index, resource -> - //get sheet +//// get sheet // println(resource.filename) -// val templateInputStream = resource.inputStream -// val workbook: Workbook = XSSFWorkbook(templateInputStream) -// val sheet: Sheet = workbook.getSheetAt(0) +// val templateInputStream1 = resource.inputStream +// val workbook1: Workbook = XSSFWorkbook(templateInputStream1) +// val sheet: Sheet = workbook1.getSheetAt(0) // println("sheetName") // println(sheet.sheetName) // val successPath: Path = Paths.get("C:/Users/2Fi/Desktop/success/${resource.filename}") diff --git a/src/main/java/com/ffii/fpsms/modules/master/service/ItemsService.kt b/src/main/java/com/ffii/fpsms/modules/master/service/ItemsService.kt index e01a97d..6cd3676 100644 --- a/src/main/java/com/ffii/fpsms/modules/master/service/ItemsService.kt +++ b/src/main/java/com/ffii/fpsms/modules/master/service/ItemsService.kt @@ -28,6 +28,25 @@ open class ItemsService( return items } + open fun allConsumables(): List> { + val args = mapOf( + "type" to "mat" + ) + val sql = StringBuilder("select" + + " i.id, " + + " concat(i.code , ' - ' , i.name) as label, " + + " uc.id as uomId, " + + " uc.code as uom " + + " from items i " + + " left join item_uom iu on iu.itemId = i.id and iu.deleted = false and iu.salesUnit = true " + + " left join uom_conversion uc on uc.id = iu.uomId " + + " where i.deleted = false " + + " and i.type = :type " + ) + + return jdbcDao.queryForList(sql.toString(), args); + } + open fun getRoughScheduleList(): List> { val now = LocalDateTime.now() val lastMonthStart = now.minusMonths(1).withDayOfMonth(1) // Start of last month @@ -164,6 +183,7 @@ open class ItemsService( val item = if (request.m18Id != null) findByM18Id(request.m18Id) ?: Items() else if (request.id != null && request.id > 0) itemsRepository.findByIdAndDeletedFalse(request.id) ?: Items() else Items() + logger.info("item: $item") if (item.m18LastModifyDate == request.m18LastModifyDate) { return MessageResponse( id = item.id, @@ -187,7 +207,9 @@ open class ItemsService( m18Id = request.m18Id ?: this.m18Id m18LastModifyDate = request.m18LastModifyDate ?: this.m18LastModifyDate } + logger.info("saving item: $item") val savedItem = itemsRepository.saveAndFlush(item) + logger.info("save success") return MessageResponse( id = savedItem.id, name = savedItem.name, diff --git a/src/main/java/com/ffii/fpsms/modules/master/web/ItemsController.kt b/src/main/java/com/ffii/fpsms/modules/master/web/ItemsController.kt index 25e17f3..b1d114f 100644 --- a/src/main/java/com/ffii/fpsms/modules/master/web/ItemsController.kt +++ b/src/main/java/com/ffii/fpsms/modules/master/web/ItemsController.kt @@ -24,6 +24,10 @@ class ItemsController( return itemsService.allItems() } + @GetMapping("/consumables") + fun allConsumables(): List> { + return itemsService.allConsumables() + } // @GetMapping("/getRecordByPage") // fun getAllItemsByPage(@RequestBody filterRequest: HttpServletRequest): RecordsRes> { // val pageSize = filterRequest.getParameter("pageSize").toString().toInt(); // Default to 10 if not provided diff --git a/src/main/java/com/ffii/fpsms/modules/pickOrder/enums/PickOrderEnum.kt b/src/main/java/com/ffii/fpsms/modules/pickOrder/enums/PickOrderEnum.kt index 2edac82..9acd613 100644 --- a/src/main/java/com/ffii/fpsms/modules/pickOrder/enums/PickOrderEnum.kt +++ b/src/main/java/com/ffii/fpsms/modules/pickOrder/enums/PickOrderEnum.kt @@ -9,6 +9,7 @@ enum class PickOrderStatus(val value: String) { } enum class PickOrderType(val value: String) { + Consumable ("consumable"), MATERIAL ("material"), JOB_ORDER ("jo"), DELIVERY_ORDER ("do") diff --git a/src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickOrderService.kt b/src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickOrderService.kt index fbe193a..b2e2353 100644 --- a/src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickOrderService.kt +++ b/src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickOrderService.kt @@ -59,14 +59,14 @@ open class PickOrderService( val code = assignPickCode() val pickOrder = PickOrder().apply { this.code = code - this.targetDate = request.targetDate + this.targetDate = request.targetDate.atStartOfDay() this.type = request.type this.status = PickOrderStatus.PENDING } val savedPickOrder = saveAndFlush(pickOrder) val polEntries = request.pickOrderLine.map { val item = itemsRepository.findById(it.itemId).orElseThrow() - val uom = uomConversionRepository.findById(it.uomId).orElseThrow() + val uom = uomConversionRepository.findByCodeAndDeletedFalse(it.uom) PickOrderLine().apply { this.pickOrder = savedPickOrder this.item = item diff --git a/src/main/java/com/ffii/fpsms/modules/pickOrder/web/models/SavePickOrderRequest.kt b/src/main/java/com/ffii/fpsms/modules/pickOrder/web/models/SavePickOrderRequest.kt index 7f8c1be..6ba0373 100644 --- a/src/main/java/com/ffii/fpsms/modules/pickOrder/web/models/SavePickOrderRequest.kt +++ b/src/main/java/com/ffii/fpsms/modules/pickOrder/web/models/SavePickOrderRequest.kt @@ -8,11 +8,12 @@ import java.time.LocalDateTime data class SavePickOrderLineRequest ( val itemId: Long, val qty: BigDecimal, - val uomId: Long +// val uomId: Long + val uom: String, ) data class SavePickOrderRequest ( val type: PickOrderType, - var targetDate: LocalDateTime, + var targetDate: LocalDate, val pickOrderLine: List ) diff --git a/src/main/java/com/ffii/fpsms/modules/stock/entity/Inventory.kt b/src/main/java/com/ffii/fpsms/modules/stock/entity/Inventory.kt index 9641001..503d478 100644 --- a/src/main/java/com/ffii/fpsms/modules/stock/entity/Inventory.kt +++ b/src/main/java/com/ffii/fpsms/modules/stock/entity/Inventory.kt @@ -1,5 +1,6 @@ package com.ffii.fpsms.modules.stock.entity +import com.fasterxml.jackson.annotation.JsonBackReference import com.ffii.core.entity.BaseEntity import com.ffii.fpsms.modules.master.entity.Currency import com.ffii.fpsms.modules.master.entity.Items @@ -27,6 +28,7 @@ open class Inventory: BaseEntity(){ @Column(name = "price") open var price: BigDecimal? = null + @JsonBackReference @ManyToOne @JoinColumn(name = "itemId") open var item: Items? = null