Bladeren bron

update

master
cyril.tsui 3 weken geleden
bovenliggende
commit
f1a0a9f78b
4 gewijzigde bestanden met toevoegingen van 64 en 51 verwijderingen
  1. +26
    -23
      src/main/java/com/ffii/fpsms/m18/service/M18DeliveryOrderService.kt
  2. +25
    -22
      src/main/java/com/ffii/fpsms/m18/service/M18PurchaseOrderService.kt
  3. +6
    -2
      src/main/java/com/ffii/fpsms/m18/service/M18SchedulerService.kt
  4. +7
    -4
      src/main/java/com/ffii/fpsms/m18/web/M18TestController.kt

+ 26
- 23
src/main/java/com/ffii/fpsms/m18/service/M18DeliveryOrderService.kt Bestand weergeven

@@ -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--------------------------------------------")
}

+ 25
- 22
src/main/java/com/ffii/fpsms/m18/service/M18PurchaseOrderService.kt Bestand weergeven

@@ -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")
// }


+ 6
- 2
src/main/java/com/ffii/fpsms/m18/service/M18SchedulerService.kt Bestand weergeven

@@ -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),


+ 7
- 4
src/main/java/com/ffii/fpsms/m18/web/M18TestController.kt Bestand weergeven

@@ -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() {


Laden…
Annuleren
Opslaan