|
@@ -2,23 +2,23 @@ package com.xy.service;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
import cn.hutool.core.collection.CollUtil;
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.xy.collections.list.JArrayList;
|
|
import com.xy.collections.list.JArrayList;
|
|
import com.xy.collections.map.JConcurrentHashMap;
|
|
import com.xy.collections.map.JConcurrentHashMap;
|
|
import com.xy.collections.map.JHashMap;
|
|
import com.xy.collections.map.JHashMap;
|
|
import com.xy.collections.map.JMap;
|
|
import com.xy.collections.map.JMap;
|
|
|
|
+import com.xy.device.EnumDeviceActiveStatus;
|
|
|
|
+import com.xy.device.EnumDeviceBusyStatus;
|
|
import com.xy.device.EnumDeviceDataType;
|
|
import com.xy.device.EnumDeviceDataType;
|
|
import com.xy.device.EnumDeviceOnlineStatus;
|
|
import com.xy.device.EnumDeviceOnlineStatus;
|
|
-import com.xy.dto.DeviceDataDto;
|
|
|
|
-import com.xy.dto.DeviceInfoDto;
|
|
|
|
-import com.xy.entity.DeviceData;
|
|
|
|
-import com.xy.entity.DeviceInfo;
|
|
|
|
-import com.xy.entity.DeviceStatus;
|
|
|
|
-import com.xy.entity.SysDictRedis;
|
|
|
|
|
|
+import com.xy.dto.*;
|
|
|
|
+import com.xy.entity.*;
|
|
import com.xy.mapper.DeviceDataMapper;
|
|
import com.xy.mapper.DeviceDataMapper;
|
|
import com.xy.utils.*;
|
|
import com.xy.utils.*;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.Api;
|
|
@@ -34,6 +34,7 @@ import javax.validation.Valid;
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
|
|
+import java.util.Date;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
@@ -58,6 +59,8 @@ public class DeviceDataServiceImpl extends ServiceImpl<DeviceDataMapper, DeviceD
|
|
|
|
|
|
private final DeviceInfoServiceImpl deviceInfoService;
|
|
private final DeviceInfoServiceImpl deviceInfoService;
|
|
private final DeviceStatusServiceImpl deviceStatusService;
|
|
private final DeviceStatusServiceImpl deviceStatusService;
|
|
|
|
+ private final OrdersService ordersService;
|
|
|
|
+ private final DeviceChargingServiceImpl deviceChargingService;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 设备统计
|
|
* 设备统计
|
|
@@ -468,4 +471,38 @@ public class DeviceDataServiceImpl extends ServiceImpl<DeviceDataMapper, DeviceD
|
|
return R.ok();
|
|
return R.ok();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ @ApiOperation("设备统计-运营概况")
|
|
|
|
+ @PostMapping("countDevice")
|
|
|
|
+ R<DeviceDataDto.CountVO> countDevice(@RequestBody DeviceDataDto.CountDTO dto) {
|
|
|
|
+ DeviceDataDto.CountVO vo = new DeviceDataDto.CountVO();
|
|
|
|
+ Integer timeType = dto.getTimeType();
|
|
|
|
+ int day = 0;
|
|
|
|
+ if (timeType == 1) {
|
|
|
|
+ //天
|
|
|
|
+ day = 1;
|
|
|
|
+ } else if (timeType == 2) {
|
|
|
|
+ //周
|
|
|
|
+ day = 7;
|
|
|
|
+ } else if (timeType == 3) {
|
|
|
|
+ //月
|
|
|
|
+ day = 30;
|
|
|
|
+ }
|
|
|
|
+ Date now = DateUtil.date();
|
|
|
|
+ Date queryDate = DateUtil.offsetDay(now, -day);
|
|
|
|
+ //新增
|
|
|
|
+ Long newAdd = deviceInfoService.count(Wrappers.<DeviceInfo>lambdaQuery()
|
|
|
|
+ .ge(DeviceInfo::getCreateTime, queryDate).eq(DeviceInfo::getActiveState, EnumDeviceActiveStatus.N_1.getCode()));
|
|
|
|
+ vo.setNewNum(newAdd.intValue());
|
|
|
|
+ //活跃 产生订单的
|
|
|
|
+ Integer activeNum = R.feignCheckData(ordersService.deviceActiveCount(new CountDto.MercCountDTO().setStartTime(queryDate)));
|
|
|
|
+ vo.setActiveNum(activeNum);
|
|
|
|
+ //设备管理费
|
|
|
|
+ Long debtNum = deviceChargingService.count(Wrappers.<DeviceCharging>lambdaQuery().lt(DeviceCharging::getTimeout, DateUtil.now()));
|
|
|
|
+ vo.setDebtNum(debtNum);
|
|
|
|
+ Long outOfServiceNum = deviceInfoService.count(Wrappers.<DeviceInfo>lambdaQuery().eq(DeviceInfo::getBusyState, EnumDeviceBusyStatus.N_2.getCode()));
|
|
|
|
+ vo.setOutOfServiceNum(outOfServiceNum.intValue());
|
|
|
|
+ return R.ok(vo);
|
|
|
|
+ }
|
|
}
|
|
}
|