package cn.iocoder.lyzsys.module.tjt.service.planning;

import cn.iocoder.lyzsys.framework.common.pojo.PageResult;
import cn.iocoder.lyzsys.module.tjt.controller.admin.planning.vo.ProjectPlanningPageReqVO;
import cn.iocoder.lyzsys.module.tjt.controller.admin.planning.vo.ProjectPlanningSaveReqVO;
import cn.iocoder.lyzsys.module.tjt.dal.dataobject.planning.ProjectPlanningDO;

import java.math.BigDecimal;
import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * 合约规划 Service 接口
 *
 * @author Codex
 */
public interface ProjectPlanningService {

    Long createProjectPlanning(ProjectPlanningSaveReqVO createReqVO);

    void updateProjectPlanning(ProjectPlanningSaveReqVO updateReqVO);

    void deleteProjectPlanning(Long id);

    void deleteProjectPlanningList(List<Long> ids);

    PageResult<ProjectPlanningDO> getProjectPlanningPage(ProjectPlanningPageReqVO pageReqVO);

    List<ProjectPlanningDO> getProjectPlanningListByProjectId(Long projectId);

    ProjectPlanningDO getProjectPlanning(Long id);

    Map<Long, BigDecimal> getAllocatedAmountMap(Collection<Long> planningIds);

}
