package com.ld.igds.grain.service; import com.baomidou.mybatisplus.plugins.Page; import com.ld.igds.data.ChartLine; import com.ld.igds.screen.data.DepotGrainData; import com.ld.igds.grain.dto.*; import com.ld.igds.models.Grain; import java.util.List; import java.util.Map; /** * 粮情模块核心接口 * * @author jiazx */ public interface CoreGrainService { String BEAN_ID = "core.grainService"; /** * 使用Mybatis实现报表数据分页查询 * * @param parameter * @param parameter */ Page getDataReport(int pageSize, int pageNo, Map parameter); /** * 批量删除粮情数据 * * @param list */ void deleteListData(List list); /** * 根据检测时间,获取当前检测时间内,仓库的粮情信息,每个仓库一条数据 * * @param param * @return */ Map queryCheckDateMap(GrainParam param); /** * 根据条件查询粮情信息,返回列表,按照检测批次降序排序 * * @param param * @return */ List listGrainData(GrainParam param); /** * 获取粮情数据信息,按照检测批次升序排序 * * @param param * @return */ List listChartData(GrainParam param); /** * 获取缓存中最新的粮情检测数据 * * @param companyId * @return key=参考编码 */ Map getCacheGrainDateMap(String companyId, String deptId); /** * 更新缓存中最新的粮情检测数据 * * @param data 当前数据为标准的Grain数据,没有做更新点位信息 * @return key=参考编码 */ void updateCacheGrainData(Grain data); /** * 粮情数据保存 * * @param grain */ int saveOrUpdateGrain(Grain grain) throws Exception; /** * 数据保存 * * @param grain */ void saveGrain(Grain grain) throws Exception; /** * 分页获取数据列表 * * @param param * @return */ Page pageListGrainData(GrainParam param); /** * 根据解析后的粮情信息和采集信息,保存采集点 * * @param items * @param grain */ void addGrainItems(List items, Grain grain); /** * 根据参数获取粮情采集点的坐标信息 * * @param param * @return */ List listGrainItemInfo(GrainPointParam param); /** * 根据参数获取采集位的走势信息 * * @param param * @return */ ChartLine chartPointLine(GrainPointParam param); /** * 获取缓存中液位高度信息 * * @param companyId * @param depotId * @return */ GrainData listLiquidHeight(String companyId, String depotId); /** * 获取粮情。即iot设备温湿度 * * @param companyId * @param depotId * @return */ List queryIotGrainData(String companyId, String depotId); /** * 获取仓库信息及最新的粮情信息 * * @param companyId * @return */ List getDepotAndGrain(String companyId, String deptId); }