From 85ef942e7195abeb71466b7159c3ee30161e1e54 Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期二, 07 四月 2026 08:51:01 +0800
Subject: [PATCH] 2026.4.7

---
 src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ProblemlistServiceImpl.kt |   49 +++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 45 insertions(+), 4 deletions(-)

diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ProblemlistServiceImpl.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ProblemlistServiceImpl.kt
index ccca225..1b7cae2 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ProblemlistServiceImpl.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ProblemlistServiceImpl.kt
@@ -13,6 +13,7 @@
 import cn.flightfeather.supervision.domain.ds1.repository.TaskRep
 import cn.flightfeather.supervision.lightshare.service.MediafileService
 import cn.flightfeather.supervision.lightshare.service.ProblemlistService
+import cn.flightfeather.supervision.lightshare.service.SubtaskService
 import cn.flightfeather.supervision.lightshare.service.TaskService
 import cn.flightfeather.supervision.lightshare.vo.*
 import com.fasterxml.jackson.core.type.TypeReference
@@ -39,6 +40,8 @@
     val problemlistMapper: ProblemlistMapper,
     val inspectionMapper: InspectionMapper,
     val mediafileMapper: MediafileMapper,
+    private val subtaskService: SubtaskService,
+    private val subtaskMapper: SubtaskMapper,
     private val taskRep: TaskRep,
     private val subTaskRep: SubTaskRep,
     private val problemRep: ProblemRep,
@@ -103,6 +106,42 @@
             }
         }
         return problemListVolistTemp1
+    }
+
+    override fun getBySceneMonth(sceneId: String, year: Int?, month: Int?): Pair<List<SubtaskVo>, List<ProblemListVo>> {
+        var _year = year
+        var _month = month
+        var lastSubTasks = listOf<SubtaskVo>()
+        if (year == null) {
+            lastSubTasks = subtaskService.findByDate(sceneId = sceneId)
+//            PageHelper.startPage<Problemlist>(1, 1)
+//            val lastProblem = problemlistMapper.selectByExample(Example(Problemlist::class.java).apply {
+//                createCriteria().andEqualTo("sguid", sceneId)
+//                orderBy("time").desc()
+//            }).takeIf { it.isNotEmpty() }?.get(0)
+            if (lastSubTasks.isEmpty()) {
+                return lastSubTasks to emptyList()
+            } else {
+                val lt = LocalDateTime.ofInstant(lastSubTasks[0].planstarttime?.toInstant(), ZoneId.systemDefault())
+                _year = lt.year
+                _month = lt.monthValue
+            }
+        }
+        val sT = LocalDateTime.of(_year!!, _month!!, 1, 0, 0, 0, 0)
+        val eT = sT.plusMonths(1).minusSeconds(1)
+        if (lastSubTasks.isEmpty()) {
+            lastSubTasks = subtaskMapper.selectByExample(Example(Subtask::class.java).apply {
+                createCriteria().andBetween("planstarttime", sT, eT)
+            }).map {
+                SubtaskVo().apply { BeanUtils.copyProperties(it, this) }
+            }
+        }
+        val problemList = problemlistMapper.selectByExample(Example(Problemlist::class.java).apply {
+            createCriteria().andBetween("time", sT,eT)
+                .andEqualTo("sguid", sceneId)
+            orderBy("time").desc()
+        }).map { ProblemListVo().apply { BeanUtils.copyProperties(it, this) } }
+        return lastSubTasks to problemList
     }
 
     //鑾峰彇鏌愰《灞備换鍔′笅锛屾煇涓満鏅笅鐨勯棶棰樻暣鏀规儏鍐�
@@ -516,13 +555,13 @@
         return "success"
     }
 
-    override fun updateProblem(problem: ProblemListVo, deleteImg: List<String>, files: Array<MultipartFile>): String {
+    override fun updateProblem(problem: ProblemListVo, deleteImg: List<String>?, files: Array<MultipartFile>): String {
         problemRep.findOne(problem.guid) ?: throw BizException("璇ラ棶棰樹笉瀛樺湪")
         problemRep.update(problem)
         val inspection = inspectionMapper.selectByPrimaryKey(problem.iguid) ?: throw BizException("宸℃煡璁板綍涓嶅瓨鍦�")
         val scene = scenseMapper.selectByPrimaryKey(inspection.sguid) ?: throw BizException("宸℃煡璁板綍瀵瑰簲鍦烘櫙涓嶅瓨鍦�")
         mediafileService.saveMediaFile(files) { MediaFileVo.newProFile(inspection, problem, scene) }
-        mediafileService.deleteList(deleteImg)
+        deleteImg?.let { mediafileService.deleteList(it) }
         return "success"
     }
 
@@ -576,9 +615,10 @@
         val mediaFiles = mediafileMapper.selectByExample(Example(Mediafile::class.java).apply {
             createCriteria().andEqualTo("businessguid", problemId)
                 .andEqualTo("businesstypeid", 1)
-                .andEqualTo("ischanged", true)
+//                .andEqualTo("ischanged", true)
         })
-        if (mediaFiles.isEmpty()) throw BizException("闂杩樻湭鏁存敼锛屾棤娉曚慨鏀规暣鏀�")
+        if (mediaFiles.isEmpty()) throw BizException("缂哄皯闂鍜屾暣鏀瑰浘鐗囷紝鏃犳硶淇敼")
+        if (p.ischanged != true) throw BizException("鏈暣鏀归棶棰樻棤娉曚慨鏀�")
 
         // 淇濆瓨鏂扮殑鏁存敼鍥剧墖
         val m = mediaFiles[0]
@@ -587,6 +627,7 @@
             m.apply {
                 guid = UUIDGenerator.generate16ShortUUID()
                 description = p.problemname + " " + p.location + " 鏁存敼 " + UUIDGenerator.generateUUID(4) + ".jpg"
+                ischanged = true
             }
         }
         mediafileService.deleteList(deleteImg)

--
Gitblit v1.9.3