riku
2021-12-10 98d774555f6207ac07dbfb9c542b1b489839b827
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
package cn.flightfeather.supervision.common.score
 
import cn.flightfeather.supervision.infrastructure.utils.DateUtil
import kotlin.properties.Delegates
 
/**
 * 自动评分条目
 */
abstract class ScoreItem() {
 
    //自动评分条目id
    abstract var id: String
    //自动评分条目名称
    abstract var name:String
    //最大分值
    abstract var maxScore: Int
    //最小分值(默认0分)
    var minScore: Int = 0
 
    lateinit var info: Info
 
    var sMonth by Delegates.notNull<Int>()
 
    var eMonth by Delegates.notNull<Int>()
 
    val dateUtil = DateUtil()
 
    fun execute(info: Info): Pair<Int, Int> {
        this.info = info
        sMonth = dateUtil.getStartMonthByPeriod(info.month, 3) ?: 1
        eMonth = sMonth + 2
        return calScore()
    }
 
    /**
     * 自动评分计算逻辑
     * @return Pair<得分项序号,得分>
     */
    abstract fun calScore(): Pair<Int, Int>
}