vince
2024-04-26 b1c572949997a5d82d9b609163ff280a1c49627d
src/main/java/com/fzzy/api/Constant.java
@@ -1,9 +1,19 @@
package com.fzzy.api;
import com.alibaba.fastjson.JSON;
import com.fzzy.api.data.ApiCommonDevice;
import lombok.extern.slf4j.Slf4j;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
 * 全局静态类
 */
@Slf4j
public class Constant {
    public static final String DEFAULT_CODE = "0";
    public static final String YN_N = "N";
@@ -135,6 +145,10 @@
     * 接口编码-1212 客户信息数据接口
     */
    public static String API_CODE_1212 = "1212";
    /**
     * 接口编码-1214 出入库记录信息数据接口
     */
    public static String API_CODE_1214 = "1214";
    /**
     * 接口编码-1301 安全管理数据接口
@@ -198,16 +212,17 @@
     */
    public static String API_CODE_1405 = "1405";
    //财务报表接口
    public static String API_CODE_1501 = "1501";
    public static String API_CODE_1502 = "1502";
    public static String API_CODE_1503 = "1503";
    /**
     * 国标出入库类型
     */
    public static String  INOUT_TYPE_14 = "14";
    public static String  INOUT_TYPE_2 = "2";
    public static String  INOUT_TYPE_15 = "15";
    public static String  INOUT_TYPE_1 = "1";
    public static String INOUT_TYPE_14 = "14";
    public static String INOUT_TYPE_2 = "2";
    public static String INOUT_TYPE_15 = "15";
    public static String INOUT_TYPE_1 = "1";
    /**
     * 操作标记
@@ -282,18 +297,18 @@
    /**
     * 粮食性质
     */
    public static String  TRIGGER_P_LSXZ = "LSXZ";
    public static String TRIGGER_P_LSXZ = "LSXZ";
    /**
     * 结算方式
     */
    public static String  TRIGGER_P_JSFS = "JSFS";
    public static String TRIGGER_P_JSFS = "JSFS";
    /**
     * 组织部门类型
     */
    public static String DEPT_TYPE_10 = "10";
//    public static String DEPT_TYPE_11 = "11";
    //    public static String DEPT_TYPE_11 = "11";
    public static String DEPT_TYPE_20 = "20";
    public static String DEPT_TYPE_30 = "30";
@@ -302,4 +317,75 @@
     */
    public static final String DEFAULT_USER_PASSWORD = "123456";
    /**
     * 内存数据缓存,用于存储出入库相关的临时信息,如刷卡设备当前最新数据等。
     */
    public static Map<String, ApiCommonDevice> contextDeviceMap = new HashMap<>();
    public static ApiCommonDevice getCommonDeviceCache(String sn) {
        if (null == sn) return null;
        //log.info("在线设备:" + JSON.toJSONString(contextDeviceMap));
        return contextDeviceMap.get(sn);
    }
    public static ApiCommonDevice getCommonDeviceCacheByIp(String ip) {
        if (null == ip) return null;
        if (contextDeviceMap.isEmpty()) return null;
        //log.info("在线设备:" + JSON.toJSONString(contextDeviceMap));
        for (ApiCommonDevice device : contextDeviceMap.values()) {
            if (ip.equals(device.getIp())) return device;
        }
        return null;
    }
    public static ApiCommonDevice getCommonDeviceCacheBySn(String sn) {
        if (null == sn) return null;
        if (contextDeviceMap.isEmpty()) return null;
        log.info("在线设备:" + JSON.toJSONString(contextDeviceMap));
        for (ApiCommonDevice device : contextDeviceMap.values()) {
            if (sn.equals(device.getSn())) return device;
        }
        return null;
    }
    public static ApiCommonDevice updateCacheOnline(String ip, Integer port) {
        ApiCommonDevice device = getCommonDeviceCacheByIp(ip);
        if (null == device) {
            device = new ApiCommonDevice();
        }
        device.setIp(ip);
        device.setPort(port);
        device.setStatus(Constant.YN_Y);
        device.setCode("SUCCESS");
        device.setMsg("设备上线");
        device.setSn(device.getSn());
        device.setId(device.getId());
        device.setOnlineTime(new Date());
        contextDeviceMap.put(device.getIp(), device);
        log.info("设备上线:" + ip);
        return device;
    }
    public static ApiCommonDevice updateCacheOffline(String ip, Integer port) {
        ApiCommonDevice device = getCommonDeviceCacheByIp(ip);
        if (null == device) {
            return null;
        }
        device.setIp(ip);
        device.setPort(port);
        device.setStatus(Constant.YN_N);
        device.setCode("ERROR");
        device.setMsg("设备离线");
        device.setId(device.getId());
        contextDeviceMap.put(device.getIp(), device);
        return device;
    }
    public static void updateCache(ApiCommonDevice device) {
        contextDeviceMap.put(device.getIp(), device);
    }
}