IPmDemandService.java 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418
  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.StatisticalChartsResVo;
  10. import com.ozs.system.domain.SysFileRef;
  11. import java.util.List;
  12. import java.util.Map;
  13. /**
  14. * 采购需求Service接口
  15. *
  16. * @author ruoyi
  17. * @date 2023-01-16
  18. */
  19. public interface IPmDemandService extends IService<PmDemand> {
  20. /**
  21. * 查询采购需求
  22. *
  23. * @param demandId 采购需求主键
  24. * @return 采购需求
  25. */
  26. PmDemandResVo selectPmDemandByDemandId(Long demandId, String detailType);
  27. /**
  28. * 查询采购需求列表
  29. *
  30. * @param pmDemandReqVo 采购需求
  31. * @return 采购需求集合
  32. */
  33. IPage<PmDemandResVo> selectPmDemandList(PmDemandReqVo pmDemandReqVo, int reqType);
  34. /**
  35. * 需求建档
  36. *
  37. * @param pmBookBuildingReqVo 需求建档
  38. * @return 结果
  39. */
  40. boolean bookBuilding(PmBookBuildingReqVo pmBookBuildingReqVo) throws Exception;
  41. /**
  42. * 提交采购需求
  43. *
  44. * @param pmDemandReqVo
  45. * @return 结果
  46. */
  47. boolean commit(PmDemandReqVo pmDemandReqVo);
  48. /**
  49. * 查看流程图
  50. *
  51. * @param demandId 采购需求主键
  52. * @return 采购需求
  53. */
  54. Object viewFlowChart(Long demandId);
  55. /**
  56. * 审核采购需求通过
  57. *
  58. * @param pmDemandReqVo
  59. * @return 结果
  60. */
  61. boolean reviewTo(PmDemandReqVo pmDemandReqVo);
  62. /**
  63. * 审核采购需求退回
  64. *
  65. * @param pmDemandReqVo
  66. * @return 结果
  67. */
  68. boolean reviewReturn(PmDemandReqVo pmDemandReqVo);
  69. /**
  70. * 下达任务
  71. *
  72. * @param pmDemandReqVo
  73. * @return 结果
  74. */
  75. boolean releaseTask(PmDemandReqVo pmDemandReqVo);
  76. boolean uploadFile(Long redId, Integer fileType, List<SysFileRef> sysFileRefs, String upateBy, boolean delOld);
  77. boolean uploadFile(Long redId, Integer fileType, List<SysFileRef> sysFileRefs, String upateBy);
  78. boolean insertPmReleaseAnnouncement(PmReleaseAnnouncementReqVo pmReleaseAnnouncementReqVo) throws Exception;
  79. boolean insertExpertBatch(PmBaseExpertFillReqVo pmBaseExpertFillReqVo) throws Exception;
  80. boolean extractExpertBatch(PmBaseExpertExtractReqVo pmBaseExpertExtractReqVo) throws Exception;
  81. boolean insertBidOpeningBatch(PmBidOpeningFillReqVo pmBidOpeningFillReqVo) throws Exception;
  82. boolean insertPmBidWinning(PmBidWinningReqVo pmBidWinningReqVo) throws Exception;
  83. boolean updatePmBidWinning(PmBidWinningReqVo pmBidWinningReqVo) throws Exception;
  84. boolean insertPmBidFailure(PmBidFailureReqVo pmBidFailureReqVo) throws Exception;
  85. boolean insertContractInfo(PmContractInfoReqVo pmContractInfoReqVo) throws Exception;
  86. boolean insertProjectConstruction(PmProjectConstructionReqVo pmProjectConstructionReqVo) throws Exception;
  87. /**
  88. * 更新需求预警状态
  89. *
  90. * @param demnadId
  91. * @return
  92. */
  93. void updateDemandWarnStatus(Long demnadId);
  94. /**
  95. * 通过需求ID列表 查询采购执行列表 sunhh
  96. *
  97. * @param demandIdList
  98. * @return
  99. */
  100. List<PmDemand> selectByDemandIdList(List<Integer> demandIdList);
  101. /**
  102. * 专家库--查询抽取专家列表 非必传条件:专家名称,开始结束时间 sunhh
  103. *
  104. * @param baseExpertVo
  105. * @return
  106. */
  107. List<PmDemand> selectExtractionExpert(BaseExpertVo baseExpertVo);
  108. /**
  109. * 查询需求单位首页待办事项(需求待提交)
  110. *
  111. * @return
  112. */
  113. List<PmDemand> demandWaitCommit();
  114. /**
  115. * 查询需求单位首页待办事项(合同待填制)
  116. *
  117. * @return
  118. */
  119. List<PmDemand> contractWaitFilled();
  120. /**
  121. * 查询需求单位首页待办事项(项目建设待完成)
  122. *
  123. * @return
  124. */
  125. List<PmDemand> projectWaitFinish();
  126. /**
  127. * 采购管理部门首页待办事项(需求待审核)
  128. *
  129. * @return
  130. */
  131. List<PmDemand> demandWaitExamine();
  132. /**
  133. * 采购管理部门首页待办事项(任务待下达)
  134. *
  135. * @return
  136. */
  137. List<PmDemand> taskWaitRelease();
  138. List<PmDemandResVo> purchaseDemandDocking();
  139. List<PmDemandResVo> expertFeedback();
  140. List<PmDemandResVo> procurementDocumentsReview();
  141. List<PmDemandResVo> procurementAnnouncement();
  142. List<PmDemandResVo> preBidQuery();
  143. List<PmDemandResVo> waitOpenBid();
  144. List<PmDemandResVo> bidResultAnnouncement();
  145. List<PmDemandResVo> wasteBidHandle();
  146. List<PmDemandResVo> postBidQuery();
  147. /**
  148. * 采购办首页待办事项(全部)
  149. *
  150. * @return
  151. */
  152. AjaxResult procurementOfficeWillManipulateTotal();
  153. /**
  154. * 采购办首页待办事项(数量)
  155. *
  156. * @return
  157. */
  158. AjaxResult procurementOfficeWillManipulateTotalNum();
  159. /**
  160. * 统计分析-采购项目信息统计
  161. *
  162. * @param pmDemandReqVo
  163. * @return
  164. */
  165. Map<String, Integer> purchaseProjectStatistical(PmDemandReqVo pmDemandReqVo);
  166. /**
  167. * 统计分析-按照项目属性统计所有的项目
  168. *
  169. * @param
  170. * @return
  171. */
  172. List<StatisticalChartsResVo> countByProjectAttr(PmDemandReqVo pmDemandReqVo);
  173. /**
  174. * 统计分析-按照项目属性统计所有的项目(任务待下达)
  175. *
  176. * @param
  177. * @return
  178. */
  179. List<StatisticalChartsResVo> countByTaskAttr(PmDemandReqVo pmDemandReqVo);
  180. /**
  181. * 统计分析-按照采购方式统计所有的项目
  182. *
  183. * @param
  184. * @return
  185. */
  186. List<StatisticalChartsResVo> countByPurchaseMode(PmDemandReqVo pmDemandReqVo);
  187. /**
  188. * 统计分析-按照概算金额统计所有的项目
  189. *
  190. * @param
  191. * @return
  192. */
  193. List<StatisticalChartsResVo> countByEvaluation(PmDemandReqVo pmDemandReqVo);
  194. /**
  195. * 执行滞后采购项目情况
  196. *
  197. * @return
  198. */
  199. AjaxResult countProjectExceed(PmDemandReqVo pmDemandReqVo);
  200. /**
  201. * 统计不同时间维度的逾期项目
  202. *
  203. * @return
  204. */
  205. AjaxResult exceedAnalysis(PmDemandReqVo pmDemandReqVo);
  206. /**
  207. * 滞后项目时长分析
  208. *
  209. * @return
  210. */
  211. AjaxResult exceedMarketAnalysis(PmDemandReqVo pmDemandReqVo);
  212. /**
  213. * 重大规划采购任务专项计划管理情况
  214. *
  215. * @return
  216. */
  217. AjaxResult countMajorProject(PmDemandReqVo pmDemandReqVo);
  218. /**
  219. * 重大规划采购任务专项计划管理情况(采购办)
  220. *
  221. * @return
  222. */
  223. AjaxResult countMajorProjectCGB(PmDemandReqVo pmDemandReqVo);
  224. /**
  225. * 任务数量趋势分析
  226. *
  227. * @return
  228. */
  229. AjaxResult taskQuantityAnalysis(PmDemandReqVo pmDemandReqVo);
  230. /**
  231. * 各阶段采购任务数量分布
  232. *
  233. * @return
  234. */
  235. AjaxResult countEveryStatusNum(PmDemandReqVo pmDemandReqVo);
  236. /**
  237. * 通过计划ID查询项目
  238. *
  239. * @param planId
  240. * @return
  241. */
  242. PmDemand selectByPlanId(Long planId);
  243. /**
  244. * 项目执行进度统计
  245. *
  246. * @param pmDemandReqVo
  247. * @return
  248. */
  249. List<StatisticalChartsResVo> purchaseProjectExecute(PmDemandReqVo pmDemandReqVo);
  250. /**
  251. * 已完成项目数量统计
  252. *
  253. * @param pmDemandReqVo
  254. * @return
  255. */
  256. List<Map<String, Integer>> purchaseProjectCompleteNumber(PmDemandReqVo pmDemandReqVo);
  257. /**
  258. * 已完成采购任务数量统计
  259. *
  260. * @param pmDemandReqVo
  261. * @return
  262. */
  263. List<Map<String, Integer>> purchaseTaskFinish(PmDemandReqVo pmDemandReqVo);
  264. /**
  265. * 项目数量分析
  266. *
  267. * @param pmDemandReqVo
  268. * @return
  269. */
  270. List<Map<String, String>> purchaseProjectNumberAnalysis(PmDemandReqVo pmDemandReqVo);
  271. /**
  272. * 需求提报情况
  273. *
  274. * @param pmDemandReqVo
  275. * @return
  276. */
  277. List<StatisticalChartsResVo> demandSubCount(PmDemandReqVo pmDemandReqVo);
  278. /**
  279. * 项目类型情况统计
  280. *
  281. * @param pmDemandReqVo
  282. * @return
  283. */
  284. List<StatisticalChartsResVo> countByProjectType(PmDemandReqVo pmDemandReqVo);
  285. /**
  286. * 需采转化情况统计
  287. *
  288. * @param pmDemandReqVo
  289. * @return
  290. */
  291. List<StatisticalChartsResVo> countByPurchaseChange(PmDemandReqVo pmDemandReqVo);
  292. /**
  293. * 滞后主要直接原因
  294. *
  295. * @param pmDemandReqVo
  296. * @return
  297. */
  298. AjaxResult exceedReason(PmDemandReqVo pmDemandReqVo);
  299. /**
  300. * 滞后直接原因
  301. *
  302. * @param pmDemandReqVo
  303. * @return
  304. */
  305. AjaxResult exceedReasonZj(PmDemandReqVo pmDemandReqVo);
  306. /**
  307. * 所属采购服务站数量
  308. *
  309. * @param pmDemandReqVo
  310. * @return
  311. */
  312. AjaxResult countPurTask(PmDemandReqVo pmDemandReqVo);
  313. /**
  314. * 新增执行滞后采购任务数量分析
  315. *
  316. * @param pmDemandReqVo
  317. * @return
  318. */
  319. AjaxResult countMajorProjectNumCGB(PmDemandReqVo pmDemandReqVo);
  320. /**
  321. * 滞留环节
  322. *
  323. * @param pmDemandReqVo
  324. * @return
  325. */
  326. AjaxResult exceedLink(PmDemandReqVo pmDemandReqVo);
  327. /**
  328. * 查到多个状态的结果后统一进行转换
  329. */
  330. public List<PmDemandResVo> listToVoList(List<PmDemand> demandList);
  331. /**
  332. * 查询不同状态下的项目数据的数量
  333. *
  334. * @param projectStatus
  335. * @return
  336. */
  337. public Integer getNumByStatus(String projectStatus);
  338. /**
  339. * 指定部门--以及子单位的超额项目
  340. *
  341. * @param queryZd
  342. * @return
  343. */
  344. public List<Long> isQueryZD(Integer queryZd);
  345. }