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/DataProdMiddleServiceImpl.kt | 25 +++++++++++++++++++++++-- 1 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/DataProdMiddleServiceImpl.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/DataProdMiddleServiceImpl.kt index b6e4029..f59c1d0 100644 --- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/DataProdMiddleServiceImpl.kt +++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/DataProdMiddleServiceImpl.kt @@ -3,6 +3,7 @@ import cn.flightfeather.supervision.common.utils.Constant import cn.flightfeather.supervision.common.utils.QueryByCache import cn.flightfeather.supervision.domain.ds1.entity.SceneConstructionSite +import cn.flightfeather.supervision.domain.ds1.repository.TaskRep import cn.flightfeather.supervision.lightshare.service.DataProdBaseService import cn.flightfeather.supervision.lightshare.service.DataProdMiddleService import cn.flightfeather.supervision.lightshare.vo.dataprod.QueryOpt @@ -10,6 +11,7 @@ import cn.flightfeather.supervision.lightshare.vo.dataprod.middle.DPInspectionSummary import cn.flightfeather.supervision.lightshare.vo.dataprod.middle.DPProblemCountByArea import cn.flightfeather.supervision.lightshare.vo.dataprod.middle.DPProblemTypeCount +import org.springframework.beans.BeanUtils import org.springframework.stereotype.Service /** @@ -18,7 +20,10 @@ * @author feiyu02 */ @Service -class DataProdMiddleServiceImpl(private val dataProdBaseService: DataProdBaseService) : DataProdMiddleService { +class DataProdMiddleServiceImpl( + private val dataProdBaseService: DataProdBaseService, private val taskRep: TaskRep, +) : DataProdMiddleService { + override fun getInspectionSummary(queryOpt: QueryOpt): DPInspectionSummary { return QueryByCache.queryCache( @@ -34,7 +39,7 @@ when (it.scene?.typeid.toString()) { // 瀵逛簬寤虹瓚宸ュ湴绫诲瀷锛屾牴鎹叾csStatus鍒ゆ柇鏄惁鍋滃伐鎴栧畬宸� Constant.SceneType.TYPE1.value -> { - when ((it.subScene as SceneConstructionSite).csStatus) { + when ((it.subScene as SceneConstructionSite?)?.csStatus) { "鍋滃伐" -> { res.stopSceneCount++ } @@ -62,6 +67,16 @@ return QueryByCache.queryCache( cache = { return@queryCache null }, calculate = { + // 鏌ヨ涓婁竴涓懆鏈熺殑鎬讳换鍔$粺璁℃儏鍐� + val lastTopTask = taskRep.findLastTopTask(queryOpt.topTaskId) + val lastQueryOpt = QueryOpt() + BeanUtils.copyProperties(queryOpt, lastQueryOpt) + lastQueryOpt.topTaskId = lastTopTask?.tguid + val lastInspectionInfo = dataProdBaseService.getInspectionInfo(lastQueryOpt) + val lastAllProblemList = lastInspectionInfo.flatMap { it.problems ?: emptyList() } + val lastAllProblemMap = lastAllProblemList.groupBy { it.typeid } + + // 鏌ヨ褰撳墠鍛ㄦ湡鐨勬�讳换鍔$粺璁℃儏鍐� val res = mutableListOf<DPProblemTypeCount>() val inspectionInfo = dataProdBaseService.getInspectionInfo(queryOpt) val allProblemList = inspectionInfo.flatMap { it.problems ?: emptyList() } @@ -71,6 +86,12 @@ this.typeName = problemList.firstOrNull()?.typename this.count = problemList.size this.ratio = problemList.size.toDouble() / allProblemList.size + this.ratioDiff = + if (lastAllProblemMap[typeid] == null) { + this.ratio + } else { + this.ratio - lastAllProblemMap[typeid]!!.size.toDouble() / lastAllProblemList.size + } }) } return@queryCache res -- Gitblit v1.9.3