123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- package com.fjhx.rfid.r2000.tcp.callback;
- import com.alibaba.fastjson.JSONObject;
- import com.fjhx.config.RFIDConfig;
- import com.fjhx.rabbitmq.enums.MsgSourceEnum;
- import com.fjhx.rabbitmq.service.RabbitmqService;
- import com.fjhx.redis.RedisCache;
- import com.fjhx.utils.id.IdUtils;
- import com.fjhx.utils.spring.SpringUtils;
- import com.rfid.callBack.CallBack.R2000;
- import lombok.Data;
- import org.apache.commons.lang3.StringUtils;
- import java.io.File;
- import java.io.FileWriter;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- import java.util.concurrent.ConcurrentHashMap;
- @Data
- public class TcpCallBackAllData implements R2000 {
- /**
- * redis实例
- */
- private RedisCache redisCache = SpringUtils.getBean(RedisCache.class);
- /**
- * rabbitmq实例
- */
- private RabbitmqService rabbitmqService = SpringUtils.getBean(RabbitmqService.class);
- /**
- * rdis缓存key
- */
- private String redisKey;
- /**
- * 用户ID
- */
- private String userId;
- /**
- * 读写器IP
- */
- private String ip;
- /**
- * 数据集合
- */
- private List<JSONObject> list;
- private String readTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
- public TcpCallBackAllData(String redisKey, String userId, String ip, List<JSONObject> list) {
- this.redisKey = redisKey;
- this.userId = userId;
- this.ip = ip;
- this.list = list;
- }
- public void readData(String data, String rssi, String antennaNo, String deviceNo, String direction, String communicationMode) {
- String content = "RFID:" + data + ", ANTNO: " + antennaNo + ", TIME: " + readTime + "\r\n";
- // System.err.println("tcp--:" + content);
- FileWriter fwriter = null;
- try {
- if (StringUtils.isBlank(data)) {
- return;
- }
- // 封装实际数据
- JSONObject object = new JSONObject();
- object.put("RFID", data);
- object.put("ANTNO", antennaNo);
- // 不存在文件夹则创建
- String filePath = RFIDConfig.getLog().getSavePath() + new SimpleDateFormat("yyyyMMdd").format(new Date()) + "\\";
- File file = new File(filePath);
- if (!file.exists() && !file.isDirectory()) {
- file.mkdir();
- }
- filePath += new SimpleDateFormat("yyyyMMdd HH").format(new Date()) + ".txt";
- // true表示不覆盖原来的内容,而是加到文件的后面。若要覆盖原来的内容,直接省略这个参数就好
- fwriter = new FileWriter(filePath, true);
- fwriter.write(content);
- // 收集数据
- list.add(object);
- } catch (Exception ex) {
- ex.printStackTrace();
- } finally {
- try {
- if (fwriter != null) {
- fwriter.flush();
- fwriter.close();
- }
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- }
- }
- public void onceReadTagEnd(Boolean result) {
- }
- public void serialPortException(String name, boolean result) {
- }
- public void heartBeat(String value, String deviceNo, String communicationMode) {
- System.out.println("value " + value + " deviceNo " + deviceNo + " communicationMode " + communicationMode);
- }
- public void infraredTrigger(boolean direction, String value, String deviceNo, String communicationMode) {
- System.out.println("方向 " + direction + " 红外值 " + value + " 设备号 " + deviceNo + " IP或串口号 " + communicationMode);
- }
- public void onceReadTagEnd(boolean arg0) {
- }
- }
|