package com.unis.framework.common.util.kqbm;

import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import lombok.extern.slf4j.Slf4j;

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

@Slf4j
public class KQBMUtils {
    /**
     * @param dwxz   单位性质
     * @param tyshbm 统一信用代码
     * @param bh     编号
     * @return
     */
    public static String createKQBM(String dwxz, String tyshbm, String bh) {
        String kqbm = "";
        if (StringUtils.isEmpty(dwxz)) {
            return null;
        } else if (dwxz.length() < 2) {
            kqbm = "0" + dwxz + tyshbm + bh;
        } else {
            kqbm = dwxz.substring(0, 2) + tyshbm + bh;
        }
        return kqbm;
    }

    public static String listToStr(List<String> list) {
        String redis = "";
        if (CollectionUtils.isEmpty(list)) {
            return redis;
        }
        for (String red : list) {
            if (StringUtils.isEmpty(redis)) {
                redis = red;
            } else {
                redis += "," + red;
            }
        }
        return redis;

    }

    public static List<String> strToList(String str) {
        List<String> list = new ArrayList<>();
        if (StringUtils.isEmpty(str)) {
            return list;
        }
        // 方式一：使用循环添加元素到 List
        // 切割字符串得到数组
        String[] strArray = str.split(",");
        // 创建一个 ArrayList 用于存储切割后的元素
        // 遍历数组并将元素添加到 List 中
        for (String element : strArray) {
            list.add(element);
        }
        return list;
    }

    /**
     * 仓房代码：库区代码（22位）+仓房代码（3位）
     *
     * @return 仓房编码
     */
    public static String getCFDM(String kqbm, String cfbm) {
        return kqbm + cfbm;
    }
}
