From 7cbe1610b87da19ed8a146a09b1117f92d9d3d98 Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期五, 19 九月 2025 17:30:37 +0800
Subject: [PATCH] 2025.9.19 1. 联合前端调试数据产品接口(待完成)

---
 src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/DataProdBaseServiceImpl.kt |   48 +++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 39 insertions(+), 9 deletions(-)

diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/DataProdBaseServiceImpl.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/DataProdBaseServiceImpl.kt
index 4fd0203..8c6e098 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/DataProdBaseServiceImpl.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/DataProdBaseServiceImpl.kt
@@ -120,11 +120,23 @@
                 })
                 if (subtaskList.isEmpty()) return@queryCache emptyList<DPEvaluateInfo>()
 
+                val sceneList = aopDbMapper.scenseMapper.selectByExample(Example(Scense::class.java).apply {
+                    createCriteria().andIn("guid", subtaskList.map { it.scenseid })
+                        .andEqualTo("typeid", queryOpt.sceneTypeId)
+                })
+
+                val validSubtaskList = subtaskList.filter { sceneList.find { scene -> scene.guid == it.scenseid } != null }
+
                 aopDbMapper.evaluationMapper.selectByExample(Example(Evaluation::class.java).apply {
-                    createCriteria().andIn("stguid", subtaskList.map { it.stguid })
+                    createCriteria().andIn("stguid", validSubtaskList.map { it.stguid })
                 }).forEach {
                     res.add(DPEvaluateInfo().apply {
-                        subTask = subtaskList.find { sub-> sub.stguid == it.stguid }
+                        val scene = sceneList.find { sce-> sce.guid == it.sguid }
+                        index = scene?.index
+                        subTask = validSubtaskList.find { sub-> sub.stguid == it.stguid }?.apply {
+                            towncode = scene?.towncode
+                            townname = scene?.townname
+                        }
                         evaluate = it
                         val score = it.resultscorebef?.toIntOrNull() ?: -1
                         scoreLevel = when {
@@ -136,6 +148,7 @@
                         }
                     })
                 }
+                res.sortBy { it.index }
                 return@queryCache res
             },
             save = {  }
@@ -152,16 +165,27 @@
                 })
                 if (subtaskList.isEmpty()) return@queryCache emptyList<DPInspectionInfo>()
 
+                val sceneList = aopDbMapper.scenseMapper.selectByExample(Example(Scense::class.java).apply {
+                    createCriteria().andIn("guid", subtaskList.map { it.scenseid })
+                        .andEqualTo("typeid", queryOpt.sceneTypeId)
+                })
+                val validSubtaskList = subtaskList.filter { sceneList.find { scene -> scene.guid == it.scenseid } != null }
+
                 val problemList = aopDbMapper.problemlistMapper.selectByExample(Example(Problemlist::class.java).apply {
-                    createCriteria().andIn("stguid", subtaskList.map { it.stguid })
+                    createCriteria().andIn("stguid", validSubtaskList.map { it.stguid })
                 })
 
                 val problemTypeList = aopDbMapper.problemtypeMapper.selectByExample(Example(Problemtype::class.java)
                     .apply { createCriteria().andIn("guid", problemList.map { it.ptguid }) })
 
-                subtaskList.forEach {
+                validSubtaskList.forEach {
                     res.add(DPInspectionInfo().apply {
-                        subTask = it
+                        val scene = sceneList.find { sce-> sce.guid == it.scenseid }
+                        index = scene?.index
+                        subTask = it.apply {
+                            towncode = scene?.towncode
+                            townname = scene?.townname
+                        }
                         problems = problemList.filter { problem-> problem.stguid == it.stguid }.map { problem->
                             val problemListVo = ProblemListVo()
                             BeanUtils.copyProperties(problem, problemListVo)
@@ -175,7 +199,7 @@
                         }
                     })
                 }
-
+                res.sortBy { it.index }
                 return@queryCache res
             },
             save = {  }
@@ -187,16 +211,22 @@
             cache = { return@queryCache null },
             calculate = {
                 val res = mutableListOf<DPMonitorDataInfo>()
-                val objList = aopDbMapper.monitorobjectversionMapper.selectByExample(Example(Monitorobjectversion::class.java).apply {
+                val sceneIdList = aopDbMapper.monitorobjectversionMapper.selectByExample(Example(Monitorobjectversion::class.java).apply {
                     createCriteria().andEqualTo("tid", queryOpt.topTaskId)
+                }).map { it.sguid }
+                if (sceneIdList.isEmpty()) return@queryCache res
+
+                val sceneList = aopDbMapper.scenseMapper.selectByExample(Example(Scense::class.java).apply {
+                    createCriteria().andIn("guid", sceneIdList)
+                        .andEqualTo("typeid", queryOpt.sceneTypeId)
                 })
-                if (objList.isEmpty()) return@queryCache res
 
                 aopDbMapper.dustDataResultMapper.selectByExample(Example(DustDataResult::class.java).apply {
                     createCriteria().andBetween("drTime", queryOpt.startTime, queryOpt.endTime)
-                        .andIn("objectId", objList.map { it.sguid })
+                        .andIn("drSceneId", sceneList.map { it.guid })
                 }).forEach {
                     res.add(DPMonitorDataInfo().apply {
+                        scene = sceneList.find { scene -> scene.guid == it?.drSceneId }
                         data = it
                     })
                 }

--
Gitblit v1.9.3