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 mjEquipments = iMjEquipmentService.selectMjEquipmentList(eq); // for(MjEquipment e : mjEquipments){ // //iMjEquipmentService.deleteMjEquipmentById(e.getId()); // } List 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 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 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 map= new LinkedMultiValueMap<>(); map.add("ip",ip); map.add("port",port); Boolean isAlive = false; try { HttpEntity> request = new HttpEntity<>(map, headers); ResponseEntity 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; } }