package com.ozs.pm.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.ozs.common.core.domain.AjaxResult; import com.ozs.base.domain.vo.BaseExpertVo; import com.ozs.pm.doman.PmDemand; import com.ozs.pm.doman.vo.requestVo.*; import com.ozs.pm.doman.vo.responseVo.PmDemandResVo; import com.ozs.pm.doman.vo.responseVo.PmFlowChartResVo; import com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo; import com.ozs.system.domain.SysFileRef; import java.util.List; import java.util.Map; /** * 采购需求Service接口 * * @author ruoyi * @date 2023-01-16 */ public interface IPmDemandService extends IService { /** * 查询采购需求 * * @param demandId 采购需求主键 * @return 采购需求 */ PmDemandResVo selectPmDemandByDemandId(Long demandId, String detailType); /** * 查询采购需求列表 * * @param pmDemandReqVo 采购需求 * @return 采购需求集合 */ IPage selectPmDemandList(PmDemandReqVo pmDemandReqVo, int reqType); /** * 需求建档 * * @param pmBookBuildingReqVo 需求建档 * @return 结果 */ boolean bookBuilding(PmBookBuildingReqVo pmBookBuildingReqVo) throws Exception; /** * 查看流程图 * * @param demandId 采购需求主键 * @return 采购需求 */ Object viewFlowChart(Long demandId); /** * 查看流程图 * * @param demandId 采购需求主键 * @return 采购需求 */ PmFlowChartResVo getModuleInfo(Long demandId, String moduleName); /** * 提交采购需求 * * @param pmDemandReqVo * @return 结果 */ boolean commit(PmDemandReqVo pmDemandReqVo); /** * 审核采购需求通过 * * @param pmDemandReqVo * @return 结果 */ boolean reviewTo(PmDemandReqVo pmDemandReqVo); /** * 审核采购需求退回 * * @param pmDemandReqVo * @return 结果 */ boolean reviewReturn(PmDemandReqVo pmDemandReqVo); /** * 下达任务 * * @param pmDemandReqVo * @return 结果 */ boolean releaseTask(PmDemandReqVo pmDemandReqVo); boolean uploadFile(Long redId, Integer fileType, List sysFileRefs, String upateBy); boolean insertPmReleaseAnnouncement(PmReleaseAnnouncementReqVo pmReleaseAnnouncementReqVo) throws Exception; boolean insertExpertBatch(PmBaseExpertFillReqVo pmBaseExpertFillReqVo) throws Exception; boolean extractExpertBatch(PmBaseExpertExtractReqVo pmBaseExpertExtractReqVo) throws Exception; boolean insertBidOpeningBatch(PmBidOpeningFillReqVo pmBidOpeningFillReqVo) throws Exception; boolean insertPmBidWinning(PmBidWinningReqVo pmBidWinningReqVo) throws Exception; boolean updatePmBidWinning(PmBidWinningReqVo pmBidWinningReqVo) throws Exception; boolean insertPmBidFailure(PmBidFailureReqVo pmBidFailureReqVo) throws Exception; boolean insertContractInfo(PmContractInfoReqVo pmContractInfoReqVo) throws Exception; boolean insertProjectConstruction(PmProjectConstructionReqVo pmProjectConstructionReqVo) throws Exception; /** * 通过需求ID列表 查询采购执行列表 sunhh * * @param demandIdList * @return */ List selectByDemandIdList(List demandIdList); /** * 专家库--查询抽取专家列表 非必传条件:专家名称,开始结束时间 sunhh * * @param baseExpertVo * @return */ List selectExtractionExpert(BaseExpertVo baseExpertVo); /** * 查询需求单位首页待办事项(需求待提交) * * @return */ List demandWaitCommit(); /** * 查询需求单位首页待办事项(合同待填制) * * @return */ List contractWaitFilled(); /** * 查询需求单位首页待办事项(项目建设待完成) * * @return */ List projectWaitFinish(); /** * 采购管理部门首页待办事项(需求待审核) * * @return */ List demandWaitExamine(); /** * 采购管理部门首页待办事项(任务待下达) * * @return */ List taskWaitRelease(); /** * 采购管理部门首页待办事项(待选取代理) * * @return */ List waitSelectAgent(); /** * 采购管理部门首页待办事项(待上传招标文件) * * @return */ List waitUpBidFile(); /** * 采购管理部门首页待办事项(待发布公告) * * @return */ List waitAnnouncement(); /** * 采购管理部门首页待办事项(待开标) * * @return */ List waitOpenBid(); /** * 采购管理部门首页待办事项(待发布中标公告) * * @return */ List waitBidAnnouncement(); /** * 采购管理部门首页待办事项(中标公示中) * * @return */ List biddingPublicity(); /** * 采购管理部门首页待办事项(全部) * * @return */ AjaxResult procurementOfficeWillManipulateTotal(); /** * 统计分析-采购项目信息统计 * * @param pmDemandReqVo * @return */ Map purchaseProjectStatistical(PmDemandReqVo pmDemandReqVo); /** * 统计分析-按照项目属性统计所有的项目 * * @param * @return */ List countByProjectAttr(); /** * 统计分析-按照概算金额统计所有的项目 * * @param * @return */ List countByEvaluation(); /** * 执行滞后采购项目情况 * * @return */ AjaxResult countProjectExceed(); /** * 统计不同时间维度的逾期项目 * * @return */ AjaxResult exceedAnalysis(); /** * 滞后项目时长分析 * * @return */ AjaxResult exceedMarketAnalysis(); /** * 今年已完成数量 * * @return */ AjaxResult countMajorProject(); /** * 任务数量趋势分析 * * @return */ AjaxResult taskQuantityAnalysis(); /** * 新完成采购任务数量 * * @return */ AjaxResult newFinishPro(); /** * 各阶段采购任务数量分布 * * @return */ AjaxResult countEveryStatusNum(); /** * 通过计划ID查询项目 * @param planId * @return */ PmDemand selectByPlanId(Integer planId); }