diff --git a/src/main/java/com/ffii/fpsms/m18/service/M18DeliveryOrderService.kt b/src/main/java/com/ffii/fpsms/m18/service/M18DeliveryOrderService.kt index 7ccde0b..576dd7c 100644 --- a/src/main/java/com/ffii/fpsms/m18/service/M18DeliveryOrderService.kt +++ b/src/main/java/com/ffii/fpsms/m18/service/M18DeliveryOrderService.kt @@ -137,18 +137,19 @@ open class M18DeliveryOrderService( // Process for Delivery Order (mainpo) // Assume only one DO in the DO (search by DO ID) val mainpo = deliveryOrderDetail?.data?.mainpo?.get(0) + logger.info("deliveryOrderDetail: data is null? ${deliveryOrderDetail?.data == null} | mainpo is null? ${deliveryOrderDetail?.data?.mainpo == null} | get(0) is null? ${deliveryOrderDetail?.data?.mainpo?.get(0) == null}") val pot = deliveryOrderDetail?.data?.pot val deliveryOrderLineMessage = deliveryOrderDetail?.messages // delivery_order + m18_data_log table if (mainpo != null) { // Find the latest m18 data log by m18 id & type - logger.info("${doRefType}: Finding For Latest M18 Data Log...") +// logger.info("${doRefType}: Finding For Latest M18 Data Log...") val latestDeliveryOrderLog = m18DataLogService.findLatestM18DataLogWithSuccess(deliveryOrder.id, doRefType) logger.info(latestDeliveryOrderLog.toString()) // Save to m18_data_log table - logger.info("${doRefType}: Saving for M18 Data Log...") +// logger.info("${doRefType}: Saving for M18 Data Log...") val mainpoJson = mainpo::class.memberProperties.associate { prop -> prop.name to prop.getter.call(mainpo) } .toMutableMap() @@ -168,13 +169,13 @@ open class M18DeliveryOrderService( try { // Find the delivery_order if exist - logger.info("${doRefType}: Finding exising delivery order...") +// logger.info("${doRefType}: Finding exising delivery order...") val existingDeliveryOrder = latestDeliveryOrderLog?.id?.let { deliveryOrderService.findByM18DataLogId(it) } - logger.info("${doRefType}: Exising delivery order ID: ${existingDeliveryOrder?.id}") +// logger.info("${doRefType}: Exising delivery order ID: ${existingDeliveryOrder?.id}") // Save to delivery_order table - logger.info("${doRefType}: Saving delivery order...") +// logger.info("${doRefType}: Saving delivery order...") val saveDeliveryOrderRequest = SaveDeliveryOrderRequest( id = existingDeliveryOrder?.id, code = mainpo.code, @@ -210,7 +211,7 @@ open class M18DeliveryOrderService( } catch (e: Exception) { failList.add(deliveryOrder.id) - logger.error("${doRefType}: Saving Failure!") +// logger.error("${doRefType}: Saving Failure!") logger.error("Error on Function - ${e.stackTrace} | Type: ${doRefType} | M18 ID: ${deliveryOrder.id} | Different? ${mainpo.id}") logger.error(e.message) @@ -221,7 +222,7 @@ open class M18DeliveryOrderService( ) m18DataLogService.saveM18DataLog(errorSaveM18DeliveryOrderLogRequest) - logger.error("${doRefType}: M18 Data Log Updated! Please see the error. ID: ${saveM18DeliveryOrderLogRequest.id}") +// logger.error("${doRefType}: M18 Data Log Updated! Please see the error. ID: ${saveM18DeliveryOrderLogRequest.id}") } // delivery_order_line + m18_data_log @@ -231,13 +232,13 @@ open class M18DeliveryOrderService( pot.forEach { line -> // Find the latest m18 data log by m18 id & type - logger.info("${doLineRefType}: Finding For Latest M18 Data Log...") +// logger.info("${doLineRefType}: Finding For Latest M18 Data Log...") val latestDeliveryOrderLineLog = m18DataLogService.findLatestM18DataLogWithSuccess(line.id, doLineRefType) // logger.info("${doLineRefType}: Latest M18 Data Log ID: ${latestDeliveryOrderLineLog?.id}") // Save to m18_data_log table - logger.info("${doLineRefType}: Saving for M18 Data Log...") +// logger.info("${doLineRefType}: Saving for M18 Data Log...") val lineJson = line::class.memberProperties.associate { prop -> prop.name to prop.getter.call( @@ -258,7 +259,7 @@ open class M18DeliveryOrderService( m18DataLogService.saveM18DataLog(saveM18DeliveryOrderLineLogRequest) // logger.info("${doLineRefType}: Saved M18 Data Log. ID: ${saveM18DeliveryOrderLineLog.id}") - logger.info("${doLineRefType}: Finding item...") +// logger.info("${doLineRefType}: Finding item...") val item = itemsService.findByM18Id(line.proId) var itemId: Long? = null if (item == null) { @@ -267,18 +268,18 @@ open class M18DeliveryOrderService( itemId = item.id } - logger.info("${doLineRefType}: Item ID: ${itemId} | M18 Item ID: ${line.proId}") +// logger.info("${doLineRefType}: Item ID: ${itemId} | M18 Item ID: ${line.proId}") try { // Find the delivery_order_line if exist - logger.info("${doLineRefType}: Finding exising delivery order line...") +// logger.info("${doLineRefType}: Finding exising delivery order line...") val existingDeliveryOrderLine = latestDeliveryOrderLineLog?.id?.let { deliveryOrderLineService.findDeliveryOrderLineByM18Id(it) } - logger.info("${doLineRefType}: Exising delivery order line ID: ${existingDeliveryOrderLine?.id}") +// logger.info("${doLineRefType}: Exising delivery order line ID: ${existingDeliveryOrderLine?.id}") // Save to delivery_order_line table - logger.info("${doLineRefType}: Saving delivery order line...") +// logger.info("${doLineRefType}: Saving delivery order line...") val itemUom = itemId?.let { itemUomService.findSalesUnitByItemId(it) } val saveDeliveryOrderLineRequest = SaveDeliveryOrderLineRequest( id = existingDeliveryOrderLine?.id, @@ -310,12 +311,12 @@ open class M18DeliveryOrderService( // log success info successDetailList.add(line.id) - logger.info("${doLineRefType}: Delivery order ID: ${deliveryOrderId} | M18 ID: ${deliveryOrder.id}") - logger.info("${doLineRefType}: Saved delivery order line. ID: ${saveDeliveryOrderLineResponse.id} | M18 Line ID: ${line.id}") +// logger.info("${doLineRefType}: Delivery order ID: ${deliveryOrderId} | M18 ID: ${deliveryOrder.id}") + logger.info("${doLineRefType}: Saved delivery order line. ID: ${saveDeliveryOrderLineResponse.id} | M18 Line ID: ${line.id} | Delivery order ID: ${deliveryOrderId} | M18 ID: ${deliveryOrder.id}") } catch (e: Exception) { failDetailList.add(line.id) failItemDetailList.add(line.proId) - logger.error("${doLineRefType}: Saving Failure!") +// logger.error("${doLineRefType}: Saving Failure!") logger.error("Error on Function - ${e.stackTrace} | Type: ${doLineRefType} | M18 ID: ${line.id}") logger.error(e.message) @@ -326,12 +327,12 @@ open class M18DeliveryOrderService( ) m18DataLogService.saveM18DataLog(errorSaveM18DeliveryOrderLineLogRequest) - logger.error("${doLineRefType}: M18 Data Log Updated! Please see the error. ID: ${saveM18DeliveryOrderLineLog.id}") +// logger.error("${doLineRefType}: M18 Data Log Updated! Please see the error. ID: ${saveM18DeliveryOrderLineLog.id}") } } } else { // pot - logger.error("${doLineRefType}: Saving Failure!") +// logger.error("${doLineRefType}: Saving Failure!") val saveM18DeliveryOrderLineLogRequest = SaveM18DataLogRequest( id = null, refType = "${doLineRefType}", @@ -361,7 +362,7 @@ open class M18DeliveryOrderService( } else { // mainpo failList.add(deliveryOrder.id) - logger.error("${doRefType}: Saving Failure!") +// logger.error("${doRefType}: Saving Failure!") val saveM18DataLogRequest = SaveM18DataLogRequest( id = null, refType = "${doRefType}", @@ -398,15 +399,17 @@ open class M18DeliveryOrderService( } // End of save. Check result - logger.info("Total Success (${doRefType}) (${successList.size}): $successList") +// logger.info("Total Success (${doRefType}) (${successList.size}): $successList") + logger.info("Total Success (${doRefType}) (${successList.size})") // if (failList.size > 0) { logger.error("Total Fail (${doRefType}) (${failList.size}): $failList") // } - logger.info("Total Success (${doLineRefType}) (${successDetailList.size}): $successDetailList") +// logger.info("Total Success (${doLineRefType}) (${successDetailList.size}): $successDetailList") + logger.info("Total Success (${doLineRefType}) (${successDetailList.size})") // if (failDetailList.size > 0) { logger.error("Total Fail (${doLineRefType}) (${failDetailList.size}): $failDetailList") - logger.error("Total Fail M18 Items (${doLineRefType}) (${failItemDetailList.distinct().size}): ${failItemDetailList.distinct()}") +// logger.error("Total Fail M18 Items (${doLineRefType}) (${failItemDetailList.distinct().size}): ${failItemDetailList.distinct()}") // } logger.info("--------------------------------------------End - Saving M18 Delivery Order--------------------------------------------") } 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 e2e506e..867a382 100644 --- a/src/main/java/com/ffii/fpsms/m18/service/M18PurchaseOrderService.kt +++ b/src/main/java/com/ffii/fpsms/m18/service/M18PurchaseOrderService.kt @@ -195,17 +195,18 @@ open class M18PurchaseOrderService( val mainpo = purchaseOrderDetail?.data?.mainpo?.get(0) val pot = purchaseOrderDetail?.data?.pot val purchaseOrderLineMessage = purchaseOrderDetail?.messages + logger.info("deliveryOrderDetail: data is null? ${purchaseOrderDetail?.data == null} | mainpo is null? ${purchaseOrderDetail?.data?.mainpo == null} | get(0) is null? ${purchaseOrderDetail?.data?.mainpo?.get(0) == null}") // purchase_order + m18_data_log table if (mainpo != null) { // Find the latest m18 data log by m18 id & type - logger.info("${poRefType}: Finding For Latest M18 Data Log...") +// logger.info("${poRefType}: Finding For Latest M18 Data Log...") val latestPurchaseOrderLog = m18DataLogService.findLatestM18DataLogWithSuccess(purchaseOrder.id, poRefType) - logger.info(latestPurchaseOrderLog.toString()) +// logger.info(latestPurchaseOrderLog.toString()) // Save to m18_data_log table - logger.info("${poRefType}: Saving for M18 Data Log...") +// logger.info("${poRefType}: Saving for M18 Data Log...") val mainpoJson = mainpo::class.memberProperties.associate { prop -> prop.name to prop.getter.call(mainpo) } .toMutableMap() @@ -225,13 +226,13 @@ open class M18PurchaseOrderService( try { // Find the purchase_order if exist - logger.info("${poRefType}: Finding exising purchase order...") +// logger.info("${poRefType}: Finding exising purchase order...") val existingPurchaseOrder = latestPurchaseOrderLog?.id?.let { purchaseOrderService.findByM18DataLogId(it) } - logger.info("${poRefType}: Exising purchase order ID: ${existingPurchaseOrder?.id}") +// logger.info("${poRefType}: Exising purchase order ID: ${existingPurchaseOrder?.id}") // Save to purchase_order table - logger.info("${poRefType}: Saving purchase order...") +// logger.info("${poRefType}: Saving purchase order...") val savePurchaseOrderRequest = SavePurchaseOrderRequest( id = existingPurchaseOrder?.id, code = mainpo.code, @@ -266,7 +267,7 @@ open class M18PurchaseOrderService( } catch (e: Exception) { failList.add(purchaseOrder.id) - logger.error("${poRefType}: Saving Failure!") +// logger.error("${poRefType}: Saving Failure!") logger.error("Error on Function - ${e.stackTrace} | Type: ${poRefType} | M18 ID: ${purchaseOrder.id} | Different? ${mainpo.id}") logger.error(e.message) @@ -277,7 +278,7 @@ open class M18PurchaseOrderService( ) m18DataLogService.saveM18DataLog(errorSaveM18PurchaseOrderLogRequest) - logger.error("${poRefType}: M18 Data Log Updated! Please see the error. ID: ${saveM18PurchaseOrderLogRequest.id}") +// logger.error("${poRefType}: M18 Data Log Updated! Please see the error. ID: ${saveM18PurchaseOrderLogRequest.id}") } // purchase_order_line + m18_data_log @@ -287,13 +288,13 @@ open class M18PurchaseOrderService( pot.forEach { line -> // Find the latest m18 data log by m18 id & type - logger.info("${poLineRefType}: Finding For Latest M18 Data Log...") +// logger.info("${poLineRefType}: Finding For Latest M18 Data Log...") val latestPurchaseOrderLineLog = m18DataLogService.findLatestM18DataLogWithSuccess(line.id, poLineRefType) // logger.info("${poLineRefType}: Latest M18 Data Log ID: ${latestPurchaseOrderLineLog?.id}") // Save to m18_data_log table - logger.info("${poLineRefType}: Saving for M18 Data Log...") +// logger.info("${poLineRefType}: Saving for M18 Data Log...") val lineJson = line::class.memberProperties.associate { prop -> prop.name to prop.getter.call( @@ -314,7 +315,7 @@ open class M18PurchaseOrderService( m18DataLogService.saveM18DataLog(saveM18PurchaseOrderLineLogRequest) // logger.info("${poLineRefType}: Saved M18 Data Log. ID: ${saveM18PurchaseOrderLineLog.id}") - logger.info("${poLineRefType}: Finding item...") +// logger.info("${poLineRefType}: Finding item...") val item = itemsService.findByM18Id(line.proId) var itemId: Long? = null if (item == null) { @@ -326,14 +327,14 @@ open class M18PurchaseOrderService( try { // Find the purchase_order_line if exist - logger.info("${poLineRefType}: Finding exising purchase order line...") +// logger.info("${poLineRefType}: Finding exising purchase order line...") val existingPurchaseOrderLine = latestPurchaseOrderLineLog?.id?.let { purchaseOrderLineService.findPurchaseOrderLineByM18Id(it) } - logger.info("${poLineRefType}: Exising purchase order line ID: ${existingPurchaseOrderLine?.id}") +// logger.info("${poLineRefType}: Exising purchase order line ID: ${existingPurchaseOrderLine?.id}") // Save to purchase_order_line table - logger.info("${poLineRefType}: Saving purchase order line...") +// logger.info("${poLineRefType}: Saving purchase order line...") val itemUom = itemId?.let { itemUomService.findPurchaseUnitByItemId(it) } val savePurchaseOrderLineRequest = SavePurchaseOrderLineRequest( id = existingPurchaseOrderLine?.id, @@ -365,11 +366,11 @@ open class M18PurchaseOrderService( // log success info successDetailList.add(line.id) - logger.info("${poLineRefType}: Purchase order ID: ${purchaseOrderId} | M18 ID: ${purchaseOrder.id}") - logger.info("${poLineRefType}: Saved purchase order line. ID: ${savePurchaseOrderLineResponse.id} | M18 Line ID: ${line.id}") +// logger.info("${poLineRefType}: Purchase order ID: ${purchaseOrderId} | M18 ID: ${purchaseOrder.id}") + logger.info("${poLineRefType}: Saved purchase order line. ID: ${savePurchaseOrderLineResponse.id} | M18 Line ID: ${line.id} | Purchase order ID: ${purchaseOrderId} | M18 ID: ${purchaseOrder.id}") } catch (e: Exception) { failDetailList.add(line.id) - logger.error("${poLineRefType}: Saving Failure!") +// logger.error("${poLineRefType}: Saving Failure!") logger.error("Error on Function - ${e.stackTrace} | Type: ${poLineRefType} | M18 ID: ${line.id}") logger.error(e.message) @@ -380,12 +381,12 @@ open class M18PurchaseOrderService( ) m18DataLogService.saveM18DataLog(errorSaveM18PurchaseOrderLineLogRequest) - logger.error("${poLineRefType}: M18 Data Log Updated! Please see the error. ID: ${saveM18PurchaseOrderLineLog.id}") +// logger.error("${poLineRefType}: M18 Data Log Updated! Please see the error. ID: ${saveM18PurchaseOrderLineLog.id}") } } } else { // pot - logger.error("${poLineRefType}: Saving Failure!") +// logger.error("${poLineRefType}: Saving Failure!") val saveM18PurchaseOrderLineLogRequest = SaveM18DataLogRequest( id = null, refType = "${poLineRefType}", @@ -415,7 +416,7 @@ open class M18PurchaseOrderService( } else { // mainpo failList.add(purchaseOrder.id) - logger.error("${poRefType}: Saving Failure!") +// logger.error("${poRefType}: Saving Failure!") val saveM18DataLogRequest = SaveM18DataLogRequest( id = null, refType = "${poRefType}", @@ -452,12 +453,14 @@ open class M18PurchaseOrderService( } // End of save. Check result - logger.info("Total Success (${poRefType}) (${successList.size}): $successList") +// logger.info("Total Success (${poRefType}) (${successList.size}): $successList") + logger.info("Total Success (${poRefType}) (${successList.size})") // if (failList.size > 0) { logger.error("Total Fail (${poRefType}) (${failList.size}): $failList") // } - logger.info("Total Success (${poLineRefType}) (${successDetailList.size}): $successDetailList") +// logger.info("Total Success (${poLineRefType}) (${successDetailList.size}): $successDetailList") + logger.info("Total Success (${poLineRefType}) (${successDetailList.size})") // if (failDetailList.size > 0) { logger.error("Total Fail (${poLineRefType}) (${failDetailList.size}): $failDetailList") // } diff --git a/src/main/java/com/ffii/fpsms/m18/service/M18SchedulerService.kt b/src/main/java/com/ffii/fpsms/m18/service/M18SchedulerService.kt index ff749a2..c9d9806 100644 --- a/src/main/java/com/ffii/fpsms/m18/service/M18SchedulerService.kt +++ b/src/main/java/com/ffii/fpsms/m18/service/M18SchedulerService.kt @@ -4,6 +4,7 @@ import com.ffii.core.utils.JwtTokenUtil import com.ffii.fpsms.m18.web.models.M18CommonRequest import org.slf4j.Logger import org.slf4j.LoggerFactory +import org.springframework.scheduling.annotation.Async import org.springframework.scheduling.annotation.Scheduled import org.springframework.stereotype.Service import java.time.LocalDateTime @@ -18,9 +19,12 @@ open class M18SchedulerService( var logger: Logger = LoggerFactory.getLogger(JwtTokenUtil::class.java) val dataStringFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd") - @Scheduled(cron = "0 0 0 * * *") +// @Async +// @Scheduled(cron = "0 0 2 * * *") // (SS/MM/HH/DD/MM/YY) + @Scheduled(cron = "0 35 14 * * *") // (SS/MM/HH/DD/MM/YY) open fun getM18Pos() { - val today = LocalDateTime.now() + val currentTime = LocalDateTime.now() + val today = currentTime.toLocalDate().atStartOfDay() val yesterday = today.minusDays(1L) val request = M18CommonRequest( modifiedDateTo = today.format(dataStringFormat), 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 acd0eb7..d9a1654 100644 --- a/src/main/java/com/ffii/fpsms/m18/web/M18TestController.kt +++ b/src/main/java/com/ffii/fpsms/m18/web/M18TestController.kt @@ -2,10 +2,7 @@ package com.ffii.fpsms.m18.web import com.ffii.core.utils.JwtTokenUtil import com.ffii.fpsms.m18.M18Config -import com.ffii.fpsms.m18.service.M18DeliveryOrderService -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.service.* import com.ffii.fpsms.m18.web.models.M18CommonRequest import com.ffii.fpsms.modules.master.entity.ItemUom import com.ffii.fpsms.modules.master.entity.Items @@ -32,6 +29,7 @@ class M18TestController ( private val itemUomService: ItemUomService, private val m18PurchaseQuotationService: M18PurchaseQuotationService, private val m18DeliveryOrderService: M18DeliveryOrderService, + val m18SchedulerService: M18SchedulerService, ) { var logger: Logger = LoggerFactory.getLogger(JwtTokenUtil::class.java) @@ -56,6 +54,11 @@ class M18TestController ( println(response?.uom?.id) return response } + + @GetMapping("/test4") + fun test4(): Any { + return m18SchedulerService.getM18Pos(); + } // --------------------------------------------- Master Data --------------------------------------------- /// @GetMapping("/all") fun m18All() {