SubEntityTable.java

package com.mycim.valueobject.table;

import com.mycim.framework.utils.lang.StringUtils;
import com.mycim.valueobject.consts.DataBaseNames;

import java.io.Serializable;

/**
 * @author yibing.liu
 * @version 1.0
 * @date 2021/4/28
 */
public class SubEntityTable implements Serializable {

    private String subEntityType;
    private String subEntityTableName;
    private String subEntityHistoryTableName;
    private String tableDifferentPrimaryKey;

    private Long entityRrn;
    private Long eventRrn;

    public String getSubEntityType() {
        return subEntityType;
    }

    public void setSubEntityType(String subEntityType) {
        this.subEntityType = subEntityType;
    }

    public String getSubEntityTableName() {
        return subEntityTableName;
    }

    public void setSubEntityTableName(String subEntityTableName) {
        this.subEntityTableName = subEntityTableName;
    }

    public String getTableDifferentPrimaryKey() {
        return tableDifferentPrimaryKey;
    }

    public void setTableDifferentPrimaryKey(String tableDifferentPrimaryKey) {
        this.tableDifferentPrimaryKey = tableDifferentPrimaryKey;
    }

    public String getSubEntityHistoryTableName() {
        return subEntityHistoryTableName;
    }

    public void setSubEntityHistoryTableName(String subEntityHistoryTableName) {
        this.subEntityHistoryTableName = subEntityHistoryTableName;
    }

    public Long getEntityRrn() {
        return entityRrn;
    }

    public void setEntityRrn(Long entityRrn) {
        this.entityRrn = entityRrn;
    }

    public Long getEventRrn() {
        return eventRrn;
    }

    public void setEventRrn(Long eventRrn) {
        this.eventRrn = eventRrn;
    }

    /**
     * 目前仅拆分处理 MAINEQPT、RETICLE、CARRIER 这3种类型的状态
     * @param entityType    实体类型
     * @param entityRrn     实体RRN
     * @param eventRrn      事件RRN
     */
    public SubEntityTable(String entityType, Long entityRrn, Long eventRrn){
        this.subEntityType = entityType;
        this.entityRrn = entityRrn;
        this.eventRrn = eventRrn;
        String tableName = StringUtils.EMPTY;
        String historyTableName = StringUtils.EMPTY;
        String differentPrimaryKey = StringUtils.EMPTY;
        switch (StringUtils.isNotBlank(entityType)? entityType.toUpperCase() : StringUtils.EMPTY){
            case "MAINEQPT" :   tableName = DataBaseNames.EQPT_STATUS;
                                historyTableName = DataBaseNames.EQPT_STATUS_H;
                                differentPrimaryKey = DataBaseNames.EQPT_STATUS_PK;
                                break;
            case "RETICLE" :    tableName = DataBaseNames.RETICLE_STATUS;
                                historyTableName = DataBaseNames.RETICLE_STATUS_H;
                                differentPrimaryKey = DataBaseNames.RETICLE_STATUS_PK;
                                break;
            case "CARRIER" :    tableName = DataBaseNames.CARRIER_STATUS;
                                historyTableName = DataBaseNames.CARRIER_STATUS_H;
                                differentPrimaryKey = DataBaseNames.CARRIER_STATUS_PK;
                                break;
            default: break;
        }
        this.subEntityTableName = tableName;
        this.subEntityHistoryTableName = historyTableName;
        this.tableDifferentPrimaryKey = differentPrimaryKey;
    }

    @Override
    public String toString() {
        return "SubEntityTable{" + "subEntityType='" + subEntityType + '\'' + ", subEntityTableName='"
               + subEntityTableName + '\'' + ", subEntityHistoryTableName='" + subEntityHistoryTableName
               + '\'' + ", tableDifferentPrimaryKey='" + tableDifferentPrimaryKey + '\'' + '}';
    }
}