| | |
| | | reScoreItem10: ReScoreItem10, |
| | | reScoreItem11: ReScoreItem11, |
| | | ) { |
| | | //正在进行评估的巡查任务 |
| | | private val runningSubtask = mutableListOf<String>() |
| | | |
| | | //正在进行评估的总巡查任务 |
| | | private val runningTopTask = mutableListOf<String>() |
| | | |
| | | //特定评分项(除了统一的根据巡查问题直接扣分外,有特定的扣分逻辑的评估项) |
| | | private val itemList = mutableListOf<ScoreItem>() |
| | |
| | | /** |
| | | * 对特定的巡查任务进行单独评分 |
| | | */ |
| | | fun executeBySubTask(subTask:Subtask) { |
| | | 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 { |
| | |
| | | private fun execute(source: AopDataSource) { |
| | | //获取数据源(待评估的场景) |
| | | //循环处理每个场景 |
| | | source.loop {index, evaluationScene -> |
| | | source.loop { index, evaluationScene -> |
| | | if (evaluationScene.noRecord()) return@loop |
| | | |
| | | itemGrade(index, evaluationScene) |
| | |
| | | /** |
| | | * 计算总分 |
| | | */ |
| | | 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 |
| | |
| | | total += top.extension1?.toIntOrNull() ?: 0 |
| | | } |
| | | val evaluation = Evaluation().apply { |
| | | evaluationScene.baseRule.value?.let { |
| | | evaluationScene.baseRule.value?.let { |
| | | guid = UUIDGenerator.generate16ShortUUID() |
| | | iguid = inspection?.guid |
| | | stguid = subTask?.stguid |