From ae04c5d925b0094e1a1ba1f2ce0bf6da0a6fee04 Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期四, 22 一月 2026 17:27:55 +0800
Subject: [PATCH] 2026.1.22 1. 新增台账上传office文档功能; 2. 新增office文档存储原始文档名字功能

---
 src/main/kotlin/cn/flightfeather/supervision/lightshare/service/LedgerService.kt              |    2 +-
 src/main/kotlin/cn/flightfeather/supervision/lightshare/service/SelfPatrolService.kt          |    1 +
 src/main/kotlin/cn/flightfeather/supervision/lightshare/web/LedgerController.kt               |    6 ++++--
 src/main/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/LedgerServiceImpl.kt     |   34 ++++++++++++++++++++++++++--------
 src/main/kotlin/cn/flightfeather/supervision/lightshare/web/SelfPatrolController.kt           |    4 +++-
 src/main/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/SelfPatrolServiceImpl.kt |   12 +++++++++++-
 6 files changed, 46 insertions(+), 13 deletions(-)

diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/LedgerServiceImpl.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/LedgerServiceImpl.kt
index 90ddb5a..3c3fed5 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/LedgerServiceImpl.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/LedgerServiceImpl.kt
@@ -19,9 +19,11 @@
 import cn.flightfeather.supervision.lightshare.vo.*
 import com.fasterxml.jackson.core.type.TypeReference
 import com.fasterxml.jackson.databind.ObjectMapper
+import com.fasterxml.jackson.module.kotlin.readValue
 import com.github.pagehelper.PageHelper
 import org.springframework.beans.factory.annotation.Value
 import org.springframework.stereotype.Service
+import org.springframework.transaction.annotation.Transactional
 import org.springframework.web.multipart.MultipartFile
 import tk.mybatis.mapper.entity.Example
 import java.io.File
@@ -305,11 +307,21 @@
         return true
     }
 
