WellConfigService.java 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. package com.hb.proj.gather.rep;
  2. import java.util.HashMap;
  3. import java.util.List;
  4. import java.util.Map;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.stereotype.Service;
  7. import com.hb.proj.gather.model.AlarmDefineVO;
  8. import com.hb.proj.gather.model.WellParamVO;
  9. import com.hb.xframework.dao.core.SpringJdbcDAO;
  10. /**
  11. * 获取井的参数配置信息、报警设置
  12. * @author cwen
  13. *
  14. */
  15. @Service
  16. public class WellConfigService {
  17. @Autowired
  18. private SpringJdbcDAO dao;
  19. /**
  20. * 加载所有井的参数配置
  21. * @return
  22. */
  23. public Map<String,WellParamVO> loadWellParams(){
  24. return loadWellParams(null);
  25. }
  26. /**
  27. * 加载指定井的参数配置
  28. */
  29. public Map<String,WellParamVO> loadWellParams(String wellId){
  30. Object[] args=null;
  31. String sql="""
  32. select
  33. (select device_code from tzl_gather_device d where d.well_id=wp.well_id and d.del_if=false limit 1) device_code,
  34. param_id,well_id,param_code,gat_ins_scale,gat_ins_scale2,calibrate_a,calibrate_b,calibrate_c,
  35. calibrate_a2,calibrate_b2,calibrate_c2,display_format,dis_ins_scale
  36. from tzl_well_param wp
  37. where del_if=false
  38. """;
  39. if(wellId!=null) {
  40. sql+=" and wp.well_id=?";
  41. args=new Object[] {wellId};
  42. }
  43. List<WellParamVO> wellParams=dao.queryForList(sql, WellParamVO.class,args);
  44. if(wellParams==null||wellParams.size()==0) {
  45. return null;
  46. }
  47. Map<String,WellParamVO> mapping=new HashMap<String,WellParamVO>();
  48. for(WellParamVO wellParam : wellParams) {
  49. mapping.put(wellParam.getDeviceCode()+"_"+wellParam.getParamCode(), wellParam);
  50. }
  51. return mapping;
  52. }
  53. /**
  54. * 加载所有井的报警设置
  55. * @return
  56. */
  57. public Map<String,AlarmDefineVO> loadAlarmDefines(){
  58. return loadAlarmDefines(null);
  59. }
  60. /**
  61. * 加载指定井的报警设置
  62. * @param wellId
  63. * @return
  64. */
  65. public Map<String,AlarmDefineVO> loadAlarmDefines(String wellId){
  66. Object[] args=null;
  67. String sql="""
  68. select
  69. am.alarm_source,am.alarm_desc,am.alarm_express,am.alarm_mode,ifnull(wp.param_code,'comb_alarm') param_code,
  70. ifnull(wp.well_id,am.alarm_source) well_id,
  71. ifnull(wp.param_name,'') param_name
  72. from tzl_alarm am
  73. left join tzl_well_param wp on am.alarm_source=wp.param_id and wp.del_if=false
  74. where am.del_if=false and am.using_if=true
  75. """;
  76. if(wellId!=null) {
  77. sql+=" and (wp.well_id=? or am.alarm_source=?)";
  78. args=new Object[] {wellId,wellId};
  79. }
  80. sql+=" order by alarm_grade desc";
  81. List<AlarmDefineVO> alarms=dao.queryForList(sql, AlarmDefineVO.class,args);
  82. if(alarms==null||alarms.size()==0) {
  83. return null;
  84. }
  85. Map<String,AlarmDefineVO> mapping=new HashMap<>();
  86. for(AlarmDefineVO alarm : alarms) {
  87. mapping.put(alarm.getWellId()+"_"+alarm.getParamCode(), alarm);
  88. }
  89. return mapping;
  90. }
  91. /**
  92. * 获得指定设备的关联井
  93. * @param serial
  94. * @return
  95. */
  96. public String getWellIdByDev(String serial) {
  97. String sql="select well_id from tzl_gather_device where device_code=? and del_if=false limit 1";
  98. Map<String,Object> rst=dao.queryForMap(sql, serial);
  99. return rst!=null?((String)rst.get("wellId")):null;
  100. }
  101. }