package com.unis.crk.business.kcgl.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.unis.crk.business.kcgl.entity.DataKcglKcswDefault;
import com.unis.crk.business.kcgl.entity.FcbgzStore;
import com.unis.crk.business.kcgl.entity.Store;
import com.unis.crk.business.kcgl.entity.vo.DataKcglKcswDefaultVo;
import com.unis.crk.enums.StoreWorkType;

import java.util.List;
import java.util.Map;
/**
 * <p>
 * 库存管理-库存实物表 服务类
 * </p>
 *
 * @author TangSong
 * @since 2021-10-11
 */
public interface IDataKcglKcswDefaultService extends IService<DataKcglKcswDefault> {


        /**
         * 按照条件查询库存管理-库存实物表信息
         * @param pageQuery
         * @throws Exception
         */
        IPage<Map<String,Object>> findPageVo(DataKcglKcswDefaultVo pageQuery) ;

    /**
     * 保存库存实物
     * @param unitId 单位id
     * @param selectDataId 主键id
     * @param store 库存信息
     * @param fcbgzStore 分库保管账信息
     * @param stockNum  本次增加或者减少的库存数量
     * @param byBeginning true:通过期初库存变更实物库存 false:通过形成库存变更实物库存
     * @return
     */
        boolean changeKCSW(String unitId, String selectDataId, Store store, FcbgzStore fcbgzStore, Double stockNum, boolean byBeginning);

    /**
     *
     * @param dataId
     * @return
     */
    List<Map<String,Object>> queryStockDetail(String dataId);

    /**
     *
     * @param unitId
     * @param cf
     * @param hwh
     * @param pz
     * @param lsxz
     * @return
     */
    List<Map<String,Object>> queryStockSum(String unitId, String cf, String hwh, String pz, String lsxz);

    /**
     * 修改库存实物入仓时间为最后一次修改时间
     * @param unitId
     * @param selectDataId
     * @param store
     * @param workType
     * @return
     */
    boolean updateKcswRcsj(String unitId, String selectDataId,Store store,StoreWorkType workType);
}
