PiLotSetupQueryDTO.java

package com.mycim.valueobject.ems.pilot.dto;

import com.mycim.framework.utils.lang.StringUtils;
import com.mycim.framework.utils.lang.collections.CollectionUtils;
import com.mycim.valueobject.SystemConstant;
import com.mycim.valueobject.common.ExtGridCondition;

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

/**
 * @author songpy
 * @version 1.0.0
 * @date 2021/8/18
 **/
public class PiLotSetupQueryDTO extends ExtGridCondition {
    private static final long serialVersionUID = 4051288653530882201L;

    private List<Object> paramList = new ArrayList<>();

    private String piLotId;

    private Long piLotRrn = 0L;

    private String eqptId;

    private Long eqptRrn = 0L;

    private String type;

    private String lotId;

    private List<String> status = new ArrayList<>();

    private String enableFlag;

    public String getEnableFlag() {
        return enableFlag;
    }

    public void setEnableFlag(String enableFlag) {
        this.enableFlag = enableFlag;
    }

    public List<Object> getParamList() {
        return paramList;
    }

    public void setParamList(List<Object> paramList) {
        this.paramList = paramList;
    }

    public String getPiLotId() {
        return piLotId;
    }

    public void setPiLotId(String piLotId) {
        this.piLotId = piLotId;
    }

    public Long getPiLotRrn() {
        return piLotRrn;
    }

    public void setPiLotRrn(Long piLotRrn) {
        this.piLotRrn = piLotRrn;
    }

    public String getEqptId() {
        return eqptId;
    }

    public void setEqptId(String eqptId) {
        this.eqptId = eqptId;
    }

    public Long getEqptRrn() {
        return eqptRrn;
    }

    public void setEqptRrn(Long eqptRrn) {
        this.eqptRrn = eqptRrn;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public List<String> getStatus() {
        return status;
    }

    public void setStatus(List<String> status) {
        this.status = status;
    }

    public String getLotId() {
        return lotId;
    }

    public void setLotId(String lotId) {
        this.lotId = lotId;
    }

    public PiLotSetupQueryDTO addStatus(String status) {
        this.getStatus().add(status);
        return this;
    }

    @Override
    public String toString() {
        return "PiLotSetupQueryDTO{" + "piLotId='" + piLotId + '\'' + ", piLotRrn=" + piLotRrn + ", eqptId='" + eqptId +
                '\'' + ", eqptRrn=" + eqptRrn + ", type='" + type + '\'' + ", status='" + status + '\'' + "} " +
                super.toString();
    }

    public String toSqlString() {
        StringBuilder sql = new StringBuilder("");

        if (StringUtils.isNotEmpty(this.getPiLotId())) {
            sql.append(" AND PI_LOT_ID LIKE ?");
            this.getParamList().add(this.getPiLotId());
        }

        if (StringUtils.isNotEmpty(this.getLotId())) {
            sql.append(" AND LOT_ID = ?");
            this.getParamList().add(this.getLotId());
        }

        if (StringUtils.isNotEmpty(this.getEqptId())) {
            sql.append(" AND EQPT_ID LIKE ?");
            this.getParamList().add(this.getEqptId());
        }

        if (StringUtils.isNotEmpty(this.getType())) {
            sql.append(" AND PI_LOT_TYPE = ?");
            this.getParamList().add(this.getType());
        }

        if (CollectionUtils.isNotEmpty(this.getStatus())) {
            sql.append(" AND STATUS in ");
            StringJoiner condition = new StringJoiner(",", "(", ")");
            for (String s : this.getStatus()) {
                condition.add("?");
                this.getParamList().add(s);
            }
            sql.append(condition.toString());
        }

        if (Long.valueOf(this.getEqptRrn()) > 0L) {
            sql.append(" AND EQPT_RRN = ?");
            this.getParamList().add(this.getEqptRrn());
        }

        if (Long.valueOf(this.getPiLotRrn()) > 0L) {
            sql.append(" AND PI_LOT_RRN = ?");
            this.getParamList().add(this.getPiLotRrn());
        }

        if (StringUtils.isNotEmpty(this.getEnableFlag())) {
            sql.append(" AND ENABLE_FLAG = ?");
            this.getParamList().add(this.getEnableFlag());
        }
        return sql.toString();
    }

}