diff --git a/src/main/java/com/ffii/fpsms/m18/M18Config.kt b/src/main/java/com/ffii/fpsms/m18/M18Config.kt index 32c0f28..2919ae8 100644 --- a/src/main/java/com/ffii/fpsms/m18/M18Config.kt +++ b/src/main/java/com/ffii/fpsms/m18/M18Config.kt @@ -11,61 +11,61 @@ open class M18Config { // Account // @Value("\${m18.config.grant-type}") - var GRANT_TYPE: String = "password"; + val GRANT_TYPE: String = "password"; // @Value("\${m18.config.client-id}") - var CLIENT_ID: String = "M2Y1OGYxMmQtZDRiOS00OTA4LTgyNTktZDRkNzEzNWVkMzRm"; + val CLIENT_ID: String = "M2Y1OGYxMmQtZDRiOS00OTA4LTgyNTktZDRkNzEzNWVkMzRm"; // @Value("\${m18.config.client-secret}") - var CLIENT_SECRET: String = "M2Y2YjQzYzQtZTc2Mi00OTFhLTkwYmItYmJhMzFjZjEyYmY5"; + val CLIENT_SECRET: String = "M2Y2YjQzYzQtZTc2Mi00OTFhLTkwYmItYmJhMzFjZjEyYmY5"; // @Value("\${m18.config.username}") - var USERNAME: String = "testingMTMS"; + val USERNAME: String = "testingMTMS"; // @Value("\${m18.config.password}") - var PASSWORD: String = "db25f2fc14cd2d2b1e7af307241f548fb03c312a"; + val PASSWORD: String = "db25f2fc14cd2d2b1e7af307241f548fb03c312a"; - var BASE_URL: String = "http://16.162.251.126/jsf/rfws" + val BASE_URL: String = "http://16.162.251.126/jsf/rfws" // Supplier // @Value("\${m18.config.supplier-not.material-po}") // var MATERIAL_PO_SUPPLIER_NOT: List = listOf("P06", "P07", "T62"); // If need oem type - var MATERIAL_PO_SUPPLIER_NOT: List = listOf("P06", "P07"); + val MATERIAL_PO_SUPPLIER_NOT: List = listOf("P06", "P07"); // @Value("\${m18.config.supplier.shop-po}") - var SHOP_PO_SUPPLIER: List = listOf("P06", "P07"); + val SHOP_PO_SUPPLIER: List = listOf("P06", "P07"); // @Value("\${m18.config.supplier.oem-po}") - var OEM_PO_SUPPLIER: List = listOf("T62"); + val OEM_PO_SUPPLIER: List = listOf("T62"); // Series // @Value("\${m18.config.seriesId.pp}") - var SERIESID_PP: Long = 26; + val SERIESID_PP: Long = 26; // @Value("\${m18.config.seriesId.pf}") - var SERIESID_PF: Long = 33; + val SERIESID_PF: Long = 33; // @Value("\${m18.config.seriesId.sc}") - var SERIESID_SC: Long = 27; + val SERIESID_SC: Long = 27; // @Value("\${m18.config.seriesId.se}") - var SERIESID_SE: Long = 28; + val SERIESID_SE: Long = 28; // @Value("\${m18.config.seriesId.sf}") - var SERIESID_SF: Long = 70; + val SERIESID_SF: Long = 70; // @Value("\${m18.config.seriesId.sr}") - var SERIESID_SR: Long = 29; + val SERIESID_SR: Long = 29; // BE // @Value("\${m18.config.beId.pp}") - var BEID_PP: Long = 29; + val BEID_PP: Long = 29; // @Value("\${m18.config.beId.pf}") - var BEID_PF: Long = 27; + val BEID_PF: Long = 27; // @Value("\${m18.config.beId.toa}") - var BEID_TOA: Long = 1; + val BEID_TOA: Long = 1; // Fetch var ACCESS_TOKEN: String? = null; diff --git a/src/main/java/com/ffii/fpsms/m18/service/M18PurchaseOrderService.kt b/src/main/java/com/ffii/fpsms/m18/service/M18PurchaseOrderService.kt index a8271d4..ce56baf 100644 --- a/src/main/java/com/ffii/fpsms/m18/service/M18PurchaseOrderService.kt +++ b/src/main/java/com/ffii/fpsms/m18/service/M18PurchaseOrderService.kt @@ -6,6 +6,7 @@ import com.ffii.fpsms.m18.M18Config import com.ffii.fpsms.m18.enums.M18DataLogStatus import com.ffii.fpsms.m18.model.* import com.ffii.fpsms.m18.utils.CommonUtils +import com.ffii.fpsms.m18.web.models.M18TestPoRequest import com.ffii.fpsms.modules.master.service.ItemUomService import com.ffii.fpsms.modules.master.service.ItemsService import com.ffii.fpsms.modules.master.service.ShopService @@ -38,8 +39,8 @@ open class M18PurchaseOrderService( val lastModifyDateStart = "2025-05-14 14:00:00" val lastModifyDateEnd = "2025-05-14 14:30:00" - val lastModifyDateConds = - "lastModifyDate=largerOrEqual=${lastModifyDateStart}=and=lastModifyDate=lessOrEqual=${lastModifyDateEnd}" +// val lastModifyDateConds = +// "lastModifyDate=largerOrEqual=${lastModifyDateStart}=and=lastModifyDate=lessOrEqual=${lastModifyDateEnd}" // val lastModifyDate = LocalDateTime.now().minusMinutes(30) // val commonConds = // "(beId=equal=${m18Config.BEID_PF}=or=beId=equal=${m18Config.BEID_PP}=or=beId=equal=${m18Config.BEID_TOA})=and=lastModifyDate=largerOrEqual=${lastModifyDate}" @@ -49,9 +50,10 @@ open class M18PurchaseOrderService( val M18_FETCH_PURCHASE_ORDER_LIST_API = "/search/search" // Include material po, shop po, oem po - open fun getPurchaseOrdersWithType(): M18PurchaseOrderListResponseWithType? { + open fun getPurchaseOrdersWithType(request: M18TestPoRequest): M18PurchaseOrderListResponseWithType? { val purchaseOrders = M18PurchaseOrderListResponseWithType(mutableListOf()) - + val lastModifyDateConds = + "lastModifyDate=largerOrEqual=${request.dateFrom ?: lastModifyDateStart}=and=lastModifyDate=lessOrEqual=${request.dateTo ?: lastModifyDateEnd}" // Material PO val materialPoBuyers = commonUtils.listToString(listOf(m18Config.BEID_PP, m18Config.BEID_PF), "beId=equal=", "=or=") @@ -155,9 +157,9 @@ open class M18PurchaseOrderService( return purchaseOrder } - open fun savePurchaseOrders() { + open fun savePurchaseOrders(request: M18TestPoRequest) { logger.info("--------------------------------------------Start - Saving M18 Purchase Order--------------------------------------------") - val purchaseOrdersWithType = getPurchaseOrdersWithType() + val purchaseOrdersWithType = getPurchaseOrdersWithType(request) val examplePurchaseOrders = listOf(4764034L) val successList = mutableListOf() diff --git a/src/main/java/com/ffii/fpsms/m18/web/M18TestController.kt b/src/main/java/com/ffii/fpsms/m18/web/M18TestController.kt index 1d8574a..31a9807 100644 --- a/src/main/java/com/ffii/fpsms/m18/web/M18TestController.kt +++ b/src/main/java/com/ffii/fpsms/m18/web/M18TestController.kt @@ -5,18 +5,20 @@ import com.ffii.fpsms.m18.M18Config import com.ffii.fpsms.m18.service.M18MasterDataService import com.ffii.fpsms.m18.service.M18PurchaseOrderService import com.ffii.fpsms.m18.service.M18PurchaseQuotationService +import com.ffii.fpsms.m18.web.models.M18TestPoRequest import com.ffii.fpsms.modules.master.entity.ItemUom import com.ffii.fpsms.modules.master.entity.Items -import com.ffii.fpsms.modules.master.entity.Shop import com.ffii.fpsms.modules.master.entity.ShopRepository -import com.ffii.fpsms.modules.master.entity.projections.SearchId import com.ffii.fpsms.modules.master.enums.ShopType import com.ffii.fpsms.modules.master.service.ItemUomService import com.ffii.fpsms.modules.master.service.ItemsService import com.ffii.fpsms.modules.master.service.ShopService +import jakarta.validation.Valid import org.slf4j.Logger import org.slf4j.LoggerFactory import org.springframework.web.bind.annotation.GetMapping +import org.springframework.web.bind.annotation.PostMapping +import org.springframework.web.bind.annotation.RequestBody import org.springframework.web.bind.annotation.RequestMapping import org.springframework.web.bind.annotation.RequestParam import org.springframework.web.bind.annotation.RestController @@ -57,6 +59,7 @@ class M18TestController ( println(response?.uom?.id) return response } + // --------------------------------------------- Master Data --------------------------------------------- /// @GetMapping("/master-data") fun m18MasterData() { @@ -69,7 +72,6 @@ class M18TestController ( m18MasterDataService.saveBoms() } - // --------------------------------------------- Master Data --------------------------------------------- /// @GetMapping("/product") fun m18Products() { logger.info("Access token: ${m18Config.ACCESS_TOKEN}") @@ -107,10 +109,10 @@ class M18TestController ( } // --------------------------------------------- Purchase Order --------------------------------------------- /// - @GetMapping("/po") - fun m18PO() { + @PostMapping("/po") + fun m18PO(@Valid @RequestBody request: M18TestPoRequest) { logger.info("Access token: ${m18Config.ACCESS_TOKEN}") - m18PurchaseOrderService.savePurchaseOrders() + m18PurchaseOrderService.savePurchaseOrders(request) } // --------------------------------------------- Purchase Quotation --------------------------------------------- /// diff --git a/src/main/java/com/ffii/fpsms/m18/web/models/M18TestRequest.kt b/src/main/java/com/ffii/fpsms/m18/web/models/M18TestRequest.kt new file mode 100644 index 0000000..9bc9bb3 --- /dev/null +++ b/src/main/java/com/ffii/fpsms/m18/web/models/M18TestRequest.kt @@ -0,0 +1,6 @@ +package com.ffii.fpsms.m18.web.models + +data class M18TestPoRequest( + val dateFrom: String?, + val dateTo: String?, +) diff --git a/src/main/java/com/ffii/fpsms/modules/common/mail/web/models/MailSave.kt b/src/main/java/com/ffii/fpsms/modules/common/mail/web/models/MailSaveRequest.kt similarity index 100% rename from src/main/java/com/ffii/fpsms/modules/common/mail/web/models/MailSave.kt rename to src/main/java/com/ffii/fpsms/modules/common/mail/web/models/MailSaveRequest.kt diff --git a/src/main/java/com/ffii/fpsms/modules/common/mail/web/models/WorkHourRecords.kt b/src/main/java/com/ffii/fpsms/modules/common/mail/web/models/WorkHourRecords.kt deleted file mode 100644 index c5b6b68..0000000 --- a/src/main/java/com/ffii/fpsms/modules/common/mail/web/models/WorkHourRecords.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.ffii.fpsms.modules.common.mail.web.models - -import java.time.LocalDate - -data class WorkHourRecords( - val staffId: Long, - val recordDate: LocalDate, - val hours: Double, -)