|
@@ -35,6 +35,7 @@ import vip.xiaonuo.coldchain.core.bean.influxdb.SensorData;
|
|
|
import vip.xiaonuo.coldchain.core.cache.monitordevice.MonitorDeviceCache;
|
|
|
import vip.xiaonuo.coldchain.core.renke.RenKeService;
|
|
|
import vip.xiaonuo.coldchain.core.service.JfcloudSensorDataService;
|
|
|
+import vip.xiaonuo.coldchain.modular.monitordevice.dto.MonitorDevicePageDto;
|
|
|
import vip.xiaonuo.coldchain.modular.monitordevice.entity.MonitorDevice;
|
|
|
import vip.xiaonuo.coldchain.modular.monitordevice.enums.MonitorDeviceStatusEnum;
|
|
|
import vip.xiaonuo.coldchain.modular.monitordevice.mapper.MonitorDeviceMapper;
|
|
@@ -48,6 +49,7 @@ import vip.xiaonuo.coldchain.modular.monitordevicetype.entity.MonitorDeviceType;
|
|
|
import vip.xiaonuo.coldchain.modular.monitordevicetype.service.MonitorDeviceTypeService;
|
|
|
import vip.xiaonuo.coldchain.modular.monitortarget.param.TargetStatus;
|
|
|
import vip.xiaonuo.coldchain.modular.monitortarget.service.MonitorTargetService;
|
|
|
+import vip.xiaonuo.coldchain.modular.monitortargetregion.entity.MonitorTargetRegion;
|
|
|
import vip.xiaonuo.coldchain.modular.monitortargetregion.service.MonitorTargetRegionService;
|
|
|
import vip.xiaonuo.common.enums.CommonDeleteFlagEnum;
|
|
|
import vip.xiaonuo.common.enums.CommonSortOrderEnum;
|
|
@@ -55,9 +57,8 @@ import vip.xiaonuo.common.exception.CommonException;
|
|
|
import vip.xiaonuo.common.page.CommonPageRequest;
|
|
|
|
|
|
import java.time.Instant;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* 采集器管理Service接口实现类
|
|
@@ -80,10 +81,11 @@ public class MonitorDeviceServiceImpl extends ServiceImpl<MonitorDeviceMapper, M
|
|
|
@Resource
|
|
|
private MonitorTargetService monitorTargetService;
|
|
|
|
|
|
+
|
|
|
private String bucketName;
|
|
|
|
|
|
@Override
|
|
|
- public Page<MonitorDevice> page(MonitorDevicePageParam monitorDevicePageParam) {
|
|
|
+ public Page<?> page(MonitorDevicePageParam monitorDevicePageParam) {
|
|
|
SaBaseLoginUser loginUser = StpLoginUserUtil.getLoginUser();
|
|
|
QueryWrapper<MonitorDevice> queryWrapper = new QueryWrapper<MonitorDevice>().checkSqlInjection();
|
|
|
if (ObjectUtil.isNotEmpty(monitorDevicePageParam.getDeviceName())) {
|
|
@@ -99,15 +101,46 @@ public class MonitorDeviceServiceImpl extends ServiceImpl<MonitorDeviceMapper, M
|
|
|
queryWrapper.lambda().orderByAsc(MonitorDevice::getSortCode);
|
|
|
}
|
|
|
queryWrapper.lambda().eq(MonitorDevice::getCreateOrg,loginUser.getOrgId()).eq(MonitorDevice::getDeleteFlag,CommonDeleteFlagEnum.NOT_DELETE);
|
|
|
+ //分页查询
|
|
|
Page<MonitorDevice> page = this.page(CommonPageRequest.defaultPage(), queryWrapper);
|
|
|
+ if (page.getTotal() < 1) {
|
|
|
+ return page;
|
|
|
+ }
|
|
|
+
|
|
|
+ //查询型号编号和名称
|
|
|
+ Set<String> codeSet = page.getRecords().stream().map(MonitorDevice::getModelName).filter(StrUtil::isNotBlank).collect(Collectors.toSet());
|
|
|
+ List<MonitorDeviceType> deviceTypeList = monitorDeviceTypeService.list(new LambdaQueryWrapper<>(MonitorDeviceType.class)
|
|
|
+ .select(MonitorDeviceType::getCode, MonitorDeviceType::getName)
|
|
|
+ .in(MonitorDeviceType::getCode, codeSet)
|
|
|
+ .eq(MonitorDeviceType::getDeleteFlag, CommonDeleteFlagEnum.NOT_DELETE));
|
|
|
+ Map<String, String> typeNameMap = deviceTypeList.stream().collect(Collectors.toMap(MonitorDeviceType::getCode, MonitorDeviceType::getName));
|
|
|
+
|
|
|
+ //查询使用的路数
|
|
|
+ Set<String> deviceIdSet = page.getRecords().stream().map(MonitorDevice::getId).collect(Collectors.toSet());
|
|
|
+ List<MonitorTargetRegion> regionList = monitorTargetRegionService.list(new LambdaQueryWrapper<>(MonitorTargetRegion.class)
|
|
|
+ .in(MonitorTargetRegion::getMonitorDeviceId, deviceIdSet)
|
|
|
+ .eq(MonitorTargetRegion::getDeleteFlag, CommonDeleteFlagEnum.NOT_DELETE));
|
|
|
+ Map<String, List<MonitorTargetRegion>> regionMap = regionList.stream().collect(Collectors.groupingBy(MonitorTargetRegion::getMonitorDeviceId));
|
|
|
+
|
|
|
+ List<MonitorDevicePageDto> dtoList = new ArrayList<>();
|
|
|
for (MonitorDevice record : page.getRecords()) {
|
|
|
- MonitorDeviceType monitorDeviceType = monitorDeviceTypeService.getByModelName(record.getModelName());
|
|
|
- record.setCreateOrgName(loginUser.getOrgName());
|
|
|
- if (ObjectUtil.isNotNull(monitorDeviceType)) {
|
|
|
- record.setTypeName(monitorDeviceType.getName());
|
|
|
+ MonitorDevicePageDto dto = BeanUtil.copyProperties(record, MonitorDevicePageDto.class);
|
|
|
+ dto.setCreateOrgName(loginUser.getOrgName());
|
|
|
+ dto.setTypeName(typeNameMap.get(record.getModelName()));
|
|
|
+ if (regionMap.containsKey(record.getId())) {
|
|
|
+ String desc = regionMap.get(record.getId())
|
|
|
+ .stream()
|
|
|
+ .filter(x -> x.getSensorRoute() != null)
|
|
|
+ .map(x -> x.getSensorRoute() + "路")
|
|
|
+ .collect(Collectors.joining(","));
|
|
|
+ dto.setSensorRouteDesc(desc);
|
|
|
}
|
|
|
+ dtoList.add(dto);
|
|
|
}
|
|
|
- return page;
|
|
|
+
|
|
|
+ Page<MonitorDevicePageDto> dtoPage = Page.of(page.getCurrent(), page.getSize(), page.getTotal());
|
|
|
+ dtoPage.setRecords(dtoList);
|
|
|
+ return dtoPage;
|
|
|
}
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@@ -267,24 +300,23 @@ public class MonitorDeviceServiceImpl extends ServiceImpl<MonitorDeviceMapper, M
|
|
|
@Override
|
|
|
public List<MonitorDevice> myList(Boolean isAll,String sensorType) {
|
|
|
SaBaseLoginUser loginUser = StpLoginUserUtil.getLoginUser();
|
|
|
+
|
|
|
+ //查询设备类型
|
|
|
+ LambdaQueryWrapper<MonitorDeviceType> typeQueryWrapper = new LambdaQueryWrapper<>(MonitorDeviceType.class)
|
|
|
+ .eq(StrUtil.isNotBlank(sensorType), MonitorDeviceType::getSensorType, sensorType)
|
|
|
+ .eq(MonitorDeviceType::getDeleteFlag, CommonDeleteFlagEnum.NOT_DELETE);
|
|
|
+ List<MonitorDeviceType> deviceTypeList = monitorDeviceTypeService.list(typeQueryWrapper);
|
|
|
+ List<String> modelNameList = deviceTypeList.stream().map(MonitorDeviceType::getCode).toList();
|
|
|
+
|
|
|
+ //查询设备列表
|
|
|
LambdaQueryWrapper<MonitorDevice> deviceQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- LambdaQueryWrapper<MonitorDeviceType> typeQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- if (sensorType != null) {
|
|
|
- typeQueryWrapper.eq(MonitorDeviceType::getSensorType, sensorType).eq(MonitorDeviceType::getDeleteFlag,CommonDeleteFlagEnum.NOT_DELETE);
|
|
|
- }
|
|
|
- List<MonitorDeviceType> list = monitorDeviceTypeService.list(typeQueryWrapper);
|
|
|
- List<String> modelNameList = new ArrayList<>();
|
|
|
- for (MonitorDeviceType deviceType : list) {
|
|
|
- modelNameList.add(deviceType.getCode());
|
|
|
- }
|
|
|
deviceQueryWrapper.in(MonitorDevice::getModelName,modelNameList);
|
|
|
deviceQueryWrapper.eq(MonitorDevice::getCreateOrg,loginUser.getOrgId()).eq(MonitorDevice::getDeleteFlag, CommonDeleteFlagEnum.NOT_DELETE);
|
|
|
if (!isAll) {
|
|
|
deviceQueryWrapper.eq(MonitorDevice::getStatus, MonitorDeviceStatusEnum.NORMAL.getValue())
|
|
|
.orderByAsc(MonitorDevice::getSortCode);
|
|
|
}
|
|
|
- List<MonitorDevice> monitorDeviceList = this.list(deviceQueryWrapper);
|
|
|
- return monitorDeviceList;
|
|
|
+ return this.list(deviceQueryWrapper);
|
|
|
}
|
|
|
|
|
|
// 通用更新方法,避免代码重复,并处理 timestamp 为空的情况
|