package com.huimv.sj.dao; import java.sql.SQLException; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.springframework.orm.ibatis.SqlMapClientCallback; import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport; import org.springframework.util.StringUtils; import com.huimv.busi.tjt.dto.SjSdDTO; import com.huimv.busi.tjt.dto.SjhjkzDTO; import com.huimv.busi.xt.constant.XtAppConstant; import com.huimv.busi.xt.constant.XtSqlMapConstant; import com.huimv.busi.xt.utils.CommonUtil; import com.huimv.sj.dataobject.SjSshjkz; import com.huimv.sj.dataobject.SjSshjkzExample; import com.huimv.xt.dataobject.XtHjbjcs; import com.huimv.xx.dataobject.XxXxts; import com.huimv.xx.dataobject.XxXxtz; import com.ibatis.sqlmap.client.SqlMapExecutor; public class SjSshjkzDAOImpl extends SqlMapClientDaoSupport implements SjSshjkzDAO { /** * This method was generated by Apache iBATIS ibator. * This method corresponds to the database table sj_sshjkz * * @ibatorgenerated Sun Jun 29 20:51:17 CST 2014 */ public SjSshjkzDAOImpl() { super(); } /** * This method was generated by Apache iBATIS ibator. * This method corresponds to the database table sj_sshjkz * * @ibatorgenerated Sun Jun 29 20:51:17 CST 2014 */ public int countByExample(SjSshjkzExample example) { Integer count = (Integer) getSqlMapClientTemplate().queryForObject("sj_sshjkz.ibatorgenerated_countByExample", example); return count; } /** * This method was generated by Apache iBATIS ibator. * This method corresponds to the database table sj_sshjkz * * @ibatorgenerated Sun Jun 29 20:51:17 CST 2014 */ public int deleteByExample(SjSshjkzExample example) { int rows = getSqlMapClientTemplate().delete("sj_sshjkz.ibatorgenerated_deleteByExample", example); return rows; } /** * This method was generated by Apache iBATIS ibator. * This method corresponds to the database table sj_sshjkz * * @ibatorgenerated Sun Jun 29 20:51:17 CST 2014 */ public int deleteByPrimaryKey(Integer id) { SjSshjkz key = new SjSshjkz(); key.setId(id); int rows = getSqlMapClientTemplate().delete("sj_sshjkz.ibatorgenerated_deleteByPrimaryKey", key); return rows; } /** * This method was generated by Apache iBATIS ibator. * This method corresponds to the database table sj_sshjkz * * @ibatorgenerated Sun Jun 29 20:51:17 CST 2014 */ public void insert(SjSshjkz record) { getSqlMapClientTemplate().insert("sj_sshjkz.ibatorgenerated_insert", record); } /** * This method was generated by Apache iBATIS ibator. * This method corresponds to the database table sj_sshjkz * * @ibatorgenerated Sun Jun 29 20:51:17 CST 2014 */ public void insertSelective(SjSshjkz record) { getSqlMapClientTemplate().insert("sj_sshjkz.ibatorgenerated_insertSelective", record); } /** * This method was generated by Apache iBATIS ibator. * This method corresponds to the database table sj_sshjkz * * @ibatorgenerated Sun Jun 29 20:51:17 CST 2014 */ @SuppressWarnings("unchecked") public List selectByExample(SjSshjkzExample example) { List list = getSqlMapClientTemplate().queryForList("sj_sshjkz.ibatorgenerated_selectByExample", example); return list; } /** * This method was generated by Apache iBATIS ibator. * This method corresponds to the database table sj_sshjkz * * @ibatorgenerated Sun Jun 29 20:51:17 CST 2014 */ public SjSshjkz selectByPrimaryKey(Integer id) { SjSshjkz key = new SjSshjkz(); key.setId(id); SjSshjkz record = (SjSshjkz) getSqlMapClientTemplate().queryForObject("sj_sshjkz.ibatorgenerated_selectByPrimaryKey", key); return record; } /** * This method was generated by Apache iBATIS ibator. * This method corresponds to the database table sj_sshjkz * * @ibatorgenerated Sun Jun 29 20:51:17 CST 2014 */ public int updateByExampleSelective(SjSshjkz record, SjSshjkzExample example) { UpdateByExampleParms parms = new UpdateByExampleParms(record, example); int rows = getSqlMapClientTemplate().update("sj_sshjkz.ibatorgenerated_updateByExampleSelective", parms); return rows; } /** * This method was generated by Apache iBATIS ibator. * This method corresponds to the database table sj_sshjkz * * @ibatorgenerated Sun Jun 29 20:51:17 CST 2014 */ public int updateByExample(SjSshjkz record, SjSshjkzExample example) { UpdateByExampleParms parms = new UpdateByExampleParms(record, example); int rows = getSqlMapClientTemplate().update("sj_sshjkz.ibatorgenerated_updateByExample", parms); return rows; } /** * This method was generated by Apache iBATIS ibator. * This method corresponds to the database table sj_sshjkz * * @ibatorgenerated Sun Jun 29 20:51:17 CST 2014 */ public int updateByPrimaryKeySelective(SjSshjkz record) { int rows = getSqlMapClientTemplate().update("sj_sshjkz.ibatorgenerated_updateByPrimaryKeySelective", record); return rows; } /** * This method was generated by Apache iBATIS ibator. * This method corresponds to the database table sj_sshjkz * * @ibatorgenerated Sun Jun 29 20:51:17 CST 2014 */ public int updateByPrimaryKey(SjSshjkz record) { int rows = getSqlMapClientTemplate().update("sj_sshjkz.ibatorgenerated_updateByPrimaryKey", record); return rows; } /** * This class was generated by Apache iBATIS ibator. * This class corresponds to the database table sj_sshjkz * * @ibatorgenerated Sun Jun 29 20:51:17 CST 2014 */ private static class UpdateByExampleParms extends SjSshjkzExample { private Object record; public UpdateByExampleParms(Object record, SjSshjkzExample example) { super(example); this.record = record; } @SuppressWarnings("unused") public Object getRecord() { return record; } } /** * 得到指定条件的环境控制记录的最大时间 */ public Date selectMaxSshjkzTimeByParam(Map searchParam) { Date date = (Date) getSqlMapClientTemplate().queryForObject(XtSqlMapConstant.SQLMAP_SELECT_MAX_SSHJKZ_BY_PARAM, searchParam); return date; } /** * 插入环境控制记录 */ public void insertSshjkzByParam(List> paramMapList, HashMap hm) { SshjkzSqlMapClientCallback sshjkzSqlMapClientCallback = new SshjkzSqlMapClientCallback(); sshjkzSqlMapClientCallback.setParamMapList(paramMapList, hm); getSqlMapClientTemplate().execute(sshjkzSqlMapClientCallback); } /** * 插入数据的回调类 */ private class SshjkzSqlMapClientCallback implements SqlMapClientCallback { private List> paramMapList; // private HashMap hm; public void setParamMapList(List> paramMapList, HashMap hm) { this.paramMapList = paramMapList; // this.hm = hm; } @Override public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException { // List hjcsList = executor.queryForList(XtSqlMapConstant.SQLMAP_SELECT_HJBJCS_BY_PARAM, hm); // boolean flag = hjcsList.size() > 0 ? true : false; executor.startBatch(); String dqlq = ""; String jqid = ""; for (Map paramMap : paramMapList) { // //报警之前判断之前记录是否已经报警 // Map map = new HashMap(); // if (flag) { // SjSshjkz sjSshjkz = (SjSshjkz)executor.queryForObject(XtSqlMapConstant.SQLMAP_SELECT_MAXSSHJKZ_BY_PARAM, hm); // if (sjSshjkz != null) { // Map hjmap = new HashMap(); // hjmap.put("temp", sjSshjkz.getDqwd()); // XtHjbjcs xtHjbjcs = hjcsList.get(0); // map = compareBjCs(xtHjbjcs, hjmap, map, 1); // } // } jqid = (String) paramMap.get("jqid"); dqlq = (String) executor.queryForObject(XtSqlMapConstant.SQLMAP_SELECT_DQLQ_FROM_ZSDA_AND_JQDA_BY_JQID, jqid); if (StringUtils.hasText(dqlq)) { paramMap.put("dqlq", dqlq); executor.insert(XtSqlMapConstant.SQLMAP_INSERT_SSHJKZ_BY_PARAM, paramMap); } // if (flag) { // XtHjbjcs xtHjbjcs = hjcsList.get(0); // compareBjCs(xtHjbjcs, paramMap, map, 2); // } } executor.executeBatch(); return null; } } public Map compareBjCs(XtHjbjcs xtHjbjcs, Map paramMap, Map map, int flag) { int wdCount = 0; //温度报警 int sdCount = 0; //湿度报警 try { String regEx = "^[1-9,-.]+"; //数据格式 第一级报警下限-第一级报警上线#报警级别, 第二级报警下限-第二级报警上线#报警级别。。。。。22-28#1,20-30#2 Pattern pat = Pattern.compile(regEx); Matcher wdMat = pat.matcher(StringUtils.hasText(xtHjbjcs.getWd()) ? xtHjbjcs.getWd() : "&&"); Matcher sdMat = pat.matcher(StringUtils.hasText(xtHjbjcs.getSd()) ? xtHjbjcs.getSd() : "&&"); if (StringUtils.hasText(xtHjbjcs.getWd()) && wdMat.find()) { wdCount = CommonUtil.mathCompare(xtHjbjcs.getWd(), paramMap, "temp"); } if (StringUtils.hasText(xtHjbjcs.getSd()) && sdMat.find()) { sdCount = CommonUtil.mathCompare(xtHjbjcs.getSd(), paramMap, "humi"); } //超出 插入报警数据 if (wdCount > 0 && (map.get("wdFlag") == null || "".equals(map.get("wdFlag")) || wdCount != (int)map.get("wdFlag")) && flag == 2) { insertXxtz(xtHjbjcs, (String)paramMap.get("eh_time"), wdCount,(String)paramMap.get("temp")+"℃", "温度"); insertXxts(xtHjbjcs, (String)paramMap.get("eh_time"), wdCount,(String)paramMap.get("temp")+"℃", "温度"); } map.put("wdFlag", wdCount); if (sdCount > 0 && (map.get("sdFlag") == null || "".equals(map.get("sdFlag")) || sdCount != (int)map.get("sdFlag")) && flag == 2) { insertXxtz(xtHjbjcs, (String)paramMap.get("eh_time"), sdCount,(String)paramMap.get("humi")+"RH", "湿度"); } map.put("sdFlag", sdCount); } catch (Exception e) { System.out.println("可能当前栏期" + xtHjbjcs.getLqid() + "参数不符合规范"); e.printStackTrace(); } return map; } public void insertXxtz(XtHjbjcs xtHjbjcs, String time, int jb, String sz, String type) { XxXxtz xxXxtz = new XxXxtz(); Date nowdate = new Date(); xxXxtz.setBt(xtHjbjcs.getZsmc() + type + "超过警戒线"); xxXxtz.setXxlx("1"); xxXxtz.setZz(xtHjbjcs.getMcmc()); xxXxtz.setZw("

在大概" + time + type + "超出警戒线,目前" +type + sz + "

"); xxXxtz.setFbsj(nowdate); xxXxtz.setFbr(1); xxXxtz.setZy("机器设备"); xxXxtz.setKssj(nowdate); xxXxtz.setMcid(Integer.parseInt(xtHjbjcs.getMcid())); Calendar rightNow = Calendar.getInstance(); rightNow.setTime(nowdate); rightNow.add(Calendar.DATE, +7); xxXxtz.setJssj(rightNow.getTime()); xxXxtz.setZfbz(XtAppConstant.ZFBZ_VALID); xxXxtz.setXxbz(jb); //xxXxtz.setXfzt(XtAppConstant.XXTZ_XFZT_1); xxXxtz.setClzt(XtAppConstant.XXTZ_CLZT_1); getSqlMapClientTemplate().insert("xx_xxtz.ibatorgenerated_insert", xxXxtz); } public void insertXxts(XtHjbjcs xtHjbjcs, String time, int jb, String sz, String type) { XxXxts xxXxts = new XxXxts(); Date nowdate = new Date(); xxXxts.setBt(xtHjbjcs.getZsmc() + "温度" + jb + "级报警"); xxXxts.setZy(xtHjbjcs.getZsmc() + "温度在" + time + "时产生" + jb + "级报警,报警" + type + sz); xxXxts.setZw(xtHjbjcs.getZsmc() + "舍,温度在" + time + "时产生" + jb + "级报警,报警" + type + sz); xxXxts.setXxlx(XtAppConstant.XX_XXTS_SWD); xxXxts.setTsbz(1); xxXxts.setMcid(xtHjbjcs.getMcid()); xxXxts.setFbsj(nowdate); getSqlMapClientTemplate().insert("xx_xxts.ibatorgenerated_insert", xxXxts); } @SuppressWarnings("unchecked") @Override public List selectByParam(HashMap hm) { List list = getSqlMapClientTemplate().queryForList("sj_sshjkz.select_sjsshjkzdto_by_param", hm); return list; } @Override public int countSelectByParam(HashMap hm) { int count = (int)getSqlMapClientTemplate().queryForObject("sj_sshjkz.select_count_sjsshjkzdto_by_param", hm); return count; } @SuppressWarnings({ "unchecked", "rawtypes" }) public List selectDqsdByParam(Map hm) { List list = getSqlMapClientTemplate().queryForList("dqsd.select.by.param", hm); return list; } @SuppressWarnings("unchecked") public List selectQcsdByLqid(Map searchParam) { List list = getSqlMapClientTemplate().queryForList("qcsd.select.sd.by.lqid", searchParam); return list; } }