UPDATE: 完善。

This commit is contained in:
贾同学
2025-09-25 14:40:13 +08:00
parent dc34bd9b44
commit 6f5746861f
2 changed files with 47 additions and 19 deletions

View File

@@ -40,6 +40,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.io.File; import java.io.File;
import java.io.IOException;
import java.time.Duration; import java.time.Duration;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
@@ -249,7 +250,13 @@ public class AsyncPlanHandler {
// 将上传的zip文件保存到临时目录 // 将上传的zip文件保存到临时目录
File zipFile = FileUtil.file(tempDir, file.getOriginalFilename()); File zipFile = FileUtil.file(tempDir, file.getOriginalFilename());
file.transferTo(zipFile); // 修复文件上传临时路径问题
try {
file.transferTo(zipFile);
} catch (IOException e) {
// 如果直接transferTo失败则先转为字节再写入文件
FileUtil.writeBytes(file.getBytes(), zipFile);
}
progress.addAndGet(1); progress.addAndGet(1);
sseClient.sendMessage(uid, planId, HttpResultUtil.assembleResult(CommonResponseEnum.SUCCESS.getCode(), progress, "开始解压文件,请耐心等待...")); sseClient.sendMessage(uid, planId, HttpResultUtil.assembleResult(CommonResponseEnum.SUCCESS.getCode(), progress, "开始解压文件,请耐心等待..."));
@@ -320,10 +327,10 @@ public class AsyncPlanHandler {
// 更新监测点数据 // 更新监测点数据
List<PqMonitor> monitorList = planCheckDataVO.getMonitorList(); List<PqMonitor> monitorList = planCheckDataVO.getMonitorList();
pqMonitorService.updateBatchById(monitorList); pqMonitorService.updateBatchById(monitorList);
// 批量更新被检设备信息 // 批量更新被检设备信息,不需要更新
// 不更新导入标志 // 不更新导入标志
devList.forEach(dev -> dev.setImportFlag(null)); /*devList.forEach(dev -> dev.setImportFlag(null));
pqDevService.updateBatchById(devList); pqDevService.updateBatchById(devList);*/
List<PqDevSub> devSubList = planCheckDataVO.getDevSubList(); List<PqDevSub> devSubList = planCheckDataVO.getDevSubList();
for (PqDevSub devSub : devSubList) { for (PqDevSub devSub : devSubList) {

View File

@@ -1807,22 +1807,42 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
// 排除已存在的,再入库 // 排除已存在的,再入库
List<String> devIds = devList.stream().map(PqDev::getId).collect(Collectors.toList()); List<String> devIds = devList.stream().map(PqDev::getId).collect(Collectors.toList());
List<PqDevSub> pqDevSubs = pqDevSubService.lambdaQuery().in(PqDevSub::getDevId, devIds).list(); List<PqDevSub> pqDevSubs = pqDevSubService.lambdaQuery().in(PqDevSub::getDevId, devIds).list();
List<String> hadDevIds = pqDevSubs.stream().map(PqDevSub::getDevId).collect(Collectors.toList()); Map<String, Integer> hadDevMaps = pqDevSubs.stream().collect(Collectors.toMap(PqDevSub::getDevId, PqDevSub::getCheckState));
List<PqDev> updateDevList = new ArrayList<>();
// 更新被检设备
for (Map.Entry<String, Integer> entry : hadDevMaps.entrySet()) {
String devId = entry.getKey();
Integer checkState = entry.getValue();
if (checkState.equals(CheckStateEnum.UNCHECKED.getValue())) {
devList.stream().filter(dev -> dev.getId().equals(devId))
.findFirst().ifPresent(dev -> updateDevList.add(dev));
}
}
if (CollUtil.isNotEmpty(updateDevList)) {
pqDevService.updateBatchById(updateDevList);
// 更新监测点数据
for (PqDev dev : updateDevList) {
pqMonitorService.saveOrUpdateBatch(dev.getMonitorList());
}
}
// 新增被检设备 // 新增被检设备
List<PqDev> saveDevList = devList.stream().filter(dev -> !hadDevIds.contains(dev.getId())).collect(Collectors.toList()); List<PqDev> saveDevList = devList.stream().filter(dev -> !hadDevMaps.keySet().contains(dev.getId())).collect(Collectors.toList());
pqDevService.saveBatch(saveDevList); if (CollUtil.isNotEmpty(saveDevList)) {
saveDevList.forEach(dev -> { pqDevService.saveBatch(saveDevList);
pqMonitorService.saveOrUpdateBatch(dev.getMonitorList()); saveDevList.forEach(dev -> {
// 新增时默认设置 pqMonitorService.saveBatch(dev.getMonitorList());
PqDevSub pqDevSub = new PqDevSub(); // 新增时默认设置
pqDevSub.setDevId(dev.getId()); PqDevSub pqDevSub = new PqDevSub();
pqDevSub.setTimeCheckResult(TimeCheckResultEnum.UNKNOWN.getValue()); pqDevSub.setDevId(dev.getId());
pqDevSub.setFactorCheckResult(FactorCheckResultEnum.UNKNOWN.getValue()); pqDevSub.setTimeCheckResult(TimeCheckResultEnum.UNKNOWN.getValue());
pqDevSub.setCheckState(CheckStateEnum.UNCHECKED.getValue()); pqDevSub.setFactorCheckResult(FactorCheckResultEnum.UNKNOWN.getValue());
pqDevSub.setReportState(DevReportStateEnum.UNCHECKED.getValue()); pqDevSub.setCheckState(CheckStateEnum.UNCHECKED.getValue());
pqDevSub.setCheckResult(CheckResultEnum.UNCHECKED.getValue()); pqDevSub.setReportState(DevReportStateEnum.UNCHECKED.getValue());
pqDevSubService.save(pqDevSub); pqDevSub.setCheckResult(CheckResultEnum.UNCHECKED.getValue());
}); pqDevSubService.save(pqDevSub);
});
}
// 移除未检测的被检设备 // 移除未检测的被检设备
List<String> uncheckedDevIds = pqDevSubs.stream() List<String> uncheckedDevIds = pqDevSubs.stream()
.filter(pqDevSub -> pqDevSub.getCheckState().equals(CheckStateEnum.UNCHECKED.getValue())) .filter(pqDevSub -> pqDevSub.getCheckState().equals(CheckStateEnum.UNCHECKED.getValue()))
@@ -1835,6 +1855,7 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
if (CollUtil.isNotEmpty(removeDevIds)) { if (CollUtil.isNotEmpty(removeDevIds)) {
pqDevService.removeByIds(removeDevIds); pqDevService.removeByIds(removeDevIds);
pqDevSubService.remove(new LambdaQueryWrapper<PqDevSub>().in(PqDevSub::getDevId, removeDevIds)); pqDevSubService.remove(new LambdaQueryWrapper<PqDevSub>().in(PqDevSub::getDevId, removeDevIds));
pqMonitorService.remove(new LambdaQueryWrapper<PqMonitor>().in(PqMonitor::getDevId, removeDevIds));
} }
// 批量更新标准设备信息 // 批量更新标准设备信息
pqStandardDevService.saveOrUpdateBatch(standardDevList); pqStandardDevService.saveOrUpdateBatch(standardDevList);