package cn.flightfeather.supervision.common.score.item
|
|
import cn.flightfeather.supervision.common.score.Info
|
import cn.flightfeather.supervision.common.score.ScoreItem
|
import cn.flightfeather.supervision.domain.entity.Commitment
|
import cn.flightfeather.supervision.domain.mapper.CommitmentMapper
|
import org.springframework.beans.factory.annotation.Autowired
|
import org.springframework.stereotype.Component
|
import tk.mybatis.mapper.entity.Example
|
import java.time.LocalDateTime
|
import java.time.ZoneId
|
import java.util.*
|
import javax.annotation.PostConstruct
|
|
@Component
|
class ScoreItem_11: ScoreItem() {
|
companion object {
|
private lateinit var instance: ScoreItem_11
|
}
|
|
@PostConstruct
|
fun init() {
|
instance = this
|
}
|
|
@Autowired
|
lateinit var commitmentMapper: CommitmentMapper
|
|
override var id: String = ""
|
|
override var name: String="企业信用承诺(在线、一年一次)"
|
|
override var maxScore: Int = 5
|
|
override fun calScore(): Pair<Int, Int> {
|
return if (condition1()) {
|
Pair(1, minScore)
|
} else {
|
Pair(0, maxScore)
|
}
|
}
|
|
/**
|
* 企业信用承诺未正常提交,或不在有效期内 -5分
|
* true 未正常提交; false 正常提交
|
*/
|
private fun condition1(): Boolean {
|
val s = LocalDateTime.of(info.year, 1, 1, 0, 0, 0).atZone(ZoneId.systemDefault())
|
val e = LocalDateTime.of(info.year, 12, 31, 23, 59,59).atZone(ZoneId.systemDefault())
|
val startTime = Date.from(s.toInstant())
|
val endTime = Date.from(e.toInstant())
|
|
val c = commitmentMapper.selectByExample(Example(Commitment::class.java).apply {
|
createCriteria().andEqualTo("uiGuid", info.userId)
|
// .andGreaterThanOrEqualTo("cmCreateTime", startTime)
|
// .andLessThanOrEqualTo("cmCreateTime", endTime)
|
orderBy("cmCreateTime").desc()
|
})
|
return if (c.isEmpty()) {
|
true
|
} else {
|
val latestTime = LocalDateTime.ofInstant(c[0].cmCreateTime.toInstant(), ZoneId.systemDefault())
|
val now = LocalDateTime.of(info.year, eMonth + 1, 1, 0, 0, 0)
|
now.minusYears(1).isAfter(latestTime)
|
}
|
}
|
}
|