SjSsqtjcDAOImpl.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322
  1. package com.huimv.sj.dao;
  2. import java.sql.SQLException;
  3. import java.util.Calendar;
  4. import java.util.Date;
  5. import java.util.HashMap;
  6. import java.util.List;
  7. import java.util.Map;
  8. import java.util.regex.Matcher;
  9. import java.util.regex.Pattern;
  10. import org.springframework.orm.ibatis.SqlMapClientCallback;
  11. import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
  12. import org.springframework.util.StringUtils;
  13. import com.huimv.busi.xt.constant.XtAppConstant;
  14. import com.huimv.busi.xt.constant.XtSqlMapConstant;
  15. import com.huimv.busi.xt.utils.CommonUtil;
  16. import com.huimv.sj.dataobject.SjSsqtjc;
  17. import com.huimv.sj.dataobject.SjSsqtjcExample;
  18. import com.huimv.xt.dataobject.XtHjbjcs;
  19. import com.huimv.xx.dataobject.XxXxtz;
  20. import com.ibatis.sqlmap.client.SqlMapExecutor;
  21. public class SjSsqtjcDAOImpl extends SqlMapClientDaoSupport implements SjSsqtjcDAO {
  22. /**
  23. * This method was generated by Apache iBATIS ibator.
  24. * This method corresponds to the database table sj_ssqtjc
  25. *
  26. * @ibatorgenerated Thu Jul 31 12:39:05 CST 2014
  27. */
  28. public SjSsqtjcDAOImpl() {
  29. super();
  30. }
  31. /**
  32. * This method was generated by Apache iBATIS ibator.
  33. * This method corresponds to the database table sj_ssqtjc
  34. *
  35. * @ibatorgenerated Thu Jul 31 12:39:05 CST 2014
  36. */
  37. public int countByExample(SjSsqtjcExample example) {
  38. Integer count = (Integer) getSqlMapClientTemplate().queryForObject("sj_ssqtjc.ibatorgenerated_countByExample", example);
  39. return count;
  40. }
  41. /**
  42. * This method was generated by Apache iBATIS ibator.
  43. * This method corresponds to the database table sj_ssqtjc
  44. *
  45. * @ibatorgenerated Thu Jul 31 12:39:05 CST 2014
  46. */
  47. public int deleteByExample(SjSsqtjcExample example) {
  48. int rows = getSqlMapClientTemplate().delete("sj_ssqtjc.ibatorgenerated_deleteByExample", example);
  49. return rows;
  50. }
  51. /**
  52. * This method was generated by Apache iBATIS ibator.
  53. * This method corresponds to the database table sj_ssqtjc
  54. *
  55. * @ibatorgenerated Thu Jul 31 12:39:05 CST 2014
  56. */
  57. public int deleteByPrimaryKey(Integer id) {
  58. SjSsqtjc key = new SjSsqtjc();
  59. key.setId(id);
  60. int rows = getSqlMapClientTemplate().delete("sj_ssqtjc.ibatorgenerated_deleteByPrimaryKey", key);
  61. return rows;
  62. }
  63. /**
  64. * This method was generated by Apache iBATIS ibator.
  65. * This method corresponds to the database table sj_ssqtjc
  66. *
  67. * @ibatorgenerated Thu Jul 31 12:39:05 CST 2014
  68. */
  69. public void insert(SjSsqtjc record) {
  70. getSqlMapClientTemplate().insert("sj_ssqtjc.ibatorgenerated_insert", record);
  71. }
  72. /**
  73. * This method was generated by Apache iBATIS ibator.
  74. * This method corresponds to the database table sj_ssqtjc
  75. *
  76. * @ibatorgenerated Thu Jul 31 12:39:05 CST 2014
  77. */
  78. public void insertSelective(SjSsqtjc record) {
  79. getSqlMapClientTemplate().insert("sj_ssqtjc.ibatorgenerated_insertSelective", record);
  80. }
  81. /**
  82. * This method was generated by Apache iBATIS ibator.
  83. * This method corresponds to the database table sj_ssqtjc
  84. *
  85. * @ibatorgenerated Thu Jul 31 12:39:05 CST 2014
  86. */
  87. @SuppressWarnings("unchecked")
  88. public List<SjSsqtjc> selectByExample(SjSsqtjcExample example) {
  89. List<SjSsqtjc> list = getSqlMapClientTemplate().queryForList("sj_ssqtjc.ibatorgenerated_selectByExample", example);
  90. return list;
  91. }
  92. /**
  93. * This method was generated by Apache iBATIS ibator.
  94. * This method corresponds to the database table sj_ssqtjc
  95. *
  96. * @ibatorgenerated Thu Jul 31 12:39:05 CST 2014
  97. */
  98. public SjSsqtjc selectByPrimaryKey(Integer id) {
  99. SjSsqtjc key = new SjSsqtjc();
  100. key.setId(id);
  101. SjSsqtjc record = (SjSsqtjc) getSqlMapClientTemplate().queryForObject("sj_ssqtjc.ibatorgenerated_selectByPrimaryKey", key);
  102. return record;
  103. }
  104. /**
  105. * This method was generated by Apache iBATIS ibator.
  106. * This method corresponds to the database table sj_ssqtjc
  107. *
  108. * @ibatorgenerated Thu Jul 31 12:39:05 CST 2014
  109. */
  110. public int updateByExampleSelective(SjSsqtjc record, SjSsqtjcExample example) {
  111. UpdateByExampleParms parms = new UpdateByExampleParms(record, example);
  112. int rows = getSqlMapClientTemplate().update("sj_ssqtjc.ibatorgenerated_updateByExampleSelective", parms);
  113. return rows;
  114. }
  115. /**
  116. * This method was generated by Apache iBATIS ibator.
  117. * This method corresponds to the database table sj_ssqtjc
  118. *
  119. * @ibatorgenerated Thu Jul 31 12:39:05 CST 2014
  120. */
  121. public int updateByExample(SjSsqtjc record, SjSsqtjcExample example) {
  122. UpdateByExampleParms parms = new UpdateByExampleParms(record, example);
  123. int rows = getSqlMapClientTemplate().update("sj_ssqtjc.ibatorgenerated_updateByExample", parms);
  124. return rows;
  125. }
  126. /**
  127. * This method was generated by Apache iBATIS ibator.
  128. * This method corresponds to the database table sj_ssqtjc
  129. *
  130. * @ibatorgenerated Thu Jul 31 12:39:05 CST 2014
  131. */
  132. public int updateByPrimaryKeySelective(SjSsqtjc record) {
  133. int rows = getSqlMapClientTemplate().update("sj_ssqtjc.ibatorgenerated_updateByPrimaryKeySelective", record);
  134. return rows;
  135. }
  136. /**
  137. * This method was generated by Apache iBATIS ibator.
  138. * This method corresponds to the database table sj_ssqtjc
  139. *
  140. * @ibatorgenerated Thu Jul 31 12:39:05 CST 2014
  141. */
  142. public int updateByPrimaryKey(SjSsqtjc record) {
  143. int rows = getSqlMapClientTemplate().update("sj_ssqtjc.ibatorgenerated_updateByPrimaryKey", record);
  144. return rows;
  145. }
  146. /**
  147. * This class was generated by Apache iBATIS ibator.
  148. * This class corresponds to the database table sj_ssqtjc
  149. *
  150. * @ibatorgenerated Thu Jul 31 12:39:05 CST 2014
  151. */
  152. private static class UpdateByExampleParms extends SjSsqtjcExample {
  153. private Object record;
  154. public UpdateByExampleParms(Object record, SjSsqtjcExample example) {
  155. super(example);
  156. this.record = record;
  157. }
  158. @SuppressWarnings("unused")
  159. public Object getRecord() {
  160. return record;
  161. }
  162. }
  163. /**
  164. * 获取气体检测记录最大时间
  165. */
  166. public Date selectMaxSsqtjcTimeByParam(Map<String, Object> searchParam) {
  167. Date date = (Date) getSqlMapClientTemplate().queryForObject(XtSqlMapConstant.SQLMAP_SELECT_MAX_SSQTJC_TIME_BY_PARAM, searchParam);
  168. return date;
  169. }
  170. /**
  171. * 插入实时气体检测记录
  172. */
  173. public void insertSsqtjcByParam(List<Map<String, Object>> paramMapList, HashMap<String, Object> hm) {
  174. SsqtjcSqlMapClientCallback ssqtjcSqlMapClientCallback = new SsqtjcSqlMapClientCallback();
  175. ssqtjcSqlMapClientCallback.setParamMapList(paramMapList,hm);
  176. getSqlMapClientTemplate().execute(ssqtjcSqlMapClientCallback);
  177. }
  178. /**
  179. * 插入数据的回调类
  180. */
  181. private class SsqtjcSqlMapClientCallback implements SqlMapClientCallback {
  182. private List<Map<String, Object>> paramMapList;
  183. // private HashMap<String, Object> hm;
  184. public void setParamMapList(List<Map<String, Object>> paramMapList, HashMap<String, Object> hm) {
  185. this.paramMapList = paramMapList;
  186. // this.hm = hm;
  187. }
  188. @Override
  189. public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException {
  190. //判断当前机器所属栏期的报警功能是否开启
  191. // List<XtHjbjcs> hjcsList = executor.queryForList(XtSqlMapConstant.SQLMAP_SELECT_HJBJCS_BY_PARAM, hm);
  192. // boolean flag = hjcsList.size() > 0 ? true : false;
  193. executor.startBatch();
  194. String dqlq = "";
  195. String jqid = "";
  196. for (Map<String, Object> paramMap : paramMapList) {
  197. // //报警之前判断之前记录是否已经报警
  198. // Map<String, Object> map = new HashMap<String, Object>();
  199. // if (flag) {
  200. // SjSsqtjc sjSsqtjc = (SjSsqtjc)executor.queryForObject(XtSqlMapConstant.SQLMAP_SELECT_MAX_SSQTJC_BY_PARAM, hm);
  201. // if (sjSsqtjc != null) {
  202. // Map<String, Object> qtmap = new HashMap<String, Object>();
  203. // qtmap.put("nh3", sjSsqtjc.getAqnd());
  204. // qtmap.put("h2s", sjSsqtjc.getLhqnd());
  205. // qtmap.put("ch4", sjSsqtjc.getJwnd());
  206. // qtmap.put("o2", sjSsqtjc.getYqnd());
  207. // XtHjbjcs xtHjbjcs = hjcsList.get(0);
  208. // map = compareBjCs(xtHjbjcs, qtmap, map, 1);
  209. // }
  210. // }
  211. jqid = (String) paramMap.get("jqid");
  212. dqlq = (String) executor.queryForObject(XtSqlMapConstant.SQLMAP_SELECT_DQLQ_FROM_ZSDA_AND_JQDA_BY_JQID, jqid);
  213. if (StringUtils.hasText(dqlq)) {
  214. paramMap.put("dqlq", dqlq);
  215. executor.insert(XtSqlMapConstant.SQLMAP_INSERT_SSQTJC_BY_PARAM, paramMap);
  216. }
  217. // if (flag) {
  218. // XtHjbjcs xtHjbjcs = hjcsList.get(0);
  219. // compareBjCs(xtHjbjcs, paramMap, map, 2);
  220. // }
  221. }
  222. executor.executeBatch();
  223. return null;
  224. }
  225. }
  226. public Map<String, Object> compareBjCs(XtHjbjcs xtHjbjcs, Map<String, Object> paramMap, Map<String, Object> map, int flag) {
  227. int aqCount = 0; //氨气报警
  228. int lhqCount = 0; //硫化氢报警
  229. int jwCount = 0; //甲烷报警
  230. int yqCount = 0; //氧气报警
  231. try {
  232. String regEx = "^[1-9,-.]+"; //数据格式 第一级报警下限-第一级报警上线#报警级别, 第二级报警下限-第二级报警上线#报警级别。。。。。22-28#1,20-30#2
  233. Pattern pat = Pattern.compile(regEx);
  234. Matcher aqMat = pat.matcher(StringUtils.hasText(xtHjbjcs.getAqnd()) ? xtHjbjcs.getAqnd() : "&&");
  235. Matcher lhqMat = pat.matcher(StringUtils.hasText(xtHjbjcs.getLhqnd()) ? xtHjbjcs.getLhqnd() : "&&");
  236. Matcher jwMat = pat.matcher(StringUtils.hasText(xtHjbjcs.getJwnd()) ? xtHjbjcs.getJwnd() : "&&");
  237. Matcher yqMat = pat.matcher(StringUtils.hasText(xtHjbjcs.getYqnd()) ? xtHjbjcs.getYqnd() : "&&");
  238. if (StringUtils.hasText(xtHjbjcs.getAqnd()) && aqMat.find()) {
  239. aqCount = CommonUtil.mathCompare(xtHjbjcs.getAqnd(), paramMap, "nh3");
  240. }
  241. if (StringUtils.hasText(xtHjbjcs.getLhqnd()) && lhqMat.find()) {
  242. lhqCount = CommonUtil.mathCompare(xtHjbjcs.getLhqnd(), paramMap, "h2s");
  243. }
  244. if (StringUtils.hasText(xtHjbjcs.getJwnd()) && jwMat.find()) {
  245. jwCount = CommonUtil.mathCompare(xtHjbjcs.getJwnd(), paramMap, "ch4");
  246. }
  247. if (StringUtils.hasText(xtHjbjcs.getYqnd()) && yqMat.find()) {
  248. yqCount = CommonUtil.mathCompare(xtHjbjcs.getYqnd(), paramMap, "o2");
  249. }
  250. //超出 插入报警数据
  251. if (aqCount > 0 && (map.get("aqFlag") == null || "".equals(map.get("aqFlag")) || aqCount != (int)map.get("aqFlag")) && flag == 2) {
  252. insertXxtz(xtHjbjcs, (String)paramMap.get("time"), aqCount, paramMap.get("nh3") + "ppm", "氨气");
  253. }
  254. map.put("aqFlag", aqCount);
  255. if (lhqCount > 0 && (map.get("lhqFlag") == null || "".equals(map.get("lhqFlag")) || lhqCount != (int)map.get("lhqFlag")) && flag == 2) {
  256. insertXxtz(xtHjbjcs, (String)paramMap.get("time"), lhqCount, paramMap.get("h2s") + "ppm", "硫化氢");
  257. }
  258. map.put("lhqFlag", lhqCount);
  259. if (jwCount > 0 && (map.get("jwFlag") == null || "".equals(map.get("jwFlag")) || jwCount != (int)map.get("jwFlag")) && flag == 2) {
  260. insertXxtz(xtHjbjcs, (String)paramMap.get("time"), jwCount, paramMap.get("ch4") + "ppm", "甲烷");
  261. }
  262. map.put("jwFlag", jwCount);
  263. if (yqCount > 0 && (map.get("yqFlag") == null || "".equals(map.get("yqFlag")) || yqCount != (int)map.get("yqFlag")) && flag == 2) {
  264. insertXxtz(xtHjbjcs, (String)paramMap.get("time"), yqCount, paramMap.get("o2") + "%", "氧气");
  265. }
  266. map.put("yqFlag", yqCount);
  267. } catch (Exception e) {
  268. System.out.println("可能当前栏期" + xtHjbjcs.getLqid() + "参数不符合规范");
  269. e.printStackTrace();
  270. }
  271. return map;
  272. }
  273. public void insertXxtz(XtHjbjcs xtHjbjcs, String time, int jb, String sz, String type) {
  274. XxXxtz xxXxtz = new XxXxtz();
  275. Date nowdate = new Date();
  276. xxXxtz.setBt(xtHjbjcs.getZsmc() + type + "超过警戒线");
  277. xxXxtz.setXxlx("1");
  278. xxXxtz.setZz(xtHjbjcs.getMcmc());
  279. xxXxtz.setZw("<p><font color=red>在大概" + time + type + "超出警戒线,目前" + sz + "</font></p>");
  280. xxXxtz.setFbsj(nowdate);
  281. xxXxtz.setFbr(1);
  282. xxXxtz.setZy("机器设备");
  283. xxXxtz.setKssj(nowdate);
  284. xxXxtz.setMcid(Integer.parseInt(xtHjbjcs.getMcid()));
  285. Calendar rightNow = Calendar.getInstance();
  286. rightNow.setTime(nowdate);
  287. rightNow.add(Calendar.DATE, +7);
  288. xxXxtz.setJssj(rightNow.getTime());
  289. xxXxtz.setZfbz(XtAppConstant.ZFBZ_VALID);
  290. xxXxtz.setXxbz(jb);
  291. //xxXxtz.setXfzt(XtAppConstant.XXTZ_XFZT_1);
  292. xxXxtz.setClzt(XtAppConstant.XXTZ_CLZT_1);
  293. getSqlMapClientTemplate().insert("xx_xxtz.ibatorgenerated_insert", xxXxtz);
  294. }
  295. }