录波功能完善

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());//最终成功推送 webSend.setCode(SourceResponseCodeEnum.ALL_SUCCESS.getCode());//最终成功推送
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSend)); WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSend));
// 修改设备状态 // 修改设备状态
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());
} }
} }
@@ -1121,7 +1122,7 @@ public class SocketContrastResponseService {
FormalTestManager.pairsIpMap, FormalTestManager.pairsIpMap,
FormalTestManager.devIdMapComm, FormalTestManager.devIdMapComm,
FormalTestManager.testItemMap.keySet().stream().collect(Collectors.toList()), 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())); Map<String, List<DevLineTestResult>> deviceIdMap = allResultList.stream().collect(Collectors.groupingBy(DevLineTestResult::getDeviceId, Collectors.toList()));
deviceIdMap.forEach((deviceId, devLineTestResultList) -> { deviceIdMap.forEach((deviceId, devLineTestResultList) -> {
@@ -1190,7 +1191,7 @@ public class SocketContrastResponseService {
List<String> adTypes = FormalTestManager.testItemMap.values().stream().collect(Collectors.toList()); 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()); webSend.setCode(SourceResponseCodeEnum.ALL_SUCCESS.getCode());
@@ -2177,7 +2178,8 @@ public class SocketContrastResponseService {
WaveCommandDTO waveCommandDTO = new WaveCommandDTO(); WaveCommandDTO waveCommandDTO = new WaveCommandDTO();
waveCommandDTO.setIp(preDetection.getDevIP()); waveCommandDTO.setIp(preDetection.getDevIP());
waveCommandDTO.setPort(preDetection.getPort()); waveCommandDTO.setPort(preDetection.getPort());
waveCommandDTO.setOper("RDRE1$CO$RcdTrg$Oper"); waveCommandDTO.setOper(preDetection.getWaveCmd());
// waveCommandDTO.setOper("RDRE1$CO$RcdTrg$Oper");
waveCommandDTO.setLine(monitorListDTO.getLine()); waveCommandDTO.setLine(monitorListDTO.getLine());
waveCommandDTOList.add(waveCommandDTO); waveCommandDTOList.add(waveCommandDTO);
}); });
@@ -2187,7 +2189,8 @@ public class SocketContrastResponseService {
WaveCommandDTO waveCommandDTO = new WaveCommandDTO(); WaveCommandDTO waveCommandDTO = new WaveCommandDTO();
waveCommandDTO.setIp(preDetection.getDevIP()); waveCommandDTO.setIp(preDetection.getDevIP());
waveCommandDTO.setPort(preDetection.getPort()); waveCommandDTO.setPort(preDetection.getPort());
waveCommandDTO.setOper("RDRE1$CO$RcdTrg$Oper"); waveCommandDTO.setOper(preDetection.getWaveCmd());
// waveCommandDTO.setOper("RDRE1$CO$RcdTrg$Oper");
waveCommandDTO.setLine(monitorListDTO.getLine()); waveCommandDTO.setLine(monitorListDTO.getLine());
waveCommandDTOList.add(waveCommandDTO); 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) { 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 stdDevCfgPath = stdDevWaveResultDTO.getPath().replaceAll("\\\\", "/").replace(".CFG", ".cfg");
// String devCfgPath = devWaveResultDTO.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 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"); String devDatPath = devCfgPath.replaceAll(".cfg", ".dat");
// 验证文件是否存在 // 验证文件是否存在
@@ -2297,16 +2300,16 @@ public class SocketContrastResponseService {
String code = adTypeCode.replace(DetectionCodeEnum.REAL_PREFIX.getCode(), ""); String code = adTypeCode.replace(DetectionCodeEnum.REAL_PREFIX.getCode(), "");
DetectionCodeEnum detectionCodeEnum = DetectionCodeEnum.getDetectionCodeByCode(code); DetectionCodeEnum detectionCodeEnum = DetectionCodeEnum.getDetectionCodeByCode(code);
switch (detectionCodeEnum) { switch (detectionCodeEnum) {
case FREQ: // case FREQ:
// 频率 // // 频率
sqlDataDTO = new DevData.SqlDataDTO(); // sqlDataDTO = new DevData.SqlDataDTO();
sqlDataDTO.setDesc(DetectionCodeEnum.FREQ.getCode()); // sqlDataDTO.setDesc(DetectionCodeEnum.FREQ.getCode());
sqlDataDTO.setType("real"); // sqlDataDTO.setType("real");
listDTO = new DevData.SqlDataDTO.ListDTO(); // listDTO = new DevData.SqlDataDTO.ListDTO();
listDTO.setT((double) pointDevData.getFreq()[0]); // listDTO.setT((double) pointDevData.getFreq()[0]);
sqlDataDTO.setList(listDTO); // sqlDataDTO.setList(listDTO);
sqlDataDTOS.add(sqlDataDTO); // sqlDataDTOS.add(sqlDataDTO);
break; // break;
case VRMS: case VRMS:
// 相电压有效值 // 相电压有效值
sqlDataDTO = new DevData.SqlDataDTO(); sqlDataDTO = new DevData.SqlDataDTO();
@@ -2407,9 +2410,9 @@ public class SocketContrastResponseService {
sqlDataDTO.setDesc(DetectionCodeEnum.I1.getCode()); sqlDataDTO.setDesc(DetectionCodeEnum.I1.getCode());
sqlDataDTO.setType("real"); sqlDataDTO.setType("real");
listDTO = new DevData.SqlDataDTO.ListDTO(); listDTO = new DevData.SqlDataDTO.ListDTO();
listDTO.setA((double) pointDevData.getFuHarm()[3][0]); listDTO.setA((double) pointDevData.getInHarm()[3][0]);
listDTO.setB((double) pointDevData.getFuHarm()[4][0]); listDTO.setB((double) pointDevData.getInHarm()[4][0]);
listDTO.setC((double) pointDevData.getFuHarm()[5][0]); listDTO.setC((double) pointDevData.getInHarm()[5][0]);
sqlDataDTO.setList(listDTO); sqlDataDTO.setList(listDTO);
sqlDataDTOS.add(sqlDataDTO); sqlDataDTOS.add(sqlDataDTO);
@@ -2496,6 +2499,16 @@ public class SocketContrastResponseService {
case PSV_1_49: case PSV_1_49:
break; break;
case SI_1_49: 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 = new DevData.SqlDataHarmDTO();
sqlDataHarmDTOI.setDesc(DetectionCodeEnum.SI_1_49.getCode()); sqlDataHarmDTOI.setDesc(DetectionCodeEnum.SI_1_49.getCode());
@@ -2507,7 +2520,7 @@ public class SocketContrastResponseService {
cListI = new ArrayList<>(); cListI = new ArrayList<>();
// 前50次间谐波 // 前50次间谐波
for (int harm = 0; harm < 50; harm++) { for (int harm = 1; harm < 51; harm++) {
// 间谐波电流 // 间谐波电流
aListI.add(String.format("%.7f", pointDevData.getInHarm()[3][harm])); aListI.add(String.format("%.7f", pointDevData.getInHarm()[3][harm]));
bListI.add(String.format("%.7f", pointDevData.getInHarm()[4][harm])); bListI.add(String.format("%.7f", pointDevData.getInHarm()[4][harm]));

View File

@@ -1150,6 +1150,9 @@ public class DetectionServiceImpl {
break; break;
case AVG_VALUE: case AVG_VALUE:
newValue.addAll(DetectionUtil.getAvgDoubles(value)); newValue.addAll(DetectionUtil.getAvgDoubles(value));
case Own_value:
case AT_WILL_VALUE:
newValue.addAll(value);
break; break;
} }
value.clear(); 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.ContrastDetectionParam;
import com.njcn.gather.detection.pojo.param.PreDetectionParam; 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.NettyClient;
import com.njcn.gather.detection.util.socket.cilent.NettyContrastClientHandler;
import com.njcn.gather.detection.util.socket.config.SocketConnectionConfig; 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.plan.pojo.enums.DataSourceEnum;
import com.njcn.gather.script.pojo.po.SourceIssue; import com.njcn.gather.script.pojo.po.SourceIssue;
import io.netty.channel.Channel; import io.netty.channel.Channel;
import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.nio.NioEventLoopGroup;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.HashMap; import java.util.HashMap;
@@ -28,7 +27,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
/** /**
* Socket连接管理器 * Socket连接管理器
* 提供Socket连接的生命周期管理、消息发送、检测任务管理等功能 * 提供Socket连接的生命周期管理、消息发送、检测任务管理等功能
* * <p>
* 包含以下主要功能: * 包含以下主要功能:
* 1. 基础连接管理addUser, removeUser, sendMsg等 * 1. 基础连接管理addUser, removeUser, sendMsg等
* 2. 智能消息发送smartSendToSource, smartSendToDevice等新增 * 2. 智能消息发送smartSendToSource, smartSendToDevice等新增
@@ -66,16 +65,16 @@ public class SocketManager {
public static void removeUser(String userId) { public static void removeUser(String userId) {
Channel channel = socketSessions.get(userId); Channel channel = socketSessions.get(userId);
if(ObjectUtil.isNotNull(channel)){ if (ObjectUtil.isNotNull(channel)) {
try { try {
channel.close().sync(); channel.close().sync();
} catch (InterruptedException e) { } catch (InterruptedException e) {
e.printStackTrace(); e.printStackTrace();
} }
NioEventLoopGroup eventExecutors = socketGroup.get(userId); NioEventLoopGroup eventExecutors = socketGroup.get(userId);
if(ObjectUtil.isNotNull(eventExecutors)){ if (ObjectUtil.isNotNull(eventExecutors)) {
eventExecutors.shutdownGracefully(); eventExecutors.shutdownGracefully();
System.out.println(userId+"__"+channel.id()+"关闭了客户端"); System.out.println(userId + "__" + channel.id() + "关闭了客户端");
} }
} }
socketSessions.remove(userId); socketSessions.remove(userId);
@@ -90,12 +89,12 @@ public class SocketManager {
return socketGroup.get(userId); return socketGroup.get(userId);
} }
public static void sendMsg(String userId,String msg) { public static void sendMsg(String userId, String msg) {
Channel channel = socketSessions.get(userId); Channel channel = socketSessions.get(userId);
if(ObjectUtil.isNotNull(channel)){ if (ObjectUtil.isNotNull(channel)) {
channel.writeAndFlush(msg+'\n'); channel.writeAndFlush(msg + '\n');
log.info("{}__{}往{}发送数据:{}", userId, channel.id(), channel.remoteAddress(), msg); log.info("{}__{}往{}发送数据:{}", userId, channel.id(), channel.remoteAddress(), msg);
}else{ } else {
log.warn("{}__发送数据失败通道不存在{}", userId, msg); log.warn("{}__发送数据失败通道不存在{}", userId, msg);
} }
} }
@@ -188,6 +187,13 @@ public class SocketManager {
NettyClient.connectToContrastDeviceStatic(ip, port, param, msg); NettyClient.connectToContrastDeviceStatic(ip, port, param, msg);
}); });
return; 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 {
} }
// =================== 私有工具方法 =================== // =================== 私有工具方法 ===================
/** /**
@@ -271,7 +275,7 @@ public class SocketManager {
/** /**
* 用于存储每个测试小项超时时长key key:检测项 value:时间秒 * 用于存储每个测试小项超时时长key key:检测项 value:时间秒
*/ */
public static volatile Map<Integer,Long> clockMap = new ConcurrentHashMap<>(); public static volatile Map<Integer, Long> clockMap = new ConcurrentHashMap<>();
/** /**
* 用于存储比对式测试时间。 * 用于存储比对式测试时间。
@@ -279,7 +283,6 @@ public class SocketManager {
public static volatile Map<DataSourceEnum, Long> contrastClockMap = new ConcurrentHashMap<>(); public static volatile Map<DataSourceEnum, Long> contrastClockMap = new ConcurrentHashMap<>();
public static void addSourceList(List<SourceIssue> sList) { public static void addSourceList(List<SourceIssue> sList) {
sourceIssueList = sList; sourceIssueList = sList;
} }
@@ -302,8 +305,8 @@ public class SocketManager {
targetMap = map; targetMap = map;
} }
public static void addTargetMap(String scriptType,Long count) { public static void addTargetMap(String scriptType, Long count) {
targetMap.put(scriptType,count); targetMap.put(scriptType, count);
} }
public static Long getSourceTarget(String scriptType) { public static Long getSourceTarget(String scriptType) {
@@ -311,6 +314,5 @@ public class SocketManager {
} }
} }

View File

@@ -128,7 +128,9 @@ public class NettyClient {
preDetectionParam.setTestItemList(param.getTestItemList()); preDetectionParam.setTestItemList(param.getTestItemList());
preDetectionParam.setDevIds(param.getDevIds()); preDetectionParam.setDevIds(param.getDevIds());
preDetectionParam.setUserId(param.getUserId()); 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); executeSocketConnection(ip, port, preDetectionParam, msg, handler);
} }
@@ -265,7 +267,7 @@ public class NettyClient {
PreDetectionParam param, SimpleChannelInboundHandler<String> handler) { PreDetectionParam param, SimpleChannelInboundHandler<String> handler) {
// 基础编解码器:处理数据格式转换和粘包拆包 // 基础编解码器:处理数据格式转换和粘包拆包
// 按行分割最大20KB // 按行分割最大20KB
pipeline.addLast(new LineBasedFrameDecoder(10240*2)) pipeline.addLast(new LineBasedFrameDecoder(10240 * 2))
// 字节转字符串 // 字节转字符串
.addLast(new StringDecoder(CharsetUtil.UTF_8)) .addLast(new StringDecoder(CharsetUtil.UTF_8))
// 字符串转字节 // 字符串转字节

View File

@@ -36,8 +36,8 @@ import java.util.Objects;
public class NettyContrastClientHandler extends SimpleChannelInboundHandler<String> { public class NettyContrastClientHandler extends SimpleChannelInboundHandler<String> {
private final PreDetectionParam param; public static PreDetectionParam param;
private final SocketContrastResponseService socketContrastResponseService; public static SocketContrastResponseService socketContrastResponseService;
@Override @Override
public void channelActive(ChannelHandlerContext ctx) throws Exception { 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.patternEnum.equals(PatternEnum.CONTRAST)) {
if (!FormalTestManager.isRemoveSocket) { if (!FormalTestManager.isRemoveSocket) {
if (FormalTestManager.currentStep == SourceOperateCodeEnum.RECORD_WAVE_STEP1 || FormalTestManager.currentStep == SourceOperateCodeEnum.RECORD_WAVE_STEP2) { 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) { } 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 { } else {
boolean channelActive = SocketManager.isChannelActive(preDetectionParam.getUserPageId() + CnSocketUtil.CONTRAST_DEV_TAG); boolean channelActive = SocketManager.isChannelActive(preDetectionParam.getUserPageId() + CnSocketUtil.CONTRAST_DEV_TAG);

View File

@@ -17,6 +17,7 @@
<result column="Dev_Curr" property="devCurr"/> <result column="Dev_Curr" property="devCurr"/>
<result column="Angle" property="angle"/> <result column="Angle" property="angle"/>
<result column="Use_Phase_Index" property="usePhaseIndex"/> <result column="Use_Phase_Index" property="usePhaseIndex"/>
<result column="Wave_Cmd" property="waveCmd"/>
<collection <collection
property="monitorList" property="monitorList"
@@ -39,7 +40,8 @@
t.Dev_Volt, t.Dev_Volt,
t.Dev_Curr, t.Dev_Curr,
p.Angle, p.Angle,
p.Use_Phase_Index p.Use_Phase_Index,
t.Wave_Cmd
FROM FROM
pq_dev d pq_dev d
inner join pq_dev_type t on d.Dev_Type = t.id 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="Dev_Curr" property="devCurr"/>
<result column="Angle" property="angle"/> <result column="Angle" property="angle"/>
<result column="Use_Phase_Index" property="usePhaseIndex"/> <result column="Use_Phase_Index" property="usePhaseIndex"/>
<result column="Wave_Cmd" property="waveCmd"/>
</resultMap> </resultMap>
<select id="listStandardDevPreDetection" resultMap="standardDevResultMap"> <select id="listStandardDevPreDetection" resultMap="standardDevResultMap">
@@ -33,7 +34,8 @@
dev_type.Dev_Volt, dev_type.Dev_Volt,
dev_type.Dev_Curr, dev_type.Dev_Curr,
icd_path.Angle, icd_path.Angle,
icd_path.Use_Phase_Index icd_path.Use_Phase_Index,
dev_type.Wave_Cmd
from pq_standard_dev standard_dev from pq_standard_dev standard_dev
inner join pq_dev_type dev_type on standard_dev.Dev_Type = dev_type.id 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 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; 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 devVolt;
private Double devCurr; private Double devCurr;
@JSONField(serialize = false)
private String waveCmd;
/** /**
* 监测点信息 * 监测点信息
*/ */

View File

@@ -62,5 +62,20 @@ public class PqMonitor implements Serializable {
* 谐波系统监测点id * 谐波系统监测点id
*/ */
private String harmSysId; 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) { public HttpResult<List<Map<String, String>>> getBigTestItem(@RequestBody AdPlanParam.CheckParam checkParam) {
String methodDescribe = getMethodDescribe("getBigTestItem"); String methodDescribe = getMethodDescribe("getBigTestItem");
LogUtil.njcnDebug(log, "{},查询数据为:{}", methodDescribe, checkParam); 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); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
} }

View File

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

View File

@@ -73,9 +73,10 @@ public interface IAdPlanService extends IService<AdPlan> {
* @param planId 检测计划Id * @param planId 检测计划Id
* @param devIds 设备Id列表 * @param devIds 设备Id列表
* @param patternId 模式Id * @param patternId 模式Id
* @param scriptType 脚本类型
* @return * @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); boolean mergePlanCheckData(String planId);
} }

View File

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

View File

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

View File

@@ -31,4 +31,9 @@ public class FormContentVO {
* 选中的第几次 * 选中的第几次
*/ */
private Integer checkNum; 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.enums.PatternEnum;
import com.njcn.gather.device.pojo.po.PqDev; import com.njcn.gather.device.pojo.po.PqDev;
import com.njcn.gather.device.service.IPqDevService; 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.AdPlan;
import com.njcn.gather.plan.pojo.po.AdPlanTestConfig;
import com.njcn.gather.plan.service.IAdPlanService; 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.pojo.enums.DetectionResponseEnum;
import com.njcn.gather.report.pojo.constant.PowerConstant; import com.njcn.gather.report.pojo.constant.PowerConstant;
import com.njcn.gather.report.pojo.enums.AffectEnum; import com.njcn.gather.report.pojo.enums.AffectEnum;
@@ -95,6 +98,7 @@ import java.util.stream.Stream;
public class ResultServiceImpl implements IResultService { public class ResultServiceImpl implements IResultService {
private final IAdPlanService adPlanService; private final IAdPlanService adPlanService;
private final IAdPlanTestConfigService adPlanTestConfigService;
private final IPqDevService pqDevService; private final IPqDevService pqDevService;
private final SimAndDigNonHarmonicService simAndDigNonHarmonicService; private final SimAndDigNonHarmonicService simAndDigNonHarmonicService;
private final SimAndDigHarmonicService simAndDigHarmonicService; private final SimAndDigHarmonicService simAndDigHarmonicService;
@@ -1553,14 +1557,21 @@ public class ResultServiceImpl implements IResultService {
formContentVO.setDeviceName(dev.getName()); formContentVO.setDeviceName(dev.getName());
formContentVO.setErrorSysId(plan.getErrorSysId()); 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<String> fatherIdList = dictTreeList.stream().map(DictTree::getId).collect(Collectors.toList());
List<DictTree> childDictTreeList = dictTreeService.listByFatherIds(fatherIdList); List<DictTree> childDictTreeList = dictTreeService.listByFatherIds(fatherIdList);
List<String> adTypeList = childDictTreeList.stream().map(DictTree::getId).collect(Collectors.toList()); List<String> adTypeList = childDictTreeList.stream().map(DictTree::getId).collect(Collectors.toList());
List<ContrastBaseResult> allResultList = new ArrayList<>(); List<ContrastBaseResult> allResultList = new ArrayList<>();
List<ContrastNonHarmonicResult> contrastNonHarmonicResults = contrastNonHarmonicService.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, queryParam.getDeviceId(), adTypeList); List<ContrastHarmonicResult> contrastHarmonicResults = contrastHarmonicService.listAllResultData(String.valueOf(plan.getCode()), null, null, true, queryParam.getDeviceId(), adTypeList);
allResultList.addAll(contrastHarmonicResults); allResultList.addAll(contrastHarmonicResults);
allResultList.addAll(contrastNonHarmonicResults); allResultList.addAll(contrastNonHarmonicResults);
@@ -1586,6 +1597,9 @@ public class ResultServiceImpl implements IResultService {
formContentVO.setCheckNum(queryParam.getNum()); formContentVO.setCheckNum(queryParam.getNum());
} }
AdPlanTestConfig adPlanTestConfig = adPlanTestConfigService.getByPlanId(queryParam.getPlanId());
formContentVO.setWaveNumTotal(adPlanTestConfig.getWaveRecord());
formContentVO.setChnMap(chnMap); formContentVO.setChnMap(chnMap);
return formContentVO; return formContentVO;
} }
@@ -1595,7 +1609,9 @@ public class ResultServiceImpl implements IResultService {
ContrastResultVO contrastResultVO = new ContrastResultVO(); ContrastResultVO contrastResultVO = new ContrastResultVO();
AdPlan plan = adPlanService.getById(queryParam.getPlanId()); AdPlan plan = adPlanService.getById(queryParam.getPlanId());
List<DictTree> dictTreeList = dictTreeService.getDictTreeById(Collections.singletonList(queryParam.getScriptType())); List<DictTree> dictTreeList = dictTreeService.getDictTreeById(Collections.singletonList(queryParam.getScriptType()));
List<String> fatherIdList = dictTreeList.stream().map(DictTree::getId).collect(Collectors.toList()); List<String> fatherIdList = dictTreeList.stream().map(DictTree::getId).collect(Collectors.toList());
List<DictTree> childDictTreeList = dictTreeService.listByFatherIds(fatherIdList); List<DictTree> childDictTreeList = dictTreeService.listByFatherIds(fatherIdList);
List<String> adTypeList = childDictTreeList.stream().map(DictTree::getId).collect(Collectors.toList()); 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.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(), 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; 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<>(); Map<String, List<RawResultDataVO>> resultMap = new LinkedHashMap<>();
List<ContrastNonHarmonicResult> contrastNonHarmonicResults = contrastNonHarmonicService.listAllResultData(code, num, monitorId, adTypeList); List<ContrastNonHarmonicResult> contrastNonHarmonicResults = contrastNonHarmonicService.listAllResultData(code, num, waveNum, isWave, monitorId, adTypeList);
List<ContrastHarmonicResult> contrastHarmonicResults = contrastHarmonicService.listAllResultData(code, num, monitorId, adTypeList); List<ContrastHarmonicResult> contrastHarmonicResults = contrastHarmonicService.listAllResultData(code, num, waveNum, isWave, monitorId, adTypeList);
if (CollUtil.isNotEmpty(contrastNonHarmonicResults)) { if (CollUtil.isNotEmpty(contrastNonHarmonicResults)) {
ContrastNonHarmonicResult contrastNonHarmonicResult = contrastNonHarmonicResults.get(0); ContrastNonHarmonicResult contrastNonHarmonicResult = contrastNonHarmonicResults.get(0);
@@ -1715,13 +1731,13 @@ public class ResultServiceImpl implements IResultService {
return resultMap; 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<>(); Map<String, List<AlignDataVO.RawData>> rawMap = new LinkedHashMap<>();
List<ContrastNonHarmonicResult> devNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(code, num, 0, monitorId, adTypeList); List<ContrastNonHarmonicResult> devNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(code, num, waveNum, isWave, 0, monitorId, adTypeList);
List<ContrastNonHarmonicResult> stdDevNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(code, num, 1, monitorId, adTypeList); List<ContrastNonHarmonicResult> stdDevNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(code, num, waveNum, isWave, 1, monitorId, adTypeList);
List<ContrastHarmonicResult> devHarmonicRawDataList = contrastHarmonicService.listAllRawData(code, num, 0, monitorId, adTypeList); List<ContrastHarmonicResult> devHarmonicRawDataList = contrastHarmonicService.listAllRawData(code, num, waveNum, isWave, 0, monitorId, adTypeList);
List<ContrastHarmonicResult> stdDevHarmonicRawDataList = contrastHarmonicService.listAllRawData(code, num, 1, 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"); DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
List<AlignDataVO.RawData> rawDataVOList = new ArrayList<>(); List<AlignDataVO.RawData> rawDataVOList = new ArrayList<>();
@@ -2038,17 +2054,29 @@ public class ResultServiceImpl implements IResultService {
numMap.put(adPair.getStdDevMonitorId(), num); numMap.put(adPair.getStdDevMonitorId(), num);
}); });
List<ContrastNonHarmonicResult> devNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, 0, deviceId, null); List<ContrastNonHarmonicResult> devNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, null, false, 0, deviceId, null);
List<ContrastNonHarmonicResult> stdDevNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, 1, deviceId, null); List<ContrastNonHarmonicResult> stdDevNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, null, false, 1, deviceId, null);
List<ContrastHarmonicResult> devHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, 0, deviceId, null); List<ContrastHarmonicResult> devHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, null, false, 0, deviceId, null);
List<ContrastHarmonicResult> stdDevHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, 1, deviceId, null); List<ContrastHarmonicResult> stdDevHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, null, false, 1, deviceId, null);
List<DevData> devData = contrastToList(devNonHarmonicRawDataList, devHarmonicRawDataList, testItemMap); List<DevData> devData = contrastToList(devNonHarmonicRawDataList, devHarmonicRawDataList, testItemMap);
List<DevData> standardDevData = contrastToList(stdDevNonHarmonicRawDataList, stdDevHarmonicRawDataList, 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); 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) { private List<DevData> simAndDigToList(List<SimAndDigNonHarmonicResult> nonHarm, List<SimAndDigHarmonicResult> harm, boolean containBaseHarm) {

View File

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

View File

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

View File

@@ -21,15 +21,16 @@ public interface ContrastHarmonicService extends IService<ContrastHarmonicResult
* @param adTypeList * @param adTypeList
* @return * @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 code
* @param num 第几次检测 * @param num 第几次检测
* @param waveNum 第几次录波
* @param devId 设备ID * @param devId 设备ID
* @return * @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 code
* @param num 第几次检测 * @param num
* @param flag 0:被检设备1:标准设备 * @param waveNum
* @param devId 设备ID * @param isWave
* @param flag
* @param devId
* @param adTypeList * @param adTypeList
* @return * @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 code
* @param num 第几次检测 * @param num
* @param devId 设备ID * @param waveNum
* @param isWave
* @param devId
* @param adTypeList * @param adTypeList
* @return * @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.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.db.mybatisplus.handler.DynamicTableNameHandler; import com.njcn.db.mybatisplus.handler.DynamicTableNameHandler;
import com.njcn.gather.storage.mapper.ContrastHarmonicMappper; import com.njcn.gather.storage.mapper.ContrastHarmonicMappper;
@@ -22,25 +23,38 @@ public class ContrastHarmonicServiceImpl extends ServiceImpl<ContrastHarmonicMap
@Override @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; String prefix = "ad_harmonic_" + code;
DynamicTableNameHandler.setTableName(prefix); 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(ObjectUtil.isNotNull(num), ContrastHarmonicResult::getNum, num)
.eq(ContrastHarmonicResult::getFlag, flag) .eq(ContrastHarmonicResult::getFlag, flag)
.in(CollUtil.isNotEmpty(adTypeList), ContrastHarmonicResult::getAdType, adTypeList) .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(); DynamicTableNameHandler.remove();
return result; return result;
} }
@Override @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; String prefix = "ad_harmonic_result_" + code;
DynamicTableNameHandler.setTableName(prefix); 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(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(); DynamicTableNameHandler.remove();
return result; 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.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.db.mybatisplus.handler.DynamicTableNameHandler; import com.njcn.db.mybatisplus.handler.DynamicTableNameHandler;
import com.njcn.gather.storage.mapper.ContrastNonHarmonicMappper; import com.njcn.gather.storage.mapper.ContrastNonHarmonicMappper;
@@ -22,25 +23,38 @@ public class ContrastNonHarmonicServiceImpl extends ServiceImpl<ContrastNonHarmo
@Override @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; String prefix = "ad_non_harmonic_" + code;
DynamicTableNameHandler.setTableName(prefix); 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(ObjectUtil.isNotNull(num), ContrastNonHarmonicResult::getNum, num)
.eq(ContrastNonHarmonicResult::getFlag, flag) .eq(ContrastNonHarmonicResult::getFlag, flag)
.in(CollUtil.isNotEmpty(adTypeList), ContrastNonHarmonicResult::getAdType, adTypeList) .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(); DynamicTableNameHandler.remove();
return result; return result;
} }
@Override @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; String prefix = "ad_non_harmonic_result_" + code;
DynamicTableNameHandler.setTableName(prefix); 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(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(); DynamicTableNameHandler.remove();
return result; return result;
} }