From 765a795e3657889d1ab31c6d9c66dfb513c06e4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A2=A8=E5=A4=A7=E5=8F=94?= <494979559@qq.com> Date: Wed, 22 May 2024 15:50:24 +0800 Subject: [PATCH] debug --- .../ruoyi/common/utils/CollectionUtils.java | 27 ------ .../com/ruoyi/common/utils/DateUtils.java | 39 +++++++- .../utils/collection/CollectionUtils.java | 93 +++++++++++++++++++ .../common/utils/collection/FillAble.java | 17 ++++ .../iot/service/IotReceiveServiceImpl.java | 4 +- .../channel/service/SmChannelServiceImpl.java | 2 +- .../com/ruoyi/ss/device/domain/SmDevice.java | 1 + .../service/impl/DeviceAssemblerImpl.java | 2 +- .../service/impl/DeviceValidatorImpl.java | 2 +- .../service/impl/SmDeviceServiceImpl.java | 1 + .../domain/SmMeterReadingRecordVo.java | 20 +++- .../SmMeterReadingRecordServiceImpl.java | 21 ++++- .../service/impl/StoreAssemblerImpl.java | 2 +- .../store/service/impl/StoreServiceImpl.java | 2 +- .../service/impl/StoreValidatorImpl.java | 2 +- .../ss/suit/service/impl/SuitServiceImpl.java | 2 +- .../suit/service/impl/SuitValidatorImpl.java | 2 +- .../impl/TransactionAssemblerImpl.java | 2 +- .../impl/TransactionBillServiceImpl.java | 1 + .../user/service/impl/UserAssemblerImpl.java | 2 +- .../ruoyi/task/device/DeviceStatusTask.java | 3 +- .../controller/app/AppDeviceController.java | 1 + .../app/AppTransactionBillController.java | 37 ++++---- 23 files changed, 222 insertions(+), 63 deletions(-) delete mode 100644 smart-switch-ruoyi/smart-switch-common/src/main/java/com/ruoyi/common/utils/CollectionUtils.java create mode 100644 smart-switch-ruoyi/smart-switch-common/src/main/java/com/ruoyi/common/utils/collection/CollectionUtils.java create mode 100644 smart-switch-ruoyi/smart-switch-common/src/main/java/com/ruoyi/common/utils/collection/FillAble.java diff --git a/smart-switch-ruoyi/smart-switch-common/src/main/java/com/ruoyi/common/utils/CollectionUtils.java b/smart-switch-ruoyi/smart-switch-common/src/main/java/com/ruoyi/common/utils/CollectionUtils.java deleted file mode 100644 index 050dd783..00000000 --- a/smart-switch-ruoyi/smart-switch-common/src/main/java/com/ruoyi/common/utils/CollectionUtils.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.ruoyi.common.utils; - -import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; - -/** - * @author wjh - * 2024/4/29 - */ -public class CollectionUtils extends org.springframework.util.CollectionUtils { - - /** - * 是否为空,包括空集合、空元素 - * @param list - * @return - */ - public static boolean isEmptyElement(List<?> list) { - if (list == null) { - return true; - } - // 过滤空元素 - List<?> collect = list.stream().filter(Objects::nonNull).collect(Collectors.toList()); - return org.springframework.util.CollectionUtils.isEmpty(collect); - } - -} diff --git a/smart-switch-ruoyi/smart-switch-common/src/main/java/com/ruoyi/common/utils/DateUtils.java b/smart-switch-ruoyi/smart-switch-common/src/main/java/com/ruoyi/common/utils/DateUtils.java index dd7212b7..6ad29eb1 100644 --- a/smart-switch-ruoyi/smart-switch-common/src/main/java/com/ruoyi/common/utils/DateUtils.java +++ b/smart-switch-ruoyi/smart-switch-common/src/main/java/com/ruoyi/common/utils/DateUtils.java @@ -16,7 +16,7 @@ import static org.apache.commons.lang3.time.DateFormatUtils.format; /** * 时间工具类 - * + * * @author ruoyi */ public class DateUtils extends org.apache.commons.lang3.time.DateUtils @@ -32,13 +32,13 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss"; private static String[] parsePatterns = { - "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM", + "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM", "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM", "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM"}; /** * 获取当前Date型日期 - * + * * @return Date() 当前日期 */ public static Date getNowDate() @@ -48,7 +48,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils /** * 获取当前日期, 默认格式为yyyy-MM-dd - * + * * @return String */ public static String getDate() @@ -242,4 +242,35 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils public static String getYYYY_MM(Date date) { return format(date, YYYY_MM); } + + /** + * 获取指定月的最后一天 + * @param year 年 + * @param month 月 + */ + public static Date getMonthLastDate(Integer year, Integer month) { + // 创建一个Calendar实例并设置为指定的日期 + Calendar calendar = Calendar.getInstance(); + calendar.set(year, month - 1, 1); // 设置为该月的第一天 + + // 获取该月的最后一天 + calendar.add(Calendar.MONTH, 1); // 移动到下个月的第一天 + calendar.add(Calendar.DATE, -1); // 回退一天,回到上个月的最后一天 + + // 获取最后一天的日期 + return calendar.getTime(); + } + + /** + * 获取指定月份的第一天 + * @param year 年 + * @param month 月 + */ + public static Date getMonthFirstDate(Integer year, Integer month) { + Date firstDay = new Date(); + firstDay.setYear(year - 1900); + firstDay.setMonth(month - 1); + firstDay.setDate(1); + return firstDay; + } } diff --git a/smart-switch-ruoyi/smart-switch-common/src/main/java/com/ruoyi/common/utils/collection/CollectionUtils.java b/smart-switch-ruoyi/smart-switch-common/src/main/java/com/ruoyi/common/utils/collection/CollectionUtils.java new file mode 100644 index 00000000..207d12f4 --- /dev/null +++ b/smart-switch-ruoyi/smart-switch-common/src/main/java/com/ruoyi/common/utils/collection/CollectionUtils.java @@ -0,0 +1,93 @@ +package com.ruoyi.common.utils.collection; + +import com.ruoyi.common.utils.DateUtils; + +import java.math.BigDecimal; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * @author wjh + * 2024/4/29 + */ +public class CollectionUtils extends org.springframework.util.CollectionUtils { + + /** + * 是否为空,包括空集合、空元素 + * @param list + * @return + */ + public static boolean isEmptyElement(List<?> list) { + if (list == null) { + return true; + } + // 过滤空元素 + List<?> collect = list.stream().filter(Objects::nonNull).collect(Collectors.toList()); + return org.springframework.util.CollectionUtils.isEmpty(collect); + } + + /** + * 填充列表中的元素 + * @param oldList 旧列表 + * @param startDate 起始日期 + * @param endDate 结束日期 + * @param clazz 填充元素的类 + */ + public static List<? super FillAble> fillElement(List<? extends FillAble> oldList, Date startDate, Date endDate,Class<? extends FillAble> clazz ) throws InstantiationException, IllegalAccessException { + List<FillAble> newList = new ArrayList<>(); + while (startDate.compareTo(endDate) <= 0) { + Date finalI = startDate; + FillAble fillable = oldList.stream().filter(item -> DateUtils.getYYYY_MM_DD(item.fillDate()).equals(DateUtils.getYYYY_MM_DD(finalI))).findFirst().orElse(null); + if (fillable == null) { + fillable = clazz.newInstance().fillElement(finalI); + } + newList.add(fillable); + startDate = DateUtils.addDays(startDate,1); + } + return newList; + } + + + // TODO 未经验证 + /** + * 补全列表中的日期数据,对于缺失的日期使用提供的工厂方法生成对象。 + * + * @param dataList 原始数据列表,元素需有getDateMethod返回Date类型属性的方法 + * @param dateGetter 获取元素日期属性的方法引用 + * @param customFactory 当日期缺失时,用于生成对应元素的对象工厂方法 + * @param <T> 数据列表中元素的类型 + * @return 完整日期序列下的数据列表,缺失的日期已由customFactory填充 + */ + public static <T> List<T> completeMissingDates(List<T> dataList, + Function<T, Date> dateGetter, + Function<Date, T> customFactory) { + if (dataList == null || dataList.isEmpty()) { + return Collections.emptyList(); + } + + List<Date> dates = dataList.stream() + .map(dateGetter) + .sorted() + .collect(Collectors.toList()); + + Date startDate = dates.get(0); + Date endDate = dates.get(dates.size() - 1); + + List<Date> fullDates = new ArrayList<>(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(startDate); + + while (!calendar.getTime().after(endDate)) { + fullDates.add(calendar.getTime()); + calendar.add(Calendar.DATE, 1); + } + + Map<Date, T> dateToObjectMap = dataList.stream() + .collect(Collectors.toMap(dateGetter, Function.identity())); + + return fullDates.stream() + .map(date -> dateToObjectMap.getOrDefault(date, customFactory.apply(date))) + .collect(Collectors.toList()); + } +} diff --git a/smart-switch-ruoyi/smart-switch-common/src/main/java/com/ruoyi/common/utils/collection/FillAble.java b/smart-switch-ruoyi/smart-switch-common/src/main/java/com/ruoyi/common/utils/collection/FillAble.java new file mode 100644 index 00000000..e1e2a2d2 --- /dev/null +++ b/smart-switch-ruoyi/smart-switch-common/src/main/java/com/ruoyi/common/utils/collection/FillAble.java @@ -0,0 +1,17 @@ +package com.ruoyi.common.utils.collection; + +import java.util.Date; + +/** + * 允许填充的元素 + * @author wjh + * 2024/5/22 + */ +public interface FillAble { + + // 获取当前时间 + Date fillDate(); + + // 用于填充的元素 + FillAble fillElement(Date currentDate); +} diff --git a/smart-switch-service/src/main/java/com/ruoyi/iot/service/IotReceiveServiceImpl.java b/smart-switch-service/src/main/java/com/ruoyi/iot/service/IotReceiveServiceImpl.java index 8fce9cca..295f7474 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/iot/service/IotReceiveServiceImpl.java +++ b/smart-switch-service/src/main/java/com/ruoyi/iot/service/IotReceiveServiceImpl.java @@ -34,7 +34,9 @@ public class IotReceiveServiceImpl implements IotReceiveService{ if (ReceiveConstants.DS_SSID.equals(msg.getDsId()) && ReceiveConstants.DSV_SSID_CT.equals((String) msg.getValue())) { // 当数据点推送ssid的值为ChangteA时,录入设备 - deviceService.addInitDevice(this.parseToDevice(msg)); + SmDevice device = this.parseToDevice(msg); + device.setDeviceName("未命名"); + deviceService.addInitDevice(device); } else { // 其他情况,更新设备信息 deviceService.updateByIot(this.parseToDevice(msg)); diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/channel/service/SmChannelServiceImpl.java b/smart-switch-service/src/main/java/com/ruoyi/ss/channel/service/SmChannelServiceImpl.java index d2197d67..a6600179 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/channel/service/SmChannelServiceImpl.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/channel/service/SmChannelServiceImpl.java @@ -1,6 +1,6 @@ package com.ruoyi.ss.channel.service; -import com.ruoyi.common.utils.CollectionUtils; +import com.ruoyi.common.utils.collection.CollectionUtils; import com.ruoyi.ss.channel.domain.SmChannel; import com.ruoyi.ss.channel.domain.SmChannelQuery; import com.ruoyi.ss.channel.mapper.SmChannelMapper; diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/device/domain/SmDevice.java b/smart-switch-service/src/main/java/com/ruoyi/ss/device/domain/SmDevice.java index 7b4b3d1a..b8f974ff 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/device/domain/SmDevice.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/device/domain/SmDevice.java @@ -64,6 +64,7 @@ public class SmDevice extends BaseEntity /** 设备Mac号 */ @Excel(name = "设备Mac号") @ApiModelProperty("设备Mac号") + @JsonView(JsonViewProfile.App.class) private String mac; /** 激活时间 */ diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/device/service/impl/DeviceAssemblerImpl.java b/smart-switch-service/src/main/java/com/ruoyi/ss/device/service/impl/DeviceAssemblerImpl.java index 2635ce39..6574e685 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/device/service/impl/DeviceAssemblerImpl.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/device/service/impl/DeviceAssemblerImpl.java @@ -1,6 +1,6 @@ package com.ruoyi.ss.device.service.impl; -import com.ruoyi.common.utils.CollectionUtils; +import com.ruoyi.common.utils.collection.CollectionUtils; import com.ruoyi.ss.dashboard.BillCountVo; import com.ruoyi.ss.device.domain.vo.SmDeviceVo; import com.ruoyi.ss.device.service.DeviceAssembler; diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/device/service/impl/DeviceValidatorImpl.java b/smart-switch-service/src/main/java/com/ruoyi/ss/device/service/impl/DeviceValidatorImpl.java index 1496fd14..be62be8b 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/device/service/impl/DeviceValidatorImpl.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/device/service/impl/DeviceValidatorImpl.java @@ -2,7 +2,7 @@ package com.ruoyi.ss.device.service.impl; import com.ruoyi.common.core.domain.BaseValidator; import com.ruoyi.common.core.domain.ValidateResult; -import com.ruoyi.common.utils.CollectionUtils; +import com.ruoyi.common.utils.collection.CollectionUtils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.ss.device.domain.SmDeviceBO; import com.ruoyi.ss.device.domain.SmDeviceQuery; diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/device/service/impl/SmDeviceServiceImpl.java b/smart-switch-service/src/main/java/com/ruoyi/ss/device/service/impl/SmDeviceServiceImpl.java index 665989bc..1dc14c8b 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/device/service/impl/SmDeviceServiceImpl.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/device/service/impl/SmDeviceServiceImpl.java @@ -3,6 +3,7 @@ package com.ruoyi.ss.device.service.impl; import com.ruoyi.common.enums.LoginType; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.*; +import com.ruoyi.common.utils.collection.CollectionUtils; import com.ruoyi.iot.domain.IotDeviceInfo; import com.ruoyi.iot.service.IotService; import com.ruoyi.ss.device.domain.SmDevice; diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/meterReadingRecord/domain/SmMeterReadingRecordVo.java b/smart-switch-service/src/main/java/com/ruoyi/ss/meterReadingRecord/domain/SmMeterReadingRecordVo.java index adeb09bd..9d1c8a3f 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/meterReadingRecord/domain/SmMeterReadingRecordVo.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/meterReadingRecord/domain/SmMeterReadingRecordVo.java @@ -1,6 +1,8 @@ package com.ruoyi.ss.meterReadingRecord.domain; import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.collection.FillAble; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -12,7 +14,7 @@ import java.util.Date; * 2024/3/28 */ @Data -public class SmMeterReadingRecordVo extends SmMeterReadingRecord { +public class SmMeterReadingRecordVo extends SmMeterReadingRecord implements FillAble { @ApiModelProperty("创建时间") @JsonFormat(pattern = "yyyy-MM-dd") @@ -30,4 +32,20 @@ public class SmMeterReadingRecordVo extends SmMeterReadingRecord { @ApiModelProperty("分组内已使用的电量统计") private BigDecimal groupUsedElectriQuantity; + @Override + public Date fillDate() { + return this.createDate; + } + + @Override + public FillAble fillElement(Date currentDate) { + SmMeterReadingRecordVo el = new SmMeterReadingRecordVo(); + el.setCreateDate(currentDate); + el.setCreateMonth(DateUtils.getMonth(currentDate)); + el.setCreateDay(DateUtils.getDay(currentDate)); + el.setGroupUsedElectriQuantity(BigDecimal.ZERO); + el.setTotalElectriQuantity(BigDecimal.ZERO); + el.setUsedElectriQuantity(BigDecimal.ZERO); + return el; + } } diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/meterReadingRecord/service/SmMeterReadingRecordServiceImpl.java b/smart-switch-service/src/main/java/com/ruoyi/ss/meterReadingRecord/service/SmMeterReadingRecordServiceImpl.java index 5a9e326a..662d19c4 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/meterReadingRecord/service/SmMeterReadingRecordServiceImpl.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/meterReadingRecord/service/SmMeterReadingRecordServiceImpl.java @@ -1,5 +1,6 @@ package com.ruoyi.ss.meterReadingRecord.service; +import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.iot.domain.IotDeviceInfo; @@ -10,12 +11,13 @@ import com.ruoyi.ss.device.mapper.SmDeviceMapper; import com.ruoyi.ss.meterReadingRecord.domain.SmMeterReadingRecord; import com.ruoyi.ss.meterReadingRecord.domain.SmMeterReadingRecordQuery; import com.ruoyi.ss.meterReadingRecord.domain.SmMeterReadingRecordVo; +import com.ruoyi.ss.meterReadingRecord.domain.meterReadingRecord.MeterReadingRecordGroupBy; import com.ruoyi.ss.meterReadingRecord.mapper.SmMeterReadingRecordMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.CollectionUtils; +import com.ruoyi.common.utils.collection.CollectionUtils; import java.util.ArrayList; import java.util.Date; @@ -174,6 +176,21 @@ public class SmMeterReadingRecordServiceImpl implements ISmMeterReadingRecordSer @Override public List<SmMeterReadingRecordVo> selectCount(SmMeterReadingRecordQuery dto) { - return smMeterReadingRecordMapper.selectCount(dto); + List<SmMeterReadingRecordVo> list = smMeterReadingRecordMapper.selectCount(dto); + + // 补全中间的日期 + if (dto.getYear() != null && dto.getMonth() != null && MeterReadingRecordGroupBy.create_date.name().equals(dto.getGroupBy())) { + try { + list = CollectionUtils.fillElement(list, + DateUtils.getMonthFirstDate(dto.getYear(), dto.getMonth()), + DateUtils.getMonthLastDate(dto.getYear(), dto.getMonth()), + SmMeterReadingRecordVo.class) + .stream().map(item -> (SmMeterReadingRecordVo)item).collect(Collectors.toList()); + } catch (Exception e) { + throw new ServiceException(e.getMessage()); + } + } + + return list; } } diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/store/service/impl/StoreAssemblerImpl.java b/smart-switch-service/src/main/java/com/ruoyi/ss/store/service/impl/StoreAssemblerImpl.java index 1de0f5b3..73b08db4 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/store/service/impl/StoreAssemblerImpl.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/store/service/impl/StoreAssemblerImpl.java @@ -1,6 +1,6 @@ package com.ruoyi.ss.store.service.impl; -import com.ruoyi.common.utils.CollectionUtils; +import com.ruoyi.common.utils.collection.CollectionUtils; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.ss.dashboard.BillCountVo; import com.ruoyi.ss.device.domain.SmDeviceCountVO; diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/store/service/impl/StoreServiceImpl.java b/smart-switch-service/src/main/java/com/ruoyi/ss/store/service/impl/StoreServiceImpl.java index 4407ffce..113bfe41 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/store/service/impl/StoreServiceImpl.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/store/service/impl/StoreServiceImpl.java @@ -1,6 +1,6 @@ package com.ruoyi.ss.store.service.impl; -import com.ruoyi.common.utils.CollectionUtils; +import com.ruoyi.common.utils.collection.CollectionUtils; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.ServiceUtil; diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/store/service/impl/StoreValidatorImpl.java b/smart-switch-service/src/main/java/com/ruoyi/ss/store/service/impl/StoreValidatorImpl.java index d4d333e3..124b70e9 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/store/service/impl/StoreValidatorImpl.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/store/service/impl/StoreValidatorImpl.java @@ -2,7 +2,7 @@ package com.ruoyi.ss.store.service.impl; import com.ruoyi.common.core.domain.BaseValidator; import com.ruoyi.common.core.domain.ValidateResult; -import com.ruoyi.common.utils.CollectionUtils; +import com.ruoyi.common.utils.collection.CollectionUtils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.ss.device.domain.SmDeviceQuery; import com.ruoyi.ss.device.service.ISmDeviceService; diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/suit/service/impl/SuitServiceImpl.java b/smart-switch-service/src/main/java/com/ruoyi/ss/suit/service/impl/SuitServiceImpl.java index a812d07d..901b11be 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/suit/service/impl/SuitServiceImpl.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/suit/service/impl/SuitServiceImpl.java @@ -1,6 +1,6 @@ package com.ruoyi.ss.suit.service.impl; -import com.ruoyi.common.utils.CollectionUtils; +import com.ruoyi.common.utils.collection.CollectionUtils; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.ss.suit.domain.Suit; import com.ruoyi.ss.suit.domain.SuitQuery; diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/suit/service/impl/SuitValidatorImpl.java b/smart-switch-service/src/main/java/com/ruoyi/ss/suit/service/impl/SuitValidatorImpl.java index b0db7c24..22b8ff81 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/suit/service/impl/SuitValidatorImpl.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/suit/service/impl/SuitValidatorImpl.java @@ -2,7 +2,7 @@ package com.ruoyi.ss.suit.service.impl; import com.ruoyi.common.core.domain.BaseValidator; import com.ruoyi.common.core.domain.ValidateResult; -import com.ruoyi.common.utils.CollectionUtils; +import com.ruoyi.common.utils.collection.CollectionUtils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.ss.device.service.DeviceValidator; import com.ruoyi.ss.suit.domain.SuitBO; diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/impl/TransactionAssemblerImpl.java b/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/impl/TransactionAssemblerImpl.java index 12c8a946..d214a7b1 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/impl/TransactionAssemblerImpl.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/impl/TransactionAssemblerImpl.java @@ -1,6 +1,6 @@ package com.ruoyi.ss.transactionBill.service.impl; -import com.ruoyi.common.utils.CollectionUtils; +import com.ruoyi.common.utils.collection.CollectionUtils; import com.ruoyi.ss.channel.domain.SmChannel; import com.ruoyi.ss.channel.domain.SmChannelQuery; import com.ruoyi.ss.channel.service.ISmChannelService; diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/impl/TransactionBillServiceImpl.java b/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/impl/TransactionBillServiceImpl.java index 33ba6092..29cbdc36 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/impl/TransactionBillServiceImpl.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/impl/TransactionBillServiceImpl.java @@ -5,6 +5,7 @@ import com.ruoyi.common.core.redis.RedisLock; import com.ruoyi.common.core.redis.enums.RedisLockKey; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.*; +import com.ruoyi.common.utils.collection.CollectionUtils; import com.ruoyi.ss.account.domain.SmAccountVo; import com.ruoyi.ss.account.service.ISmAccountService; import com.ruoyi.ss.channel.domain.SmChannel; diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/user/service/impl/UserAssemblerImpl.java b/smart-switch-service/src/main/java/com/ruoyi/ss/user/service/impl/UserAssemblerImpl.java index d741dd53..3ab4618f 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/user/service/impl/UserAssemblerImpl.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/user/service/impl/UserAssemblerImpl.java @@ -1,6 +1,6 @@ package com.ruoyi.ss.user.service.impl; -import com.ruoyi.common.utils.CollectionUtils; +import com.ruoyi.common.utils.collection.CollectionUtils; import com.ruoyi.ss.device.domain.SmDeviceCountVO; import com.ruoyi.ss.device.domain.SmDeviceQuery; import com.ruoyi.ss.device.domain.enums.DeviceGroupBy; diff --git a/smart-switch-service/src/main/java/com/ruoyi/task/device/DeviceStatusTask.java b/smart-switch-service/src/main/java/com/ruoyi/task/device/DeviceStatusTask.java index c0b7c320..34638d4c 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/task/device/DeviceStatusTask.java +++ b/smart-switch-service/src/main/java/com/ruoyi/task/device/DeviceStatusTask.java @@ -1,6 +1,6 @@ package com.ruoyi.task.device; -import com.ruoyi.common.utils.CollectionUtils; +import com.ruoyi.common.utils.collection.CollectionUtils; import com.ruoyi.ss.device.domain.SmDeviceQuery; import com.ruoyi.ss.device.domain.enums.DeviceStatus; import com.ruoyi.ss.device.domain.vo.SmDeviceVo; @@ -11,7 +11,6 @@ import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.stereotype.Component; -import java.util.Collections; import java.util.List; /** diff --git a/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppDeviceController.java b/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppDeviceController.java index 0562c79f..58e5fd6a 100644 --- a/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppDeviceController.java +++ b/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppDeviceController.java @@ -178,6 +178,7 @@ public class AppDeviceController extends BaseController { @ApiOperation("通过SN码获取设备信息") @GetMapping("/{deviceNo}/bySn") + @JsonView(JsonViewProfile.App.class) public AjaxResult getByDeviceNo(@PathVariable @ApiParam("设备编号(SN)") String deviceNo) { return success(smDeviceService.selectByDeviceNo(deviceNo)); } diff --git a/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppTransactionBillController.java b/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppTransactionBillController.java index 8a0cdac8..750fd208 100644 --- a/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppTransactionBillController.java +++ b/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppTransactionBillController.java @@ -29,6 +29,7 @@ import org.springframework.util.CollectionUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.math.BigDecimal; import java.util.Collections; import java.util.Date; import java.util.List; @@ -122,22 +123,25 @@ public class AppTransactionBillController extends BaseController if (dto.getEndDate() == null) { dto.setEndDate(now); } - // 如果按日查询,查询的月份是当前月份,并且当前日期小于7日,则查询最近7天的数据,否则查询当月第一天开始的数据 + // 如果按日查询 if (Objects.equals(dto.getGroupBy(), TransactionBillGroupBy.create_date.name())) { - if (Objects.equals(dto.getYear(), DateUtils.getYear(now)) - && Objects.equals(dto.getMonth(), DateUtils.getMonth(now)) - && DateUtils.getDay(now) < 7) { - // 七天前 - dto.setStartDate(DateUtils.addDays(dto.getEndDate(), -6)); - dto.setYear(null); - dto.setMonth(null); - } else { - Date firstDay = new Date(dto.getEndDate().getTime()); - firstDay.setYear(dto.getYear() - 1900); - firstDay.setMonth(dto.getMonth() - 1); - firstDay.setDate(1); - dto.setStartDate(firstDay); - } + // 查询的月份是当前月份,并且当前日期小于7日,则查询最近7天的数据,否则查询当月第一天开始的数据 +// if (Objects.equals(dto.getYear(), DateUtils.getYear(now)) +// && Objects.equals(dto.getMonth(), DateUtils.getMonth(now)) +// && DateUtils.getDay(now) < 7) { +// // 七天前 +// dto.setStartDate(DateUtils.addDays(dto.getEndDate(), -6)); +// dto.setYear(null); +// dto.setMonth(null); +// } else { +// dto.setStartDate(DateUtils.getMonthFirstDate(dto.getYear(), dto.getMonth())); +// dto.setEndDate(DateUtils.getMonthLastDate(dto.getYear(), dto.getMonth())); +// } + + // 以上是旧的需求,防止要改回去 + // 以下是新的需求,如果按日分组,则查询当月第一天到最后一天的数据,并补全中间缺少的数据 + dto.setStartDate(DateUtils.getMonthFirstDate(dto.getYear(), dto.getMonth())); + dto.setEndDate(DateUtils.getMonthLastDate(dto.getYear(), dto.getMonth())); } dto.setMchId(getUserId()); dto.setStatus(TransactionBillStatus.SUCCESS.getStatus()); @@ -150,7 +154,8 @@ public class AppTransactionBillController extends BaseController if (CollectionUtils.isEmpty(totalList)) { ajax.put("totalRecharge", 0); } else { - ajax.put("totalRecharge", totalList.get(0).getRecharge()); + BigDecimal total = totalList.get(0).getRecharge(); + ajax.put("totalRecharge", total == null ? 0 : total); } return ajax;