feiyu02
2024-07-19 4e20a1aaaba1bb843820fca844c20055a33febce
src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/SubtaskServiceImpl.kt
@@ -7,6 +7,7 @@
import cn.flightfeather.supervision.common.utils.Constant
import cn.flightfeather.supervision.common.utils.DateUtil
import cn.flightfeather.supervision.common.utils.UUIDGenerator
import cn.flightfeather.supervision.domain.ds1.repository.SubTaskRep
import cn.flightfeather.supervision.domain.ds1.repository.TaskRep
import cn.flightfeather.supervision.lightshare.service.SubtaskService
import cn.flightfeather.supervision.lightshare.service.TaskService
@@ -27,6 +28,7 @@
    private val subtaskMapper: SubtaskMapper,
    private val aopEvaluation: AopEvaluation,
    private val taskRep: TaskRep,
    private val subTaskRep: SubTaskRep,
) : SubtaskService {
    val dateUtil = DateUtil()
@@ -393,7 +395,7 @@
//        //根据日期获取日任务
//        val daytaskVo = taskService.findByDate(dateUtil.getDate(subtask.planstarttime)!!)
        //2019.3.1 by Riku 应该直接根据子任务的日任务id查询日任务
        //应该直接根据子任务的日任务id查询日任务
        val daytaskVo = taskService.findByID(subtask.tsguid!!)
        //判断是否有日任务
@@ -429,6 +431,7 @@
                if (!bool){
                    daytaskVo.runingstatus = Constant.TaskProgress.RUNINGSTATUS3.text
                }
            }
            //两者状态相同时不做修改,其余情况日任务都为正在执行
            else if (subtask.status != daytaskVo.runingstatus){
@@ -440,30 +443,6 @@
            //****************************************************************************************
            subtaskMapper.updateByPrimaryKeySelective(subtask)
        }
        //判断对应顶层任务的执行状态
        val daytaskVolist = taskService.getDayTaskByTaskID(toptaskVo.tguid!!)
        val iterator: Iterator<TaskVo> = daytaskVolist.iterator()
        if (daytaskVo.runingstatus == Constant.TaskProgress.RUNINGSTATUS3.text
                && toptaskVo.runingstatus == Constant.TaskProgress.RUNINGSTATUS2.text) {
            var bool = false
            while (iterator.hasNext()) {
                val tmp = iterator.next()
                if (tmp.runingstatus != Constant.TaskProgress.RUNINGSTATUS3.text) {
                    bool = true
                    break
                }
            }
            if (!bool){
                toptaskVo.runingstatus = Constant.TaskProgress.RUNINGSTATUS3.text
            }
        }
        else if (daytaskVo.runingstatus != toptaskVo.runingstatus){
            toptaskVo.runingstatus = Constant.TaskProgress.RUNINGSTATUS2.text
        }
        val toptask = Task()
        BeanUtils.copyProperties(toptaskVo, toptask)
        taskMapper.updateByPrimaryKeySelective(toptask)
        //对已结束的子任务进行自动评分
        if (subtask.status == Constant.TaskProgress.RUNINGSTATUS3.text) {
@@ -946,8 +925,8 @@
        return subtaskMapper.getSummary(topTaskId, sceneTypeId)
    }
    override fun getSummaryByArea(areaVo: AreaVo): List<TaskProgressVo> {
        areaVo.scensetypeid ?: throw BizException("缺少场景类型参数")
    override fun getTaskProgressByArea(areaVo: AreaVo): List<TaskProgressVo> {
//        areaVo.scensetypeid ?: throw BizException("缺少场景类型参数")
        val res = mutableListOf<TaskProgressVo>()
        taskRep.findTasks(areaVo).forEach {t->
            if (t?.tguid == null) return@forEach
@@ -973,4 +952,8 @@
    override fun getByScene(sceneId: String, startTime: LocalDateTime?, endTime: LocalDateTime?): List<SubTaskSummary> {
        return subtaskMapper.getSummaryByScene(sceneId, startTime, endTime)
    }
    override fun getSummaryByArea(areaVo: AreaVo): List<SubTaskSummary> {
        return subTaskRep.findSummary(areaVo)
    }
}