@@ -5,6 +5,7 @@ import com.ffii.fpsms.api.service.ApiCallerService | |||
import com.ffii.fpsms.m18.M18Config | |||
import com.ffii.fpsms.m18.model.* | |||
import com.ffii.fpsms.m18.utils.CommonUtils | |||
import com.ffii.fpsms.m18.web.models.M18TestMasterDateRequest | |||
import com.ffii.fpsms.modules.master.entity.UomConversion | |||
import com.ffii.fpsms.modules.master.enums.ShopType | |||
import com.ffii.fpsms.modules.master.service.* | |||
@@ -35,8 +36,8 @@ open class M18MasterDataService( | |||
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss") | |||
// M18 Conditions | |||
val lastModifyDate = LocalDate.now().minusDays(1) | |||
val lastModifyDateConds = "lastModifyDate=largerThan=$lastModifyDate" | |||
// val lastModifyDate = LocalDate.now().minusDays(1) | |||
// val lastModifyDateConds = "lastModifyDate=largerThan=$lastModifyDate" | |||
val seriesIdList = | |||
listOf(m18Config.SERIESID_SC, m18Config.SERIESID_SE, m18Config.SERIESID_SF, m18Config.SERIESID_SR) | |||
val seriesIdConds = | |||
@@ -61,11 +62,21 @@ open class M18MasterDataService( | |||
stSearch: String?, | |||
params: String? = null, | |||
conds: String? = null, | |||
request: M18TestMasterDateRequest, | |||
): T? { | |||
val lastModifyDateFromConds = request.modifiedDateFrom?.let { "lastModifyDate=largerOrEqual=${it}" } | |||
val lastModifyDateToConds = request.modifiedDateTo?.let{ "lastModifyDate=lessOrEqual=${it}" } | |||
val haveFromAndTo = lastModifyDateFromConds != null && lastModifyDateToConds != null | |||
val finalConds = if (lastModifyDateFromConds == null && lastModifyDateToConds == null) { | |||
conds | |||
} else { | |||
conds + "=and=(${lastModifyDateFromConds ?: ""}${if(haveFromAndTo) "=and=" else ""}${lastModifyDateToConds ?: ""})" | |||
} | |||
val request = M18CommonListRequest( | |||
stSearch = stSearch, | |||
params = params, | |||
conds = conds | |||
conds = finalConds | |||
) | |||
val response = apiCallerService.get<T, M18CommonListRequest>( | |||
@@ -95,12 +106,13 @@ open class M18MasterDataService( | |||
} | |||
// --------------------------------------------- Product --------------------------------------------- /// | |||
open fun getProducts(): M18ProductListResponse? { | |||
open fun getProducts(request: M18TestMasterDateRequest): M18ProductListResponse? { | |||
// seems no beId | |||
return getList<M18ProductListResponse>( | |||
stSearch = StSearchType.PRODUCT.value, | |||
params = null, | |||
conds = seriesIdConds | |||
conds = seriesIdConds, | |||
request = request | |||
) | |||
// val itemsParams = M18CommonListRequest( | |||
// stSearch = StSearchType.PRODUCT.value, | |||
@@ -125,9 +137,9 @@ open class M18MasterDataService( | |||
) | |||
} | |||
open fun saveProducts() { | |||
open fun saveProducts(request: M18TestMasterDateRequest) { | |||
logger.info("--------------------------------------------Start - Saving M18 Products / Materials--------------------------------------------") | |||
val items = getProducts() | |||
val items = getProducts(request) | |||
val exampleProducts = listOf<Long>(10946L, 3825L) | |||
val successList = mutableListOf<Long>() | |||
@@ -222,11 +234,12 @@ open class M18MasterDataService( | |||
} | |||
// --------------------------------------------- Vendor --------------------------------------------- /// | |||
open fun getVendors(): M18VendorListResponse? { | |||
open fun getVendors(request: M18TestMasterDateRequest): M18VendorListResponse? { | |||
return getList<M18VendorListResponse>( | |||
stSearch = StSearchType.VENDOR.value, | |||
params = null, | |||
conds = beIdConds | |||
conds = beIdConds, | |||
request = request | |||
) | |||
} | |||
@@ -239,9 +252,9 @@ open class M18MasterDataService( | |||
) | |||
} | |||
open fun saveVendors() { | |||
open fun saveVendors(request: M18TestMasterDateRequest) { | |||
logger.info("--------------------------------------------Start - Saving M18 Vendors--------------------------------------------") | |||
val vendors = getVendors() | |||
val vendors = getVendors(request) | |||
val exampleVendors = listOf<Long>(191L) | |||
val successList = mutableListOf<Long>() | |||
@@ -304,12 +317,13 @@ open class M18MasterDataService( | |||
} | |||
// --------------------------------------------- Unit (UoM) --------------------------------------------- /// | |||
open fun getUnits(): M18UnitListResponse? { | |||
open fun getUnits(request: M18TestMasterDateRequest): M18UnitListResponse? { | |||
// seems no beId | |||
return getList<M18UnitListResponse>( | |||
stSearch = StSearchType.UNIT.value, | |||
params = null, | |||
conds = null | |||
conds = null, | |||
request = request | |||
) | |||
} | |||
@@ -322,9 +336,9 @@ open class M18MasterDataService( | |||
) | |||
} | |||
open fun saveUnits() { | |||
open fun saveUnits(request: M18TestMasterDateRequest) { | |||
logger.info("--------------------------------------------Start - Saving M18 Units--------------------------------------------") | |||
val units = getUnits() | |||
val units = getUnits(request) | |||
val successTransformList = mutableListOf<Long>() | |||
val successSaveList = mutableListOf<Long>() | |||
@@ -387,11 +401,12 @@ open class M18MasterDataService( | |||
} | |||
// --------------------------------------------- Currency --------------------------------------------- /// | |||
open fun getCurrencies(): M18CurrencyListResponse? { | |||
open fun getCurrencies(request: M18TestMasterDateRequest): M18CurrencyListResponse? { | |||
return getList<M18CurrencyListResponse>( | |||
stSearch = StSearchType.CURRENCY.value, | |||
params = null, | |||
conds = null | |||
conds = null, | |||
request = request | |||
) | |||
} | |||
@@ -404,9 +419,9 @@ open class M18MasterDataService( | |||
) | |||
} | |||
open fun saveCurrencies() { | |||
open fun saveCurrencies(request: M18TestMasterDateRequest) { | |||
logger.info("--------------------------------------------Start - Saving M18 Currencies--------------------------------------------") | |||
val currencies = getCurrencies() | |||
val currencies = getCurrencies(request) | |||
val successList = mutableListOf<Long>() | |||
val failList = mutableListOf<Long>() | |||
@@ -449,11 +464,12 @@ open class M18MasterDataService( | |||
} | |||
// --------------------------------------------- Bom --------------------------------------------- /// | |||
open fun getBoms(): M18BomListResponse? { | |||
open fun getBoms(request: M18TestMasterDateRequest): M18BomListResponse? { | |||
return getList<M18BomListResponse>( | |||
stSearch = StSearchType.BOM.value, | |||
params = null, | |||
conds = beIdConds | |||
conds = beIdConds, | |||
request = request | |||
) | |||
} | |||
@@ -466,9 +482,9 @@ open class M18MasterDataService( | |||
) | |||
} | |||
open fun saveBoms() { | |||
open fun saveBoms(request: M18TestMasterDateRequest) { | |||
logger.info("--------------------------------------------Start - Saving M18 Boms--------------------------------------------") | |||
val boms = getBoms() | |||
val boms = getBoms(request) | |||
val successList = mutableListOf<Long>() | |||
val successDetailList = mutableListOf<Long>() | |||
@@ -561,12 +577,13 @@ open class M18MasterDataService( | |||
} | |||
// --------------------------------------------- Business Unit (Shop) --------------------------------------------- /// | |||
open fun getBusinessUnits(): M18BusinessUnitListResponse? { | |||
open fun getBusinessUnits(request: M18TestMasterDateRequest): M18BusinessUnitListResponse? { | |||
// seems no beId | |||
return getList<M18BusinessUnitListResponse>( | |||
stSearch = StSearchType.BUSINESS_UNIT.value, | |||
params = null, | |||
// conds = beIdConds | |||
request = request | |||
) | |||
} | |||
@@ -579,9 +596,9 @@ open class M18MasterDataService( | |||
) | |||
} | |||
open fun saveBusinessUnits() { | |||
open fun saveBusinessUnits(request: M18TestMasterDateRequest) { | |||
logger.info("--------------------------------------------Start - Saving M18 Business Units (Shops)--------------------------------------------") | |||
val businessUnits = getBusinessUnits() | |||
val businessUnits = getBusinessUnits(request) | |||
val successList = mutableListOf<Long>() | |||
val failList = mutableListOf<Long>() | |||
@@ -53,7 +53,7 @@ open class M18PurchaseOrderService( | |||
open fun getPurchaseOrdersWithType(request: M18TestPoRequest): M18PurchaseOrderListResponseWithType? { | |||
val purchaseOrders = M18PurchaseOrderListResponseWithType(mutableListOf()) | |||
val lastModifyDateConds = | |||
"lastModifyDate=largerOrEqual=${request.dateFrom ?: lastModifyDateStart}=and=lastModifyDate=lessOrEqual=${request.dateTo ?: lastModifyDateEnd}" | |||
"lastModifyDate=largerOrEqual=${request.modifiedDateFrom ?: lastModifyDateStart}=and=lastModifyDate=lessOrEqual=${request.modifiedDateTo ?: lastModifyDateEnd}" | |||
// Material PO | |||
val materialPoBuyers = | |||
commonUtils.listToString(listOf(m18Config.BEID_PP, m18Config.BEID_PF), "beId=equal=", "=or=") | |||
@@ -8,6 +8,7 @@ import com.ffii.fpsms.m18.model.M18PurchaseQuotationListResponse | |||
import com.ffii.fpsms.m18.model.M18PurchaseQuotationRequest | |||
import com.ffii.fpsms.m18.model.M18PurchaseQuotationResponse | |||
import com.ffii.fpsms.m18.utils.CommonUtils | |||
import com.ffii.fpsms.m18.web.models.M18TestPqRequest | |||
import com.ffii.fpsms.modules.master.service.ItemUomService | |||
import com.ffii.fpsms.modules.master.service.ItemsService | |||
import com.ffii.fpsms.modules.purchaseQuotation.service.PurchaseQuotationLineService | |||
@@ -30,10 +31,10 @@ open class M18PurchaseQuotationService( | |||
val commonUtils = CommonUtils() | |||
val logger: Logger = LoggerFactory.getLogger(JwtTokenUtil::class.java) | |||
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 lastModifyDateStart = "2025-05-14 14:00:00" | |||
// val lastModifyDateEnd = "2025-05-14 14:30:00" | |||
// val lastModifyDateConds = | |||
// "lastModifyDate=largerOrEqual=${lastModifyDateStart}=and=lastModifyDate=lessOrEqual=${lastModifyDateEnd}" | |||
// M18 Conditions | |||
val beIdList = listOf(m18Config.BEID_PF, m18Config.BEID_PP, m18Config.BEID_TOA) | |||
@@ -43,9 +44,18 @@ open class M18PurchaseQuotationService( | |||
val M18_LOAD_PURCHASE_QUOTATION_API = "/root/api/read/vqu" | |||
val M18_FETCH_PURCHASE_QUOTATION_LIST_API = "/search/search" | |||
open fun getPurchaseQuotations(): M18PurchaseQuotationListResponse? { | |||
open fun getPurchaseQuotations(request: M18TestPqRequest): M18PurchaseQuotationListResponse? { | |||
val lastModifyDateFromConds = request.modifiedDateFrom?.let { "lastModifyDate=largerOrEqual=${it}" } | |||
val lastModifyDateToConds = request.modifiedDateTo?.let{ "lastModifyDate=lessOrEqual=${it}" } | |||
val haveFromAndTo = lastModifyDateFromConds != null && lastModifyDateToConds != null | |||
val finalConds = if (lastModifyDateFromConds == null && lastModifyDateToConds == null) { | |||
beIdConds | |||
} else { | |||
beIdConds + "=and=(${lastModifyDateFromConds ?: ""}${if(haveFromAndTo) "=and=" else ""}${lastModifyDateToConds ?: ""})" | |||
} | |||
val params = M18PurchaseQuotationListRequest( | |||
conds = beIdConds | |||
conds = finalConds | |||
) | |||
var purchaseQuotations: M18PurchaseQuotationListResponse? = null | |||
@@ -84,9 +94,9 @@ open class M18PurchaseQuotationService( | |||
return purchaseQuotation | |||
} | |||
open fun savePurchaseQuotations() { | |||
open fun savePurchaseQuotations(request: M18TestPqRequest) { | |||
logger.info("--------------------------------------------Start - Saving M18 Purchase Quotations--------------------------------------------") | |||
val purchaseQuotations = getPurchaseQuotations() | |||
val purchaseQuotations = getPurchaseQuotations(request) | |||
val pqRefType = "Purchase Quotation" | |||
val pqLineRefType = "Purchase Quotation Line" | |||
@@ -17,10 +17,19 @@ open class CommonUtils( | |||
return localDateTime | |||
} | |||
@JvmName("listToStringForLongs") | |||
fun listToString(numbers: List<Long>?, prefix: String, delimiter: String): String { | |||
if (numbers == null) { | |||
return "" | |||
} | |||
return numbers.joinToString(delimiter) { "$prefix$it" } | |||
} | |||
@JvmName("listToStringForStrings") | |||
fun listToString(strings: List<String>?, prefix: String, delimiter: String): String { | |||
if (strings == null) { | |||
return "" | |||
} | |||
return strings.joinToString(delimiter) { "$prefix$it" } | |||
} | |||
} |
@@ -5,7 +5,9 @@ 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.M18TestMasterDateRequest | |||
import com.ffii.fpsms.m18.web.models.M18TestPoRequest | |||
import com.ffii.fpsms.m18.web.models.M18TestPqRequest | |||
import com.ffii.fpsms.modules.master.entity.ItemUom | |||
import com.ffii.fpsms.modules.master.entity.Items | |||
import com.ffii.fpsms.modules.master.entity.ShopRepository | |||
@@ -61,51 +63,51 @@ class M18TestController ( | |||
} | |||
// --------------------------------------------- Master Data --------------------------------------------- /// | |||
@GetMapping("/master-data") | |||
fun m18MasterData() { | |||
@PostMapping("/master-data") | |||
fun m18MasterData(@Valid @RequestBody request: M18TestMasterDateRequest) { | |||
// Master Data | |||
m18MasterDataService.saveUnits() | |||
m18MasterDataService.saveProducts() | |||
m18MasterDataService.saveVendors() | |||
m18MasterDataService.saveBusinessUnits() | |||
m18MasterDataService.saveCurrencies() | |||
m18MasterDataService.saveBoms() | |||
m18MasterDataService.saveUnits(request) | |||
m18MasterDataService.saveProducts(request) | |||
m18MasterDataService.saveVendors(request) | |||
m18MasterDataService.saveBusinessUnits(request) | |||
m18MasterDataService.saveCurrencies(request) | |||
m18MasterDataService.saveBoms(request) | |||
} | |||
@GetMapping("/product") | |||
fun m18Products() { | |||
@PostMapping("/product") | |||
fun m18Products(@Valid @RequestBody request: M18TestMasterDateRequest) { | |||
logger.info("Access token: ${m18Config.ACCESS_TOKEN}") | |||
m18MasterDataService.saveProducts() | |||
m18MasterDataService.saveProducts(request) | |||
} | |||
@GetMapping("/vendor") | |||
fun m18Vendor() { | |||
@PostMapping("/vendor") | |||
fun m18Vendor(@Valid @RequestBody request: M18TestMasterDateRequest) { | |||
logger.info("Access token: ${m18Config.ACCESS_TOKEN}") | |||
m18MasterDataService.saveVendors() | |||
m18MasterDataService.saveVendors(request) | |||
} | |||
@GetMapping("/unit") | |||
fun m18Unit() { | |||
@PostMapping("/unit") | |||
fun m18Unit(@Valid @RequestBody request: M18TestMasterDateRequest) { | |||
logger.info("Access token: ${m18Config.ACCESS_TOKEN}") | |||
m18MasterDataService.saveUnits() | |||
m18MasterDataService.saveUnits(request) | |||
} | |||
@GetMapping("/currency") | |||
fun m18Currency() { | |||
@PostMapping("/currency") | |||
fun m18Currency(@Valid @RequestBody request: M18TestMasterDateRequest) { | |||
logger.info("Access token: ${m18Config.ACCESS_TOKEN}") | |||
m18MasterDataService.saveCurrencies() | |||
m18MasterDataService.saveCurrencies(request) | |||
} | |||
@GetMapping("/bom") | |||
fun m18Bom() { | |||
@PostMapping("/bom") | |||
fun m18Bom(@Valid @RequestBody request: M18TestMasterDateRequest) { | |||
logger.info("Access token: ${m18Config.ACCESS_TOKEN}") | |||
m18MasterDataService.saveBoms() | |||
m18MasterDataService.saveBoms(request) | |||
} | |||
@GetMapping("/businessUnit") | |||
fun m18BusinessUnit() { | |||
@PostMapping("/businessUnit") | |||
fun m18BusinessUnit(@Valid @RequestBody request: M18TestMasterDateRequest) { | |||
logger.info("Access token: ${m18Config.ACCESS_TOKEN}") | |||
m18MasterDataService.saveBusinessUnits() | |||
m18MasterDataService.saveBusinessUnits(request) | |||
} | |||
// --------------------------------------------- Purchase Order --------------------------------------------- /// | |||
@@ -116,9 +118,9 @@ class M18TestController ( | |||
} | |||
// --------------------------------------------- Purchase Quotation --------------------------------------------- /// | |||
@GetMapping("/pq") | |||
fun m18PQ() { | |||
@PostMapping("/pq") | |||
fun m18PQ(@Valid @RequestBody request: M18TestPqRequest) { | |||
logger.info("Access token: ${m18Config.ACCESS_TOKEN}") | |||
m18PurchaseQuotationService.savePurchaseQuotations() | |||
m18PurchaseQuotationService.savePurchaseQuotations(request) | |||
} | |||
} |
@@ -1,6 +1,16 @@ | |||
package com.ffii.fpsms.m18.web.models | |||
data class M18TestPoRequest( | |||
val dateFrom: String?, | |||
val dateTo: String?, | |||
val modifiedDateFrom: String?, | |||
val modifiedDateTo: String?, | |||
) | |||
data class M18TestPqRequest( | |||
val modifiedDateFrom: String?, | |||
val modifiedDateTo: String?, | |||
) | |||
data class M18TestMasterDateRequest( | |||
val modifiedDateFrom: String?, | |||
val modifiedDateTo: String?, | |||
) |