代码调整
This commit is contained in:
@@ -28,6 +28,9 @@ import com.njcn.gather.storage.pojo.po.AdNonHarmonicResult;
|
||||
import com.njcn.gather.storage.service.DetectionDataDealService;
|
||||
import com.njcn.gather.system.dictionary.pojo.enums.DictDataEnum;
|
||||
import com.njcn.gather.system.pojo.enums.DicDataEnum;
|
||||
import com.njcn.gather.system.reg.pojo.po.SysRegRes;
|
||||
import com.njcn.gather.system.reg.pojo.vo.SysRegResVO;
|
||||
import com.njcn.gather.system.reg.service.ISysRegResService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -53,24 +56,24 @@ public class SocketDevResponseService {
|
||||
|
||||
private final String handlerStr = "_Dev";
|
||||
private final String handlerSourceStr = "_Source";
|
||||
// ISO 8601格式
|
||||
private final DateTimeFormatter formatter = DateTimeFormatter.ISO_DATE_TIME;
|
||||
private final Integer[] resCount = {0,20,5,1};
|
||||
|
||||
//private final List<String> dicDataList = Stream.of(DicDataEnum.FREQ.getCode(),DicDataEnum.V.getCode())
|
||||
|
||||
private final List<String> nonHarmonicList = Stream.of(DicDataEnum.FREQ.getCode(),DicDataEnum.V.getCode(),DicDataEnum.I.getCode(),DicDataEnum.IMBV.getCode(),DicDataEnum.IMBA.getCode()).collect(Collectors.toList());
|
||||
private final List<String> harmonicList = Stream.of(DicDataEnum.HV.getCode(),DicDataEnum.HI.getCode(),DicDataEnum.HP.getCode(),DicDataEnum.HSV.getCode(),DicDataEnum.HSI.getCode()).collect(Collectors.toList());
|
||||
|
||||
private final WebSocketHandler webSocketHandler;
|
||||
private final IPqDevService iPqDevService;
|
||||
private final IPqScriptDtlsService scriptDtlsService;
|
||||
private final IPqScriptDtlsService pqScriptDtlsService;
|
||||
private final DetectionServiceImpl detectionServiceImpl;
|
||||
|
||||
private final DetectionDataDealService detectionDataDealService;
|
||||
|
||||
|
||||
private final ISysRegResService iSysRegResService;
|
||||
private final ExecutorService executorPool = Executors.newFixedThreadPool(5);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 存储的装置相序数据
|
||||
*/
|
||||
@@ -87,7 +90,6 @@ public class SocketDevResponseService {
|
||||
*/
|
||||
List<String> monitorIdListComm = new ArrayList<>();
|
||||
|
||||
|
||||
private List<PreDetection> devList = new ArrayList<>();
|
||||
/**
|
||||
* 装置名称
|
||||
@@ -102,15 +104,13 @@ public class SocketDevResponseService {
|
||||
*/
|
||||
List<String> successComm = new ArrayList<>();
|
||||
|
||||
|
||||
/**
|
||||
* 保存成功的协议
|
||||
*/
|
||||
List<String> successXieyi = new ArrayList<>();
|
||||
List<String> successXieyi3 = new ArrayList<>();
|
||||
|
||||
|
||||
List<AdNonHarmonicResult> adNonHarmonicResultList = new ArrayList<>();
|
||||
// List<AdNonHarmonicResult> adNonHarmonicResultList = new ArrayList<>();
|
||||
|
||||
|
||||
public void deal(PreDetectionParam param, String msg) throws Exception{
|
||||
@@ -341,7 +341,7 @@ public class SocketDevResponseService {
|
||||
DevData devData = JSON.parseObject(data, DevData.class);
|
||||
SourceResponseCodeEnum dictDataEnumByCode = SourceResponseCodeEnum.getDictDataEnumByCode(socketDataMsg.getCode());
|
||||
if (ObjectUtil.isNotNull(dictDataEnumByCode)) {
|
||||
SocketMsg socketMsg = new SocketMsg();
|
||||
SocketMsg<String> socketMsg = new SocketMsg<>();
|
||||
switch (dictDataEnumByCode) {
|
||||
case SUCCESS:
|
||||
//webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(MsgUtil.msgToWebData(socketDataMsg,devNameMapComm,1)));
|
||||
@@ -442,15 +442,15 @@ public class SocketDevResponseService {
|
||||
String data = socketDataMsg.getData();
|
||||
DevData devData = JSON.parseObject(data, DevData.class);
|
||||
SourceResponseCodeEnum dictDataEnumByCode = SourceResponseCodeEnum.getDictDataEnumByCode(socketDataMsg.getCode());
|
||||
|
||||
SourceIssue sourceIssue = SocketManager.getSourceList().get(0);
|
||||
test(devData, dictDataEnumByCode, sourceIssue, socketDataMsg, param);
|
||||
|
||||
realDonging(devData, dictDataEnumByCode, sourceIssue, socketDataMsg, param);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void test(DevData devData, SourceResponseCodeEnum dictDataEnumByCode, SourceIssue sourceIssue, SocketDataMsg socketDataMsg, PreDetectionParam param) {
|
||||
public void realDonging(DevData devData, SourceResponseCodeEnum dictDataEnumByCode, SourceIssue sourceIssue, SocketDataMsg socketDataMsg, PreDetectionParam param) {
|
||||
if (ObjectUtil.isNotNull(dictDataEnumByCode)) {
|
||||
SocketMsg<String> socketMsg = new SocketMsg<>();
|
||||
switch (dictDataEnumByCode) {
|
||||
@@ -461,6 +461,9 @@ public class SocketDevResponseService {
|
||||
System.out.println("获取devData数量............." + devDataList.size());
|
||||
|
||||
if (successComm.size() == monitorIdListComm.size()) {
|
||||
//TODO 理论上遇到返回code10200的数量与监测点数量一致则认为数据返回结束,但是会存在缺失数据情况,例如有部分装置是没有暂降功能的
|
||||
|
||||
|
||||
System.out.println(sourceIssue.getType() +"_"+ sourceIssue.getIndex() + "当前测试小项读取数据已经全部结束。。。。。。。。。");
|
||||
|
||||
//原始数据入库
|
||||
@@ -501,6 +504,7 @@ public class SocketDevResponseService {
|
||||
webSocketVO.setData(devListRes);
|
||||
webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(webSocketVO));
|
||||
|
||||
|
||||
}
|
||||
System.out.println("当前小项结束进行删除============"+sourceIssue.getType()+"_"+sourceIssue.getIndex());
|
||||
|
||||
@@ -517,6 +521,9 @@ public class SocketDevResponseService {
|
||||
xuMsg.setData(JSON.toJSONString(sourceIssues));
|
||||
xuMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue() + "&&" + sourceIssues.getType());
|
||||
SocketManager.sendMsg(param.getUserPageId() + handlerSourceStr, MsgUtil.toJsonWithNewLinePlain(xuMsg));
|
||||
}else {
|
||||
//TODO 是否最终检测完成需要推送给用户
|
||||
quitSend(param);
|
||||
}
|
||||
|
||||
successComm.clear();
|
||||
@@ -557,13 +564,13 @@ public class SocketDevResponseService {
|
||||
private void quitDeal(SocketDataMsg socketDataMsg, PreDetectionParam param, String msg) {
|
||||
SourceResponseCodeEnum dictDataEnumByCode = SourceResponseCodeEnum.getDictDataEnumByCode(socketDataMsg.getCode());
|
||||
SourceOperateCodeEnum operateCodeEnum = SourceOperateCodeEnum.getDictDataEnumByCode(socketDataMsg.getOperateCode());
|
||||
SocketMsg socketMsg = new SocketMsg();
|
||||
SocketMsg<String> socketMsg = new SocketMsg<>();
|
||||
String s = param.getUserPageId() + handlerStr;
|
||||
|
||||
switch (dictDataEnumByCode) {
|
||||
switch (Objects.requireNonNull(dictDataEnumByCode)) {
|
||||
case SUCCESS:
|
||||
//通讯校验成功
|
||||
switch (operateCodeEnum) {
|
||||
switch (Objects.requireNonNull(operateCodeEnum)) {
|
||||
case QUIT_INIT_01:
|
||||
//关闭所有
|
||||
SocketManager.removeUser(s);
|
||||
@@ -579,6 +586,8 @@ public class SocketDevResponseService {
|
||||
socketMsg.setOperateCode("QUIT_FUNEND$02");
|
||||
SocketManager.sendMsg(s, JSON.toJSONString(socketMsg));
|
||||
break;
|
||||
default:
|
||||
|
||||
}
|
||||
break;
|
||||
case UNPROCESSED_BUSINESS:
|
||||
@@ -733,7 +742,6 @@ public class SocketDevResponseService {
|
||||
this.success = new ArrayList<>();
|
||||
this.devDataMap = new HashMap<>();
|
||||
|
||||
this.adNonHarmonicResultList.clear();
|
||||
this.devDataList.clear();
|
||||
this.devList.clear();
|
||||
|
||||
@@ -745,6 +753,10 @@ public class SocketDevResponseService {
|
||||
this.devNameMapComm = pqDevList.stream().collect(Collectors.toMap(PreDetection::getDevIP, PreDetection::getDevName));
|
||||
this.devIdMapComm = pqDevList.stream().collect(Collectors.toMap(PreDetection::getDevIP, PreDetection::getDevId));
|
||||
|
||||
//初始化有效数据数
|
||||
Map<String, SysRegResVO> sysRegResMap = iSysRegResService.listRegRes();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -756,7 +768,6 @@ public class SocketDevResponseService {
|
||||
*/
|
||||
private void baseDataInsert(List<DevData> devDataList,SourceIssue sourceIssue,PreDetectionParam param){
|
||||
Runnable runnable = () -> {
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ISO_DATE_TIME; // ISO 8601格式
|
||||
|
||||
List<AdNonHarmonicResult> adNonHarmonicResultList = new ArrayList<>();
|
||||
List<AdHarmonicResult> adHarmonicResultList = new ArrayList<>();
|
||||
@@ -764,17 +775,18 @@ public class SocketDevResponseService {
|
||||
LocalDateTime localDateTime = timeFormat(data.getTime(),formatter);
|
||||
if(Objects.nonNull(localDateTime)){
|
||||
|
||||
if(Stream.of("FREQ","V","IMBA","P","I","IMBV").collect(Collectors.toList()).contains(sourceIssue.getType())){
|
||||
String[] splitArr = data.getId().split("_");
|
||||
String temId = devDataMap.get(splitArr[0]).getId()+"_"+splitArr[1];
|
||||
if(nonHarmonicList.contains(sourceIssue.getType())){
|
||||
AdNonHarmonicResult adNonHarmonicResult = new AdNonHarmonicResult();
|
||||
adNonHarmonicResult.setTimeId(localDateTime);
|
||||
adNonHarmonicResult.setMonitorId(data.getId());
|
||||
adNonHarmonicResult.setMonitorId(temId);
|
||||
adNonHarmonicResult.setScriptId(param.getScriptId());
|
||||
adNonHarmonicResult.setSort(sourceIssue.getIndex());
|
||||
adNonHarmonicResult.setAdType(sourceIssue.getId());
|
||||
adNonHarmonicResult.setDataType("avg");
|
||||
DevData.SqlDataDTO.ListDTO tem = data.getSqlData().get(0).getList();
|
||||
|
||||
|
||||
Double a = tem.getA();
|
||||
Double b = tem.getB();
|
||||
Double c = tem.getC();
|
||||
@@ -793,27 +805,31 @@ public class SocketDevResponseService {
|
||||
}
|
||||
adNonHarmonicResultList.add(adNonHarmonicResult);
|
||||
}else {
|
||||
//DevData.SqlDataDTO.ListDTO vvv = data.getSqlData().get(0).getList();
|
||||
AdHarmonicResult adHarmonicResult = new AdHarmonicResult();
|
||||
adHarmonicResult.setTimeId(localDateTime);
|
||||
adHarmonicResult.setMonitorId(data.getId());
|
||||
|
||||
adHarmonicResult.setMonitorId(temId);
|
||||
adHarmonicResult.setScriptId(param.getScriptId());
|
||||
adHarmonicResult.setSort(sourceIssue.getIndex());
|
||||
adHarmonicResult.setAdType(sourceIssue.getId());
|
||||
adHarmonicResult.setDataType("avg");
|
||||
|
||||
/* Double aV = vvv.getA();
|
||||
Double bV = vvv.getB();
|
||||
Double cV = vvv.getC();
|
||||
if(Objects.nonNull(aV)){
|
||||
adHarmonicResult.setAValue1(aV.toString());
|
||||
if(DicDataEnum.HI.getCode().equals(sourceIssue.getType())||DicDataEnum.HSI.getCode().equals(sourceIssue.getType())){
|
||||
DevData.SqlDataDTO.ListDTO vvv = data.getSqlData().get(0).getList();
|
||||
Double aV = vvv.getA();
|
||||
Double bV = vvv.getB();
|
||||
Double cV = vvv.getC();
|
||||
if (Objects.nonNull(aV)) {
|
||||
adHarmonicResult.setAValue1(String.format("%.7f", aV));
|
||||
}
|
||||
if (Objects.nonNull(bV)) {
|
||||
adHarmonicResult.setBValue1(String.format("%.7f", bV));
|
||||
}
|
||||
if (Objects.nonNull(cV)) {
|
||||
adHarmonicResult.setCValue1(String.format("%.7f", cV));
|
||||
}
|
||||
}
|
||||
if(Objects.nonNull(bV)){
|
||||
adHarmonicResult.setBValue1(bV.toString());
|
||||
}
|
||||
if(Objects.nonNull(cV)){
|
||||
adHarmonicResult.setCValue1(cV.toString());
|
||||
}*/
|
||||
|
||||
DevData.SqlDataHarmDTO.ListDTO tem = data.getSqlDataHarm().get(0).getList();
|
||||
List<String> a = tem.getA();
|
||||
List<String> b = tem.getB();
|
||||
@@ -841,7 +857,6 @@ public class SocketDevResponseService {
|
||||
}
|
||||
adHarmonicResultList.add(adHarmonicResult);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -205,8 +205,8 @@ public class SocketSourceResponseService {
|
||||
System.out.println("向装置下发的参数"+comm);
|
||||
phaseSequenceParam.setMoniterIdList(moniterIdList);
|
||||
phaseSequenceParam.setDataType(comm);
|
||||
phaseSequenceParam.setReadCount(2);
|
||||
phaseSequenceParam.setIgnoreCount(10);
|
||||
phaseSequenceParam.setReadCount(1);
|
||||
phaseSequenceParam.setIgnoreCount(1);
|
||||
socketMsg.setData(JSON.toJSONString(phaseSequenceParam));
|
||||
SocketManager.sendMsg(s, JSON.toJSONString(socketMsg));
|
||||
|
||||
|
||||
@@ -22,6 +22,16 @@ public class PreDetectionParam {
|
||||
*/
|
||||
private String planId;
|
||||
|
||||
/**
|
||||
* 检测计划code
|
||||
*/
|
||||
private String planCode;
|
||||
|
||||
/**
|
||||
* 数字、模拟、比对
|
||||
*/
|
||||
private String pattern;
|
||||
|
||||
/**
|
||||
* 用户功能组成唯一标识 zhangsan_test
|
||||
*/
|
||||
|
||||
@@ -236,7 +236,7 @@ public class DetectionServiceImpl {
|
||||
DetectionData c = rangeComparisonList(map.get(TYPE_C), pqErrSysDtls, fData, channelTypeCList.get(0).getFAmp(), dataRule);
|
||||
result.setCValue(c.getData() + "_" + c.getIsData()+"_"+c.getResultData());
|
||||
|
||||
List<Integer> numbers = Arrays.asList(a.getIsData(), b.getIsData(), a.getIsData()).stream().distinct().collect(Collectors.toList());
|
||||
List<Integer> numbers = Arrays.asList(a.getIsData(), b.getIsData(), c.getIsData()).stream().distinct().collect(Collectors.toList());
|
||||
return getAdNonHarmonicResult(result, numbers);
|
||||
}
|
||||
return result;
|
||||
@@ -280,8 +280,8 @@ public class DetectionServiceImpl {
|
||||
harmonicResult.setAdType(pqErrSysDtls.get(0).getScriptType());
|
||||
harmonicResult.setDataType("avg");
|
||||
reflectHarmonic("a", integerBooleanA, harmonicResult);
|
||||
reflectHarmonic("b", integerBooleanA, harmonicResult);
|
||||
reflectHarmonic("c", integerBooleanA, harmonicResult);
|
||||
reflectHarmonic("b", integerBooleanB, harmonicResult);
|
||||
reflectHarmonic("c", integerBooleanC, harmonicResult);
|
||||
List<Integer> list = new ArrayList<>();
|
||||
list.addAll(integerBooleanA.stream().map(DetectionData::getIsData).distinct().collect(Collectors.toList()));
|
||||
list.addAll(integerBooleanB.stream().map(DetectionData::getIsData).distinct().collect(Collectors.toList()));
|
||||
@@ -346,9 +346,9 @@ public class DetectionServiceImpl {
|
||||
.filter(x -> TYPE_C.equals(x.getPhase()))
|
||||
.collect(Collectors.toList());
|
||||
DetectionData c = rangeComparisonList(map.get(TYPE_C), pqErrSysDtls, fData, channelTypeCList.get(0).getValue(), dataRule);
|
||||
result.setCValue(c.getData() + "_" + c.getIsData()+"_"+b.getResultData());
|
||||
result.setCValue(c.getData() + "_" + c.getIsData()+"_"+c.getResultData());
|
||||
|
||||
List<Integer> numbers = Arrays.asList(a.getIsData(), b.getIsData(), a.getIsData());
|
||||
List<Integer> numbers = Arrays.asList(a.getIsData(), b.getIsData(), c.getIsData());
|
||||
return getAdNonHarmonicResult(result, numbers);
|
||||
}else{
|
||||
List<PqScriptCheckData> channelTypeBList = checkData.stream()
|
||||
@@ -467,7 +467,7 @@ public class DetectionServiceImpl {
|
||||
DetectionData c = rangeComparisonList(mag.get(TYPE_C), magErrList, fData, retainCTime, dataRule);
|
||||
result.setCValue(c.getData() + "_" + c.getIsData()+"_"+c.getResultData());
|
||||
|
||||
List<Integer> numbers = Arrays.asList(a.getIsData(), b.getIsData(), a.getIsData()).stream().distinct().collect(Collectors.toList());
|
||||
List<Integer> numbers = Arrays.asList(a.getIsData(), b.getIsData(), c.getIsData()).stream().distinct().collect(Collectors.toList());
|
||||
|
||||
return getAdNonHarmonicResult(result, numbers);
|
||||
}
|
||||
@@ -525,7 +525,7 @@ public class DetectionServiceImpl {
|
||||
.sorted(Comparator.comparing(Double::doubleValue).reversed())
|
||||
.collect(Collectors.toList());
|
||||
b = list.stream()
|
||||
.filter(x -> ObjectUtil.isNotNull(x.getA()))
|
||||
.filter(x -> ObjectUtil.isNotNull(x.getB()))
|
||||
.map(DevData.SqlDataDTO.ListDTO::getB)
|
||||
.sorted(Comparator.comparing(Double::doubleValue).reversed())
|
||||
.collect(Collectors.toList());
|
||||
|
||||
@@ -75,6 +75,8 @@ public class SocketManager {
|
||||
*/
|
||||
private static List<SourceIssue> sourceIssueList = new CopyOnWriteArrayList<>();
|
||||
|
||||
private static volatile Boolean paused = false;
|
||||
|
||||
|
||||
|
||||
public static void addSourceList(List<SourceIssue> sList) {
|
||||
|
||||
@@ -44,7 +44,7 @@ public class NettyClient {
|
||||
ch.pipeline()
|
||||
//空闲状态的handler
|
||||
// 添加LineBasedFrameDecoder来按行分割数据
|
||||
// .addLast(new LineBasedFrameDecoder(10240))
|
||||
.addLast(new LineBasedFrameDecoder(10240))
|
||||
.addLast(new IdleStateHandler(20, 0, 0, TimeUnit.SECONDS))
|
||||
.addLast(new StringDecoder(CharsetUtil.UTF_8))
|
||||
.addLast(new StringEncoder(CharsetUtil.UTF_8))
|
||||
|
||||
Reference in New Issue
Block a user