From aed297a5fbc8df9dab01b28da21f872ee546b43c Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期一, 13 十月 2025 16:15:11 +0800
Subject: [PATCH] 2025.10.13 1. 统一调整controller层的返回类型,通过添加全局响应增强器GlobalResponseAdvice来管理返回结果; 2. 新增mybatis-generator自定义插件,实现给数据库实体entity自动添加swagger注解@ApiModel和@ApiModelProperty
---
src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/TaskRep.kt | 100 ++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 85 insertions(+), 15 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 14eccea..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,40 +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 java.time.LocalDateTime
+import tk.mybatis.mapper.entity.Example
import java.time.ZoneId
-import java.time.format.DateTimeFormatter
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 = 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