| | |
| | | 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 |
| | |
| | | private val subtaskMapper: SubtaskMapper, |
| | | private val aopEvaluation: AopEvaluation, |
| | | private val taskRep: TaskRep, |
| | | private val subTaskRep: SubTaskRep, |
| | | ) : SubtaskService { |
| | | |
| | | val dateUtil = DateUtil() |
| | | |
| | | @Autowired |
| | | lateinit var taskService: TaskService |
| | |
| | | dateString = date.substring(0, 7) |
| | | } |
| | | //判断参数是否正确 |
| | | if (dateUtil.StringToDate(dateString) == null) { |
| | | if (DateUtil.StringToDate(dateString) == null) { |
| | | return taskPackList |
| | | } |
| | | //根据type类型,得到具体是要哪三个月数据 |
| | | when (type) { |
| | | "Middle" -> { |
| | | one = dateUtil.addMonth(dateString, -1) |
| | | one = DateUtil.addMonth(dateString, -1) |
| | | two = dateString |
| | | three = dateUtil.addMonth(dateString, 1) |
| | | three = DateUtil.addMonth(dateString, 1) |
| | | } |
| | | "Left" -> { |
| | | one = dateUtil.addMonth(dateString, 1) |
| | | two = dateUtil.addMonth(dateString, 2) |
| | | three = dateUtil.addMonth(dateString, 3) |
| | | one = DateUtil.addMonth(dateString, 1) |
| | | two = DateUtil.addMonth(dateString, 2) |
| | | three = DateUtil.addMonth(dateString, 3) |
| | | } |
| | | "Right" -> { |
| | | one = dateUtil.addMonth(dateString, -1) |
| | | two = dateUtil.addMonth(dateString, -2) |
| | | three = dateUtil.addMonth(dateString, -3) |
| | | one = DateUtil.addMonth(dateString, -1) |
| | | two = DateUtil.addMonth(dateString, -2) |
| | | three = DateUtil.addMonth(dateString, -3) |
| | | } |
| | | else -> { |
| | | //参数不正确就返回 |
| | |
| | | dateString = date.substring(0, 7) |
| | | } |
| | | //判断参数是否正确 |
| | | if (dateUtil.StringToDate(dateString) == null) { |
| | | if (DateUtil.StringToDate(dateString) == null) { |
| | | return taskPackList |
| | | } |
| | | //根据type类型,得到具体是要哪三个月数据 |
| | | when (type) { |
| | | "Middle" -> { |
| | | one = dateUtil.addMonth(dateString, -1) |
| | | one = DateUtil.addMonth(dateString, -1) |
| | | two = dateString |
| | | three = dateUtil.addMonth(dateString, 1) |
| | | three = DateUtil.addMonth(dateString, 1) |
| | | } |
| | | "Left" -> { |
| | | one = dateUtil.addMonth(dateString, 1) |
| | | two = dateUtil.addMonth(dateString, 2) |
| | | three = dateUtil.addMonth(dateString, 3) |
| | | one = DateUtil.addMonth(dateString, 1) |
| | | two = DateUtil.addMonth(dateString, 2) |
| | | three = DateUtil.addMonth(dateString, 3) |
| | | } |
| | | "Right" -> { |
| | | one = dateUtil.addMonth(dateString, -1) |
| | | two = dateUtil.addMonth(dateString, -2) |
| | | three = dateUtil.addMonth(dateString, -3) |
| | | one = DateUtil.addMonth(dateString, -1) |
| | | two = DateUtil.addMonth(dateString, -2) |
| | | three = DateUtil.addMonth(dateString, -3) |
| | | } |
| | | else -> { |
| | | //参数不正确就返回 |
| | |
| | | val toptaskVo = taskService.findByID(subtask.tguid.toString()) |
| | | |
| | | // //根据日期获取日任务 |
| | | // val daytaskVo = taskService.findByDate(dateUtil.getDate(subtask.planstarttime)!!) |
| | | // val daytaskVo = taskService.findByDate(DateUtil.getDate(subtask.planstarttime)!!) |
| | | |
| | | //2019.3.1 by Riku 应该直接根据子任务的日任务id查询日任务 |
| | | //应该直接根据子任务的日任务id查询日任务 |
| | | val daytaskVo = taskService.findByID(subtask.tsguid!!) |
| | | |
| | | //判断是否有日任务 |
| | |
| | | task.tsguid = toptaskVo.tguid |
| | | task.tguid = guid |
| | | task.name = subtask.name |
| | | task.starttime = dateUtil.StringToDate(dateUtil.getDate(subtask.planstarttime)!!.substring(0, 10)) |
| | | task.starttime = DateUtil.StringToDate(DateUtil.getDate(subtask.planstarttime)!!.substring(0, 10)) |
| | | task.endtime = |
| | | dateUtil.StringToDate(dateUtil.getDate(subtask.planstarttime)!!.substring(0, 10) + " 23:59:59") |
| | | DateUtil.StringToDate(DateUtil.getDate(subtask.planstarttime)!!.substring(0, 10) + " 23:59:59") |
| | | //****日任务执行状态继承子任务的状态*(修改)*** |
| | | task.runingstatus = subtask.status |
| | | //******************************************** |
| | |
| | | if (!bool){ |
| | | daytaskVo.runingstatus = Constant.TaskProgress.RUNINGSTATUS3.text |
| | | } |
| | | |
| | | } |
| | | //两者状态相同时不做修改,其余情况日任务都为正在执行 |
| | | else if (subtask.status != daytaskVo.runingstatus){ |
| | |
| | | //**************************************************************************************** |
| | | 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) { |
| | |
| | | cal.set(Calendar.MILLISECOND, 0) |
| | | cal.time |
| | | } else { |
| | | DateUtil().StringToDate(startTime!!) |
| | | DateUtil.StringToDate(startTime!!) |
| | | } |
| | | |
| | | val _endTime = if (endTime.isNullOrBlank()) { |
| | |
| | | cal.set(Calendar.MILLISECOND, 999) |
| | | cal.time |
| | | } else { |
| | | DateUtil().StringToDate(endTime!!)?.apply { |
| | | DateUtil.StringToDate(endTime!!)?.apply { |
| | | time += 24 * 60 * 60 * 1000 |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | // val example = Example(Subtask::class.java).apply { |
| | | // createCriteria().andEqualTo("districtcode", _districtCode) |
| | | // .andGreaterThanOrEqualTo("planstarttime", _startTime) |
| | | // .andLessThanOrEqualTo("planendtime", _endTime) |
| | | // } |
| | | // |
| | | // var counts = 0 |
| | | // |
| | | // val p = PageHelper.startPage<Subtask>(page ?: 1, perPage ?: 30) |
| | | // |
| | | // subtaskMapper.selectByExample(example).forEach { s -> |
| | | // |
| | | // val scene = scenseMapper.selectByPrimaryKey(s.scenseid) |
| | | // val inspection = inspectionMapper.selectByExample(Example(Inspection::class.java).apply { |
| | | // createCriteria().andEqualTo("stguid", s.stguid) |
| | | // }).takeIf { it.isNotEmpty() }?.get(0) |
| | | // val evaluation = evaluationMapper.selectByExample(Example(Evaluation::class.java).apply { |
| | | // createCriteria().andEqualTo("stguid", s.stguid) |
| | | // }).takeIf { it.isNotEmpty() }?.get(0) |
| | | // |
| | | // if (scene.typeid != _sceneType.toByte()) { |
| | | // return@forEach |
| | | // } else { |
| | | // counts++ |
| | | // } |
| | | // |
| | | // |
| | | // val subtaskSearchResultVo = SubtaskSearchResultVo().apply { |
| | | // this.subTaskId = s.stguid |
| | | // this.districtName = scene.districtname |
| | | // this.townName = scene.townname |
| | | // this.sceneName = scene.name |
| | | // this.sceneAddress = scene.location |
| | | // this.planStartTime = s.planstarttime |
| | | // this.planEndTime = s.planendtime |
| | | // this.status = s.status |
| | | // this.path= inspection?.extension1 |
| | | // this.score = evaluation?.resultscorebef?.toIntOrNull() |
| | | // this.level = when { |
| | | // score == null -> null |
| | | // score!! >= 54 -> "合格" |
| | | // else -> "不合格" |
| | | // } |
| | | // } |
| | | // tempResult.data.add(subtaskSearchResultVo) |
| | | // |
| | | // problemlistMapper.selectByExample(Example(Problemlist::class.java).apply { |
| | | // createCriteria().andEqualTo("stguid", s.stguid) |
| | | // }).forEach { p -> |
| | | // val problem = ProblemDetail().apply { |
| | | // this.problemId = p.guid |
| | | // this.problemName = p.problemname |
| | | // this.longitude = p.longitude?.toDouble() |
| | | // this.latitude = p.latitude?.toDouble() |
| | | // this.location = p.location |
| | | // this.rectification = p.ischanged |
| | | // this.rectificationTime = p.changedtime |
| | | // } |
| | | // subtaskSearchResultVo.problemList.add(problem) |
| | | // |
| | | // mediafileMapper.selectByExample(Example(Mediafile::class.java).apply { |
| | | // createCriteria().andEqualTo("businessguid", p.guid) |
| | | // }).forEach { m -> |
| | | // val url = m.extension1 + m.guid + ".jpg" |
| | | // if (m.ischanged == true) { |
| | | // problem.rectificationPics.add(url) |
| | | // } else { |
| | | // problem.problemPics.add(url) |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | // |
| | | // tempResult.head = DataHead().apply { |
| | | // this.page = p.pageNum |
| | | // this.totalPage = p.pages |
| | | // } |
| | | |
| | | return result |
| | | } |
| | | |
| | | override fun searchSubTask2(token: String, updateTime: String?, sceneType: Int?, districtCode: String?, startTime: String?, endTime: String?, page: Int?, perPage: Int?): BaseResponse<BaseSearchResultVo> { |
| | | override fun searchSubTask2( |
| | | token: String, |
| | | updateTime: String?, |
| | | sceneType: Int?, |
| | | districtCode: String?, |
| | | startTime: String?, |
| | | endTime: String?, |
| | | page: Int?, |
| | | perPage: Int?, |
| | | ): BaseResponse<BaseSearchResultVo> { |
| | | if (token != "jinshan") { |
| | | return BaseResponse(false, "请求token错误") |
| | | } |
| | | |
| | | val time = if (updateTime != null) { |
| | | DateUtil().StringToDate(updateTime) |
| | | DateUtil.StringToDate(updateTime) |
| | | } else { |
| | | null |
| | | } |
| | |
| | | cal.set(Calendar.MILLISECOND, 0) |
| | | cal.time |
| | | } else { |
| | | DateUtil().StringToDate(startTime!!) |
| | | DateUtil.StringToDate(startTime!!) |
| | | } |
| | | |
| | | val _endTime = if (endTime.isNullOrBlank()) { |
| | |
| | | cal.set(Calendar.MILLISECOND, 999) |
| | | cal.time |
| | | } else { |
| | | DateUtil().StringToDate(endTime!!)?.apply { |
| | | DateUtil.StringToDate(endTime!!)?.apply { |
| | | this.time += 24 * 60 * 60 * 1000 |
| | | } |
| | | } |
| | |
| | | |
| | | problemlistMapper.selectByExample(Example(Problemlist::class.java).apply { |
| | | createCriteria().andEqualTo("stguid", s.subTaskId) |
| | | .andNotEqualTo("extension3", Constant.PROBLEM_UNCHECKED) |
| | | .andNotEqualTo("extension3", Constant.PROBLEM_CHECK_FAIL) |
| | | .andNotEqualTo("extension3", Constant.CHANGE_CHECK_FAIL) |
| | | .andIsNotNull("extension3") |
| | | .andNotEqualTo("extension3", Constant.PROBLEM_UNCHECKED) |
| | | .andNotEqualTo("extension3", Constant.PROBLEM_CHECK_FAIL) |
| | | .andNotEqualTo("extension3", Constant.CHANGE_CHECK_FAIL) |
| | | .andIsNotNull("extension3") |
| | | time?.let { |
| | | and(createCriteria().orGreaterThan("time", it) |
| | | .orGreaterThan("changedtime", it)) |
| | | .orGreaterThan("changedtime", it)) |
| | | } |
| | | }).forEach { p -> |
| | | val problem = ProblemDetail().apply { |
| | |
| | | // val p = PageHelper.startPage<Subtask>(page ?: 1, perPage ?: 30) |
| | | subtaskMapper.getSubtask2(time, time2, _districtCode, _sceneType?.toByte(), null, null).forEach { |
| | | if (!subtaskMap.containsKey(it.subTaskId)) { |
| | | val vo =SubtaskSearchResultVo() |
| | | val vo = SubtaskSearchResultVo() |
| | | BeanUtils.copyProperties(it, vo) |
| | | subtaskMap[it.subTaskId] = vo |
| | | } |
| | |
| | | problemMap[it.problemId] = problemDetail |
| | | subtaskMap[it.subTaskId]?.problemList?.add(problemDetail) |
| | | } |
| | | val url = it.mExtension1 + it.mGuid+ ".jpg" |
| | | val url = it.mExtension1 + it.mGuid + ".jpg" |
| | | if (it.isChanged == true) { |
| | | problemMap[it.problemId]?.rectificationPics?.add(url) |
| | | } else { |
| | |
| | | } |
| | | |
| | | val time = if (updateTime != null) { |
| | | DateUtil().StringToDate(updateTime) |
| | | DateUtil.StringToDate(updateTime) |
| | | } else { |
| | | null |
| | | } |
| | |
| | | cal.set(Calendar.MILLISECOND, 0) |
| | | cal.time |
| | | } else { |
| | | DateUtil().StringToDate(startTime!!) |
| | | DateUtil.StringToDate(startTime!!) |
| | | } |
| | | |
| | | val _endTime = if (endTime.isNullOrBlank()) { |
| | |
| | | cal.set(Calendar.MILLISECOND, 999) |
| | | cal.time |
| | | } else { |
| | | DateUtil().StringToDate(endTime!!)?.apply { |
| | | DateUtil.StringToDate(endTime!!)?.apply { |
| | | this.time += 24 * 60 * 60 * 1000 |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | override fun findByDate(date: String, userId: String): List<SubtaskVo> { |
| | | val time = DateUtil().StringToDate(date) |
| | | val time = DateUtil.StringToDate(date) |
| | | |
| | | val resultList = mutableListOf<SubtaskVo>() |
| | | |
| | |
| | | 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 |
| | |
| | | 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) |
| | | } |
| | | } |