From 0516cba27e632f20efac2752787f38f0c87baafa Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期三, 25 九月 2024 09:24:05 +0800 Subject: [PATCH] 1. 新增自动评估添加和更新接口 --- src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/AopEvaluation.kt | 62 +++++++++++++++++++----------- 1 files changed, 39 insertions(+), 23 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 3c0ae96..ccfac49 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 @@ -122,15 +122,28 @@ /** * 鎵ц璇勫垎閫昏緫 */ - private fun execute(source: AopDataSource) { - //鑾峰彇鏁版嵁婧愶紙寰呰瘎浼扮殑鍦烘櫙锛� - //寰幆澶勭悊姣忎釜鍦烘櫙 - source.loop { index, evaluationScene -> - if (evaluationScene.noRecord()) return@loop + private fun execute(source: AopDataSource, isBySubtask: Boolean = false) { + // 褰撻渶瑕佸彧閽堝鍗曡瘝宸℃煡浠诲姟杩涜璇勪及鏃� + if (isBySubtask) { + source.runBySubTask { index, evaluationScene -> + if (evaluationScene.noRecord()) return@runBySubTask - itemGrade(index, evaluationScene) - totalGrade(index, evaluationScene)?.run { - aopOutput.toDbEvaluation(evaluationScene, this) + itemGrade(index, evaluationScene) + totalGrade(index, evaluationScene)?.run { + aopOutput.toDbEvaluation(evaluationScene, this) + } + } + } + // 褰撻拡瀵瑰満鏅繘琛岃瘎浼版椂锛岃鍖呮嫭璇ュ満鏅綋鏈堝彲鑳藉瓨鍦ㄧ殑澶嶆牳宸℃煡鎯呭喌 + else { + //寰幆澶勭悊姣忎釜鍦烘櫙 + source.loop { index, evaluationScene -> + if (evaluationScene.noRecord()) return@loop + + itemGrade(index, evaluationScene) + totalGrade(index, evaluationScene)?.run { + aopOutput.toDbEvaluation(evaluationScene, this) + } } } } @@ -140,10 +153,10 @@ */ private fun itemGrade(index: Int, evaluationScene: AopDataSource.EvaluationScene) { // 瑙勫垯鏉$洰寰楀垎鍒濆鍖� - evaluationScene.topItems.value?.forEach { s -> s.extension1 = null } + evaluationScene.topRules.value?.forEach { s -> s.clear() } evaluationScene.rules.value?.forEach { p -> - p.first.extension1 = null - p.second.forEach { e -> e.extension1 = null } + p.first.clear() + p.second.forEach { e -> e.clear() } } /** 1. 鏍规嵁璇勫垎瑙勫垯瀵瑰簲鐨勯棶棰樿嚜鍔ㄥ垽鏂槸鍚︽墸鍒�***************************************************************/ @@ -159,7 +172,7 @@ // 瀛樺湪澶氫釜璇勫垎椤瑰拰鍚屼竴涓棶棰樺叧鑱旓紝鍥犳蹇呴』鍏ㄩ儴璇勫垎椤归兘鍒ゅ畾涓�閬� sr.problemlist?.split(",")?.forEach { pId -> if (pList.contains(pId)) { - sr.extension1 = (0 - (sr.maxscore ?: 0)).toString() + sr.setMaxScore() } } } @@ -169,18 +182,21 @@ /** 2.閮ㄥ垎鏈夌壒娈婅瘎鍒嗛�昏緫鐨勮鍒欒繘琛岃绠�*************************************************************************/ itemList.forEach { item -> item.execute(evaluationScene) } - /** 3. 琛ュ叏鍚勪笂绾ц瘎鍒嗛」鐨勮鍒�*************************************************************************/ + /** 3. 琛ュ厖鍚勪笂绾ц瘎鍒嗛」鐨勮鍒�*************************************************************************/ evaluationScene.rules.value?.forEach { r -> val fatherId = r.first.fatherid - for (t in (evaluationScene.topItems.value ?: emptyList())) { + for (t in (evaluationScene.topRules.value ?: emptyList())) { if (t.guid == fatherId) { - var s = t.extension1?.toIntOrNull() ?: 0 - s += r.first.extension1?.toIntOrNull() ?: 0 + var s = t.score + s += r.first.score // 闄愬埗鏈�楂樻墸鍒� - if (abs(s) > (t.maxscore ?: 0)) { - s = 0 - (t.maxscore ?: 0) - } - t.extension1 = s.toString() +// if (abs(s) > (t.maxscore ?: 0)) { +//// s = 0 - (t.maxscore ?: 0) +// t.setMaxScore() +// } else { +// t.score = s +// } + t.score = s break } } @@ -195,15 +211,15 @@ evaluationScene: AopDataSource.EvaluationScene, ): Pair<Evaluation, List<Itemevaluation>>? { val scene = evaluationScene.scene.value ?: return null - val topItems = evaluationScene.topItems.value ?: return null + val topItems = evaluationScene.topRules.value ?: return null val rules = evaluationScene.rules.value ?: return null val subTask = evaluationScene.subTask.value val inspection = evaluationScene.inspection.value val totalScore = evaluationScene.totalScore.value ?: return null var total = 0//鎬绘墸闄ょ殑鍒嗘暟 - evaluationScene.topItems.value?.forEach top@{ top -> - total += top.extension1?.toIntOrNull() ?: 0 + evaluationScene.topRules.value?.forEach top@{ top -> + total += top.score } val evaluation = Evaluation().apply { evaluationScene.baseRule.value?.let { -- Gitblit v1.9.3