ADD: 合并子计划检测结果数据到主计划对应表中

This commit is contained in:
贾同学
2025-08-29 09:14:06 +08:00
parent 7e66b67cde
commit 760db06120

View File

@@ -1720,6 +1720,8 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
}
// 批量更新被检设备信息
// 设置导入标志为 1
devList.forEach(dev -> dev.setImportFlag(1));
pqDevService.saveOrUpdateBatch(devList);
devList.forEach(dev -> {
pqMonitorService.saveOrUpdateBatch(dev.getMonitorList());
@@ -1968,6 +1970,8 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
// 批量更新被检设备信息
// 不更新导入标志
devList.forEach(dev -> dev.setImportFlag(null));
pqDevService.updateBatchById(devList);
List<PqDevSub> devSubList = planCheckDataVO.getDevSubList();
@@ -2036,6 +2040,7 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
}
}
@Transactional
@Override
public boolean mergePlanCheckData(String planId) {
@@ -2049,14 +2054,54 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
if (CollUtil.isEmpty(subPlanList)) {
throw new BusinessException(CommonResponseEnum.FAIL, "该计划未找到子计划");
}
// 合并前清除相关表数据
String mainHarmonicTableName = "ad_harmonic_" + planCode;
String mainNonHarmonicTableName = "ad_non_harmonic_" + planCode;
String mainHarmonicResultTableName = "ad_harmonic_result_" + planCode;
String mainNonHarmonicResultTableName = "ad_non_harmonic_result_" + planCode;
jdbcTemplate.update("DELETE FROM " + mainHarmonicTableName);
jdbcTemplate.update("DELETE FROM " + mainNonHarmonicTableName);
jdbcTemplate.update("DELETE FROM " + mainHarmonicResultTableName);
jdbcTemplate.update("DELETE FROM " + mainNonHarmonicResultTableName);
// 获取所有子计划检测数据
List<Integer> subPlanCodeList = subPlanList.stream().map(AdPlan::getCode).collect(Collectors.toList());
List<String> harmonicTableNames = new ArrayList<>();
List<String> nonHarmonicTableNames = new ArrayList<>();
List<String> harmonicResultTableNames = new ArrayList<>();
List<String> nonHarmonicResultTableNames = new ArrayList<>();
for (Integer code : subPlanCodeList) {
List<String> dataTableNames = CollUtil.newArrayList("ad_harmonic_" + code, "ad_non_harmonic_" + code, "ad_harmonic_result_" + code, "ad_non_harmonic_result_" + code);
harmonicTableNames.add("ad_harmonic_" + code);
nonHarmonicTableNames.add("ad_non_harmonic_" + code);
harmonicResultTableNames.add("ad_harmonic_result_" + code);
nonHarmonicResultTableNames.add("ad_non_harmonic_result_" + code);
}
return false;
// 将子计划的谐波数据插入到主计划的谐波表中
for (String harmonicTableName : harmonicTableNames) {
String sql = "INSERT INTO " + mainHarmonicTableName + " SELECT * FROM " + harmonicTableName;
jdbcTemplate.update(sql);
}
// 将子计划的非谐波数据插入到主计划的非谐波表中
for (String nonHarmonicTableName : nonHarmonicTableNames) {
String sql = "INSERT INTO " + mainNonHarmonicTableName + " SELECT * FROM " + nonHarmonicTableName;
jdbcTemplate.update(sql);
}
// 将子计划的谐波结果数据插入到主计划的谐波结果表中
for (String harmonicResultTableName : harmonicResultTableNames) {
String sql = "INSERT INTO " + mainHarmonicResultTableName + " SELECT * FROM " + harmonicResultTableName;
jdbcTemplate.update(sql);
}
// 将子计划的非谐波结果数据插入到主计划的非谐波结果表中
for (String nonHarmonicResultTableName : nonHarmonicResultTableNames) {
String sql = "INSERT INTO " + mainNonHarmonicResultTableName + " SELECT * FROM " + nonHarmonicResultTableName;
jdbcTemplate.update(sql);
}
return true;
}
}