脚本详情项禁用后,该脚本详情项的结果不参与装置的检测结果

This commit is contained in:
caozehui
2025-03-11 15:31:26 +08:00
parent c60d41af10
commit 708a4e6fbd
4 changed files with 63 additions and 44 deletions

View File

@@ -37,8 +37,8 @@ import com.njcn.gather.script.service.IPqScriptDtlsService;
import com.njcn.gather.script.service.IPqScriptService;
import com.njcn.gather.source.pojo.po.PqSource;
import com.njcn.gather.source.service.IPqSourceService;
import com.njcn.gather.storage.mapper.DetectionDataDealMapper;
import com.njcn.gather.storage.pojo.param.StorageParam;
import com.njcn.gather.storage.pojo.po.AdBaseResult;
import com.njcn.gather.storage.service.AdHarmonicService;
import com.njcn.gather.storage.service.AdNonHarmonicService;
import com.njcn.gather.storage.service.TableGenService;
@@ -95,7 +95,6 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
private final ISysTestConfigService sysTestConfigService;
private final IDevTypeService devTypeService;
private final IDictTypeService dictTypeService;
private final AdNonHarmonicService adNonHarmonicService;
private final AdHarmonicService adHarmonicService;
@Override
@@ -382,7 +381,7 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
StorageParam storageParam = new StorageParam();
storageParam.setCode(Integer.valueOf(adPlan.getCode()));
storageParam.setScriptId(adPlan.getScriptId());
List<Integer> indexes = adHarmonicService.getIndex(storageParam,true);
List<Integer> indexes = adHarmonicService.getIndex(storageParam, true);
scriptDtlsList = scriptDtlsList.stream().filter(obj -> indexes.contains(obj.getScriptIndex())).collect(Collectors.toList());
}

View File

