| | |
| | | import cn.flightfeather.supervision.lightshare.service.DataProdBaseService |
| | | import cn.flightfeather.supervision.lightshare.service.DataProdMiddleService |
| | | import cn.flightfeather.supervision.lightshare.vo.dataprod.QueryOpt |
| | | import cn.flightfeather.supervision.lightshare.vo.dataprod.middle.DPEvaluationByArea |
| | | 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 cn.flightfeather.supervision.lightshare.vo.dataprod.middle.* |
| | | import org.springframework.beans.BeanUtils |
| | | import org.springframework.stereotype.Service |
| | | |
| | |
| | | this.townName = firstSubtask?.townname |
| | | this.sceneCount = ins.distinctBy { it.subTask?.scenseid }.size |
| | | this.problemCount = allProblemList.size |
| | | this.ratio = problemCount.toDouble() / sceneCount |
| | | this.proAvg = problemCount.toDouble() / sceneCount |
| | | }) |
| | | } |
| | | |
| | |
| | | }, |
| | | ) |
| | | } |
| | | |
| | | override fun getTypicalProblems(queryOpt: QueryOpt, rateTotal: Double): List<DPTypicalProblemScene> { |
| | | return QueryByCache.queryCache( |
| | | cache = { return@queryCache null }, |
| | | calculate = { |
| | | val res = mutableListOf<DPTypicalProblemScene>() |
| | | val inspectionInfo = dataProdBaseService.getInspectionInfo(queryOpt) |
| | | inspectionInfo.groupBy { it.subTask?.scenseid }.forEach { (sceneId, ins) -> |
| | | val problems = ins.flatMap { it.problems ?: emptyList() } |
| | | if (problems.isEmpty()) return@forEach |
| | | |
| | | val unChangePros = problems.filter { it.ischanged != true } |
| | | val changeRatio = if (problems.isNotEmpty()) { |
| | | (problems.size - unChangePros.size.toDouble()) / problems.size |
| | | } else { |
| | | 0.0 |
| | | } |
| | | if (changeRatio < rateTotal) { |
| | | res.add(DPTypicalProblemScene().apply { |
| | | val firstSubtask = ins.first().subTask |
| | | this.sceneId = sceneId |
| | | this.sceneName = firstSubtask?.scensename |
| | | this.townCode = firstSubtask?.towncode |
| | | this.townName = firstSubtask?.townname |
| | | this.problemCount = problems.size |
| | | this.changeCount = problems.size - unChangePros.size |
| | | this.changeRatio = changeRatio |
| | | this.typicalProblems = unChangePros |
| | | .distinctBy { it.ptguid } |
| | | }) |
| | | } |
| | | } |
| | | return@queryCache res |
| | | }, |
| | | ) |
| | | } |
| | | } |