package com.hb.proj.gather.rep; import java.util.HashMap; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.hb.proj.gather.model.AlarmDefineVO; import com.hb.proj.gather.model.WellParamVO; import com.hb.xframework.dao.core.SpringJdbcDAO; /** * 获取井的参数配置信息、报警设置 * @author cwen * */ @Service public class WellConfigService { @Autowired private SpringJdbcDAO dao; /** * 加载所有井的参数配置 * @return */ public Map loadWellParams(){ return loadWellParams(null); } /** * 加载指定井的参数配置 */ public Map loadWellParams(String wellId){ Object[] args=null; String sql=""" 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, param_id,well_id,param_code,gat_ins_scale,gat_ins_scale2,calibrate_a,calibrate_b,calibrate_c, calibrate_a2,calibrate_b2,calibrate_c2,display_format,dis_ins_scale from tzl_well_param wp where del_if=false """; if(wellId!=null) { sql+=" and wp.well_id=?"; args=new Object[] {wellId}; } List wellParams=dao.queryForList(sql, WellParamVO.class,args); if(wellParams==null||wellParams.size()==0) { return null; } Map mapping=new HashMap(); for(WellParamVO wellParam : wellParams) { mapping.put(wellParam.getDeviceCode()+"_"+wellParam.getParamCode(), wellParam); } return mapping; } /** * 加载所有井的报警设置 * @return */ public Map loadAlarmDefines(){ return loadAlarmDefines(null); } /** * 加载指定井的报警设置 * @param wellId * @return */ public Map 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, ifnull(wp.param_name,'') param_name 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 alarms=dao.queryForList(sql, AlarmDefineVO.class,args); if(alarms==null||alarms.size()==0) { return null; } Map mapping=new HashMap<>(); for(AlarmDefineVO alarm : alarms) { mapping.put(alarm.getWellId()+"_"+alarm.getParamCode(), alarm); } return mapping; } /** * 获得指定设备的关联井 * @param serial * @return */ public String getWellIdByDev(String serial) { String sql="select well_id from tzl_gather_device where device_code=? and del_if=false limit 1"; Map rst=dao.queryForMap(sql, serial); return rst!=null?((String)rst.get("wellId")):null; } }