PmDemandController.java 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. package com.ozs.web.controller.pm;
  2. import com.baomidou.mybatisplus.core.metadata.IPage;
  3. import com.ozs.common.core.domain.model.LoginUser;
  4. import com.ozs.common.utils.StringUtils;
  5. import com.ozs.framework.web.service.TokenService;
  6. import com.ozs.pm.doman.PmDemand;
  7. import com.ozs.pm.doman.vo.requestVo.PmBookBuildingReqVo;
  8. import com.ozs.pm.doman.vo.requestVo.PmDemandReqVo;
  9. import com.ozs.pm.doman.vo.responseVo.PmDemandResVo;
  10. import com.ozs.pm.service.IPmDemandService;
  11. import io.swagger.annotations.Api;
  12. import io.swagger.annotations.ApiOperation;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.util.ObjectUtils;
  15. import org.springframework.web.bind.annotation.PostMapping;
  16. import org.springframework.web.bind.annotation.RequestBody;
  17. import org.springframework.web.bind.annotation.RequestMapping;
  18. import org.springframework.web.bind.annotation.RestController;
  19. import com.ozs.common.core.controller.BaseController;
  20. import com.ozs.common.core.domain.AjaxResult;
  21. import javax.servlet.http.HttpServletRequest;
  22. import javax.validation.constraints.NotEmpty;
  23. import java.util.Date;
  24. /**
  25. * 采购需求Controller
  26. *
  27. * @author ruoyi
  28. * @date 2023-01-16
  29. */
  30. @Api(tags = "采购需求")
  31. @RestController
  32. @RequestMapping("/pm/demand")
  33. public class PmDemandController extends BaseController {
  34. @Autowired
  35. private IPmDemandService pmDemandService;
  36. @Autowired
  37. private TokenService tokenService;
  38. /**
  39. * 查询采购需求列表
  40. */
  41. @ApiOperation(value = "查询采购需求列表", notes = "参数非必传")
  42. @PostMapping("/list")
  43. public AjaxResult list(@RequestBody PmDemandReqVo pmDemandReqVo) {
  44. IPage<PmDemandResVo> page = pmDemandService.selectPmDemandList(pmDemandReqVo,0);
  45. return success(page);
  46. }
  47. /**
  48. * 查看详情
  49. */
  50. @ApiOperation(value = "查看详情", notes = "必传demandId和详情类型(1项目计划,2需求建档,3任务下达,4中标信息,5合同信息,6建设情况),其他字段不传")
  51. @PostMapping("/view")
  52. public AjaxResult view(@RequestBody PmDemandReqVo pmDemandReqVo) {
  53. if(pmDemandReqVo.getDemandId() == null){
  54. return AjaxResult.error("demandId不能为空");
  55. }
  56. if(StringUtils.isEmpty(pmDemandReqVo.getDetailType())){
  57. return AjaxResult.error("详情的类型不能为空");
  58. }
  59. return success(pmDemandService.selectPmDemandByDemandId(pmDemandReqVo.getDemandId(),pmDemandReqVo.getDetailType()));
  60. }
  61. /**
  62. * 需求建档
  63. */
  64. @ApiOperation(value = "需求建档", notes = "必传demandId,根据项目类型必传pmDemandEngineeringResponseVo(3:工程类)、pmDemandEquipResponseVo(0:装备类)、pmDemandMaterialsResponseVo(1:物资类)、pmDemandServeResponseVo(2:服务类)其中之一")
  65. @PostMapping("/bookBuilding")
  66. public AjaxResult bookBuilding(@NotEmpty(message = "数据为空") @RequestBody PmBookBuildingReqVo pmBookBuildingReqVo, HttpServletRequest request) {
  67. try {
  68. if (pmBookBuildingReqVo.getDemandId() == null) {
  69. return AjaxResult.error("demandId不能为空");
  70. }
  71. PmDemand pmDemand = pmDemandService.getById(pmBookBuildingReqVo.getDemandId());
  72. if (ObjectUtils.isEmpty(pmDemand)) {
  73. return error("demandId参数错误");
  74. }
  75. LoginUser loginUser = tokenService.getLoginUser(request);
  76. pmBookBuildingReqVo.setCreateBy(String.valueOf(loginUser.getUserId()));
  77. pmBookBuildingReqVo.setCreateTime(new Date());
  78. pmBookBuildingReqVo.setUpdateBy(String.valueOf(loginUser.getUserId()));
  79. pmBookBuildingReqVo.setUpdateTime(pmBookBuildingReqVo.getCreateTime());
  80. return toAjax(pmDemandService.bookBuilding(pmBookBuildingReqVo));
  81. } catch (Exception e) {
  82. return error(e.getMessage());
  83. }
  84. }
  85. @ApiOperation(value = "提交采购需求", notes = "必传demandId,其他字段不传")
  86. @PostMapping("/commit")
  87. public AjaxResult commit(@RequestBody PmDemandReqVo pmDemandReqVo, HttpServletRequest request) {
  88. if(pmDemandReqVo.getDemandId() == null){
  89. return AjaxResult.error("demandId不能为空");
  90. }
  91. LoginUser loginUser = tokenService.getLoginUser(request);
  92. pmDemandReqVo.setUpdateBy(String.valueOf(loginUser.getUserId()));
  93. return toAjax(pmDemandService.commit(pmDemandReqVo));
  94. }
  95. /**
  96. * 查看流程图,获取当前阶段名字
  97. */
  98. @ApiOperation(value = "查看流程图,获取当前阶段名字", notes = "必传demandId,其他字段不传")
  99. @PostMapping("/viewFlowChart")
  100. public AjaxResult viewFlowChart(@RequestBody PmDemandReqVo pmRequestVo) {
  101. if(pmRequestVo.getDemandId() == null){
  102. return AjaxResult.error("demandId不能为空");
  103. }
  104. return success(pmDemandService.viewFlowChart(pmRequestVo.getDemandId()));
  105. }
  106. /**
  107. * 查看流程图,鼠标移到对应模块后,显示悬浮框提示
  108. */
  109. @ApiOperation(value = "查看流程图,鼠标移到对应模块后,显示悬浮框提示", notes = "必传demandId和模块名称,其他字段不传")
  110. @PostMapping("/getModuleInfo")
  111. public AjaxResult getModuleInfo(@RequestBody PmDemandReqVo pmRequestVo) {
  112. if(pmRequestVo.getDemandId() == null){
  113. return AjaxResult.error("demandId不能为空");
  114. }
  115. if(pmRequestVo.getModuleName() == null){
  116. return AjaxResult.error("模块名称不能为空");
  117. }
  118. return success(pmDemandService.getModuleInfo(pmRequestVo.getDemandId(),pmRequestVo.getModuleName()));
  119. }
  120. /**
  121. * 审核单位查询采购需求列表
  122. */
  123. @ApiOperation(value = "审核单位查询采购需求列表", notes = "参数非必传")
  124. @PostMapping("/examineList")
  125. public AjaxResult examineList(@RequestBody PmDemandReqVo pmDemandReqVo) {
  126. IPage<PmDemandResVo> page = pmDemandService.selectPmDemandList(pmDemandReqVo,1);
  127. return success(page);
  128. }
  129. @ApiOperation(value = "审核采购需求通过", notes = "必传demandId和上传附件,其他字段不传")
  130. @PostMapping("/reviewTo")
  131. public AjaxResult reviewTo(@RequestBody PmDemandReqVo pmDemandReqVo, HttpServletRequest request) {
  132. if(pmDemandReqVo.getDemandId() == null){
  133. return AjaxResult.error("demandId不能为空");
  134. }
  135. if(pmDemandReqVo.getSysFileRefs() == null || pmDemandReqVo.getSysFileRefs().size() == 0){
  136. return AjaxResult.error("上传附件不能为空");
  137. }
  138. LoginUser loginUser = tokenService.getLoginUser(request);
  139. pmDemandReqVo.setUpdateBy(String.valueOf(loginUser.getUserId()));
  140. return toAjax(pmDemandService.reviewTo(pmDemandReqVo));
  141. }
  142. @ApiOperation(value = "审核采购需求退回", notes = "必传demandId和退回原因,其他字段不传")
  143. @PostMapping("/reviewReturn")
  144. public AjaxResult reviewReturn(@RequestBody PmDemandReqVo pmDemandReqVo, HttpServletRequest request) {
  145. if(pmDemandReqVo.getDemandId() == null){
  146. return AjaxResult.error("demandId不能为空");
  147. }
  148. if(StringUtils.isEmpty(pmDemandReqVo.getRefuseReason())){
  149. return AjaxResult.error("退回原因不能为空");
  150. }
  151. LoginUser loginUser = tokenService.getLoginUser(request);
  152. pmDemandReqVo.setUpdateBy(String.valueOf(loginUser.getUserId()));
  153. return toAjax(pmDemandService.reviewReturn(pmDemandReqVo));
  154. }
  155. }