若依文件下载路径修改 & 定时任务报错

2021/10/14 周四
本人菜鸟一枚,也是刚刚开始进行基于若依的二次开发,如果有错误或者更好的实现方法,欢迎在评论区交流,十分感谢!

一、下载路径修改-添加日期

需求是这样的,每天定时生成Excel文件,使用的是ExcelUtil生成,它的生成方法 exportExcel() 里调用了 getAbsoluteFile(String filename) 获取下载路径,由获取配置路径RuoYiConfig.getDownloadPath() 和编码过的文件名filename组成:

若依微服务 system_定时任务

因为若依配置的下载路径是D:\ruoyi\uploadPath\download,我这每天就要生成十几个文件,全放在这里面太多了

若依微服务 system_若依微服务 system_02


于是就想区分一下,比如文件夹再按日期细分。

改配置类怕影响之后其他模块,而文件名是UUID+原文件名的形式,不好在原文件名参数上加上路径,于是就直接拼接在了这个方法里,把1035行改成:

String downloadPath = RuoYiConfig.getDownloadPath() + DateUtils.datePath() + "/" + filename;

DateUtils是时间工具类,其中 datePath() 方法可以获取今天的日期路径:

若依微服务 system_文件名_03

这样再生成的Excel就会放在对应日期的文件夹里了:

若依微服务 system_若依微服务 system_04

另外,我是把每天生成的文件信息(路径、文件名、生成日期等)存到数据库,方便前台查看,差点忘了在这一步的路径里也加上DateUtils.datePath()。

二、若依定时任务找不到方法NoSuchMethodException

在使用若依定时任务时,还遇到一个小错,明明Bean也注入了,方法名也检查了,就是找不到方法。百度搜到的都是关于NoSuchBeanDefinitionException找不到Bean的,不是我这个问题。

后来再多看几遍,发现是参数的原因,我习惯性地用了int,而若依给的例子里用的是包装类Integer

若依微服务 system_文件名_05


我把int改成Integer就可以了。以及还要注意,在前台设置定时任务时,整型就不要加双引号了,否则会报数字转换异常。

若依微服务 system_java_06