package org.jeecg.modules.fbsInventory.mapper;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.fbsInventory.entity.FbsInventory;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

/**
 * @Description: 存库档案
 * @author： jeecg-boot
 * @date：   2020-10-16
 * @version： V1.0
 */
public interface FbsInventoryMapper extends BaseMapper<FbsInventory> {
    /**
    * @Author chenchuang
    * @Description //TODO 根据生产订单id查询产品
    * @Date 2020/10/16 18:45
    * @Param [moId]
    * @return java.util.List<org.jeecg.modules.fbsInventory.entity.FbsInventory>
    */
    List<FbsInventory> getInventoryGetByOrderId(@Param("moId")String moId);

    /**
     * 安全库存
     * @return
     */
    List<Map<String,Object>> getStockList();

    /**
     * 成品库存
     * @return
     */
    List<Map<String,Object>> getAllStockList();

    /**
    * @Author chenchuang
    * @Description //TODO 根据存货编码查询标准工时
    * @Date 2021/1/8 10:33
    * @Param [invCode]
    * @return java.math.BigDecimal
    */
    String getByInvCode(@Param("invCode")String invCode);

    /**
    * @Author chenchuang
    * @Description //TODO 根据存货编码修改当个标准工时
    * @Date 2021/1/8 10:58
    * @Param [standardWorkingHoursZ, invCode]
    * @return int
    */
    int updateCInvDefine13(@Param("standardWorkingHoursZ") String standardWorkingHoursZ,@Param("invCode") String invCode);

    /**
    * @Author chenchuang
    * @Description //TODO 根据订单号查询子件图纸号
    * @Date 2021/1/14 13:57
    * @Param [moCode]
    * @return java.util.List<org.jeecg.modules.fbsInventory.entity.FbsInventory>
    */
    List<FbsInventory> getDrawingCode(@Param("moCode")String moCode);

    /**
    * @Author chenchuang
    * @Description //TODO 根据存货编码查询存货信息
    * @Date 2021/1/14 14:27
    * @Param [cInvCode]
    * @return org.jeecg.modules.fbsInventory.entity.FbsInventory
    */
    FbsInventory getInventory(@Param("cInvCode")String cInvCode);

    /**
    * @Author chenchuang
    * @Description //TODO 根据存货编码修改标准工时
    * @Date 2022/2/17 20:58
    * @Param [cInvCode]
    * @return void
    */
    void updateCInvDefine13ByCInvCode(@Param("cInvDefine13")BigDecimal cInvDefine13,@Param("cInvCode")String cInvCode);

    /**
    * @Author chenchuang
    * @Description //TODO 新增从SAP获取的存货档案
    * @Date 2022/2/15 16:42
    * @Param [list]
    * @return void
    */
    void addSAPInventory(@Param(value = "list") List<Map<String,Object>> list);

    /**
    * @Author chenchuang
    * @Description //TODO 根据获取到的存货编码进行删除原有的数据
    * @Date 2022/2/17 14:16
    * @Param [list]
    * @return void
    */
    void deleteSAPInventory(@Param(value = "list") List<Map<String,Object>> list);

    /**
    * @Author chenchuang
    * @Description //TODO 新增从SAP获取的库存存量数据
    * @Date 2022/2/15 20:57
    * @Param [list]
    * @return void
    */
    void addSAPCurrentStock(@Param(value = "list") List<Map<String,Object>> list);

    /**
    * @Author chenchuang
    * @Description //TODO 删除之前获取的库存存量数据
    * @Date 2022/2/17 15:17
    * @Param []
    * @return void
    */
    void deleteSAPCurrentStock();

    /**
    * @Author chenchuang
    * @Description //TODO 新增从SAP获取的产成品入库的主表
    * @Date 2022/2/16 11:26
    * @Param [list]
    * @return void
    */
    void addSAPRdrecord10(@Param(value = "list") List<Map<String,Object>> list);

    /**
    * @Author chenchuang
    * @Description //TODO 根据从SAP获取到的产成品入库ID删除存在的数据
    * @Date 2022/2/17 15:49
    * @Param [list]
    * @return void
    */
    void deleteSAPRdrecord10(@Param(value = "list") List<Map<String,Object>> list);

