fix: 优化轮询逻辑
This commit is contained in:
parent
b8d401f662
commit
f7eb3a8ab7
@ -702,28 +702,13 @@ public class FishDraftDataController {
|
|||||||
return ResponseResult.successData(result);
|
return ResponseResult.successData(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
int totalCount = currentTask.getTotalCount() != null ? currentTask.getTotalCount() : 0;
|
|
||||||
int successCount = currentTask.getSuccessCount() != null ? currentTask.getSuccessCount() : 0;
|
|
||||||
int failCount = currentTask.getFailCount() != null ? currentTask.getFailCount() : 0;
|
|
||||||
int progressPercent = totalCount > 0 ? (int) ((successCount + failCount) * 100.0 / totalCount) : 0;
|
|
||||||
|
|
||||||
String statusText = getStatusText(currentTask.getStatus());
|
String statusText = getStatusText(currentTask.getStatus());
|
||||||
boolean canImport = isTaskComplete(currentTask.getStatus());
|
boolean canImport = isTaskComplete(currentTask.getStatus());
|
||||||
|
|
||||||
Map<String, Object> taskInfo = new HashMap<>();
|
Map<String, Object> taskInfo = new HashMap<>();
|
||||||
taskInfo.put("id", currentTask.getId());
|
taskInfo.put("id", currentTask.getId());
|
||||||
taskInfo.put("importNo", currentTask.getImportNo());
|
|
||||||
taskInfo.put("fileName", currentTask.getFileName());
|
|
||||||
taskInfo.put("fileSize", currentTask.getFileSize());
|
|
||||||
taskInfo.put("status", currentTask.getStatus());
|
taskInfo.put("status", currentTask.getStatus());
|
||||||
taskInfo.put("statusText", statusText);
|
taskInfo.put("statusText", statusText);
|
||||||
taskInfo.put("totalCount", totalCount);
|
|
||||||
taskInfo.put("successCount", successCount);
|
|
||||||
taskInfo.put("failCount", failCount);
|
|
||||||
taskInfo.put("progressPercent", progressPercent);
|
|
||||||
taskInfo.put("errorMsg", currentTask.getErrorMsg() != null ? currentTask.getErrorMsg() : "");
|
|
||||||
taskInfo.put("uploadTime", currentTask.getUploadTime());
|
|
||||||
|
|
||||||
result.put("hasImportingTask", true);
|
result.put("hasImportingTask", true);
|
||||||
result.put("canImport", canImport);
|
result.put("canImport", canImport);
|
||||||
result.put("currentTask", taskInfo);
|
result.put("currentTask", taskInfo);
|
||||||
|
|||||||
@ -38,15 +38,16 @@ public interface ImportTaskMapper extends BaseMapper<ImportTask> {
|
|||||||
@Select("SELECT * FROM IMPORT_TASK WHERE UPLOAD_USER_ID = #{uploadUserId} ORDER BY CREATED_AT DESC")
|
@Select("SELECT * FROM IMPORT_TASK WHERE UPLOAD_USER_ID = #{uploadUserId} ORDER BY CREATED_AT DESC")
|
||||||
List<ImportTask> selectByUploadUserId(@Param("uploadUserId") String uploadUserId);
|
List<ImportTask> selectByUploadUserId(@Param("uploadUserId") String uploadUserId);
|
||||||
|
|
||||||
@Select("<script>" +
|
@Select("SELECT * FROM (" +
|
||||||
"SELECT * FROM IMPORT_TASK WHERE UPLOAD_USER_ID = #{uploadUserId} AND STATUS IN " +
|
"SELECT ID, IMPORT_NO, BIZ_TYPE, FILE_NAME, FILE_SIZE, FILE_PATH, TEMP_DIR, " +
|
||||||
"<foreach item='status' collection='statuses' open='(' separator=',' close=')'>" +
|
"TOTAL_COUNT, SUCCESS_COUNT, FAIL_COUNT, STATUS, ERROR_MSG, " +
|
||||||
"#{status}" +
|
"UPLOAD_USER_ID, UPLOAD_TIME, EXPIRE_TIME, CREATED_AT, UPDATED_AT " +
|
||||||
"</foreach>" +
|
"FROM IMPORT_TASK " +
|
||||||
" ORDER BY CREATED_AT DESC" +
|
"WHERE UPLOAD_USER_ID = #{uploadUserId} " +
|
||||||
"</script>")
|
"AND STATUS IN ('UPLOADED', 'PARSING', 'VALIDATED') " +
|
||||||
List<ImportTask> selectByUserIdAndStatuses(@Param("uploadUserId") String uploadUserId,
|
"ORDER BY CREATED_AT DESC" +
|
||||||
@Param("statuses") List<String> statuses);
|
") WHERE ROWNUM = 1")
|
||||||
|
List<ImportTask> selectByUserIdAndStatuses(@Param("uploadUserId") String uploadUserId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询过期的任务
|
* 查询过期的任务
|
||||||
|
|||||||
@ -218,14 +218,14 @@ public class FishImportServiceImpl implements IFishImportService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Set<String> allStcdSet = new HashSet<>();
|
// Set<String> allStcdSet = new HashSet<>();
|
||||||
|
|
||||||
if (!allowedHbrvcdSet.isEmpty() || !directStcdSet.isEmpty()) {
|
if (!allowedHbrvcdSet.isEmpty() || !directStcdSet.isEmpty()) {
|
||||||
if (!allowedHbrvcdSet.isEmpty()) {
|
if (!allowedHbrvcdSet.isEmpty()) {
|
||||||
List<SdEngInfoBH> stationsFromHbrv = engInfoBHMapper.selectByHbrvcdList(new ArrayList<>(allowedHbrvcdSet));
|
List<SdEngInfoBH> stationsFromHbrv = engInfoBHMapper.selectByHbrvcdList(new ArrayList<>(allowedHbrvcdSet));
|
||||||
for (SdEngInfoBH station : stationsFromHbrv) {
|
for (SdEngInfoBH station : stationsFromHbrv) {
|
||||||
if (station.getStcd() != null) {
|
if (station.getStcd() != null) {
|
||||||
allStcdSet.add(station.getStcd());
|
directStcdSet.add(station.getStcd());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -234,7 +234,7 @@ public class FishImportServiceImpl implements IFishImportService {
|
|||||||
List<SdEngInfoBH> stationsFromStcd = engInfoBHMapper.selectBatchIds(new ArrayList<>(directStcdSet));
|
List<SdEngInfoBH> stationsFromStcd = engInfoBHMapper.selectBatchIds(new ArrayList<>(directStcdSet));
|
||||||
for (SdEngInfoBH station : stationsFromStcd) {
|
for (SdEngInfoBH station : stationsFromStcd) {
|
||||||
if (station.getStcd() != null) {
|
if (station.getStcd() != null) {
|
||||||
allStcdSet.add(station.getStcd());
|
directStcdSet.add(station.getStcd());
|
||||||
}
|
}
|
||||||
if (station.getHbrvcd() != null) {
|
if (station.getHbrvcd() != null) {
|
||||||
allowedHbrvcdSet.add(station.getHbrvcd());
|
allowedHbrvcdSet.add(station.getHbrvcd());
|
||||||
@ -243,7 +243,7 @@ public class FishImportServiceImpl implements IFishImportService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!directStcdSet.isEmpty()) {
|
if (!directStcdSet.isEmpty()) {
|
||||||
List<SdFpssBH> sdFpssBHS = fpssBHMapper.selectList(new LambdaQueryWrapper<SdFpssBH>().in(SdFpssBH::getRstcd, allStcdSet).select(SdFpssBH::getStcd));
|
List<SdFpssBH> sdFpssBHS = fpssBHMapper.selectList(new LambdaQueryWrapper<SdFpssBH>().in(SdFpssBH::getRstcd, directStcdSet).select(SdFpssBH::getStcd));
|
||||||
for (SdFpssBH sdFpssBH : sdFpssBHS) {
|
for (SdFpssBH sdFpssBH : sdFpssBHS) {
|
||||||
if (sdFpssBH.getStcd() != null) {
|
if (sdFpssBH.getStcd() != null) {
|
||||||
directBHSet.add(sdFpssBH.getStcd());
|
directBHSet.add(sdFpssBH.getStcd());
|
||||||
@ -268,7 +268,7 @@ public class FishImportServiceImpl implements IFishImportService {
|
|||||||
importRow.getWarnings().add("rstcd");
|
importRow.getWarnings().add("rstcd");
|
||||||
data.setEnnm(cellValue.trim());
|
data.setEnnm(cellValue.trim());
|
||||||
} else {
|
} else {
|
||||||
if (allStcdSet.contains(stcd)) {
|
if (directStcdSet.contains(stcd)) {
|
||||||
data.setEnnm(cellValue.trim());
|
data.setEnnm(cellValue.trim());
|
||||||
data.setRstcd(stcd);
|
data.setRstcd(stcd);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -12,12 +12,14 @@ import com.yfd.platform.data.mapper.ImportTaskMapper;
|
|||||||
import com.yfd.platform.data.service.AttachmentUploadService;
|
import com.yfd.platform.data.service.AttachmentUploadService;
|
||||||
import com.yfd.platform.data.service.IImportTaskService;
|
import com.yfd.platform.data.service.IImportTaskService;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
|
import org.springframework.scheduling.annotation.Async;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@ -166,8 +168,8 @@ public class ImportTaskServiceImpl extends ServiceImpl<ImportTaskMapper, ImportT
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasImportingTask(String uploadUserId) {
|
public boolean hasImportingTask(String uploadUserId) {
|
||||||
List<String> activeStatuses = List.of("UPLOADED", "PARSING", "VALIDATING");
|
// List<String> activeStatuses = List.of("UPLOADED", "PARSING", "VALIDATING");
|
||||||
List<ImportTask> tasks = importTaskMapper.selectByUserIdAndStatuses(uploadUserId, activeStatuses);
|
List<ImportTask> tasks = importTaskMapper.selectByUserIdAndStatuses(uploadUserId);
|
||||||
return tasks != null && !tasks.isEmpty();
|
return tasks != null && !tasks.isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -185,21 +187,6 @@ public class ImportTaskServiceImpl extends ServiceImpl<ImportTaskMapper, ImportT
|
|||||||
if (importTask.getResultJson() != null && !importTask.getResultJson().isEmpty()) {
|
if (importTask.getResultJson() != null && !importTask.getResultJson().isEmpty()) {
|
||||||
try {
|
try {
|
||||||
FishImportResult importResult = objectMapper.readValue(importTask.getResultJson(), FishImportResult.class);
|
FishImportResult importResult = objectMapper.readValue(importTask.getResultJson(), FishImportResult.class);
|
||||||
// for (FishImportResult.FishImportRow successRow : importResult.getRows()) {
|
|
||||||
// if (successRow.getData()==null) {
|
|
||||||
// continue;
|
|
||||||
// }
|
|
||||||
// String vdpth = successRow.getData().getVdpth();
|
|
||||||
// if (StringUtils.hasText(vdpth)) {
|
|
||||||
// List<String> fileIds = StrUtil.split(vdpth, ",");
|
|
||||||
// fileIds.forEach(fileId -> attachmentUploadService.deleteFile(fileId));
|
|
||||||
// }
|
|
||||||
// String picpth = successRow.getData().getPicpth();
|
|
||||||
// if (StringUtils.hasText(picpth)) {
|
|
||||||
// List<String> fileIds = StrUtil.split(vdpth, ",");
|
|
||||||
// fileIds.forEach(fileId -> attachmentUploadService.deleteFile(fileId));
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
String tempDir = importResult.getTempDir();
|
String tempDir = importResult.getTempDir();
|
||||||
// del 方法会递归删除目录及其所有内容
|
// del 方法会递归删除目录及其所有内容
|
||||||
FileUtil.del(tempDir);
|
FileUtil.del(tempDir);
|
||||||
@ -216,8 +203,8 @@ public class ImportTaskServiceImpl extends ServiceImpl<ImportTaskMapper, ImportT
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ImportTask getCurrentTaskByUserId(String uploadUserId) {
|
public ImportTask getCurrentTaskByUserId(String uploadUserId) {
|
||||||
List<String> activeStatuses = List.of("UPLOADED", "PARSING", "VALIDATED");
|
// List<String> activeStatuses = List.of("UPLOADED", "PARSING", "VALIDATED");
|
||||||
List<ImportTask> tasks = importTaskMapper.selectByUserIdAndStatuses(uploadUserId, activeStatuses);
|
List<ImportTask> tasks = importTaskMapper.selectByUserIdAndStatuses(uploadUserId);
|
||||||
if (tasks == null || tasks.isEmpty()) {
|
if (tasks == null || tasks.isEmpty()) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,12 +10,12 @@ spring:
|
|||||||
druid:
|
druid:
|
||||||
master:
|
master:
|
||||||
driverClassName: oracle.jdbc.OracleDriver
|
driverClassName: oracle.jdbc.OracleDriver
|
||||||
url: "${DB_MASTER_URL:jdbc:oracle:thin:@172.16.31.190:1521/SDLYZ}"
|
url: "${DB_MASTER_URL:jdbc:oracle:thin:@172.16.21.134:1521/SDLYZ}"
|
||||||
username: "${DB_MASTER_USERNAME:QGC_REFA}"
|
username: "${DB_MASTER_USERNAME:QGC_REFA}"
|
||||||
password: "${DB_MASTER_PASSWORD:Y4M4K1oCkL8U}"
|
password: "${DB_MASTER_PASSWORD:Y4M4K1oCkL8U}"
|
||||||
slave:
|
slave:
|
||||||
driverClassName: oracle.jdbc.OracleDriver
|
driverClassName: oracle.jdbc.OracleDriver
|
||||||
url: "${DB_SLAVE_URL:jdbc:oracle:thin:@172.16.31.190:1521/SDLYZ}"
|
url: "${DB_SLAVE_URL:jdbc:oracle:thin:@172.16.21.134:1521/SDLYZ}"
|
||||||
username: "${DB_SLAVE_USERNAME:QGC_REFA}"
|
username: "${DB_SLAVE_USERNAME:QGC_REFA}"
|
||||||
password: "${DB_SLAVE_PASSWORD:Y4M4K1oCkL8U}"
|
password: "${DB_SLAVE_PASSWORD:Y4M4K1oCkL8U}"
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user