#
Junjie
2025-07-06 0d04bc5d8080b82338302fba0a59fccff2eaedfc
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SiemensBarcodeThread.java
@@ -27,7 +27,7 @@
    private RedisUtil redisUtil;
    private SiemensS7Net siemensS7Net;
    private StringBuffer barcode = new StringBuffer();
    private String lastBarcode;
    private String lastBarcode = "";
    public SiemensBarcodeThread(Device device, RedisUtil redisUtil) {
        this.device = device;
@@ -39,11 +39,12 @@
        return String.valueOf(barcode);
    }
    public void setBarcode(String barcode) {
        this.lastBarcode = String.valueOf(this.barcode);
    @Override
    public boolean setBarcode(String barcode) {
        this.barcode.delete(0, this.barcode.length());
        this.barcode.append(barcode);
        if(!Cools.isEmpty(barcode) && !this.lastBarcode.equals(barcode)) {
            this.lastBarcode = String.valueOf(this.barcode);
            News.info("{}号条码器,检索数据:{}", device.getId(), this.barcode);
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("time", DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmss_F));
@@ -52,7 +53,9 @@
                OutputQueue.BARCODE.poll();
            }
            OutputQueue.BARCODE.offer(jsonObject);
            return true;
        }
        return false;
    }
    @Override
@@ -81,37 +84,37 @@
    @Override
    public void run() {
        this.connect();
        while (true) {
            try {
                DeviceBarcodeService deviceBarcodeService = SpringUtils.getBean(DeviceBarcodeService.class);
                if (deviceBarcodeService == null) {
                    continue;
                }
                DeviceBarcode deviceBarcode = deviceBarcodeService.getOne(new LambdaQueryWrapper<DeviceBarcode>()
                        .eq(DeviceBarcode::getDeviceId, device.getId())
                        .eq(DeviceBarcode::getHostId, device.getHostId())
                        .eq(DeviceBarcode::getStatus, 1));
                if (deviceBarcode == null) {
                    continue;
                }
                JSONObject connect = JSON.parseObject(deviceBarcode.getConnect());
                String address = connect.getString("address");
                Short length = connect.getShort("length");
                // 条码扫描器
                OperateResultExOne<byte[]> result = null;
                result = siemensS7Net.Read(address, length);
                if (result.IsSuccess) {
                    String barcode = siemensS7Net.getByteTransform().TransString(result.Content, 0, length, "UTF-8");
                    setBarcode(barcode);
                }
            } catch (Exception e) {
//                e.printStackTrace();
            }
        }
//        this.connect();
//        while (true) {
//            try {
//                DeviceBarcodeService deviceBarcodeService = SpringUtils.getBean(DeviceBarcodeService.class);
//                if (deviceBarcodeService == null) {
//                    continue;
//                }
//
//                DeviceBarcode deviceBarcode = deviceBarcodeService.getOne(new LambdaQueryWrapper<DeviceBarcode>()
//                        .eq(DeviceBarcode::getDeviceId, device.getId())
//                        .eq(DeviceBarcode::getHostId, device.getHostId())
//                        .eq(DeviceBarcode::getStatus, 1));
//                if (deviceBarcode == null) {
//                    continue;
//                }
//
//                JSONObject connect = JSON.parseObject(deviceBarcode.getConnect());
//                String address = connect.getString("address");
//                Short length = connect.getShort("length");
//
//                // 条码扫描器
//                OperateResultExOne<byte[]> result = null;
//                result = siemensS7Net.Read(address, length);
//                if (result.IsSuccess) {
//                    String barcode = siemensS7Net.getByteTransform().TransString(result.Content, 0, length, "UTF-8");
//                    setBarcode(barcode);
//                }
//            } catch (Exception e) {
////                e.printStackTrace();
//            }
//        }
    }
}