    /**
    * @Author chenchuang
    * @Description //TODO 新增从SAP获取的产成品入库的子表
    * @Date 2022/2/16 11:27
    * @Param [list]
    * @return void
    */
    void addSAPRdrecords10(@Param(value = "list") List<Map<String,Object>> list);

    /**
    * @Author chenchuang
    * @Description //TODO 根据从SAP获取到的产成品主表id删除存在的子表数据
    * @Date 2022/2/17 15:51
    * @Param [list]
    * @return void
    */
    void deleteSAPRdrecords10(@Param(value = "list") List<Map<String,Object>> list);

    /**
    * @Author chenchuang
    * @Description //TODO 新增从SAP获取的供应商数据
    * @Date 2022/2/16 11:38
    * @Param [list]
    * @return void
    */
    void addSAPVendor(@Param(value = "list") List<Map<String,Object>> list);

    /**
    * @Author chenchuang
    * @Description //TODO 根据从SAP获取到的供应商编码删除存在的供应商
    * @Date 2022/2/17 16:07
    * @Param [list]
    * @return void
    */
    void deleteSAPVendor(@Param(value = "list") List<Map<String,Object>> list);

    /**
    * @Author chenchuang
    * @Description //TODO 新增从SAP获取的采购订单主表数据
    * @Date 2022/2/16 14:32
    * @Param [list]
    * @return void
    */
    void addSAPPoPomain(@Param(value = "list") List<Map<String,Object>> list);

    /**
    * @Author chenchuang
    * @Description //TODO 根据从SAP获取的采购订单id删除存在的主表数据
    * @Date 2022/2/17 16:19
    * @Param [list]
    * @return void
    */
    void deleteSAPPoPomain(@Param(value = "list") List<Map<String,Object>> list);

    /**
    * @Author chenchuang
    * @Description //TODO 新增从SAP获取的采购订单子表数据
    * @Date 2022/2/16 14:32
    * @Param [list]
    * @return void
    */
    void addSAPPoPodetails(@Param(value = "list") List<Map<String,Object>> list);

    /**
    * @Author chenchuang
    * @Description //TODO 根据从SAP获取的采购订单id删除存在的子表数据
    * @Date 2022/2/17 16:20
    * @Param [list]
    * @return void
    */

    void deleteSAPPoPodetails(@Param(value = "list") List<Map<String,Object>> list);

    /**
    * @Author chenchuang
    * @Description //TODO 新增从SAP获取的采购到货主表
    * @Date 2022/2/16 15:19
    * @Param [list]
    * @return void
    */
    void addSAPPuArrivalvouch(@Param(value = "list") List<Map<String,Object>> list);

    /**
    * @Author chenchuang
    * @Description //TODO 根据从SAP获取的采购到货ID删除存在的主表数据
    * @Date 2022/2/17 16:31
    * @Param [list]
    * @return void
    */
    void deleteSAPPuArrivalvouch(@Param(value = "list") List<Map<String,Object>> list);

    /**
    * @Author chenchuang
    * @Description //TODO 新增从SAP获取的采购到货子表
    * @Date 2022/2/16 15:20
    * @Param [list]
    * @return void
    */
    void addSAPPuArrivalvouchs(@Param(value = "list") List<Map<String,Object>> list);

    /**
    * @Author chenchuang
    * @Description //TODO 根据从SAP获取的采购到货ID删除存在的子表数据
    * @Date 2022/2/17 16:32
    * @Param [list]
    * @return void
    */
    void deleteSAPPuArrivalvouchs(@Param(value = "list") List<Map<String,Object>> list);

    /**
    * @Author chenchuang
    * @Description //TODO 新增从SAP获取到的领料信息主表
    * @Date 2022/2/16 16:29
    * @Param [list]
    * @return void
    */
    void addSAPMaterialappvouch(@Param(value = "list") List<Map<String,Object>> list);

