package com.iamberry.wechat.face.machineNumber;

import com.iamberry.wechat.core.entity.Page;
import com.iamberry.wechat.core.entity.machineNumber.MachineNumber;
import com.iamberry.wechat.core.entity.machineNumber.MachineNumberLogs;
import com.iamberry.wechat.core.entity.machineNumber.WarrantyCard;
import com.iamberry.wechat.core.entity.member.Member;

import java.util.List;

/**
 * Created by Administrator on 2017/7/20.
 */
public interface MachineNumberService {
    /**
     * 添加生成二维码日志记录
     * @return
     */
    Integer addNumberLogs(MachineNumberLogs machineNumberLogs);

    /**
     * 添加机器编号，二维码
     * @return
     */
    Integer addMachineNumber(MachineNumber machineNumber);
    /**
     * 统计批次及已完成条数
     * @return
     */
    List<MachineNumberLogs> listNumberLogs(Page page);

    /**
     * 统计批次及已完成条数总条数
     * @return
     */
    Integer listNumberLogsCount(Page page);

    /**
     * 查询生产批次二维码列表
     * @return
     */
    List<MachineNumber> listNumberQrCode(Page page);
    /**
     * 查询生产批次二维码列表总数
     * @return
     */
    Integer listNumberQrCodeCount(Page page);

    /**
     * 修改状态为已打印
     * @return
     */
    Integer updateIsprInt(String numberId);

    /**
     * 根据批次号查询是否已存在
     * @param logsBatch
     * @return
     */
    Integer selectQrcodeLogsByBatch(String logsBatch);

    /**
     * 根据条件查询机器编号集合,可分页
     * @param machineNumber
     * @return
     */
    List<MachineNumber> listMachineNumber(MachineNumber machineNumber);

    /**
     * 根据条件查询质保卡集合,可分页
     * @param warrantyCard
     * @return
     */
    List<WarrantyCard> listWarrantyCard(WarrantyCard warrantyCard);

    /**
     * 根据条件查询质保卡数量
     * @param warrantyCard
     * @return
     */
    Integer WarrantyCardCount(WarrantyCard warrantyCard);

    /**
     * 完善用户信息和机器编号信息(修改)
     * @param member
     * @param machineNumber
     * @return
     */
    boolean updateUserAndNumber(Member member, MachineNumber machineNumber);

    /**
     * 完善用户信息和机器编号信息(绑定)
     * @param member
     * @param machineNumber
     * @return
     */
    boolean addUserAndNumber(Member member, MachineNumber machineNumber);

    /**
     * 修改机器信息
     * @param machineNumber
     * @return
     */
    boolean updateNumber(MachineNumber machineNumber);

    /**
     * 查询批次进度
     * @param logsBatchs
     * @return
     */
    List<MachineNumberLogs> qrcodProgressUpdate(String[] logsBatchs);

    /**
     * 添加机器编号，二维码及用户信息
     * @param machineNumber
     * @return
     */
    Integer addMachineNumberAndUser(MachineNumber machineNumber);

    /**
     * 批量添加机器编号信息
     * @param list
     * @return
     */
    boolean addMachineNumberList(List<MachineNumber> list, String openid, Member member);
}
