package org.jeecg.modules.fbsInventory.service;

import org.jeecg.modules.fbsInventory.entity.FbsInventory;
import com.baomidou.mybatisplus.extension.service.IService;

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

/**
 * @Description: 存库档案
 * @author： jeecg-boot
 * @date：   2020-10-16
 * @version： V1.0
 */
public interface IFbsInventoryService extends IService<FbsInventory> {

    /**
    * @Author chenchuang
    * @Description //TODO 根据生产订单id查询产品
    * @Date 2020/10/16 18:47
    * @Param [moId]
    * @return java.util.List<org.jeecg.modules.fbsInventory.entity.FbsInventory>
    */
    List<FbsInventory> getInventoryGetByOrderId(String moId);

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

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

    /**
    * @Author chenchuang
    * @Description //TODO 根据多个id(code)查询库存信息
    * @Date 2020/10/26 16:30
    * @Param []
    * @return java.util.List<org.jeecg.modules.fbsInventory.entity.FbsInventory>
    */
    List<FbsInventory> getListByIds(List<String> stringList);

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

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

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

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

    /**
    * @Author chenchuang
    * @Description //TODO 新增从SAP获取的存货档案
    * @Date 2022/2/15 20:15
    * @Param []
    * @return void
    */
    void addSAPInventory(Long start,Long end);

    /**
    * @Author chenchuang
    * @Description //TODO  新增从SAP获取的库存存量数据
    * @Date 2022/2/15 21:26
    * @Param []
    * @return void
    */
    void addSAPCurrentStock(Long start,Long end);

    /**
    * @Author chenchuang
    * @Description //TODO 新增从SAP获取的产成品入库的主表与子表
    * @Date 2022/2/16 11:26
    * @Param []
    * @return void
    */
    void addSAPRdrecord10MainAndItems(Long start,Long end);

    /**
    * @Author chenchuang
    * @Description //TODO 新增从SAP获取的供应商信息
    * @Date 2022/2/16 11:27
    * @Param []
    * @return void
    */
    void addSAPVendor(Long start,Long end);

    /**
    * @Author chenchuang
    * @Description //TODO 新增从SAP获取的采购订单数据
    * @Date 2022/2/16 14:57
    * @Param []
    * @return void
    */
    void addSAPPO_PoMainAndItems(Long start,Long end);

    /**
    * @Author chenchuang
    * @Description //TODO 新增从SAP获取的采购到货数据
    * @Date 2022/2/16 15:44
    * @Param []
    * @return void
    */
    void addSAPPuArrivalvouch(Long start,Long end);

    /**
    * @Author chenchuang
    * @Description //TODO 新增从SAP获取的领料申请数据
    * @Date 2022/2/16 15:46
    * @Param []
    * @return void
    */
    void addSAPMaterialappvouchMainAndItem(Long start,Long end);

    /**
    * @Author chenchuang
    * @Description //TODO 新增从SAP获取的检验信息
    * @Date 2022/2/16 20:16
    * @Param []
    * @return void
    */
    void addSAPQMCHECKVOUCHER(Long start,Long end);

    /**
    * @Author chenchuang
    * @Description //TODO 新增从SAP获取的销售出库单数据
    * @Date 2022/2/16 21:11
    * @Param []
    * @return void
    */

    void addSAPRdrecord32MainAndItem(Long start,Long end);

    void implementSAPPull();

    void implementSAPPullTwo();

    void implementSAPPullThree();
}
