package cn.flightfeather.supervision.lightshare.vo
|
|
import cn.flightfeather.supervision.domain.entity.LedgerRecord
|
import cn.flightfeather.supervision.domain.entity.LedgerSubType
|
import cn.flightfeather.supervision.domain.entity.Userinfo
|
import cn.flightfeather.supervision.domain.enumeration.SceneType
|
import cn.flightfeather.supervision.infrastructure.utils.UUIDGenerator
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties
|
import java.time.LocalDateTime
|
import java.time.ZoneId
|
import java.util.*
|
|
/**
|
* @author riku
|
* Date: 2019/5/24
|
* 台账详情
|
*/
|
@JsonIgnoreProperties(ignoreUnknown = true)
|
data class LedgerVo constructor(
|
//台账记录id
|
var id: String? = null,
|
//台账子类型ID
|
var ledgerSubTypeId: Int? = null,
|
//台账名称
|
var ledgerName: String? = null,
|
//台账类型ID
|
var ledgerTypeId: Int? = null,
|
//台账类型
|
var ledgerType: String? = null,
|
//台账是否本地填写完成
|
var ledgerFinished: Boolean = false,
|
//台账是否上传
|
var isUpLoad: Boolean = false,
|
//台账更新日期
|
var updateDate: Date? = null,
|
//台账更新类型(0部分更新(部分缺失、遗失)、1已更新、2无更新等)
|
var updateType: Byte? = null,
|
//台账多媒体文件类型
|
var fileType: Int? = null,
|
//台账基础多媒体文件路径
|
var path1: String? = null,
|
//台账基础多媒体文件备注
|
var remark1: String? = null,
|
//台账补充多媒体文件路径
|
var path2: String? = null,
|
//台账补充多媒体文件备注
|
var remark2: String? = null,
|
//台账所属的场景类型
|
var sceneType: Int = SceneType.NoType.value,
|
) {
|
companion object {
|
fun fromLedgerSubtype(ledger: LedgerSubType?) = LedgerVo().apply {
|
ledgerSubTypeId = ledger?.lsSubtypeid
|
ledgerName = ledger?.lsName
|
ledgerTypeId = ledger?.getlTypeid()
|
ledgerType = ledger?.getlTypename()
|
updateDate = Date()
|
fileType = 1
|
}
|
}
|
|
fun toLedgerRecord(userInfo: Userinfo?) = LedgerRecord().apply {
|
val updateTime = LocalDateTime.ofInstant(updateDate?.toInstant(), ZoneId.systemDefault())
|
lrGuid = UUIDGenerator.generate16ShortUUID()
|
lsSubtypeid = ledgerSubTypeId
|
lsSubtypename = ledgerName
|
lrYear = updateTime.year
|
lrMonth = updateTime.monthValue.toByte()
|
lrDay = updateTime.dayOfMonth.toByte()
|
lrEasubmitkind = fileType?.toByte() ?: 1
|
lrSubmitid = userInfo?.guid
|
lrSubmitname = userInfo?.acountname
|
lrIssubmitontime = updateTime.dayOfMonth <= 10
|
lrSubmitdate = Date()
|
lrUpdatetype = updateType
|
lrExtension1 = sceneType.toString()
|
}
|
}
|