From 7d74f3fd087d4a8192ed556a6c2e3a2ea3c81cff Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期五, 28 三月 2025 17:43:48 +0800
Subject: [PATCH] 1. 新增扬尘监测数据上传功能

---
 src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/TaskRep.kt |   50 +++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 37 insertions(+), 13 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 21133a7..85bffce 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
@@ -13,16 +13,33 @@
 @Repository
 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")
         }
     }
 
@@ -34,13 +51,17 @@
      * 鏌ユ壘涓�涓�讳换鍔�
      */
     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?> {
@@ -58,10 +79,13 @@
     /**
      * 鑾峰彇鏃ヤ换鍔�
      * @param taskId 椤跺眰浠诲姟id
+     * @param userId 鎵ц鐢ㄦ埛id
      */
-    fun findDayTasks(taskId: String?): List<Task?> {
+    fun findDayTasks(taskId: String?, userId: String? = null): List<Task?> {
         return taskMapper.selectByExample(Example(Task::class.java).apply {
-            createCriteria().andEqualTo("tsguid", taskId)
+            createCriteria().andEqualTo("tsguid", taskId).apply {
+                userId?.let { andLike("executorguids", "%$it%") }
+            }
             orderBy("starttime").desc()
         })
     }

--
Gitblit v1.9.3