NewParameterRule.java

package com.mycim.valueobject.edcspc;

import com.fa.sesa.i18n.I18nUtils;
import com.mycim.framework.utils.lang.StringUtils;
import com.mycim.valueobject.MessageIdList;

import java.io.Serializable;

public class NewParameterRule implements Serializable {

    private static final long serialVersionUID = 1L;

    private long ruleRrn;

    private String ruleId;

    private long facilityRrn;

    private int units;

    private String area;

    private String eqptId;

    private String productId;

    private String relation;

    private String createUser;

    private String createTime;

    private String updateUser;

    private String updateTime;

    private String attribute1;

    private String attribute2;

    private String attribute3;

    private String attribute4;

    private String attribute5;

    private String waferQty1;

    private String waferQty2;

    private String waferQty3;

    private String waferQty4;

    private String waferQty5;

    private String waferQty6;

    private String waferQty7;

    private String waferQty8;

    private String waferQty9;

    private String waferQty10;

    private String waferQty11;

    private String waferQty12;

    private String waferQty13;

    private String waferQty14;

    private String waferQty15;

    private String waferQty16;

    private String waferQty17;

    private String waferQty18;

    private String waferQty19;

    private String waferQty20;

    private String waferQty21;

    private String waferQty22;

    private String waferQty23;

    private String waferQty24;

    private String waferQty25;

    private String checkBox;

    // -------------------history-------------------
    private String startTime;

    private String endTime;

    private String transId;

    // 每个实际片数(1-25)对应的具体抽的片
    private String[] actuallyChooseWafer;

    // ------------------------------value check valid start------------------------------------
    public String areaIsValid() {
        String val = this.getArea();
        if (StringUtils.isBlank(val)) {
            return I18nUtils.getMessage("area.cannot_empty");
        }
        if (StringUtils.length(val) > 64) {
            return I18nUtils.getMessage("area.length_exceed_64");
        }
        return "";
    }

    public String getArea() {
        if (StringUtils.isNotBlank(area)) {
            return StringUtils.trimToUpperCase(area);
        }
        return area;
    }

    public void setArea(String area) {
        this.area = area;
    }

    public String eqptIdIsValid() {
        String val = this.getEqptId();
        if (StringUtils.isBlank(val)) {
            return I18nUtils.getMessage("equipment.id_cannot_empty");
        }
        if (!StringUtils.equals("*", val) && StringUtils.contains(val, "*")) {
            return I18nUtils.getMessage("equipment.id_contains_*");
        }
        if (StringUtils.length(val) > 64) {
            return I18nUtils.getMessage("equipment.id_length_exceed_64");
        }
        return "";
    }

    public String getEqptId() {
        if (StringUtils.isNotBlank(eqptId)) {
            return StringUtils.trimToUpperCase(eqptId);
        }
        return eqptId;
    }

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

    // -------------------------------value check valid end--------------------------------------

    // --------------------------------wafer qty check start--------------------------------------

    public String productIdIsValid() {
        String val = this.getProductId();
        if (StringUtils.isBlank(val)) {
            return I18nUtils.getMessage("product.id_cannot_empty");
        }
        if (!StringUtils.equals("*", val) && StringUtils.contains(val, "*")) {
            return I18nUtils.getMessage(MessageIdList.PRODUCT_ID_CONTAINS_ASTERISK);
        }
        //        if (StringUtils.length(val) > 4) {
        //            return isEn ? "Product ID length cannot exceed 4!</br>" : "产品号长度不能超过4位!</br>";
        //        }
        return "";
    }
    // --------------------------------wafer qty check end----------------------------------------

    public String getProductId() {
        if (StringUtils.isNotBlank(productId)) {
            return StringUtils.trimToUpperCase(productId);
        }
        return productId;
    }

    public void setProductId(String productId) {
        this.productId = productId;
    }

    public String relationIsValid() {
        String val = this.getRelation();
        if (StringUtils.isBlank(val)) {
            return I18nUtils.getMessage("relation.missing");
        }
        //        if (StringUtils.length(val) > 2) {
        //            return isEn ? "Relation length cannot exceed 2!</br>" : "Relation 长度不能超过2位!</br>";
        //        }
        return "";
    }

