From 46872a311da9480d3edb19223aca2e0833fb1e31 Mon Sep 17 00:00:00 2001
From: hcong <1050828145@qq.com>
Date: 星期二, 17 十二月 2024 11:41:00 +0800
Subject: [PATCH] 1. 完成数据产品中间结果基本信息和具体信息入库 2. 修改ColInspectionInfo.kt 监管时间格式修改为yyyy-mm-dd 3. 新增数据产品类型枚举类 DataProductType 4. 修改BaseTemplate实现类通过重写genData方法生成Template相关数据 5. TODO 其他未涉及到的产品对象的中间结果对象

---
 src/main/kotlin/cn/flightfeather/supervision/business/report/template/ProTypeRankSummary.kt |   41 +++++++++++++++++++++++++++++------------
 1 files changed, 29 insertions(+), 12 deletions(-)

diff --git a/src/main/kotlin/cn/flightfeather/supervision/business/report/template/ProTypeRankSummary.kt b/src/main/kotlin/cn/flightfeather/supervision/business/report/template/ProTypeRankSummary.kt
index 0eec5f3..642e304 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/business/report/template/ProTypeRankSummary.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/business/report/template/ProTypeRankSummary.kt
@@ -3,15 +3,16 @@
 import cn.flightfeather.supervision.business.report.BaseCols
 import cn.flightfeather.supervision.business.report.BaseTemplate
 import cn.flightfeather.supervision.business.report.DataSource
-import cn.flightfeather.supervision.business.report.cols.*
+import cn.flightfeather.supervision.business.report.bean.BaseTemplateResult
+import cn.flightfeather.supervision.business.report.bean.ProTypeRankSummaryResult
 import cn.flightfeather.supervision.common.utils.ExcelUtil
 import kotlin.math.round
 
 open class ProTypeRankSummary(dataSource: DataSource) : BaseTemplate(dataSource) {
     override val cols: List<BaseCols> = listOf()
     override val templateName: String = "闂涓庢暣鏀瑰垎绫绘帓鍚�"
-
-    override fun execute() {
+    override var resultObjects: MutableList<BaseTemplateResult> = mutableListOf(ProTypeRankSummaryResult())
+    override fun genData() {
         dataSource.reset()
 
         val proMap = mutableMapOf<String?, Summary>()
@@ -48,19 +49,27 @@
         for (i in summarys.indices) {
             val it = summarys[i]
             it.countPer = it.count.toDouble() / tPros
-            it.countRank = i + 1
+            if (i > 0 && summarys[i - 1].countPer == it.countPer) {
+                it.countRank = summarys[i - 1].countRank
+            } else {
+                it.countRank = i + 1
+            }
             it.changePer = it.changeNum.toDouble() / it.count
         }
         summarys.sortByDescending { it.changePer }
         for (i in summarys.indices) {
             val it = summarys[i]
-            it.changeRank = i + 1
+            if (i > 0 && summarys[i - 1].changePer == it.changePer) {
+                it.changeRank = summarys[i - 1].changeRank
+            } else {
+                it.changeRank = i + 1
+            }
         }
 
         formatTable(summarys)
     }
 
-    open fun formatTable(summarys: List<Summary>) {
+    open fun formatTable(summarys: MutableList<Summary>) {
         head.clear()
         head.add(
             mutableListOf(
@@ -94,13 +103,21 @@
         )
         for (i in summarys.indices) {
             val s = summarys[i]
+//            contents.add(
+//                mutableListOf(
+//                    i + 1, dataSource.year, dataSource.month, dataSource.rowData.scene?.type ?: "", dataSource.area,
+//                    s.proType, s.proDes,
+//                    s.count, "${round(s.countPer * 1000) / 10}%", s.countRank,
+//                    s.changeNum, "${round(s.changePer * 1000) / 10}%", s.changeRank
+//                )
+//            )
             contents.add(
-                mutableListOf(
-                    i + 1, "", "", dataSource.rowData.scene?.type ?: "", "",
-                    s.proType, s.proDes,
-                    s.count, "${round(s.countPer * 1000) / 10}%", s.countRank,
-                    s.changeNum, "${round(s.changePer * 1000) / 10}%", s.changeRank
-                )
+                    mutableListOf(
+                            i + 1, dataSource.year, dataSource.month, dataSource.rowData.scene?.type ?: "", dataSource.area,
+                            s.proType, s.proDes,
+                            s.count, ExcelUtil.MyCell(s.countPer.toString(), isPercent = true), s.countRank,
+                            s.changeNum, ExcelUtil.MyCell(s.changePer.toString(), isPercent = true), s.changeRank
+                    )
             )
         }
     }

--
Gitblit v1.9.3