diff --git a/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java b/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java index b57a0f9..0611c9a 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java +++ b/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java @@ -73,6 +73,7 @@ public class BusinessAlertController extends BaseController { @Operation(summary ="ai实时流预警保存",description = "ai实时流预警保存") @PostMapping("/saveAlertList") public R saveAlert(@RequestBody List alertVoList) { + businessAlertService.addBusinessAlertList(alertVoList); return R.ok(); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceProServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceProServiceImpl.java index bbfbbc1..b58bc1e 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceProServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceProServiceImpl.java @@ -88,6 +88,8 @@ public class DeviceProServiceImpl implements IDeviceProService { @Autowired private IDeviceProUserMapper deviceProUserMapper; + private final ObjectMapper objectMapper = new ObjectMapper(); + @Override public PaginationData listDeviceProEntityMap(Page page, DeviceProDTO deviceProDTO) { Page pagination = deviceProMapper.listDeviceProEntityMap(page, deviceProDTO); @@ -148,13 +150,13 @@ public class DeviceProServiceImpl implements IDeviceProService { difference.forEach(proUserEntity -> { //删除人员项目组信息 List projects = RedisUtils.getCacheList(String.format(Constants.PRO_GROUP, proUserEntity.getUserId())); - List projectList = projects.stream() - .filter(DeviceProEntity.class::isInstance) - .map(DeviceProEntity.class::cast) + List projectList = projects.stream() + .filter(Map.class::isInstance) + .map(Map.class::cast) .toList(); //删除人员中所拥有的当前的项目组,然后构建新的存入redis - List deviceProEntities = projectList.stream().filter(p -> !p.getId().equals(proId)).toList(); + List deviceProEntities = projectList.stream().filter(p -> !Integer.valueOf(p.get("id") + "").equals(proId)).toList(); //删除 RedisUtils.deleteObject(String.format(Constants.PRO_GROUP, proUserEntity.getUserId())); //重新插入 @@ -163,19 +165,21 @@ public class DeviceProServiceImpl implements IDeviceProService { //删除人员所拥有的设备信息 List cacheList = RedisUtils.getCacheList(String.format(Constants.PRO_DEVICE, proUserEntity.getUserId())); - List deviceList = cacheList.stream() - .filter(DeviceEntity.class::isInstance) - .map(DeviceEntity.class::cast) + List deviceList = cacheList.stream() + .filter(Map.class::isInstance) + .map(Map.class::cast) .toList(); //过滤除了这个删除的项目组之外的设备 - deviceList = deviceList.stream().filter(p-> !p.getProId().equals(proId)).toList(); + deviceList = deviceList.stream().filter(p-> !Integer.valueOf(p.get("proId") + "").equals(proId)).toList(); //删除 RedisUtils.deleteObject(String.format(Constants.PRO_DEVICE, proUserEntity.getUserId())); - RedisUtils.setCacheList(String.format(String.format(Constants.PRO_DEVICE, proUserEntity.getUserId())),deviceList); + RedisUtils.setCacheList(String.format(Constants.PRO_DEVICE, proUserEntity.getUserId()),deviceList); }); + //--------------------------------------------缓存相关操作---------------------------------------------------------------- + //先清除原来的项目组成员 deviceProUserMapper.delete(new LambdaQueryWrapper().eq(DeviceProUserEntity::getDeviceProId, proId)); @@ -186,13 +190,14 @@ public class DeviceProServiceImpl implements IDeviceProService { //更新缓存记录 userEntity.forEach(proUserEntity -> { List projects = RedisUtils.getCacheList(String.format(Constants.PRO_GROUP, proUserEntity.getUserId())); - List projectList = projects.stream() - .filter(DeviceProEntity.class::isInstance) - .map(DeviceProEntity.class::cast) + List projectList = projects.stream() + .filter(Map.class::isInstance) + .map(Map.class::cast) .toList(); - if (!projectList.stream().anyMatch(p-> p.getId().equals(proUserEntity.getDeviceProId()))){ - RedisUtils.addCacheList(String.format(String.format(Constants.PRO_GROUP, proUserEntity.getUserId())), deviceProEntity); + if (!projectList.stream().anyMatch(p-> Integer.valueOf(p.get("id") + "").equals(proUserEntity.getDeviceProId()))){ + Map proMap = objectMapper.convertValue(deviceProEntity, Map.class); + RedisUtils.addCacheList(String.format(Constants.PRO_GROUP, proUserEntity.getUserId()), proMap); } }); } @@ -230,13 +235,15 @@ public class DeviceProServiceImpl implements IDeviceProService { List proUserEntityList = deviceProUserMapper.selectList(new LambdaQueryWrapper().eq(DeviceProUserEntity::getDeviceProId, proId)); proUserEntityList.forEach(deviceProUserEntity -> { List devices = RedisUtils.getCacheList(String.format(Constants.PRO_DEVICE, deviceProUserEntity.getUserId())); - List deviceList = devices.stream() - .filter(DeviceEntity.class::isInstance) - .map(DeviceEntity.class::cast) + List deviceList = devices.stream() + .filter(Map.class::isInstance) + .map(Map.class::cast) .toList(); - if (!deviceList.stream().anyMatch(p-> p.getId().equals(deviceEntity.getId()))){ - RedisUtils.addCacheList(String.format(String.format(Constants.PRO_DEVICE, deviceProUserEntity.getUserId())), deviceEntity); + if (!deviceList.stream().anyMatch(p-> Integer.valueOf(p.get("id") + "").equals(deviceEntity.getId()))){ + Map deviceMap = objectMapper.convertValue(deviceEntity, Map.class); + + RedisUtils.addCacheList(String.format(Constants.PRO_DEVICE, deviceProUserEntity.getUserId()), deviceMap); } }); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareDTO.java index a45a158..45b5d3f 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareDTO.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareDTO.java @@ -95,7 +95,7 @@ public class AiCompareDTO implements Serializable { * 创建者 */ - private Long createId; + private Long createBy; /** *用户昵称 * */ diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java index 17879c1..476f7dc 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java @@ -83,7 +83,7 @@ public class AiCompareServiceImpl implements IAiCompareService { QueryWrapper wrapper = Wrappers.query(); wrapper .eq(StringUtils.isNotEmpty(bo.getStatus()), "status",bo.getStatus()) - .eq(ObjectUtil.isNotEmpty(bo.getCreateId()), "create_by",bo.getCreateId()) + .eq(ObjectUtil.isNotEmpty(bo.getCreateBy()), "create_id",bo.getCreateBy()) .like(StringUtils.isNotBlank(bo.getDeptName()), "lower(dept_name)", StringUtils.lowerCase(bo.getDeptName())) .like(StringUtils.isNotBlank(bo.getJobName()), "lower(job_name)", StringUtils.lowerCase(bo.getJobName())) .between(params.get("beginTime") != null && params.get("endTime") != null, @@ -156,7 +156,10 @@ public class AiCompareServiceImpl implements IAiCompareService { if(isIllegal){ QueryWrapper queryWrapper = new QueryWrapper().eq("file_id", e.getFileId()); AiComparePlateEntity plateEntity = aiComparePlateMapper.selectOne(queryWrapper); - e.setPatternUrl(fileService.getObjectUrlOne(MinIOConstants.BUCKET_ALERT,plateEntity.getPatternName(),seconds).toString()); + if(plateEntity != null){ + e.setPatternUrl(fileService.getObjectUrlOne(MinIOConstants.BUCKET_ALERT,plateEntity.getPatternName(),seconds).toString()); + } + } }); } diff --git a/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml b/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml index 84c237e..3bd86ee 100644 --- a/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml +++ b/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml @@ -10,28 +10,30 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"