package cn.com.lzt.budget.dimfunction.service; import cn.com.lzt.budget.costbreakdown.entity.BudgetCostBreakdownEntity; import cn.com.lzt.budget.data.dto.BudgetCalc; import cn.com.lzt.budget.data.dto.BudgetRedisCellData; import cn.com.lzt.budget.dimfunction.entity.BudgetDimFunctionEntity; import cn.com.lzt.budget.inst.entity.BudgetInstEntity; import cn.com.lzt.budget.instmeasure.entity.BudgetInstMeasureEntity; import org.jeecgframework.core.common.service.CommonService; import java.io.Serializable; import java.math.BigDecimal; import java.util.List; import java.util.Set; public interface BudgetDimFunctionServiceI extends CommonService{ public void delete(BudgetDimFunctionEntity entity) throws Exception; public Serializable save(BudgetDimFunctionEntity entity) throws Exception; public void saveOrUpdate(BudgetDimFunctionEntity entity) throws Exception; /** * 维度公式计算,只计算一层 * @param functionId 公式id * @param measureId 指标id * @param entityId 预算实体id * @param periodDetailId 时间维度 * @param deep 是否计算依赖 * @param update 是否保存值 * @param isActual * @return */ public BigDecimal calc(String functionId, String measureId, String entityId, String periodDetailId, boolean deep, boolean update, boolean isActual); public void batchCalc(List calcList); /** *后台计算维度公式 * @param isActual true实例表 false */ public void backCalc(boolean isActual); String copy(String functionId); public void createConsistencyCache(); /** * 一致性操作 * @param instEntity * @param operate add remove */ public void consistency(BudgetInstEntity instEntity, String operate); /** * 一致性操作 * @param costBreakdownEntity * @param operate add remove */ public void consistency(BudgetCostBreakdownEntity costBreakdownEntity,String operate); public Set effect(List list); public Set getNeedCalcCell(String entityId,String periodDetailId,String measureId,Integer includeTax,Integer expect); void removeCache(); }