    public String getRelation() {
        if (StringUtils.isNotBlank(relation)) {
            return StringUtils.trimToUpperCase(relation);
        }
        return relation;
    }

    public void setRelation(String relation) {
        this.relation = relation;
    }

    public String unitsIsValid() {
        int val = this.getUnits();
        if (val <= 0) {
            return I18nUtils.getMessage("unit.less_than_1");
        }
        if (val > 25) {
            return I18nUtils.getMessage("unit.exceed_25");
        }
        return "";
    }

    public int getUnits() {
        return units;
    }

    public void setUnits(int units) {
        this.units = units;
    }

    /**
     * 检查实际片数1-25的情况
     */
    public String allWaferQtyIsValid() {
        StringBuilder msg = new StringBuilder("");
        for (int i = 1; i < 26; i++) {
            msg.append(this.waferQtyIsValid(i));
        }

        return msg.toString();
    }

    /**
     * 实际片数下,抽取的位置的校验
     *
     * @param qty 实际片数
     * @return empty==ok; not empty==error;
     */
    public String waferQtyIsValid(int qty) {
        String waferQty = getActuallyChooseWafers(qty);
        if (StringUtils.isNotBlank(waferQty)) {
            if (StringUtils.contains(waferQty, ",")) {
                return I18nUtils.getMessage("wafer.semicolon_comma_delimiter", qty);
            }

            String[] chooseWafersArray = StringUtils.split(waferQty, ",");
            if (chooseWafersArray != null && chooseWafersArray.length > 0) {

                if (qty >= this.getUnits()) {
                    if (this.getUnits() != chooseWafersArray.length) {
                        // 选取的片数不满足设置的units
                        return I18nUtils.getMessage("wafer.not_equals_units", qty);
                    }
                } else {
                    if (qty != chooseWafersArray.length) {
                        // 选取的片数于实际片数不相等
                        return I18nUtils.getMessage("wafer.not_equals_qty", qty);
                    }
                }

                // 抽取的片位置是1-25之间的数字,且不能重复
                for (int i = 0; i < chooseWafersArray.length; i++) {
                    String val = StringUtils.trim(chooseWafersArray[i]);
                    try {
                        int position = Integer.parseInt(val);
                        if (position < 1 || position > qty) {
                            return I18nUtils.getMessage("wafer.position_range_25", new Object[]{qty, qty});
                        }

                        // 不能重复
                        int count = 0;
                        for (int j = 0; j < chooseWafersArray.length; j++) {
                            String valTemp = StringUtils.trim(chooseWafersArray[j]);
                            if (StringUtils.equals(val, valTemp)) {
                                count += 1;
                            }
                            if (count > 1) {
                                return I18nUtils.getMessage("wafer.position_cannot_repeated", qty);
                            }
                        }
                    } catch (Exception e) {
                        // 存在非数字的position
                        return I18nUtils.getMessage("wafer.position_must_number", qty);
                    }
                }
            }
        } else {
            // 没有设置
            return I18nUtils.getMessage("wafer.cannot_not_empty", qty);
        }
        return "";
    }