@@ -3,9 +3,17 @@ package com.njcn.gather.storage.mapper;
import com.njcn.db.mybatisplus.mapper.BatchBaseMapper;
import com.njcn.gather.storage.pojo.po.AdHarmonicResult;
import java.util.List;
public interface DetectionDataDealMapper extends BatchBaseMapper<AdHarmonicResult> {
/**
* 根据设备ID查询禁用的脚本详情索引
*
* @param devId
* @return
*/
List<Integer> listDisabledScriptDtlIndexs(String devId);

View File

@@ -3,6 +3,14 @@
<mapper namespace="com.njcn.gather.storage.mapper.DetectionDataDealMapper">
<select id="listDisabledScriptDtlIndexs" resultType="java.lang.Integer">
select distinct dtls.Script_Index
from pq_script_dtls dtls
inner join ad_plan plan on dtls.Script_Id = plan.Script_Id
inner join pq_dev dev on dev.Plan_Id = plan.id
where dev.id = #{devId}
and dev.State = 1
and dtls.Enable = 0
</select>
</mapper>

View File

@@ -26,6 +26,7 @@ import java.util.stream.Collectors;
public class DetectionDataServiceImpl extends ReplenishMybatisServiceImpl<DetectionDataDealMapper, AdHarmonicResult> implements DetectionDataDealService {
private final AdNonHarmonicService adNonHarmonicService;
private final DetectionDataDealMapper detectionDataDealMapper;
@Override
@@ -34,10 +35,10 @@ public class DetectionDataServiceImpl extends ReplenishMybatisServiceImpl<Detect
String adNonTable = "ad_non_harmonic_";
DynamicTableNameHandler.setTableName(adNonTable + code);
List<String> monitorIds = adNonHarmonicResultList.stream().map(AdNonHarmonicResult::getMonitorId).distinct().collect(Collectors.toList());
if(CollUtil.isNotEmpty(monitorIds)){
if (CollUtil.isNotEmpty(monitorIds)) {
adNonHarmonicService.remove(new LambdaQueryWrapper<AdNonHarmonicResult>().in(AdNonHarmonicResult::getMonitorId, monitorIds)
.eq(AdNonHarmonicResult::getScriptId,adNonHarmonicResultList.get(0).getScriptId())
.eq(AdNonHarmonicResult::getSort,adNonHarmonicResultList.get(0).getSort()));
.eq(AdNonHarmonicResult::getScriptId, adNonHarmonicResultList.get(0).getScriptId())
.eq(AdNonHarmonicResult::getSort, adNonHarmonicResultList.get(0).getSort()));
adNonHarmonicService.saveBatch(adNonHarmonicResultList, 100);
}
DynamicTableNameHandler.remove();
@@ -50,10 +51,10 @@ public class DetectionDataServiceImpl extends ReplenishMybatisServiceImpl<Detect
String adTable = "ad_harmonic_";
DynamicTableNameHandler.setTableName(adTable + code);
List<String> monitorIds = adHarmonicResultList.stream().map(AdHarmonicResult::getMonitorId).distinct().collect(Collectors.toList());
if(CollUtil.isNotEmpty(monitorIds)){
if (CollUtil.isNotEmpty(monitorIds)) {
this.remove(new LambdaQueryWrapper<AdHarmonicResult>().in(AdHarmonicResult::getMonitorId, monitorIds)
.eq(AdHarmonicResult::getScriptId,adHarmonicResultList.get(0).getScriptId())
.eq(AdHarmonicResult::getSort,adHarmonicResultList.get(0).getSort()));
.eq(AdHarmonicResult::getScriptId, adHarmonicResultList.get(0).getScriptId())
.eq(AdHarmonicResult::getSort, adHarmonicResultList.get(0).getSort()));
this.saveBatch(adHarmonicResultList, 100);
}
@@ -67,10 +68,10 @@ public class DetectionDataServiceImpl extends ReplenishMybatisServiceImpl<Detect
String adNonTableResult = "ad_non_harmonic_result_";
DynamicTableNameHandler.setTableName(adNonTableResult + code);
List<String> monitorIds = adNonHarmonicResultList.stream().map(AdNonHarmonicResult::getMonitorId).distinct().collect(Collectors.toList());
if(CollUtil.isNotEmpty(monitorIds)){
if (CollUtil.isNotEmpty(monitorIds)) {
adNonHarmonicService.remove(new LambdaQueryWrapper<AdNonHarmonicResult>().in(AdNonHarmonicResult::getMonitorId, monitorIds)
.eq(AdNonHarmonicResult::getScriptId,adNonHarmonicResultList.get(0).getScriptId())
.eq(AdNonHarmonicResult::getSort,adNonHarmonicResultList.get(0).getSort()));
.eq(AdNonHarmonicResult::getScriptId, adNonHarmonicResultList.get(0).getScriptId())
.eq(AdNonHarmonicResult::getSort, adNonHarmonicResultList.get(0).getSort()));
adNonHarmonicService.saveBatch(adNonHarmonicResultList, 100);
}
DynamicTableNameHandler.remove();
@@ -83,10 +84,10 @@ public class DetectionDataServiceImpl extends ReplenishMybatisServiceImpl<Detect
String adTableResult = "ad_harmonic_result_";
DynamicTableNameHandler.setTableName(adTableResult + code);
List<String> monitorIds = adHarmonicResultList.stream().map(AdHarmonicResult::getMonitorId).distinct().collect(Collectors.toList());
if(CollUtil.isNotEmpty(monitorIds)){
if (CollUtil.isNotEmpty(monitorIds)) {
this.remove(new LambdaQueryWrapper<AdHarmonicResult>().in(AdHarmonicResult::getMonitorId, monitorIds)
.eq(AdHarmonicResult::getScriptId,adHarmonicResultList.get(0).getScriptId())
.eq(AdHarmonicResult::getSort,adHarmonicResultList.get(0).getSort()));
.eq(AdHarmonicResult::getScriptId, adHarmonicResultList.get(0).getScriptId())
.eq(AdHarmonicResult::getSort, adHarmonicResultList.get(0).getSort()));
this.saveBatch(adHarmonicResultList, 100);
}
DynamicTableNameHandler.remove();
@@ -94,59 +95,62 @@ public class DetectionDataServiceImpl extends ReplenishMybatisServiceImpl<Detect
}
@Override
public Map<String, Integer> devResult(List<String> ids,List<String> valueType,String code) {
List<AdNonHarmonicResult> noHarm=new ArrayList<>();
public Map<String, Integer> devResult(List<String> ids, List<String> valueType, String code) {
List<Integer> disabledScriptDtlIndexs = detectionDataDealMapper.listDisabledScriptDtlIndexs(ids.get(0));
List<AdNonHarmonicResult> noHarm = new ArrayList<>();
for (String id : ids) {
DynamicTableNameHandler.setTableName("ad_non_harmonic_result_" + code);
noHarm.addAll(adNonHarmonicService.list( new LambdaQueryWrapper<AdNonHarmonicResult>()
.like(AdNonHarmonicResult::getMonitorId,id)
.in(CollUtil.isNotEmpty(valueType),AdNonHarmonicResult::getAdType,valueType)
)) ;
noHarm.addAll(adNonHarmonicService.list(new LambdaQueryWrapper<AdNonHarmonicResult>()
.like(AdNonHarmonicResult::getMonitorId, id)
.notIn(CollUtil.isNotEmpty(disabledScriptDtlIndexs), AdNonHarmonicResult::getSort, disabledScriptDtlIndexs)
.in(CollUtil.isNotEmpty(valueType), AdNonHarmonicResult::getAdType, valueType)
));
}
DynamicTableNameHandler.remove();
List<AdHarmonicResult> harm=new ArrayList<>();
List<AdHarmonicResult> harm = new ArrayList<>();
for (String id : ids) {
DynamicTableNameHandler.setTableName("ad_harmonic_result_" + code);
harm.addAll(this.list( new LambdaQueryWrapper<AdHarmonicResult>()
.like(AdHarmonicResult::getMonitorId,id)
.in(CollUtil.isNotEmpty(valueType),AdHarmonicResult::getAdType,valueType)
)) ;
harm.addAll(this.list(new LambdaQueryWrapper<AdHarmonicResult>()
.like(AdHarmonicResult::getMonitorId, id)
.notIn(CollUtil.isNotEmpty(disabledScriptDtlIndexs), AdHarmonicResult::getSort, disabledScriptDtlIndexs)
.in(CollUtil.isNotEmpty(valueType), AdHarmonicResult::getAdType, valueType)
));
}
DynamicTableNameHandler.remove();
Map<String, List<Integer>> noHarmMap = noHarm.stream().collect(Collectors.groupingBy(x -> x.getMonitorId().split("_")[0],
Collectors.mapping(AdNonHarmonicResult::getResultFlag, Collectors.toList())));
Map<String, List<Integer>> harmMap = harm.stream().collect(Collectors.groupingBy(x -> x.getMonitorId().split("_")[0],
Collectors.mapping(AdHarmonicResult::getResultFlag, Collectors.toList())));
Map<String, Integer> map=new HashMap<>(2);
Map<String, Integer> map = new HashMap<>(2);
for (String id : ids) {
List<Integer> resultFlags=new ArrayList<>();
if(noHarmMap.containsKey(id)){
List<Integer> resultFlags = new ArrayList<>();
if (noHarmMap.containsKey(id)) {
resultFlags.addAll(noHarmMap.get(id));
}
if(harmMap.containsKey(id)){
if (harmMap.containsKey(id)) {
resultFlags.addAll(harmMap.get(id));
}
map.put(id,isResultFlag(resultFlags));
map.put(id, isResultFlag(resultFlags));
}
return map;
}
private static Integer isResultFlag(List<Integer> resultFlags) {
// 检测结果0:不符合 1:符合 2:/[未检测无结果])
// 检测结果0:不符合 1:符合 2:/[未检测无结果])
//脚本结果是 1.符合 2.不符合 4.未检测无结果
resultFlags = resultFlags.stream().filter(x->4!=x).distinct().collect(Collectors.toList());
resultFlags = resultFlags.stream().filter(x -> 4 != x).distinct().collect(Collectors.toList());
if (CollUtil.isNotEmpty(resultFlags)) {
if (resultFlags.contains(2)) {
if (resultFlags.contains(2)) {
return 0;
}else{
switch (resultFlags.get(0)){
case 1:
return 1;
case 2:
return 0;
} else {
switch (resultFlags.get(0)) {
case 1:
return 1;
case 2:
return 0;
}
}
}
}
}
return 1;
}