package com.ruoyi.sales.service;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.ruoyi.basic.pojo.Customer;
|
import com.ruoyi.common.enums.SaleEnum;
|
import com.ruoyi.approve.pojo.ApproveProcess;
|
import com.ruoyi.sales.dto.*;
|
import com.ruoyi.sales.pojo.SalesLedger;
|
import com.ruoyi.sales.pojo.SalesLedgerProcessRoute;
|
import com.ruoyi.sales.pojo.SalesLedgerProduct;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import javax.annotation.Nullable;
|
import javax.validation.constraints.NotNull;
|
import java.math.BigDecimal;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* 销售台账Service接口
|
*
|
* @author ruoyi
|
* @date 2025-05-08
|
*/
|
public interface ISalesLedgerService extends IService<SalesLedger> {
|
|
List<SalesLedger> selectSalesLedgerList(SalesLedgerDto salesLedgerDto);
|
|
int deleteSalesLedgerByIds(Long[] ids);
|
|
int addOrUpdateSalesLedger(SalesLedgerDto salesLedgerDto);
|
|
List<SalesLedgerProduct> getSalesLedgerProductListByRelateId(@NotNull Long relateId, @NotNull SaleEnum type);
|
|
List<SalesLedgerProduct> getSalesLedgerProductListByIds(@Nullable List<Long> relateIds, @NotNull SaleEnum type);
|
|
void handleSalesLedgerProducts(Long salesLedgerId, List<SalesLedgerProduct> products, SaleEnum type);
|
|
SalesLedgerDto getSalesLedgerWithProducts(SalesLedgerDto salesLedgerDto);
|
|
List getSalesNo();
|
|
BigDecimal getContractAmount();
|
|
List getTopFiveList();
|
|
List<MonthlyAmountDto> getAmountHalfYear(Integer type);
|
|
IPage<SalesLedger> selectSalesLedgerListPage(Page page, SalesLedgerDto salesLedgerDto);
|
|
void importData(MultipartFile file);
|
|
List<LossProductModelDto> getSalesLedgerWithProductsLoss(Long salesLedgerId);
|
|
IPage<SalesLedgerDto> listSalesLedger(SalesLedgerDto salesLedgerDto, Page page);
|
|
void saleProcessBind(SalesLedgerProcessRoute salesLedgerProcessRoute);
|
|
SalesProcessCardDto processCard(Long salesLedgerId);
|
|
SalesLedgerProcessRouteDto salesProcess(Long salesLedgerId);
|
|
SalesOrdersDto salesOrders(Long salesLedgerId);
|
|
SalesInvoicesDto salesInvoices(List<Long> salesLedgerIds);
|
|
List<SalesLabelDto> salesLabel(Long salesLedgerId);
|
|
void salesStock(SalesProductStockDto dto);
|
|
void executeSalesStockApproved(Long salesLedgerId, List<Long> salesLedgerProductIds);
|
|
void executeSalesScanInboundApproved(Long salesLedgerId, Map<Long, BigDecimal> inboundQtyByLineId);
|
|
void executeSalesScanInboundUnqualifiedApproved(Long salesLedgerId, Map<Long, BigDecimal> inboundQtyByLineId);
|
|
List<Customer> shippedCustomers();
|
|
void scanInbound(SalesScanInboundDto dto);
|
|
void scanInboundUnqualified(SalesScanInboundDto dto);
|
|
void scanOutbound(SalesScanInboundDto dto);
|
|
void scanOutboundUnqualified(SalesScanInboundDto dto);
|
|
/**
|
* APP 扫码发货:发起发货审批(审批通过后自动扣库存、发货台账与订单状态为已发货)
|
*/
|
void scanShipApply(SalesScanShipDto dto);
|
|
/**
|
* 发货审批(类型 7)节点状态变更:扫码发货流程 {@code approveRemark} 以 {@code SCAN_SHIP_DELIVERY_JSON:} 开头时回调。
|
*
|
* @param outcomeStatus 审批流状态:1 审核中 2 通过 3 拒绝
|
*/
|
void onScanShipDeliveryApproveOutcome(ApproveProcess approveProcess, Integer outcomeStatus);
|
|
void shippingImport(MultipartFile file);
|
|
void notShippingImport(MultipartFile file);
|
}
|