    /**
     * 根据实际片数,获取具体抽取的那些wafer
     *
     * @param qty 实际片数
     * @return 逗号分隔的具体片的位置
     */
    public String getActuallyChooseWafers(int qty) {
        if (qty > 0 && qty < 26) {
            if (qty == 1) {
                return this.getWaferQty1();
            }
            if (qty == 2) {
                return this.getWaferQty2();
            }
            if (qty == 3) {
                return this.getWaferQty3();
            }
            if (qty == 4) {
                return this.getWaferQty4();
            }
            if (qty == 5) {
                return this.getWaferQty5();
            }
            if (qty == 6) {
                return this.getWaferQty6();
            }
            if (qty == 7) {
                return this.getWaferQty7();
            }
            if (qty == 8) {
                return this.getWaferQty8();
            }
            if (qty == 9) {
                return this.getWaferQty9();
            }
            if (qty == 10) {
                return this.getWaferQty10();
            }
            if (qty == 11) {
                return this.getWaferQty11();
            }
            if (qty == 12) {
                return this.getWaferQty12();
            }
            if (qty == 13) {
                return this.getWaferQty13();
            }
            if (qty == 14) {
                return this.getWaferQty14();
            }
            if (qty == 15) {
                return this.getWaferQty15();
            }
            if (qty == 16) {
                return this.getWaferQty16();
            }
            if (qty == 17) {
                return this.getWaferQty17();
            }
            if (qty == 18) {
                return this.getWaferQty18();
            }
            if (qty == 19) {
                return this.getWaferQty19();
            }
            if (qty == 20) {
                return this.getWaferQty20();
            }
            if (qty == 21) {
                return this.getWaferQty21();
            }
            if (qty == 22) {
                return this.getWaferQty22();
            }
            if (qty == 23) {
                return this.getWaferQty23();
            }
            if (qty == 24) {
                return this.getWaferQty24();
            }
            if (qty == 25) {
                return this.getWaferQty25();
            }
        }
        return "";
    }

    public String getWaferQty1() {
        return waferQty1;
    }

    public void setWaferQty1(String waferQty1) {
        this.waferQty1 = waferQty1;
    }

    public String getWaferQty2() {
        return waferQty2;
    }

    public void setWaferQty2(String waferQty2) {
        this.waferQty2 = waferQty2;
    }

    public String getWaferQty3() {
        return waferQty3;
    }

    public void setWaferQty3(String waferQty3) {
        this.waferQty3 = waferQty3;
    }

    public String getWaferQty4() {
        return waferQty4;
    }

    public void setWaferQty4(String waferQty4) {
        this.waferQty4 = waferQty4;
    }

    public String getWaferQty5() {
        return waferQty5;
    }

    public void setWaferQty5(String waferQty5) {
        this.waferQty5 = waferQty5;
    }

    public String getWaferQty6() {
        return waferQty6;
    }

    public void setWaferQty6(String waferQty6) {
        this.waferQty6 = waferQty6;
    }

    public String getWaferQty7() {
        return waferQty7;
    }

    public void setWaferQty7(String waferQty7) {
        this.waferQty7 = waferQty7;
    }

    public String getWaferQty8() {
        return waferQty8;
    }

    public void setWaferQty8(String waferQty8) {
        this.waferQty8 = waferQty8;
    }

    public String getWaferQty9() {
        return waferQty9;
    }

    public void setWaferQty9(String waferQty9) {
        this.waferQty9 = waferQty9;
    }

    public String getWaferQty10() {
        return waferQty10;
    }

    public void setWaferQty10(String waferQty10) {
        this.waferQty10 = waferQty10;
    }

    public String getWaferQty11() {
        return waferQty11;
    }

    public void setWaferQty11(String waferQty11) {
        this.waferQty11 = waferQty11;
    }

    public String getWaferQty12() {
        return waferQty12;
    }

    public void setWaferQty12(String waferQty12) {
        this.waferQty12 = waferQty12;
    }

    public String getWaferQty13() {
        return waferQty13;
    }

    public void setWaferQty13(String waferQty13) {
        this.waferQty13 = waferQty13;
    }

    public String getWaferQty14() {
        return waferQty14;
    }

    public void setWaferQty14(String waferQty14) {
        this.waferQty14 = waferQty14;
    }

    public String getWaferQty15() {
        return waferQty15;
    }

    public void setWaferQty15(String waferQty15) {
        this.waferQty15 = waferQty15;
    }

    public String getWaferQty16() {
        return waferQty16;
    }

    public void setWaferQty16(String waferQty16) {
        this.waferQty16 = waferQty16;
    }

    public String getWaferQty17() {
        return waferQty17;
    }

    public void setWaferQty17(String waferQty17) {
        this.waferQty17 = waferQty17;
    }

    public String getWaferQty18() {
        return waferQty18;
    }

