package com.ffii.fpsms.m18.service import com.ffii.fpsms.m18.entity.M18DataLog import com.ffii.fpsms.m18.entity.M18DataLogRepository import com.ffii.fpsms.m18.model.M18DataLogResponse import com.ffii.fpsms.m18.model.SaveM18DataLogRequest import org.springframework.stereotype.Service import kotlin.jvm.optionals.getOrDefault @Service class M18DataLogService( val m18DataLogRepository: M18DataLogRepository ) { fun findLatestM18DataLog(m18Id: Long, refType: String): M18DataLog? { return m18DataLogRepository.findFirstByM18IdAndRefTypeAndDeletedIsFalseOrderByM18LastModifyDateDesc(m18Id, refType) } fun saveM18DataLog(request: SaveM18DataLogRequest): M18DataLogResponse { val id = request.id val m18DataLog = if (id != null && id > 0) m18DataLogRepository.findById(id).getOrDefault(M18DataLog()) else M18DataLog() m18DataLog.apply { refType = request.refType m18Id = request.m18Id m18LastModifyDate = request.m18LastModifyDate dataLog = request.dataLog status = request.status } val response = m18DataLogRepository.saveAndFlush(m18DataLog).let { dataLog -> M18DataLogResponse( id = dataLog.id, refType = dataLog.refType, m18Id = dataLog.m18Id, status = dataLog.status, ) } return response } }