package cn.com.lzt.budget.data.service; import cn.com.lzt.budget.control.entity.BudgetControlDetailEntity; import cn.com.lzt.budget.data.dto.BudgetDimMatchDto; import cn.com.lzt.goodscategory.entity.TBGoodsCategoryEntity; import cn.com.lzt.goodsinfo.entity.TBGoodsInfoEntity; import org.springframework.data.util.Pair; import java.math.BigDecimal; import java.util.List; import java.util.Map; public interface BudgetDataService { /** * @param year 年份 * @param categoryCodeList 一级分类id * @param entityId 预算主体id * @return */ public List getUsedGoodsInfoByYear(int year,List categoryCodeList,String entityId); public void dimMatch(BudgetDimMatchDto dto); //获得子分类 public List getGoodsCategoryByParent(String parentCode); public Double[] getOneGoodsRefYearUsed(Integer year,String goodsId,String entityId); /** * 获得预算值 * @param periodDetailId * @param entityId * @param measureId * @param includeTax * @return */ public BigDecimal getExpectValue(String periodDetailId,String entityId,String measureId,Integer includeTax); //获得指标年预期数 public BigDecimal getYearExpectValue(String periodDetailId,String entityId,String measureId,Integer includeTax); /** * 根据控制方案获得预算金额 * @param controlDetailEntity 控制方案 * @param periodDetailId * @param entityId * @param measureId * @param includeTax * @param show 是否展示。true不计算柔性部分 * @return */ public BigDecimal getExpectValueByControl(BudgetControlDetailEntity controlDetailEntity, String periodDetailId, String entityId, String measureId, Integer includeTax,boolean show); /** * 获得执行数 * @param periodDetailId * @param entityId * @param measureId * @param includeTax * @return 如果没找到对应值 返回null */ public BigDecimal getActualValue(String periodDetailId, String entityId, String measureId, Integer includeTax); //获得指标年度执行数 public BigDecimal getYearActualValue(String periodDetailId, String entityId, String measureId, Integer includeTax); //根据控制方案获得执行数 public BigDecimal getActualValueByControl(BudgetControlDetailEntity controlDetailEntity, String periodDetailId, String entityId, String measureId, Integer includeTax); /** * 通过yearMonth yyyy-MM 查找periodDetailId * @param yearMonth * @return */ public String findPeriodDetail(String yearMonth); /** * 查找指标id * @param busType * @param configItem * @return */ public String findMeasure(String busType, String configItem); public String findEntityByDepartId(String departId); /** * 获得 编制数和执行数 * @param busValue 业务占用金额 * @param yearMonth 月份 * @param entityId 预算主体 * @param measureId 指标id * @param includeTax * @return first 编制数 second执行数 */ public Pair getExpectActualValue(BudgetControlDetailEntity controlDetailEntity,BigDecimal busValue, String yearMonth, String entityId, String measureId, Integer includeTax); /** * 获得业务占用金额 * @param busType 业务类型 * @param updateId 单据id * @param yearMonth 月份 * @param departId 部门id * @param measureId 指标 * @return */ public BigDecimal getBusNotPayMoney(BudgetControlDetailEntity controlDetailEntity,String busType, String updateId, String yearMonth, String departId, String measureId); public Map getExpectActualValueByBus(String busType, String updateId, String yearMonth, String departId, String measureId, Integer includeTax); }