package com.unis.crk.quality.service;

import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.unis.crk.quality.entity.QualityBase;
import com.unis.crk.quality.entity.vo.QualityBaseVo;

import java.util.List;
import java.util.Map;
/**
 * <p>
 * 质量标准-根表 服务类
 * </p>
 *
 * @author TangSong
 * @since 2022-02-09
 */
public interface IQualityBaseService extends IService<QualityBase> {
        /**
         *保存质量标准-根表
         * @param qualityBase 质量标准-根表业务数据
         * @return
         */
        JSONObject saveBase(QualityBase qualityBase)throws Exception;
        /**
         *修改质量标准-根表
         * @param qualityBase 质量标准-根表业务数据
         * @return
         */
        JSONObject update(QualityBase qualityBase)throws Exception;
        /**
         *删除质量标准-根表数据
         * @param id 质量标准-根表主键尖
         * @return
         */
        JSONObject delete(String id)throws Exception;

        /**
         * 按照条件查询质量标准-根表信息
         * @param pageQuery
         * @throws Exception
         */
        IPage<Map<String,Object>> findPageVo(QualityBaseVo pageQuery) ;

        /**
       * 得到新增或者修改回显数据
       * @param id
       * @param lspzCode
       * @return
       */
        QualityBase getOne(String id,String lspzCode);
        /**
         * 检质定制化获取扣量、扣价
         * @return BigDecimal
         * @throws
         * @update 修改时间 by 修改人
         * @description
         */
        Map<String, Object> getScaleByFomula(JSONObject params) throws Exception;
        /**
         * 根据检验值获取等级 All rights Reserved, Designed By
         *
         * @return BigDecimal
         * @throws
         * @update 修改时间 by 修改人
         * @description TODO(这里用一句话描述这个方法的作用)
         */
        String getLevelByTestValue(JSONObject params) throws Exception;
        /**
         * 得到新增或者修改回显数据
         * @param id
         * @param lspzCode
         * @return
         */
        QualityBase getCplOne(String id, String lspzCode);

        /**
         * 根据lspzCode查询成品粮標準值
         *
         * @param lspzId
         * @param lsdjId
         * @return
         */
        JSONObject getCplBzz(String unitId,String lspzId, String lsdjId);
        /**
         * 根据lspzCode查询原粮粮標準值
         *
         * @param lspzId
         * @param lsdjId
         * @return
         */
        JSONObject getYlBzz(String unitId, String lspzId, String lsdjId);
}
