Unit.java

/*
 *        @ Copyright 2001 FA Software;
 *        All right reserved. No part of this program may be reproduced or
 *        transmitted in any form or by any means, electronic or
 *        mechanical, including photocopying, recording, or by any
 *        information storage or retrieval system without written
 *        permission from FA Software, except for inclusion of brief
 *        quotations in a review.
 */
package com.mycim.valueobject.wip;

import com.mycim.framework.utils.lang.StringUtils;
import com.mycim.framework.utils.lang.math.NumberUtils;

import java.sql.Date;
import java.util.List;
import java.util.Map;

public class Unit implements java.io.Serializable {

    // --------------------------------------------------------- Instance Variables

    public static final String BY_BONDED_TYPE_KEY = "0";

    public static final String BONDED_TYPE_KEY = "1";

    // unit id 分隔符
    public static final String SEPERATER_KEY = "#";

    private long unitRrn;

    private Long facilityRrn;

    private String unitId;

    private Long stepSequence;

    private Long lotRrn;

    private Long lotStepSequence;

    private Long carrierRrn;

    private Integer positionInCarrier;

    private String unitStatus;

    private String processStatus;

    private String beforeStatus;

    private String dummyFlag;

    private String defectiveFlag;

    private String bonusFlag;

    private Double qty;

    private Date processStartTime;

    private Date processEndTime;

    private Long unitMapRrn;

    private String recipeId;

    private Integer usageLimit;

    private Integer usageCount;

    private String transId;

    private String transPerformedby;

    private String materialLotNumber;

    private Long itemRrn;

    private Long bondedUnitRrn;

    private String unitType;

    private String carrierId;

    private String lotId;

    private Long productRrn;

    private String productId;

    private Integer totalDieNum;             // 入库时总die数量

    private Integer sumLotLoopCount;         // 批次大循环总次数

    private Integer lotLoopCount;            // 批次大循环已使用次数

    private String unitAlias1;              // 第一个别名 nsi 项目用于蓝膜号

    private String unitAlias2;

    private String t7code;

    private String itemId;

    private String markNumber;

    private String markNumberComment;

    private String sourceWaferId;

    private Integer sourceWaferDieQty;

    private String incomingType;

    private Boolean autoMonitorUsedFlag;

    private String customerT7Code;

    private String materialId;

    // --------------------------------------------------------- Properties
    public Unit() {
    }

    public Unit(Map map) {
        if (map.get("unitRrn") instanceof Long) {
            this.unitRrn = ((Long) map.get("unitRrn")).longValue();
        } else if (map.get("unitRrn") instanceof String) {
            this.unitRrn = Long.valueOf((String) map.get("unitRrn")).longValue();
        }

        if (map.get("facilityRrn") instanceof Long) {
            this.facilityRrn = (Long) map.get("facilityRrn");
        } else if (map.get("facilityRrn") instanceof String) {
            this.facilityRrn = Long.valueOf((String) map.get("facilityRrn"));
        }

        this.unitId = (String) map.get("unitId");

        if (map.get("stepSequence") instanceof Long) {
            this.stepSequence = (Long) map.get("stepSequence");
        } else if (map.get("stepSequence") instanceof String) {
            this.stepSequence = Long.valueOf((String) map.get("stepSequence"));
        }

        if (map.get("lotRrn") instanceof Long) {
            this.lotRrn = (Long) map.get("lotRrn");
        } else if (map.get("lotRrn") instanceof String) {
            this.lotRrn = Long.valueOf((String) map.get("lotRrn"));
        }

        if (map.get("lotStepSequence") instanceof Long) {
            this.lotStepSequence = (Long) map.get("lotStepSequence");
        } else if (map.get("lotStepSequence") instanceof String) {
            this.lotStepSequence = Long.valueOf((String) map.get("lotStepSequence"));
        }

        if (map.get("carrierRrn") instanceof Long) {
            this.carrierRrn = (Long) map.get("carrierRrn");
        } else if (map.get("carrierRrn") instanceof String) {
            this.carrierRrn = Long.valueOf((String) map.get("carrierRrn"));
        }

        if (map.get("unitMapRrn") instanceof Long) {
            this.unitMapRrn = (Long) map.get("unitMapRrn");
        } else if (map.get("unitMapRrn") instanceof String) {
            this.unitMapRrn = Long.valueOf((String) map.get("unitMapRrn"));
        }

        if (map.get("positionInCarrier") instanceof Integer) {
            this.positionInCarrier = (Integer) map.get("positionInCarrier");
        } else if (map.get("positionInCarrier") instanceof String) {
            this.positionInCarrier = Integer.valueOf((String) map.get("positionInCarrier"));
        }

        this.unitStatus = (String) map.get("unitStatus");
        this.processStatus = (String) map.get("processStatus");
        this.beforeStatus = (String) map.get("beforeStatus");
        this.dummyFlag = (String) map.get("dummyFlag");
        this.defectiveFlag = (String) map.get("defectiveFlag");
        this.bonusFlag = (String) map.get("bonusFlag");

        if (map.get("qty") instanceof Double) {
            this.qty = (Double) map.get("qty");
        } else if (map.get("qty") instanceof String) {
            this.qty = Double.valueOf((String) map.get("qty"));
        }

        if (map.get("processStartTime") instanceof Date) {
            this.processStartTime = (Date) map.get("processStartTime");
        } else if (map.get("processStartTime") instanceof String) {
            this.processStartTime = Date.valueOf((String) map.get("processStartTime"));
        }

        if (map.get("processEndTime") instanceof Date) {
            this.processEndTime = (Date) map.get("processEndTime");
        } else if (map.get("processEndTime") instanceof String) {
            this.processEndTime = Date.valueOf((String) map.get("processEndTime"));
        }
    }

