录波功能完善

This commit is contained in:
caozehui
2025-09-10 08:26:35 +08:00
parent 2121a293cb
commit 694f12bc29
24 changed files with 245 additions and 130 deletions

View File

@@ -1013,6 +1013,7 @@ public class SocketContrastResponseService {
webSend.setCode(SourceResponseCodeEnum.ALL_SUCCESS.getCode());//最终成功推送
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSend));
// 修改设备状态
pqDevService.updateResult(true, param.getDevIds(), adTypes, code, param.getUserId(), param.getTemperature(), param.getHumidity());
}
}
@@ -1121,7 +1122,7 @@ public class SocketContrastResponseService {
FormalTestManager.pairsIpMap,
FormalTestManager.devIdMapComm,
FormalTestManager.testItemMap.keySet().stream().collect(Collectors.toList()),
errorSysId, DictDataEnum.Own_value, FormalTestManager.numMap, code, FormalTestManager.waveNum);
errorSysId, FormalTestManager.dataRule, FormalTestManager.numMap, code, FormalTestManager.waveNum);
Map<String, List<DevLineTestResult>> deviceIdMap = allResultList.stream().collect(Collectors.groupingBy(DevLineTestResult::getDeviceId, Collectors.toList()));
deviceIdMap.forEach((deviceId, devLineTestResultList) -> {
@@ -1190,7 +1191,7 @@ public class SocketContrastResponseService {
List<String> adTypes = FormalTestManager.testItemMap.values().stream().collect(Collectors.toList());
// 修改设备状态
pqDevService.updateResult(true, param.getDevIds(), adTypes, code, param.getUserId(), param.getTemperature(), param.getHumidity());
//pqDevService.updateResult(true, param.getDevIds(), adTypes, code, param.getUserId(), param.getTemperature(), param.getHumidity());
// 最终将检测结果推送到前端
webSend.setCode(SourceResponseCodeEnum.ALL_SUCCESS.getCode());
@@ -2177,7 +2178,8 @@ public class SocketContrastResponseService {
WaveCommandDTO waveCommandDTO = new WaveCommandDTO();
waveCommandDTO.setIp(preDetection.getDevIP());
waveCommandDTO.setPort(preDetection.getPort());
waveCommandDTO.setOper("RDRE1$CO$RcdTrg$Oper");
waveCommandDTO.setOper(preDetection.getWaveCmd());
// waveCommandDTO.setOper("RDRE1$CO$RcdTrg$Oper");
waveCommandDTO.setLine(monitorListDTO.getLine());
waveCommandDTOList.add(waveCommandDTO);
});
@@ -2187,7 +2189,8 @@ public class SocketContrastResponseService {
WaveCommandDTO waveCommandDTO = new WaveCommandDTO();
waveCommandDTO.setIp(preDetection.getDevIP());
waveCommandDTO.setPort(preDetection.getPort());
waveCommandDTO.setOper("RDRE1$CO$RcdTrg$Oper");
waveCommandDTO.setOper(preDetection.getWaveCmd());
// waveCommandDTO.setOper("RDRE1$CO$RcdTrg$Oper");
waveCommandDTO.setLine(monitorListDTO.getLine());
waveCommandDTOList.add(waveCommandDTO);
});
@@ -2199,12 +2202,12 @@ public class SocketContrastResponseService {
}
private List<List<DevData>> analyzeWaveFile(WaveResultDTO devWaveResultDTO, WaveResultDTO stdDevWaveResultDTO, PreDetection.MonitorListDTO monitorListDTO, String devMonitorId, String stdDevMonitorId, List<String> adTypeCodeList) {
// String stdDevCfgPath = stdDevWaveResultDTO.getPath().replaceAll("\\\\", "/").replace(".CFG",".cfg");
// String devCfgPath = devWaveResultDTO.getPath().replaceAll("\\\\", "/").replace(".CFG",".cfg");
String stdDevCfgPath = stdDevWaveResultDTO.getPath().replaceAll("\\\\", "/").replace(".CFG", ".cfg");
String devCfgPath = devWaveResultDTO.getPath().replaceAll("\\\\", "/").replace(".CFG", ".cfg");
String stdDevCfgPath = "D:\\数据比对\\统计数据1\\B码\\216\\PQMonitor_PQM1_000001_20200430_113404_845.cfg";
// String stdDevCfgPath = "D:\\数据比对\\统计数据1\\B码\\216\\PQMonitor_PQM1_000001_20200430_113404_845.cfg";
String stdDevDatPath = stdDevCfgPath.replaceAll(".cfg", ".dat");
String devCfgPath = "D:\\数据比对\\统计数据1\\B码\\217\\PQMonitor_PQM1_000001_20200430_113407_075.cfg";
// String devCfgPath = "D:\\数据比对\\统计数据1\\B码\\217\\PQMonitor_PQM1_000001_20200430_113407_075.cfg";
String devDatPath = devCfgPath.replaceAll(".cfg", ".dat");
// 验证文件是否存在
@@ -2297,16 +2300,16 @@ public class SocketContrastResponseService {
String code = adTypeCode.replace(DetectionCodeEnum.REAL_PREFIX.getCode(), "");
DetectionCodeEnum detectionCodeEnum = DetectionCodeEnum.getDetectionCodeByCode(code);
switch (detectionCodeEnum) {
case FREQ:
// 频率
sqlDataDTO = new DevData.SqlDataDTO();
sqlDataDTO.setDesc(DetectionCodeEnum.FREQ.getCode());
sqlDataDTO.setType("real");
listDTO = new DevData.SqlDataDTO.ListDTO();
listDTO.setT((double) pointDevData.getFreq()[0]);
sqlDataDTO.setList(listDTO);
sqlDataDTOS.add(sqlDataDTO);
break;
// case FREQ:
// // 频率
// sqlDataDTO = new DevData.SqlDataDTO();
// sqlDataDTO.setDesc(DetectionCodeEnum.FREQ.getCode());
// sqlDataDTO.setType("real");
// listDTO = new DevData.SqlDataDTO.ListDTO();
// listDTO.setT((double) pointDevData.getFreq()[0]);
// sqlDataDTO.setList(listDTO);
// sqlDataDTOS.add(sqlDataDTO);
// break;
case VRMS:
// 相电压有效值
sqlDataDTO = new DevData.SqlDataDTO();
@@ -2407,9 +2410,9 @@ public class SocketContrastResponseService {
sqlDataDTO.setDesc(DetectionCodeEnum.I1.getCode());
sqlDataDTO.setType("real");
listDTO = new DevData.SqlDataDTO.ListDTO();
listDTO.setA((double) pointDevData.getFuHarm()[3][0]);
listDTO.setB((double) pointDevData.getFuHarm()[4][0]);
listDTO.setC((double) pointDevData.getFuHarm()[5][0]);
listDTO.setA((double) pointDevData.getInHarm()[3][0]);
listDTO.setB((double) pointDevData.getInHarm()[4][0]);
listDTO.setC((double) pointDevData.getInHarm()[5][0]);
sqlDataDTO.setList(listDTO);
sqlDataDTOS.add(sqlDataDTO);
@@ -2496,6 +2499,16 @@ public class SocketContrastResponseService {
case PSV_1_49:
break;
case SI_1_49:
sqlDataDTO = new DevData.SqlDataDTO();
sqlDataDTO.setDesc(DetectionCodeEnum.I1.getCode());
sqlDataDTO.setType("real");
listDTO = new DevData.SqlDataDTO.ListDTO();
listDTO.setA((double) pointDevData.getInHarm()[3][0]);
listDTO.setB((double) pointDevData.getInHarm()[4][0]);
listDTO.setC((double) pointDevData.getInHarm()[5][0]);
sqlDataDTO.setList(listDTO);
sqlDataDTOS.add(sqlDataDTO);
// 间谐波电流幅值
sqlDataHarmDTOI = new DevData.SqlDataHarmDTO();
sqlDataHarmDTOI.setDesc(DetectionCodeEnum.SI_1_49.getCode());
@@ -2507,7 +2520,7 @@ public class SocketContrastResponseService {
cListI = new ArrayList<>();
// 前50次间谐波
for (int harm = 0; harm < 50; harm++) {
for (int harm = 1; harm < 51; harm++) {
// 间谐波电流
aListI.add(String.format("%.7f", pointDevData.getInHarm()[3][harm]));
bListI.add(String.format("%.7f", pointDevData.getInHarm()[4][harm]));

View File

@@ -1150,6 +1150,9 @@ public class DetectionServiceImpl {
break;
case AVG_VALUE:
newValue.addAll(DetectionUtil.getAvgDoubles(value));
case Own_value:
case AT_WILL_VALUE:
newValue.addAll(value);
break;
}
value.clear();

View File

@@ -7,15 +7,14 @@ import com.alibaba.fastjson.JSONObject;
import com.njcn.gather.detection.pojo.param.ContrastDetectionParam;
import com.njcn.gather.detection.pojo.param.PreDetectionParam;
import com.njcn.gather.detection.util.socket.cilent.NettyClient;
import com.njcn.gather.detection.util.socket.cilent.NettyContrastClientHandler;
import com.njcn.gather.detection.util.socket.config.SocketConnectionConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.njcn.gather.plan.pojo.enums.DataSourceEnum;
import com.njcn.gather.script.pojo.po.SourceIssue;
import io.netty.channel.Channel;
import io.netty.channel.nio.NioEventLoopGroup;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.HashMap;
@@ -28,7 +27,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
/**
* Socket连接管理器
* 提供Socket连接的生命周期管理、消息发送、检测任务管理等功能
*
* <p>
* 包含以下主要功能:
* 1. 基础连接管理addUser, removeUser, sendMsg等
* 2. 智能消息发送smartSendToSource, smartSendToDevice等新增
@@ -188,6 +187,13 @@ public class SocketManager {
NettyClient.connectToContrastDeviceStatic(ip, port, param, msg);
});
return;
} else {
PreDetectionParam preDetectionParam = new PreDetectionParam();
preDetectionParam.setUserPageId(param.getLoginName());
preDetectionParam.setTestItemList(param.getTestItemList());
preDetectionParam.setDevIds(param.getDevIds());
preDetectionParam.setUserId(param.getUserId());
NettyContrastClientHandler.param = preDetectionParam;
}
}
@@ -197,8 +203,6 @@ public class SocketManager {
}
// =================== 私有工具方法 ===================
/**
@@ -279,7 +283,6 @@ public class SocketManager {
public static volatile Map<DataSourceEnum, Long> contrastClockMap = new ConcurrentHashMap<>();
public static void addSourceList(List<SourceIssue> sList) {
sourceIssueList = sList;
}
@@ -311,6 +314,5 @@ public class SocketManager {
}
}

View File

@@ -128,7 +128,9 @@ public class NettyClient {
preDetectionParam.setTestItemList(param.getTestItemList());
preDetectionParam.setDevIds(param.getDevIds());
preDetectionParam.setUserId(param.getUserId());
NettyContrastClientHandler handler = new NettyContrastClientHandler(preDetectionParam, socketContrastResponseService);
NettyContrastClientHandler handler = new NettyContrastClientHandler();
handler.param = preDetectionParam;
handler.socketContrastResponseService = socketContrastResponseService;
executeSocketConnection(ip, port, preDetectionParam, msg, handler);
}

View File

@@ -36,8 +36,8 @@ import java.util.Objects;
public class NettyContrastClientHandler extends SimpleChannelInboundHandler<String> {
private final PreDetectionParam param;
private final SocketContrastResponseService socketContrastResponseService;
public static PreDetectionParam param;
public static SocketContrastResponseService socketContrastResponseService;
@Override
public void channelActive(ChannelHandlerContext ctx) throws Exception {

View File

@@ -374,9 +374,11 @@ public class WebSocketHandler extends SimpleChannelInboundHandler<TextWebSocketF
if (FormalTestManager.patternEnum.equals(PatternEnum.CONTRAST)) {
if (!FormalTestManager.isRemoveSocket) {
if (FormalTestManager.currentStep == SourceOperateCodeEnum.RECORD_WAVE_STEP1 || FormalTestManager.currentStep == SourceOperateCodeEnum.RECORD_WAVE_STEP2) {
CnSocketUtil.contrastSendquit(preDetectionParam.getUserPageId(), SourceOperateCodeEnum.DEV_INIT_GATHER_03, true);
CnSocketUtil.contrastSendquit(preDetectionParam.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_03, true);
} else if (FormalTestManager.currentStep != SourceOperateCodeEnum.QUITE) {
CnSocketUtil.contrastSendquit(preDetectionParam.getUserPageId(), SourceOperateCodeEnum.DEV_INIT_GATHER_02, true);
CnSocketUtil.contrastSendquit(preDetectionParam.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_02, true);
} else {
SocketManager.removeUser(preDetectionParam.getUserPageId());
}
} else {
boolean channelActive = SocketManager.isChannelActive(preDetectionParam.getUserPageId() + CnSocketUtil.CONTRAST_DEV_TAG);

View File

@@ -17,6 +17,7 @@
<result column="Dev_Curr" property="devCurr"/>
<result column="Angle" property="angle"/>
<result column="Use_Phase_Index" property="usePhaseIndex"/>
<result column="Wave_Cmd" property="waveCmd"/>
<collection
property="monitorList"
@@ -39,7 +40,8 @@
t.Dev_Volt,
t.Dev_Curr,
p.Angle,
p.Use_Phase_Index
p.Use_Phase_Index,
t.Wave_Cmd
FROM
pq_dev d
inner join pq_dev_type t on d.Dev_Type = t.id

View File

@@ -17,6 +17,7 @@
<result column="Dev_Curr" property="devCurr"/>
<result column="Angle" property="angle"/>
<result column="Use_Phase_Index" property="usePhaseIndex"/>
<result column="Wave_Cmd" property="waveCmd"/>
</resultMap>
<select id="listStandardDevPreDetection" resultMap="standardDevResultMap">
@@ -33,7 +34,8 @@
dev_type.Dev_Volt,
dev_type.Dev_Curr,
icd_path.Angle,
icd_path.Use_Phase_Index
icd_path.Use_Phase_Index,
dev_type.Wave_Cmd
from pq_standard_dev standard_dev
inner join pq_dev_type dev_type on standard_dev.Dev_Type = dev_type.id
inner join pq_icd_path icd_path on dev_type.icd = icd_path.id

View File

@@ -50,21 +50,6 @@ public class PqDevSub {
*/
private Integer factorCheckResult;
/**
* 实时数据结果 0:不合格1:合格2未检
*/
private Integer realtimeResult;
/**
* 统计数据结果 0:不合格1:合格2未检
*/
private Integer statisticsResult;
/**
* 录波数据结果 0:不合格1:合格2未检
*/
private Integer recordedResult;
/**
* 检测人
*/

View File

@@ -84,6 +84,9 @@ public class PreDetection {
private Double devVolt;
private Double devCurr;
@JSONField(serialize = false)
private String waveCmd;
/**
* 监测点信息
*/

View File

@@ -62,5 +62,20 @@ public class PqMonitor implements Serializable {
* 谐波系统监测点id
*/
private String harmSysId;
/**
* 实时数据结果 0:不合格1:合格2未检
*/
private Integer realtimeResult;
/**
* 统计数据结果 0:不合格1:合格2未检
*/
private Integer statisticsResult;
/**
* 录波数据结果 0:不合格1:合格2未检
*/
private Integer recordedResult;
}

View File

@@ -175,7 +175,7 @@ public class AdPlanController extends BaseController {
public HttpResult<List<Map<String, String>>> getBigTestItem(@RequestBody AdPlanParam.CheckParam checkParam) {
String methodDescribe = getMethodDescribe("getBigTestItem");
LogUtil.njcnDebug(log, "{},查询数据为:{}", methodDescribe, checkParam);
List<Map<String, String>> result = adPlanService.getBigTestItem(checkParam.getReCheckType(), checkParam.getPlanId(), checkParam.getDevIds(), checkParam.getPatternId());
List<Map<String, String>> result = adPlanService.getBigTestItem(checkParam.getReCheckType(), checkParam.getPlanId(), checkParam.getDevIds(), checkParam.getPatternId(),checkParam.getScriptType());
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}

View File

@@ -128,5 +128,6 @@ public class AdPlanParam {
private String planId;
private List<String> devIds;
private String patternId;
private String scriptType;
}
}

View File

@@ -73,9 +73,10 @@ public interface IAdPlanService extends IService<AdPlan> {
* @param planId 检测计划Id
* @param devIds 设备Id列表
* @param patternId 模式Id
* @param scriptType 脚本类型
* @return
*/
List<Map<String, String>> getBigTestItem(Integer reCheckType, String planId, List<String> devIds, String patternId);
List<Map<String, String>> getBigTestItem(Integer reCheckType, String planId, List<String> devIds, String patternId, String scriptType);
/**
* 修改计划状态
@@ -214,5 +215,4 @@ public interface IAdPlanService extends IService<AdPlan> {
*/
boolean mergePlanCheckData(String planId);
}

View File

@@ -591,7 +591,7 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
}
@Override
public List<Map<String, String>> getBigTestItem(Integer reCheckType, String planId, List<String> devIds, String patternId) {
public List<Map<String, String>> getBigTestItem(Integer reCheckType, String planId, List<String> devIds, String patternId, String scriptType) {
List<Map<String, String>> result = new ArrayList<>();
AdPlan adPlan = this.getById(planId);
if (ObjectUtil.isNull(adPlan)) {
@@ -609,14 +609,15 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
map.put("scriptName", dictTree.getName());
result.add(map);
}
if (StrUtil.isBlank(scriptType)) {
if (adPlan.getDatasourceId().contains(DataSourceEnum.WAVE_DATA.getValue())) {
Map<String, String> map = new HashMap<>();
map.put("id", "wave_data");
map.put("id", DataSourceEnum.WAVE_DATA.getValue());
map.put("code", DataSourceEnum.WAVE_DATA.getValue());
map.put("scriptName", DataSourceEnum.WAVE_DATA.getMsg());
result.add(map);
}
}
} else {
String scriptId = adPlan.getScriptId();
List<PqScriptDtls> scriptDtlsList = pqScriptDtlsService.listPqScriptDtlByScriptId(scriptId);

View File

@@ -66,6 +66,14 @@ public class ResultParam {
// 第几次检测
private Integer num;
// 第几次波形
private Integer waveNum;
private Boolean isWave;
// 模式id
private String patternId;
}
@Data

View File

@@ -31,4 +31,9 @@ public class FormContentVO {
* 选中的第几次
*/
private Integer checkNum;
/**
* 有多少次波形录制
*/
private Integer waveNumTotal;
}

View File

@@ -30,8 +30,11 @@ import com.njcn.gather.device.pojo.enums.CommonEnum;
import com.njcn.gather.device.pojo.enums.PatternEnum;
import com.njcn.gather.device.pojo.po.PqDev;
import com.njcn.gather.device.service.IPqDevService;
import com.njcn.gather.plan.pojo.enums.DataSourceEnum;
import com.njcn.gather.plan.pojo.po.AdPlan;
import com.njcn.gather.plan.pojo.po.AdPlanTestConfig;
import com.njcn.gather.plan.service.IAdPlanService;
import com.njcn.gather.plan.service.IAdPlanTestConfigService;
import com.njcn.gather.pojo.enums.DetectionResponseEnum;
import com.njcn.gather.report.pojo.constant.PowerConstant;
import com.njcn.gather.report.pojo.enums.AffectEnum;
@@ -95,6 +98,7 @@ import java.util.stream.Stream;
public class ResultServiceImpl implements IResultService {
private final IAdPlanService adPlanService;
private final IAdPlanTestConfigService adPlanTestConfigService;
private final IPqDevService pqDevService;
private final SimAndDigNonHarmonicService simAndDigNonHarmonicService;
private final SimAndDigHarmonicService simAndDigHarmonicService;
@@ -1553,14 +1557,21 @@ public class ResultServiceImpl implements IResultService {
formContentVO.setDeviceName(dev.getName());
formContentVO.setErrorSysId(plan.getErrorSysId());
List<DictTree> dictTreeList = dictTreeService.getDictTreeById(Collections.singletonList(queryParam.getScriptType()));
List<DictTree> dictTreeList = null;
if (DataSourceEnum.WAVE_DATA.getValue().equals(queryParam.getScriptType())) {
List<Map<String, String>> bigTestItem = adPlanService.getBigTestItem(1, queryParam.getPlanId(), Collections.singletonList(queryParam.getDeviceId()), queryParam.getPatternId(), DataSourceEnum.WAVE_DATA.getValue());
List<String> ids = bigTestItem.stream().filter(x -> !DetectionCodeEnum.FREQ.getCode().equals(x.get("code"))).map(x -> x.get("id")).collect(Collectors.toList());
dictTreeList = dictTreeService.getDictTreeById(ids);
} else {
dictTreeList = dictTreeService.getDictTreeById(Collections.singletonList(queryParam.getScriptType()));
}
List<String> fatherIdList = dictTreeList.stream().map(DictTree::getId).collect(Collectors.toList());
List<DictTree> childDictTreeList = dictTreeService.listByFatherIds(fatherIdList);
List<String> adTypeList = childDictTreeList.stream().map(DictTree::getId).collect(Collectors.toList());
List<ContrastBaseResult> allResultList = new ArrayList<>();
List<ContrastNonHarmonicResult> contrastNonHarmonicResults = contrastNonHarmonicService.listAllResultData(String.valueOf(plan.getCode()), null, queryParam.getDeviceId(), adTypeList);
List<ContrastHarmonicResult> contrastHarmonicResults = contrastHarmonicService.listAllResultData(String.valueOf(plan.getCode()), null, queryParam.getDeviceId(), adTypeList);
List<ContrastNonHarmonicResult> contrastNonHarmonicResults = contrastNonHarmonicService.listAllResultData(String.valueOf(plan.getCode()), null, null, true, queryParam.getDeviceId(), adTypeList);
List<ContrastHarmonicResult> contrastHarmonicResults = contrastHarmonicService.listAllResultData(String.valueOf(plan.getCode()), null, null, true, queryParam.getDeviceId(), adTypeList);
allResultList.addAll(contrastHarmonicResults);
allResultList.addAll(contrastNonHarmonicResults);
@@ -1586,6 +1597,9 @@ public class ResultServiceImpl implements IResultService {
formContentVO.setCheckNum(queryParam.getNum());
}
AdPlanTestConfig adPlanTestConfig = adPlanTestConfigService.getByPlanId(queryParam.getPlanId());
formContentVO.setWaveNumTotal(adPlanTestConfig.getWaveRecord());
formContentVO.setChnMap(chnMap);
return formContentVO;
}
@@ -1595,7 +1609,9 @@ public class ResultServiceImpl implements IResultService {
ContrastResultVO contrastResultVO = new ContrastResultVO();
AdPlan plan = adPlanService.getById(queryParam.getPlanId());
List<DictTree> dictTreeList = dictTreeService.getDictTreeById(Collections.singletonList(queryParam.getScriptType()));
List<String> fatherIdList = dictTreeList.stream().map(DictTree::getId).collect(Collectors.toList());
List<DictTree> childDictTreeList = dictTreeService.listByFatherIds(fatherIdList);
List<String> adTypeList = childDictTreeList.stream().map(DictTree::getId).collect(Collectors.toList());
@@ -1615,16 +1631,16 @@ public class ResultServiceImpl implements IResultService {
}
}
contrastResultVO.setResultMap(this.getResultMap(dictTree, adTypeList, queryParam.getDeviceId() + CnSocketUtil.SPLIT_TAG + queryParam.getChnNum(), unit, queryParam.getNum(), String.valueOf(plan.getCode())));
contrastResultVO.setRawDataMap(this.getRawDataMap(dictTree, adTypeList, queryParam.getDeviceId() + CnSocketUtil.SPLIT_TAG + queryParam.getChnNum(), unit, queryParam.getNum(), String.valueOf(plan.getCode())));
contrastResultVO.setResultMap(this.getResultMap(dictTree, adTypeList, queryParam.getDeviceId() + CnSocketUtil.SPLIT_TAG + queryParam.getChnNum(), unit, queryParam.getNum(), queryParam.getWaveNum(), queryParam.getIsWave(), String.valueOf(plan.getCode())));
contrastResultVO.setRawDataMap(this.getRawDataMap(dictTree, adTypeList, queryParam.getDeviceId() + CnSocketUtil.SPLIT_TAG + queryParam.getChnNum(), unit, queryParam.getNum(), queryParam.getWaveNum(), queryParam.getIsWave(), String.valueOf(plan.getCode())));
return contrastResultVO;
}
private Map<String, List<RawResultDataVO>> getResultMap(DictTree dictTree, List<String> adTypeList, String monitorId, String unit, Integer num, String code) {
private Map<String, List<RawResultDataVO>> getResultMap(DictTree dictTree, List<String> adTypeList, String monitorId, String unit, Integer num, Integer waveNum, Boolean isWave, String code) {
Map<String, List<RawResultDataVO>> resultMap = new LinkedHashMap<>();
List<ContrastNonHarmonicResult> contrastNonHarmonicResults = contrastNonHarmonicService.listAllResultData(code, num, monitorId, adTypeList);
List<ContrastHarmonicResult> contrastHarmonicResults = contrastHarmonicService.listAllResultData(code, num, monitorId, adTypeList);
List<ContrastNonHarmonicResult> contrastNonHarmonicResults = contrastNonHarmonicService.listAllResultData(code, num, waveNum, isWave, monitorId, adTypeList);
List<ContrastHarmonicResult> contrastHarmonicResults = contrastHarmonicService.listAllResultData(code, num, waveNum, isWave, monitorId, adTypeList);
if (CollUtil.isNotEmpty(contrastNonHarmonicResults)) {
ContrastNonHarmonicResult contrastNonHarmonicResult = contrastNonHarmonicResults.get(0);
@@ -1715,13 +1731,13 @@ public class ResultServiceImpl implements IResultService {
return resultMap;
}
private Map<String, List<AlignDataVO.RawData>> getRawDataMap(DictTree dictTree, List<String> adTypeList, String monitorId, String unit, Integer num, String code) {
private Map<String, List<AlignDataVO.RawData>> getRawDataMap(DictTree dictTree, List<String> adTypeList, String monitorId, String unit, Integer num, Integer waveNum, Boolean isWave, String code) {
Map<String, List<AlignDataVO.RawData>> rawMap = new LinkedHashMap<>();
List<ContrastNonHarmonicResult> devNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(code, num, 0, monitorId, adTypeList);
List<ContrastNonHarmonicResult> stdDevNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(code, num, 1, monitorId, adTypeList);
List<ContrastHarmonicResult> devHarmonicRawDataList = contrastHarmonicService.listAllRawData(code, num, 0, monitorId, adTypeList);
List<ContrastHarmonicResult> stdDevHarmonicRawDataList = contrastHarmonicService.listAllRawData(code, num, 1, monitorId, adTypeList);
List<ContrastNonHarmonicResult> devNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(code, num, waveNum, isWave, 0, monitorId, adTypeList);
List<ContrastNonHarmonicResult> stdDevNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(code, num, waveNum, isWave, 1, monitorId, adTypeList);
List<ContrastHarmonicResult> devHarmonicRawDataList = contrastHarmonicService.listAllRawData(code, num, waveNum, isWave, 0, monitorId, adTypeList);
List<ContrastHarmonicResult> stdDevHarmonicRawDataList = contrastHarmonicService.listAllRawData(code, num, waveNum, isWave, 1, monitorId, adTypeList);
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
List<AlignDataVO.RawData> rawDataVOList = new ArrayList<>();
@@ -2038,17 +2054,29 @@ public class ResultServiceImpl implements IResultService {
numMap.put(adPair.getStdDevMonitorId(), num);
});
List<ContrastNonHarmonicResult> devNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, 0, deviceId, null);
List<ContrastNonHarmonicResult> stdDevNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, 1, deviceId, null);
List<ContrastHarmonicResult> devHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, 0, deviceId, null);
List<ContrastHarmonicResult> stdDevHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, 1, deviceId, null);
List<ContrastNonHarmonicResult> devNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, null, false, 0, deviceId, null);
List<ContrastNonHarmonicResult> stdDevNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, null, false, 1, deviceId, null);
List<ContrastHarmonicResult> devHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, null, false, 0, deviceId, null);
List<ContrastHarmonicResult> stdDevHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, null, false, 1, deviceId, null);
List<DevData> devData = contrastToList(devNonHarmonicRawDataList, devHarmonicRawDataList, testItemMap);
List<DevData> standardDevData = contrastToList(stdDevNonHarmonicRawDataList, stdDevHarmonicRawDataList, testItemMap);
detectionServiceImpl.processing(devData, standardDevData, parsIp, devIdMapComm, testItemMap.keySet().stream().collect(Collectors.toList()), errorSysId, dataRule, numMap, code, null);
});
AdPlanTestConfig adPlanTestConfig = adPlanTestConfigService.getByPlanId(planId);
for (int i = 1; i <= adPlanTestConfig.getWaveRecord(); i++) {
devNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, i, true, 0, deviceId, null);
stdDevNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, i, true, 1, deviceId, null);
devHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, i, true, 0, deviceId, null);
stdDevHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, i, true, 1, deviceId, null);
devData = contrastToList(devNonHarmonicRawDataList, devHarmonicRawDataList, testItemMap);
standardDevData = contrastToList(stdDevNonHarmonicRawDataList, stdDevHarmonicRawDataList, testItemMap);
detectionServiceImpl.processing(devData, standardDevData, parsIp, devIdMapComm, testItemMap.keySet().stream().collect(Collectors.toList()), errorSysId, dataRule, numMap, code, i);
}
});
}
private List<DevData> simAndDigToList(List<SimAndDigNonHarmonicResult> nonHarm, List<SimAndDigHarmonicResult> harm, boolean containBaseHarm) {

View File

@@ -47,6 +47,9 @@ public class DevTypeParam {
@ApiModelProperty(value = "报告模板")
private String reportName;
@ApiModelProperty(value = "录波指令")
private String waveCmd;
/**
* 分页查询实体
*/

View File

@@ -60,6 +60,11 @@ public class DevType extends BaseEntity {
@TableField("report_name")
private String reportName;
/**
* 录波指令
*/
private String waveCmd;
/**
* 状态0-删除 1-正常
*/

View File

@@ -21,15 +21,16 @@ public interface ContrastHarmonicService extends IService<ContrastHarmonicResult
* @param adTypeList
* @return
*/
List<ContrastHarmonicResult> listAllRawData(String code, Integer num, Integer flag, String devId, List<String> adTypeList);
List<ContrastHarmonicResult> listAllRawData(String code, Integer num, Integer waveNum, Boolean isWave, Integer flag, String devId, List<String> adTypeList);
/**
* 获取所有谐波结果数据
*
* @param code
* @param num 第几次检测
* @param waveNum 第几次录波
* @param devId 设备ID
* @return
*/
List<ContrastHarmonicResult> listAllResultData(String code, Integer num, String devId, List<String> adTypeList);
List<ContrastHarmonicResult> listAllResultData(String code, Integer num, Integer waveNum, Boolean isWave, String devId, List<String> adTypeList);
}

View File

@@ -15,22 +15,28 @@ public interface ContrastNonHarmonicService extends IService<ContrastNonHarmonic
* 获取所有原始数据
*
* @param code
* @param num 第几次检测
* @param flag 0:被检设备1:标准设备
* @param devId 设备ID
* @param num
* @param waveNum
* @param isWave
* @param flag
* @param devId
* @param adTypeList
* @return
*/
List<ContrastNonHarmonicResult> listAllRawData(String code, Integer num, Integer flag, String devId, List<String> adTypeList);
List<ContrastNonHarmonicResult> listAllRawData(String code, Integer num, Integer waveNum, Boolean isWave, Integer flag, String devId, List<String> adTypeList);
/**
* 获取所有非谐波结果数据
*
* @param code
* @param num 第几次检测
* @param devId 设备ID
* @param num
* @param waveNum
* @param isWave
* @param devId
* @param adTypeList
* @return
*/
List<ContrastNonHarmonicResult> listAllResultData(String code, Integer num, String devId, List<String> adTypeList);
List<ContrastNonHarmonicResult> listAllResultData(String code, Integer num, Integer waveNum, Boolean isWave, String devId, List<String> adTypeList);
}

View File

@@ -2,6 +2,7 @@ package com.njcn.gather.storage.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.db.mybatisplus.handler.DynamicTableNameHandler;
import com.njcn.gather.storage.mapper.ContrastHarmonicMappper;
@@ -22,25 +23,38 @@ public class ContrastHarmonicServiceImpl extends ServiceImpl<ContrastHarmonicMap
@Override
public List<ContrastHarmonicResult> listAllRawData(String code, Integer num, Integer flag, String devId, List<String> adTypeList) {
public List<ContrastHarmonicResult> listAllRawData(String code, Integer num, Integer waveNum, Boolean isWave, Integer flag, String devId, List<String> adTypeList) {
String prefix = "ad_harmonic_" + code;
DynamicTableNameHandler.setTableName(prefix);
List<ContrastHarmonicResult> result = this.lambdaQuery().likeRight(ContrastHarmonicResult::getDevMonitorId, devId)
LambdaQueryChainWrapper<ContrastHarmonicResult> wrapper = this.lambdaQuery().likeRight(ContrastHarmonicResult::getDevMonitorId, devId)
.eq(ObjectUtil.isNotNull(num), ContrastHarmonicResult::getNum, num)
.eq(ContrastHarmonicResult::getFlag, flag)
.in(CollUtil.isNotEmpty(adTypeList), ContrastHarmonicResult::getAdType, adTypeList)
.orderByAsc(ContrastHarmonicResult::getTimeId).list();
.orderByAsc(ContrastHarmonicResult::getTimeId);
if (isWave) {
wrapper.eq(ObjectUtil.isNotNull(waveNum), ContrastHarmonicResult::getWaveNum, waveNum);
} else {
wrapper.isNull(ContrastHarmonicResult::getWaveNum);
}
List<ContrastHarmonicResult> result = wrapper.list();
DynamicTableNameHandler.remove();
return result;
}
@Override
public List<ContrastHarmonicResult> listAllResultData(String code, Integer num, String devId, List<String> adTypeList) {
public List<ContrastHarmonicResult> listAllResultData(String code, Integer num, Integer waveNum, Boolean isWave, String devId, List<String> adTypeList) {
String prefix = "ad_harmonic_result_" + code;
DynamicTableNameHandler.setTableName(prefix);
List<ContrastHarmonicResult> result = this.lambdaQuery().likeRight(ContrastHarmonicResult::getDevMonitorId, devId)
LambdaQueryChainWrapper<ContrastHarmonicResult> wrapper = this.lambdaQuery().likeRight(ContrastHarmonicResult::getDevMonitorId, devId)
.eq(ObjectUtil.isNotNull(num), ContrastHarmonicResult::getNum, num)
.in(CollUtil.isNotEmpty(adTypeList), ContrastHarmonicResult::getAdType, adTypeList).list();
.eq(ObjectUtil.isNotNull(waveNum), ContrastHarmonicResult::getWaveNum, waveNum)
.in(CollUtil.isNotEmpty(adTypeList), ContrastHarmonicResult::getAdType, adTypeList);
if (isWave) {
wrapper.eq(ObjectUtil.isNotNull(waveNum), ContrastHarmonicResult::getWaveNum, waveNum);
} else {
wrapper.isNull(ContrastHarmonicResult::getWaveNum);
}
List<ContrastHarmonicResult> result = wrapper.list();
DynamicTableNameHandler.remove();
return result;
}

View File

@@ -2,6 +2,7 @@ package com.njcn.gather.storage.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.db.mybatisplus.handler.DynamicTableNameHandler;
import com.njcn.gather.storage.mapper.ContrastNonHarmonicMappper;
@@ -22,25 +23,38 @@ public class ContrastNonHarmonicServiceImpl extends ServiceImpl<ContrastNonHarmo
@Override
public List<ContrastNonHarmonicResult> listAllRawData(String code, Integer num, Integer flag, String devId, List<String> adTypeList) {
public List<ContrastNonHarmonicResult> listAllRawData(String code, Integer num, Integer waveNum, Boolean isWave, Integer flag, String devId, List<String> adTypeList) {
String prefix = "ad_non_harmonic_" + code;
DynamicTableNameHandler.setTableName(prefix);
List<ContrastNonHarmonicResult> result = this.lambdaQuery().likeRight(ContrastNonHarmonicResult::getDevMonitorId, devId)
LambdaQueryChainWrapper<ContrastNonHarmonicResult> wrapper = this.lambdaQuery().likeRight(ContrastNonHarmonicResult::getDevMonitorId, devId)
.eq(ObjectUtil.isNotNull(num), ContrastNonHarmonicResult::getNum, num)
.eq(ContrastNonHarmonicResult::getFlag, flag)
.in(CollUtil.isNotEmpty(adTypeList), ContrastNonHarmonicResult::getAdType, adTypeList)
.orderByAsc(ContrastNonHarmonicResult::getTimeId).list();
.orderByAsc(ContrastNonHarmonicResult::getTimeId);
if (isWave) {
wrapper.eq(ObjectUtil.isNotNull(waveNum), ContrastNonHarmonicResult::getWaveNum, waveNum);
} else {
wrapper.isNull(ContrastNonHarmonicResult::getWaveNum);
}
List<ContrastNonHarmonicResult> result = wrapper.list();
DynamicTableNameHandler.remove();
return result;
}
@Override
public List<ContrastNonHarmonicResult> listAllResultData(String code, Integer num, String devId, List<String> adTypeList) {
public List<ContrastNonHarmonicResult> listAllResultData(String code, Integer num, Integer waveNum, Boolean isWave, String devId, List<String> adTypeList) {
String prefix = "ad_non_harmonic_result_" + code;
DynamicTableNameHandler.setTableName(prefix);
List<ContrastNonHarmonicResult> result = this.lambdaQuery().likeRight(ContrastNonHarmonicResult::getDevMonitorId, devId)
LambdaQueryChainWrapper<ContrastNonHarmonicResult> wrapper = this.lambdaQuery().likeRight(ContrastNonHarmonicResult::getDevMonitorId, devId)
.eq(ObjectUtil.isNotNull(num), ContrastNonHarmonicResult::getNum, num)
.in(CollUtil.isNotEmpty(adTypeList), ContrastNonHarmonicResult::getAdType, adTypeList).list();
.isNull(ObjectUtil.isNull(waveNum), ContrastNonHarmonicResult::getWaveNum)
.in(CollUtil.isNotEmpty(adTypeList), ContrastNonHarmonicResult::getAdType, adTypeList);
if (isWave) {
wrapper.eq(ObjectUtil.isNotNull(waveNum), ContrastNonHarmonicResult::getWaveNum, waveNum);
} else {
wrapper.isNull(ContrastNonHarmonicResult::getWaveNum);
}
List<ContrastNonHarmonicResult> result = wrapper.list();
DynamicTableNameHandler.remove();
return result;
}