| @@ -1,5 +1,6 @@ | |||||
| package com.ffii.fpsms.api.service | package com.ffii.fpsms.api.service | ||||
| import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper | |||||
| import com.ffii.core.utils.JwtTokenUtil | import com.ffii.core.utils.JwtTokenUtil | ||||
| import com.ffii.fpsms.m18.M18Config | import com.ffii.fpsms.m18.M18Config | ||||
| import com.ffii.fpsms.m18.model.M18TokenRequest | import com.ffii.fpsms.m18.model.M18TokenRequest | ||||
| @@ -98,6 +99,21 @@ open class ApiCallerService( | |||||
| } | } | ||||
| .retrieve() | .retrieve() | ||||
| .bodyToMono(T::class.java) | .bodyToMono(T::class.java) | ||||
| // Below is for test bug (200 but error). Need to comment out bodyToMono and add jsonIgnore to data class | |||||
| // .toEntity(String::class.java) // Get raw body as String | |||||
| // .flatMap { entity -> | |||||
| // logger.info("Response Status: ${entity.statusCode}") | |||||
| // logger.info("Response Headers: ${entity.headers}") | |||||
| // logger.info("Raw Response Body: ${entity.body}") | |||||
| // try { | |||||
| // val objectMapper = jacksonObjectMapper() | |||||
| // val deserialized = objectMapper.readValue(entity.body, T::class.java) | |||||
| // Mono.just(deserialized) | |||||
| // } catch (e: Exception) { | |||||
| // logger.error("Deserialization failed: ${e.message}") | |||||
| // Mono.error(e) | |||||
| // } | |||||
| // } | |||||
| .doOnError { error -> | .doOnError { error -> | ||||
| println("Error occurred: ${error.message}") | println("Error occurred: ${error.message}") | ||||
| } | } | ||||
| @@ -105,6 +121,7 @@ open class ApiCallerService( | |||||
| logger.error("WebClientResponseException") | logger.error("WebClientResponseException") | ||||
| logger.error("Error Status: ${error.statusCode} - ${error.statusText}") | logger.error("Error Status: ${error.statusCode} - ${error.statusText}") | ||||
| logger.error("Error Message: ${error.message}") | logger.error("Error Message: ${error.message}") | ||||
| logger.error("Error Response: ${error.responseBodyAsString}") | |||||
| if (error.statusCode == HttpStatusCode.valueOf(400)) { | if (error.statusCode == HttpStatusCode.valueOf(400)) { | ||||
| updateToken() | updateToken() | ||||
| } | } | ||||
| @@ -1,5 +1,7 @@ | |||||
| package com.ffii.fpsms.m18.model | package com.ffii.fpsms.m18.model | ||||
| import com.fasterxml.jackson.annotation.JsonIgnoreProperties | |||||
| import com.fasterxml.jackson.annotation.JsonProperty | |||||
| import java.math.BigDecimal | import java.math.BigDecimal | ||||
| /** Product / Material Response */ | /** Product / Material Response */ | ||||
| @@ -63,8 +65,10 @@ data class M18VendorVen ( | |||||
| val code: String, | val code: String, | ||||
| /** name */ | /** name */ | ||||
| val desc: String, | val desc: String, | ||||
| val `desc_zh-TW`: String, | |||||
| val `desc_zh-CN`: String, | |||||
| @JsonProperty("desc_zh-TW") | |||||
| val descZhTW: String, | |||||
| @JsonProperty("desc_zh-CN") | |||||
| val descZhCN: String, | |||||
| /** contactNo */ | /** contactNo */ | ||||
| val tel: String, | val tel: String, | ||||
| val email: String, | val email: String, | ||||
| @@ -199,22 +203,27 @@ data class M18BomUdfProduct ( | |||||
| ) | ) | ||||
| /** Shop Response */ | /** Shop Response */ | ||||
| //@JsonIgnoreProperties(ignoreUnknown = true) | |||||
| data class M18BusinessUnitResponse ( | data class M18BusinessUnitResponse ( | ||||
| val data: M18BusinessUnitData?, | val data: M18BusinessUnitData?, | ||||
| val messages: List<M18ErrorMessages>? | val messages: List<M18ErrorMessages>? | ||||
| ) | ) | ||||
| //@JsonIgnoreProperties(ignoreUnknown = true) | |||||
| data class M18BusinessUnitData ( | data class M18BusinessUnitData ( | ||||
| val virdept: List<M18BusinessUnitVirdept>? | val virdept: List<M18BusinessUnitVirdept>? | ||||
| ) | ) | ||||
| //@JsonIgnoreProperties(ignoreUnknown = true) | |||||
| data class M18BusinessUnitVirdept ( | data class M18BusinessUnitVirdept ( | ||||
| val id: Long, | val id: Long, | ||||
| val code: String, | val code: String, | ||||
| /** name */ | /** name */ | ||||
| val desc: String, | val desc: String, | ||||
| val `desc_zh-TW`: String, | |||||
| val `desc_zh-CN`: String, | |||||
| @JsonProperty("desc_zh-TW") | |||||
| val descZhTW: String, | |||||
| @JsonProperty("desc_zh-CN") | |||||
| val descZhCN: String, | |||||
| /** contactNo */ | /** contactNo */ | ||||
| val tel: String, | val tel: String, | ||||
| val email: String, | val email: String, | ||||
| @@ -229,11 +238,13 @@ data class M18BusinessUnitVirdept ( | |||||
| ) | ) | ||||
| /** BusinessUnit List Response */ | /** BusinessUnit List Response */ | ||||
| //@JsonIgnoreProperties(ignoreUnknown = true) | |||||
| data class M18BusinessUnitListResponse ( | data class M18BusinessUnitListResponse ( | ||||
| val values: List<M18BusinessUnitListValue>?, | val values: List<M18BusinessUnitListValue>?, | ||||
| val messages: List<M18ErrorMessages>? | val messages: List<M18ErrorMessages>? | ||||
| ) | ) | ||||
| //@JsonIgnoreProperties(ignoreUnknown = true) | |||||
| data class M18BusinessUnitListValue ( | data class M18BusinessUnitListValue ( | ||||
| val id: Long, | val id: Long, | ||||
| val lastModifyDate: String?, | val lastModifyDate: String?, | ||||
| @@ -367,7 +367,7 @@ open class M18MasterDataService( | |||||
| val saveShopRequest = SaveShopRequest( | val saveShopRequest = SaveShopRequest( | ||||
| id = null, | id = null, | ||||
| code = ven.code, | code = ven.code, | ||||
| name = ven.`desc_zh-TW`.ifEmpty { ven.`desc_zh-CN`.ifEmpty { ven.desc } }, | |||||
| name = ven.descZhTW.ifEmpty { ven.descZhCN.ifEmpty { ven.desc } }, | |||||
| brNo = null, | brNo = null, | ||||
| contactNo = ven.tel, | contactNo = ven.tel, | ||||
| contactEmail = ven.email, | contactEmail = ven.email, | ||||
| @@ -384,7 +384,7 @@ open class M18MasterDataService( | |||||
| shopService.saveShop(saveShopRequest) | shopService.saveShop(saveShopRequest) | ||||
| successList.add(vendor.id) | successList.add(vendor.id) | ||||
| logger.info("Success Count ${successList.size}: ${vendor.id} | ${ven.code} | ${ven.`desc_zh-TW`.ifEmpty { ven.`desc_zh-CN`.ifEmpty { ven.desc } }}") | |||||
| logger.info("Success Count ${successList.size}: ${vendor.id} | ${ven.code} | ${ven.descZhTW.ifEmpty { ven.descZhCN.ifEmpty { ven.desc } }}") | |||||
| } else { | } else { | ||||
| failList.add(vendor.id) | failList.add(vendor.id) | ||||
| logger.error("Fail Message: ${vendorDetail?.messages?.get(0)?.msgDetail}") | logger.error("Fail Message: ${vendorDetail?.messages?.get(0)?.msgDetail}") | ||||
| @@ -712,7 +712,7 @@ open class M18MasterDataService( | |||||
| val saveShopRequest = SaveShopRequest( | val saveShopRequest = SaveShopRequest( | ||||
| id = null, | id = null, | ||||
| code = virdept.code, | code = virdept.code, | ||||
| name = virdept.`desc_zh-TW`.ifEmpty { virdept.`desc_zh-CN`.ifEmpty { virdept.desc } }, | |||||
| name = virdept.descZhTW.ifEmpty { virdept.descZhCN.ifEmpty { virdept.desc } }, | |||||
| brNo = null, | brNo = null, | ||||
| contactNo = virdept.tel, | contactNo = virdept.tel, | ||||
| contactEmail = virdept.email, | contactEmail = virdept.email, | ||||
| @@ -729,7 +729,7 @@ open class M18MasterDataService( | |||||
| shopService.saveShop(saveShopRequest) | shopService.saveShop(saveShopRequest) | ||||
| successList.add(businessUnit.id) | successList.add(businessUnit.id) | ||||
| logger.info("Success Count ${successList.size}: ${businessUnit.id} | ${virdept.code} | ${virdept.`desc_zh-TW`.ifEmpty { virdept.`desc_zh-CN`.ifEmpty { virdept.desc } }}") | |||||
| logger.info("Success Count ${successList.size}: ${businessUnit.id} | ${virdept.code} | ${virdept.descZhTW.ifEmpty { virdept.descZhCN.ifEmpty { virdept.desc } }}") | |||||
| } else { | } else { | ||||
| failList.add(businessUnit.id) | failList.add(businessUnit.id) | ||||
| logger.error("(Business Unit) Fail Message: ${buMessages?.msgDetail}") | logger.error("(Business Unit) Fail Message: ${buMessages?.msgDetail}") | ||||
| @@ -125,8 +125,8 @@ open class MailTemplateService( | |||||
| "N/A" | "N/A" | ||||
| } | } | ||||
| } ?: "N/A" | } ?: "N/A" | ||||
| val acceptedQty = (stockInLine.acceptedQty ?: zero).minus(stockInLine.demandQty ?: zero).toString() | |||||
| val rejectedQty = (stockInLine.demandQty ?: zero).toString() // reject? | |||||
| val rejectedQty = (stockInLine.acceptedQty ?: zero).minus(stockInLine.demandQty ?: zero).toString() // reject? | |||||
| val acceptedQty = (stockInLine.acceptedQty ?: zero).toString() | |||||
| val nonDelieveredQty = (zero).toString() | val nonDelieveredQty = (zero).toString() | ||||
| // HTML | // HTML | ||||
| @@ -48,7 +48,7 @@ class PurchaseOrderController( | |||||
| .addDate("estimatedArrivalDate") | .addDate("estimatedArrivalDate") | ||||
| .addDate("estimatedArrivalDateTo") | .addDate("estimatedArrivalDateTo") | ||||
| .build() | .build() | ||||
| println(criteriaArgs) | |||||
| // println(criteriaArgs) | |||||
| val pageSize = request.getParameter("pageSize")?.toIntOrNull() ?: 10 // Default to 10 if not provided | val pageSize = request.getParameter("pageSize")?.toIntOrNull() ?: 10 // Default to 10 if not provided | ||||
| val pageNum = request.getParameter("pageNum")?.toIntOrNull() ?: 1 // Default to 1 if not provided | val pageNum = request.getParameter("pageNum")?.toIntOrNull() ?: 1 // Default to 1 if not provided | ||||