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/Impl/LedgerServiceImpl.kt | 54 +++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 41 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 6e3f009..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
@@ -97,6 +99,7 @@
sceneType = it.getlScenetype(),
iconUrl = it.getlIconurl(),
realTime = it.getlRealTime(),
+ copy = it.getlAutoCopy() ?: false,
description = it.getlDescription(),
notRelated = it.getlNotRelatedSwitch() ?: true,
multigroup = it.getlMultiGroup() ?: false
@@ -188,6 +191,9 @@
ledgerType = type?.get(0)?.getlTypename()
ledgerFinished = true
isUpLoad = true
+ this.year = it.lrYear
+ this.month = it.lrMonth
+ this.day = it.lrDay
updateDate = it.lrSubmitdate
updateType = it.lrUpdatetype
fileType = it.lrEasubmitkind.toInt()
@@ -248,6 +254,9 @@
ledgerType = type?.get(0)?.getlTypename()
ledgerFinished = true
isUpLoad = true
+ this.year = it.lrYear
+ this.month = it.lrMonth
+ this.day = it.lrDay
updateDate = it.lrSubmitdate
updateType = it.lrUpdatetype
fileType = it.lrEasubmitkind.toInt()
@@ -298,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()
@@ -349,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)
}
@@ -358,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()) {
@@ -576,8 +601,8 @@
}
override fun copyLedger(userId: String, time: String, copyLedgerList: List<CopyLedgerVo>): BaseResponse<String> {
- val year = time.split("-")[0]
- val month = time.split("-")[1]
+ val year = time.split("-")[0].toIntOrNull() ?: return BaseResponse(false, "骞翠唤鏍煎紡閿欒")
+ val month = time.split("-")[1].toIntOrNull() ?: return BaseResponse(false, "鏈堜唤鏍煎紡閿欒")
val date = DateUtil.StringToDate(time, DateUtil.DateStyle.YYYY_MM)
copyLedgerList.forEach {
//鍘婚噸鍒ゆ柇
@@ -591,14 +616,17 @@
return@forEach
}
- val y = it.time?.split("-")?.get(0) ?: return@forEach
- val m = it.time?.split("-")?.get(1) ?: return@forEach
+ val y = it.time?.split("-")?.get(0)
+ val m = it.time?.split("-")?.get(1)
ledgerRecordMapper.selectByExample(Example(LedgerRecord::class.java).apply {
createCriteria().andEqualTo("lrSubmitid", userId)
.andEqualTo("lsSubtypeid", it.subTypeId)
.andEqualTo("lrYear", y)
.andEqualTo("lrMonth", m)
- }).forEach record@{ lr ->
+ orderBy("lrYear").desc()
+ .orderBy("lrMonth").desc()
+ .orderBy("lrSubmitdate").desc()
+ }).takeIf { list-> list.isNotEmpty() }?.get(0)?.let record@{ lr ->
//鑾峰彇璁板綍瀵瑰簲鐨勬枃浠朵俊鎭�
val fileList = ledgerMediaFileMapper.selectByExample(Example(LedgerMediaFile::class.java).apply {
createCriteria().andEqualTo("lrGuid", lr.lrGuid)
--
Gitblit v1.9.3