package com.ruoyi.sales.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.sales.dto.SalesLedgerArrivalDto; import com.ruoyi.sales.pojo.SalesLedgerArrival; import org.apache.ibatis.annotations.Param; import java.math.BigDecimal; import java.util.List; /** * 销售台账到货记录Mapper接口 * * @author ruoyi * @date 2026-09-21 */ public interface SalesLedgerArrivalMapper extends BaseMapper { /** * 到货记录列表 */ IPage listPage(Page page, @Param("req") SalesLedgerArrivalDto req); /** * 单条到货记录(修改时取身份字段,口径与列表一致:跳过数据权限) */ SalesLedgerArrivalDto selectArrivalById(@Param("id") Long id); /** * 某台账在某出库单上累计已到货数量(吨),用于到货上限校验。 * 必须跳过数据权限,否则会漏掉他人录入的到货记录,导致上限被绕过 */ BigDecimal sumArrivedQuantity(@Param("stockOutRecordId") Long stockOutRecordId, @Param("salesLedgerId") Long salesLedgerId, @Param("excludeId") Long excludeId); /** * 按出库单批量取到货记录(发货台账组装子行用) */ List listByStockOutRecordIds(@Param("stockOutRecordIds") List stockOutRecordIds); /** * 可到货的车辆下拉:只出绑定了该台账、且审批通过的出库记录里用过的车 */ List bindableVehicles(@Param("salesLedgerId") Long salesLedgerId); /** * 该出库单下已有多少条到货记录。删除出库单 / 改绑台账的守卫,必须跳过数据权限, * 否则看不到别人录的到货记录,守卫会被绕过 */ Long countByStockOutRecordId(@Param("stockOutRecordId") Long stockOutRecordId); }