| | |
| | | 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.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 val templateName: String = "分街镇规范性分析表" |
| | | |
| | |
| | | tNonstandard += v.nonstandard |
| | | tStandard += v.standard |
| | | } |
| | | summarys.sortByDescending { it.standardPer } |
| | | summarys.sortByDescending { it.standard } |
| | | for (i in summarys.indices) { |
| | | val it = summarys[i] |
| | | //参评百分比 |
| | |
| | | //规范区域占比 |
| | | it.standardPer = it.standard.toDouble() / tStandard |
| | | //规范占比排名 |
| | | if (i > 0 && summarys[i - 1].standard == it.standard) { |
| | | it.rank = summarys[i - 1].rank |
| | | } else { |
| | | it.rank = i + 1 |
| | | } |
| | | } |
| | | |
| | | head.clear() |
| | |
| | | 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 |
| | | ) |
| | | ) |