feiyu02
2024-07-08 b212ef0208cb094f63ea8a239a1361f8e859c839
src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/AopEvaluation.kt
@@ -43,6 +43,11 @@
    reScoreItem10: ReScoreItem10,
    reScoreItem11: ReScoreItem11,
) {
    //正在进行评估的巡查任务
    private val runningSubtask = mutableListOf<String>()
    //正在进行评估的总巡查任务
    private val runningTopTask = mutableListOf<String>()
    //特定评分项(除了统一的根据巡查问题直接扣分外,有特定的扣分逻辑的评估项)
    private val itemList = mutableListOf<ScoreItem>()
@@ -74,8 +79,30 @@
     * 对特定的巡查任务进行单独评分
     */
    fun executeBySubTask(subTask:Subtask) {
        if (checkSubtaskExist(subTask)) return
        val source = setResource(subTask)
        execute(source)
        runningSubtask.remove(subTask.stguid)
    }
    @Synchronized
    private fun checkTopTaskExist(topTaskGuid: String?): Boolean {
        return if (runningTopTask.contains(topTaskGuid)) {
            true
        } else {
            topTaskGuid?.let { runningTopTask.add(it) }
            false
        }
    }
    @Synchronized
    private fun checkSubtaskExist(subTask: Subtask): Boolean {
        return if (subTask.stguid == null || runningSubtask.contains(subTask.stguid)) {
            true
        } else {
            runningSubtask.add(subTask.stguid!!)
            false
        }
    }
    private fun setResource(subTask: Subtask): AopDataSource {
@@ -166,7 +193,10 @@
    /**
     * 计算总分
     */
    private fun totalGrade(index: Int, evaluationScene: AopDataSource.EvaluationScene): Pair<Evaluation, List<Itemevaluation>>? {
    private fun totalGrade(
        index: Int,
        evaluationScene: AopDataSource.EvaluationScene,
    ): Pair<Evaluation, List<Itemevaluation>>? {
        val scene = evaluationScene.scene.value ?: return null
        val topItems = evaluationScene.topItems.value ?: return null
        val rules = evaluationScene.rules.value ?: return null