package com.unis.crk.cplbusiness.service;

import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.unis.crk.cplbusiness.entity.DataCrkywCpltzdxxDefault;
import com.unis.crk.cplbusiness.entity.vo.DataCrkywCplpfDefaultVo;
import com.unis.crk.cplbusiness.entity.vo.DataCrkywCpltzdxxDefaultVo;

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

/**
 * <p>
 * 汽车出入库-通用单主表 服务类
 * </p>
 *
 * @author TangSong
 * @since 2022-03-23
 */
public interface IDataCrkywCpltzdxxDefaultService extends IService<DataCrkywCpltzdxxDefault> {

        /**
         *修改成品粮出入库-通用单主表
         * @param param 汽车出入库-通用单主表业务数据
         * @return
         */
        JSONObject update(DataCrkywCpltzdxxDefault param) throws Exception;
        /**
         *删除成品粮出入库-通用单主表数据
         * @param id 汽车出入库-通用单主表主键尖
         * @return
         */
        JSONObject delete(String id);

        /**
         * 按照条件查询成品粮出入库-通用单主表信息
         * @param pageQuery
         * @throws Exception
         */
        IPage<Map<String,Object>> findPageVo(DataCrkywCpltzdxxDefaultVo pageQuery) ;

        /**
         *成品粮通知单下拉
         * @param unitId
         * @param zylx
         * @return
         */
        List<Map<String,Object>> getCplTzdList(String unitId, String zylx);

        /**
         * 查询通知信息详情
         * @param id
         * @throws Exception
         */
        DataCrkywCpltzdxxDefault getOneData(String id);

        /***
         * 保存
         * @param param
         * @return
         */
         JSONObject saveData(DataCrkywCpltzdxxDefault param) throws Exception;

        /**
         *成品粮通知单出入库下拉
         * @param unitId
         * @param zylx
         * @return
         */
        List<Map<String,Object>>  getCplCrkTzdList(String unitId, String zylx);

        /**
         *通过主表主键Id到成品粮通知单出入库从表列表
         * @param dataId
         * @return
         */
        List<Map<String,Object>> getCplCrkTzdFltList(String dataId);

        /**
         * 评分分页查询
         * @param pageQuery
         * @return
         */
        IPage<Map<String,Object>> findPagepfDefaultVo(DataCrkywCplpfDefaultVo pageQuery);

        Map<String,Object> getCplCrkTzdFltListAndsp(String mainDataId);
}
