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.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 pmDemandReqVo * @return 结果 */ boolean commit(PmDemandReqVo pmDemandReqVo); /** * 查看流程图 * * @param demandId 采购需求主键 * @return 采购需求 */ Object viewFlowChart(Long demandId); /** * 审核采购需求通过 * * @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 delOld); 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; /** * 更新需求预警状态 * * @param demnadId * @return */ void updateDemandWarnStatus(Long demnadId); /** * 通过需求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(); List purchaseDemandDocking(); List expertFeedback(); List procurementDocumentsReview(); List procurementAnnouncement(); List preBidQuery(); List waitOpenBid(); List bidResultAnnouncement(); List wasteBidHandle(); List postBidQuery(); /** * 采购管理部门首页待办事项(全部) * * @return */ AjaxResult procurementOfficeWillManipulateTotal(); /** * 统计分析-采购项目信息统计 * * @param pmDemandReqVo * @return */ Map purchaseProjectStatistical(PmDemandReqVo pmDemandReqVo); /** * 统计分析-按照项目属性统计所有的项目 * * @param * @return */ List countByProjectAttr(PmDemandReqVo pmDemandReqVo); /** * 统计分析-按照采购方式统计所有的项目 * * @param * @return */ List countByPurchaseMode(PmDemandReqVo pmDemandReqVo); /** * 统计分析-按照概算金额统计所有的项目 * * @param * @return */ List countByEvaluation(PmDemandReqVo pmDemandReqVo); /** * 执行滞后采购项目情况 * * @return */ AjaxResult countProjectExceed(PmDemandReqVo pmDemandReqVo); /** * 统计不同时间维度的逾期项目 * * @return */ AjaxResult exceedAnalysis(PmDemandReqVo pmDemandReqVo); /** * 滞后项目时长分析 * * @return */ AjaxResult exceedMarketAnalysis(PmDemandReqVo pmDemandReqVo); /** * 重大规划采购任务专项计划管理情况 * * @return */ AjaxResult countMajorProject(PmDemandReqVo pmDemandReqVo); /** * 重大规划采购任务专项计划管理情况(采购办) * * @return */ AjaxResult countMajorProjectCGB(PmDemandReqVo pmDemandReqVo); /** * 任务数量趋势分析 * * @return */ AjaxResult taskQuantityAnalysis(PmDemandReqVo pmDemandReqVo); /** * 各阶段采购任务数量分布 * * @return */ AjaxResult countEveryStatusNum(PmDemandReqVo pmDemandReqVo); /** * 通过计划ID查询项目 * * @param planId * @return */ PmDemand selectByPlanId(Long planId); /** * 项目执行进度统计 * * @param pmDemandReqVo * @return */ List purchaseProjectExecute(PmDemandReqVo pmDemandReqVo); /** * 已完成项目数量统计 * * @param pmDemandReqVo * @return */ List> purchaseProjectCompleteNumber(PmDemandReqVo pmDemandReqVo); /** * 已完成采购任务数量统计 * * @param pmDemandReqVo * @return */ List> purchaseTaskFinish(PmDemandReqVo pmDemandReqVo); /** * 项目数量分析 * * @param pmDemandReqVo * @return */ List> purchaseProjectNumberAnalysis(PmDemandReqVo pmDemandReqVo); /** * 需求提报情况 * * @param pmDemandReqVo * @return */ List demandSubCount(PmDemandReqVo pmDemandReqVo); /** * 项目类型情况统计 * * @param pmDemandReqVo * @return */ List countByProjectType(PmDemandReqVo pmDemandReqVo); /** * 需采转化情况统计 * * @param pmDemandReqVo * @return */ List countByPurchaseChange(PmDemandReqVo pmDemandReqVo); /** * 滞后主要直接原因 * * @param pmDemandReqVo * @return */ AjaxResult exceedReason(PmDemandReqVo pmDemandReqVo); /** * 滞后直接原因 * * @param pmDemandReqVo * @return */ AjaxResult exceedReasonZj(PmDemandReqVo pmDemandReqVo); /** * 所属采购服务站数量 * * @param pmDemandReqVo * @return */ AjaxResult countPurTask(PmDemandReqVo pmDemandReqVo); /** * 新增执行滞后采购任务数量分析 * * @param pmDemandReqVo * @return */ AjaxResult countMajorProjectNumCGB(PmDemandReqVo pmDemandReqVo); /** * 滞留环节 * * @param pmDemandReqVo * @return */ AjaxResult exceedLink(PmDemandReqVo pmDemandReqVo); }