IPmDemandService.java 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353
  1. package com.ozs.pm.service;
  2. import com.baomidou.mybatisplus.core.metadata.IPage;
  3. import com.baomidou.mybatisplus.extension.service.IService;
  4. import com.ozs.common.core.domain.AjaxResult;
  5. import com.ozs.base.domain.vo.BaseExpertVo;
  6. import com.ozs.pm.doman.PmDemand;
  7. import com.ozs.pm.doman.vo.requestVo.*;
  8. import com.ozs.pm.doman.vo.responseVo.PmDemandResVo;
  9. import com.ozs.pm.doman.vo.responseVo.PmFlowChartResVo;
  10. import com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo;
  11. import com.ozs.system.domain.SysFileRef;
  12. import java.util.List;
  13. import java.util.Map;
  14. /**
  15. * 采购需求Service接口
  16. *
  17. * @author ruoyi
  18. * @date 2023-01-16
  19. */
  20. public interface IPmDemandService extends IService<PmDemand> {
  21. /**
  22. * 查询采购需求
  23. *
  24. * @param demandId 采购需求主键
  25. * @return 采购需求
  26. */
  27. PmDemandResVo selectPmDemandByDemandId(Long demandId, String detailType);
  28. /**
  29. * 查询采购需求列表
  30. *
  31. * @param pmDemandReqVo 采购需求
  32. * @return 采购需求集合
  33. */
  34. IPage<PmDemandResVo> selectPmDemandList(PmDemandReqVo pmDemandReqVo, int reqType);
  35. /**
  36. * 需求建档
  37. *
  38. * @param pmBookBuildingReqVo 需求建档
  39. * @return 结果
  40. */
  41. boolean bookBuilding(PmBookBuildingReqVo pmBookBuildingReqVo) throws Exception;
  42. /**
  43. * 查看流程图
  44. *
  45. * @param demandId 采购需求主键
  46. * @return 采购需求
  47. */
  48. Object viewFlowChart(Long demandId);
  49. /**
  50. * 查看流程图
  51. *
  52. * @param demandId 采购需求主键
  53. * @return 采购需求
  54. */
  55. PmFlowChartResVo getModuleInfo(Long demandId, String moduleName);
  56. /**
  57. * 提交采购需求
  58. *
  59. * @param pmDemandReqVo
  60. * @return 结果
  61. */
  62. boolean commit(PmDemandReqVo pmDemandReqVo);
  63. /**
  64. * 审核采购需求通过
  65. *
  66. * @param pmDemandReqVo
  67. * @return 结果
  68. */
  69. boolean reviewTo(PmDemandReqVo pmDemandReqVo);
  70. /**
  71. * 审核采购需求退回
  72. *
  73. * @param pmDemandReqVo
  74. * @return 结果
  75. */
  76. boolean reviewReturn(PmDemandReqVo pmDemandReqVo);
  77. /**
  78. * 下达任务
  79. *
  80. * @param pmDemandReqVo
  81. * @return 结果
  82. */
  83. boolean releaseTask(PmDemandReqVo pmDemandReqVo);
  84. boolean uploadFile(Long redId, Integer fileType, List<SysFileRef> sysFileRefs, String upateBy);
  85. boolean insertPmReleaseAnnouncement(PmReleaseAnnouncementReqVo pmReleaseAnnouncementReqVo) throws Exception;
  86. boolean insertExpertBatch(PmBaseExpertFillReqVo pmBaseExpertFillReqVo) throws Exception;
  87. boolean extractExpertBatch(PmBaseExpertExtractReqVo pmBaseExpertExtractReqVo) throws Exception;
  88. boolean insertBidOpeningBatch(PmBidOpeningFillReqVo pmBidOpeningFillReqVo) throws Exception;
  89. boolean insertPmBidWinning(PmBidWinningReqVo pmBidWinningReqVo) throws Exception;
  90. boolean updatePmBidWinning(PmBidWinningReqVo pmBidWinningReqVo) throws Exception;
  91. boolean insertPmBidFailure(PmBidFailureReqVo pmBidFailureReqVo) throws Exception;
  92. boolean insertContractInfo(PmContractInfoReqVo pmContractInfoReqVo) throws Exception;
  93. boolean insertProjectConstruction(PmProjectConstructionReqVo pmProjectConstructionReqVo) throws Exception;
  94. /**
  95. * 更新需求预警状态
  96. *
  97. * @param demnadId
  98. * @return
  99. */
  100. void updateDemandWarnStatus(Long demnadId);
  101. /**
  102. * 通过需求ID列表 查询采购执行列表 sunhh
  103. *
  104. * @param demandIdList
  105. * @return
  106. */
  107. List<PmDemand> selectByDemandIdList(List<Integer> demandIdList);
  108. /**
  109. * 专家库--查询抽取专家列表 非必传条件:专家名称,开始结束时间 sunhh
  110. *
  111. * @param baseExpertVo
  112. * @return
  113. */
  114. List<PmDemand> selectExtractionExpert(BaseExpertVo baseExpertVo);
  115. /**
  116. * 查询需求单位首页待办事项(需求待提交)
  117. *
  118. * @return
  119. */
  120. List<PmDemandResVo> demandWaitCommit();
  121. /**
  122. * 查询需求单位首页待办事项(合同待填制)
  123. *
  124. * @return
  125. */
  126. List<PmDemandResVo> contractWaitFilled();
  127. /**
  128. * 查询需求单位首页待办事项(项目建设待完成)
  129. *
  130. * @return
  131. */
  132. List<PmDemandResVo> projectWaitFinish();
  133. /**
  134. * 采购管理部门首页待办事项(需求待审核)
  135. *
  136. * @return
  137. */
  138. List<PmDemandResVo> demandWaitExamine();
  139. /**
  140. * 采购管理部门首页待办事项(任务待下达)
  141. *
  142. * @return
  143. */
  144. List<PmDemandResVo> taskWaitRelease();
  145. /**
  146. * 采购管理部门首页待办事项(待选取代理)
  147. *
  148. * @return
  149. */
  150. List<PmDemandResVo> waitSelectAgent();
  151. /**
  152. * 采购管理部门首页待办事项(待上传招标文件)
  153. *
  154. * @return
  155. */
  156. List<PmDemandResVo> waitUpBidFile();
  157. /**
  158. * 采购管理部门首页待办事项(待发布公告)
  159. *
  160. * @return
  161. */
  162. List<PmDemandResVo> waitAnnouncement();
  163. /**
  164. * 采购管理部门首页待办事项(待开标)
  165. *
  166. * @return
  167. */
  168. List<PmDemandResVo> waitOpenBid();
  169. /**
  170. * 采购管理部门首页待办事项(待发布中标公告)
  171. *
  172. * @return
  173. */
  174. List<PmDemandResVo> waitBidAnnouncement();
  175. /**
  176. * 采购管理部门首页待办事项(中标公示中)
  177. *
  178. * @return
  179. */
  180. List<PmDemandResVo> biddingPublicity();
  181. /**
  182. * 采购管理部门首页待办事项(全部)
  183. *
  184. * @return
  185. */
  186. AjaxResult procurementOfficeWillManipulateTotal();
  187. /**
  188. * 统计分析-采购项目信息统计
  189. *
  190. * @param pmDemandReqVo
  191. * @return
  192. */
  193. Map<String, Integer> purchaseProjectStatistical(PmDemandReqVo pmDemandReqVo);
  194. /**
  195. * 统计分析-按照项目属性统计所有的项目
  196. *
  197. * @param
  198. * @return
  199. */
  200. List<StatisticalChartsResVo> countByProjectAttr();
  201. /**
  202. * 统计分析-按照采购方式统计所有的项目
  203. *
  204. * @param
  205. * @return
  206. */
  207. List<StatisticalChartsResVo> countByPurchaseMode();
  208. /**
  209. * 统计分析-按照概算金额统计所有的项目
  210. *
  211. * @param
  212. * @return
  213. */
  214. List<StatisticalChartsResVo> countByEvaluation(PmDemandReqVo pmDemandReqVo);
  215. /**
  216. * 执行滞后采购项目情况
  217. *
  218. * @return
  219. */
  220. AjaxResult countProjectExceed(PmDemandReqVo pmDemandReqVo);
  221. /**
  222. * 统计不同时间维度的逾期项目
  223. *
  224. * @return
  225. */
  226. AjaxResult exceedAnalysis(PmDemandReqVo pmDemandReqVo);
  227. /**
  228. * 滞后项目时长分析
  229. *
  230. * @return
  231. */
  232. AjaxResult exceedMarketAnalysis(PmDemandReqVo pmDemandReqVo);
  233. /**
  234. * 今年已完成数量
  235. *
  236. * @return
  237. */
  238. AjaxResult countMajorProject(PmDemandReqVo pmDemandReqVo);
  239. /**
  240. * 任务数量趋势分析
  241. *
  242. * @return
  243. */
  244. AjaxResult taskQuantityAnalysis(PmDemandReqVo pmDemandReqVo);
  245. /**
  246. * 各阶段采购任务数量分布
  247. *
  248. * @return
  249. */
  250. AjaxResult countEveryStatusNum(PmDemandReqVo pmDemandReqVo);
  251. /**
  252. * 通过计划ID查询项目
  253. *
  254. * @param planId
  255. * @return
  256. */
  257. PmDemand selectByPlanId(Long planId);
  258. /**
  259. * 采购项目--项目数量分析
  260. * @param pmDemandReqVo
  261. * @return
  262. */
  263. Map<String, Integer> purchaseProjectNumber(PmDemandReqVo pmDemandReqVo);
  264. /**
  265. * 项目执行进度统计
  266. * @param pmDemandReqVo
  267. * @return
  268. */
  269. Map<String, Integer> purchaseProjectExecute(PmDemandReqVo pmDemandReqVo);
  270. /**
  271. * 已完成项目数量统计
  272. *
  273. * @param pmDemandReqVo
  274. * @return
  275. */
  276. List<Map<String, Integer>> purchaseProjectCompleteNumber(PmDemandReqVo pmDemandReqVo);
  277. /**
  278. * 已完成采购任务数量统计
  279. *
  280. * @param pmDemandReqVo
  281. * @return
  282. */
  283. List<Map<String, Integer>> purchaseTaskFinish(PmDemandReqVo pmDemandReqVo);
  284. /**
  285. * 各阶段项目数量分布
  286. *
  287. * @param pmDemandReqVo
  288. * @return
  289. */
  290. List<Map<String, String>> purchaseProjectDistribution(PmDemandReqVo pmDemandReqVo);
  291. /**
  292. * 项目数量分析
  293. * @param pmDemandReqVo
  294. * @return
  295. */
  296. List<Map<String, String>> purchaseProjectNumberAnalysis(PmDemandReqVo pmDemandReqVo);
  297. }