RfidDataModel.java 3.56 KB
package cn.csbr.app.model;

import java.util.ArrayList;
import java.util.List;

import org.springframework.util.StringUtils;

import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.annotation.JSONType;

/**
 * RFID数据模型.
 *
 * @author fenglinz
 * @since 2018-9-26
 */
@JSONType()
public class RfidDataModel {

    /** 区域CD */
    @JSONField(name = "QUYUCD")
    private String areaCd;

    /** RFID CD */
    @JSONField(name = "RFIDCD")
    private String rfidCd;

    /** 柜子CD */
    @JSONField(name = "CABINETCD")
    private String cabinetCd;

    /** 操作者CD */
    @JSONField(name = "USERCD")
    private String userCd;

    /** 操作者名称 */
    @JSONField(name = "USERNAME")
    private String userName;

    /**
     * 返回区域CD
     *
     * @return 区域CD
     */
    public String getAreaCd() {
        return areaCd;
    }

    /**
     * 设置区域CD
     *
     * @param areaCd 区域CD
     */
    public void setAreaCd(String areaCd) {
        this.areaCd = areaCd;
    }

    /**
     * 返回RFID CD
     *
     * @return RFID CD
     */
    public String getRfidCd() {
        return rfidCd;
    }

    /**
     * 设置RFID CD
     *
     * @param rfidCd RFID CD
     */
    public void setRfidCd(String rfidCd) {
        this.rfidCd = rfidCd;
    }

    /**
     * 返回柜子CD
     *
     * @return 柜子CD
     */
    public String getCabinetCd() {
        return cabinetCd;
    }

    /**
     * 设置柜子CD
     *
     * @param cabinetCd 柜子CD
     */
    public void setCabinetCd(String cabinetCd) {
        this.cabinetCd = cabinetCd;
    }

    /**
     * 返回用户CD
     *
     * @return 用户CD
     */
    public String getUserCd() {
        return userCd;
    }

    /**
     * 设置用户CD
     *
     * @param userCd 用户CD
     */
    public void setUserCd(String userCd) {
        this.userCd = userCd;
    }

    /**
     * 返回用户名称
     *
     * @return 用户名称
     */
    public String getUserName() {
        return userName;
    }

    /**
     * 设置用户名称
     *
     * @param userName 用户名称
     */
    public void setUserName(String userName) {
        this.userName = userName;
    }

    public static synchronized List<RfidDataModel> fromJson(String datas) {
        List<RfidDataModel> result = new ArrayList<>();

        if (StringUtils.isEmpty(datas) || datas.length() <= 2) {
            return result;
        }

        int leftBracket = -1;
        List<String> items = new ArrayList<>();
        datas = datas.replace("[", "").replace("]", "");

        while ((leftBracket = datas.indexOf("{")) != -1) {
            items.add(datas.substring(leftBracket + 1, datas.indexOf("}")));

            if (datas.indexOf("}") + 1 >= datas.length()) {
                break;
            }

            datas = datas.substring(datas.indexOf("}") + 1);
        }

        for (String item : items) {
            String[] fields = item.split(",");
            RfidDataModel model = new RfidDataModel();

            if (fields.length < 5) {
                continue;
            }

            model.setAreaCd(fields[0].replace("\"","" ).split(":")[1]);
            model.setRfidCd(fields[1].replace("\"","" ).split(":")[1]);
            model.setCabinetCd(fields[2].replace("\"","" ).split(":")[1]);
            try {
                model.setUserCd(fields[3].replace("\"", "").split(":")[1]);
                model.setUserName(fields[4].replace("\"", "").split(":")[1]);
            }catch (Exception ex){

            }

            result.add(model);
        }

        return result;
    }
}