From b212ef0208cb094f63ea8a239a1361f8e859c839 Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期一, 08 七月 2024 17:40:39 +0800 Subject: [PATCH] 2024.7.8 --- src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/AopEvaluation.kt | 38 ++++++++++++++++++++++++++++++++++---- 1 files changed, 34 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/AopEvaluation.kt b/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/AopEvaluation.kt index 384110f..894422a 100644 --- a/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/AopEvaluation.kt +++ b/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/AopEvaluation.kt @@ -43,6 +43,11 @@ reScoreItem10: ReScoreItem10, reScoreItem11: ReScoreItem11, ) { + //姝e湪杩涜璇勪及鐨勫贰鏌ヤ换鍔� + private val runningSubtask = mutableListOf<String>() + + //姝e湪杩涜璇勪及鐨勬�诲贰鏌ヤ换鍔� + private val runningTopTask = mutableListOf<String>() //鐗瑰畾璇勫垎椤癸紙闄や簡缁熶竴鐨勬牴鎹贰鏌ラ棶棰樼洿鎺ユ墸鍒嗗锛屾湁鐗瑰畾鐨勬墸鍒嗛�昏緫鐨勮瘎浼伴」锛� private val itemList = mutableListOf<ScoreItem>() @@ -73,9 +78,31 @@ /** * 瀵圭壒瀹氱殑宸℃煡浠诲姟杩涜鍗曠嫭璇勫垎 */ - 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 { @@ -101,7 +128,7 @@ private fun execute(source: AopDataSource) { //鑾峰彇鏁版嵁婧愶紙寰呰瘎浼扮殑鍦烘櫙锛� //寰幆澶勭悊姣忎釜鍦烘櫙 - source.loop {index, evaluationScene -> + source.loop { index, evaluationScene -> if (evaluationScene.noRecord()) return@loop itemGrade(index, evaluationScene) @@ -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 @@ -179,7 +209,7 @@ 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 -- Gitblit v1.9.3