feiyu02
2022-11-15 909fd8929d7906f1dca68acc05e36e29b0b9192c
src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/SubtaskServiceImpl.kt
@@ -1,7 +1,7 @@
package cn.flightfeather.supervision.lightshare.service.impl
import cn.flightfeather.supervision.business.AutoScore
import cn.flightfeather.supervision.business.AutoScore2
import cn.flightfeather.supervision.business.storage.StAutoScore
import cn.flightfeather.supervision.business.storage.item.*
import cn.flightfeather.supervision.domain.ds1.entity.*
import cn.flightfeather.supervision.domain.ds1.mapper.*
import cn.flightfeather.supervision.common.utils.Constant
@@ -20,10 +20,21 @@
import java.util.*
@Service
class SubtaskServiceImpl(val subtaskMapper: SubtaskMapper) : SubtaskService {
class SubtaskServiceImpl(
    private val subtaskMapper: SubtaskMapper,
    private val mpScoreItem_1: MpScoreItem_1,
    private val mpScoreItem_2: MpScoreItem_2,
    private val stScoreItem_1: StScoreItem_1,
    private val whScoreItem_1: WhScoreItem_1,
    private val whScoreItem_2: WhScoreItem_2,
) : SubtaskService {
    val dateUtil = DateUtil()
    @Autowired
    lateinit var scoreItem1: CsScoreItem_1
    @Autowired
    lateinit var scoreItem2: CsScoreItem_2
    @Autowired
    lateinit var taskService: TaskService
    @Autowired
@@ -465,15 +476,19 @@
            criteria.andEqualTo("stguid", subtask.stguid)
            val result = evaluationMapper.selectByExample(example)
            if (result.isEmpty()) {
                if (subtask.districtname == "徐汇区") {
                    val autoScore = AutoScore2()
                    autoScore.subtask = subtask
                    autoScore.calculateScore()
                } else {
                    val autoScore = AutoScore()
                    autoScore.subtask = subtask
                    autoScore.calculateScore()
                }
//                if (subtask.districtname == "徐汇区") {
//                    val autoScore = AutoScore2()
//                    autoScore.subtask = subtask
//                    autoScore.calculateScore()
//                } else {
//                    val autoScore = AutoScore()
//                    autoScore.subtask = subtask
//                    autoScore.calculateScore()
//                }
                val s = scenseMapper.selectByPrimaryKey(subtask.scenseid)
                val autoScore = StAutoScore(scoreItem1, scoreItem2, mpScoreItem_1, mpScoreItem_2, stScoreItem_1, whScoreItem_1, whScoreItem_2)
                autoScore.sceneType = Constant.ScenseType.getByValue(s.typeid?.toString())
                autoScore.sceneGrade(subtask)
            }
        }
@@ -968,37 +983,67 @@
        return resultList
    }
    override fun getByTopTaskAndDate(topTaskId: String, startTime: String, endTime: String, sceneTypeId: Int?): List<SubtaskVo> {
        val startDate = dateUtil.StringToDate(startTime)
        val endDate = dateUtil.StringToDate(endTime)
        val cal = Calendar.getInstance().apply { time = startDate }
        val _startTime = dateUtil.DateToString(cal.time, DateUtil.DateStyle.YYYY_MM_DD_HH_MM_SS) ?: startTime
        if (endDate == null) {
            cal.add(Calendar.MONTH, 1)
            cal.add(Calendar.DAY_OF_MONTH, -1)
        } else {
            cal.time = endDate
        }
        cal.set(Calendar.HOUR_OF_DAY, 23)
        cal.set(Calendar.MINUTE, 59)
        cal.set(Calendar.SECOND, 59)
        val _endTime = dateUtil.DateToString(cal.time, DateUtil.DateStyle.YYYY_MM_DD_HH_MM_SS) ?: endTime
//        val resultList = mutableListOf<SubtaskVo>()
        val resultList = subtaskMapper.selectByTopTask(topTaskId, _startTime, _endTime, sceneTypeId)
//        subtaskMapper.selectByExample(Example(Subtask::class.java).apply {
//            createCriteria()
//                    .andGreaterThanOrEqualTo("planstarttime", startDate)
//                    .andLessThanOrEqualTo("planstarttime", endDate)
//                    .andEqualTo("tguid", topTaskId)
//        }).forEach {
//            val vo = SubtaskVo()
//            BeanUtils.copyProperties(it, vo)
//            resultList.add(vo)
    override fun getByTopTaskAndDate(topTaskId: String, startTime: String?, endTime: String?, sceneTypeId: Int?): List<Subtask> {
//        val startDate = dateUtil.StringToDate(startTime)
//        val endDate = dateUtil.StringToDate(endTime)
//
//        val cal = Calendar.getInstance().apply { time = startDate }
//        val _startTime = dateUtil.DateToString(cal.time, DateUtil.DateStyle.YYYY_MM_DD_HH_MM_SS) ?: startTime
//
//        if (endDate == null) {
//            cal.add(Calendar.MONTH, 1)
//            cal.add(Calendar.DAY_OF_MONTH, -1)
//        } else {
//            cal.time = endDate
//        }
//        cal.set(Calendar.HOUR_OF_DAY, 23)
//        cal.set(Calendar.MINUTE, 59)
//        cal.set(Calendar.SECOND, 59)
//        val _endTime = dateUtil.DateToString(cal.time, DateUtil.DateStyle.YYYY_MM_DD_HH_MM_SS) ?: endTime
        val resultList = subtaskMapper.selectByTopTask2(topTaskId, sceneTypeId)
        return resultList
    }
    override fun getSummary(topTaskId: String, sceneTypeId: Int?): List<SubTaskSummary> {
//        val result = mutableListOf<SubTaskSummary>()
//        subtaskMapper.selectByTopTask2(topTaskId, sceneTypeId).forEach {
//            val scene = scenseMapper.selectByPrimaryKey(it.scenseid)
//            var p = 0
//            var c = 0
//            var pc = 0
//            var cc = 0
//            problemlistMapper.selectByExample(Example(Problemlist::class.java).apply {
//                createCriteria().andEqualTo("stguid", it.stguid)
//            }).forEach {pro ->
//                p++
//                if (pro.ischanged == true) c++
//                if (pro.extension3 != Constant.PROBLEM_UNCHECKED) pc++
//                if (pro.extension3 == Constant.CHANGE_CHECK_PASS || pro.extension3 == Constant.CHANGE_CHECK_FAIL) cc++
//            }
//            val ins = inspectionMapper.selectByExample(Example(Inspection::class.java).apply {
//                createCriteria().andEqualTo("stguid", it.stguid)
//            })
//            result.add(SubTaskSummary().apply {
//                stGuid = it.stguid
//                stName = it.name
//                if (ins.isNotEmpty()) insGuid = ins[0].guid
//                sceneId = it.scenseid
//                sceneName = scene.name
//                sceneType = scene.type
//                stPlanTime = it.planstarttime
//                proNum = p
//                changeNum = c
//                proCheckedNum = pc
//                changeCheckedNum = cc
//            })
//        }
//        return result
        return subtaskMapper.getSummary(topTaskId, sceneTypeId)
    }
}