dev #2

Merged
yuanqiang merged 5 commits from dev into test 2 months ago
  1. 1
      dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java
  2. 45
      dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceProServiceImpl.java
  3. 2
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareDTO.java
  4. 5
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java
  5. 24
      dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml

1
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<BusinessAlertVo> alertVoList) {
businessAlertService.addBusinessAlertList(alertVoList);
return R.ok();
}

45
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<DeviceProEntity> listDeviceProEntityMap(Page page, DeviceProDTO deviceProDTO) {
Page<DeviceProEntity> pagination = deviceProMapper.listDeviceProEntityMap(page, deviceProDTO);
@ -148,13 +150,13 @@ public class DeviceProServiceImpl implements IDeviceProService {
difference.forEach(proUserEntity -> {
//删除人员项目组信息
List<Object> projects = RedisUtils.getCacheList(String.format(Constants.PRO_GROUP, proUserEntity.getUserId()));
List<DeviceProEntity> projectList = projects.stream()
.filter(DeviceProEntity.class::isInstance)
.map(DeviceProEntity.class::cast)
List<Map> projectList = projects.stream()
.filter(Map.class::isInstance)
.map(Map.class::cast)
.toList();
//删除人员中所拥有的当前的项目组,然后构建新的存入redis
List<DeviceProEntity> deviceProEntities = projectList.stream().filter(p -> !p.getId().equals(proId)).toList();
List<Map> 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<Object> cacheList = RedisUtils.getCacheList(String.format(Constants.PRO_DEVICE, proUserEntity.getUserId()));
List<DeviceEntity> deviceList = cacheList.stream()
.filter(DeviceEntity.class::isInstance)
.map(DeviceEntity.class::cast)
List<Map> 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<DeviceProUserEntity>().eq(DeviceProUserEntity::getDeviceProId, proId));
@ -186,13 +190,14 @@ public class DeviceProServiceImpl implements IDeviceProService {
//更新缓存记录
userEntity.forEach(proUserEntity -> {
List<Object> projects = RedisUtils.getCacheList(String.format(Constants.PRO_GROUP, proUserEntity.getUserId()));
List<DeviceProEntity> projectList = projects.stream()
.filter(DeviceProEntity.class::isInstance)
.map(DeviceProEntity.class::cast)
List<Map> 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<DeviceProUserEntity> proUserEntityList = deviceProUserMapper.selectList(new LambdaQueryWrapper<DeviceProUserEntity>().eq(DeviceProUserEntity::getDeviceProId, proId));
proUserEntityList.forEach(deviceProUserEntity -> {
List<Object> devices = RedisUtils.getCacheList(String.format(Constants.PRO_DEVICE, deviceProUserEntity.getUserId()));
List<DeviceEntity> deviceList = devices.stream()
.filter(DeviceEntity.class::isInstance)
.map(DeviceEntity.class::cast)
List<Map> 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);
}
});
}

2
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;
/**
*用户昵称
* */

5
dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java

@ -83,7 +83,7 @@ public class AiCompareServiceImpl implements IAiCompareService {
QueryWrapper<AiCompareEntity> 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,8 +156,11 @@ public class AiCompareServiceImpl implements IAiCompareService {
if(isIllegal){
QueryWrapper<AiComparePlateEntity> queryWrapper = new QueryWrapper<AiComparePlateEntity>().eq("file_id", e.getFileId());
AiComparePlateEntity plateEntity = aiComparePlateMapper.selectOne(queryWrapper);
if(plateEntity != null){
e.setPatternUrl(fileService.getObjectUrlOne(MinIOConstants.BUCKET_ALERT,plateEntity.getPatternName(),seconds).toString());
}
}
});
}
return mediaFileDTOList;

24
dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml

@ -10,28 +10,30 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="listMediaFile" resultType="org.dromara.sample.wayline.model.dto.AiCompareMediaFileDTO">
SELECT
ai.id as compareId,
mf.file_index,
mf.file_id,
mf.file_name,
mf.object_key,
mf.job_id,
mfi.file_id as mateFileId,
mfi.file_name as mateFileName,
mfi.file_id AS mateFileId,
mfi.file_name AS mateFileName,
mfi.object_key AS mateObjectKey,
mfi.file_index AS mateFileIndex,
mfi.create_time AS mateFileDate
FROM
media_file AS mf
JOIN
media_file AS mfi
ON
mf.file_index = mfi.file_index and mf.file_type='jpeg' and mfi.file_type='jpeg'
media_file mf
JOIN media_file mfi ON mf.file_index = mfi.file_index
JOIN ai_compare ai ON ai.template_id = mfi.job_id
WHERE
mf.job_id = #{jobId} and ai.id=#{compareId}
mf.file_status = mfi.file_status
AND mf.file_id != mfi.file_id
AND mf.file_index = mfi.file_index
AND mf.file_type = 'jpeg'
AND mfi.file_type = 'jpeg'
AND mf.job_id = #{jobId}
AND ai.id = #{compareId}
ORDER BY
mf.file_index;
mf.file_index,
mf.file_status;
</select>
</mapper>

Loading…
Cancel
Save