PmsAddProjectController.java 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. package com.goldenwater.web.controller.pms;
  2. import com.goldenwater.slgc.entity.efinder.DocFolder;
  3. import com.goldenwater.slgc.service.efinder.IDocFolderService;
  4. import com.goldenwater.slgc.service.pms.IPmsUserProjectService;
  5. import com.goldenwater.common.core.controller.BaseController;
  6. import com.goldenwater.common.core.domain.AjaxResult;
  7. import com.goldenwater.common.utils.StringUtils;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.web.bind.annotation.*;
  10. import io.swagger.v3.oas.annotations.Operation;
  11. import io.swagger.v3.oas.annotations.Parameter;
  12. import io.swagger.v3.oas.annotations.tags.Tag;
  13. import java.util.Date;
  14. import java.util.HashMap;
  15. import java.util.List;
  16. import java.util.Map;
  17. @Tag(name = "02.03 项目管理-新建项目", description = "新建项目相关接口")
  18. @RestController
  19. @RequestMapping("/pms/addProject")
  20. public class PmsAddProjectController extends BaseController {
  21. @Autowired
  22. private IDocFolderService docFolderService;
  23. @Autowired
  24. private IPmsUserProjectService userProjectService;
  25. /**
  26. * 新增项目文件夹,根据项目类型(zggcPrarms)创建对应子目录结构
  27. */
  28. @Operation(summary = "新增项目文件夹")
  29. @PostMapping("/add")
  30. public AjaxResult add(@Parameter(description = "文件夹ID") @RequestParam("folderId") String folderId,
  31. @Parameter(description = "项目名称") @RequestParam(value = "name", required = false) String name,
  32. @Parameter(description = "备注") @RequestParam(value = "note", required = false) String note,
  33. @Parameter(description = "直管工程参数") @RequestParam(value = "zggcPrarms", required = false) String zggcPrarms,
  34. @Parameter(description = "计划进度值") @RequestParam(value = "planValues", required = false) String planValues) {
  35. try {
  36. if (StringUtils.isBlank(name)) {
  37. name = "新建项目";
  38. }
  39. // 创建根文件夹
  40. DocFolder rootFolder = new DocFolder();
  41. rootFolder.setPid(Long.valueOf(folderId));
  42. rootFolder.setName(name);
  43. rootFolder.setDate(new Date());
  44. // 根据zggcPrarms设置fdCate
  45. if (StringUtils.isNotBlank(zggcPrarms)) {
  46. Map<String, String> fdCateMap = new HashMap<>();
  47. fdCateMap.put("1", "zggc");
  48. fdCateMap.put("2", "zdgc");
  49. fdCateMap.put("3", "gzzd");
  50. if (fdCateMap.containsKey(zggcPrarms)) {
  51. rootFolder.setFdCate(fdCateMap.get(zggcPrarms));
  52. }
  53. }
  54. docFolderService.insert(rootFolder);
  55. // rootFolder.id 已由 MyBatis useGeneratedKeys 回填
  56. // 根据 zggcPrarms 创建子文件夹
  57. if (StringUtils.isNotBlank(zggcPrarms)) {
  58. String[] subFolderNames;
  59. switch (zggcPrarms) {
  60. case "1": // 直管工程
  61. subFolderNames = new String[]{"工程概况", "程序管理", "质量管理", "安全管理", "验收管理", "监督检查", "多媒体资料管理"};
  62. break;
  63. case "2": // 重点工程
  64. subFolderNames = new String[]{"工程概况", "监督检查", "工程验收"};
  65. break;
  66. case "3": // 规章制度
  67. subFolderNames = new String[]{"制度概况"};
  68. break;
  69. default:
  70. subFolderNames = new String[0];
  71. }
  72. for (String subName : subFolderNames) {
  73. DocFolder subFolder = new DocFolder();
  74. subFolder.setPid(rootFolder.getId());
  75. subFolder.setName(subName);
  76. subFolder.setDate(new Date());
  77. // 子目录继承根目录分类,保证详情页文件夹树能按 fdCate 查询到
  78. subFolder.setFdCate(rootFolder.getFdCate());
  79. docFolderService.insert(subFolder);
  80. }
  81. }
  82. // 处理计划进度值
  83. if (StringUtils.isNotBlank(planValues)) {
  84. docFolderService.updatePlanValue(rootFolder.getId(), Integer.valueOf(planValues));
  85. }
  86. return success("恭喜您,新建成功");
  87. } catch (Exception e) {
  88. logger.error("新建项目失败", e);
  89. return error(e.getMessage());
  90. }
  91. }
  92. /**
  93. * 获取用户项目列表
  94. */
  95. @Operation(summary = "获取用户项目列表")
  96. @GetMapping("/getUserProject")
  97. public AjaxResult getUserProject() {
  98. List<Map<String, Object>> list = userProjectService.getUserProject();
  99. return success(list);
  100. }
  101. }