package com.jwipc.finance.model.query;

import com.google.common.collect.Lists;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;

import java.util.List;

/**
 * <p>
 *     对账模块-付款申请明细数据查询实体类
 * </p>
 *
 * @author li.kui
 * @version 1.0
 * @since 2020/10/15
 */
@Data
public class PaymentApplyItemQuery {
    /**
     * 公司编码
     */
    private String companyCode;
    /**
     * 工厂编码
     */
    private String factoryCode;
    /**
     * 供应商编码
     */
    private String supplierCode;
    /**
     * 币种
     */
    private String currencyCode;
    /**
     * 发票凭证号
     */
    private String invoiceNo;
    /**
     * 凭证日期(起)
     */
    private String voucherDateStart;
    /**
     * 凭证日期(至)
     */
    private String voucherDateEnd;
    /**
     * 入库凭证号
     */
    private String mvCode;
    /**
     * 入库凭证过账日期(起)
     */
    private String mvPostDateStart;
    /**
     * 入库凭证过账日期(至)
     */
    private String mvPostDateEnd;
    /**
     * 采购组编码
     */
    private String seekPgCode;
    /**
     * 多个采购订单查询
     */
    private String morePoQuery;
    /**
     * 编辑仍然存在的申请明细ID
     */
    private String existedItemIds;
    /**
     * 编辑仍然存在的申请明细ID集合
     */
    private List<Long> existedItemIdList;
    /**
     * 申请单ID
     */
    private Long applyId;

    private List<String> poCodes;

    private String poCodeItemNoList;

    private List<String> poKeys;

    private List<String> dataKeys;
    /**
     * 采购订单号
     */
    private String poCode;

    private String buyer;

    private String contractCode;

    private String invoiceApplyNo;

    private List<String> userPurCodeList;
    /**
     * 多个采购订单
     */
    @Data
    public static class PoData {
        /**
         * 采购订单号
         */
        private String poCode;
        /**
         * 采购订单行号
         */
        private String poItemNo;
    }


    public List<Long> getExistedItemIdList(){
        List<Long> result = Lists.newArrayList();
        if(StringUtils.isNotEmpty(this.existedItemIds)){
            final String[] array = StringUtils.split(this.existedItemIds, ",");
            for(String aadId: array){
                result.add(Long.parseLong(aadId));
            }
            return result;
        }

        return result;
    }
}
