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
                    )
            )
        }
    }