    /**
     * @param unitId
     * @return
     */
    public static int getWaferDefaultPostion(String unitId) {
        String defaultPositionStr = StringUtils.substringAfter(unitId, SEPERATER_KEY);
        if (StringUtils.isEmpty(defaultPositionStr)) {
            defaultPositionStr = StringUtils.substringAfter(unitId, SEPERATER_KEY);
        }
        int defaultPosition = NumberUtils.toInt(defaultPositionStr, 1);
        return defaultPosition;
    }

    public Integer getTotalDieNum() {
        return totalDieNum;
    }

    public void setTotalDieNum(Integer totalDieNum) {
        this.totalDieNum = totalDieNum;
    }

    public long getUnitRrn() {
        return this.unitRrn;
    }

    public void setUnitRrn(long unitRrn) {
        this.unitRrn = unitRrn;
    }

    public Long getFacilityRrn() {
        return this.facilityRrn;
    }

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

    public String getUnitId() {
        return this.unitId;
    }

    public void setUnitId(String unitId) {
        this.unitId = unitId;
    }

    public Long getStepSequence() {
        return this.stepSequence;
    }

    public void setStepSequence(Long stepSequence) {
        this.stepSequence = stepSequence;
    }

    public Long getLotRrn() {
        return this.lotRrn;
    }

    public void setLotRrn(Long lotRrn) {
        this.lotRrn = lotRrn;
    }

    public Long getLotStepSequence() {
        return this.lotStepSequence;
    }

    public void setLotStepSequence(Long lotStepSequence) {
        this.lotStepSequence = lotStepSequence;
    }

    public Long getCarrierRrn() {
        return this.carrierRrn;
    }

    public void setCarrierRrn(Long carrierRrn) {
        this.carrierRrn = carrierRrn;
    }

    public Integer getPositionInCarrier() {
        return this.positionInCarrier;
    }

    public void setPositionInCarrier(Integer positionInCarrier) {
        this.positionInCarrier = positionInCarrier;
    }

    public String getUnitStatus() {
        return this.unitStatus;
    }

    public void setUnitStatus(String unitStatus) {
        this.unitStatus = unitStatus;
    }

    public String getProcessStatus() {
        return this.processStatus;
    }

    public void setProcessStatus(String processStatus) {
        this.processStatus = processStatus;
    }

    public String getBeforeStatus() {
        return this.beforeStatus;
    }

    public void setBeforeStatus(String beforeStatus) {
        this.beforeStatus = beforeStatus;
    }

    public String getBonusFlag() {
        return this.bonusFlag;
    }

    public void setBonusFlag(String bonusFlag) {
        this.bonusFlag = bonusFlag;
    }

    public Double getQty() {
        return this.qty;
    }

    public void setQty(Double qty) {
        this.qty = qty;
    }

    public Date getProcessStartTime() {
        return this.processStartTime;
    }

    public void setProcessStartTime(Date processStartTime) {
        this.processStartTime = processStartTime;
    }

    public Date getProcessEndTime() {
        return this.processEndTime;
    }

    public void setProcessEndTime(Date processEndTime) {
        this.processEndTime = processEndTime;
    }

    public String getDummyFlag() {
        return dummyFlag;
    }

    public void setDummyFlag(String dummyFlag) {
        this.dummyFlag = dummyFlag;
    }

    public String getDefectiveFlag() {
        return defectiveFlag;
    }

    public void setDefectiveFlag(String defectiveFlag) {
        this.defectiveFlag = defectiveFlag;
    }

    public Long getUnitMapRrn() {
        return unitMapRrn;
    }

    public void setUnitMapRrn(Long unitMapRrn) {
        this.unitMapRrn = unitMapRrn;
    }

    public String getTransId() {
        return transId;
    }

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

    public String getTransPerformedby() {
        return transPerformedby;
    }

    public void setTransPerformedby(String transPerformedby) {
        this.transPerformedby = transPerformedby;
    }

    public String getMaterialLotNumber() {
        return materialLotNumber;
    }

