src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/EvaluationRuleRep.kt
@@ -1,7 +1,10 @@
package cn.flightfeather.supervision.domain.ds1.repository
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
@@ -10,11 +13,16 @@
 * 评估规则数据库相关操作
 */
@Repository
class EvaluationRuleRep(private val evaluationruleMapper: EvaluationruleMapper) {
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 {
@@ -27,4 +35,40 @@
            and(createCriteria().orEqualTo("towncode", areaEvaVo.towncode).orIsNull("towncode"))
        })
    }
    /**
     * 根据巡查任务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()
            tasktypeid = 99
        })
    }
    /**
     * 根据总规则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")
        })
    }
}