From aed297a5fbc8df9dab01b28da21f872ee546b43c Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期一, 13 十月 2025 16:15:11 +0800
Subject: [PATCH] 2025.10.13 1. 统一调整controller层的返回类型,通过添加全局响应增强器GlobalResponseAdvice来管理返回结果; 2. 新增mybatis-generator自定义插件,实现给数据库实体entity自动添加swagger注解@ApiModel和@ApiModelProperty
---
src/main/kotlin/cn/flightfeather/supervision/business/report/template/ProAnalysisSummary.kt | 57 +++++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 41 insertions(+), 16 deletions(-)
diff --git a/src/main/kotlin/cn/flightfeather/supervision/business/report/template/ProAnalysisSummary.kt b/src/main/kotlin/cn/flightfeather/supervision/business/report/template/ProAnalysisSummary.kt
index 8317647..fdec9ce 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/business/report/template/ProAnalysisSummary.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/business/report/template/ProAnalysisSummary.kt
@@ -4,19 +4,20 @@
import cn.flightfeather.supervision.business.report.BaseTemplate
import cn.flightfeather.supervision.business.report.DataSource
import cn.flightfeather.supervision.business.report.cols.ColInspectionInfo
+import cn.flightfeather.supervision.business.report.cols.ColStrategy
+import cn.flightfeather.supervision.business.report.cols.ColTotalGrade
import cn.flightfeather.supervision.common.utils.Constant
import cn.flightfeather.supervision.common.utils.ExcelUtil
import cn.flightfeather.supervision.domain.ds1.entity.SceneConstructionSite
import cn.flightfeather.supervision.domain.ds1.entity.SceneMixingPlant
import cn.flightfeather.supervision.domain.ds1.entity.SceneStorageYard
import cn.flightfeather.supervision.domain.ds1.entity.SceneWharf
-import kotlin.math.round
/**
* 鍒嗚闀囬棶棰樻暣鏀瑰垎鏋愭眹鎬昏〃
*/
class ProAnalysisSummary(dataSource: DataSource) : BaseTemplate(dataSource) {
- override val cols: List<BaseCols> = listOf(ColInspectionInfo())
+ override val cols: List<BaseCols> = listOf(ColInspectionInfo(), ColTotalGrade(), ColStrategy())
override val templateName: String = "鍒嗚闀囬棶棰樻暣鏀瑰垎鏋愭眹鎬昏〃"
@@ -31,6 +32,8 @@
if (rowData.noRecord()) return@loop
val r = cols[0].getOneRow(rowData)
+ val r1 = cols[1].getOneRow(rowData)
+ val r2 = cols[2].getOneRow(rowData)
val k = rowData.scene?.townname
if (!districtMap.containsKey(k)) {
@@ -43,22 +46,22 @@
districtMap[k]?.apply {
sceneCount++
val status = when (dataSource.config.sceneType.toString()) {
- Constant.ScenseType.TYPE1.value -> {
+ Constant.SceneType.TYPE1.value -> {
(rowData.baseScene as SceneConstructionSite?)?.csStatus
}
- Constant.ScenseType.TYPE2.value -> {
+ Constant.SceneType.TYPE2.value -> {
(rowData.baseScene as SceneWharf?)?.getwStatus()
}
- Constant.ScenseType.TYPE3.value -> {
+ Constant.SceneType.TYPE3.value -> {
(rowData.baseScene as SceneMixingPlant?)?.mpStatus
}
- Constant.ScenseType.TYPE14.value -> {
+ Constant.SceneType.TYPE14.value -> {
(rowData.baseScene as SceneStorageYard?)?.syStatus
}
else -> ""
}
// FIXME: 2022/7/18 鍚庣画鍦烘櫙鐨勬柦宸ョ姸鎬佹敼涓哄竷灏斿�煎瓨鍌�
- if ((status?.contains("瀹屽伐") == true) || (status?.contains("鏈柦宸�") == true) || (status?.contains("鍋�") == true)
+ if ((status?.contains("瀹屽伐") == true) || (status?.contains("鏈柦宸�") == true) || (status?.contains("鍋滃伐") == true)
|| (status?.contains("鍏�") == true)
) {
inactiveScenes++
@@ -70,6 +73,13 @@
if (pNum > 0 && cNum > 0) changeScenes++
proNum += pNum
changeNum += cNum
+
+
+ //鏍规嵁瑙勮寖鎬у拰鐩戠绛栫暐缁撴灉鍒ゆ柇鏄惁涓洪噸鐐圭洃绠″璞�
+ val standard = r1[1] as ExcelUtil.MyCell
+ if (standard.text.contains("涓ラ噸涓嶈鑼�") || r2[0].toString().contains("7銆�")) {
+ focusSceneNum++
+ }
}
}
@@ -81,23 +91,32 @@
}
districtMap.forEach {
val v = it.value
- v.changeScenePer = round(v.changeScenes.toDouble() / v.sceneCount * 1000) / 1000
- v.proPer = round(v.proNum.toDouble() / totalPro * 1000) / 1000
- v.changePer = round(v.changeNum.toDouble() / v.proNum * 1000) / 1000
+ v.changeScenePer = v.changeScenes.toDouble() / v.sceneCount
+ v.proPer = v.proNum.toDouble() / totalPro
+ v.changePer = v.changeNum.toDouble() / v.proNum
+ v.focusScenePer = v.focusSceneNum.toDouble() / v.sceneCount
}
//鏁存敼鍗曚綅姣旀帓鍚�
summarys.sortByDescending {
it.changeScenePer
}
for (i in summarys.indices) {
- summarys[i].changeSceneRank = i + 1
+ if (i > 0 && summarys[i - 1].changeScenePer == summarys[i].changeScenePer) {
+ summarys[i].changeSceneRank = summarys[i - 1].changeSceneRank
+ } else {
+ summarys[i].changeSceneRank = i + 1
+ }
}
//闂鏁存敼鐜囨帓鍚�
summarys.sortByDescending {
it.changePer
}
for (i in summarys.indices) {
- summarys[i].proChangeRank = i + 1
+ if (i > 0 && summarys[i - 1].changePer == summarys[i].changePer) {
+ summarys[i].proChangeRank = summarys[i - 1].proChangeRank
+ } else {
+ summarys[i].proChangeRank = i + 1
+ }
}
//鏇存柊琛ㄥご
@@ -131,12 +150,15 @@
ExcelUtil.MyCell("鎷熷垪鍏ラ噸鐐圭洃绠″崰姣�"),
))
//鏇存柊鍐呭
- summarys.forEach {
+ summarys.sortBy { it.townCode }
+ for (i in summarys.indices) {
+ val it = summarys[i]
contents.add(
mutableListOf(
- it.townCode, it.townName, it.type, it.sceneCount, it.inactiveScenes, it.activeScenes, it.changeScenes,
- "${round(it.changeScenePer * 1000) / 10}%",
- it.proNum, "${round(it.proPer * 1000) / 10}%", it.changeNum, "${round(it.changePer * 1000) / 10}%", it.changeSceneRank, it.proChangeRank
+ i+1, it.townName, it.type, it.sceneCount, it.inactiveScenes, it.activeScenes, it.changeScenes,
+ ExcelUtil.MyCell(it.changeScenePer.toString(), isPercent = true),
+ it.proNum, ExcelUtil.MyCell(it.proPer.toString(), isPercent = true), it.changeNum, ExcelUtil.MyCell(it.changePer.toString(), isPercent = true), it.changeSceneRank, it.proChangeRank,
+ it.focusSceneNum, ExcelUtil.MyCell(it.focusScenePer.toString(), isPercent = true)
)
)
}
@@ -165,5 +187,8 @@
var changeSceneRank = 0
var proChangeRank = 0
+
+ var focusSceneNum = 0
+ var focusScenePer = .0
}
}
\ No newline at end of file
--
Gitblit v1.9.3