package com.unis.crk.cplbusiness.service;

import com.unis.crk.cplbusiness.entity.CplFcbgzStore;
import com.unis.crk.cplbusiness.entity.CplStore;
import com.unis.crk.cplbusiness.entity.DataKcglCplkcswDefault;
import com.baomidou.mybatisplus.extension.service.IService;
import com.unis.crk.cplbusiness.entity.vo.DataKcglCplkcswDefaultVo;
import cn.hutool.json.JSONObject;

import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.core.metadata.IPage;
/**
 * <p>
 * 成品粮库存实物 服务类
 * </p>
 *
 * @author TangSong
 * @since 2022-03-21
 */
public interface IDataKcglCplkcswDefaultService extends IService<DataKcglCplkcswDefault> {

        /**
         *修改成品粮库存实物
         * @param param 成品粮库存实物业务数据
         * @return
         */
        JSONObject update(DataKcglCplkcswDefault param);
        /**
         *删除成品粮库存实物数据
         * @param id 成品粮库存实物主键尖
         * @return
         */
        JSONObject delete(String id);

        /**
         * 按照条件查询成品粮库存实物信息
         * @param pageQuery
         * @throws Exception
         */
        IPage<Map<String,Object>> findPageVo(DataKcglCplkcswDefaultVo pageQuery) ;

        /**
         * 保存库存实物
         * @param unitId 单位id
         * @param selectDataId 主键id
         * @param store 成品粮库存信息
         * @param fcbgzStore 成品粮分库保管账信息
         * @param stockNum  本次增加或者减少的库存数量
         * @param byBeginning true:通过期初库存变更实物库存 false:通过形成库存变更实物库存
         * @return
         */
        Boolean changeKCSW(String unitId, String selectDataId, CplStore store, CplFcbgzStore fcbgzStore, Double stockNum, boolean byBeginning);
        /**
         * 根据货位号、商品编号，规格查询库存对应的库存相关信息
         * @param hwh
         * @param spbh
         * @param gg
         * @return
         */
        List<Map<String,Object>> getKcswInfoBySpbh(String hwh, String spbh, String gg);
        /**
         * 根据货位号查询库存对应的库存相关信息
         * @param hwh
         * @return
         */
        List<Map<String,Object>> getKcswInfoByHwh(String hwh);

        /**
         * 根据商品编号，规格查询库存对应的仓房相关信息
         * @param unitid
         * @param ppbh
         * @param pzbh
         * @param spbh
         * @param gg
         * @return
         */
        List<Map<String,Object>> getChInfo(String unitid, String ppbh, String pzbh, String spbh, String gg);
        /**
         * 根据仓房查询库存对应的库存相关信息
         * @param ch
         * @return
         */
        List<Map<String,Object>> getKcswInfoByCh(String ch);

        /**
         * 得到仓房信息以及库存总件数
         * @param unitid
         * @return
         */
        List<Map<String,Object>> getChSumInfo(String unitid);

        IPage<Map<String,Object>>  findPageKcyj(DataKcglCplkcswDefaultVo pageQuery);
}
