package com.jwipc.order.logic;

import com.jwipc.order.dto.*;
import com.jwipc.order.model.query.OrderBatchPrintQuery;
import com.jwipc.order.model.query.PurchaseOrderQuery;
import com.jwipc.page.PageView;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * <p> </p>
 *
 * @author BOGON
 * @version 1.0
 * @since JDK 1.8
 */
public interface PurchaseOrderLogic {
    PageView getList(PurchaseOrderQuery query);

    PurchaseOrderBaseDTO getDetail(Long id);

    PageView getAttachmentList(String ids);

    void saveAttachment(List<OrderAttachmentDTO> files);

    void removeAttachment(String id,String remark);

    void sumbitReply(List<PurchaseOrderDetailReplyDTO> replyDTOList);

    void submitRemark(String ids, String remark);

    void updateFinConf(String ids, Integer confirmFlag,Integer attachmentType);

    List<PurchaseOrderPrintDTO> getPrintData(String orderId);

    List<PurchaseOrderListDTO> listAll(PurchaseOrderQuery purchaseOrderQuery);
    /**
     * 查询订单数据
     * @param query
     * @return
     */
    PageView orderList(PurchaseOrderQuery query);
    void sumbitDevPlan(List<PurchaseOrderDevPlanBaseDTO> planBaseDTOS);

    void refusal(Long id, String remark);

    PurchaseOrderPrintDTO getBatchPrintData(String orderIds,String range,String batchNo, String supplierCode);

    void batchPrintPdfCreate(PurchaseOrderPrintDTO batchPrintData, HttpServletResponse response);

    boolean batchPrintPdfCreateNew(PurchaseOrderPrintDTO batchPrintData);

    PageView batchPrintList(OrderBatchPrintQuery query);

    String getDefaultSupplier();

    List<PurchaseOrderBaseDTO> batchPrintListCheck(String orderIds, String range);


    /**
     * 清空打印标记
     * @param batchNo 汇总单号
     */
    void clearBatchNo(String batchNo);

    Long gerPurchaseIdByCode(String purchaseGroupCode);

    List<String> findAccountStatementByOrderCode(Long id);

}