feiyu02
2024-08-02 16b961c2210fe29fd494ac1f9d830dd93503961f
src/main/kotlin/cn/flightfeather/supervision/business/report/cols/ColInspectionInfo.kt
@@ -7,30 +7,35 @@
import cn.flightfeather.supervision.common.utils.ExcelUtil
//监管详情
class ColInspectionInfo() : BaseCols() {
class ColInspectionInfo(chooseIndexList: List<Int> = emptyList()) : BaseCols(chooseIndexList) {
    override fun onHeads(dataSource: DataSource): MutableList<MutableList<ExcelUtil.MyCell>> {
        return mutableListOf(mutableListOf(
            ExcelUtil.MyCell("监管时间"),
            ExcelUtil.MyCell("巡查人员"),
            ExcelUtil.MyCell("问题类型"),
            ExcelUtil.MyCell("问题描述"),
            ExcelUtil.MyCell("问题位置"),
            ExcelUtil.MyCell("问题数"),
            ExcelUtil.MyCell("整改时间"),
            ExcelUtil.MyCell("整改情况"),
            ExcelUtil.MyCell("整改问题"),
            ExcelUtil.MyCell("整改数"),
            ExcelUtil.MyCell("未整改问题"),
            ExcelUtil.MyCell("未整改数"),
            ExcelUtil.MyCell("审核情况"),
            ExcelUtil.MyCell("问题审核时间"),
            ExcelUtil.MyCell("整改审核时间"),
            ExcelUtil.MyCell("问题整改率"),
        ))
        return mutableListOf(
            mutableListOf(
                ExcelUtil.MyCell("监管时间"),
                ExcelUtil.MyCell("巡查人员"),
                ExcelUtil.MyCell("问题类型"),
                ExcelUtil.MyCell("问题描述"),
                ExcelUtil.MyCell("问题位置"),
                ExcelUtil.MyCell("问题数"),
                ExcelUtil.MyCell("整改时间"),
                ExcelUtil.MyCell("整改情况"),
                ExcelUtil.MyCell("整改问题"),
                ExcelUtil.MyCell("整改数"),
                ExcelUtil.MyCell("未整改问题"),
                ExcelUtil.MyCell("未整改数"),
                ExcelUtil.MyCell("问题整改率"),
                ExcelUtil.MyCell("审核情况"),
                ExcelUtil.MyCell("问题审核时间"),
                ExcelUtil.MyCell("整改审核时间"),
                ExcelUtil.MyCell("问题审核数"),
                ExcelUtil.MyCell("问题审核占比"),
                ExcelUtil.MyCell("整改审核数"),
                ExcelUtil.MyCell("整改审核占比"),
            )
        )
    }
    override fun onOneRow(rowData: DataSource.RowData): List<Any> {
        val dateUtil = DateUtil()
        val row = mutableListOf<Any>()
        if (rowData.noRecord()) {
            repeat(heads.last().size) { row.add(("")) }
@@ -38,7 +43,7 @@
            row.apply {
                // 表头:巡查情况及问题、整改统计
                //监管时间
                add(dateUtil.DateToString(rowData.subTask?.planstarttime, DateUtil.DateStyle.MM_DD) ?: "")
                add(DateUtil.DateToString(rowData.subTask?.planstarttime, DateUtil.DateStyle.MM_DD) ?: "")
                //巡查人员
                add(rowData.subTask?.executorrealtimes?.replace("#", "、") ?: "")
                //查询子任务对应的问题,并且根据条件进行筛选
@@ -53,10 +58,15 @@
                var cNum = 0//整改数
                var unChangedProblem = ""//未整改问题
                var unChangeNum = 0//未整改数
                var changePercent: Any = ""//问题整改率
                var checkStatus = ""//审核情况
                var pCheckTime = ""//问题审核时间
                var cCheckTime = ""//整改审核时间
                var changePercent = ""//问题整改率
                var pCheckNum = 0//问题审核数
                var pCheckPer: Any = ""//问题审核占比
                var cCheckNum = 0//整改审核数
                var cCheckPer: Any = ""//整改审核占比F
                rowData.problems.forEach { p ->
                    var typeName = ""
                    for (t in rowData.problemTypes) {
@@ -71,7 +81,7 @@
                    pDes += "${lr}$y、${p.problemname}"
                    pLoc += "${lr}$y、${p.location}"
                    pNum++
                    changeTime = "${lr}$y、${dateUtil.DateToString(p.changedtime, DateUtil.DateStyle.YYYY_MM_DD_HH_MM_CN)}"
                    changeTime += "${lr}$y、${DateUtil.DateToString(p.changedtime, DateUtil.DateStyle.YYYY_MM_DD_HH_MM_CN)}"
                    pChanged += "${lr}$y、${if (p.ischanged == true) "✓" else "×"}"
                    if (p.ischanged == true) {
                        if (changedProblem.isNotBlank()) {
@@ -86,23 +96,48 @@
                        unChangedProblem += "$y、${p.problemname}"
                        unChangeNum++
                    }
                    changePercent = if (pNum == 0) "" else ExcelUtil.MyCell((cNum.toDouble() / pNum).toString(), isPercent = true)
                    val status = when (p.extension3) {
                        Constant.PROBLEM_CHECK_PASS -> "问题审核通过"//
                        Constant.PROBLEM_CHECK_FAIL -> "问题审核未通过"//
                        Constant.PROBLEM_UNCHECKED -> "问题未审核"//
                        Constant.CHANGE_UNCHECKED -> "整改未审核"//
                        Constant.CHANGE_CHECK_PASS -> "整改审核通过"//
                        Constant.CHANGE_CHECK_FAIL -> "整改审核未通过"//
                        Constant.PROBLEM_CHECK_PASS -> {
                            pCheckNum++
                            "问题审核通过"
                        }//
                        Constant.PROBLEM_CHECK_FAIL -> {
                            pCheckNum++
                            "问题审核未通过"
                        }//
                        Constant.CHANGE_UNCHECKED -> {
                            pCheckNum++
                            "整改未审核"
                        }//
                        Constant.CHANGE_CHECK_PASS -> {
                            pCheckNum++
                            cCheckNum++
                            "整改审核通过"
                        }//
                        Constant.CHANGE_CHECK_FAIL -> {
                            pCheckNum++
                            cCheckNum++
                            "整改审核未通过"
                        }//
                        else -> "问题未审核"
                    }
                    checkStatus += "${lr}$y、${status}"
                    changePercent = if (pNum == 0) "" else "${(cNum * 100 / pNum)}%"
                    pCheckTime += "${lr}$y、/"
                    cCheckTime += "${lr}$y、/"
                    pCheckPer = if (pNum == 0) "" else ExcelUtil.MyCell((pCheckNum.toDouble() / pNum).toString(), isPercent = true)
                    cCheckPer = if (cNum == 0) "" else ExcelUtil.MyCell((cCheckNum.toDouble() / cNum).toString(), isPercent = true)
                    y++
                }
                addAll(
                    listOf(
                        pType, pDes, pLoc, pNum, changeTime, pChanged, changedProblem, cNum,
                        unChangedProblem, unChangeNum, checkStatus, pCheckTime, cCheckTime, changePercent
                        unChangedProblem, unChangeNum, changePercent, checkStatus, pCheckTime, cCheckTime,
                        pCheckNum, pCheckPer, cCheckNum, cCheckPer
                    )
                )
            }