From 1a677d2b4a4bc615602f8c2a22bc07ec1356e5be Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期四, 16 十月 2025 17:39:06 +0800
Subject: [PATCH] 2025.10.16 1. 根据全局响应增强器GlobalResponseAdvice,将原先的BaseResPack接口包装函数统一去除; 2. 新增三种类型的数据产品数据库实体 3. 新增典型问题场景清单中间数据产品接口
---
src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/TaskServiceImpl.kt | 104 +++++++++++++++++++++++++++++++++------------------
1 files changed, 67 insertions(+), 37 deletions(-)
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/TaskServiceImpl.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/TaskServiceImpl.kt
index 87908bb..f103925 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/TaskServiceImpl.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/TaskServiceImpl.kt
@@ -10,6 +10,7 @@
import cn.flightfeather.supervision.common.utils.Constant
import cn.flightfeather.supervision.common.utils.DateUtil
import cn.flightfeather.supervision.common.utils.UUIDGenerator
+import cn.flightfeather.supervision.domain.ds1.repository.SceneRep
import cn.flightfeather.supervision.domain.ds1.repository.SubTaskRep
import cn.flightfeather.supervision.domain.ds1.repository.TaskRep
import cn.flightfeather.supervision.lightshare.service.*
@@ -26,6 +27,7 @@
val taskMapper: TaskMapper,
private val taskRep: TaskRep,
private val subTaskRep: SubTaskRep,
+ private val sceneRep: SceneRep,
) : TaskService {
@Autowired
@@ -318,55 +320,64 @@
return taskVoList
}
- override fun getDayTask(taskId: String, userId: String, userType: String): List<DayTaskProgressVo> {
- val example = Example(Task::class.java)
- val criteria = example.createCriteria()
- //鏋勯�犳煡璇㈡潯浠�
- criteria.andEqualTo("tsguid", taskId)
- if (userType == "1") {
- criteria.andLike("executorguids", "%$userId%")
- }
-
+ override fun getDayTask(taskId: String, userId: String?, userType: String): List<DayTaskProgressVo> {
val resultList = ArrayList<DayTaskProgressVo>()
+ // 鑾峰彇鎬讳换鍔′笅鎵�鏈夋棩浠诲姟
+ val dayTasks = if (userType == "1") {
+ taskRep.findDayTasks(taskId, userId)
+ } else {
+ taskRep.findDayTasks(taskId)
+ }
+
+ // 鑾峰彇鎬讳换鍔′笅鎵�鏈夌殑瀛愪换鍔�
+ val subTasks = subTaskRep.findAll(Subtask().apply { tguid = taskId })
+
//鏍规嵁sql鏉′欢鏌ヨ
- taskMapper.selectByExample(example).forEach {
- val exampleTotal = Example(Subtask::class.java).apply {
- createCriteria().andEqualTo("tsguid", it.tguid)
+ dayTasks.forEach {t->
+ // 绛涢�夊綋鍓嶆棩浠诲姟涓嬬殑瀛愪换鍔�
+ val filterSubTasks = subTasks.filter {s->
+ s?.tsguid == t?.tguid
+ }
+ // 瀛愪换鍔℃�绘暟
+ val total = filterSubTasks.size
+
+ // 瀛愪换鍔″畬鎴愭暟
+ val complete = filterSubTasks.count {fs->
+ fs?.status == Constant.TaskProgress.RUNINGSTATUS3.text
}
- val total = subtaskMapper.selectCountByExample(exampleTotal)
-
- val exampleComplete = exampleTotal.apply {
- and().andEqualTo("status", Constant.TaskProgress.RUNINGSTATUS3.text)
+ // 鑾峰彇褰撴棩鎵�鏈夌殑闂
+ val subTaskIds = filterSubTasks.map { fs-> fs?.stguid }
+ val problemList = if (subTaskIds.isNotEmpty()) {
+ problemListMapper.selectByExample(Example(Problemlist::class.java).apply {
+ createCriteria().andIn("stguid", subTaskIds)
+ })
+ } else{
+ emptyList()
}
- val complete = subtaskMapper.selectCountByExample(exampleComplete)
+
var changed = 0
- problemListMapper.findUnchangedCount(it.tguid ?: "").forEach { i ->
- //缁撴灉琛ㄧず璇ュ瓙浠诲姟鏈暣鏀归棶棰樻暟
- if (i == 0) {
- changed++
- }
- }
-
//瀹℃牳鏄惁瀹屾垚
- var check = false
- with(subtaskMapper.selectByExample(exampleTotal)) breaking@{
- forEach {
- problemListMapper.selectByExample(Example(Problemlist::class.java).apply {
- createCriteria().andEqualTo("stguid", it.stguid)
- }).forEach { problem ->
- if (problem.extension3 == Constant.PROBLEM_UNCHECKED) {
- check = true
- return@breaking
- }
+ var check = true
+ filterSubTasks.forEach {fs ->
+ // 绛涢�夋瘡涓瓙浠诲姟涓嬬殑闂鏈暣鏀规暟
+ problemList.filter { p-> p?.stguid == fs?.stguid }.onEach { pro ->
+ // 褰撳瓨鍦ㄨ嚦灏戜竴涓棶棰樻病鏈夊鏍告椂锛屽綋鏃ュ鏍哥姸鎬佷负鏈鏍�
+ if (pro.extension3 == Constant.PROBLEM_UNCHECKED || pro.extension3 == Constant.CHANGE_UNCHECKED) {
+ check = false
+ }
+ }.count { i -> i?.ischanged != true }.let { c ->
+ // 娌℃湁鏈暣鏀归棶棰樻椂锛屽垯琛ㄧず璇ュ瓙浠诲姟宸茬粡鏁存敼瀹屾垚
+ if (c == 0) {
+ changed++
}
}
}
resultList.add(DayTaskProgressVo(
- it.tguid, it.starttime, taskId, complete, changed, total, check
+ t?.tguid, t?.starttime, taskId, complete, changed, total, check
))
}
@@ -757,14 +768,33 @@
districtName = t.districtname
townCode = t.towncode
townName = t.townname
+
var count = 0
+ val countByScene = mutableMapOf<String?, Int>()
+ val allScenes = sceneRep.findSceneList(t.tguid!!, areaVo.scensetypeid?.toInt(), areaVo.towncode)
taskRep.findMonitorList(t.tguid!!, areaVo.scensetypeid).forEach {
- val c = if (it.extension1 != null) it.extension1!!.toInt() else 1
+ val c = it.monitornum ?: 1
count += c
+
+ allScenes.find { s-> s?.guid == it.sguid }?.let { s->
+// if (!countByScene.containsKey(s.type)) {
+// countByScene[s.type] = 0
+// }
+ countByScene[s.type] = (countByScene[s.type] ?: 0) + c
+ }
}
totaltask = count
- subTaskSummary = subTaskRep.findSummary(areaVo)
+ totaltaskByScene = countByScene
+
+ subTaskSummary = subTaskRep.findSummary(AreaVo().apply {
+ topTaskId = t.tguid
+ })
+ val completeByScene = mutableMapOf<String?, Int>()
+ subTaskSummary?.forEach {
+ completeByScene[it.sceneType] = (completeByScene[it.sceneType] ?: 0) + 1
+ }
completetask = this.subTaskSummary?.size
+ completetaskByScene = completeByScene
}
res.add(pro)
}
--
Gitblit v1.9.3