| | |
| | | package cn.flightfeather.supervision.lightshare.service.impl |
| | | |
| | | import cn.flightfeather.supervision.common.exception.BizException |
| | | import cn.flightfeather.supervision.domain.ds1.entity.Problemlist |
| | | import cn.flightfeather.supervision.domain.ds1.entity.Subtask |
| | | import cn.flightfeather.supervision.domain.ds1.entity.Task |
| | |
| | | import cn.flightfeather.supervision.domain.ds1.mapper.TaskMapper |
| | | 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.* |
| | | import cn.flightfeather.supervision.lightshare.vo.* |
| | |
| | | class TaskServiceImpl( |
| | | val taskMapper: TaskMapper, |
| | | private val taskRep: TaskRep, |
| | | private val subTaskRep: SubTaskRep, |
| | | ) : TaskService { |
| | | |
| | | @Autowired |
| | |
| | | townRank.standardRate = it.get("standardRate").toString().toFloat() |
| | | } catch (e: Exception) { |
| | | } |
| | | val s =it.get("hasScoredNum").toString() |
| | | val s = it.get("hasScoredNum").toString() |
| | | try { |
| | | townRank.hasScoredNum = it.get("hasScoredNum").toString().toInt() |
| | | } catch (e: Exception) { |
| | |
| | | if (type == 0) |
| | | return getAllTop() |
| | | //获取未完成顶层任务及对应日任务列表 |
| | | else if (type == 1){ |
| | | else if (type == 1) { |
| | | val tmp = getAllTop() |
| | | tmp.forEach { |
| | | if (it.runingstatus != Constant.TaskProgress.RUNINGSTATUS3.text) { |
| | |
| | | } |
| | | |
| | | //根据日期获取日任务 |
| | | override fun findByDate(date: String): TaskVo { |
| | | override fun findByDate(topTaskId: String, date: String): TaskVo { |
| | | val taskVo = TaskVo() |
| | | val example = Example(Task::class.java) |
| | | val criteria = example.createCriteria() |
| | | //gsguid不为空为日任务,日任务开始时间和结束时间在同一天,过滤开始时间就ok |
| | | criteria.andEqualTo("starttime", dateUtil.StringToDate(date.substring(0, 10))) |
| | | criteria.andIsNotNull("tsguid") |
| | | criteria.andEqualTo("starttime", DateUtil.StringToDate(date.substring(0, 10))) |
| | | criteria.andEqualTo("tsguid", topTaskId) |
| | | val tasklist = taskMapper.selectByExample(example) |
| | | if (tasklist.isNotEmpty()) { |
| | | BeanUtils.copyProperties(tasklist[0], taskVo) |
| | |
| | | // .andEqualTo("districtcode", districtCode) |
| | | // .andLessThanOrEqualTo("endtime", date) |
| | | // example.or( |
| | | example.createCriteria().andIsNull("tsguid") |
| | | .andEqualTo("districtcode", districtCode) |
| | | .andLessThanOrEqualTo("starttime", date) |
| | | .andGreaterThanOrEqualTo("endtime", date) |
| | | example.createCriteria().andIsNull("tsguid") |
| | | .andEqualTo("districtcode", districtCode) |
| | | .andLessThanOrEqualTo("starttime", date) |
| | | .andGreaterThanOrEqualTo("endtime", date) |
| | | // ) |
| | | example.orderBy("starttime").desc() |
| | | val tasklist = taskMapper.selectByExample(example) |
| | |
| | | return if (tasks.isEmpty()) Task() else tasks[0] |
| | | } |
| | | |
| | | val dateUtil = DateUtil() |
| | | |
| | | //根据顶层列表,日期,和执行人员ID,用户类型获取日任务 |
| | | override fun getDayTaskList(taskVoList: List<TaskVo>, date: String, guid: String, userType: String): List<TaskVo> { |
| | | if (taskVoList.isEmpty()) return taskVoList |
| | |
| | | val criteria = example.createCriteria() |
| | | //构造查询条件 |
| | | criteria.andEqualTo("tsguid", it.tguid) |
| | | val dateTemo = dateUtil.StringToDate(date) |
| | | val dateTemo = DateUtil.StringToDate(date) |
| | | //条件过滤 |
| | | criteria.andBetween("starttime", dateTemo, dateUtil.addSecond(dateUtil.addMonth(dateTemo!!, 1)!!, 1)) |
| | | criteria.andBetween("starttime", dateTemo, DateUtil.addSecond(DateUtil.addMonth(dateTemo!!, 1)!!, 1)) |
| | | if (userType == "1") { |
| | | criteria.andLike("executorguids", "%$guid%") |
| | | } |
| | |
| | | val complete = subtaskMapper.selectCountByExample(exampleComplete) |
| | | |
| | | var changed = 0 |
| | | problemListMapper.findUnchangedCount(it.tguid ?: "").forEach {i -> |
| | | problemListMapper.findUnchangedCount(it.tguid ?: "").forEach { i -> |
| | | //结果表示该子任务未整改问题数 |
| | | if (i == 0) { |
| | | changed++ |
| | |
| | | forEach { |
| | | problemListMapper.selectByExample(Example(Problemlist::class.java).apply { |
| | | createCriteria().andEqualTo("stguid", it.stguid) |
| | | }).forEach {problem -> |
| | | }).forEach { problem -> |
| | | if (problem.extension3 == Constant.PROBLEM_UNCHECKED) { |
| | | check = true |
| | | return@breaking |
| | |
| | | } |
| | | } |
| | | |
| | | resultList.add(DayTaskProgressVo( |
| | | it.tguid, it.starttime, taskId, complete, changed, total, check |
| | | resultList.add(DayTaskProgressVo( |
| | | it.tguid, it.starttime, taskId, complete, changed, total, check |
| | | )) |
| | | } |
| | | |
| | |
| | | val criteria = example.createCriteria() |
| | | //构造查询条件 |
| | | criteria.andEqualTo("tsguid", it.tguid) |
| | | val dateTemo = dateUtil.StringToDate(date) |
| | | val dateTemo = DateUtil.StringToDate(date) |
| | | //条件过滤 |
| | | criteria.andBetween("starttime", dateTemo, dateUtil.addSecond(dateUtil.addMonth(dateTemo!!, 1)!!, 1)) |
| | | criteria.andBetween("starttime", dateTemo, DateUtil.addSecond(DateUtil.addMonth(dateTemo!!, 1)!!, 1)) |
| | | criteria.andLike("executorguids", "%$guid%") |
| | | //根据sql条件查询 |
| | | val taskList = taskMapper.selectByExample(example) |
| | |
| | | if (date.length < 7) { |
| | | return taskVoList |
| | | } |
| | | val startDate = DateUtil().StringToDate(date.substring(0, 7)) ?: return taskVoList |
| | | val startDate = DateUtil.StringToDate(date.substring(0, 7)) ?: return taskVoList |
| | | //查询一个月任务 |
| | | var endDate = DateUtil().addMonth(startDate, 1) ?: return taskVoList |
| | | endDate = DateUtil().addSecond(endDate, -1)!! |
| | | var endDate = DateUtil.addMonth(startDate, 1) ?: return taskVoList |
| | | endDate = DateUtil.addSecond(endDate, -1)!! |
| | | //构造查询条件 |
| | | val example = Example(Task::class.java) |
| | | val criteria = example.createCriteria() |
| | |
| | | // return taskVoList |
| | | // } |
| | | // //时间转换 |
| | | // val d1 = DateUtil().StringToDate(date.substring(0, 7)) ?: return taskVoList |
| | | // val d1 = DateUtil.StringToDate(date.substring(0, 7)) ?: return taskVoList |
| | | // var startDate: Date? = null |
| | | // var endDate: Date? = null |
| | | // //根据type类型,得到要查询的范围 |
| | | // when (type) { |
| | | // "Middle" -> { |
| | | // startDate = DateUtil().addMonth(d1, -1);endDate = DateUtil().addMonth(d1, 2) |
| | | // startDate = DateUtil.addMonth(d1, -1);endDate = DateUtil.addMonth(d1, 2) |
| | | // } |
| | | // "Left" -> { |
| | | // startDate = DateUtil().addMonth(d1, -3);endDate = d1 |
| | | // startDate = DateUtil.addMonth(d1, -3);endDate = d1 |
| | | // } |
| | | // "Right" -> { |
| | | // startDate = DateUtil().addMonth(d1, 1);endDate = DateUtil().addMonth(d1, 4) |
| | | // startDate = DateUtil.addMonth(d1, 1);endDate = DateUtil.addMonth(d1, 4) |
| | | // } |
| | | // else -> { |
| | | // startDate = d1;endDate = DateUtil().addMonth(d1, 1) |
| | | // startDate = d1;endDate = DateUtil.addMonth(d1, 1) |
| | | // } |
| | | // } |
| | | // |
| | |
| | | if (date.length < 7) { |
| | | return taskVoList |
| | | } |
| | | val startDate = DateUtil().StringToDate(date.substring(0, 7)) ?: return taskVoList |
| | | val startDate = DateUtil.StringToDate(date.substring(0, 7)) ?: return taskVoList |
| | | //查询一个月任务 |
| | | var endDate = DateUtil().addMonth(startDate, 1) ?: return taskVoList |
| | | endDate = DateUtil().addSecond(endDate, -1)!! |
| | | var endDate = DateUtil.addMonth(startDate, 1) ?: return taskVoList |
| | | endDate = DateUtil.addSecond(endDate, -1)!! |
| | | //构造查询条件 |
| | | val example = Example(Task::class.java) |
| | | val criteria = example.createCriteria() |
| | |
| | | |
| | | val criteria2 = example.createCriteria() |
| | | criteria2.orBetween( |
| | | "endtime", |
| | | startDate, |
| | | endDate |
| | | "endtime", |
| | | startDate, |
| | | endDate |
| | | ).andIsNull("tsguid"); |
| | | if (userType == "1") { |
| | | criteria2.andLike("executorguids", "%$guid%") |
| | | } else if (userType == "2"){ |
| | | } else if (userType == "2") { |
| | | criteria2.andEqualTo("districtcode", districtCode) |
| | | } |
| | | example.or(criteria2) |
| | | |
| | | val criteria3 = example.createCriteria() |
| | | criteria3.orLessThan("starttime", startDate).andGreaterThan( |
| | | "endtime", |
| | | endDate |
| | | "endtime", |
| | | endDate |
| | | ).andIsNull("tsguid"); |
| | | if (userType == "1") { |
| | | criteria3.andLike("executorguids", "%$guid%") |
| | | } else if (userType == "2"){ |
| | | } else if (userType == "2") { |
| | | criteria3.andEqualTo("districtcode", districtCode) |
| | | } |
| | | example.or(criteria3) |
| | |
| | | } |
| | | return taskVoList |
| | | } |
| | | |
| | | |
| | | override fun save(task: Task): Int { |
| | | // FIXME: 2021/10/9 按照当前的逻辑,此函数主要用于新建顶层任务以及日任务,但是日任务内容的生成逻辑目前由前端app完成,因此会出现一个bug: |
| | | // FIXME: 2021/10/9 当前端多个用户同时在同一个顶层任务下的新的一天创建任务时,会出现同一天有多个日任务,此时前端后续查看只能看到其中一个日任务下的子任务 |
| | |
| | | // FIXME: 2021/10/9 另外对于顶层任务也添加类似逻辑,由于顶层任务的任务名称默认系统自动生成,因此暂时只判断同名的顶层任务,当存在同名顶层任务时,不做保存操作 |
| | | |
| | | var result = 0 |
| | | if (task.tguid == null) task.tguid = UUIDGenerator.generate16ShortUUID() |
| | | // 1、首先判断是顶层任务还是日任务 |
| | | if (task.levelnum == 2) { |
| | | //2.1、 是顶层任务时,判断是否已有同名任务 |
| | |
| | | } |
| | | } else { |
| | | //3.1、 当是日任务时,判断在同一个顶层任务下,是否有同名的日任务 |
| | | val r =taskMapper.selectByExample(Example(Task::class.java).apply { |
| | | val r = taskMapper.selectByExample(Example(Task::class.java).apply { |
| | | createCriteria().andEqualTo("tsguid", task.tsguid) |
| | | .andEqualTo("name", task.name) |
| | | }) |
| | |
| | | return result |
| | | } |
| | | |
| | | override fun create(task: Task): Task { |
| | | val res = save(task) |
| | | if (res < 1) |
| | | throw BizException("任务创建失败") |
| | | else |
| | | return task |
| | | } |
| | | |
| | | //修改日任务信息,若有子任务,子任务也修改 |
| | | override fun update(task: Task): Int { |
| | | var re = 1 |
| | |
| | | BeanUtils.copyProperties(it, subtask) |
| | | subtask.planstarttime = task.starttime |
| | | subtask.planendtime = task.endtime |
| | | subtaskService.update(subtask) |
| | | subtaskService.changeStatus(subtask) |
| | | } |
| | | } |
| | | return re |
| | |
| | | criteria.andIsNull("tsguid") |
| | | example.orderBy("starttime").asc() |
| | | val result = taskMapper.selectByExample(example) |
| | | if (result.isNotEmpty()){ |
| | | if (result.isNotEmpty()) { |
| | | result.forEach { |
| | | var mytotalcount = 0 |
| | | var mycompletecount = 0 |
| | |
| | | taskProgressVo.mycompletetask = mycompletecount |
| | | val daytaskVolist = getDayTaskByTaskID(it.tguid!!) |
| | | val daytasklist = mutableListOf<TaskVo>() |
| | | if (daytaskVolist.isNotEmpty()){ |
| | | if (daytaskVolist.isNotEmpty()) { |
| | | daytaskVolist.forEach { |
| | | var mytotalcount1 = 0 |
| | | var mycompletecount1 = 0 |
| | |
| | | if (Objects.equals(it.status!!, Constant.TaskProgress.RUNINGSTATUS3.text)) |
| | | mycompletecount1++ |
| | | } |
| | | if(Objects.equals(it.status, Constant.TaskProgress.RUNINGSTATUS3.text)) |
| | | if (Objects.equals(it.status, Constant.TaskProgress.RUNINGSTATUS3.text)) |
| | | completecount1++ |
| | | } |
| | | val daytaskProgressVo = TaskVo() |
| | |
| | | |
| | | override fun findTaskProgress(areaVo: AreaVo): List<TaskProgressVo?> { |
| | | val res = mutableListOf<TaskProgressVo?>() |
| | | taskRep.findTasks(areaVo).forEach {t-> |
| | | taskRep.findTasks(areaVo).forEach { t -> |
| | | if (t?.tguid == null) return@forEach |
| | | val pro = TaskProgressVo().apply { |
| | | tguid = t.tguid |
| | |
| | | count += c |
| | | } |
| | | totaltask = count |
| | | completetask = subtaskService.getSummary(t.tguid!!, areaVo.scensetypeid?.toIntOrNull()).size |
| | | subTaskSummary = subTaskRep.findSummary(areaVo) |
| | | completetask = this.subTaskSummary?.size |
| | | } |
| | | res.add(pro) |
| | | } |