fix: 获取文件新的id,判断是否存在

collector-LIS
wyb 9 months ago
parent 3e420be139
commit 5a669a1c51

@ -76,4 +76,10 @@ public interface DownloadTaskDao extends IBaseDao<DownloadTask> {
* @return com.docus.server.collect.entity.TSeal
*/
TSeal findSealByCondition(TSeal seal);
boolean existIdFromSanAssort(Long fileId);
boolean existIdFromDownfile(Long fileId);
boolean existIdFromDownloadTask(Long fileId);
}

@ -66,4 +66,25 @@ public class DownloadTaskDaoImpl extends BaseDaoImpl<DownloadTaskMapper, Downloa
public TSeal findSealByCondition(TSeal seal) {
return baseMapper.findSealByCondition(seal);
}
@Override
public boolean existIdFromSanAssort(Long fileId) {
Long id = baseMapper.getFileIdFromSanAssort(fileId);
return id != null;
}
@Override
public boolean existIdFromDownfile(Long fileId) {
Long id = baseMapper.getFileIdFromDownfile(fileId);
return id != null;
}
@Override
public boolean existIdFromDownloadTask(Long fileId) {
LambdaQueryWrapper<DownloadTask> wrapper = new LambdaQueryWrapper<>();
wrapper.select(DownloadTask::getId);
wrapper.eq(DownloadTask::getId, fileId);
DownloadTask downloadTask = baseMapper.selectOne(wrapper);
return downloadTask != null;
}
}

@ -67,4 +67,9 @@ public interface DownloadTaskMapper extends BaseMapper<DownloadTask> {
* @author YongBin Wen
*/
TSeal findSealByCondition(@Param("seal") TSeal seal);
Long getFileIdFromDownfile(@Param("fileId") Long fileId);
Long getFileIdFromSanAssort(@Param("fileId") Long fileId);
}

@ -59,7 +59,7 @@ public class FileReportServiceImpl implements FileReportService {
// 转换下载任务对象
DownloadTask downloadTask = fileReportConverter.convertDownloadTask(fileInfoDTO, 0);
// 查询旧的下载任务id,更新/保存任务信息
Long downloadTaskId = Optional.ofNullable(getDownloadTaskId(downloadTask)).orElse(idService.getDateSeq());
Long downloadTaskId = Optional.ofNullable(getDownloadTaskId(downloadTask)).orElse(getNewFileId());
downloadTask.setId(downloadTaskId);
downloadTaskDao.saveOrUpdate(downloadTask);
report(downloadTask);
@ -78,12 +78,29 @@ public class FileReportServiceImpl implements FileReportService {
// 转换下载任务对象
DownloadTask downloadTask = fileReportConverter.convertDownloadTask(fileInfoDTO, 2);
// 查询旧的下载任务id,更新/保存任务信息
Long downloadTaskId = Optional.ofNullable(getDownloadTaskId(downloadTask)).orElse(idService.getDateSeq());
Long downloadTaskId = Optional.ofNullable(getDownloadTaskId(downloadTask)).orElse(getNewFileId());
downloadTask.setId(downloadTaskId);
downloadTaskDao.saveOrUpdate(downloadTask);
reportSeal(downloadTask);
}
/**
* idid
*/
private Long getNewFileId() {
Long fileId = idService.getDateSeq();
while (true) {
boolean existIdFromSanAssort = downloadTaskDao.existIdFromSanAssort(fileId);
boolean existIdFromDownfile = downloadTaskDao.existIdFromDownfile(fileId);
boolean existIdFromDownloadTask = downloadTaskDao.existIdFromDownloadTask(fileId);
if (!existIdFromSanAssort && !existIdFromDownfile && !existIdFromDownloadTask) {
return fileId;
}
fileId = fileId + 16;
}
}
@Override
public Long getDownloadTaskId(DownloadTask downloadTask) {
String patientId = downloadTask.getPatientId();

@ -130,5 +130,12 @@
AND patient_id=#{seal.patientId}
</if>
</select>
<select id="getFileIdFromDownfile" resultType="java.lang.Long">
select `t_scan_assort_id` from `docus_archivefile`.`af_downfile` where `t_scan_assort_id`=#{fileId} LIMIT 1
</select>
<select id="getFileIdFromSanAssort" resultType="java.lang.Long">
select id from `docus_archivefile`.`t_scan_assort` where id=#{fileId}
</select>
</mapper>

Loading…
Cancel
Save