1.解决检测完成,可能有脏数据引发的不符合问题
2.优化检测树单位,解决自动生成表缺少部分字段
This commit is contained in:
@@ -19,6 +19,7 @@ import com.njcn.gather.detection.util.socket.web.WebSocketHandler;
|
|||||||
import com.njcn.gather.device.device.pojo.po.PqDev;
|
import com.njcn.gather.device.device.pojo.po.PqDev;
|
||||||
import com.njcn.gather.device.device.pojo.vo.PreDetection;
|
import com.njcn.gather.device.device.pojo.vo.PreDetection;
|
||||||
import com.njcn.gather.device.device.service.IPqDevService;
|
import com.njcn.gather.device.device.service.IPqDevService;
|
||||||
|
import com.njcn.gather.device.script.pojo.param.PqScriptCheckDataParam;
|
||||||
import com.njcn.gather.device.script.pojo.param.PqScriptIssueParam;
|
import com.njcn.gather.device.script.pojo.param.PqScriptIssueParam;
|
||||||
import com.njcn.gather.device.script.pojo.po.SourceIssue;
|
import com.njcn.gather.device.script.pojo.po.SourceIssue;
|
||||||
import com.njcn.gather.device.script.service.IPqScriptCheckDataService;
|
import com.njcn.gather.device.script.service.IPqScriptCheckDataService;
|
||||||
@@ -46,8 +47,6 @@ import java.time.ZonedDateTime;
|
|||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.time.format.DateTimeParseException;
|
import java.time.format.DateTimeParseException;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.ExecutorService;
|
|
||||||
import java.util.concurrent.Executors;
|
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -85,7 +84,7 @@ public class SocketDevResponseService {
|
|||||||
private final IAdPlanService adPlanService;
|
private final IAdPlanService adPlanService;
|
||||||
|
|
||||||
|
|
||||||
private final ExecutorService executorPool = Executors.newFixedThreadPool(10);
|
// private final ExecutorService executorPool = Executors.newFixedThreadPool(10);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -986,7 +985,12 @@ public class SocketDevResponseService {
|
|||||||
SocketManager.sendMsg(param.getUserPageId() + handlerSourceStr, JSON.toJSONString(xuMsg));
|
SocketManager.sendMsg(param.getUserPageId() + handlerSourceStr, JSON.toJSONString(xuMsg));
|
||||||
} else {
|
} else {
|
||||||
//TODO 是否最终检测完成需要推送给用户
|
//TODO 是否最终检测完成需要推送给用户
|
||||||
iPqDevService.updateResult(param.getDevIds(), param.getCode());
|
PqScriptCheckDataParam checkDataParam=new PqScriptCheckDataParam();
|
||||||
|
checkDataParam.setScriptId(param.getScriptId());
|
||||||
|
checkDataParam.setIsValueTypeName(false);
|
||||||
|
List<String> valueType = iPqScriptCheckDataService.getValueType(checkDataParam);
|
||||||
|
|
||||||
|
iPqDevService.updateResult(param.getDevIds(),valueType, param.getCode());
|
||||||
CnSocketUtil.quitSend(param);
|
CnSocketUtil.quitSend(param);
|
||||||
}
|
}
|
||||||
successComm.clear();
|
successComm.clear();
|
||||||
|
|||||||
@@ -177,10 +177,11 @@ public interface IPqDevService extends IService<PqDev> {
|
|||||||
/**
|
/**
|
||||||
* 正式监测完成,修改中断状态
|
* 正式监测完成,修改中断状态
|
||||||
* @param ids
|
* @param ids
|
||||||
|
* @param valueType
|
||||||
* @param code
|
* @param code
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
boolean updateResult(List<String> ids,String code);
|
boolean updateResult(List<String> ids,List<String> valueType ,String code);
|
||||||
|
|
||||||
void updatePqDevReportState(String devId, int i);
|
void updatePqDevReportState(String devId, int i);
|
||||||
|
|
||||||
|
|||||||
@@ -489,9 +489,9 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
|
|||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean updateResult(List<String> ids, String code) {
|
public boolean updateResult(List<String> ids,List<String> valueType, String code) {
|
||||||
if (CollUtil.isNotEmpty(ids)) {
|
if (CollUtil.isNotEmpty(ids)) {
|
||||||
Map<String, Integer> result = detectionDataDealService.devResult(ids, code);
|
Map<String, Integer> result = detectionDataDealService.devResult(ids,valueType, code);
|
||||||
List<PqDev> list = this.list(new LambdaQueryWrapper<PqDev>().in(PqDev::getId, ids));
|
List<PqDev> list = this.list(new LambdaQueryWrapper<PqDev>().in(PqDev::getId, ids));
|
||||||
for (PqDev pqDev : list) {
|
for (PqDev pqDev : list) {
|
||||||
if (result.containsKey(pqDev.getId())) {
|
if (result.containsKey(pqDev.getId())) {
|
||||||
|
|||||||
@@ -1,15 +1,14 @@
|
|||||||
package com.njcn.gather.device.script.service.impl;
|
package com.njcn.gather.device.script.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.github.yulichang.toolkit.JoinWrappers;
|
|
||||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||||
import com.njcn.common.pojo.enums.common.DataStateEnum;
|
import com.njcn.common.pojo.enums.common.DataStateEnum;
|
||||||
import com.njcn.gather.device.script.mapper.PqScriptCheckDataMapper;
|
import com.njcn.gather.device.script.mapper.PqScriptCheckDataMapper;
|
||||||
import com.njcn.gather.device.script.pojo.param.PqScriptCheckDataParam;
|
import com.njcn.gather.device.script.pojo.param.PqScriptCheckDataParam;
|
||||||
import com.njcn.gather.device.script.pojo.po.PqScriptCheckData;
|
import com.njcn.gather.device.script.pojo.po.PqScriptCheckData;
|
||||||
import com.njcn.gather.device.script.pojo.vo.PqScriptCheckDataVO;
|
|
||||||
import com.njcn.gather.device.script.service.IPqScriptCheckDataService;
|
import com.njcn.gather.device.script.service.IPqScriptCheckDataService;
|
||||||
import com.njcn.gather.system.dictionary.mapper.DictTreeMapper;
|
import com.njcn.gather.system.dictionary.mapper.DictTreeMapper;
|
||||||
import com.njcn.gather.system.dictionary.pojo.po.DictTree;
|
import com.njcn.gather.system.dictionary.pojo.po.DictTree;
|
||||||
@@ -18,7 +17,6 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -45,7 +43,7 @@ public class PqScriptCheckDataServiceImpl extends ServiceImpl<PqScriptCheckDataM
|
|||||||
queryWrapper.selectAll(PqScriptCheckData.class)
|
queryWrapper.selectAll(PqScriptCheckData.class)
|
||||||
.leftJoin(DictTree.class, DictTree::getId, PqScriptCheckData::getValueType)
|
.leftJoin(DictTree.class, DictTree::getId, PqScriptCheckData::getValueType)
|
||||||
.eq(PqScriptCheckData::getScriptId, param.getScriptId())
|
.eq(PqScriptCheckData::getScriptId, param.getScriptId())
|
||||||
.eq(PqScriptCheckData::getIndex, param.getIndex())
|
.eq(ObjectUtil.isNotNull(param.getIndex()),PqScriptCheckData::getIndex, param.getIndex())
|
||||||
.eq(PqScriptCheckData::getEnable, DataStateEnum.ENABLE.getCode());
|
.eq(PqScriptCheckData::getEnable, DataStateEnum.ENABLE.getCode());
|
||||||
if (param.getIsValueTypeName()) {
|
if (param.getIsValueTypeName()) {
|
||||||
queryWrapper.selectAs(DictTree::getCode, PqScriptCheckData::getValueType);
|
queryWrapper.selectAs(DictTree::getCode, PqScriptCheckData::getValueType);
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.njcn.gather.device.script.util;
|
package com.njcn.gather.device.script.util;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.njcn.gather.device.script.pojo.enums.ResultUnitEnum;
|
import com.njcn.gather.device.script.pojo.enums.ResultUnitEnum;
|
||||||
import com.njcn.gather.device.script.pojo.po.PqScriptDtls;
|
import com.njcn.gather.device.script.pojo.po.PqScriptDtls;
|
||||||
|
|
||||||
@@ -16,6 +17,9 @@ import java.util.stream.Collectors;
|
|||||||
*/
|
*/
|
||||||
public class ScriptDtlsDesc {
|
public class ScriptDtlsDesc {
|
||||||
public static StringBuffer getStringBuffer(List<PqScriptDtls> scriptDtlIndex, Boolean isValueType) {
|
public static StringBuffer getStringBuffer(List<PqScriptDtls> scriptDtlIndex, Boolean isValueType) {
|
||||||
|
if(ObjectUtil.isNull(isValueType)){
|
||||||
|
isValueType=false;
|
||||||
|
}
|
||||||
StringBuffer buffer = new StringBuffer();
|
StringBuffer buffer = new StringBuffer();
|
||||||
buffer.append("输入:");
|
buffer.append("输入:");
|
||||||
appendValue(scriptDtlIndex, buffer, "Freq", "频率", ResultUnitEnum.FREQ_UNIT.getUnit(), null);
|
appendValue(scriptDtlIndex, buffer, "Freq", "频率", ResultUnitEnum.FREQ_UNIT.getUnit(), null);
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
Sort int(4) NOT NULL COMMENT '总检测脚本中的测试项序号',
|
Sort int(4) NOT NULL COMMENT '总检测脚本中的测试项序号',
|
||||||
AD_Type CHAR(32) NOT NULL COMMENT '检测指标,字典表',
|
AD_Type CHAR(32) NOT NULL COMMENT '检测指标,字典表',
|
||||||
Data_Type CHAR(32) NOT NULL COMMENT '数据指标,只有数据源为分钟统计时候才会使用(最大、最小、平均、CP95,默认平均值),字典表',
|
Data_Type CHAR(32) NOT NULL COMMENT '数据指标,只有数据源为分钟统计时候才会使用(最大、最小、平均、CP95,默认平均值),字典表',
|
||||||
|
Result_Flag int(1) COMMENT '1不合格 2合格 4无法处理',
|
||||||
A_Value varchar(30) DEFAULT NULL COMMENT 'A相值',
|
A_Value varchar(30) DEFAULT NULL COMMENT 'A相值',
|
||||||
B_Value varchar(30) DEFAULT NULL COMMENT 'B相值',
|
B_Value varchar(30) DEFAULT NULL COMMENT 'B相值',
|
||||||
C_Value varchar(30) DEFAULT NULL COMMENT 'C相值',
|
C_Value varchar(30) DEFAULT NULL COMMENT 'C相值',
|
||||||
@@ -37,7 +38,7 @@
|
|||||||
B_Value json NULL COMMENT 'B相值',
|
B_Value json NULL COMMENT 'B相值',
|
||||||
C_Value json NULL COMMENT 'C相值',
|
C_Value json NULL COMMENT 'C相值',
|
||||||
T_Value json NULL COMMENT 'T相值(没有相别的则存这里)',
|
T_Value json NULL COMMENT 'T相值(没有相别的则存这里)',
|
||||||
PRIMARY KEY (Monitor_Id, Script_Id, Sort, AD_Type)
|
PRIMARY KEY (Monitor_Id, Script_Id, Sort, AD_Type,Data_Type)
|
||||||
) COMMENT='监测数据表';
|
) COMMENT='监测数据表';
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
|||||||
@@ -23,8 +23,9 @@ public interface DetectionDataDealService extends IReplenishMybatisService<AdHar
|
|||||||
/**
|
/**
|
||||||
* 根据终端id查询终端所有监测项目是否合格
|
* 根据终端id查询终端所有监测项目是否合格
|
||||||
* @param ids
|
* @param ids
|
||||||
|
* @param valueType
|
||||||
* @param code
|
* @param code
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
Map<String,Integer> devResult(List<String> ids,String code);
|
Map<String,Integer> devResult(List<String> ids,List<String> valueType,String code);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,9 @@ import com.njcn.gather.storage.pojo.po.AdNonHarmonicResult;
|
|||||||
import com.njcn.gather.storage.pojo.vo.RawDataVO;
|
import com.njcn.gather.storage.pojo.vo.RawDataVO;
|
||||||
import com.njcn.gather.storage.pojo.vo.RawResultDataVO;
|
import com.njcn.gather.storage.pojo.vo.RawResultDataVO;
|
||||||
import com.njcn.gather.storage.service.AdHarmonicService;
|
import com.njcn.gather.storage.service.AdHarmonicService;
|
||||||
import io.swagger.models.auth.In;
|
import com.njcn.gather.system.dictionary.pojo.enums.DictDataEnum;
|
||||||
|
import com.njcn.gather.system.dictionary.pojo.po.DictData;
|
||||||
|
import com.njcn.gather.system.dictionary.service.IDictDataService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@@ -40,6 +42,7 @@ import java.util.stream.Collectors;
|
|||||||
public class AdHarmonicServiceImpl extends ServiceImpl<AdHarmonicMappper, AdHarmonicResult> implements AdHarmonicService {
|
public class AdHarmonicServiceImpl extends ServiceImpl<AdHarmonicMappper, AdHarmonicResult> implements AdHarmonicService {
|
||||||
|
|
||||||
private final AdNonHarmonicMapper adNonHarmonicMapper;
|
private final AdNonHarmonicMapper adNonHarmonicMapper;
|
||||||
|
private final IDictDataService dictDataService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<AdBaseResult> get(String scriptId, List<Integer> sort, String deviceId, String chnNum, Integer code) {
|
public List<AdBaseResult> get(String scriptId, List<Integer> sort, String deviceId, String chnNum, Integer code) {
|
||||||
@@ -129,16 +132,23 @@ public class AdHarmonicServiceImpl extends ServiceImpl<AdHarmonicMappper, AdHarm
|
|||||||
.orderByAsc(AdHarmonicResult::getTimeId);
|
.orderByAsc(AdHarmonicResult::getTimeId);
|
||||||
|
|
||||||
List<AdHarmonicResult> adHarmonicResults = this.getBaseMapper().selectJoinList(AdHarmonicResult.class, wrapper);
|
List<AdHarmonicResult> adHarmonicResults = this.getBaseMapper().selectJoinList(AdHarmonicResult.class, wrapper);
|
||||||
List<Double> harmNum = param.getHarmNum();
|
|
||||||
|
|
||||||
Map<String, RawResultDataVO> info=new LinkedHashMap<>(3);
|
Map<String, RawResultDataVO> info=new LinkedHashMap<>(3);
|
||||||
|
if(CollUtil.isNotEmpty(adHarmonicResults)){
|
||||||
|
List<Double> harmNum = param.getHarmNum();
|
||||||
RawResultDataVO dataVO;
|
RawResultDataVO dataVO;
|
||||||
|
DictData dictData = dictDataService.getDictDataById(adHarmonicResults.get(0).getAdType());
|
||||||
|
String unit;
|
||||||
|
if(DictDataEnum.I2_50.getCode().equals(dictData.getCode())||DictDataEnum.SI_1_49.getCode().equals(dictData.getCode())){
|
||||||
|
unit="A";
|
||||||
|
}else{
|
||||||
|
unit="%";
|
||||||
|
}
|
||||||
for (AdHarmonicResult harmonicResult : adHarmonicResults) {
|
for (AdHarmonicResult harmonicResult : adHarmonicResults) {
|
||||||
for (Double i : harmNum) {
|
for (Double i : harmNum) {
|
||||||
dataVO = new RawResultDataVO();
|
dataVO = new RawResultDataVO();
|
||||||
dataVO.setHarmNum(i);
|
dataVO.setHarmNum(i);
|
||||||
dataVO.setIsData(harmonicResult.getResultFlag());
|
dataVO.setIsData(harmonicResult.getResultFlag());
|
||||||
dataVO.setUnit("%");
|
dataVO.setUnit(unit);
|
||||||
try {
|
try {
|
||||||
Field fieldA = harmonicResult.getClass().getDeclaredField("aValue" + isHarmOrInHarm(i).intValue());
|
Field fieldA = harmonicResult.getClass().getDeclaredField("aValue" + isHarmOrInHarm(i).intValue());
|
||||||
fieldA.setAccessible(true);
|
fieldA.setAccessible(true);
|
||||||
@@ -165,6 +175,8 @@ public class AdHarmonicServiceImpl extends ServiceImpl<AdHarmonicMappper, AdHarm
|
|||||||
info.put(String.valueOf(i),dataVO) ;
|
info.put(String.valueOf(i),dataVO) ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
DynamicTableNameHandler.remove();
|
DynamicTableNameHandler.remove();
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -94,12 +94,13 @@ public class DetectionDataServiceImpl extends ReplenishMybatisServiceImpl<Detect
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Integer> devResult(List<String> ids,String code) {
|
public Map<String, Integer> devResult(List<String> ids,List<String> valueType,String code) {
|
||||||
List<AdNonHarmonicResult> noHarm=new ArrayList<>();
|
List<AdNonHarmonicResult> noHarm=new ArrayList<>();
|
||||||
for (String id : ids) {
|
for (String id : ids) {
|
||||||
DynamicTableNameHandler.setTableName("ad_non_harmonic_result_" + code);
|
DynamicTableNameHandler.setTableName("ad_non_harmonic_result_" + code);
|
||||||
noHarm.addAll(adNonHarmonicService.list( new LambdaQueryWrapper<AdNonHarmonicResult>()
|
noHarm.addAll(adNonHarmonicService.list( new LambdaQueryWrapper<AdNonHarmonicResult>()
|
||||||
.like(AdNonHarmonicResult::getMonitorId,id)
|
.like(AdNonHarmonicResult::getMonitorId,id)
|
||||||
|
.in(CollUtil.isNotEmpty(valueType),AdNonHarmonicResult::getAdType,valueType)
|
||||||
)) ;
|
)) ;
|
||||||
}
|
}
|
||||||
DynamicTableNameHandler.remove();
|
DynamicTableNameHandler.remove();
|
||||||
@@ -108,6 +109,7 @@ public class DetectionDataServiceImpl extends ReplenishMybatisServiceImpl<Detect
|
|||||||
DynamicTableNameHandler.setTableName("ad_harmonic_result_" + code);
|
DynamicTableNameHandler.setTableName("ad_harmonic_result_" + code);
|
||||||
harm.addAll(this.list( new LambdaQueryWrapper<AdHarmonicResult>()
|
harm.addAll(this.list( new LambdaQueryWrapper<AdHarmonicResult>()
|
||||||
.like(AdHarmonicResult::getMonitorId,id)
|
.like(AdHarmonicResult::getMonitorId,id)
|
||||||
|
.in(CollUtil.isNotEmpty(valueType),AdHarmonicResult::getAdType,valueType)
|
||||||
)) ;
|
)) ;
|
||||||
}
|
}
|
||||||
DynamicTableNameHandler.remove();
|
DynamicTableNameHandler.remove();
|
||||||
|
|||||||
@@ -28,8 +28,11 @@ public enum DictDataEnum {
|
|||||||
AVG_VALUE("平均值", "Avg_value"),
|
AVG_VALUE("平均值", "Avg_value"),
|
||||||
Own_value("所有值", "Own_value"),
|
Own_value("所有值", "Own_value"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 字典树code
|
||||||
|
*/
|
||||||
|
I2_50("谐波电流幅值", "I2-50"),
|
||||||
|
SI_1_49("间谐波电流幅值", "SI_1-49"),
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user