|  |  |  | 
|---|
|  |  |  | package com.zy.core.thread; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.alibaba.fastjson.JSONObject; | 
|---|
|  |  |  | import com.core.common.Cools; | 
|---|
|  |  |  | import com.core.common.DateUtils; | 
|---|
|  |  |  | import com.zy.core.Slave; | 
|---|
|  |  |  | import com.zy.core.ThreadHandler; | 
|---|
|  |  |  | import com.zy.core.cache.MessageQueue; | 
|---|
|  |  |  | import com.zy.core.enums.SlaveType; | 
|---|
|  |  |  | import com.zy.core.model.Task; | 
|---|
|  |  |  | import com.zy.core.cache.OutputQueue; | 
|---|
|  |  |  | import lombok.Data; | 
|---|
|  |  |  | import lombok.extern.slf4j.Slf4j; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.util.Date; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 条码扫描仪线程 | 
|---|
|  |  |  | 
|---|
|  |  |  | public class BarcodeThread implements Runnable, ThreadHandler { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private Slave slave; | 
|---|
|  |  |  | private StringBuffer barcode = new StringBuffer(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public BarcodeThread(Slave slave) { | 
|---|
|  |  |  | this.slave = slave; | 
|---|
|  |  |  | connect(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @SuppressWarnings("InfiniteLoopStatement") | 
|---|
|  |  |  | public void run() { | 
|---|
|  |  |  | while (true) { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | Task task = MessageQueue.poll(SlaveType.Barcode, slave.getId()); | 
|---|
|  |  |  | if (task != null) { | 
|---|
|  |  |  | System.out.println("任务"+task.getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Thread.sleep(3000); | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | public String getBarcode() { | 
|---|
|  |  |  | return barcode.toString(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public void setBarcode(String barcode) { | 
|---|
|  |  |  | this.barcode.delete(0, this.barcode.length()); | 
|---|
|  |  |  | this.barcode.append(barcode); | 
|---|
|  |  |  | if(!Cools.isEmpty(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; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | public void close() { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void run() { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|