ADD:检测计划添加检测配置相关
This commit is contained in:
@@ -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);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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> {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.njcn.gather.plan.pojo.param;
|
package com.njcn.gather.plan.pojo.param;
|
||||||
|
|
||||||
import com.njcn.common.pojo.constant.PatternRegex;
|
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.gather.pojo.constant.DetectionValidMessage;
|
||||||
import com.njcn.web.pojo.param.BaseParam;
|
import com.njcn.web.pojo.param.BaseParam;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
@@ -71,7 +72,8 @@ public class AdPlanParam {
|
|||||||
@ApiModelProperty(value = "测试项ID列表")
|
@ApiModelProperty(value = "测试项ID列表")
|
||||||
private List<@Pattern(regexp = PatternRegex.SYSTEM_ID, message = DetectionValidMessage.SOURCE_ID_FORMAT_ERROR)String> testItems;
|
private List<@Pattern(regexp = PatternRegex.SYSTEM_ID, message = DetectionValidMessage.SOURCE_ID_FORMAT_ERROR)String> testItems;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "检测配置")
|
||||||
|
private AdPlanTestConfig testConfig;
|
||||||
/**
|
/**
|
||||||
* 分页查询实体
|
* 分页查询实体
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.njcn.gather.plan.pojo.vo;
|
package com.njcn.gather.plan.pojo.vo;
|
||||||
|
|
||||||
import com.njcn.gather.device.pojo.vo.PqDevVO;
|
import com.njcn.gather.device.pojo.vo.PqDevVO;
|
||||||
|
import com.njcn.gather.plan.pojo.po.AdPlanTestConfig;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
@@ -149,4 +150,6 @@ public class AdPlanVO {
|
|||||||
* 来源
|
* 来源
|
||||||
*/
|
*/
|
||||||
private String origin;
|
private String origin;
|
||||||
|
|
||||||
|
private AdPlanTestConfig testConfig;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -204,6 +204,12 @@ public interface IAdPlanService extends IService<AdPlan> {
|
|||||||
* @param response
|
* @param response
|
||||||
*/
|
*/
|
||||||
boolean importSubPlanCheckDataZip(MultipartFile file, String patternId, HttpServletResponse response);
|
boolean importSubPlanCheckDataZip(MultipartFile file, String patternId, HttpServletResponse response);
|
||||||
|
/**
|
||||||
|
* 合并计划检测结果数据
|
||||||
|
*
|
||||||
|
* @param planId
|
||||||
|
*/
|
||||||
|
boolean mergePlanCheckData(String planId);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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.param.AdPlanParam;
|
||||||
import com.njcn.gather.plan.pojo.po.AdPlan;
|
import com.njcn.gather.plan.pojo.po.AdPlan;
|
||||||
import com.njcn.gather.plan.pojo.po.AdPlanStandardDev;
|
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.pojo.vo.*;
|
||||||
import com.njcn.gather.plan.service.IAdPlanService;
|
import com.njcn.gather.plan.service.IAdPlanService;
|
||||||
import com.njcn.gather.plan.service.IAdPlanSourceService;
|
import com.njcn.gather.plan.service.IAdPlanSourceService;
|
||||||
import com.njcn.gather.plan.service.IAdPlanStandardDevService;
|
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.pojo.enums.DetectionResponseEnum;
|
||||||
import com.njcn.gather.report.pojo.po.PqReport;
|
import com.njcn.gather.report.pojo.po.PqReport;
|
||||||
import com.njcn.gather.report.service.IPqReportService;
|
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 IPqStandardDevService pqStandardDevService;
|
||||||
private final IPqIcdPathService pqIcdPathService;
|
private final IPqIcdPathService pqIcdPathService;
|
||||||
private final IAdPariService adPairService;
|
private final IAdPariService adPairService;
|
||||||
|
private final IAdPlanTestConfigService adPlanTestConfigService;
|
||||||
|
|
||||||
private final JdbcTemplate jdbcTemplate;
|
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(""));
|
adPlanVO.setStandardDevNameStr(pqStandardDevs.stream().map(PqStandardDev::getName).reduce((a, b) -> a + "," + b).orElse(""));
|
||||||
|
|
||||||
if (CommonEnum.FATHER_ID.getValue().equals(adPlan.getFatherPlanId())) {
|
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<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());
|
List<String> childrenPlanIds = childrenPlan.stream().map(AdPlan::getId).collect(Collectors.toList());
|
||||||
if (CollUtil.isNotEmpty(childrenPlanIds)) {
|
if (CollUtil.isNotEmpty(childrenPlanIds)) {
|
||||||
@@ -217,6 +223,10 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
|
|||||||
Map<String, Integer> standardDevIds = adPlanVO.getStandardDevMap();
|
Map<String, Integer> standardDevIds = adPlanVO.getStandardDevMap();
|
||||||
standardDevIds.putAll(pqStandardDevs.stream().collect(Collectors.toMap(PqStandardDev::getId, obj -> 1)));
|
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(""));
|
// 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.setDatasourceId(String.join(StrUtil.COMMA, param.getDatasourceIds()));
|
||||||
|
|
||||||
adPlan.setState(DataStateEnum.ENABLE.getCode());
|
adPlan.setState(DataStateEnum.ENABLE.getCode());
|
||||||
|
boolean addTestConfig = true;
|
||||||
if (StrUtil.isBlank(param.getFatherPlanId())) {
|
if (StrUtil.isBlank(param.getFatherPlanId())) {
|
||||||
// 默认为顶级检测计划
|
// 默认为顶级检测计划
|
||||||
adPlan.setFatherPlanId(CommonEnum.FATHER_ID.getValue());
|
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 plan = this.getById(param.getFatherPlanId());
|
||||||
adPlan.setFatherPlanId(param.getFatherPlanId());
|
adPlan.setFatherPlanId(param.getFatherPlanId());
|
||||||
adPlan.setOrigin(plan.getName());
|
adPlan.setOrigin(plan.getName());
|
||||||
|
addTestConfig = false;
|
||||||
}
|
}
|
||||||
adPlan.setTestState(CheckStateEnum.UNCHECKED.getValue());
|
adPlan.setTestState(CheckStateEnum.UNCHECKED.getValue());
|
||||||
adPlan.setReportState(PlanReportStateEnum.REPORT_STATE_NOT_GENERATED.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.deleteAdPlanStandardDev(param.getFatherPlanId(), param.getStandardDevIds());
|
||||||
adPlanStandardDevService.addAdPlanStandardDev(planId, param.getStandardDevIds());
|
adPlanStandardDevService.addAdPlanStandardDev(planId, param.getStandardDevIds());
|
||||||
}
|
}
|
||||||
|
if (addTestConfig) {
|
||||||
|
// 添加检测配置
|
||||||
|
AdPlanTestConfig testConfig = param.getTestConfig();
|
||||||
|
testConfig.setPlanId(planId);
|
||||||
|
adPlanTestConfigService.save(testConfig);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// 关联检测源
|
// 关联检测源
|
||||||
adPlanSourceService.addAdPlanSource(planId, param.getSourceIds());
|
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());
|
List<String> devIds = pqDevVOList.stream().map(PqDevVO::getId).collect(Collectors.toList());
|
||||||
param.getDevIds().removeAll(devIds);
|
param.getDevIds().removeAll(devIds);
|
||||||
|
// 更新检测配置
|
||||||
|
AdPlanTestConfig testConfig = param.getTestConfig();
|
||||||
|
adPlanTestConfigService.update(testConfig,new LambdaUpdateWrapper<AdPlanTestConfig>().eq(AdPlanTestConfig::getPlanId, testConfig.getPlanId()));
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// 修改检测计划、检测源关联
|
// 修改检测计划、检测源关联
|
||||||
adPlanSourceService.updateAdPlanSource(param.getId(), param.getSourceIds());
|
adPlanSourceService.updateAdPlanSource(param.getId(), param.getSourceIds());
|
||||||
@@ -400,6 +421,7 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
|
|||||||
this.lambdaUpdate().in(AdPlan::getFatherPlanId, plan1.getId()).eq(AdPlan::getState, DataStateEnum.ENABLE.getCode())
|
this.lambdaUpdate().in(AdPlan::getFatherPlanId, plan1.getId()).eq(AdPlan::getState, DataStateEnum.ENABLE.getCode())
|
||||||
.set(AdPlan::getOrigin, param.getName()).update();
|
.set(AdPlan::getOrigin, param.getName()).update();
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.updateById(plan2);
|
return this.updateById(plan2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -423,6 +445,8 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
|
|||||||
|
|
||||||
// 删除检测计划、标准设备关联
|
// 删除检测计划、标准设备关联
|
||||||
adPlanStandardDevService.deleteAdPlanStandardDev(ids);
|
adPlanStandardDevService.deleteAdPlanStandardDev(ids);
|
||||||
|
// 删除检测配置
|
||||||
|
adPlanTestConfigService.remove(new LambdaQueryWrapper<AdPlanTestConfig>().in(AdPlanTestConfig::getPlanId, ids));
|
||||||
} else {
|
} else {
|
||||||
// 删除相关检测表格
|
// 删除相关检测表格
|
||||||
List<String> codeList = this.listByIds(ids).stream().map(plan -> String.valueOf(plan.getCode())).collect(Collectors.toList());
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user