DzCampusController.java 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. package com.ruoyi.web.controller.dz;
  2. import cn.hutool.core.collection.CollectionUtil;
  3. import com.ruoyi.common.annotation.Log;
  4. import com.ruoyi.common.core.controller.BaseController;
  5. import com.ruoyi.common.core.domain.AjaxResult;
  6. import com.ruoyi.common.core.page.TableDataInfo;
  7. import com.ruoyi.common.enums.BusinessType;
  8. import com.ruoyi.common.utils.SecurityUtils;
  9. import com.ruoyi.common.utils.StringUtils;
  10. import com.ruoyi.common.utils.poi.ExcelUtil;
  11. import com.ruoyi.dz.domain.DzSchool;
  12. import com.ruoyi.dz.service.IDzSchoolService;
  13. import com.ruoyi.enums.UserTypeEnum;
  14. import com.ruoyi.system.domain.SysArea;
  15. import com.ruoyi.system.service.ISysAreaService;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.security.access.prepost.PreAuthorize;
  18. import org.springframework.web.bind.annotation.*;
  19. import javax.servlet.http.HttpServletResponse;
  20. import java.util.List;
  21. import java.util.Map;
  22. import java.util.Objects;
  23. import java.util.stream.Collectors;
  24. import java.util.stream.Stream;
  25. /**
  26. * 机构校区Controller
  27. *
  28. * @author ruoyi
  29. * @date 2025-09-12
  30. */
  31. @RestController
  32. @RequestMapping("/dz/campus")
  33. public class DzCampusController extends BaseController
  34. {
  35. @Autowired
  36. private IDzSchoolService dzSchoolService;
  37. @Autowired
  38. private ISysAreaService areaService;
  39. /**
  40. * 查询机构校区列表
  41. */
  42. @PreAuthorize("@ss.hasPermi('dz:campus:list')")
  43. @GetMapping("/list")
  44. public TableDataInfo list(DzSchool dzSchool)
  45. {
  46. dzSchool.setCampus(true);
  47. if(!UserTypeEnum.isSys(SecurityUtils.getLoginUser().getUser().getUserType())) {
  48. dzSchool.setDeptId(SecurityUtils.getDeptId());
  49. }
  50. startPage();
  51. List<DzSchool> list= dzSchoolService.selectDzSchoolList(dzSchool);
  52. //处理省市区
  53. List<Long> areaIds = list.stream()
  54. .flatMap(school -> Stream.of(
  55. school.getPro(),school.getCity(),school.getArea()
  56. ))
  57. .filter(Objects::nonNull).distinct().collect(Collectors.toList());
  58. if (CollectionUtil.isNotEmpty(areaIds)){
  59. Map<Long, SysArea> areaMap = areaService.selectSysAreaListByIds(areaIds)
  60. .stream().collect(Collectors.toMap(SysArea::getAreaId,area -> area));
  61. list.forEach(school -> {
  62. StringBuilder proCityAreaName = new StringBuilder();
  63. if (null!=school.getPro()&&areaMap.containsKey(school.getPro())){
  64. proCityAreaName.append(areaMap.get(school.getPro()).getAreaName());
  65. }
  66. if (null!=school.getCity()&&areaMap.containsKey(school.getCity())){
  67. proCityAreaName.append(areaMap.get(school.getCity()).getAreaName());
  68. }
  69. if (null!=school.getArea()&&areaMap.containsKey(school.getArea())){
  70. proCityAreaName.append(areaMap.get(school.getArea()).getAreaName());
  71. }
  72. if (StringUtils.isNotEmpty(proCityAreaName.toString())){
  73. school.setProCityAreaName(proCityAreaName.toString());
  74. }
  75. });
  76. }
  77. return getDataTable(list);
  78. }
  79. /**
  80. * 导出机构校区列表
  81. */
  82. @PreAuthorize("@ss.hasPermi('dz:campus:export')")
  83. @Log(title = "机构校区", businessType = BusinessType.EXPORT)
  84. @PostMapping("/export")
  85. public void export(HttpServletResponse response, DzSchool dzSchool)
  86. {
  87. dzSchool.setCampus(true);
  88. if(!UserTypeEnum.isSys(SecurityUtils.getLoginUser().getUser().getUserType())) {
  89. dzSchool.setDeptId(SecurityUtils.getDeptId());
  90. }
  91. List<DzSchool> list = dzSchoolService.selectDzSchoolList(dzSchool);
  92. ExcelUtil<DzSchool> util = new ExcelUtil<DzSchool>(DzSchool.class);
  93. util.exportExcel(response, list, "机构校区数据");
  94. }
  95. /**
  96. * 获取机构校区详细信息
  97. */
  98. @PreAuthorize("@ss.hasPermi('dz:campus:query')")
  99. @GetMapping(value = "/{id}")
  100. public AjaxResult getInfo(@PathVariable("id") Long id)
  101. {
  102. return success(dzSchoolService.selectDzSchoolById(id));
  103. }
  104. /**
  105. * 新增机构校区
  106. */
  107. @PreAuthorize("@ss.hasPermi('dz:campus:add')")
  108. @Log(title = "机构校区", businessType = BusinessType.INSERT)
  109. @PostMapping
  110. public AjaxResult add(@RequestBody DzSchool dzSchool)
  111. {
  112. if(null == dzSchool.getDeptId()) {
  113. dzSchool.setDeptId(SecurityUtils.getDeptId());
  114. }
  115. return toAjax(dzSchoolService.insertDzSchool(dzSchool));
  116. }
  117. /**
  118. * 修改机构校区
  119. */
  120. @PreAuthorize("@ss.hasPermi('dz:campus:edit')")
  121. @Log(title = "机构校区", businessType = BusinessType.UPDATE)
  122. @PutMapping
  123. public AjaxResult edit(@RequestBody DzSchool dzSchool)
  124. {
  125. dzSchool.setDeptId(null);
  126. return toAjax(dzSchoolService.updateDzSchool(dzSchool));
  127. }
  128. /**
  129. * 删除机构校区
  130. */
  131. @PreAuthorize("@ss.hasPermi('dz:campus:remove')")
  132. @Log(title = "机构校区", businessType = BusinessType.DELETE)
  133. @DeleteMapping("/{ids}")
  134. public AjaxResult remove(@PathVariable Long[] ids)
  135. {
  136. return toAjax(dzSchoolService.deleteDzSchoolByIds(ids));
  137. }
  138. }