package com.ximai.mes.pro.domain;

import cn.hutool.core.date.DateUtil;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import com.ximai.common.core.domain.BaseEntity;
import org.apache.commons.lang3.StringUtils;

import java.time.LocalDateTime;

/**
 * 产品二维码规则对象 pro_product_qrcode_rule
 *
 * @author generator
 * @date 2024-08-31
 */
@Data
public class ProProductQrcodeRule extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** ID */
    @TableId
    private Long ruleId;

    /** 产品ID */
    @ApiModelProperty("产品ID")
    private Long itemId;

    /** 产品编码 */
    @ApiModelProperty("产品编码")
    private String itemCode;

    /** 编码前缀 */
    @ApiModelProperty("编码前缀")
    private String prefix;

    /** 编码时间格式化 */
    @ApiModelProperty("编码时间格式化")
    private String datePattern;

    /** 编码流水长度 */
    @ApiModelProperty("编码流水长度")
    private Integer serialLen;

    @ApiModelProperty("日期流水间隔符")
    private String dateSerialSpace;

    /** 产品描述 */
    @ApiModelProperty("产品描述")
    private String itemDesc;

    /** 客户编码 */
    @ApiModelProperty("客户编码")
    private String clientCode;

    /** 客户名称 */
    @ApiModelProperty("客户名称")
    private String clientName;

    /** 当前流水 */
    @ApiModelProperty("当前流水")
    private Integer currentSerial;

    @ApiModelProperty("最新生成日期格式化值")
    private String lastDateFmt;

    /**
     * 模板ID
     */
    private Long templateId;


    /**
     * 模板名称
     */
    private String templateName;

    /**
     * 模板编码（ID）
     */
    private String templateCode;

    /**
     * 模板类型
     */
    private String templateType;

    public String buildQrcode(){
        //DDD=当年第几天、dd=当月第几天
        String rst = this.getPrefix() +
                DateUtil.format(LocalDateTime.now(), this.getDatePattern()) +
                StringUtils.defaultString(getDateSerialSpace(),"") +
                StringUtils.leftPad(currentSerial+"", serialLen, "0");
        return rst;
    }

}
