自动化立体仓库 - WCS系统
*
lsh
6 天以前 f287ab5ee6b9938e0d48cdb62c05078bdec463d8
src/main/java/com/zy/core/thread/ScaleThread.java
@@ -1,11 +1,15 @@
package com.zy.core.thread;
import com.alibaba.fastjson.JSONObject;
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.SpringUtils;
import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.service.BasDevpService;
import com.zy.asrs.service.DeviceErrorService;
import com.zy.core.Slave;
import com.zy.core.ThreadHandler;
import com.zy.core.cache.OutputQueue;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
@@ -16,6 +20,7 @@
import java.net.Socket;
import java.net.SocketAddress;
import java.net.SocketTimeoutException;
import java.util.Date;
/**
 * 磅秤线程
@@ -57,6 +62,14 @@
                                if (null != basDevpService && !basDevpService.updateById(basDevp)) {
                                    throw new Exception("更新数据库数据失败");
                                }
                                JSONObject jsonObject = new JSONObject();
                                jsonObject.put("time", DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmss_F));
                                jsonObject.put("id", staNo);
                                jsonObject.put("scale", scale);
                                if (OutputQueue.SCALE.size() >= 32) {
                                    OutputQueue.SCALE.poll();
                                }
                                OutputQueue.SCALE.offer(jsonObject);
                            }
                        }
                    }
@@ -71,6 +84,7 @@
    @Override
    public boolean connect() {
        try {
            close();  //1.主动释放连接 //2.某些服务器对指定ip有链路数限制
            socket = new Socket();
@@ -80,9 +94,13 @@
            dataOutputStream = new DataOutputStream(socket.getOutputStream());
            dataInputStream = new DataInputStream(socket.getInputStream());
//            log.info("条码扫描仪连接成功 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
            DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
            deviceErrorService.deleteDeviceError("scale", slave.getId());
        } catch (Exception e) {
            socket = null;
            log.error("磅秤连接失败!!! ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
            DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
            deviceErrorService.addDeviceError("scale", slave.getId(), "磅秤连接失败");
            return false;
        }
        return true;