TProjectContractController.java 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. package com.ruoyi.web.controller.invest;
  2. import java.util.List;
  3. import java.util.stream.Collectors;
  4. import javax.servlet.http.HttpServletResponse;
  5. import com.ruoyi.common.config.RuoYiConfig;
  6. import com.ruoyi.common.enums.FileType;
  7. import com.ruoyi.common.utils.file.FileUploadUtils;
  8. import com.ruoyi.common.utils.file.FileUtils;
  9. import com.ruoyi.common.utils.uuid.IdUtils;
  10. import com.ruoyi.framework.config.ServerConfig;
  11. import com.ruoyi.invest.domain.TProjectCirculation;
  12. import com.ruoyi.invest.service.ITProjectCirculationService;
  13. import com.ruoyi.system.service.ISysDictDataService;
  14. import com.ruoyi.tool.domain.TUnifyFile;
  15. import com.ruoyi.tool.service.ITUnifyFileService;
  16. import io.swagger.annotations.Api;
  17. import io.swagger.annotations.ApiOperation;
  18. import org.springframework.security.access.prepost.PreAuthorize;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.web.bind.annotation.GetMapping;
  21. import org.springframework.web.bind.annotation.PostMapping;
  22. import org.springframework.web.bind.annotation.PutMapping;
  23. import org.springframework.web.bind.annotation.DeleteMapping;
  24. import org.springframework.web.bind.annotation.PathVariable;
  25. import org.springframework.web.bind.annotation.RequestBody;
  26. import org.springframework.web.bind.annotation.RequestMapping;
  27. import org.springframework.web.bind.annotation.RestController;
  28. import com.ruoyi.common.annotation.Log;
  29. import com.ruoyi.common.core.controller.BaseController;
  30. import com.ruoyi.common.core.domain.AjaxResult;
  31. import com.ruoyi.common.enums.BusinessType;
  32. import com.ruoyi.invest.domain.TProjectContract;
  33. import com.ruoyi.invest.service.ITProjectContractService;
  34. import com.ruoyi.common.utils.poi.ExcelUtil;
  35. import com.ruoyi.common.core.page.TableDataInfo;
  36. import org.springframework.web.multipart.MultipartFile;
  37. /**
  38. * 合同管理Controller
  39. *
  40. * @author ruoyi
  41. * @date 2024-02-23
  42. */
  43. @Api(tags = "合同管理")
  44. @RestController
  45. @RequestMapping("/invest/contract")
  46. public class TProjectContractController extends BaseController
  47. {
  48. @Autowired
  49. private ITProjectContractService tProjectContractService;
  50. @Autowired
  51. private ITProjectCirculationService tProjectCirculationService;
  52. @Autowired
  53. private ITUnifyFileService tUnifyFileService;
  54. @Autowired
  55. private ISysDictDataService dictDataService;
  56. /**
  57. * 查询合同管理列表
  58. */
  59. @ApiOperation("查询合同管理列表")
  60. @PreAuthorize("@ss.hasPermi('invest:contract:list')")
  61. @GetMapping("/list")
  62. public TableDataInfo list(TProjectContract tProjectContract)
  63. {
  64. startPage();
  65. List<TProjectContract> list = tProjectContractService.selectTProjectContractList(tProjectContract);
  66. return getDataTable(list);
  67. }
  68. /**
  69. * 导出合同管理列表
  70. */
  71. @ApiOperation("导出合同管理列表")
  72. @PreAuthorize("@ss.hasPermi('invest:contract:export')")
  73. @Log(title = "合同管理", businessType = BusinessType.EXPORT)
  74. @PostMapping("/export")
  75. public void export(HttpServletResponse response, TProjectContract tProjectContract)
  76. {
  77. List<TProjectContract> list = tProjectContractService.selectTProjectContractList(tProjectContract)
  78. .stream().map(n -> {
  79. n.setProjectPoolId(n.gettProjectPool().getProjectName());
  80. n.setContractType(dictDataService.selectDictLabel("contract_type",n.getContractType()));
  81. n.setProjectStage(dictDataService.selectDictLabel("project_stage",n.getProjectStage()));
  82. return n;
  83. })
  84. .collect(Collectors.toList());
  85. ExcelUtil<TProjectContract> util = new ExcelUtil<TProjectContract>(TProjectContract.class);
  86. util.exportExcel(response, list, "合同管理数据");
  87. }
  88. /**
  89. * 获取合同管理详细信息
  90. */
  91. @ApiOperation("获取合同管理详细信息")
  92. @PreAuthorize("@ss.hasPermi('invest:contract:query')")
  93. @GetMapping(value = "/{id}")
  94. public AjaxResult getInfo(@PathVariable("id") String id)
  95. {
  96. return success(tProjectContractService.selectTProjectContractById(id));
  97. }
  98. /**
  99. * 新增合同管理
  100. */
  101. @ApiOperation("新增合同管理")
  102. @PreAuthorize("@ss.hasPermi('invest:contract:add')")
  103. @Log(title = "合同管理", businessType = BusinessType.INSERT)
  104. @PostMapping
  105. public AjaxResult add(@RequestBody TProjectContract tProjectContract)
  106. {
  107. tProjectContract.setId(IdUtils.fastSimpleUUID());
  108. tProjectContract.setCreateBy(getNickName());
  109. // todo 保存附件信息
  110. List<TUnifyFile> tUnifyFileList = tProjectContract.getListFile();
  111. if(null != tUnifyFileList && !tUnifyFileList.isEmpty()){
  112. for (TUnifyFile tUnifyFile:
  113. tUnifyFileList) {
  114. tUnifyFile.setFileId(tProjectContract.getProjectPoolId());
  115. tUnifyFile.setFileBusinessId(tProjectContract.getId());//合同ID
  116. tUnifyFile.setUploadType(String.valueOf(FileType.CONTRACT.ordinal()));//文件类型:合同
  117. tUnifyFile.setCreateBy(getNickName());
  118. tUnifyFileService.insertTUnifyFile(tUnifyFile);
  119. }
  120. }
  121. // todo 增加合同创建记录
  122. TProjectCirculation tProjectCirculation = new TProjectCirculation();
  123. tProjectCirculation.setProjectPoolId(tProjectContract.getProjectPoolId());
  124. tProjectCirculation.setStageName(tProjectContract.getContractName()+"(合同)");
  125. tProjectCirculation.setCreateBy(getNickName());
  126. tProjectCirculationService.insertTProjectCirculation(tProjectCirculation);
  127. return toAjax(tProjectContractService.insertTProjectContract(tProjectContract));
  128. }
  129. /**
  130. * 修改合同管理
  131. */
  132. @ApiOperation("修改合同管理")
  133. @PreAuthorize("@ss.hasPermi('invest:contract:edit')")
  134. @Log(title = "合同管理", businessType = BusinessType.UPDATE)
  135. @PutMapping
  136. public AjaxResult edit(@RequestBody TProjectContract tProjectContract)
  137. {
  138. // todo 保存附件信息
  139. List<TUnifyFile> tUnifyFileList = tProjectContract.getListFile();
  140. if(null != tUnifyFileList && !tUnifyFileList.isEmpty()){
  141. for (TUnifyFile tUnifyFile:
  142. tUnifyFileList) {
  143. if(tUnifyFile.getId() == null){
  144. tUnifyFile.setFileId(tProjectContract.getProjectPoolId());
  145. tUnifyFile.setFileBusinessId(tProjectContract.getId());//合同ID
  146. tUnifyFile.setUploadType(String.valueOf(FileType.CONTRACT.ordinal()));//文件类型:合同
  147. tUnifyFile.setCreateBy(getNickName());
  148. tUnifyFileService.insertTUnifyFile(tUnifyFile);
  149. }
  150. }
  151. }
  152. return toAjax(tProjectContractService.updateTProjectContract(tProjectContract));
  153. }
  154. /**
  155. * 删除合同管理
  156. */
  157. @ApiOperation("删除合同管理")
  158. @PreAuthorize("@ss.hasPermi('invest:contract:remove')")
  159. @Log(title = "合同管理", businessType = BusinessType.DELETE)
  160. @DeleteMapping("/{ids}")
  161. public AjaxResult remove(@PathVariable String[] ids)
  162. {
  163. //删除附件
  164. tUnifyFileService.updateTUnifyFileBusinessIds(ids);
  165. return toAjax(tProjectContractService.deleteTProjectContractByIds(ids));
  166. }
  167. }