From a3cc1d220f8a1de11874bebceba0130d32157ff1 Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期二, 30 九月 2025 09:26:32 +0800 Subject: [PATCH] 2025.9.30 1. 联合前端调试数据产品接口(待完成) --- 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