    public void setMaterialLotNumber(String materialLotNumber) {
        this.materialLotNumber = materialLotNumber;
    }

    public Long getItemRrn() {
        return itemRrn;
    }

    public void setItemRrn(Long itemRrn) {
        this.itemRrn = itemRrn;
    }

    /**
     * @return the bondedUnitRrn
     */
    public Long getBondedUnitRrn() {
        return bondedUnitRrn;
    }

    /**
     * @param bondedUnitRrn the bondedUnitRrn to set
     */
    public void setBondedUnitRrn(Long bondedUnitRrn) {
        this.bondedUnitRrn = bondedUnitRrn;
    }

    /**
     * @return the unitType
     */
    public String getUnitType() {
        return unitType;
    }

    /**
     * @param unitType the unitType to set
     */
    public void setUnitType(String unitType) {
        this.unitType = unitType;
    }

    public String getCarrierId() {
        return carrierId;
    }

    public void setCarrierId(String carrierId) {
        this.carrierId = carrierId;
    }

    public String getLotId() {
        return lotId;
    }

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

    public Integer getUsageLimit() {
        return usageLimit;
    }

    public void setUsageLimit(Integer usageLimit) {
        this.usageLimit = usageLimit;
    }

    public Integer getUsageCount() {
        return usageCount;
    }

    public void setUsageCount(Integer usageCount) {
        this.usageCount = usageCount;
    }

    public Long getProductRrn() {
        return productRrn;
    }

    public void setProductRrn(Long productRrn) {
        this.productRrn = productRrn;
    }

    public String getProductId() {
        return productId;
    }

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

    public String getRecipeId() {
        return recipeId;
    }

    public void setRecipeId(String recipeId) {
        this.recipeId = recipeId;
    }

    public Integer getSumLotLoopCount() {
        return sumLotLoopCount;
    }

    public void setSumLotLoopCount(Integer sumLotLoopCount) {
        this.sumLotLoopCount = sumLotLoopCount;
    }

    public Integer getLotLoopCount() {
        return lotLoopCount;
    }

    public void setLotLoopCount(Integer lotLoopCount) {
        this.lotLoopCount = lotLoopCount;
    }

    public String getUnitAlias1() {
        return unitAlias1;
    }

    public void setUnitAlias1(String unitAlias1) {
        this.unitAlias1 = unitAlias1;
    }

    public String getT7code() {
        return t7code;
    }

    public void setT7code(String t7code) {
        this.t7code = t7code;
    }

    public String getUnitAlias2() {
        return unitAlias2;
    }

    public void setUnitAlias2(String unitAlias2) {
        this.unitAlias2 = unitAlias2;
    }

    public String getItemId() {
        return itemId;
    }

    public void setItemId(String itemId) {
        this.itemId = itemId;
    }

    public String getMarkNumber() {
        return markNumber;
    }

    public void setMarkNumber(String markNumber) {
        this.markNumber = markNumber;
    }

    public String getMarkNumberComment() {
        return markNumberComment;
    }

    public void setMarkNumberComment(String markNumberComment) {
        this.markNumberComment = markNumberComment;
    }

    public String getSourceWaferId() {
        return sourceWaferId;
    }

    public void setSourceWaferId(String sourceWaferId) {
        this.sourceWaferId = sourceWaferId;
    }

    public Integer getSourceWaferDieQty() {
        return sourceWaferDieQty;
    }

    public void setSourceWaferDieQty(Integer sourceWaferDieQty) {
        this.sourceWaferDieQty = sourceWaferDieQty;
    }

    public void setErpAttrabute(int j, List<Map<String, String>> uniqueNumList) {
        if (uniqueNumList != null && uniqueNumList.size() > j) {
            Map<String, String> map = uniqueNumList.get(j);
            this.setSourceWaferId(map.get("sourceWaferId"));
            String sourceWaferDieQty = map.get("sourceWaferDieQty") == null ? "0" : map.get("sourceWaferDieQty");
            this.setSourceWaferDieQty(Integer.valueOf(sourceWaferDieQty));
        }
    }

    public String getIncomingType() {
        return incomingType;
    }

    public void setIncomingType(String incomingType) {
        this.incomingType = incomingType;
    }

    public Boolean getAutoMonitorUsedFlag() {
        return autoMonitorUsedFlag;
    }

    public void setAutoMonitorUsedFlag(Boolean autoMonitorUsedFlag) {
        this.autoMonitorUsedFlag = autoMonitorUsedFlag;
    }

    public String getCustomerT7Code() {
        return customerT7Code;
    }

    public void setCustomerT7Code(String customerT7Code) {
        this.customerT7Code = customerT7Code;
    }

    public String getMaterialId() {
        return materialId;
    }

    public void setMaterialId(String materialId) {
        this.materialId = materialId;
    }

}

/*
 * Modification Log Log No : Name : Modified Date: Description :
 */