    public void setWaferQty18(String waferQty18) {
        this.waferQty18 = waferQty18;
    }

    public String getWaferQty19() {
        return waferQty19;
    }

    public void setWaferQty19(String waferQty19) {
        this.waferQty19 = waferQty19;
    }

    public String getWaferQty20() {
        return waferQty20;
    }

    public void setWaferQty20(String waferQty20) {
        this.waferQty20 = waferQty20;
    }

    public String getWaferQty21() {
        return waferQty21;
    }

    public void setWaferQty21(String waferQty21) {
        this.waferQty21 = waferQty21;
    }

    public String getWaferQty22() {
        return waferQty22;
    }

    public void setWaferQty22(String waferQty22) {
        this.waferQty22 = waferQty22;
    }

    public String getWaferQty23() {
        return waferQty23;
    }

    public void setWaferQty23(String waferQty23) {
        this.waferQty23 = waferQty23;
    }

    public String getWaferQty24() {
        return waferQty24;
    }

    public void setWaferQty24(String waferQty24) {
        this.waferQty24 = waferQty24;
    }

    public String getWaferQty25() {
        return waferQty25;
    }

    public void setWaferQty25(String waferQty25) {
        this.waferQty25 = waferQty25;
    }

    public long getRuleRrn() {
        return ruleRrn;
    }

    public void setRuleRrn(long ruleRrn) {
        this.ruleRrn = ruleRrn;
    }

    public String getRuleId() {
        return ruleId;
    }

    public void setRuleId(String ruleId) {
        this.ruleId = ruleId;
    }

    public long getFacilityRrn() {
        return facilityRrn;
    }

    public void setFacilityRrn(long facilityRrn) {
        this.facilityRrn = facilityRrn;
    }

    public String[] getActuallyChooseWafer() {
        if (actuallyChooseWafer == null) {
            actuallyChooseWafer = new String[25];
        }
        return actuallyChooseWafer;
    }

    public void setActuallyChooseWafer(String[] actuallyChooseWafer) {
        this.actuallyChooseWafer = actuallyChooseWafer;
    }

    public String getCreateUser() {
        return createUser;
    }

    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }

    public String getCreateTime() {
        return createTime;
    }

    public void setCreateTime(String createTime) {
        this.createTime = createTime;
    }

    public String getUpdateUser() {
        return updateUser;
    }

    public void setUpdateUser(String updateUser) {
        this.updateUser = updateUser;
    }

    public String getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(String updateTime) {
        this.updateTime = updateTime;
    }

    public String getAttribute1() {
        return attribute1;
    }

    public void setAttribute1(String attribute1) {
        this.attribute1 = attribute1;
    }

    public String getAttribute2() {
        return attribute2;
    }

    public void setAttribute2(String attribute2) {
        this.attribute2 = attribute2;
    }

    public String getAttribute3() {
        return attribute3;
    }

    public void setAttribute3(String attribute3) {
        this.attribute3 = attribute3;
    }

    public String getAttribute4() {
        return attribute4;
    }

    public void setAttribute4(String attribute4) {
        this.attribute4 = attribute4;
    }

    public String getAttribute5() {
        return attribute5;
    }

    public void setAttribute5(String attribute5) {
        this.attribute5 = attribute5;
    }

    public String getCheckBox() {
        return checkBox;
    }

    public void setCheckBox(String checkBox) {
        this.checkBox = checkBox;
    }

    public String getStartTime() {
        if (StringUtils.isNotBlank(startTime)) {
            startTime = StringUtils.trim(startTime);
        }
        return startTime;
    }

    public void setStartTime(String startTime) {
        this.startTime = startTime;
    }

    public String getEndTime() {
        if (StringUtils.isNotBlank(endTime)) {
            endTime = StringUtils.trim(endTime);
        }
        return endTime;
    }

    public void setEndTime(String endTime) {
        this.endTime = endTime;
    }

    public String getTransId() {
        return transId;
    }

    public void setTransId(String transId) {
        this.transId = transId;
    }

}