| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417 | package cn.com.usky.iot.alarm.service;import java.io.BufferedReader;import java.sql.SQLException;import java.text.NumberFormat;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import cn.com.usky.iot.admin.dao.YtiotTAdminDao;import cn.com.usky.iot.admin.dao.YtiotVUserCompanyDao;import cn.com.usky.iot.admin.dao.YtiotVUserphoneDao;import cn.com.usky.iot.alarm.dao.YtiotVAlarmDao;import cn.com.usky.iot.entity.*;import cn.com.usky.utils.DaoQuery;import cn.com.usky.utils.HttpClientUtils;import cn.com.usky.utils.MD5Util;import net.sf.json.JSONArray;import net.sf.json.JSONObject;import org.apache.commons.lang3.StringUtils;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpPost;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.DefaultHttpClient;import org.hibernate.HibernateException;import org.hibernate.Query;import org.hibernate.Session;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.orm.hibernate3.HibernateCallback;import org.springframework.orm.hibernate3.HibernateTemplate;import org.apache.http.message.BasicNameValuePair;import org.apache.http.protocol.HTTP;public class YtiotVAlarmServiceImpl implements YtiotVAlarmService {		private HibernateTemplate hibernateTemplate;	public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {	    this.hibernateTemplate = hibernateTemplate;	}	private YtiotVAlarmDao ytiotVAlarmDao;	private YtiotVUserphoneDao ytiotVUserphoneDao;	private YtiotTAdminDao ytiotTAdminDao;	private YtiotVUserCompanyDao ytiotVUserCompanyDao;	public YtiotVAlarmDao getYtiotVAlarmDao() {		return ytiotVAlarmDao;	}	public void setYtiotVAlarmDao(YtiotVAlarmDao ytiotVAlarmDao) {		this.ytiotVAlarmDao = ytiotVAlarmDao;	}	public YtiotVUserCompanyDao getYtiotVUserCompanyDao() {		return ytiotVUserCompanyDao;	}	public void setYtiotVUserCompanyDao(YtiotVUserCompanyDao ytiotVUserCompanyDao) {		this.ytiotVUserCompanyDao = ytiotVUserCompanyDao;	}	public YtiotVUserphoneDao getYtiotVUserphoneDao() {		return ytiotVUserphoneDao;	}	public void setYtiotVUserphoneDao(YtiotVUserphoneDao ytiotVUserphoneDao) {		this.ytiotVUserphoneDao = ytiotVUserphoneDao;	}	public YtiotTAdminDao getYtiotTAdminDao() {		return ytiotTAdminDao;	}	public void setYtiotTAdminDao(YtiotTAdminDao ytiotTAdminDao) {		this.ytiotTAdminDao = ytiotTAdminDao;	}	public boolean chk_string_param(String param) {		if(param==null)			return true;		if(param.indexOf("=")>=0)			return false;		if(param.indexOf("\'")>=0)			return false;		if(param.indexOf("\"")>=0)			return false;		return true;	}	public String chkhw(String hqlwhere){		if(hqlwhere==null)			return " where ";		else			return hqlwhere+" and ";	}	public String fieldname(String name) {		if(name.equals("company_code"))			return "companyCode";		if(name.equals("company_name"))			return "companyName";		if(name.equals("device_code"))			return "deviuceCode";		return name;	}	@Override	public String getEFireVList(String queryJson, String page, String start, String limit, String sort) throws Exception {		// TODO Auto-generated method stub		String address = null;		String clzt = null;		String company_code = null;		String company_code_list = null;		String Company_Code_List = null;		String company_name = null;		String device_code = null;		String device_code_list = null;		String time_start = null;		String time_end = null;		String status = null;		String COMMSTATUS = null;		String V_LOGINNAME = null;		String hqlwhere = null, hhwhere = null;		String order = null;		String dir = null;		String Start = null;		String Limit = null;		String Page = null;		String order_str = null;		JSONObject q_json = null;		JSONArray Sort = null;		JSONArray jSONArray = new JSONArray();		JSONObject json = new JSONObject();		json.put("action", "getEFireVList");		if(queryJson!=null) {			q_json = JSONObject.fromObject(queryJson);			address = q_json.has("address")?q_json.getString("address"):null;			clzt = q_json.has("clzt")?q_json.getString("clzt"):null;			COMMSTATUS = q_json.has("COMMSTATUS")?q_json.getString("COMMSTATUS"):null;			V_LOGINNAME = q_json.has("V_LOGINNAME")?q_json.getString("V_LOGINNAME"):null;			if(q_json.has("company_code")) {				if((q_json.optJSONObject("company_code")!=null)						&&(q_json.optJSONObject("company_code").isArray())) {					JSONArray j_tmp = q_json.getJSONArray("company_code");					for(int i=0;i<j_tmp.size();i++) {						String tmp = j_tmp.getString(i);						if(i==0)							company_code_list = tmp;						else							company_code_list += ","+tmp;					}				}else					company_code = q_json.getString("company_code");			}//			company_name = q_json.has("company_name")?q_json.getString("company_name"):null;			if(q_json.has("device_code")) {				if((q_json.optJSONObject("device_code")!=null)						&&(q_json.optJSONObject("device_code").isArray())){					JSONArray j_tmp = q_json.getJSONArray("device_code");					for(int i=0;i<j_tmp.size();i++) {						String tmp = j_tmp.getString(i);						if(i==0)							device_code_list = tmp;						else							device_code_list += ","+tmp;					}				}else					device_code = q_json.getString("device_code");			}			time_start = q_json.has("time_start")?q_json.getString("time_start"):null;			time_end = q_json.has("time_end")?q_json.getString("time_end"):null;		}		if(V_LOGINNAME.equals("ypsgec")) {			return json.toString();		}else {			if(sort!=null) {				Sort = JSONArray.fromObject(sort);				if((Sort.isArray())&&(Sort.size()>0)) {					JSONObject s_json = Sort.getJSONObject(0);					order = s_json.has("property")?s_json.getString("property"):order;					dir = s_json.has("direction")?s_json.getString("direction"):dir;				}				json.put("sort", sort);			}			Start = start;			Limit = limit;			Page = page;			if((V_LOGINNAME!=null)&&(company_code==null)&&(company_code_list==null)) {				String where = " where u.id.agentid='"+V_LOGINNAME+"' ";				List list = ytiotVUserCompanyDao.query(where, null, null, null, null);				if(list.size()>0) {					for(int i=0;i<list.size();i++) {						YtiotVUsercompany o = (YtiotVUsercompany)list.get(i);						YtiotVUsercompanyId oid = o.getId();						if(i==0)							Company_Code_List = oid.getOwnerCode();						else							Company_Code_List += ","+oid.getOwnerCode();					}				}			}			if(address!=null) {				hqlwhere = chkhw(hqlwhere) + " address like '%"+address+"%' ";				hhwhere = chkhw(hhwhere) + " u.id.address like '%"+address+"%' ";			}			if((clzt!=null)&&(clzt.length()>0)) {				hqlwhere = chkhw(hqlwhere) + " clzt = "+clzt+" ";				hhwhere = chkhw(hhwhere) + " u.id.clzt = "+clzt+" ";			}			if(Company_Code_List!=null) {				hqlwhere = chkhw(hqlwhere) + " company_code in ("+Company_Code_List+") ";				hhwhere = chkhw(hhwhere) + " u.id.companyCode in ("+Company_Code_List+") ";			}else {				if(company_code!=null) {					hqlwhere = chkhw(hqlwhere) + " company_code = "+company_code+" ";					hhwhere = chkhw(hhwhere) + " u.id.companyCode = "+company_code+" ";				}				if(company_code_list!=null) {					hqlwhere = chkhw(hqlwhere) + " company_code in ("+company_code_list+") ";					hhwhere = chkhw(hhwhere) + " u.id.companyCode in ("+company_code_list+") ";				}			}			if(device_code!=null) {				hqlwhere = chkhw(hqlwhere) + " device_code = "+device_code+" ";				hhwhere = chkhw(hhwhere) + " u.id.deviceCode = "+device_code+" ";			}			if(device_code_list!=null) {				hqlwhere = chkhw(hqlwhere) + " device_code in ("+device_code_list+") ";				hhwhere = chkhw(hhwhere) + " u.id.deviceCode in ("+device_code_list+") ";			}			if(time_start!=null) {				hqlwhere = chkhw(hqlwhere) + " time >= '"+time_start+"' ";				hhwhere = chkhw(hhwhere) + " u.id.time >= '"+time_start+"' ";			}			if(time_end!=null) {				hqlwhere = chkhw(hqlwhere) + " time <= '"+time_end+"' ";				hhwhere = chkhw(hhwhere) + " u.id.time <= '"+time_end+"' ";			}			if(COMMSTATUS!=null) {				if(COMMSTATUS.equals("NO")) {					hqlwhere = chkhw(hqlwhere)+" data1 <> 'EF9' ";					hhwhere = chkhw(hhwhere)+" u.id.data1 <> 'EF9' ";				}				else if(COMMSTATUS.equals("ONLY")) {					hqlwhere = chkhw(hqlwhere)+" data1 = 'EF9' ";					hhwhere = chkhw(hhwhere)+" u.id.data1 = 'EF9' ";				}			}			if(order!=null)				order_str = " order by "+order;			else				order_str = " order by id ";			int totalCount = ytiotVAlarmDao.getEFireCount(hhwhere);//			System.out.print("shazi");//			System.out.println(totalCount);			json.put("totalCount", totalCount);			if(Start!=null){				if(Integer.parseInt(Start)>totalCount){					Start = "0";					Page = "0";				}else if(page==null)					Page="0";			}else{				Start = "0";				Page = "0";			}			json.put("page", Page);			json.put("start", Start);			json.put("limit", Limit);			if(totalCount>0) {				List<?> ulist = ytiotVUserphoneDao.query(null, null, null, null, null);				List<?> list1 = ytiotVAlarmDao.EFireQuery(hhwhere, order_str, dir, Start, Limit);				SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");				if(list1.size()>0) {					for(int i=0;i<list1.size();i++) {						YtiotVEfire o = (YtiotVEfire)list1.get(i);						YtiotVEfireId oid = o.getId();						String cl_name = "";						Map<String, Comparable> map = new HashMap<String, Comparable>();						if((company_code!=null)&&(i==0))							json.put("company_name", oid.getCompanyName());						map.put("orderIdx", Integer.parseInt(Start)+i+1);						map.put("address", oid.getAddress());						map.put("cldh", oid.getCldh());						map.put("cllx", oid.getCllx());						map.put("cllxr", oid.getCllxr());						map.put("clnr", oid.getClnr());						map.put("clr", oid.getClr());						map.put("clwb", oid.getClwb());						map.put("clzt", oid.getClzt()==0?"未处理":"已处理");						map.put("company_code", oid.getCompanyCode());						map.put("company_name", oid.getCompanyName());						map.put("compartment", "");						map.put("data1", oid.getData1());						map.put("data2", oid.getData2());						map.put("data3", oid.getData3());						map.put("data4", oid.getData4());						map.put("data5", oid.getData5());						String dv = "";						if(oid.getData1().equals("EF0"))							dv = "正常/报警撤销";						else if(oid.getData1().equals("EF1"))							dv = "欠压报警";						else if(oid.getData1().equals("EF2"))							dv = "过压报警";						else if(oid.getData1().equals("EF3"))							dv = "过流报警";						else if(oid.getData1().equals("EF4"))							dv = "漏电报警";						else if(oid.getData1().equals("EF5"))							dv = "温度1超高报警";						else if(oid.getData1().equals("EF6"))							dv = "温度2超高报警";						else if(oid.getData1().equals("EF7"))							dv = "温度3超高报警";						else if(oid.getData1().equals("EF8"))							dv = "温度4超高报警";						else if(oid.getData1().equals("EF9"))							dv = "离线";						String dw = "";						if(oid.getData1().equals("EF0"))							dw = "";						else if(oid.getData1().equals("EF1"))							dw = "V";						else if(oid.getData1().equals("EF2"))							dw = "V";						else if(oid.getData1().equals("EF3"))							dw = "mA";						else if(oid.getData1().equals("EF4"))							dw = "mA";						else if(oid.getData1().equals("EF5"))							dw = "℃";						else if(oid.getData1().equals("EF6"))							dw = "℃";						else if(oid.getData1().equals("EF7"))							dw = "℃";						else if(oid.getData1().equals("EF8"))							dw = "℃";						else if(oid.getData1().equals("EF9"))							dw = "";						map.put("fullname", oid.getName()+","+dv+","+"告警值:"+oid.getData2()+dw);						map.put("data", oid.getData1());						if(oid.getClzt()==1)							map.put("clsj", df.format(oid.getClsj()));						else							map.put("clsj", "");						map.put("device_code", oid.getDeviceCode());						map.put("fireprocess", "");						map.put("id", oid.getId());						map.put("name", oid.getName());						map.put("ncmd", oid.getNcmd());						map.put("port", oid.getPort());						map.put("position", oid.getPosition());						map.put("status", dv);						map.put("time", df.format(oid.getTime()));						map.put("vidoe", oid.getVideo());						if((oid.getClr().length()>0)								&&(ulist.size()>0)){							for(int j=0;j<ulist.size();j++) {								YtiotVUserphone po = (YtiotVUserphone)ulist.get(j);								YtiotVUserphoneId poid = po.getId();								if(oid.getCldh().equals(poid.getPhone())) {									cl_name = poid.getUsername();									break;								}							}						}						map.put("clr_name", cl_name.length()>0?cl_name:oid.getClr());						JSONObject jSONObject = JSONObject.fromObject(map);						jSONArray.add(jSONObject);					}					json.put("RESULT", jSONArray);				}			}			return json.toString();		}	}	@Override	public String getHjVList(String queryJson, String page, String start, String limit, String sort) throws Exception {		// TODO Auto-generated method stub		String address = null;		String clzt = null;		String company_code = null;		String company_code_list = null;		String Company_Code_List = null;		String company_name = null;		String device_code = null;		String device_code_list = null;		String time_start = null;		String time_end = null;		String status = null;		String COMMSTATUS = null;		String V_LOGINNAME = null;		String hqlwhere = null;		String order = null;		String dir = null;		String Start = null;		String Limit = null;		String Page = null;		String order_str = null;		JSONObject q_json = null;		JSONArray Sort = null;		JSONArray jSONArray = new JSONArray();		JSONObject json = new JSONObject();		json.put("action", "getHjVList");		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");		if(queryJson!=null) {			q_json = JSONObject.fromObject(queryJson);
 |