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实时流预警保存") @Operation(summary ="ai实时流预警保存",description = "ai实时流预警保存")
@PostMapping("/saveAlertList") @PostMapping("/saveAlertList")
public R saveAlert(@RequestBody List<BusinessAlertVo> alertVoList) { public R saveAlert(@RequestBody List<BusinessAlertVo> alertVoList) {
businessAlertService.addBusinessAlertList(alertVoList); businessAlertService.addBusinessAlertList(alertVoList);
return R.ok(); 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 @Autowired
private IDeviceProUserMapper deviceProUserMapper; private IDeviceProUserMapper deviceProUserMapper;
private final ObjectMapper objectMapper = new ObjectMapper();
@Override @Override
public PaginationData<DeviceProEntity> listDeviceProEntityMap(Page page, DeviceProDTO deviceProDTO) { public PaginationData<DeviceProEntity> listDeviceProEntityMap(Page page, DeviceProDTO deviceProDTO) {
Page<DeviceProEntity> pagination = deviceProMapper.listDeviceProEntityMap(page, deviceProDTO); Page<DeviceProEntity> pagination = deviceProMapper.listDeviceProEntityMap(page, deviceProDTO);
@ -148,13 +150,13 @@ public class DeviceProServiceImpl implements IDeviceProService {
difference.forEach(proUserEntity -> { difference.forEach(proUserEntity -> {
//删除人员项目组信息 //删除人员项目组信息
List<Object> projects = RedisUtils.getCacheList(String.format(Constants.PRO_GROUP, proUserEntity.getUserId())); List<Object> projects = RedisUtils.getCacheList(String.format(Constants.PRO_GROUP, proUserEntity.getUserId()));
List<DeviceProEntity> projectList = projects.stream() List<Map> projectList = projects.stream()
.filter(DeviceProEntity.class::isInstance) .filter(Map.class::isInstance)
.map(DeviceProEntity.class::cast) .map(Map.class::cast)
.toList(); .toList();
//删除人员中所拥有的当前的项目组,然后构建新的存入redis //删除人员中所拥有的当前的项目组,然后构建新的存入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())); 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<Object> cacheList = RedisUtils.getCacheList(String.format(Constants.PRO_DEVICE, proUserEntity.getUserId()));
List<DeviceEntity> deviceList = cacheList.stream() List<Map> deviceList = cacheList.stream()
.filter(DeviceEntity.class::isInstance) .filter(Map.class::isInstance)
.map(DeviceEntity.class::cast) .map(Map.class::cast)
.toList(); .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.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)); deviceProUserMapper.delete(new LambdaQueryWrapper<DeviceProUserEntity>().eq(DeviceProUserEntity::getDeviceProId, proId));
@ -186,13 +190,14 @@ public class DeviceProServiceImpl implements IDeviceProService {
//更新缓存记录 //更新缓存记录
userEntity.forEach(proUserEntity -> { userEntity.forEach(proUserEntity -> {
List<Object> projects = RedisUtils.getCacheList(String.format(Constants.PRO_GROUP, proUserEntity.getUserId())); List<Object> projects = RedisUtils.getCacheList(String.format(Constants.PRO_GROUP, proUserEntity.getUserId()));
List<DeviceProEntity> projectList = projects.stream() List<Map> projectList = projects.stream()
.filter(DeviceProEntity.class::isInstance) .filter(Map.class::isInstance)
.map(DeviceProEntity.class::cast) .map(Map.class::cast)
.toList(); .toList();
if (!projectList.stream().anyMatch(p-> p.getId().equals(proUserEntity.getDeviceProId()))){ if (!projectList.stream().anyMatch(p-> Integer.valueOf(p.get("id") + "").equals(proUserEntity.getDeviceProId()))){
RedisUtils.addCacheList(String.format(String.format(Constants.PRO_GROUP, proUserEntity.getUserId())), deviceProEntity); 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)); List<DeviceProUserEntity> proUserEntityList = deviceProUserMapper.selectList(new LambdaQueryWrapper<DeviceProUserEntity>().eq(DeviceProUserEntity::getDeviceProId, proId));
proUserEntityList.forEach(deviceProUserEntity -> { proUserEntityList.forEach(deviceProUserEntity -> {
List<Object> devices = RedisUtils.getCacheList(String.format(Constants.PRO_DEVICE, deviceProUserEntity.getUserId())); List<Object> devices = RedisUtils.getCacheList(String.format(Constants.PRO_DEVICE, deviceProUserEntity.getUserId()));
List<DeviceEntity> deviceList = devices.stream() List<Map> deviceList = devices.stream()
.filter(DeviceEntity.class::isInstance) .filter(Map.class::isInstance)
.map(DeviceEntity.class::cast) .map(Map.class::cast)
.toList(); .toList();
if (!deviceList.stream().anyMatch(p-> p.getId().equals(deviceEntity.getId()))){ if (!deviceList.stream().anyMatch(p-> Integer.valueOf(p.get("id") + "").equals(deviceEntity.getId()))){
RedisUtils.addCacheList(String.format(String.format(Constants.PRO_DEVICE, deviceProUserEntity.getUserId())), deviceEntity); 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(); QueryWrapper<AiCompareEntity> wrapper = Wrappers.query();
wrapper wrapper
.eq(StringUtils.isNotEmpty(bo.getStatus()), "status",bo.getStatus()) .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.getDeptName()), "lower(dept_name)", StringUtils.lowerCase(bo.getDeptName()))
.like(StringUtils.isNotBlank(bo.getJobName()), "lower(job_name)", StringUtils.lowerCase(bo.getJobName())) .like(StringUtils.isNotBlank(bo.getJobName()), "lower(job_name)", StringUtils.lowerCase(bo.getJobName()))
.between(params.get("beginTime") != null && params.get("endTime") != null, .between(params.get("beginTime") != null && params.get("endTime") != null,
@ -156,8 +156,11 @@ public class AiCompareServiceImpl implements IAiCompareService {
if(isIllegal){ if(isIllegal){
QueryWrapper<AiComparePlateEntity> queryWrapper = new QueryWrapper<AiComparePlateEntity>().eq("file_id", e.getFileId()); QueryWrapper<AiComparePlateEntity> queryWrapper = new QueryWrapper<AiComparePlateEntity>().eq("file_id", e.getFileId());
AiComparePlateEntity plateEntity = aiComparePlateMapper.selectOne(queryWrapper); AiComparePlateEntity plateEntity = aiComparePlateMapper.selectOne(queryWrapper);
if(plateEntity != null){
e.setPatternUrl(fileService.getObjectUrlOne(MinIOConstants.BUCKET_ALERT,plateEntity.getPatternName(),seconds).toString()); e.setPatternUrl(fileService.getObjectUrlOne(MinIOConstants.BUCKET_ALERT,plateEntity.getPatternName(),seconds).toString());
} }
}
}); });
} }
return mediaFileDTOList; 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 id="listMediaFile" resultType="org.dromara.sample.wayline.model.dto.AiCompareMediaFileDTO">
SELECT SELECT
ai.id as compareId,
mf.file_index, mf.file_index,
mf.file_id, mf.file_id,
mf.file_name, mf.file_name,
mf.object_key, mf.object_key,
mf.job_id, mf.job_id,
mfi.file_id as mateFileId, mfi.file_id AS mateFileId,
mfi.file_name as mateFileName, mfi.file_name AS mateFileName,
mfi.object_key AS mateObjectKey, mfi.object_key AS mateObjectKey,
mfi.file_index AS mateFileIndex, mfi.file_index AS mateFileIndex,
mfi.create_time AS mateFileDate mfi.create_time AS mateFileDate
FROM FROM
media_file AS mf media_file mf
JOIN JOIN media_file mfi ON mf.file_index = mfi.file_index
media_file AS mfi
ON
mf.file_index = mfi.file_index and mf.file_type='jpeg' and mfi.file_type='jpeg'
JOIN ai_compare ai ON ai.template_id = mfi.job_id JOIN ai_compare ai ON ai.template_id = mfi.job_id
WHERE 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 ORDER BY
mf.file_index; mf.file_index,
mf.file_status;
</select> </select>
</mapper> </mapper>

Loading…
Cancel
Save