feiyu02
2025-12-20 5a003a42d2b34e8362910ac1d3e5a8866768e5fe
src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/DayTaskProgressVo.kt
@@ -1,25 +1,80 @@
package cn.flightfeather.supervision.lightshare.vo
import org.apache.poi.hpsf.Decimal
import java.math.BigDecimal
import java.text.DecimalFormat
import java.util.*
import kotlin.math.round
/**
 * @author riku
 * Date: 2019/7/30
 * 日任务进度类
 */
data class DayTaskProgressVo(
        //日任务id
        val guid: String? = null,
        //日任务时间
        val date: Date? = null,
        //所属顶层任务id
        val tsGuid: String? = null,
        //完成子任务数
        val completeTaskNum: Int = 0,
        //已整改子任务数
        val changedTaskNum: Int = 0,
        //总子任务数
        val totalTaskNum: Int = 0,
        //是否有未审核的问题
        val check: Boolean = false
)
class DayTaskProgressVo {
    //日任务id
    var guid: String? = null
    //日任务时间
    var date: Date? = null
    //所属顶层任务id
    var tsGuid: String? = null
    //总子任务数
    var totalTaskNum: Int = 0
    //完成子任务数
    var completeTaskNum: Int = 0
    //已整改子任务数
    var changedTaskNum: Int = 0
    //当存在至少一个问题没有审核时,当日审核状态为未审核
    var check: Boolean = false
    // 总问题数
    var totalProblemNum: Int = 0
    // 总整改问题数
    var changedProblemNum: Int = 0
    // 每个用户的单日任务进度
    var progressPerUser: List<ProgressPerUserPerDay>? = null
}
class ProgressPerUserPerDay{
    //用户id
    var userId: String? = null
    //用户名
    var userName: String? = null
    //总子任务数
    var totalTaskNum: Double = .0
    //完成子任务数
    var completeTaskNum: Double = .0
    // 总问题数
    var totalProblemNum: Double = .0
    //已整改问题数
    var changedProblemNum: Double = .0
    //已整改问题数(在当天内整改)
    var changedProblemNumOnTime: Double = .0
    //平均巡查时长(秒)
    var avgInspectionTime: Long = 0
    /**
     * 格式化Double参数,保留两位小数,四舍五入
     */
    fun formatParam() {
        totalTaskNum = numberFormat(totalTaskNum)
        completeTaskNum = numberFormat(completeTaskNum)
        totalProblemNum = numberFormat(totalProblemNum)
        changedProblemNum = numberFormat(changedProblemNum)
        changedProblemNumOnTime = numberFormat(changedProblemNumOnTime)
    }
    private fun numberFormat(value:Double): Double {
        return BigDecimal(value).setScale(2, BigDecimal.ROUND_HALF_UP).toDouble()
    }
}