package com.dgtly.system.mapper;

import com.dgtly.system.domain.DeliverSignVO;
import com.dgtly.system.domain.MetaHanaDeliverSign;
import com.dgtly.system.domain.OrderSignVO;
import com.dgtly.system.domain.TmsShipmentSignVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 电子单签收状态数量Mapper接口
 *
 * @author dgtly
 * @date 2025-01-03
 */
public interface MetaHanaDeliverSignMapper
{
    /**
     * 查询电子单签收状态数量
     *
     * @param deliverNumber 电子单签收状态数量ID
     * @return 电子单签收状态数量
     */
    public MetaHanaDeliverSign selectMetaHanaDeliverSignById(String deliverNumber);

    /**
     * 查询电子单签收状态数量列表
     *
     * @param metaHanaDeliverSign 电子单签收状态数量
     * @return 电子单签收状态数量集合
     */
    public List<MetaHanaDeliverSign> selectMetaHanaDeliverSignList(MetaHanaDeliverSign metaHanaDeliverSign);




    /**
     * 修改电子单签收状态数量
     *
     * @param metaHanaDeliverSign 电子单签收状态数量
     * @return 结果
     */
    public int updateMetaHanaDeliverSign(MetaHanaDeliverSign metaHanaDeliverSign);

    /**
     * 删除电子单签收状态数量
     *
     * @param deliverNumber 电子单签收状态数量ID
     * @return 结果
     */
    public int deleteMetaHanaDeliverSignById(String deliverNumber);

    /**
     * 批量删除电子单签收状态数量
     *
     * @param deliverNumbers 需要删除的数据ID
     * @return 结果
     */
    public int deleteMetaHanaDeliverSignByIds(String[] deliverNumbers);

    /**
     * @description: 查询有补货订单的电子签收数据
     * @param: []
     * @return: java.util.List<com.dgtly.system.domain.MetaHanaDeliverSign>
     * @author: njs
     * @date: 2025/1/3 15:58
     */
    public List<MetaHanaDeliverSign> selectMetaHanaDeliverSignListHavingAbnormal();

    /**
     * @description: 根据补货订单的订单号和行号查询该补货订单的详情
     * @param: []
     * @return: com.dgtly.system.domain.MetaHanaDeliverSign
     * @author: njs
     * @date: 2025/1/3 16:04
     */
    MetaHanaDeliverSign selectAbnormalSignByabnormalOrderAndItem(@Param("abnormalOrder") String abnormalOrder,@Param("abnormalOrderItem") String abnormalOrderItem);

    /**
     * @description: 根据订单查询补货订单记录
     * @param: [OrderNumber]
     * @return: java.util.List<com.dgtly.system.domain.DeliverSignVO>
     * @author: njs
     * @date: 2025/6/5 10:10
     */
    List<DeliverSignVO> selectDeliverSignByOrderNumber(@Param("OrderNumber") String OrderNumber);

    /**
     * @description: 根据订单号和行项目号查询该订单的电子签收信息
     * @param: [OrderNumber, OrderItem]
     * @return: java.util.List<com.dgtly.system.domain.MetaHanaDeliverSign>
     * @author: njs
     * @date: 2025/6/5 10:09
     */
    List<MetaHanaDeliverSign> selectDeliverSignListByOrderNumberAndOrderItem();

    /**
     * @description: 根据运单查询交货单签收信息
     * @param: [OrderNumber]
     * @return: java.util.List<com.dgtly.system.domain.DeliverSignVO>
     * @author: njs
     * @date: 2025/6/5 10:05
     */
    List<DeliverSignVO> selectDeliverSignByTmsShipmentNumber();



    /**
     * @description: 查询电子单签收订单集合
     * @param: []
     * @return: java.util.List<java.lang.String>
     * @author: njs
     * @date: 2025/6/5 11:30
     */
    List<String> selectOrderNumberSign();

    /**
     * @description: 查询运单下签收集合
     * @param: []
     * @return: java.util.List<java.lang.String>
     * @author: njs
     * @date: 2025/6/5 11:34
     */
    List<String> selectTmsShipmentNumberSign();

    /***/
    void truncateOrderSign();

    void truncateTmsShipmentSign();

    void batchOrderSign(@Param("list") List<OrderSignVO> list);


    void batchTmsShipmentSign(@Param("list") List<TmsShipmentSignVO> list);


    /**
     * @description: 根据运单查询交货单数据
     * @param: [tmsShipmentNumber]
     * @return: java.util.List<java.lang.String>
     * @author: njs
     * @date: 2025/6/5 16:32
     */
   List<String> selectDeliverNumListByTmsShipmentNumber(@Param("tmsShipmentNumber") String tmsShipmentNumber);


   List<String> selectCertificationSync();




}
