package com.jwipc.spe.model.query;

import cn.hutool.core.util.StrUtil;
import com.google.common.base.Strings;
import com.google.common.collect.Lists;
import com.jwipc.query.BasePageQuery;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

/**
 * @author Al
 * @create 2024-02-29 16:18
 */
@Data
public class SupAppraiseTemplateQuery extends BasePageQuery {
    /**
     * 模板ID
     */
    private Integer templateId;
    /**
     * 模板编码
     */
    private String templateCode;
    /**
     * 模板名称
     */
    private String templateName;
    /**
     * 模板类型 1:一般供应商 2:外协供应商
     */
    private Integer templateType;
    /**
     * 业务实体 字典条目ID
     */
    private Integer companyCode;
    /**
     * 数据状态 1:启用 2:停用
     */
    private Integer status;
    /**
     * 评价周期 1:年度 2:季度 3:月度
     */
    private String evaluationCycle;
    /**
     * 物料组编码集合 逗号分隔
     */
    private String mgCodes;
    /**
     * 物料组编码
     */
    private String mgCode;
    /**
     * 物料组名称
     */
    private String mgName;
    /**
     * 维度ID
     */
    private Integer dimensionId;

    public String getTemplateNameLike() {
        return StringUtils.isEmpty(this.templateName) ? null : "%" + this.templateName + "%";
    }


    public List<String> getMgCodeList() {
        List<String> list = Lists.newArrayList();
        if (StringUtils.isNotEmpty(this.mgCodes)) {
            list.addAll(Arrays.asList(StringUtils.split(this.mgCodes, ",")));
            return list;
        }
        return list;
    }

    public List<String> getEvaluationCycles() {
        if (Strings.isNullOrEmpty(this.evaluationCycle)) {
            return Collections.emptyList();
        }
        return StrUtil.split(this.evaluationCycle, ',');
    }

    public String getMgNameLike() {
        return StringUtils.isEmpty(this.mgName) ? null : "%" + this.mgName + "%";
    }
}
