| | |
| | | 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.SceneRep |
| | | import cn.flightfeather.supervision.domain.ds1.repository.SubTaskRep |
| | | import cn.flightfeather.supervision.domain.ds1.repository.TaskRep |
| | | import cn.flightfeather.supervision.lightshare.service.* |
| | |
| | | val taskMapper: TaskMapper, |
| | | private val taskRep: TaskRep, |
| | | private val subTaskRep: SubTaskRep, |
| | | private val sceneRep: SceneRep, |
| | | ) : TaskService { |
| | | |
| | | @Autowired |
| | |
| | | return taskVoList |
| | | } |
| | | |
| | | override fun getDayTask(taskId: String, userId: String, userType: String): List<DayTaskProgressVo> { |
| | | val example = Example(Task::class.java) |
| | | val criteria = example.createCriteria() |
| | | //构造查询条件 |
| | | criteria.andEqualTo("tsguid", taskId) |
| | | if (userType == "1") { |
| | | criteria.andLike("executorguids", "%$userId%") |
| | | } |
| | | |
| | | override fun getDayTask(taskId: String, userId: String?, userType: String): List<DayTaskProgressVo> { |
| | | val resultList = ArrayList<DayTaskProgressVo>() |
| | | |
| | | // 获取总任务下所有日任务 |
| | | val dayTasks = if (userType == "1") { |
| | | taskRep.findDayTasks(taskId, userId) |
| | | } else { |
| | | taskRep.findDayTasks(taskId) |
| | | } |
| | | |
| | | // 获取总任务下所有的子任务 |
| | | val subTasks = subTaskRep.findAll(Subtask().apply { tguid = taskId }) |
| | | |
| | | //根据sql条件查询 |
| | | taskMapper.selectByExample(example).forEach { |
| | | val exampleTotal = Example(Subtask::class.java).apply { |
| | | createCriteria().andEqualTo("tsguid", it.tguid) |
| | | dayTasks.forEach {t-> |
| | | // 筛选当前日任务下的子任务 |
| | | val filterSubTasks = subTasks.filter {s-> |
| | | s?.tsguid == t?.tguid |
| | | } |
| | | // 子任务总数 |
| | | val total = filterSubTasks.size |
| | | |
| | | // 子任务完成数 |
| | | val complete = filterSubTasks.count {fs-> |
| | | fs?.status == Constant.TaskProgress.RUNINGSTATUS3.text |
| | | } |
| | | |
| | | val total = subtaskMapper.selectCountByExample(exampleTotal) |
| | | |
| | | val exampleComplete = exampleTotal.apply { |
| | | and().andEqualTo("status", Constant.TaskProgress.RUNINGSTATUS3.text) |
| | | // 获取当日所有的问题 |
| | | val subTaskIds = filterSubTasks.map { fs-> fs?.stguid } |
| | | val problemList = if (subTaskIds.isNotEmpty()) { |
| | | problemListMapper.selectByExample(Example(Problemlist::class.java).apply { |
| | | createCriteria().andIn("stguid", subTaskIds) |
| | | }) |
| | | } else{ |
| | | emptyList() |
| | | } |
| | | val complete = subtaskMapper.selectCountByExample(exampleComplete) |
| | | |
| | | |
| | | var changed = 0 |
| | | problemListMapper.findUnchangedCount(it.tguid ?: "").forEach { i -> |
| | | //结果表示该子任务未整改问题数 |
| | | if (i == 0) { |
| | | changed++ |
| | | } |
| | | } |
| | | |
| | | //审核是否完成 |
| | | var check = false |
| | | with(subtaskMapper.selectByExample(exampleTotal)) breaking@{ |
| | | forEach { |
| | | problemListMapper.selectByExample(Example(Problemlist::class.java).apply { |
| | | createCriteria().andEqualTo("stguid", it.stguid) |
| | | }).forEach { problem -> |
| | | if (problem.extension3 == Constant.PROBLEM_UNCHECKED) { |
| | | check = true |
| | | return@breaking |
| | | } |
| | | var check = true |
| | | filterSubTasks.forEach {fs -> |
| | | // 筛选每个子任务下的问题未整改数 |
| | | problemList.filter { p-> p?.stguid == fs?.stguid }.onEach { pro -> |
| | | // 当存在至少一个问题没有审核时,当日审核状态为未审核 |
| | | if (pro.extension3 == Constant.PROBLEM_UNCHECKED || pro.extension3 == Constant.CHANGE_UNCHECKED) { |
| | | check = false |
| | | } |
| | | }.count { i -> i?.ischanged != true }.let { c -> |
| | | // 没有未整改问题时,则表示该子任务已经整改完成 |
| | | if (c == 0) { |
| | | changed++ |
| | | } |
| | | } |
| | | } |
| | | |
| | | resultList.add(DayTaskProgressVo( |
| | | it.tguid, it.starttime, taskId, complete, changed, total, check |
| | | t?.tguid, t?.starttime, taskId, complete, changed, total, check |
| | | )) |
| | | } |
| | | |
| | |
| | | districtName = t.districtname |
| | | townCode = t.towncode |
| | | townName = t.townname |
| | | |
| | | var count = 0 |
| | | val countByScene = mutableMapOf<String?, Int>() |
| | | val allScenes = sceneRep.findSceneList(t.tguid!!, areaVo.scensetypeid?.toInt(), areaVo.towncode) |
| | | taskRep.findMonitorList(t.tguid!!, areaVo.scensetypeid).forEach { |
| | | val c = if (it.extension1 != null) it.extension1!!.toInt() else 1 |
| | | val c = it.monitornum ?: 1 |
| | | count += c |
| | | |
| | | allScenes.find { s-> s?.guid == it.sguid }?.let { s-> |
| | | // if (!countByScene.containsKey(s.type)) { |
| | | // countByScene[s.type] = 0 |
| | | // } |
| | | countByScene[s.type] = (countByScene[s.type] ?: 0) + c |
| | | } |
| | | } |
| | | totaltask = count |
| | | subTaskSummary = subTaskRep.findSummary(areaVo) |
| | | totaltaskByScene = countByScene |
| | | |
| | | subTaskSummary = subTaskRep.findSummary(AreaVo().apply { |
| | | topTaskId = t.tguid |
| | | }) |
| | | val completeByScene = mutableMapOf<String?, Int>() |
| | | subTaskSummary?.forEach { |
| | | completeByScene[it.sceneType] = (completeByScene[it.sceneType] ?: 0) + 1 |
| | | } |
| | | completetask = this.subTaskSummary?.size |
| | | completetaskByScene = completeByScene |
| | | } |
| | | res.add(pro) |
| | | } |