    /**
    * @Author chenchuang
    * @Description //TODO 根据从SAP获取的领料ID删除主表
    * @Date 2022/2/17 17:14
    * @Param [list]
    * @return void
    */
    void deleteSAPMaterialappvouch(@Param(value = "list") List<Map<String,Object>> list);

    /**
    * @Author chenchuang
    * @Description //TODO 新增从SAP获取到的领料信息子表
    * @Date 2022/2/16 16:29
    * @Param [list]
    * @return void
    */
    void addSAPMaterialappvouchs(@Param(value = "list") List<Map<String,Object>> list);

    /**
    * @Author chenchuang
    * @Description //TODO 根据从SAP获取的领料ID删除子表
    * @Date 2022/2/17 17:15
    * @Param [list]
    * @return void
    */
    void deleteSAPMaterialappvouchs(@Param(value = "list") List<Map<String,Object>> list);

    /**
    * @Author chenchuang
    * @Description //TODO 新增从SAP获取到的检验单信息
    * @Date 2022/2/16 20:48
    * @Param [list]
    * @return void
    */
    void addSAPQmcheckvoucher(@Param(value = "list") List<Map<String,Object>> list);

    /**
    * @Author chenchuang
    * @Description //TODO 根据从SAP获取到的检验单单据编码删除存在的数据
    * @Date 2022/2/17 17:21
    * @Param [list]
    * @return void
    */
    void deleteSAPQmcheckvoucher(@Param(value = "list") List<Map<String,Object>> list);

    /**
    * @Author chenchuang
    * @Description //TODO 新增从SAP获取到的销售出库单主表
    * @Date 2022/2/16 21:48
    * @Param [list]
    * @return void
    */
    void addSAPRdrecord32(@Param(value = "list") List<Map<String,Object>> list);

    /**
    * @Author chenchuang
    * @Description //TODO 根据从SAP获取到的销售出库单ID删除存在的主表数据
    * @Date 2022/2/17 17:53
    * @Param [list]
    * @return void
    */
    void deleteSAPRdrecord32(@Param(value = "list") List<Map<String,Object>> list);

    /**
    * @Author chenchuang
    * @Description //TODO 新增从SAP获取到的销售出库单子表
    * @Date 2022/2/16 21:48
    * @Param [list]
    * @return void
    */
    void addSAPRdrecords32(@Param(value = "list") List<Map<String,Object>> list);

    /**
    * @Author chenchuang
    * @Description //TODO 根据从SAP获取到的销售出库单ID删除存在的子表数据
    * @Date 2022/2/17 17:55
    * @Param [list]
    * @return void
    */
    void deleteSAPRdrecords32(@Param(value = "list") List<Map<String,Object>> list);

    /**
    * @Author chenchuang
    * @Description //TODO 新增从SAP获取到的销售出库单主表
    * @Date 2022/3/15 14:59
    * @Param [list]
    * @return void
    */
    void addSAPDispatchList(@Param(value = "list") List<Map<String,Object>> list);

    /**
    * @Author chenchuang
    * @Description //TODO 根据从SAP获取到的发退货单ID删除存在的主表数据
    * @Date 2022/3/15 15:01
    * @Param [list]
    * @return void
    */
    void deleteSAPDispatchList(@Param(value = "list") List<Map<String,Object>> list);

    /**
    * @Author chenchuang
    * @Description //TODO 新增从SAP获取到的发退货单子表
    * @Date 2022/3/15 15:02
    * @Param [list]
    * @return void
    */
    void addSAPDispatchLists(@Param(value = "list") List<Map<String,Object>> list);

    /**
    * @Author chenchuang
    * @Description //TODO 根据从SAP获取到的发退货主id删除发退货单子表
    * @Date 2022/3/15 15:03
    * @Param [list]
    * @return void
    */
    void deleteSAPDispatchLists(@Param(value = "list") List<Map<String,Object>> list);

    /**
    * @Author chenchuang
    * @Description //TODO 新增存货
    * @Date 2022/3/15 13:54
    * @Param [inventory]
    * @return void
    */
    void addInventory(@Param(value = "inventory") Map<String,Object> inventory);
}
