Prechádzať zdrojové kódy

参数加载逻辑调整(增加按井加载、报警定义加载,采集启动前加载完)

chenwen 1 rok pred
rodič
commit
59e063bdc0

+ 48 - 7
src/main/java/com/hb/proj/gather/business/DataTransConfig.java

@@ -1,12 +1,14 @@
 package com.hb.proj.gather.business;
 package com.hb.proj.gather.business;
 
 
+import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 
 
+import com.hb.proj.gather.model.AlarmDefineVO;
 import com.hb.proj.gather.model.WellParamVO;
 import com.hb.proj.gather.model.WellParamVO;
-import com.hb.proj.gather.rep.WellParamService;
+import com.hb.proj.gather.rep.WellConfigService;
 import com.hb.xframework.util.ApplicationContextUtils;
 import com.hb.xframework.util.ApplicationContextUtils;
 
 
 /**
 /**
@@ -18,14 +20,53 @@ public class DataTransConfig {
 	
 	
 	private final static  Logger logger = LoggerFactory.getLogger(DataTransConfig.class);
 	private final static  Logger logger = LoggerFactory.getLogger(DataTransConfig.class);
 
 
-	private static Map<String,WellParamVO> configer=null;
+	private static Map<String,WellParamVO> configerParam=null;
+	
+	private static Map<String,AlarmDefineVO> configerAlarm=null;
+	
+	private static WellConfigService configService=null;
+	
+	public static void init() {
+		logger.info("开始加载参数配置、报警设置...");
+		configService=ApplicationContextUtils.getBean("wellConfigService", WellConfigService.class);
+		configerParam=configService.loadWellParams();
+		configerAlarm=configService.loadAlarmDefines();
+		logger.info("完成加载参数配置、报警设置");
+	}
+	
+	public static void reloadAll() {
+		configerParam=configService.loadWellParams();
+		configerAlarm=configService.loadAlarmDefines();
+	}
+	
+	
+	public static void reloadParams(String wellId) {
+		Map<String,WellParamVO> reloadParams=configService.loadWellParams(wellId);
+		if(reloadParams!=null) {
+			configerParam.putAll(reloadParams);
+		}
+	}
+	
+	public static void reloadAlarms(String wellId) {
+		Map<String,AlarmDefineVO> reloadAlarm=configService.loadAlarmDefines(wellId);
+		if(reloadAlarm!=null) {
+			configerAlarm.putAll(reloadAlarm);
+		}
+	}
+	
 	
 	
 	public static WellParamVO get(String serialParamCode) {
 	public static WellParamVO get(String serialParamCode) {
-		if(configer==null) {
-			logger.info("加载参数配置...");
-			WellParamService  repService=ApplicationContextUtils.getBean("wellParamService", WellParamService.class);
-			configer=repService.loadWellParams();
+		if(configerParam==null) {
+			configerParam=configService.loadWellParams();
+		}
+		return configerParam.get(serialParamCode);
+	}
+	
+	public static List<AlarmDefineVO> getAlarmDefines(String serialNum) {
+		if(configerAlarm==null) {
+			configerAlarm=configService.loadAlarmDefines();
 		}
 		}
-		return configer.get(serialParamCode);
+		
+		return null;
 	}
 	}
 }
 }

+ 4 - 2
src/main/java/com/hb/proj/gather/rep/GatherDataRepService.java

@@ -17,7 +17,7 @@ import com.hb.xframework.dao.core.SpringJdbcDAO;
  */
  */
 @Service
 @Service
 public class GatherDataRepService {
 public class GatherDataRepService {
-
+	
 	@Autowired
 	@Autowired
 	private SpringJdbcDAO  dao;
 	private SpringJdbcDAO  dao;
 	
 	
@@ -43,7 +43,9 @@ public class GatherDataRepService {
 		String sql="""
 		String sql="""
 				insert into tzl_gather_data_multi(well_param,gather_time,data_val1,data_val2) values(?,?,?,?)
 				insert into tzl_gather_data_multi(well_param,gather_time,data_val1,data_val2) values(?,?,?,?)
 				""";
 				""";
-		dao.exeUpdate(sql, diagramPO.getWellParam(),diagramPO.getGatherTime(),list2Str(diagramPO.getDisps()),list2Str(diagramPO.getOths()));
+		
+		String disp=list2Str(diagramPO.getDisps());
+		dao.exeUpdate(sql, diagramPO.getWellParam(),diagramPO.getGatherTime(),disp,list2Str(diagramPO.getOths()));
 	}
 	}
 	
 	
 	private String list2Str(List<Float>  datas) {
 	private String list2Str(List<Float>  datas) {

+ 54 - 3
src/main/java/com/hb/proj/gather/rep/WellConfigService.java

@@ -7,21 +7,28 @@ import java.util.Map;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import com.hb.proj.gather.model.AlarmDefineVO;
 import com.hb.proj.gather.model.WellParamVO;
 import com.hb.proj.gather.model.WellParamVO;
 import com.hb.xframework.dao.core.SpringJdbcDAO;
 import com.hb.xframework.dao.core.SpringJdbcDAO;
 
 
 /**
 /**
- * 获取参数配置信息
+ * 获取井的参数配置信息、报警设置
  * @author cwen
  * @author cwen
  *
  *
  */
  */
 @Service
 @Service
-public class WellParamService {
+public class WellConfigService {
 
 
 	@Autowired
 	@Autowired
 	private SpringJdbcDAO  dao;
 	private SpringJdbcDAO  dao;
 	
 	
 	public Map<String,WellParamVO>  loadWellParams(){
 	public Map<String,WellParamVO>  loadWellParams(){
+		return loadWellParams(null);
+	}
+	public Map<String,WellParamVO>  loadWellParams(String wellId){
+		
+		Object[] args=null;
+		
 		String sql="""
 		String sql="""
 				select 
 				select 
 				(select device_code from tzl_gather_device d where d.well_id=wp.well_id and d.del_if=false limit 1) device_code,
 				(select device_code from tzl_gather_device d where d.well_id=wp.well_id and d.del_if=false limit 1) device_code,
@@ -30,7 +37,13 @@ public class WellParamService {
 				from tzl_well_param wp
 				from tzl_well_param wp
 				where del_if=false
 				where del_if=false
 				""";
 				""";
-		List<WellParamVO>  wellParams=dao.queryForList(sql, WellParamVO.class);
+		if(wellId!=null) {
+			sql+=" and wp.well_id=?";
+			args=new Object[] {wellId};
+		}
+		List<WellParamVO>  wellParams=dao.queryForList(sql, WellParamVO.class,args);
+		
+		
 		if(wellParams==null||wellParams.size()==0) {
 		if(wellParams==null||wellParams.size()==0) {
 			return null;
 			return null;
 		}
 		}
@@ -44,4 +57,42 @@ public class WellParamService {
 		return mapping;
 		return mapping;
 		
 		
 	}
 	}
+	
+	public Map<String,AlarmDefineVO>  loadAlarmDefines(){
+		return loadAlarmDefines(null);
+	}
+	
+	public Map<String,AlarmDefineVO>  loadAlarmDefines(String wellId){
+		Object[] args=null;
+		String sql="""
+				select 
+				am.alarm_source,am.alarm_desc,am.alarm_express,am.alarm_mode,ifnull(wp.param_code,'comb_alarm') param_code,
+				ifnull(wp.well_id,am.alarm_source) well_id
+				from tzl_alarm am
+				left join tzl_well_param wp on am.alarm_source=wp.param_id and wp.del_if=false
+				where am.del_if=false and am.using_if=true
+				
+				""";
+		
+		if(wellId!=null) {
+			sql+=" and (wp.well_id=? or am.alarm_source=?)";
+			args=new Object[] {wellId,wellId};
+		}
+		
+		sql+=" order by alarm_grade desc";
+		
+		List<AlarmDefineVO>  alarms=dao.queryForList(sql, AlarmDefineVO.class,args);
+		if(alarms==null||alarms.size()==0) {
+			return null;
+		}
+		
+		Map<String,AlarmDefineVO> mapping=new HashMap<>();
+		
+		for(AlarmDefineVO alarm : alarms) {
+			mapping.put(alarm.getWellId()+"_"+alarm.getParamCode(), alarm);
+		}
+		
+		return mapping;
+		
+	}
 }
 }