From 517296b16b1faf07bc389809387b1937f9415746 Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期三, 23 七月 2025 17:35:06 +0800
Subject: [PATCH] 2025.7.23

---
 src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/MediafileServiceImpl.kt |  115 +++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 95 insertions(+), 20 deletions(-)

diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/MediafileServiceImpl.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/MediafileServiceImpl.kt
index 4c5d8c6..927627b 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/MediafileServiceImpl.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/MediafileServiceImpl.kt
@@ -1,11 +1,18 @@
 package cn.flightfeather.supervision.lightshare.service.impl
 
+import cn.flightfeather.supervision.common.exception.BizException
 import cn.flightfeather.supervision.domain.ds1.entity.Mediafile
 import cn.flightfeather.supervision.domain.ds1.mapper.MediafileMapper
 import cn.flightfeather.supervision.common.utils.Constant
 import cn.flightfeather.supervision.common.utils.FileUtil
+import cn.flightfeather.supervision.domain.ds1.entity.Inspection
+import cn.flightfeather.supervision.domain.ds1.repository.InspectionRep
+import cn.flightfeather.supervision.domain.ds1.repository.MediaFileRep
+import cn.flightfeather.supervision.domain.ds1.repository.SceneRep
+import cn.flightfeather.supervision.domain.ds1.repository.SubTaskRep
+import cn.flightfeather.supervision.lightshare.service.DomainitemService
 import cn.flightfeather.supervision.lightshare.service.MediafileService
-import cn.flightfeather.supervision.lightshare.vo.MediafileVo
+import cn.flightfeather.supervision.lightshare.vo.MediaFileVo
 import com.fasterxml.jackson.core.type.TypeReference
 import org.springframework.beans.BeanUtils
 import org.springframework.stereotype.Service
@@ -13,11 +20,21 @@
 import com.fasterxml.jackson.databind.ObjectMapper
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
+import org.springframework.beans.factory.annotation.Value
 import java.io.File
 
 
 @Service
