feiyu02
2024-11-19 752e00503f672ddfe2066afb6c235721a3a912b5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
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()
    }
}