-    override fun uploadLedger(userId: String, ledgerVoList: String, files: Array<MultipartFile>): Boolean {
-
+    @Transactional
+    override fun uploadLedger(
+        userId: String, ledgerVoList: String,
+        fileNames: String?, files: Array<MultipartFile>,
+    ): Boolean {
         val mapper = ObjectMapper()
 
-        val ledgerVos = mapper.readValue<List<LedgerVo>>(ledgerVoList, object : TypeReference<List<LedgerVo>>() {})
+        val ledgerVos = mapper.readValue(ledgerVoList, object : TypeReference<List<LedgerVo>>() {})
+        val fileNamePair = if (fileNames.isNullOrBlank()) {
+            emptyList()
+        } else {
+            mapper.readValue(fileNames, object : TypeReference<List<Map<String, String>>>() {})?.map {
+                it["first"] to it["second"]
+            }
+        }
 
         ledgerVos.forEach {
             it.id = it.id ?: UUIDGenerator.generate16ShortUUID()
@@ -356,8 +368,14 @@
                 val record = tmp[0]
                 it.id = record.lrGuid
                 ledgerMedia = deleteLedgerFile(record.lrGuid)
-                // 鍘婚櫎涓嶆秹鍙婃爣蹇楁垨澶嶅埗鏍囧織
-                record.lrExtension2 = null
+                record.apply {
+                    lrYear = updateYear
+                    lrMonth = updateMonth.toByte()
+                    lrDay = updateDay.toByte()
+                    lrSubmitdate = Date()
+                    // 鍘婚櫎涓嶆秹鍙婃爣蹇楁垨澶嶅埗鏍囧織
+                    lrExtension2 = null
+                }
                 ledgerRecordMapper.updateByPrimaryKey(record)
             }
 
@@ -365,9 +383,9 @@
             var picPath = ""
             val time = DateUtil.DateToString(Date(), DateUtil.DateStyle.YYYY_MM)
             files.forEach { file ->
-                val fileName = file.originalFilename
-                //TODO 姝ゅ鐨勬枃浠惰矾寰勯渶瑕佷慨鏀逛负鍔ㄦ�侀厤缃�
-//                val basePath = "D:/02product/05ledger/images/"
+                var fileName = file.originalFilename
+                // 鏍规嵁浼犲叆鐨勬枃浠堕厤闃熶俊鎭幏鍙栧師濮嬫枃浠跺悕
+                fileNamePair?.find { p-> p.first == file.originalFilename }?.let { p-> fileName = p.second }
                 val basePath = imgPath
                 val path = "$time/$userId/${it.ledgerName}/"
                 picPath += if (picPath.isEmpty()) {
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/SelfPatrolServiceImpl.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/SelfPatrolServiceImpl.kt
index 4cc188e..ec094e9 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/SelfPatrolServiceImpl.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/SelfPatrolServiceImpl.kt
@@ -172,10 +172,18 @@
         userId: String,
         taskId: String?,
         list: String,
+        fileNames: String?,
         files: Array<MultipartFile>,
     ): BaseResponse<Boolean> {
         val mapper = ObjectMapper()
         val ledgerVos = mapper.readValue(list, object : TypeReference<List<LedgerVo>>() {})
+        val fileNamePair = if (fileNames.isNullOrBlank()) {
+            emptyList()
+        } else {
+            mapper.readValue(fileNames, object : TypeReference<List<Map<String, String>>>() {})?.map {
+                it["first"] to it["second"]
+            }
+        }
         ledgerVos.forEach {
             it.id = it.id ?: UUIDGenerator.generate16ShortUUID()
             it.fileType = it.fileType ?: 1
@@ -232,7 +240,9 @@
             var picPath = ""
             val time = DateUtil.DateToString(Date(), DateUtil.DateStyle.YYYY_MM)
             files.forEach { file ->
-                val fileName = file.originalFilename
+                var fileName = file.originalFilename
+                // 鏍规嵁浼犲叆鐨勬枃浠堕厤闃熶俊鎭幏鍙栧師濮嬫枃浠跺悕
+                fileNamePair?.find { p-> p.first == file.originalFilename }?.let { p-> fileName = p.second }
                 val basePath = imgPath
                 val path = "$time/$userId/${it.ledgerName}/"
                 picPath += if (picPath.isEmpty()) {
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/LedgerService.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/LedgerService.kt
index 438257e..d3ffb20 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/LedgerService.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/LedgerService.kt
@@ -27,7 +27,7 @@
     /**
      * 涓婁紶鍙拌处
      */
-    fun uploadLedger(userId: String, ledgerVoList: String, files: Array<MultipartFile>): Boolean
+    fun uploadLedger(userId: String, ledgerVoList: String, fileNames: String?, files: Array<MultipartFile>): Boolean
 
     /**
      * 涓婁紶涓嶆秹鍙婂彴璐�
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/SelfPatrolService.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/SelfPatrolService.kt
index b9fd2bc..cfb0fa3 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/SelfPatrolService.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/SelfPatrolService.kt
@@ -39,6 +39,7 @@
         userId: String,
         taskId: String?,
         list: String,
+        fileNames: String?,
         files: Array<MultipartFile>,
     ): BaseResponse<Boolean>
 
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/LedgerController.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/LedgerController.kt
index 09d4541..cddd932 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/LedgerController.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/LedgerController.kt
@@ -60,8 +60,10 @@
     fun uploadLedger(
         @ApiParam("鐢ㄦ埛id") @PathVariable userId: String,
         @ApiParam("鍙拌处淇℃伅json") @RequestParam("params") ledgerVoList: String,
-        @ApiParam("鍙拌处鍥剧墖") @RequestPart("images") files:Array<MultipartFile>
-    ) = ledgerService.uploadLedger(userId, ledgerVoList, files)
+        @ApiParam("涓存椂鏂囦欢鍚嶅拰鍘熷鏂囦欢鍚嶇О鐨勫搴斿垪琛�") @RequestParam("fileNames", required = false)
+        fileNames: String?,
+        @ApiParam("鍙拌处鍥剧墖") @RequestPart("images") files: Array<MultipartFile>,
+    ) = ledgerService.uploadLedger(userId, ledgerVoList, fileNames, files)
 
     @ApiOperation("涓婁紶涓嶆秹鍙婂彴璐�")
     @PostMapping("/upload/noLedger")
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/SelfPatrolController.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/SelfPatrolController.kt
index eedee59..63531e1 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/SelfPatrolController.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/SelfPatrolController.kt
@@ -58,8 +58,10 @@
         @ApiParam("鐢ㄦ埛id") @RequestParam userId: String,
         @ApiParam("搴旀�ヨ嚜宸℃煡浠诲姟id") @RequestParam(required = false) taskId: String?,
         @ApiParam("鑷贰鏌ヤ俊鎭痡son") @RequestParam("params") list: String,
+        @ApiParam("涓存椂鏂囦欢鍚嶅拰鍘熷鏂囦欢鍚嶇О鐨勫搴斿垪琛�") @RequestParam("fileNames", required = false)
+        fileNames: String?,
         @ApiParam("鑷贰鏌ュ浘鐗�") @RequestPart("images") files: Array<MultipartFile>,
-    ) = selfPatrolService.uploadSelfPatrol(userId, taskId, list, files)
+    ) = selfPatrolService.uploadSelfPatrol(userId, taskId, list,fileNames, files)
 
     @ApiOperation("涓婁紶涓嶆秹鍙婅嚜宸℃煡")
     @PostMapping("/task/record/upload/noInvolved")

--
Gitblit v1.9.3