|
@@ -1,6 +1,5 @@
|
|
|
package com.hb.proj.gather.business;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
@@ -8,11 +7,13 @@ import java.util.Map;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
|
+import com.hb.proj.gather.model.AlarmLogVO;
|
|
|
import com.hb.proj.gather.model.SingleCombPO;
|
|
|
import com.hb.proj.gather.model.SingleInsertPO;
|
|
|
import com.hb.proj.gather.model.WellParamVO;
|
|
|
import com.hb.proj.gather.rep.GatherDataRepService;
|
|
|
import com.hb.proj.gather.rep.RedisRepComponent;
|
|
|
+import com.hb.proj.utils.JacksonUtils;
|
|
|
import com.hb.xframework.util.ApplicationContextUtils;
|
|
|
|
|
|
/**
|
|
@@ -37,29 +38,45 @@ public class DataTransRepSingleTask implements Runnable{
|
|
|
logger.info("开始单值数据转换处理{}",singleCombPO.getDevSerial());
|
|
|
Map<String,Float> gatherDatas=singleCombPO.getGatherDatas();
|
|
|
WellParamVO paramConfig=null;
|
|
|
- List<SingleInsertPO> insPOs=new ArrayList<>(gatherDatas.size());
|
|
|
+ //List<SingleInsertPO> insPOs=new ArrayList<>(gatherDatas.size());
|
|
|
SingleInsertPO insPOItm=null;
|
|
|
+
|
|
|
+ Map<String,Float> redisDatas=new HashMap<>(gatherDatas.size()); //进入redis的数据
|
|
|
+ Map<String,SingleInsertPO> mappingDatas=new HashMap<>(gatherDatas.size()); //入库及报警判断用数据
|
|
|
+
|
|
|
for(String pcode : gatherDatas.keySet()) {
|
|
|
paramConfig=DataTransConfig.get(singleCombPO.getDevSerial()+"_"+pcode);
|
|
|
if(paramConfig==null) {
|
|
|
- logger.info("未找到参数配置{}_{}",singleCombPO.getDevSerial(),pcode);
|
|
|
+ logger.warn("未找到参数配置{}_{}",singleCombPO.getDevSerial(),pcode);
|
|
|
continue;
|
|
|
}
|
|
|
insPOItm=new SingleInsertPO(pcode,paramConfig.getParamId(),gatherDatas.get(pcode),singleCombPO.getGatherTime());
|
|
|
DataTransUtils.transSingle(insPOItm, paramConfig);
|
|
|
- insPOs.add(insPOItm);
|
|
|
+
|
|
|
+ redisDatas.put(insPOItm.getParamCode(), insPOItm.getDataVal());
|
|
|
+ mappingDatas.put(insPOItm.getWellParam(), insPOItm);
|
|
|
+
|
|
|
+ //insPOs.add(insPOItm);
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
+ if(paramConfig==null) {
|
|
|
+ logger.warn("设备{}未关联任何井,取消后续操",singleCombPO.getDevSerial());
|
|
|
+ return;
|
|
|
}
|
|
|
|
|
|
- logger.info("单值数据转换完:{}",insPOs.size());
|
|
|
+ List<AlarmLogVO> almlogs=DataAlarmDetector.detect(paramConfig.getWellId(), mappingDatas);
|
|
|
|
|
|
RedisRepComponent repRedis=ApplicationContextUtils.getBean("redisRepComponent", RedisRepComponent.class);
|
|
|
+ repRedis.put(paramConfig.getWellId(), redisDatas);
|
|
|
|
|
|
- repRedis.put(paramConfig.getWellId(), buildRedisDatas(insPOs));
|
|
|
+ repRedis.put(paramConfig.getWellId(), buildRedisAlarm(almlogs));
|
|
|
|
|
|
GatherDataRepService repService=ApplicationContextUtils.getBean("gatherDataRepService", GatherDataRepService.class);
|
|
|
+ repService.save(mappingDatas.values()); //入库
|
|
|
+ repService.saveAlarm(almlogs);
|
|
|
|
|
|
- repService.save(insPOs); //入库
|
|
|
+ logger.info("单值数据转换、报警、入库完成:{}",gatherDatas.size());
|
|
|
}
|
|
|
catch(Exception e) {
|
|
|
e.printStackTrace();
|
|
@@ -69,11 +86,16 @@ public class DataTransRepSingleTask implements Runnable{
|
|
|
}
|
|
|
|
|
|
|
|
|
- private Map<String,Float> buildRedisDatas(List<SingleInsertPO> insPOs) {
|
|
|
- Map<String,Float> rtn=new HashMap<>(insPOs.size());
|
|
|
- for(SingleInsertPO po : insPOs) {
|
|
|
- rtn.put(po.getParamCode(), po.getDataVal());
|
|
|
+ private Map<String,String> buildRedisAlarm(List<AlarmLogVO> almlogs){
|
|
|
+ Map<String,String> rtn=new HashMap<String,String>();
|
|
|
+ if(almlogs==null||almlogs.size()==0) {
|
|
|
+ return rtn;
|
|
|
}
|
|
|
+
|
|
|
+ for(AlarmLogVO almlog : almlogs) {
|
|
|
+ rtn.put(almlog.getParamCode(), JacksonUtils.getJSON(almlog));
|
|
|
+ }
|
|
|
+
|
|
|
return rtn;
|
|
|
}
|
|
|
|