package com.cool.store.utils;

import com.cool.store.enums.tp.TpFormTypeEnum;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

/**
 * <p>
 * 十二分制 辅助工具类
 * </p>
 *
 * @author wangff
 * @since 2025/11/4
 */
public class TpHelper {
    private final static DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyMMddHHmmssSSS");

    /**
     * 生成奖惩规则编码
     * @param isReward 是否为加分规则
     * @return 规则编码
     */
    public static String generateRuleNo(boolean isReward) {
        return (isReward ? "JR" : "CR") + generateCode();
    }

    /**
     * 生成积分流水号
     */
    public static String generateScoreJournalNo() {
        return "LS" + generateCode();
    }

    /**
     * 生成申请单号
     * @param applyType 单据类型
     * @return 申请单号
     */
    public static String generateApplyNo(Integer applyType) {
        TpFormTypeEnum type = TpFormTypeEnum.getByType(applyType);
        if (type == null) return null;
        return (TpFormTypeEnum.REWARD.equals(type) ? "JF" : TpFormTypeEnum.PENALTY.equals(type) ? "CF" : "JG") + generateCode();
    }

    /**
     * 生成复议申请单号
     */
    public static String generateAppealNo() {
        return "FY" + generateCode();
    }

    private static String generateCode() {
        return LocalDateTime.now().format(dtf) + ((int) (Math.random() * 900) + 100);
    }


}
