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>
|
}
|