MetaTaskNewController.java 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. package com.izouma.nineth.web;
  2. import com.izouma.nineth.domain.MetaTaskBind;
  3. import com.izouma.nineth.domain.MetaTaskNew;
  4. import com.izouma.nineth.dto.PageQuery;
  5. import com.izouma.nineth.enums.MetaTaskType;
  6. import com.izouma.nineth.exception.BusinessException;
  7. import com.izouma.nineth.repo.MetaTaskBindRepo;
  8. import com.izouma.nineth.repo.MetaTaskNewRepo;
  9. import com.izouma.nineth.service.MetaTaskNewService;
  10. import com.izouma.nineth.utils.ObjUtils;
  11. import com.izouma.nineth.utils.excel.ExcelUtils;
  12. import lombok.AllArgsConstructor;
  13. import org.apache.commons.collections.CollectionUtils;
  14. import org.springframework.data.domain.Page;
  15. import org.springframework.web.bind.annotation.*;
  16. import javax.servlet.http.HttpServletResponse;
  17. import java.io.IOException;
  18. import java.util.List;
  19. @RestController
  20. @RequestMapping("/metaTaskNew")
  21. @AllArgsConstructor
  22. public class MetaTaskNewController extends BaseController {
  23. private MetaTaskNewService metaTaskNewService;
  24. private MetaTaskNewRepo metaTaskNewRepo;
  25. private MetaTaskBindRepo metaTaskBindRepo;
  26. //@PreAuthorize("hasRole('ADMIN')")
  27. @PostMapping("/save")
  28. public MetaTaskNew save(@RequestBody MetaTaskNew record) {
  29. if (record.getId() != null) {
  30. MetaTaskNew orig = metaTaskNewRepo.findById(record.getId()).orElseThrow(new BusinessException("无记录"));
  31. ObjUtils.merge(orig, record);
  32. MetaTaskNew save = metaTaskNewRepo.save(orig);
  33. saveMetaTaskBind(save.getId(), record);
  34. return save;
  35. }
  36. MetaTaskNew save = metaTaskNewRepo.save(record);
  37. saveMetaTaskBind(save.getId(), record);
  38. return save;
  39. }
  40. private void saveMetaTaskBind(Long taskId, MetaTaskNew record) {
  41. // 节点任务
  42. if (CollectionUtils.isNotEmpty(record.getMetaNodeTask())) {
  43. record.getMetaNodeTask().forEach(metaTaskBind -> {
  44. metaTaskBind.setTaskId(taskId);
  45. metaTaskBind.setType(MetaTaskType.NODE);
  46. });
  47. metaTaskBindRepo.saveAll(record.getMetaNodeTask());
  48. }
  49. // 支线任务
  50. if (CollectionUtils.isNotEmpty(record.getMetaBranchLineTask())) {
  51. record.getMetaBranchLineTask().forEach(metaTaskBind -> {
  52. metaTaskBind.setTaskId(taskId);
  53. metaTaskBind.setType(MetaTaskType.BRANCH_LINE);
  54. });
  55. metaTaskBindRepo.saveAll(record.getMetaBranchLineTask());
  56. }
  57. // 日常任务
  58. if (CollectionUtils.isNotEmpty(record.getMetaDailyTask())) {
  59. record.getMetaDailyTask().forEach(metaTaskBind -> {
  60. metaTaskBind.setTaskId(taskId);
  61. metaTaskBind.setType(MetaTaskType.DAILY);
  62. });
  63. metaTaskBindRepo.saveAll(record.getMetaDailyTask());
  64. }
  65. }
  66. //@PreAuthorize("hasRole('ADMIN')")
  67. @PostMapping("/all")
  68. public Page<MetaTaskNew> all(@RequestBody PageQuery pageQuery) {
  69. return metaTaskNewService.all(pageQuery);
  70. }
  71. @GetMapping("/get/{id}")
  72. public MetaTaskNew get(@PathVariable Long id) {
  73. MetaTaskNew metaTaskNew = metaTaskNewRepo.findById(id).orElseThrow(new BusinessException("无记录"));
  74. List<MetaTaskBind> metaNodeTask = metaTaskBindRepo.findByTaskIdAndTypeAndDel(metaTaskNew.getId(), MetaTaskType.NODE, false);
  75. if (CollectionUtils.isNotEmpty(metaNodeTask)) {
  76. metaTaskNew.setMetaNodeTask(metaNodeTask);
  77. }
  78. List<MetaTaskBind> metaBranchLineTask = metaTaskBindRepo.findByTaskIdAndTypeAndDel(metaTaskNew.getId(), MetaTaskType.BRANCH_LINE, false);
  79. if (CollectionUtils.isNotEmpty(metaBranchLineTask)) {
  80. metaTaskNew.setMetaBranchLineTask(metaBranchLineTask);
  81. }
  82. List<MetaTaskBind> metaDailyTask = metaTaskBindRepo.findByTaskIdAndTypeAndDel(metaTaskNew.getId(), MetaTaskType.DAILY, false);
  83. if (CollectionUtils.isNotEmpty(metaDailyTask)) {
  84. metaTaskNew.setMetaDailyTask(metaDailyTask);
  85. }
  86. return metaTaskNew;
  87. }
  88. @PostMapping("/del/{id}")
  89. public void del(@PathVariable Long id) {
  90. metaTaskNewRepo.softDelete(id);
  91. }
  92. @GetMapping("/excel")
  93. @ResponseBody
  94. public void excel(HttpServletResponse response, PageQuery pageQuery) throws IOException {
  95. List<MetaTaskNew> data = all(pageQuery).getContent();
  96. ExcelUtils.export(response, data);
  97. }
  98. }