ADD:检测计划添加检测配置相关

This commit is contained in:
贾同学
2025-08-26 11:12:16 +08:00
parent cd41320032
commit d5f22c4147
9 changed files with 172 additions and 3 deletions

View File

@@ -413,5 +413,16 @@ public class AdPlanController extends BaseController {
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.UPLOAD)
@PostMapping(value = "/mergePlanCheckData")
@ApiOperation("合并计划检测结果数据")
@ApiImplicitParam(name = "planId", value = "计划id", required = true)
public HttpResult<Boolean> mergePlanCheckData(@RequestParam("planId") String planId) {
String methodDescribe = getMethodDescribe("mergePlanCheckData");
LogUtil.njcnDebug(log, "{}合并计划ID数据为{}", methodDescribe, planId);
adPlanService.mergePlanCheckData(planId);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
}
}

View File

@@ -0,0 +1,16 @@
package com.njcn.gather.plan.mapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.njcn.gather.plan.pojo.po.AdPlanTestConfig;
/**
* @author stary
* @date 2025-08-25
*/
public interface AdPlanTestConfigMapper extends MPJBaseMapper<AdPlanTestConfig> {
}

View File

@@ -1,6 +1,7 @@
package com.njcn.gather.plan.pojo.param;
import com.njcn.common.pojo.constant.PatternRegex;
import com.njcn.gather.plan.pojo.po.AdPlanTestConfig;
import com.njcn.gather.pojo.constant.DetectionValidMessage;
import com.njcn.web.pojo.param.BaseParam;
import io.swagger.annotations.ApiModelProperty;
@@ -71,7 +72,8 @@ public class AdPlanParam {
@ApiModelProperty(value = "测试项ID列表")
private List<@Pattern(regexp = PatternRegex.SYSTEM_ID, message = DetectionValidMessage.SOURCE_ID_FORMAT_ERROR)String> testItems;
@ApiModelProperty(value = "检测配置")
private AdPlanTestConfig testConfig;
/**
* 分页查询实体
*/

View File

@@ -0,0 +1,51 @@
package com.njcn.gather.plan.pojo.po;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author stary
* @date 2025-08-25
*/
@Data
@TableName("ad_plan_test_config")
@AllArgsConstructor
@NoArgsConstructor
public class AdPlanTestConfig implements Serializable {
private static final long serialVersionUID = -796292730578249530L;
/**
* 检测计划表Id
*/
private String planId;
/**
* 录波数据有效组数
*/
private Integer waveRecord;
/**
* 实时数据有效组数
*/
private Integer realTime;
/**
* 统计数据有效组数
*/
private Integer statistics;
/**
* 短闪数据有效组数
*/
private Integer flicker;
/**
* 最大检测次数默认3次
*/
private Integer maxTime;
}

View File

@@ -1,6 +1,7 @@
package com.njcn.gather.plan.pojo.vo;
import com.njcn.gather.device.pojo.vo.PqDevVO;
import com.njcn.gather.plan.pojo.po.AdPlanTestConfig;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -149,4 +150,6 @@ public class AdPlanVO {
* 来源
*/
private String origin;
private AdPlanTestConfig testConfig;
}

View File

@@ -204,6 +204,12 @@ public interface IAdPlanService extends IService<AdPlan> {
* @param response
*/
boolean importSubPlanCheckDataZip(MultipartFile file, String patternId, HttpServletResponse response);
/**
* 合并计划检测结果数据
*
* @param planId
*/
boolean mergePlanCheckData(String planId);
}

View File

@@ -0,0 +1,12 @@
package com.njcn.gather.plan.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.gather.plan.pojo.po.AdPlanTestConfig;
/**
* @author stary
* @date 2025-08-25
*/
public interface IAdPlanTestConfigService extends IService<AdPlanTestConfig> {
}

View File

@@ -54,10 +54,12 @@ import com.njcn.gather.plan.pojo.enums.PlanReportStateEnum;
import com.njcn.gather.plan.pojo.param.AdPlanParam;
import com.njcn.gather.plan.pojo.po.AdPlan;
import com.njcn.gather.plan.pojo.po.AdPlanStandardDev;
import com.njcn.gather.plan.pojo.po.AdPlanTestConfig;
import com.njcn.gather.plan.pojo.vo.*;
import com.njcn.gather.plan.service.IAdPlanService;
import com.njcn.gather.plan.service.IAdPlanSourceService;
import com.njcn.gather.plan.service.IAdPlanStandardDevService;
import com.njcn.gather.plan.service.IAdPlanTestConfigService;
import com.njcn.gather.pojo.enums.DetectionResponseEnum;
import com.njcn.gather.report.pojo.po.PqReport;
import com.njcn.gather.report.service.IPqReportService;
@@ -138,6 +140,7 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
private final IPqStandardDevService pqStandardDevService;
private final IPqIcdPathService pqIcdPathService;
private final IAdPariService adPairService;
private final IAdPlanTestConfigService adPlanTestConfigService;
private final JdbcTemplate jdbcTemplate;
@@ -207,6 +210,9 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
adPlanVO.setStandardDevNameStr(pqStandardDevs.stream().map(PqStandardDev::getName).reduce((a, b) -> a + "," + b).orElse(""));
if (CommonEnum.FATHER_ID.getValue().equals(adPlan.getFatherPlanId())) {
// 查询检测配置
AdPlanTestConfig testConfig = adPlanTestConfigService.getOne(new LambdaQueryWrapper<AdPlanTestConfig>().eq(AdPlanTestConfig::getPlanId, adPlan.getId()));
adPlanVO.setTestConfig(testConfig);
List<AdPlan> childrenPlan = this.lambdaQuery().eq(AdPlan::getFatherPlanId, adPlan.getId()).eq(AdPlan::getState, DataStateEnum.ENABLE.getCode()).list();
List<String> childrenPlanIds = childrenPlan.stream().map(AdPlan::getId).collect(Collectors.toList());
if (CollUtil.isNotEmpty(childrenPlanIds)) {
@@ -217,6 +223,10 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
Map<String, Integer> standardDevIds = adPlanVO.getStandardDevMap();
standardDevIds.putAll(pqStandardDevs.stream().collect(Collectors.toMap(PqStandardDev::getId, obj -> 1)));
// adPlanVO.setStandardDevNameStr(adPlanVO.getStandardDevNameStr() + pqStandardDevs.stream().map(PqStandardDev::getName).reduce((a, b) -> a + "," + b).orElse(""));
} else {
// 查询父计划检测配置
AdPlanTestConfig testConfig = adPlanTestConfigService.getOne(new LambdaQueryWrapper<AdPlanTestConfig>().eq(AdPlanTestConfig::getPlanId, adPlan.getFatherPlanId()));
adPlanVO.setTestConfig(testConfig);
}
}
@@ -233,7 +243,7 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
adPlan.setDatasourceId(String.join(StrUtil.COMMA, param.getDatasourceIds()));
adPlan.setState(DataStateEnum.ENABLE.getCode());
boolean addTestConfig = true;
if (StrUtil.isBlank(param.getFatherPlanId())) {
// 默认为顶级检测计划
adPlan.setFatherPlanId(CommonEnum.FATHER_ID.getValue());
@@ -241,6 +251,7 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
AdPlan plan = this.getById(param.getFatherPlanId());
adPlan.setFatherPlanId(param.getFatherPlanId());
adPlan.setOrigin(plan.getName());
addTestConfig = false;
}
adPlan.setTestState(CheckStateEnum.UNCHECKED.getValue());
adPlan.setReportState(PlanReportStateEnum.REPORT_STATE_NOT_GENERATED.getValue());
@@ -277,6 +288,12 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
adPlanStandardDevService.deleteAdPlanStandardDev(param.getFatherPlanId(), param.getStandardDevIds());
adPlanStandardDevService.addAdPlanStandardDev(planId, param.getStandardDevIds());
}
if (addTestConfig) {
// 添加检测配置
AdPlanTestConfig testConfig = param.getTestConfig();
testConfig.setPlanId(planId);
adPlanTestConfigService.save(testConfig);
}
} else {
// 关联检测源
adPlanSourceService.addAdPlanSource(planId, param.getSourceIds());
@@ -390,6 +407,10 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
List<String> devIds = pqDevVOList.stream().map(PqDevVO::getId).collect(Collectors.toList());
param.getDevIds().removeAll(devIds);
// 更新检测配置
AdPlanTestConfig testConfig = param.getTestConfig();
adPlanTestConfigService.update(testConfig,new LambdaUpdateWrapper<AdPlanTestConfig>().eq(AdPlanTestConfig::getPlanId, testConfig.getPlanId()));
} else {
// 修改检测计划、检测源关联
adPlanSourceService.updateAdPlanSource(param.getId(), param.getSourceIds());
@@ -400,7 +421,8 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
this.lambdaUpdate().in(AdPlan::getFatherPlanId, plan1.getId()).eq(AdPlan::getState, DataStateEnum.ENABLE.getCode())
.set(AdPlan::getOrigin, param.getName()).update();
}
return this.updateById(plan2);
return this.updateById(plan2);
}
@Override
@@ -423,6 +445,8 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
// 删除检测计划、标准设备关联
adPlanStandardDevService.deleteAdPlanStandardDev(ids);
// 删除检测配置
adPlanTestConfigService.remove(new LambdaQueryWrapper<AdPlanTestConfig>().in(AdPlanTestConfig::getPlanId, ids));
} else {
// 删除相关检测表格
List<String> codeList = this.listByIds(ids).stream().map(plan -> String.valueOf(plan.getCode())).collect(Collectors.toList());
@@ -1976,4 +2000,27 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
}
}
@Override
public boolean mergePlanCheckData(String planId) {
AdPlan plan = this.getById(planId);
if (!plan.getFatherPlanId().equals(CommonEnum.FATHER_ID.getValue())) {
throw new BusinessException(CommonResponseEnum.FAIL, "该计划非主计划");
}
Integer planCode = plan.getCode();
// 获取所有子计划
List<AdPlan> subPlanList = this.lambdaQuery().eq(AdPlan::getFatherPlanId, planId).list();
if (CollUtil.isEmpty(subPlanList)) {
throw new BusinessException(CommonResponseEnum.FAIL, "该计划未找到子计划");
}
// 获取所有子计划检测数据
List<Integer> subPlanCodeList = subPlanList.stream().map(AdPlan::getCode).collect(Collectors.toList());
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);
}
return false;
}
}

View File

@@ -0,0 +1,21 @@
package com.njcn.gather.plan.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.gather.plan.mapper.AdPlanTestConfigMapper;
import com.njcn.gather.plan.pojo.po.AdPlanTestConfig;
import com.njcn.gather.plan.service.IAdPlanTestConfigService;
import org.springframework.stereotype.Service;
/**
* @author stary
* @date 2025-08-25
*/
@Service
public class AdPlanTestConfigServiceImpl extends ServiceImpl<AdPlanTestConfigMapper, AdPlanTestConfig>
implements IAdPlanTestConfigService {
}