package com.dayou.service;

import com.dayou.dto.*;
import com.dayou.entity.Major;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dayou.vo.MajorVO;

import java.util.List;

/**
 * <p>
 * 大中型项目 服务类
 * </p>
 *
 * @author wucl
 * @since 2023-10-30
 */
public interface IMajorService extends IService<Major> {

    Page<MajorVO> selectPage(Page page, MajorVO major, String keyword);

    /**
     * 条件查询大中型已终止流程
     * @param page 分页
     * @param major 查询条件
     * @param keyword 关键字
     * @return Page<MajorVO>
     */
    Page<MajorVO> getTerminatedPage(Page page, MajorVO major, String keyword);

    MajorVO detail(Long id);

    WorkNodeCommit add(Major major);

    Boolean update(Major major);

    Boolean delete(Long id);

    Boolean allocation(TaskRecordDTO<MajorVO> taskRecordDTO);

    Boolean priceFeedback(TaskRecordDTO<PriceFeedbackDTO> taskRecordDTO);

    MajorStaticsDTO staticsInformation();

    Page<MajorVO> xPage(Page page, MajorVO major, String keyword);

    Boolean doRecall(Long id);

    List<MajorSubClientDTO> findMajorSubClient();

    MajorVO productionDetail(Long id, String productionNo, String production);

    Boolean feedback(PriceFeedbackDTO priceFeedbackDTO);

    Boolean updateDepartment(TaskRecordDTO<Major> taskRecordDTO);
}
