
/**
 * Determine whether it is in line with the first-in, first-out
 * param: NotAssignedList
 * param: ChooseList
 * returns: YesORNO(bool)
 */
export function FirstInFirstOut(notAssignedList: any[], chooseList: any[]) {  
   
    // 如果chooseList为空，则始终返回true（假设没有元素需要匹配）  
    if (chooseList.length === 0) {  
        return false;  
    }  
  
    // 从notAssignedList中只获取MATERIALPACKINGNAME并转换为数组  
    const notAssigned = notAssignedList.map(item => item.MATERIALPACKINGNAME);  
     // 创建一个映射，用于快速查找每个id在notAssignedList中的索引  
    const idToIndexMap = new Map(notAssignedList.map((item, index) => [item.MATERIALPACKINGNAME, index]));  
        // 对chooseList进行排序  
    chooseList.sort((a, b) => {  
            // 使用Map查找a和b在notAssignedList中的索引  
            const indexA = idToIndexMap.get(a.MATERIALPACKINGNAME);  
            const indexB = idToIndexMap.get(b.MATERIALPACKINGNAME);  
      
            // 如果索引不存在，则将对象放在排序数组的末尾（或者你可以选择返回特定的顺序）  
            if (indexA === undefined) return 1;  
            if (indexB === undefined) return -1;  
      
            // 根据索引进行排序  
            return indexA - indexB;  
        }); 
    // 检查chooseList中的每个MATERIALPACKINGNAME是否按顺序出现在notAssigned的开头  
    for (let i = 0; i < chooseList.length; i++) {  
        if (notAssigned[i] !== chooseList[i].MATERIALPACKINGNAME) {  
            return false;  
        }  
    }  
  
    // 如果循环完成（即没有返回false），则说明chooseList的所有元素都以相同顺序出现在notAssigned的开头  
    return true;  
}



//中国标准时间---》日期
export function msToDate (msec:any) {
    const datetime = new Date(msec);
    const year = datetime.getFullYear();
    const month = datetime.getMonth();
    const date = datetime.getDate();
    const hour = datetime.getHours();
    const minute = datetime.getMinutes();
    const second = datetime.getSeconds();
 
    const result1 = year + 
                 '-' + 
                 ((month + 1) >= 10 ? (month + 1) : '0' + (month + 1)) + 
                 '-' + 
                 ((date ) < 10 ? '0' + date : date) +
                 ' ' + 
                 ((hour ) < 10 ? '0' + hour : hour) +
                 ':' + 
                 ((minute ) < 10 ? '0' + minute : minute) +
                 ':' + 
                 ((second ) < 10 ? '0' + second : second);
 
    const result2 = year + 
                 '-' + 
                 ((month + 1) >= 10 ? (month + 1) : '0' + (month + 1)) + 
                 '-' + 
                 ((date + 1) < 10 ? '0' + date : date);
 
    const result = {
        hasTime: result1,
        withoutTime: result2
    };
 
    return result;
}


//判断返回是否正确
export function IFTRUE (msec:any) {
    let ReturnIF=false;
   if(msec.code=='0' || msec.code=='200')
    {
        ReturnIF=true  
    }else {
        ReturnIF=false 
    }
    return ReturnIF
}

//判断数组、字符串、对象是否为空
export function areAllNotEmpty(...args: any) {
    // 遍历所有参数  
    for (let i = 0; i < args.length; i++) {  
        // 检查参数是否为空  
        // 这里我们假设null、undefined、空字符串、空数组、空对象都是“空”的  
        if (args[i] === null || args[i] === undefined ||  
            (typeof args[i] === 'string' && args[i].length === 0) ||  
            (Array.isArray(args[i]) && args[i].length === 0) ||  
            (typeof args[i] === 'object' && args[i] !== null && Object.keys(args[i]).length === 0)) {  
            return false; // 如果找到一个空的参数，就返回false  
        }  
    }  
    return true; // 所有参数都不为空  
} 





