From 3728fa293e1faf4bf4f9bf41105b84ddb43dc82e Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期一, 02 十一月 2026 16:53:02 +0800
Subject: [PATCH] feat(order-rates): 新增筛选条件下全部订单费用汇总接口
---
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderRatesServiceImpl.java | 51 ++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 48 insertions(+), 3 deletions(-)
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderRatesServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderRatesServiceImpl.java
index 9b3066f..137adb6 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderRatesServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderRatesServiceImpl.java
@@ -1,15 +1,24 @@
package com.ruoyi.inspect.service.impl;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.utils.QueryWrappers;
+import com.ruoyi.framework.exception.ErrorException;
import com.ruoyi.inspect.dto.SampleOrderDto;
+import com.ruoyi.inspect.dto.OrderRatesSummaryDto;
import com.ruoyi.inspect.dto.TemplateRateDto;
import com.ruoyi.inspect.mapper.InsOrderRatesMapper;
import com.ruoyi.inspect.pojo.InsOrderRates;
import com.ruoyi.inspect.service.InsOrderRatesService;
import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.time.YearMonth;
+import java.time.format.DateTimeParseException;
/**
* 璁㈠崟璐圭敤琛�
@@ -21,14 +30,50 @@
public class InsOrderRatesServiceImpl extends ServiceImpl<InsOrderRatesMapper, InsOrderRates> implements InsOrderRatesService {
/**
- * 鏌ヨ璁㈠崟璐圭敤鍒楄〃
+ * 鏌ヨ璁㈠崟璐圭敤鍒楄〃锛堝彲鎸夐�佹牱鏈堜唤鍖洪棿绛涢�夛級
* @param page
* @param sampleOrderDto
+ * @param startMonth 璧峰鏈堜唤 yyyy-MM
+ * @param endMonth 缁撴潫鏈堜唤 yyyy-MM
* @return
*/
@Override
- public IPage<SampleOrderDto> selectInsOrderRates(Page page, SampleOrderDto sampleOrderDto) {
- return baseMapper.selectInsOrderRates(page, QueryWrappers.queryWrappers(sampleOrderDto));
+ public IPage<SampleOrderDto> selectInsOrderRates(Page page, SampleOrderDto sampleOrderDto, String startMonth, String endMonth) {
+ return baseMapper.selectInsOrderRates(page, ratesFilter(sampleOrderDto, startMonth, endMonth));
+ }
+
+ @Override
+ public OrderRatesSummaryDto selectRatesSummary(SampleOrderDto sampleOrderDto, String startMonth, String endMonth) {
+ return baseMapper.selectRatesSummary(ratesFilter(sampleOrderDto, startMonth, endMonth));
+ }
+
+ private QueryWrapper<SampleOrderDto> ratesFilter(SampleOrderDto sampleOrderDto, String startMonth, String endMonth) {
+ QueryWrapper<SampleOrderDto> wrapper = QueryWrappers.queryWrappers(sampleOrderDto);
+ if (wrapper == null) {
+ wrapper = Wrappers.query();
+ }
+ if (StrUtil.isNotBlank(startMonth) || StrUtil.isNotBlank(endMonth)) {
+ try {
+ if (StrUtil.isNotBlank(startMonth) && StrUtil.isNotBlank(endMonth)
+ && YearMonth.parse(startMonth).isAfter(YearMonth.parse(endMonth))) {
+ throw new ErrorException("寮�濮嬫湀浠戒笉鑳芥櫄浜庣粨鏉熸湀浠�");
+ }
+ if (StrUtil.isNotBlank(startMonth)) {
+ wrapper.ge("sample_date", YearMonth.parse(startMonth).atDay(1));
+ }
+ if (StrUtil.isNotBlank(endMonth)) {
+ wrapper.le("sample_date", YearMonth.parse(endMonth).atEndOfMonth());
+ }
+ } catch (DateTimeParseException e) {
+ throw new ErrorException("閫佹牱鏃堕棿绛涢�夋牸寮忎笉姝g‘锛屽簲涓� yyyy-MM");
+ }
+ }
+ return wrapper;
+ }
+
+ @Override
+ public boolean updateOrderFee(Integer id, Integer isDiscount, BigDecimal discountAmount, String feeRemark) {
+ return baseMapper.updateOrderFee(id, isDiscount, discountAmount, feeRemark) > 0;
}
@Override
--
Gitblit v1.9.3