package com.sw.mes.utils;

import java.util.Date;
import java.util.Random;

import org.apache.commons.lang3.StringUtils;

//import com.sw.mes.pad.entity.SectionDetail;
import com.sw.mes.core.utils.DateUtil;

public class CodeUtil {

    /**
     * 通过单晶编号以及晶段数量生成晶段编号
     *
     * @param crystalNo   单晶编号
     * @param count       晶段数量
     * @return 晶段编号数组
     */
    public static String[] getSectionNoArray(String crystalNo, int count) {
        String[] barCodes = new String[count];
        for (int i = 0; i < barCodes.length; i++) {
            barCodes[i] = crystalNo + String.format("%02d", i + 1);
        }
        return barCodes;
    }

    /**
     * 通过晶棒编号以及样片类型生成样片编号
     *
     * @param barCode   晶棒编号
     * @param pieceType 样片类型
     * @return 样片编号
     */
    public static String getSampleNoByBarCode(String barCode, String pieceType) {
//        if (barCode.substring(barCode.length() - 2).equals("01") && pieceType.equals(SectionDetail.PIECETYPE_TOU)) {
//            return barCode.substring(0, barCode.length() - 2) + pieceType;
//        }
//        return barCode + pieceType;
        return "";
    }

    /**
     * 规格/长度反切生成新编号
     *
     * @param oldBarcode 旧晶段编号
     * @param barCount   数量
     * @return 新晶段编号数组
     */
    public static String[] getReSectionNoArray(String oldBarcode, int barCount) {
        String[] barCodes = new String[2];
        barCodes[0] = oldBarcode + "F" + (barCount + 1);
        barCodes[1] = oldBarcode + "F" + (barCount + 2);
        return barCodes;
    }

    public static String getFullLotNo(String dopant, String type, String lotNo, String experimentValue) {
        StringBuilder preNo = new StringBuilder("CC");
        if (StringUtils.isNotBlank(dopant)) {
            preNo.append(dopant).append("C");
        }
        if (StringUtils.isNotBlank(type)) {
            if (type.indexOf("-") > 0) {
                preNo.append(type.substring(type.indexOf("-") + 1));
            } else {
                preNo.append(type);
            }
        }
        preNo.append(lotNo);
        if (StringUtils.isNotBlank(experimentValue)) {
            preNo.append(experimentValue);
        }
        return preNo.toString();
    }

    public static String getUniqueCode(Long id){
        return "MES"+DateUtil.formatDate(new Date(),"yyyyMMddHHmmssS"+id);
    }
    
    public static String getUniqueCode(){
        return "Recovery"+DateUtil.formatDate(new Date(),"yyyyMMddHHmmssS");
    }

}
