package com.thhy.materials.modules.biz.helmet.scheduled;
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.github.pagehelper.util.StringUtil;
|
import com.thhy.materials.modules.biz.helmet.entity.*;
|
import com.thhy.materials.modules.biz.helmet.service.HelmetService;
|
import org.springframework.http.HttpEntity;
|
import org.springframework.http.HttpHeaders;
|
import org.springframework.http.MediaType;
|
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.stereotype.Component;
|
import org.springframework.util.CollectionUtils;
|
import org.springframework.web.client.RestTemplate;
|
|
import javax.annotation.Resource;
|
import java.text.ParseException;
|
import java.text.SimpleDateFormat;
|
import java.util.*;
|
import java.util.logging.SimpleFormatter;
|
import java.util.stream.Collectors;
|
|
@Component
|
public class PictureScheduled {
|
|
|
@Resource
|
private HelmetService helmetService;
|
//图片记录
|
@Scheduled(fixedRate = 2000000) // 每隔3秒执行一次任务
|
public void task() {
|
String token = token();
|
List<THelmetDevice> helmetDevices = helmetService.helmetServiceList();
|
System.out.println(helmetDevices);
|
|
for (THelmetDevice device : helmetDevices){
|
RestTemplate restTemplate = new RestTemplate();
|
HttpHeaders headers = new HttpHeaders();
|
headers.setContentType(MediaType.valueOf(MediaType.APPLICATION_FORM_URLENCODED_VALUE));
|
HttpEntity<Map<String, Object>> mapHttpEntity = new HttpEntity<>(null, headers);
|
String s = restTemplate.postForObject("https://caps.runde.pro/api/index.php?ctl=report&act=get_user_image&user_id="+device.getUserId()+"&p=1"+"&token="+token, mapHttpEntity, String.class);
|
JSONObject jsonObject = JSONObject.parseObject(s);
|
// System.out.println("----------------------------------------------");
|
// System.out.println("----------------------------------------------");
|
// System.out.println("----------------------------------------------");
|
// System.out.println("----------------------------------------------");
|
// System.out.println("----------------------------------------------");
|
// System.out.println(jsonObject);
|
if(jsonObject.get("status").toString().equals("true")){
|
//图片值
|
List<Map<String,Object>> data = (List<Map<String, Object>>) jsonObject.get("data");
|
// System.out.println("----------map------------");
|
// System.out.println(data);
|
|
for (Integer i =data.size()-1;i!=0;i--){
|
Integer iId = helmetService.userIdIid(Integer.valueOf(data.get(i).get("user_id").toString()));
|
if((iId!=null && Integer.valueOf(data.get(i).get("i_id").toString())>iId)||iId==null){
|
THelmetPicture tHelmetPicture = new THelmetPicture();
|
tHelmetPicture.setUserId(Integer.valueOf(data.get(i).get("user_id").toString()));
|
tHelmetPicture.setIId(Integer.valueOf(data.get(i).get("i_id").toString()));
|
tHelmetPicture.setCreTime(data.get(i).get("time").toString());
|
tHelmetPicture.setXPoint(data.get(i).get("x_point").toString());
|
tHelmetPicture.setYPoint(data.get(i).get("y_point").toString());
|
tHelmetPicture.setImageUrl(data.get(i).get("image_url").toString());
|
Date date = new Date(Long.valueOf(data.get(i).get("time").toString()+"000"));
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
tHelmetPicture.setSmTime(sdf.format(date));
|
helmetService.helmetPictureInsert(tHelmetPicture);
|
}
|
}
|
}
|
}
|
}
|
|
|
//报警记录
|
@Scheduled(fixedRate = 3000000) // 每隔3秒执行一次任务
|
public void taskReport() {
|
String token = token();
|
// System.out.println(token);
|
List<THelmetDevice> helmetDevices = helmetService.helmetServiceList();
|
for (THelmetDevice device : helmetDevices){
|
RestTemplate restTemplate = new RestTemplate();
|
HttpHeaders headers = new HttpHeaders();
|
headers.setContentType(MediaType.valueOf(MediaType.APPLICATION_FORM_URLENCODED_VALUE));
|
HttpEntity<Map<String, Object>> mapHttpEntity = new HttpEntity<>(null, headers);
|
String s = restTemplate.postForObject("https://caps.runde.pro/api/index.php?ctl=task&act=get_sos_list&admin_id=8630&user_id="+device.getUserId()+"&p=1"+"&token="+token, mapHttpEntity, String.class);
|
JSONObject jsonObject = JSONObject.parseObject(s);
|
// System.out.println("-----------------------------------报警--------------------------");
|
// System.out.println(jsonObject);
|
|
List<Map<String,Object>> data = (List<Map<String, Object>>) jsonObject.get("data");
|
if(data.size()>0){
|
for(int i=data.size()-1;i>0;i--){
|
Integer sId = helmetService.userIdReport(Integer.valueOf(data.get(i).get("user_id").toString()));
|
if((sId!=null && Integer.valueOf(data.get(i).get("s_id").toString())>sId)||sId==null){
|
THelmetReport tHelmetReport = new THelmetReport();
|
tHelmetReport.setSId(Integer.valueOf(data.get(i).get("s_id").toString()));
|
tHelmetReport.setUserId(Integer.valueOf(data.get(i).get("user_id").toString()));
|
tHelmetReport.setUserName(data.get(i).get("user_name").toString());
|
tHelmetReport.setDeviceId(data.get(i).get("device_id").toString());
|
tHelmetReport.setXPoint(data.get(i).get("x_point").toString());
|
tHelmetReport.setYPoint(data.get(i).get("y_point").toString());
|
tHelmetReport.setCTime(data.get(i).get("c_time").toString());
|
tHelmetReport.setSosType(data.get(i).get("sos_type").toString());
|
tHelmetReport.setMsg(data.get(i).get("msg").toString());
|
//tHelmetReport.setImgurl(data.get(i).get("msg").toString());
|
tHelmetReport.setMobile(data.get(i).get("mobile").toString());
|
Date date = new Date(Long.valueOf(data.get(i).get("c_time").toString()+"000"));
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
tHelmetReport.setSmTime(sdf.format(date));
|
helmetService.helmetReportInsert(tHelmetReport);
|
}
|
}
|
}
|
}
|
}
|
|
//轨迹记录
|
@Scheduled(fixedRate = 3000000) // 每隔3秒执行一次任务
|
public void taskTrajectory() throws ParseException {
|
String token = token();
|
//System.out.println(token);
|
List<THelmetDevice> helmetDevices = helmetService.helmetServiceList();
|
|
Date date = new Date();
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
|
SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd 23:59:59");
|
String format = simpleDateFormat.format(date);
|
String format1 = simpleDateFormat1.format(date);
|
Date str = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(format);
|
Date end = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(format1);
|
long time = str.getTime();
|
long time1 = end.getTime();
|
System.out.println();
|
String strTime = String.valueOf(time).substring(0, 10);
|
String endTime = String.valueOf(time1).substring(0, 10);
|
|
for(THelmetDevice helmetDevice : helmetDevices){
|
RestTemplate restTemplate = new RestTemplate();
|
HttpHeaders headers = new HttpHeaders();
|
headers.setContentType(MediaType.valueOf(MediaType.APPLICATION_FORM_URLENCODED_VALUE));
|
HttpEntity<Map<String, Object>> mapHttpEntity = new HttpEntity<>(null, headers);
|
String s = restTemplate.postForObject("https://caps.runde.pro/api/index.php?ctl=device&act=get_devices_online_time_days&admin_id=8630&user_id="+helmetDevice.getUserId()+"&stime="+strTime+"&etime="+endTime+"&token="+token, mapHttpEntity, String.class);
|
JSONObject jsonObject = JSONObject.parseObject(s);
|
//Object data = jsonObject.get("data");
|
// System.out.println("-----------轨迹回放--------------");
|
// System.out.println("-----------轨迹回放--------------");
|
// System.out.println("-----------轨迹回放--------------");
|
// System.out.println("-----------轨迹回放--------------");
|
// System.out.println("-----------轨迹回放--------------");
|
// System.out.println(jsonObject);
|
Object date1 = jsonObject.get("data");
|
JSONObject jsonObject1 = JSONObject.parseObject(date1.toString());
|
List<Map<String,Object>> list = (List<Map<String, Object>>) jsonObject1.get("list");
|
for (Map<String,Object> map : list){
|
THelmetTrajectory helmetTrajectory = helmetService.trajectory(helmetDevice.getUserId(),map.get("ctime").toString());
|
if(helmetTrajectory==null){
|
THelmetTrajectory helmetTrajectory1 = new THelmetTrajectory();
|
helmetTrajectory1.setCtime(map.get("ctime").toString());
|
helmetTrajectory1.setUserId(helmetDevice.getUserId());
|
helmetTrajectory1.setLtime(map.get("ltime").toString());
|
helmetTrajectory1.setSec(map.get("sec").toString());
|
helmetService.helmetTrajectoryInsert(helmetTrajectory1);
|
}else {
|
helmetTrajectory.setLtime(map.get("ltime").toString());
|
helmetTrajectory.setSec(map.get("sec").toString());
|
helmetService.helmetTrajectoryUpdate(helmetTrajectory);
|
}
|
}
|
|
|
RestTemplate restTemplate1 = new RestTemplate();
|
HttpHeaders headers1 = new HttpHeaders();
|
headers1.setContentType(MediaType.valueOf(MediaType.APPLICATION_FORM_URLENCODED_VALUE));
|
HttpEntity<Map<String, Object>> mapHttpEntity1 = new HttpEntity<>(null, headers1);
|
String s1 = restTemplate1.postForObject("https://caps.runde.pro/api/index.php?ctl=location&act=get_user_path_web&admin_id=8630&user_id="+helmetDevice.getUserId()+"&start="+strTime+"&end="+endTime+"&token="+token, mapHttpEntity1, String.class);
|
JSONObject jsonObject11 = JSONObject.parseObject(s1);
|
System.out.println("--------------------------轨迹 坐标点----------------------");
|
System.out.println("--------------------------轨迹 坐标点----------------------");
|
System.out.println("--------------------------轨迹 坐标点----------------------");
|
System.out.println("--------------------------轨迹 坐标点----------------------");
|
System.out.println("--------------------------轨迹 坐标点----------------------");
|
System.out.println("--------------------------轨迹 坐标点----------------------");
|
System.out.println(jsonObject11);
|
if(jsonObject11.get("status").toString().equals("true")){
|
List<Map<String,Object>> data = (List<Map<String, Object>>) jsonObject11.get("data");
|
if(data.size()>0){
|
for (Map<String,Object> map :data){
|
String times = helmetService.helmetMotion(helmetDevice.getUserId());
|
if(StringUtil.isEmpty(times) || (!StringUtil.isEmpty(times)&& Integer.valueOf(map.get("time").toString())>Integer.valueOf(times))){
|
THelmetMotion tHelmetMotion = new THelmetMotion();
|
tHelmetMotion.setUserId(helmetDevice.getUserId());
|
tHelmetMotion.setXPoint(map.get("x_point").toString());
|
tHelmetMotion.setYPoint(map.get("y_point").toString());
|
tHelmetMotion.setTimes(map.get("time").toString());
|
tHelmetMotion.setCAngle(map.get("c_angle").toString());
|
tHelmetMotion.setCSpeed(map.get("c_speed").toString());
|
tHelmetMotion.setCTrust(map.get("c_trust").toString());
|
Date date2 = new Date(Long.valueOf(map.get("time").toString()+"000"));
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
tHelmetMotion.setSmTime(sdf.format(date2));
|
helmetService.helmetMotionInsert(tHelmetMotion);
|
}
|
}
|
}
|
}
|
}
|
|
}
|
|
|
|
|
|
|
|
public String token(){
|
//用户token
|
RestTemplate restTemplate = new RestTemplate();
|
HttpHeaders headers = new HttpHeaders();
|
headers.setContentType(MediaType.valueOf(MediaType.APPLICATION_FORM_URLENCODED_VALUE));
|
HttpEntity<Map<String, Object>> mapHttpEntity = new HttpEntity<>(null, headers);
|
String s = restTemplate.postForObject("https://caps.runde.pro/api/index.php?ctl=tool&act=get_pkey&user_name=NJBBT8204&pwd=Bbt162534@", mapHttpEntity, String.class);
|
JSONObject jsonObject = JSONObject.parseObject(s);
|
Object data = jsonObject.get("data");
|
|
RestTemplate restTemplate1 = new RestTemplate();
|
HttpHeaders headers1 = new HttpHeaders();
|
headers1.setContentType(MediaType.valueOf(MediaType.APPLICATION_FORM_URLENCODED_VALUE));
|
HttpEntity<Map<String, Object>> mapHttpEntity1 = new HttpEntity<>(null, headers1);
|
String s1 = restTemplate1.postForObject("https://caps.runde.pro/api/index.php?ctl=tool&act=get_token&user_name=NJBBT8204&pkey="+data.toString(), mapHttpEntity1, String.class);
|
JSONObject jsonObject1 = JSONObject.parseObject(s1);
|
Object data1 = jsonObject1.get("token");
|
return data1.toString();
|
}
|
|
|
|
|
|
}
|