UPDATE: 完善。
This commit is contained in:
@@ -40,6 +40,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.time.Duration;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
@@ -249,7 +250,13 @@ public class AsyncPlanHandler {
|
||||
|
||||
// 将上传的zip文件保存到临时目录
|
||||
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);
|
||||
sseClient.sendMessage(uid, planId, HttpResultUtil.assembleResult(CommonResponseEnum.SUCCESS.getCode(), progress, "开始解压文件,请耐心等待..."));
|
||||
|
||||
@@ -320,10 +327,10 @@ public class AsyncPlanHandler {
|
||||
// 更新监测点数据
|
||||
List<PqMonitor> monitorList = planCheckDataVO.getMonitorList();
|
||||
pqMonitorService.updateBatchById(monitorList);
|
||||
// 批量更新被检设备信息
|
||||
// 批量更新被检设备信息,不需要更新
|
||||
// 不更新导入标志
|
||||
devList.forEach(dev -> dev.setImportFlag(null));
|
||||
pqDevService.updateBatchById(devList);
|
||||
/*devList.forEach(dev -> dev.setImportFlag(null));
|
||||
pqDevService.updateBatchById(devList);*/
|
||||
|
||||
List<PqDevSub> devSubList = planCheckDataVO.getDevSubList();
|
||||
for (PqDevSub devSub : devSubList) {
|
||||
|
||||
@@ -1807,22 +1807,42 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
|
||||
// 排除已存在的,再入库
|
||||
List<String> devIds = devList.stream().map(PqDev::getId).collect(Collectors.toList());
|
||||
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());
|
||||
pqDevService.saveBatch(saveDevList);
|
||||
saveDevList.forEach(dev -> {
|
||||
pqMonitorService.saveOrUpdateBatch(dev.getMonitorList());
|
||||
// 新增时默认设置
|
||||
PqDevSub pqDevSub = new PqDevSub();
|
||||
pqDevSub.setDevId(dev.getId());
|
||||
pqDevSub.setTimeCheckResult(TimeCheckResultEnum.UNKNOWN.getValue());
|
||||
pqDevSub.setFactorCheckResult(FactorCheckResultEnum.UNKNOWN.getValue());
|
||||
pqDevSub.setCheckState(CheckStateEnum.UNCHECKED.getValue());
|
||||
pqDevSub.setReportState(DevReportStateEnum.UNCHECKED.getValue());
|
||||
pqDevSub.setCheckResult(CheckResultEnum.UNCHECKED.getValue());
|
||||
pqDevSubService.save(pqDevSub);
|
||||
});
|
||||
List<PqDev> saveDevList = devList.stream().filter(dev -> !hadDevMaps.keySet().contains(dev.getId())).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(saveDevList)) {
|
||||
pqDevService.saveBatch(saveDevList);
|
||||
saveDevList.forEach(dev -> {
|
||||
pqMonitorService.saveBatch(dev.getMonitorList());
|
||||
// 新增时默认设置
|
||||
PqDevSub pqDevSub = new PqDevSub();
|
||||
pqDevSub.setDevId(dev.getId());
|
||||
pqDevSub.setTimeCheckResult(TimeCheckResultEnum.UNKNOWN.getValue());
|
||||
pqDevSub.setFactorCheckResult(FactorCheckResultEnum.UNKNOWN.getValue());
|
||||
pqDevSub.setCheckState(CheckStateEnum.UNCHECKED.getValue());
|
||||
pqDevSub.setReportState(DevReportStateEnum.UNCHECKED.getValue());
|
||||
pqDevSub.setCheckResult(CheckResultEnum.UNCHECKED.getValue());
|
||||
pqDevSubService.save(pqDevSub);
|
||||
});
|
||||
}
|
||||
|
||||
// 移除未检测的被检设备
|
||||
List<String> uncheckedDevIds = pqDevSubs.stream()
|
||||
.filter(pqDevSub -> pqDevSub.getCheckState().equals(CheckStateEnum.UNCHECKED.getValue()))
|
||||
@@ -1835,6 +1855,7 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
|
||||
if (CollUtil.isNotEmpty(removeDevIds)) {
|
||||
pqDevService.removeByIds(removeDevIds);
|
||||
pqDevSubService.remove(new LambdaQueryWrapper<PqDevSub>().in(PqDevSub::getDevId, removeDevIds));
|
||||
pqMonitorService.remove(new LambdaQueryWrapper<PqMonitor>().in(PqMonitor::getDevId, removeDevIds));
|
||||
}
|
||||
// 批量更新标准设备信息
|
||||
pqStandardDevService.saveOrUpdateBatch(standardDevList);
|
||||
|
||||
Reference in New Issue
Block a user