package com.zy.core.thread; import com.alibaba.fastjson.JSONObject; import com.core.common.DateUtils; import com.zy.core.Slave; import com.zy.core.ThreadHandler; import com.zy.core.cache.OutputQueue; import lombok.Data; import lombok.extern.slf4j.Slf4j; import java.util.Date; /** * 条码扫描仪线程 * Created by vincent on 2020/8/4 */ @Data @Slf4j public class BarcodeThread implements Runnable, ThreadHandler { private Slave slave; private StringBuffer barcode = new StringBuffer(); public BarcodeThread(Slave slave) { this.slave = slave; } public String getBarcode() { return barcode.toString(); } public void setBarcode(String barcode) { this.barcode.delete(0, this.barcode.length()); this.barcode.append(barcode); log.info("{}号条码器,检索数据:{}", slave.getId(), this.barcode); JSONObject jsonObject = new JSONObject(); jsonObject.put("time", DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmss_F)); jsonObject.put("barcode", barcode); if (OutputQueue.BARCODE.size() >= 32) { OutputQueue.BARCODE.poll(); } OutputQueue.BARCODE.offer(jsonObject); } @Override public boolean connect() { return false; } @Override public void close() { } @Override public void run() { } }