package com.unis.crk.common.mapper;

import com.unis.crk.common.entity.Billnonewgjj;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.unis.crk.common.entity.UpdataLog;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.ResultType;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 专用于生成国家局业务单据号 Mapper 接口
 * </p>
 *
 * @author TangSong
 * @since 2023-08-03
 */
public interface BillnonewgjjMapper extends BaseMapper<Billnonewgjj> {


    /**
     * 国家局入库业务
     * @param rkywdh
     * @param rkjsdh
     * @param czbz
     * @param BizNo
     * @return
     */
    int addRkYwGjj(@Param("rkywdh") String rkywdh,
                   @Param("rkjsdh") String rkjsdh,
                   @Param("czbz") String czbz,
                   @Param("BizNo") String BizNo
    );
    /**
     * 国家局检验扣量
     * @param BizNo
     * @return
     */
    int addJyklGjj(
                   @Param("BizNo") String BizNo
    );
    /**
     * 国家局入库检验明细
     * @param BizNo
     * @return
     */
    int addRkJymxGjj(
                   @Param("BizNo") String BizNo
    );
    /**
     * 国家局入库检验业务
     * @param rkywdh
     * @param czbz
     * @param BizNo
     * @return
     */
    int addRkJyywGjj(
                   @Param("rkywdh") String rkywdh,
                   @Param("czbz") String czbz,
                   @Param("BizNo") String BizNo
    );
    /**
     * 国家局入库结算
     * @param rkjsdh
     * @param czbz
     * @param BizNo
     * @return
     */
    int addRkJsywGjj(
                   @Param("rkjsdh") String rkjsdh,
                   @Param("czbz") String czbz,
                   @Param("BizNo") String BizNo
    );
    /**
     * 国家局出库记录
     * @param ckywdh
     * @param czbz
     * @param BizNo
     * @return
     */
    int addCkywGjj(
                   @Param("ckywdh") String ckywdh,
                   @Param("czbz") String czbz,
                   @Param("BizNo") String BizNo
    );
    /**
     * 通过移仓进行倒仓业务
     * @param dcdh
     * @param czbz
     * @return
     */
    int addDcywByYc(
                   @Param("dcdh") String dcdh,
                   @Param("czbz") String czbz
    );
    /**
     * 国家局倒仓
     * @param dcdh
     * @param czbz
     * @param zycx 作业次序
     * @param unitId
     * @return
     */
    int addDcyw(
                   @Param("dcdh") String dcdh,
                   @Param("czbz") String czbz,
                   @Param("zycx") String zycx,
                   @Param("unitId") String unitId
    );
    /**
     * 国家局性质变动
     * @param lsxzzbdh
     * @param czbz
     * @param bddh
     * @return
     */
    int addXzbdywGjj(
                   @Param("lsxzzbdh") String lsxzzbdh,
                   @Param("czbz") String czbz,
                   @Param("bddh") String bddh
    );
    /**
     * 国家局损益单
     * @param lsxzzbdh
     * @param syslNumber
     * @param bddh
     * @return
     */
    int addSydYwGjj(
                   @Param("sydh") String lsxzzbdh,
                   @Param("syslNumber") Integer syslNumber,
                   @Param("bddh") String bddh
    );
    /**
     * 国家局账面库存业务
     * @param lsxzzbdh
     * @param bizno
     * @param zmkcId
     * @return
     */
    int addZmkcywGjj(
                   @Param("czbz") String lsxzzbdh,
                   @Param("bizno") String bizno,
                   @Param("zmkcId") String zmkcId
    );
    @Select({"${sql}"})
    @ResultType(Map.class)
    List<Map<String,Object>> findBySql(@Param("sql") String sql);

    @Update({"${sql}"})
    @ResultType(ArrayList.class)
    void executeUpdate(@Param("sql") String sql);

    List<Map<String,Object>> findBySqlQuery(@Param("sql") String sql);

}
