src/main/kotlin/cn/flightfeather/supervision/business/report/template/ScoreAnalysisSummary.kt
@@ -3,16 +3,18 @@
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.ColGrade
import cn.flightfeather.supervision.business.report.bean.BaseTemplateResult
import cn.flightfeather.supervision.business.report.bean.ScoreAnalysisSummaryResult
import cn.flightfeather.supervision.business.report.cols.ColTotalGrade
import cn.flightfeather.supervision.common.utils.ExcelUtil
import kotlin.math.round
class ScoreAnalysisSummary(dataSource: DataSource) : BaseTemplate(dataSource) {
    override val cols: List<BaseCols> = listOf(ColGrade())
    override val cols: List<BaseCols> = listOf(ColTotalGrade())
    override var resultObjects: MutableList<BaseTemplateResult> = mutableListOf(ScoreAnalysisSummaryResult())
    override val templateName: String = "分街镇规范性分析表"
    override fun execute() {
    override fun genData() {
        dataSource.reset()
        cols.forEach { it.combineHead(head,dataSource) }
@@ -75,7 +77,7 @@
            tNonstandard += v.nonstandard
            tStandard += v.standard
        }
        summarys.sortByDescending { it.standardPer }
        summarys.sortByDescending { it.standard }
        for (i in summarys.indices) {
            val it = summarys[i]
            //参评百分比
@@ -90,7 +92,11 @@
            //规范区域占比
            it.standardPer = it.standard.toDouble() / tStandard
            //规范占比排名
            it.rank = i + 1
            if (i > 0 && summarys[i - 1].standard == it.standard) {
                it.rank = summarys[i - 1].rank
            } else {
                it.rank = i + 1
            }
        }
        head.clear()
@@ -124,16 +130,18 @@
            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.gradeCount, "${round(it.gradePer * 1000) / 10}%",
                    it.level1, "${round(it.level1Per * 1000) / 10}%",
                    it.level2, "${round(it.level2Per * 1000) / 10}%",
                    it.level3, "${round(it.level3Per * 1000) / 10}%",
                    it.level4, "${round(it.level4Per * 1000) / 10}%",
                    it.nonstandard, "${round(it.nonstandardPer * 1000) / 10}%",
                    it.standard, "${round(it.standardPer * 1000) / 10}%",
                    i + 1, it.townName, it.type, it.sceneCount, it.gradeCount, ExcelUtil.MyCell(it.gradePer.toString(), isPercent = true),
                    it.level1, ExcelUtil.MyCell(it.level1Per.toString(), isPercent = true),
                    it.level2, ExcelUtil.MyCell(it.level2Per.toString(), isPercent = true),
                    it.level3, ExcelUtil.MyCell(it.level3Per.toString(), isPercent = true),
                    it.level4, ExcelUtil.MyCell(it.level4Per.toString(), isPercent = true),
                    it.nonstandard, ExcelUtil.MyCell(it.nonstandardPer.toString(), isPercent = true),
                    it.standard, ExcelUtil.MyCell(it.standardPer.toString(), isPercent = true),
                    it.rank
                )
            )