-class MediafileServiceImpl(val mediafileMapper: MediafileMapper) : MediafileService {
+class MediafileServiceImpl(
+    val mediafileMapper: MediafileMapper,
+    private val mediaFileRep: MediaFileRep,
+    private val inspectionRep: InspectionRep,
+    private val subTaskRep: SubTaskRep,
+    private val sceneRep: SceneRep,
+    private val domainItemService: DomainitemService,
+    @Value("\${filePath}") var filePath: String,
+    @Value("\${imgPath}") var imgPath: String,
+) : MediafileService {
 
     private val logging: Logger = LoggerFactory.getLogger(MediafileServiceImpl::class.java)
 
@@ -31,21 +48,43 @@
         return mediafilelist
     }
 
+    /**
+     * 鑾峰彇鎵�鏈変换鎰忔媿甯歌璁板綍鍥剧墖
+     * @param iGuid
+     */
+    override fun getRoutineRecord(iGuid: String?, stGuid: String?): List<Mediafile?> {
+        var inspectionGuid = iGuid
+        val sceneId = if (iGuid != null) {
+            inspectionRep.findOne(iGuid)?.sguid
+        } else if (stGuid != null) {
+            val s = subTaskRep.findOne(stGuid)
+            val ins = inspectionRep.findOne(Inspection().apply { stguid = stGuid })
+            inspectionGuid = ins?.guid
+            s?.scenseid
+        } else {
+            throw BizException("宸℃煡璁板綍id鍜屽贰鏌ヤ换鍔d鑷冲皯濉啓鍏朵腑涓�涓�")
+        }
+        sceneId ?: throw BizException("璁板綍瀵瑰簲鐨勫満鏅笉瀛樺湪")
+        val sceneInfo = sceneRep.findScene(sceneId = sceneId) ?: throw BizException("鍦烘櫙涓嶅瓨鍦紝鑾峰彇鍦烘櫙鍥剧墖澶辫触")
+        val mediaFileTypeList = domainItemService.getMediaFileType(sceneInfo.typeid?.toInt()).entries.map { it.key?.toInt() }
+        return mediaFileRep.findList(inspectionGuid, mediaFileTypeList)
+    }
+
     //鏍规嵁闂id鑾峰彇濯掍綋鏂囦欢
-    override fun findByProblemID(id: String): List<MediafileVo> {
-        val mediafileVos = mutableListOf<MediafileVo>()
+    override fun findByProblemID(id: String): List<MediaFileVo> {
+        val mediaFileVos = mutableListOf<MediaFileVo>()
         val mediafile = Mediafile()
         mediafile.iguid = id
         val mediafiles = mediafileMapper.select(mediafile)
         if (mediafiles.isNotEmpty()) {
             mediafiles.forEach {
-                val mediafileVo = MediafileVo()
+                val mediafileVo = MediaFileVo()
                 BeanUtils.copyProperties(it, mediafileVo)
-                mediafileVos.add(mediafileVo)
+                mediaFileVos.add(mediafileVo)
             }
         }
-        mediafileVos.sortBy { it.savetime }
-        return mediafileVos
+        mediaFileVos.sortBy { it.savetime }
+        return mediaFileVos
     }
 
     //鏂板濯掍綋鏂囦欢
@@ -55,11 +94,11 @@
         val mapper = ObjectMapper()
 
         //json杞琽bject
-        val mediafileVos =
-            mapper.readValue<List<MediafileVo>>(mediafileVoList, object : TypeReference<List<MediafileVo>>() {})
+        val mediaFileVos =
+            mapper.readValue<List<MediaFileVo>>(mediafileVoList, object : TypeReference<List<MediaFileVo>>() {})
 
-        if (mediafileVos.isNotEmpty()) {
-            mediafileVos.forEach {
+        if (mediaFileVos.isNotEmpty()) {
+            mediaFileVos.forEach {
                 val mediafile = Mediafile()
                 BeanUtils.copyProperties(it, mediafile)
 
@@ -72,11 +111,11 @@
             }
 
             //鏍规嵁鎵╁睍瀛楁1鑾峰彇淇濆瓨璺緞
-            val path = mediafileVos[0].extension1
+            val path = mediaFileVos[0].extension1
             for (image in files) {
                 val fileName = image.originalFilename
 
-                val filePath = "${Constant.DEFAULT_FILE_PATH}/images/$path/"
+                val filePath = "${imgPath}/$path/"
                 try {
                     //璋冪敤鏂囦欢淇濆瓨鏂规硶
                     FileUtil.uploadFile(image.bytes, filePath, fileName!!)
@@ -89,17 +128,17 @@
 
 
     //鏍规嵁涓氬姟绫诲瀷ID鑾峰彇濯掍綋鏂囦欢
-    override fun findByBusinessGUID(businessGuid: String): List<MediafileVo> {
-        val mediafileVoList = mutableListOf<MediafileVo>()
+    override fun findByBusinessGUID(businessGuid: String): List<MediaFileVo> {
+        val mediaFileVoList = mutableListOf<MediaFileVo>()
         val mediafile = Mediafile()
         mediafile.businessguid = businessGuid
         val mediafiles = mediafileMapper.select(mediafile)
         mediafiles.forEach {
-            val mediafileVo = MediafileVo()
+            val mediafileVo = MediaFileVo()
             BeanUtils.copyProperties(it, mediafileVo)
-            mediafileVoList.add(mediafileVo)
+            mediaFileVoList.add(mediafileVo)
         }
-        return mediafileVoList
+        return mediaFileVoList
     }
 
     override fun findOne(id: String): Mediafile = mediafileMapper.selectByPrimaryKey(id)
@@ -107,6 +146,26 @@
     override fun findAll(): MutableList<Mediafile> = mediafileMapper.selectAll()
 
     override fun save(mediafile: Mediafile): Int = mediafileMapper.updateByPrimaryKey(mediafile)
+
+    override fun saveMediaFile(files: Array<MultipartFile>, getMediaFile: () -> Mediafile): Int {
+        var res = 0
+        // 淇濆瓨鍥剧墖
+        for (image in files) {
+            val mediaFile = getMediaFile()
+            res += mediafileMapper.insert(mediaFile)
+
+            val path = mediaFile.extension1
+            val fileName = mediaFile.guid + ".jpg"
+            val filePath = "${imgPath}/$path/"
+            try {
+                //璋冪敤鏂囦欢淇濆瓨鏂规硶
+                FileUtil.uploadFile(image.bytes, filePath, fileName)
+            } catch (e: Exception) {
+                // TODO: handle exception
+            }
+        }
+        return res
+    }
 
     override fun update(mediafile: Mediafile): Int = mediafileMapper.updateByPrimaryKey(mediafile)
 
@@ -117,10 +176,26 @@
         val path = mediafile.extension1
         //File("/Users/liwei/images/${path}/${id}.jpg").delete()
         //鍏堝垹鍥剧墖
-        val  f = File("${Constant.DEFAULT_FILE_PATH}/images/$path/$id.jpg")
+        val f = File("${imgPath}/$path/$id.jpg")
         if (f.exists()) {
             f.delete()
         }
         return mediafileMapper.deleteByPrimaryKey(id)
     }
+
+    override fun deleteList(idList: List<String>): Int {
+        var res = 0
+        if (idList.isEmpty()) return res
+        mediaFileRep.findList(idList).forEach {
+            //鏈嶅姟鍣ㄤ繚瀛樿矾寰�
+            val path = it?.extension1
+            //鍏堝垹鍥剧墖
+            val f = File("${imgPath}/$path/${it?.guid}.jpg")
+            if (f.exists()) {
+                f.delete()
+            }
+            res += mediaFileRep.deleteOne(it?.guid)
+        }
+        return res
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3