package com.ruoyi.quartz.task;
|
|
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONObject;
|
import com.ruoyi.common.constant.UrlConstant;
|
import com.ruoyi.common.utils.DateUtils;
|
import com.ruoyi.common.utils.IdUtils;
|
import com.ruoyi.station.domain.*;
|
import com.ruoyi.station.model.TmpDataModel;
|
import com.ruoyi.station.model.WorkUserModel;
|
import com.ruoyi.station.service.*;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.http.HttpEntity;
|
import org.springframework.http.HttpHeaders;
|
import org.springframework.http.MediaType;
|
import org.springframework.http.ResponseEntity;
|
import org.springframework.stereotype.Component;
|
import org.springframework.util.LinkedMultiValueMap;
|
import org.springframework.util.MultiValueMap;
|
import org.springframework.web.client.RestTemplate;
|
|
import java.util.ArrayList;
|
import java.util.Collections;
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* 定时扫描读头,判断是否在线
|
*/
|
@Component("readHeadStatusTask")
|
public class ReadHeadStatusTask {
|
|
private static String ipAndPort = "http://192.168.136.20:8099";
|
|
@Autowired
|
private IMjFingerprintReadHeadService iMjFingerprintReadHeadService;
|
@Autowired
|
private IMjEquipmentService iMjEquipmentService;
|
|
@Autowired
|
private IMjVisitLogService visitLogService;
|
@Autowired
|
private IMjHnweEventService hnweEventService;
|
|
public void pushUser() {
|
visitLogService.delete7days();
|
hnweEventService.delete7days();
|
// MjEquipment eq = new MjEquipment();
|
// eq.setEquipmentType(0);
|
// List<MjEquipment> mjEquipments = iMjEquipmentService.selectMjEquipmentList(eq);
|
// for(MjEquipment e : mjEquipments){
|
// //iMjEquipmentService.deleteMjEquipmentById(e.getId());
|
// }
|
|
List<MjFingerprintReadHead> list = iMjFingerprintReadHeadService.selectMjFingerprintReadHeadList(null);
|
for(MjFingerprintReadHead head:list){
|
// Thread t = new Thread(new Runnable(){
|
// public void run(){
|
boolean b = connectionStatus(head.getIpOrOther(), head.getPort());
|
if(b){
|
head.setShowStatus(1);
|
MjEquipment eq = new MjEquipment();
|
eq.setEquipmentType(0);
|
eq.setUpdateBy(head.getId());
|
List<MjEquipment> mjEquipments = iMjEquipmentService.selectMjEquipmentList(eq);
|
for(MjEquipment e:mjEquipments){
|
if(e.getStatus()==0){
|
MjEquipment equipment = new MjEquipment();
|
equipment.setCreateTime(DateUtils.getNowDate());
|
equipment.setId(IdUtils.fastSimpleUUID());
|
equipment.setEquipmentType(0);
|
String faxiang = "";
|
if(head.getDirection()!=null){
|
if(head.getDirection()==0){
|
faxiang = "进门";
|
}
|
if(head.getDirection()==1){
|
faxiang = "出门";
|
}
|
}
|
equipment.setStatus(1);
|
equipment.setUpdateBy(head.getId());
|
equipment.setContent(DateUtils.parseDateToStr("MM-dd HH:mm",equipment.getCreateTime())+" "+head.getDoorName()+" "+faxiang);
|
iMjEquipmentService.insertMjEquipment(equipment);
|
}
|
break;
|
}
|
}else{
|
head.setShowStatus(0);
|
MjEquipment eq = new MjEquipment();
|
eq.setEquipmentType(0);
|
eq.setUpdateBy(head.getId());
|
List<MjEquipment> mjEquipments = iMjEquipmentService.selectMjEquipmentList(eq);
|
if(mjEquipments.size()==0){
|
MjEquipment equipment = new MjEquipment();
|
equipment.setCreateTime(DateUtils.getNowDate());
|
equipment.setId(IdUtils.fastSimpleUUID());
|
equipment.setEquipmentType(0);
|
String faxiang = "";
|
if(head.getDirection()!=null){
|
if(head.getDirection()==0){
|
faxiang = "进门";
|
}
|
if(head.getDirection()==1){
|
faxiang = "出门";
|
}
|
}
|
equipment.setStatus(0);
|
equipment.setUpdateBy(head.getId());
|
equipment.setContent(DateUtils.parseDateToStr("MM-dd HH:mm",equipment.getCreateTime())+" "+head.getDoorName()+" "+faxiang);
|
iMjEquipmentService.insertMjEquipment(equipment);
|
}
|
for(MjEquipment e:mjEquipments){
|
if(e.getStatus()==1){
|
MjEquipment equipment = new MjEquipment();
|
equipment.setCreateTime(DateUtils.getNowDate());
|
equipment.setId(IdUtils.fastSimpleUUID());
|
equipment.setEquipmentType(0);
|
String faxiang = "";
|
if(head.getDirection()!=null){
|
if(head.getDirection()==0){
|
faxiang = "进门";
|
}
|
if(head.getDirection()==1){
|
faxiang = "出门";
|
}
|
}
|
equipment.setStatus(0);
|
equipment.setUpdateBy(head.getId());
|
equipment.setContent(DateUtils.parseDateToStr("MM-dd HH:mm",equipment.getCreateTime())+" "+head.getDoorName()+" "+faxiang);
|
iMjEquipmentService.insertMjEquipment(equipment);
|
}
|
break;
|
}
|
}
|
iMjFingerprintReadHeadService.updateMjFingerprintReadHead(head);
|
}
|
// });
|
// t.start();
|
//}
|
}
|
|
public boolean connectionStatus(String ip,String port){
|
RestTemplate restTemplate = new RestTemplate();
|
String url = ipAndPort+"/api/SDZ/ZktIsAlive";
|
HttpHeaders headers = new HttpHeaders();
|
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
|
MultiValueMap<String, String> map= new LinkedMultiValueMap<>();
|
map.add("ip",ip);
|
map.add("port",port);
|
|
Boolean isAlive = false;
|
try
|
{
|
HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<>(map, headers);
|
ResponseEntity<String> response = restTemplate.postForEntity( url, request , String.class );
|
//System.out.println(response.getBody());
|
JSONObject jsonObject = JSONObject.parseObject(response.getBody());
|
JSONObject result = jsonObject.getJSONObject("result");
|
isAlive = result.getBoolean("isAlive");
|
//System.out.println(isAlive);
|
}
|
catch (Exception e)
|
{
|
isAlive=false;
|
}
|
|
return isAlive;
|
}
|
}
|