TerminationController.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  1. package com.ruoyi.web.controller.project;
  2. import com.ruoyi.common.annotation.Log;
  3. import com.ruoyi.common.core.controller.BaseController;
  4. import com.ruoyi.common.core.domain.AjaxResult;
  5. import com.ruoyi.common.core.page.TableDataInfo;
  6. import com.ruoyi.common.enums.BusinessType;
  7. import com.ruoyi.common.utils.StringUtils;
  8. import com.ruoyi.common.utils.poi.ExcelUtil;
  9. import com.ruoyi.flowable.service.IInvestmentOpportunityService;
  10. import com.ruoyi.flowable.service.ITerminationService;
  11. import com.ruoyi.invest.domain.*;
  12. import com.ruoyi.invest.domain.dto.TerminationDto;
  13. import com.ruoyi.invest.domain.vo.ProjectTerminationVo;
  14. import com.ruoyi.system.service.ISysDictDataService;
  15. import io.swagger.annotations.Api;
  16. import io.swagger.annotations.ApiOperation;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.security.access.prepost.PreAuthorize;
  19. import org.springframework.web.bind.annotation.*;
  20. import javax.servlet.http.HttpServletRequest;
  21. import javax.servlet.http.HttpServletResponse;
  22. import java.util.List;
  23. import java.util.stream.Collectors;
  24. /**
  25. * 项目立项Controller
  26. *
  27. * @author ruoyi
  28. * @date 2025-08-08
  29. */
  30. @Api(tags = "项目终止")
  31. @RestController
  32. @RequestMapping("/project/termination")
  33. public class TerminationController extends BaseController {
  34. @Autowired
  35. private ITerminationService terminationService;
  36. @Autowired
  37. private IInvestmentOpportunityService investmentOpportunityService;
  38. @Autowired
  39. private ISysDictDataService dictDataService;
  40. //所有项目终止流程列表
  41. @ApiOperation("所有项目终止流程列表")
  42. @GetMapping("/listAll")
  43. public TableDataInfo listAll(TProjectTermination tProjectTermination)
  44. {
  45. startPage();
  46. List<ProjectTerminationVo> list=terminationService.selectAllTerminationList(tProjectTermination);
  47. return getDataTable(list);
  48. }
  49. /**
  50. * 导出所有项目终止流程列表
  51. */
  52. @ApiOperation("导出所有项目终止流程列表")
  53. @Log(title = "所有项目终止流程列表", businessType = BusinessType.EXPORT)
  54. @PostMapping("/export")
  55. public void export(HttpServletResponse response, TProjectTermination tProjectTermination)
  56. {
  57. List<ProjectTerminationVo> list=terminationService.selectAllTerminationList(tProjectTermination)
  58. .stream().map(n -> {
  59. if(StringUtils.isNotEmpty(n.getIndustry()))n.setIndustry(dictDataService.selectDictLabel("CUSTOMER_TRADE",n.getIndustry()));
  60. if(StringUtils.isNotEmpty(n.getProjectStage()))n.setProjectStage(dictDataService.selectDictLabel("PROJECT_STAGE",n.getProjectStage()));
  61. if(StringUtils.isNotEmpty(n.getProjectState()))n.setProjectState(dictDataService.selectDictLabel("PROJECT_STATE",n.getProjectState()));
  62. if(StringUtils.isNotEmpty(n.getProjectStatus())){
  63. if("0".equals(n.getProjectStatus())){
  64. n.setProjectStatus("正常");
  65. }else if("1".equals(n.getProjectStatus())){
  66. n.setProjectStatus("终止");
  67. }else if("2".equals(n.getProjectStatus())){
  68. n.setProjectStatus("观望");
  69. }
  70. }
  71. return n;
  72. })
  73. .collect(Collectors.toList());
  74. ExcelUtil<ProjectTerminationVo> util = new ExcelUtil<ProjectTerminationVo>(ProjectTerminationVo.class);
  75. util.exportExcel(response, list, "所有项目终止流程数据");
  76. }
  77. /**
  78. * 查询可申请项目终止列表
  79. */
  80. @ApiOperation("查询可申请项目终止列表")
  81. @GetMapping("/applicableList")
  82. public TableDataInfo applicableList(TProjectPool tProjectPool)
  83. {
  84. startPage();
  85. //tProjectPool.setProjectStage("5");
  86. tProjectPool.setDelFlag("0");//
  87. tProjectPool.setStatus(3);//项目机会流程状态为审批通过
  88. tProjectPool.setProjectStatus(tProjectPool.getProjectStatus());//观望
  89. List<TProjectPool> list = investmentOpportunityService.selectApplicableProjectList(tProjectPool);
  90. return getDataTable(list);
  91. }
  92. //我的待办任务
  93. @ApiOperation("我的待办任务列表")
  94. @GetMapping("/getMyTaskList")
  95. public TableDataInfo getMyTaskList(TProjectTermination tProjectTermination)
  96. {
  97. startPage();
  98. //tProjectPool.setProjectStage("1");
  99. List<ProjectTerminationVo> list=terminationService.getMyTaskList(getUserId().toString(),tProjectTermination);
  100. return getDataTable(list);
  101. }
  102. //我的已办任务
  103. @ApiOperation("我的已办任务列表")
  104. @GetMapping("/getMyDoneTaskList")
  105. public TableDataInfo getMyDoneTaskList(TProjectTermination tProjectTermination)
  106. {
  107. startPage();
  108. //tProjectPool.setProjectStage("1");
  109. List<ProjectTerminationVo> list=terminationService.getMyDoneTaskList(getUserId().toString(),tProjectTermination);
  110. return getDataTable(list);
  111. }
  112. //我的待办任务
  113. @ApiOperation("我的单据列表")
  114. @GetMapping("/getMyList")
  115. public TableDataInfo getMyList(TProjectTermination tProjectTermination)
  116. {
  117. startPage();
  118. //tProjectPool.setProjectStage("1");
  119. List<ProjectTerminationVo> list=terminationService.getMyList(getUserId().toString(),tProjectTermination);
  120. return getDataTable(list);
  121. }
  122. /**
  123. * 导出我的已办任务列表
  124. */
  125. @ApiOperation("导出我的待办任务列表")
  126. @Log(title = "我的待办任务列表", businessType = BusinessType.EXPORT)
  127. @PostMapping("/exportMyTask")
  128. public void exportMyTask(HttpServletResponse response, TProjectTermination tProjectTermination)
  129. {
  130. List<ProjectTerminationVo> list=terminationService.getMyTaskList(getUserId().toString(),tProjectTermination)
  131. .stream().map(n -> {
  132. if(StringUtils.isNotEmpty(n.getIndustry()))n.setIndustry(dictDataService.selectDictLabel("CUSTOMER_TRADE",n.getIndustry()));
  133. if(StringUtils.isNotEmpty(n.getProjectStage()))n.setProjectStage(dictDataService.selectDictLabel("PROJECT_STAGE",n.getProjectStage()));
  134. if(StringUtils.isNotEmpty(n.getProjectState()))n.setProjectState(dictDataService.selectDictLabel("PROJECT_STATE",n.getProjectState()));
  135. if(StringUtils.isNotEmpty(n.getProjectStatus())){
  136. if("0".equals(n.getProjectStatus())){
  137. n.setProjectStatus("正常");
  138. }else if("1".equals(n.getProjectStatus())){
  139. n.setProjectStatus("终止");
  140. }else if("2".equals(n.getProjectStatus())){
  141. n.setProjectStatus("观望");
  142. }
  143. }
  144. return n;
  145. })
  146. .collect(Collectors.toList());
  147. ExcelUtil<ProjectTerminationVo> util = new ExcelUtil<ProjectTerminationVo>(ProjectTerminationVo.class);
  148. util.exportExcel(response, list, "我的待办任务数据");
  149. }
  150. /**
  151. * 导出我的已办任务列表
  152. */
  153. @ApiOperation("导出我的已办任务列表")
  154. @Log(title = "我的已办任务列表", businessType = BusinessType.EXPORT)
  155. @PostMapping("/exportMyDoneTask")
  156. public void exportMyDoneTask(HttpServletResponse response, TProjectTermination tProjectTermination)
  157. {
  158. List<ProjectTerminationVo> list=terminationService.getMyDoneTaskList(getUserId().toString(),tProjectTermination)
  159. .stream().map(n -> {
  160. if(StringUtils.isNotEmpty(n.getIndustry()))n.setIndustry(dictDataService.selectDictLabel("CUSTOMER_TRADE",n.getIndustry()));
  161. if(StringUtils.isNotEmpty(n.getProjectStage()))n.setProjectStage(dictDataService.selectDictLabel("PROJECT_STAGE",n.getProjectStage()));
  162. if(StringUtils.isNotEmpty(n.getProjectState()))n.setProjectState(dictDataService.selectDictLabel("PROJECT_STATE",n.getProjectState()));
  163. if(StringUtils.isNotEmpty(n.getProjectStatus())){
  164. if("0".equals(n.getProjectStatus())){
  165. n.setProjectStatus("正常");
  166. }else if("1".equals(n.getProjectStatus())){
  167. n.setProjectStatus("终止");
  168. }else if("2".equals(n.getProjectStatus())){
  169. n.setProjectStatus("观望");
  170. }
  171. }
  172. return n;
  173. })
  174. .collect(Collectors.toList());
  175. ExcelUtil<ProjectTerminationVo> util = new ExcelUtil<ProjectTerminationVo>(ProjectTerminationVo.class);
  176. util.exportExcel(response, list, "我的已办任务数据");
  177. }
  178. /**
  179. * 导出我的单据列表
  180. */
  181. @ApiOperation("导出我的单据列表")
  182. @Log(title = "我的单据列表", businessType = BusinessType.EXPORT)
  183. @PostMapping("/exportMy")
  184. public void exportMy(HttpServletResponse response, TProjectTermination tProjectTermination)
  185. {
  186. List<ProjectTerminationVo> list=terminationService.getMyList(getUserId().toString(),tProjectTermination)
  187. .stream().map(n -> {
  188. if(StringUtils.isNotEmpty(n.getIndustry()))n.setIndustry(dictDataService.selectDictLabel("CUSTOMER_TRADE",n.getIndustry()));
  189. if(StringUtils.isNotEmpty(n.getProjectStage()))n.setProjectStage(dictDataService.selectDictLabel("PROJECT_STAGE",n.getProjectStage()));
  190. if(StringUtils.isNotEmpty(n.getProjectState()))n.setProjectState(dictDataService.selectDictLabel("PROJECT_STATE",n.getProjectState()));
  191. if(StringUtils.isNotEmpty(n.getProjectStatus())){
  192. if("0".equals(n.getProjectStatus())){
  193. n.setProjectStatus("正常");
  194. }else if("1".equals(n.getProjectStatus())){
  195. n.setProjectStatus("终止");
  196. }else if("2".equals(n.getProjectStatus())){
  197. n.setProjectStatus("观望");
  198. }
  199. }
  200. return n;
  201. })
  202. .collect(Collectors.toList());
  203. ExcelUtil<ProjectTerminationVo> util = new ExcelUtil<ProjectTerminationVo>(ProjectTerminationVo.class);
  204. util.exportExcel(response, list, "我的单据数据");
  205. }
  206. /**
  207. * 获取项目池详细信息
  208. */
  209. @ApiOperation("获取项目池详细信息")
  210. @GetMapping(value = "/{pInstId}")
  211. public AjaxResult getInfo(@PathVariable("pInstId") String pInstId)
  212. {
  213. return success(terminationService.selectTProjectTerminationByProcInstId(pInstId));
  214. }
  215. //发起流程
  216. @ApiOperation(value = "投资机会申请发起流程")
  217. @Log(title = "发起流程", businessType = BusinessType.INSERT)
  218. @PostMapping("/start")
  219. public AjaxResult start(@RequestBody TProjectTermination tProjectTermination) {
  220. //return terminationService.set
  221. return terminationService.start(tProjectTermination);
  222. }
  223. @ApiOperation(value = "审批任务")
  224. @PutMapping(value = "/complete")
  225. public AjaxResult complete(@RequestBody TerminationDto dto, HttpServletRequest request) {
  226. // 从 DTO 中拆分参数
  227. TProjectTermination tProjectTermination= dto.getProjectTermination();
  228. FlowBaseInfo flowBaseInfo= dto.getFlowBaseInfo();
  229. return terminationService.complete(tProjectTermination,flowBaseInfo,request);
  230. }
  231. /**
  232. * 获取通过流程id会议记录详细信息 (会议投决)
  233. */
  234. @ApiOperation("获取会议记录详细信息")
  235. @GetMapping(value = "/getMeetingInfo/{pInstId}")
  236. public AjaxResult getMeetingInfo(@PathVariable("pInstId") String pInstId) {
  237. return success(terminationService.selectTProjectMeetingByProcInstId(pInstId));
  238. }
  239. /**
  240. * 根据流程Id查询汇总分数和平均分数 (总裁室)
  241. */
  242. @ApiOperation("根据会议ID查询汇总分数和平均分数")
  243. @GetMapping(value = "/getSumScore/{pInstId}")
  244. public AjaxResult getSumScore(@PathVariable("pInstId") String pInstId)
  245. {
  246. if (StringUtils.isEmpty(pInstId))
  247. {
  248. return error("查询打分数据'" + getNickName() + "'失败,请选择会议!");
  249. }
  250. return success(terminationService.selectSumScore(pInstId));
  251. }
  252. /**
  253. * 根据项目ID获取最新终止申请
  254. */
  255. @ApiOperation("根据项目ID获取最新立项申请")
  256. @GetMapping(value = "/listProjectPoolIdNew")
  257. public AjaxResult listProjectPoolIdNew(String projectPoolId)
  258. {
  259. return success(terminationService.listProjectPoolIdNew(projectPoolId));
  260. }
  261. }