From 7cbe1610b87da19ed8a146a09b1117f92d9d3d98 Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期五, 19 九月 2025 17:30:37 +0800 Subject: [PATCH] 2025.9.19 1. 联合前端调试数据产品接口(待完成) --- src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/TaskRep.kt | 100 +++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 86 insertions(+), 14 deletions(-) diff --git a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/TaskRep.kt b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/TaskRep.kt index 8dba496..5b6a53a 100644 --- a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/TaskRep.kt +++ b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/TaskRep.kt @@ -1,38 +1,110 @@ package cn.flightfeather.supervision.domain.ds1.repository +import cn.flightfeather.supervision.domain.ds1.entity.Monitorobjectversion import cn.flightfeather.supervision.domain.ds1.entity.Task +import cn.flightfeather.supervision.domain.ds1.mapper.MonitorobjectversionMapper import cn.flightfeather.supervision.domain.ds1.mapper.TaskMapper import cn.flightfeather.supervision.lightshare.vo.AreaVo import org.springframework.stereotype.Repository -import java.time.LocalDate +import tk.mybatis.mapper.entity.Example import java.time.ZoneId import java.util.* @Repository -class TaskRep(private val taskMapper: TaskMapper) { +class TaskRep(private val taskMapper: TaskMapper, private val monitorobjectversionMapper: MonitorobjectversionMapper) { - private fun exampleTask(areaVo: AreaVo): Task?{ + private fun exampleTask(areaVo: AreaVo, levelNum: Int? = null): Example? { areaVo.starttime ?: return null - val mStart = LocalDate.parse(areaVo.starttime).withDayOfMonth(1).atStartOfDay() + val mStart = areaVo.starttime!!.withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0) val mEnd = mStart.plusMonths(1).minusSeconds(1) - return Task().apply { - provincecode = areaVo.provincecode - citycode = areaVo.citycode - districtcode = areaVo.districtcode - starttime = Date.from(mStart.atZone(ZoneId.systemDefault()).toInstant()) - endtime = Date.from(mEnd.atZone(ZoneId.systemDefault()).toInstant()) +// return Task().apply { +// provincecode = areaVo.provincecode +// citycode = areaVo.citycode +// districtcode = areaVo.districtcode +// starttime = Date.from(mStart.atZone(ZoneId.systemDefault()).toInstant()) +// endtime = Date.from(mEnd.atZone(ZoneId.systemDefault()).toInstant()) +// } + + return Example(Task::class.java).apply { + createCriteria() + .apply { + if (levelNum != null) { + andEqualTo("levelnum", levelNum) + } else { + andIsNull("levelnum") + } + } + .andEqualTo("provincecode", areaVo.provincecode) + .andEqualTo("citycode", areaVo.citycode) + .andEqualTo("districtcode", areaVo.districtcode) + .andGreaterThanOrEqualTo("starttime", mStart) + .andLessThanOrEqualTo("endtime", mEnd) + orderBy("starttime") } } + + fun update(task: Task): Int { + return taskMapper.updateByPrimaryKeySelective(task) + } + /** * 鏌ユ壘涓�涓�讳换鍔� */ fun findOneTask(areaVo: AreaVo): Task? { - val example = exampleTask(areaVo) ?: return null - return taskMapper.selectOne(example) + val list = findTasks(areaVo) + return if (list.isEmpty()) { + null + } else { + list[0] + } } fun findTasks(areaVo: AreaVo): List<Task?> { - val example = exampleTask(areaVo) ?: return emptyList() - return taskMapper.select(example) + val example = exampleTask(areaVo, 2) ?: return emptyList() + return taskMapper.selectByExample(example) + } + + fun findTasks(task: Task): List<Task?> { + return taskMapper.select(task) + } + + /** + * 鑾峰彇鎬讳换鍔″搴旂殑鐩戠鐗堟湰 + */ + fun findMonitorList(taskId: String, sceneTypeId:String?): List<Monitorobjectversion> { + val monitorList = monitorobjectversionMapper.findMonitorListByScene(taskId, sceneTypeId) + return monitorList.sortedBy { it.displayid } + } + + /** + * 鑾峰彇鏃ヤ换鍔� + * @param taskId 椤跺眰浠诲姟id + * @param userId 鎵ц鐢ㄦ埛id + */ + fun findDayTasks(taskId: String?, userId: String? = null): List<Task?> { + return taskMapper.selectByExample(Example(Task::class.java).apply { + createCriteria().andEqualTo("tsguid", taskId).apply { + userId?.let { andLike("executorguids", "%$it%") } + } + orderBy("starttime").desc() + }) + } + + /** + * 鑾峰彇鐩稿悓鍖哄煙鍐呬笂涓懆鏈熺殑鎬讳换鍔� + */ + fun findLastTopTask(taskId: String?): Task? { + val task = taskMapper.selectByPrimaryKey(taskId) ?: return null + + return taskMapper.selectByExample(Example(Task::class.java).apply { + createCriteria() + .andNotEqualTo("tguid", task.tguid) + .andEqualTo("typeno", task.typeno) + .andEqualTo("levelnum", 2) + .andEqualTo("provincecode", task.provincecode) + .andEqualTo("citycode", task.citycode) + .andEqualTo("districtcode", task.districtcode) + orderBy("starttime").desc() + }).firstOrNull() } } \ No newline at end of file -- Gitblit v1.9.3