package com.xh.core.util;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.TimerTask;
import com.xh.core.modules.model.online.OnlineBean;
import com.xh.core.modules.model.online.OnlineService;
import com.xh.core.modules.model.polygon.PolygonBean;
import com.xh.core.modules.model.polygon.PolygonService;
import com.xh.core.modules.model.ralogs.RalogsBean;
import com.xh.core.modules.model.ralogs.RalogsService;
import com.xh.core.modules.model.regional.RegionalBean;
import
com.xh.core.modules.model.regional.RegionalService;
import com.xh.core.modules.model.terminal.TerminalBean;
import
com.xh.core.modules.model.terminal.TerminalService;
public class AlarmsTask extends TimerTask {
private RalogsService ralogsService;
private OnlineService onlineService;
private RegionalService regionalService;
private PolygonService polygonService;
private TerminalService terminalService;
public void setRalogsService(RalogsService ralogsService)
{
this.ralogsService = ralogsService;
}
public void setOnlineService(OnlineService onlineService)
{
this.onlineService = onlineService;
}
public void setRegionalService(RegionalService
regionalService) {
this.regionalService = regionalService;
}
public void setTerminalService(TerminalService
terminalService) {
this.terminalService = terminalService;
}
public void setPolygonService(PolygonService polygonService)
{
this.polygonService = polygonService;
}
public void run() {
List list = new ArrayList();
list = onlineService.queryAllOnline();
String dates =
TimeEncoding.getCurrTime(TimeEncoding.DATATIME_FORMAT);
if (null != list && list.size() > 0) {
List glist = new ArrayList();
glist = regionalService.queryAllRegional();
for (int i = 0; i < list.size(); i++) {
OnlineBean oBean = list.get(i);
String tnums = oBean.getOnum();
Date stime =
TimeEncoding.getFormatTime(oBean.getOstime());
Date etime =
TimeEncoding.getFormatTime(oBean.getOetime());
int sid = oBean.getOsrid();
int eid = oBean.getOerid();
int pid = oBean.getOpid();
PolygonBean pBean = null;
if (pid != 0) {
pBean = polygonService.getPolygonBeanById(pid);
}
if (tnums != null && !"".equals(tnums)) {
String tnumss[] = tnums.split(",");
for (int j = 0; j < tnumss.length; j++) {
TerminalBean tBean = terminalService
.findbyTnum(tnumss[j]);
String date[] = NewestDate.getNewDate(tnumss[j]);
if (date[1].indexOf(dates) < -1) {// 是不是当天数据
continue;
}
Date gpst = TimeEncoding.getFormatTime(date[1]);
if (gpst.getTime() > etime.getTime()
|| gpst.getTime() < stime.getTime()) {// 时间不对中断
continue;
}
Location wgs84 = new Location(Double
.parseDouble(date[3].trim()), Double
.parseDouble(date[2].trim()));
Location bd09 = Location.transform_wgs84_to_bd09(wgs84);
for (int k = 0; k < glist.size(); k++) {// 判断区域报警
RegionalBean rBean = glist.get(k);
int rid = rBean.getRid();
if (rid != sid && rid != eid) {
if (GeocodeAddrInfo.ppsIsBound(rBean
.getPoints(), bd09.getLng(), bd09
.getLat())) {
RalogsBean rab = ralogsService
.getRalogsBean(tnumss[j], "0",
date[1], rBean.getRid(),
oBean.getOid());
if (rab == null) {
RalogsBean ra = new RalogsBean();
ra.setAlat(bd09.getLat() + "");
ra.setAlng(bd09.getLng() + "");
ra.setAspeed(date[5]);
ra.setAnum(tnumss[j]);
ra.setAtime(date[1]);
ra.setRstatus(0);
ra.setAname("0");
ra.setAuser(oBean.getOid() + "");
ra.setAphone(tBean.getTcarCode());
ra.setAremark(rBean.getRname());
ra.setOrid(rBean.getRid());
ralogsService.insertRalogs(ra);
}
}
}
}
if (pBean != null && pBean.getPid() != 0) {
if (!GeocodeAddrInfo.ppsIsLine(pBean.getPoints(),
bd09.getLng(), bd09.getLat())) {// 判断线路报警
RalogsBean rab = ralogsService.getRalogsBean(
tnumss[j], "1", date[1],
pBean.getPid(), oBean.getOid());
if (rab == null) {
RalogsBean ra = new RalogsBean();
ra.setAlat(bd09.getLat() + "");
ra.setAlng(bd09.getLng() + "");
ra.setAspeed(date[5]);
ra.setAnum(tnumss[j]);
ra.setAtime(date[1]);
ra.setRstatus(0);
ra.setAuser(oBean.getOid() + "");
ra.setAname("1");
ra.setAphone(tBean.getTcarCode());
ra.setAremark(pBean.getPname());
ra.setOrid(pBean.getPid());
ralogsService.insertRalogs(ra);
}
}
}
}
}
}
}
}
}