src/main/kotlin/cn/flightfeather/supervision/business/report/template/ProTypeStatusSummary.kt
@@ -3,19 +3,22 @@
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.bean.BaseTemplateResult
import cn.flightfeather.supervision.business.report.bean.ProTypeStatusSummaryResult
import cn.flightfeather.supervision.common.utils.Constant
import cn.flightfeather.supervision.common.utils.ExcelUtil
import cn.flightfeather.supervision.domain.ds1.entity.SceneConstructionSite
import kotlin.math.round
class ProTypeStatusSummary(dataSource: DataSource) : BaseTemplate(dataSource) {
    override val cols: List<BaseCols> = listOf()
    override var resultObjects: MutableList<BaseTemplateResult> = mutableListOf(ProTypeStatusSummaryResult())
    override val templateName: String = "工地施工阶段问题分类分析表"
    @Throws(Exception::class)
    override fun execute() {
        if (dataSource.config.sceneType.toString() != Constant.ScenseType.TYPE1.value) {
            throw IllegalStateException("${templateName}只能针对工地进行分析,当前传入场景类型编号为${dataSource.config.sceneType}")
    override fun genData() {
        if (dataSource.config.sceneType.toString() != Constant.SceneType.TYPE1.value) {
//            throw IllegalStateException("${templateName}只能针对工地进行分析,当前传入场景类型编号为${dataSource.config.sceneType}")
            println("sadas")
        }
        dataSource.reset()
@@ -23,7 +26,8 @@
        val proMap = mutableMapOf<String?, MutableMap<String?, Summary>>()
        dataSource.loop { _, rowData ->
            rowData.problems.forEach {
                val s = (rowData.baseScene as SceneConstructionSite?)?.csStatus
                val baseScene = rowData.baseScene as SceneConstructionSite?
                val s = baseScene?.siExtension1
                if (!proMap.containsKey(s)) {
                    proMap[s] = mutableMapOf()
                }
@@ -32,7 +36,8 @@
                    proMap[s]?.put(pt, Summary().apply {
                        for (p in rowData.problemTypes) {
                            if (p.guid == pt) {
                                status = s ?: ""
                                stage = s ?: ""
                                status = baseScene?.csStatus ?: ""
                                proType = p.typename ?: ""
                                proDes = p.description ?: ""
                                break
@@ -100,10 +105,10 @@
            val s = summarys[i]
            contents.add(
                mutableListOf(
                    i + 1, "", "", dataSource.rowData.scene?.type ?: "", "", s.status, s.status,
                    i + 1, dataSource.year, dataSource.month, dataSource.rowData.scene?.type ?: "", dataSource.area, s.status, s.stage,
                    s.proType, s.proDes,
                    s.count, "${round(s.countPer * 1000) / 10}%",
                    s.changeNum, "${round(s.changePer * 1000) / 10}%",
                    s.count, ExcelUtil.MyCell(s.countPer.toString(), isPercent = true),
                    s.changeNum, ExcelUtil.MyCell(s.changePer.toString(), isPercent = true),
                )
            )
        }
@@ -111,6 +116,7 @@
    inner class Summary() {
        var status = ""
        var stage = ""
        var proType = ""
        var proDes = ""
        var count = 0