You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

42 lines
1.4 KiB

  1. package com.ffii.fpsms.m18.service
  2. import com.ffii.fpsms.m18.entity.M18DataLog
  3. import com.ffii.fpsms.m18.entity.M18DataLogRepository
  4. import com.ffii.fpsms.m18.model.M18DataLogResponse
  5. import com.ffii.fpsms.m18.model.SaveM18DataLogRequest
  6. import org.springframework.stereotype.Service
  7. import kotlin.jvm.optionals.getOrDefault
  8. @Service
  9. class M18DataLogService(
  10. val m18DataLogRepository: M18DataLogRepository
  11. ) {
  12. fun findLatestM18DataLog(m18Id: Long, refType: String): M18DataLog? {
  13. return m18DataLogRepository.findFirstByM18IdAndRefTypeAndDeletedIsFalseOrderByM18LastModifyDateDesc(m18Id, refType)
  14. }
  15. fun saveM18DataLog(request: SaveM18DataLogRequest): M18DataLogResponse {
  16. val id = request.id
  17. val m18DataLog =
  18. if (id != null && id > 0) m18DataLogRepository.findById(id).getOrDefault(M18DataLog()) else M18DataLog()
  19. m18DataLog.apply {
  20. refType = request.refType
  21. m18Id = request.m18Id
  22. m18LastModifyDate = request.m18LastModifyDate
  23. dataLog = request.dataLog
  24. status = request.status
  25. }
  26. val response = m18DataLogRepository.saveAndFlush(m18DataLog).let { dataLog ->
  27. M18DataLogResponse(
  28. id = dataLog.id,
  29. refType = dataLog.refType,
  30. m18Id = dataLog.m18Id,
  31. status = dataLog.status,
  32. )
  33. }
  34. return response
  35. }
  36. }