src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/EvaluationRuleRep.kt
@@ -2,7 +2,9 @@
import cn.flightfeather.supervision.common.utils.Constant
import cn.flightfeather.supervision.domain.ds1.entity.Evaluationrule
import cn.flightfeather.supervision.domain.ds1.entity.Evaluationsubrule2
import cn.flightfeather.supervision.domain.ds1.mapper.EvaluationruleMapper
import cn.flightfeather.supervision.domain.ds1.mapper.EvaluationsubruleMapper2
import cn.flightfeather.supervision.lightshare.vo.AreaEvaVo
import org.springframework.stereotype.Repository
import tk.mybatis.mapper.entity.Example
@@ -13,12 +15,14 @@
@Repository
class EvaluationRuleRep(
    private val evaluationruleMapper: EvaluationruleMapper,
    private val evaluationsubruleMapper2: EvaluationsubruleMapper2,
    private val sceneRep: SceneRep,
) {
    /**
     * 根据参数查询总规则
     * @param areaEvaVo 查询参数
     * @return
     */
    fun findBaseRule(areaEvaVo: AreaEvaVo): List<Evaluationrule?> {
        return evaluationruleMapper.selectByExample(Example(Evaluationrule::class.java).apply {
@@ -32,11 +36,22 @@
        })
    }
    /**
     * 根据巡查任务id找到对应自动评估规则
     * @param subTaskId
     * @return
     */
    fun findAutoEvaluationRule(subTaskId:String): Evaluationrule? {
        val scene = sceneRep.findBySubTask(subTaskId)
        return findAutoEvaluationRule(Constant.SceneType.getByValue(scene?.typeid.toString()))
    }
    /**
     * 根据场景类型找到自动评估规则
     * 自动评估规则参数[Evaluationrule.tasktypeid] = 99
     * @param sceneType
     * @return
     */
    fun findAutoEvaluationRule(sceneType: Constant.SceneType): Evaluationrule? {
        return evaluationruleMapper.selectOne(Evaluationrule().apply {
            scensetypeid = sceneType.value.toByteOrNull()
@@ -44,4 +59,16 @@
        })
    }
    /**
     * 根据总规则id找到子规则
     * @param ruleId
     * @return
     */
    fun findSubRule(ruleId: String?): List<Evaluationsubrule2> {
        return evaluationsubruleMapper2.selectByExample(Example(Evaluationsubrule2::class.java).apply {
            createCriteria().andEqualTo("erguid", ruleId)
            orderBy("ertype").orderBy("displayid")
        })
    }
}