解决”重复文件名重命名“问题【根据Word系统方式】
提示:工作中遇到的功能需求,在此记录,不喜勿喷!谢谢
文章目录
- 前言
- 一、需求分析
- 二、需求实现
前言
最近工作中遇到的我认为有必要记录的需求实现,希望可以帮助到有同样需求的小伙伴们!
提示:以下是本篇文章正文内容,下面案例可供参考
一、需求分析
编写代码过程中,往往需要考虑校验数据唯一性。Word系统的重命名规则为:第一个文件 测试.jpg-》第二个文件 测试 -副本.jpg-》第三个文件 测试 -副本(1).jpg-》第四个文件 测试 -副本(2).jpg,依次类推。
二、需求实现
代码实现
代码如下(示例):
public Result<String> add(@RequestBody KfWangpan kfWangpan) {//获取入参中文件信息FileVo fileVo = kfWangpan.getFileVoList().get(0);//获取系统用户信息LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();//查询该用户该资源类型下所有文件记录List<KfWangpan> list = kfWangpanService.lambdaQuery().eq(KfWangpan::getResourceType, kfWangpan.getResourceType()).eq(KfWangpan::getCreateBy,user.getUsername()).list();//通过ArrayList收集重复文件名的数量ArrayList<String> strings = new ArrayList<>();//根据.分隔为两部分split[0]为文件名,split[1]为文件后缀名String[] split = fileVo.getResourceName().split("\\.");if (list.size()!=0) {//遍历文件记录,如果有该文件名,则随机生成UUIDfor (KfWangpan item : list) {if (item.getResourceName().split("\\.")[0].equals(split[0])||item.getResourceName().split("-")[0].equals(split[0])) {UUID uuid = UUID.randomUUID();strings.add(String.valueOf(uuid));}}}//遍历该文件名集合if (strings.size() == 1) {//数据库里有一条记录fileVo.setResourceName(split[0] + "-副本."+ split[1]);} else if (strings.size() >= 2) {//数据库里有两个以上的记录int count = strings.size() - 1;fileVo.setResourceName(split[0] + "-副本(" + count + ")."+split[1]);}kfWangpanService.add(kfWangpan);return Result.OK("添加成功!");}
相关文章:
解决”重复文件名重命名“问题【根据Word系统方式】
提示:工作中遇到的功能需求,在此记录,不喜勿喷!谢谢 文章目录 前言一、需求分析二、需求实现 前言 最近工作中遇到的我认为有必要记录的需求实现,希望可以帮助到有同样需求的小伙伴们! 提示:以…...
【PyTorch】PyTorch Geometric(PyG)安装指南:如何高效配置图神经网络环境
目录 引言一、通过 Anaconda 安装二、通过 PyPi 安装三、从 Wheels 安装四、从 ROCm 安装五、从源代码安装5.1 确保 CUDA 环境设置正确5.1.1 检查 PyTorch 是否支持 CUDA5.1.2 设置 CUDA 环境变量5.1.3 验证 nvcc 是否可用 5.2 安装 PyTorch Geometric 所需软件包5.3 强制重新安…...
SolidWorks21装配体中一个零件无法改为线架图
右键零件弹出栏中选择零部件显示改为默认显示,再切换线架图,就会发现整个装配体都能切换为线架图了!...
11.11机器学习_介绍和定义
一、 机器学习介绍与定义 1. 机器学习定义 机器学习(Machine Learning)本质上就是让计算机自己在数据中学习规律,并根据所得到的规律对未来数据进行预测。 机器学习包括如聚类、分类、决策树、贝叶斯、神经网络、深度学习(Deep…...
【代码审计】常见漏洞专项审计-业务逻辑漏洞审计
❤️博客主页: iknow181 🔥系列专栏: 网络安全、 Python、JavaSE、JavaWeb、CCNP 🎉欢迎大家点赞👍收藏⭐评论✍ 0x01 漏洞介绍 1、 原理 业务逻辑漏洞是一类特殊的安全漏洞,业务逻辑漏洞属于设计漏洞而非实…...
SpringBoot单体服务无感更新启动,动态检测端口号并动态更新
SpringBoot单体服务无感更新启动 package com.basaltic.warn;import cn.hutool.core.io.IoUtil; import lombok.SneakyThrows; import org.apache.commons.lang3.StringUtils; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplic…...
CSS基础知识04
文本溢出通常是指在限定的空间内不能容纳所输入的文字,导致文字超出了容器的边界 一、文本溢出 1.1.css属性处理 所用到的属性 属性属性值overflowvisible:默认值,内容不会被修剪,会呈现在元素框之外。hidden:内容会…...
python程序对服务器cpu和内存资源占用的管理。
背景 在服务器上部署了一套目标检测的程序,做成while true 的轮询检测数据更新的定时任务。 结果没想到那台服务器还有一套可视化程序要给领导演示看,结果演示的时候平台各种报错。 然后通过top查看了一下资源利用率发现python的程序cpu 130。…...
java算法性能调优:详尽探讨时间复杂度与空间复杂度的分析与优化“
接下来我将带领大家进入Java数据结构的深入学习,让我们一同享受Java数据结构中的奥秘。 一、引言 二、时间复杂度 三、空间复杂度 四、Java中的时间复杂度和空间复杂度 五、优化时间复杂度和空间复杂度 七、时间复杂度和空间复杂度的重要性 一:时间…...
人工智能:塑造未来的工作与生活
目录 人工智能技术的应用前景与影响 人工智能的历史与现状 人工智能的应用领域 人工智能的前景与挑战 个人视角:人工智能的应用前景与未来 人工智能在生活中的潜力 面对人工智能带来的挑战 我的观点与建议 结语 人工智能技术的应用前景与影响 随着人工智能…...
RK3568笔记六十九: 事件回调处理之Libevent 简单使用
若该文为原创文章,转载请注明原文出处。 一、前言 在项目开发过程中,事件处理使用相当多,特别是在UI处理的过程中,UI不能在非UI程里直接操作,否则会出现内存等异常,即不能在子线程里操作UI,所以用事件消息的方式通知UI线程刷新UI界面,在这一细节上掉了好多次坑。 Lib…...
MySQL如何解决幻读?
目录 一、什么是幻读? 1.1 幻读的定义 1.2 幻读的示例 1.3 幻读产生的原因? 1.4 读已提交(Read Committed) 1.4.1 确定事务等级 1.4.2 非锁定读取 准备 示例 结论 1.4.3 锁定读取 准备 示例 分析 结论 1.5 可重复读…...
Javascript_设计模式(二)
什么是迭代器模式?一般用在什么场景? 迭代器模式是一种行为型设计模式,它用于提供一种顺序访问聚合对象中各个元素的方法,而又不暴露该对象的内部表示。通过使用迭代器模式,可以遍历一个聚合对象,而无需关心该对象的内部结构和…...
时间同步服务器
1、时间同步服务:在多台主机协作时,确保时间同步,防止时间不一致造成的故障。 2、时间按同步实现: ntp 、chrony 3、命令:timedatectl timedatectl set-time "2024-02-13 10:41:55" timedatect…...
react+hook+vite项目使用eletron打包成桌面应用+可以热更新
使用Hooks-Admin的架构 Hooks-Admin: 🚀🚀🚀 Hooks Admin,基于 React18、React-Router V6、React-Hooks、Redux、TypeScript、Vite2、Ant-Design 开源的一套后台管理框架。https://gitee.com/HalseySpicy/Hooks-Adminexe桌面应用…...
STM32 ADC --- DMA乒乓缓存
STM32 ADC — DMA乒乓缓存 文章目录 STM32 ADC --- DMA乒乓缓存软件切换实现乒乓利用DMA双缓冲实现乒乓 通过cubeMX配置生成HAL工程这里使用的是上篇文章(STM32 ADC — DMA采样)中生成的工程配置 软件切换实现乒乓 cubeMX默认生成的工程中是打开DMA中断…...
SpringCloud基础 入门级 学习SpringCloud 超详细(简单通俗易懂)
Spring Cloud 基础入门级学习 超详细(简单通俗易懂) 一、SpringCloud核心组件第一代:SpringCloud Netflix组件第二代:SpringCloud Alibaba组件SpringCloud原生组件 二、SpringCloud体系架构图三、理解分布式与集群分布式集群 四、…...
【Windows 常用工具系列 20 -- MobaXterm 登录 WSL】
文章目录 MobaXterm 登录 WSL MobaXterm 登录 WSL 在 WSL 启动之后,打开 MobaXterm: 在 Distribution 中选择自己本地安装的 ubuntu 版本,我这里使用的是ubuntu-20.4,然后在 runmethod 中选择 Localhost connection. 连接成功之…...
【vmware+ubuntu16.04】ROS学习_博物馆仿真克隆ROS-Academy-for-Beginners软件包处理依赖报错问题
首先安装git 进入终端,输入sudo apt-get install git 安装后,创建一个工作空间名为tutorial_ws, 输入 mkdir tutorial_ws#创建工作空间 cd tutorial_ws#进入 mkdir src cd src git clone https://github.com/DroidAITech/ROS-Academy-for-Be…...
UniApp的Vue3版本中H5配置代理的最佳方法
UniApp的Vue3版本中H5项目在本地开发时需要配置跨域请求调试 最开始在 manifest.json中配置 总是报404,无法通过代理请求远程的接口并返回404错误。 经过验证在项目根目录创建 vite.config.js文件 vite.config.js内容: // vite.config.js import {defineConfig }…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...
【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...
Kafka入门-生产者
生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...
mac 安装homebrew (nvm 及git)
mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用: 方法一:使用 Homebrew 安装 Git(推荐) 步骤如下:打开终端(Terminal.app) 1.安装 Homebrew…...
五子棋测试用例
一.项目背景 1.1 项目简介 传统棋类文化的推广 五子棋是一种古老的棋类游戏,有着深厚的文化底蕴。通过将五子棋制作成网页游戏,可以让更多的人了解和接触到这一传统棋类文化。无论是国内还是国外的玩家,都可以通过网页五子棋感受到东方棋类…...
二维FDTD算法仿真
二维FDTD算法仿真,并带完全匹配层,输入波形为高斯波、平面波 FDTD_二维/FDTD.zip , 6075 FDTD_二维/FDTD_31.m , 1029 FDTD_二维/FDTD_32.m , 2806 FDTD_二维/FDTD_33.m , 3782 FDTD_二维/FDTD_34.m , 4182 FDTD_二维/FDTD_35.m , 4793...
Mac flutter环境搭建
一、下载flutter sdk 制作 Android 应用 | Flutter 中文文档 - Flutter 中文开发者网站 - Flutter 1、查看mac电脑处理器选择sdk 2、解压 unzip ~/Downloads/flutter_macos_arm64_3.32.2-stable.zip \ -d ~/development/ 3、添加环境变量 命令行打开配置环境变量文件 ope…...
