feiyu02
2025-09-19 7cbe1610b87da19ed8a146a09b1117f92d9d3d98
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package cn.flightfeather.supervision.domain.ds1.repository
 
import cn.flightfeather.supervision.common.exception.BizException
import cn.flightfeather.supervision.domain.ds1.entity.Evaluation
import cn.flightfeather.supervision.domain.ds1.entity.Itemevaluation
import cn.flightfeather.supervision.domain.ds1.mapper.EvaluationMapper
import cn.flightfeather.supervision.domain.ds1.mapper.ItemevaluationMapper
import cn.flightfeather.supervision.lightshare.vo.AreaVo
import cn.flightfeather.supervision.lightshare.vo.AutoScoreResultVo
import org.springframework.stereotype.Repository
import tk.mybatis.mapper.entity.Example
import java.time.LocalDate
 
@Repository
class EvaluationRep(
    private val evaluationMapper: EvaluationMapper,
    private val itemevaluationMapper: ItemevaluationMapper,
    private val taskRep: TaskRep,
) {
 
    /**
     * 查找场景对应的得分
     * @param sceneId 场景id
     * @param date 日期,只使用年和月
     * @return
     */
    fun findByScene(sceneId: String?, date: LocalDate): List<Evaluation?> {
        val sT = date.withDayOfMonth(1).atStartOfDay()
        val eT = sT.plusMonths(1).minusSeconds(1)
        val res = evaluationMapper.selectByExample(Example(Evaluation::class.java).apply {
            createCriteria().andEqualTo("sguid", sceneId)
                .andBetween("evaluatetime", sT, eT)
        })
        return res
    }
 
    fun findBySubtask(subTaskId: String?): Evaluation? {
        try {
            return evaluationMapper.selectOne(Evaluation().apply { stguid = subTaskId })
        } catch (e: Exception) {
            throw BizException("巡查[${subTaskId}]对应了多条评估总分记录,请检查是否有系统逻辑错误")
        }
    }
 
 
    /**
     * 查找自动评分结果
     */
    fun findAutoScore(areaVo: AreaVo): List<AutoScoreResultVo?>? {
        areaVo.scensetypeid ?: return null
        val task = taskRep.findOneTask(areaVo) ?: return null
        return evaluationMapper.findEvaluation(task.tguid!!, areaVo.scensetypeid!!)
    }
 
    /**
     * 查找巡查任务的具体评分
     */
    fun findItemEvaluation(subTaskId: String): List<Itemevaluation> {
        return itemevaluationMapper.selectByExample(Example(Itemevaluation::class.java).apply {
            createCriteria().andEqualTo("stguid", subTaskId)
        })
    }
}