From 16b961c2210fe29fd494ac1f9d830dd93503961f Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期五, 02 八月 2024 17:25:17 +0800 Subject: [PATCH] 1. 新增监测设备的管理功能 --- src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/SubtaskServiceImpl.kt | 293 ++++++++++++++++++---------------------------------------- 1 files changed, 93 insertions(+), 200 deletions(-) diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/SubtaskServiceImpl.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/SubtaskServiceImpl.kt index 556871c..d58addf 100644 --- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/SubtaskServiceImpl.kt +++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/SubtaskServiceImpl.kt @@ -1,11 +1,14 @@ package cn.flightfeather.supervision.lightshare.service.impl import cn.flightfeather.supervision.business.autooutput.score.AopEvaluation +import cn.flightfeather.supervision.common.exception.BizException import cn.flightfeather.supervision.domain.ds1.entity.* import cn.flightfeather.supervision.domain.ds1.mapper.* 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 import cn.flightfeather.supervision.lightshare.vo.* @@ -16,6 +19,7 @@ import org.springframework.transaction.annotation.Transactional import tk.mybatis.mapper.entity.Example import tk.mybatis.mapper.util.StringUtil +import java.time.LocalDateTime import java.util.* import kotlin.math.ceil @@ -23,9 +27,9 @@ class SubtaskServiceImpl( 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 @@ -182,25 +186,25 @@ dateString = date.substring(0, 7) } //鍒ゆ柇鍙傛暟鏄惁姝g‘ - 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 -> { //鍙傛暟涓嶆纭氨杩斿洖 @@ -236,25 +240,25 @@ dateString = date.substring(0, 7) } //鍒ゆ柇鍙傛暟鏄惁姝g‘ - 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 -> { //鍙傛暟涓嶆纭氨杩斿洖 @@ -387,9 +391,9 @@ 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 搴旇鐩存帴鏍规嵁瀛愪换鍔$殑鏃ヤ换鍔d鏌ヨ鏃ヤ换鍔� + //搴旇鐩存帴鏍规嵁瀛愪换鍔$殑鏃ヤ换鍔d鏌ヨ鏃ヤ换鍔� val daytaskVo = taskService.findByID(subtask.tsguid!!) //鍒ゆ柇鏄惁鏈夋棩浠诲姟 @@ -401,9 +405,9 @@ 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 //******************************************** @@ -425,6 +429,7 @@ if (!bool){ daytaskVo.runingstatus = Constant.TaskProgress.RUNINGSTATUS3.text } + } //涓よ�呯姸鎬佺浉鍚屾椂涓嶅仛淇敼锛屽叾浣欐儏鍐垫棩浠诲姟閮戒负姝e湪鎵ц else if (subtask.status != daytaskVo.runingstatus){ @@ -436,30 +441,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) { @@ -534,7 +515,7 @@ cal.set(Calendar.MILLISECOND, 0) cal.time } else { - DateUtil().StringToDate(startTime!!) + DateUtil.StringToDate(startTime!!) } val _endTime = if (endTime.isNullOrBlank()) { @@ -545,7 +526,7 @@ cal.set(Calendar.MILLISECOND, 999) cal.time } else { - DateUtil().StringToDate(endTime!!)?.apply { + DateUtil.StringToDate(endTime!!)?.apply { time += 24 * 60 * 60 * 1000 } } @@ -592,95 +573,25 @@ } } - -// 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 } @@ -699,7 +610,7 @@ cal.set(Calendar.MILLISECOND, 0) cal.time } else { - DateUtil().StringToDate(startTime!!) + DateUtil.StringToDate(startTime!!) } val _endTime = if (endTime.isNullOrBlank()) { @@ -710,7 +621,7 @@ cal.set(Calendar.MILLISECOND, 999) cal.time } else { - DateUtil().StringToDate(endTime!!)?.apply { + DateUtil.StringToDate(endTime!!)?.apply { this.time += 24 * 60 * 60 * 1000 } } @@ -724,13 +635,13 @@ 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 { @@ -794,7 +705,7 @@ // 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 } @@ -804,7 +715,7 @@ 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 { @@ -831,7 +742,7 @@ } val time = if (updateTime != null) { - DateUtil().StringToDate(updateTime) + DateUtil.StringToDate(updateTime) } else { null } @@ -850,7 +761,7 @@ cal.set(Calendar.MILLISECOND, 0) cal.time } else { - DateUtil().StringToDate(startTime!!) + DateUtil.StringToDate(startTime!!) } val _endTime = if (endTime.isNullOrBlank()) { @@ -861,7 +772,7 @@ cal.set(Calendar.MILLISECOND, 999) cal.time } else { - DateUtil().StringToDate(endTime!!)?.apply { + DateUtil.StringToDate(endTime!!)?.apply { this.time += 24 * 60 * 60 * 1000 } } @@ -982,7 +893,7 @@ } override fun findByDate(date: String, userId: String): List<SubtaskVo> { - val time = DateUtil().StringToDate(date) + val time = DateUtil.StringToDate(date) val resultList = mutableListOf<SubtaskVo>() @@ -998,67 +909,49 @@ return resultList } - 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 + override fun getByTopTaskAndDate( + topTaskId: String, + startTime: String?, + endTime: String?, + sceneTypeId: Int? + ): List<Subtask> { - val resultList = subtaskMapper.selectByTopTask2(topTaskId, sceneTypeId) - - return resultList + return subtaskMapper.selectByTopTask2(topTaskId, sceneTypeId) } 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) + } + 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 + val pro = TaskProgressVo().apply { + tguid = t.tguid + name = t.name + levelnum = t.levelnum + provinceCode = t.provincecode + provinceName = t.provincename + cityCode = t.citycode + cityName = t.cityname + districtCode = t.districtcode + districtName = t.districtname + townCode = t.towncode + townName = t.townname + subTaskSummary = subtaskMapper.getSummary(t.tguid!!, areaVo.scensetypeid?.toIntOrNull()) + } + res.add(pro) + } + return res + } + + 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) } } \ No newline at end of file -- Gitblit v1.9.3