From bb57e681d306be7e932671d771e98d155a561163 Mon Sep 17 00:00:00 2001 From: karlkyo Date: Fri, 7 Mar 2025 16:25:28 +0800 Subject: [PATCH] =?UTF-8?q?feat(screen):=20=E4=BC=98=E5=8C=96=E6=97=A5?= =?UTF-8?q?=E6=9C=9F=E6=A0=BC=E5=BC=8F=E5=8C=96=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 DateUtils 中添加 formatToYearMonth 方法,用于将日期对象格式化为年月字符串 - 在 QscTaxBizTopBo 中为 month 字段添加 DateTimeFormat 注解,指定格式为 yyyy-MM - 修改 QscTaxBizTopServiceImpl 和 QscTaxBizVolServiceImpl,使用新的 formatToYearMonth 方法进行日期格式化 - 移除 QscTaxBizVolServiceImpl 中冗余的 formatToYearMonth 方法 --- .../com/ziyun/common/utils/DateUtils.java | 34 +++++++++++++++++++ .../screen/domain/bo/QscTaxBizTopBo.java | 2 ++ .../service/impl/QscTaxBizTopServiceImpl.java | 6 +++- .../service/impl/QscTaxBizVolServiceImpl.java | 28 +-------------- 4 files changed, 42 insertions(+), 28 deletions(-) diff --git a/ziyun-common/src/main/java/com/ziyun/common/utils/DateUtils.java b/ziyun-common/src/main/java/com/ziyun/common/utils/DateUtils.java index b677556..b3e4247 100644 --- a/ziyun-common/src/main/java/com/ziyun/common/utils/DateUtils.java +++ b/ziyun-common/src/main/java/com/ziyun/common/utils/DateUtils.java @@ -165,4 +165,38 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils { ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault()); return Date.from(zdt.toInstant()); } + + /** + * 将日期对象格式化为年月字符串 + * + * @param date 日期对象 + * @return 格式化后的年月字符串(yyyy-MM) + */ + public static String formatToYearMonth(Object date) { + if (date == null) { + return null; + } + // 如果已经是字符串格式且符合yyyy-MM格式,直接返回 + if (date instanceof String) { + String dateStr = (String) date; + if (dateStr.matches("\\d{4}-\\d{2}")) { + return dateStr; + } + // 尝试解析字符串日期 + Date parsedDate = parseDate(dateStr); + if (parsedDate != null) { + return parseDateToStr(YYYY_MM, parsedDate); + } + } + // 如果是Date类型,直接格式化 + if (date instanceof Date) { + return parseDateToStr(YYYY_MM, (Date) date); + } + // 尝试解析其他类型的日期 + Date parsedDate = parseDate(date); + if (parsedDate != null) { + return parseDateToStr(YYYY_MM, parsedDate); + } + return null; + } } diff --git a/ziyun-screen/src/main/java/com/ziyun/screen/domain/bo/QscTaxBizTopBo.java b/ziyun-screen/src/main/java/com/ziyun/screen/domain/bo/QscTaxBizTopBo.java index 40ca406..09cbe08 100644 --- a/ziyun-screen/src/main/java/com/ziyun/screen/domain/bo/QscTaxBizTopBo.java +++ b/ziyun-screen/src/main/java/com/ziyun/screen/domain/bo/QscTaxBizTopBo.java @@ -11,6 +11,7 @@ import java.util.Date; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import com.ziyun.common.core.domain.BaseEntity; +import org.springframework.format.annotation.DateTimeFormat; /** * 月度业务量排名业务对象 qsc_tax_biz_top @@ -33,6 +34,7 @@ public class QscTaxBizTopBo extends BaseEntity { * 时间维度 */ @NotNull(message = "时间维度不能为空", groups = { AddGroup.class, EditGroup.class }) + @DateTimeFormat(pattern = "yyyy-MM") private Date month; /** diff --git a/ziyun-screen/src/main/java/com/ziyun/screen/service/impl/QscTaxBizTopServiceImpl.java b/ziyun-screen/src/main/java/com/ziyun/screen/service/impl/QscTaxBizTopServiceImpl.java index 351737c..76716a5 100644 --- a/ziyun-screen/src/main/java/com/ziyun/screen/service/impl/QscTaxBizTopServiceImpl.java +++ b/ziyun-screen/src/main/java/com/ziyun/screen/service/impl/QscTaxBizTopServiceImpl.java @@ -15,6 +15,7 @@ import com.ziyun.screen.domain.vo.QscTaxBizTopVo; import com.ziyun.screen.domain.QscTaxBizTop; import com.ziyun.screen.mapper.QscTaxBizTopMapper; import com.ziyun.screen.service.IQscTaxBizTopService; +import com.ziyun.common.utils.DateUtils; import java.util.List; import java.util.Map; @@ -63,7 +64,10 @@ public class QscTaxBizTopServiceImpl implements IQscTaxBizTopService { private LambdaQueryWrapper buildQueryWrapper(QscTaxBizTopBo bo) { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(bo.getMonth() != null, QscTaxBizTop::getMonth, bo.getMonth()); + // 如果month不为空,则按年月格式进行模糊查询 + if (bo.getMonth() != null) { + lqw.like(QscTaxBizTop::getMonth, DateUtils.formatToYearMonth(bo.getMonth())); + } lqw.like(StringUtils.isNotBlank(bo.getBizName()), QscTaxBizTop::getBizName, bo.getBizName()); lqw.eq(bo.getBizVol() != null, QscTaxBizTop::getBizVol, bo.getBizVol()); lqw.eq(bo.getBizRatio() != null, QscTaxBizTop::getBizRatio, bo.getBizRatio()); diff --git a/ziyun-screen/src/main/java/com/ziyun/screen/service/impl/QscTaxBizVolServiceImpl.java b/ziyun-screen/src/main/java/com/ziyun/screen/service/impl/QscTaxBizVolServiceImpl.java index a47b8f2..4eb75d8 100644 --- a/ziyun-screen/src/main/java/com/ziyun/screen/service/impl/QscTaxBizVolServiceImpl.java +++ b/ziyun-screen/src/main/java/com/ziyun/screen/service/impl/QscTaxBizVolServiceImpl.java @@ -66,7 +66,7 @@ public class QscTaxBizVolServiceImpl implements IQscTaxBizVolService { LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); // 如果bizMonthly不为空,则按年月格式进行模糊查询 if (bo.getBizMonthly() != null) { - lqw.like(QscTaxBizVol::getBizMonthly, formatToYearMonth(bo.getBizMonthly())); + lqw.like(QscTaxBizVol::getBizMonthly, DateUtils.formatToYearMonth(bo.getBizMonthly())); } lqw.eq(bo.getBizMonthlyVol() != null, QscTaxBizVol::getBizMonthlyVol, bo.getBizMonthlyVol()); lqw.eq(StringUtils.isNotBlank(bo.getBizMonthlyRatio()), QscTaxBizVol::getBizMonthlyRatio, bo.getBizMonthlyRatio()); @@ -74,32 +74,6 @@ public class QscTaxBizVolServiceImpl implements IQscTaxBizVolService { lqw.eq(bo.getDeptId() != null, QscTaxBizVol::getDeptId, bo.getDeptId()); return lqw; } - - /** - * 将日期对象格式化为年月字符串 - * - * @param date 日期对象 - * @return 格式化后的年月字符串(yyyy-MM) - */ - private String formatToYearMonth(Object date) { - if (date == null) { - return null; - } - // 如果已经是字符串格式且符合yyyy-MM格式,直接返回 - if (date instanceof String) { - String dateStr = (String) date; - if (dateStr.matches("\\d{4}-\\d{2}")) { - return dateStr; - } - } - // 尝试解析日期 - Date parsedDate = DateUtils.parseDate(date); - if (parsedDate != null) { - return DateUtils.parseDateToStr(DateUtils.YYYY_MM, parsedDate); - } - // 如果无法解析,返回原始字符串 - return date.toString(); - } /** * 新增业务量总览 */