package com.zg.project.wisdom.utils;

/**
 * 编码转换工具类 - 处理如库位码转十六进制字符串等逻辑
 */
public class CodeConvertUtil {

    /**
     * 将字符串转为十六进制字符串（如用于生成库位ID）
     * @param input 原始字符串，例如 "A01-013004"
     * @return 十六进制字符串，例如 "4130312D303133303034"
     */
    public static String stringToHex(String input) {
        if (input == null) {
            return null;
        }

        StringBuilder hex = new StringBuilder();
        for (char ch : input.toCharArray()) {
            hex.append(String.format("%02X", (int) ch));
        }
        return hex.toString();
    }

    /**
     * 可选：将十六进制字符串转换回原始字符串
     * @param hex 十六进制字符串
     * @return 原始字符串
     */
    public static String hexToString(String hex) {
        if (hex == null || hex.length() % 2 != 0) {
            return null;
        }

        StringBuilder output = new StringBuilder();
        for (int i = 0; i < hex.length(); i += 2) {
            String str = hex.substring(i, i + 2);
            output.append((char) Integer.parseInt(str, 16));
        }
        return output.toString();
    }
}
