PbCseFeeobjupdateController.java 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. package com.xjrsoft.module.student.controller;
  2. import cn.dev33.satoken.annotation.SaCheckPermission;
  3. import cn.hutool.core.bean.BeanUtil;
  4. import com.alibaba.excel.EasyExcel;
  5. import com.alibaba.excel.support.ExcelTypeEnum;
  6. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  7. import com.baomidou.mybatisplus.core.metadata.IPage;
  8. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  9. import com.xjrsoft.common.annotation.XjrLog;
  10. import com.xjrsoft.common.enums.DeleteMark;
  11. import com.xjrsoft.common.enums.EnrollTypeEnum;
  12. import com.xjrsoft.common.model.result.RT;
  13. import com.xjrsoft.common.page.ConventPage;
  14. import com.xjrsoft.common.page.PageOutput;
  15. import com.xjrsoft.common.utils.TreeUtil;
  16. import com.xjrsoft.common.utils.VoToColumnUtil;
  17. import com.xjrsoft.module.base.entity.BaseGrade;
  18. import com.xjrsoft.module.base.service.IBaseGradeService;
  19. import com.xjrsoft.module.job.EnrollmentStatisticsInfoTask;
  20. import com.xjrsoft.module.student.dto.*;
  21. import com.xjrsoft.module.student.entity.PbCseFeeobjupdate;
  22. import com.xjrsoft.module.student.service.IEnrollmentStatisticsInfoService;
  23. import com.xjrsoft.module.student.service.IPbCseFeeobjupdateService;
  24. import com.xjrsoft.module.student.vo.*;
  25. import io.swagger.annotations.Api;
  26. import io.swagger.annotations.ApiOperation;
  27. import lombok.AllArgsConstructor;
  28. import org.springframework.http.ResponseEntity;
  29. import org.springframework.web.bind.annotation.*;
  30. import org.springframework.web.multipart.MultipartFile;
  31. import javax.validation.Valid;
  32. import java.io.ByteArrayOutputStream;
  33. import java.io.IOException;
  34. import java.util.ArrayList;
  35. import java.util.List;
  36. /**
  37. * @title:
  38. * @Author szs
  39. * @Date: 2024-03-29
  40. * @Version 1.0
  41. */
  42. @RestController
  43. @RequestMapping("/student" + "/pbCseFeeobjupdate")
  44. @Api(value = "/student" + "/pbCseFeeobjupdate", tags = "攀宝学生信息")
  45. @AllArgsConstructor
  46. public class PbCseFeeobjupdateController {
  47. private final IPbCseFeeobjupdateService pbCseFeeobjupdateService;
  48. private final IBaseGradeService baseGradeService;
  49. private final IEnrollmentStatisticsInfoService enrollmentStatisticsInfoService;
  50. @GetMapping(value = "/grade-enrolltype-tree")
  51. @ApiOperation(value = "年级招生类型树")
  52. @SaCheckPermission("pbcsefeeobjupdate:gradeenrolltypetree")
  53. @XjrLog(value = "年级招生类型树")
  54. public RT<List<GradeEnrolltypeTreeVo>> gradeEnrolltypeTree() {
  55. List<BaseGrade> baseGradeList = baseGradeService.list(
  56. Wrappers.<BaseGrade>query().lambda()
  57. .eq(BaseGrade::getDeleteMark, DeleteMark.NODELETE));
  58. List<GradeEnrolltypeTreeVo> voList = new ArrayList<>();
  59. for (BaseGrade baseGrade : baseGradeList) {
  60. voList.add(new GradeEnrolltypeTreeVo() {{
  61. setId(baseGrade.getId().toString());
  62. setName(baseGrade.getName());
  63. }});
  64. voList.add(new GradeEnrolltypeTreeVo() {{
  65. setId(baseGrade.getId().toString() + "_" + EnrollTypeEnum.SPRING_ENROLLMENT.getCode());
  66. setName(EnrollTypeEnum.SPRING_ENROLLMENT.getValue());
  67. setParentId(baseGrade.getId().toString());
  68. }});
  69. voList.add(new GradeEnrolltypeTreeVo() {{
  70. setId(baseGrade.getId().toString() + "_" + EnrollTypeEnum.AUTUMN_ENROLLMENT.getCode());
  71. setName(EnrollTypeEnum.AUTUMN_ENROLLMENT.getValue());
  72. setParentId(baseGrade.getId().toString());
  73. }});
  74. }
  75. List<GradeEnrolltypeTreeVo> treeVoList = TreeUtil.build(voList);
  76. return RT.ok(treeVoList);
  77. }
  78. @GetMapping(value = "/enrollment-statistics")
  79. @ApiOperation(value = "招生统计")
  80. @SaCheckPermission("pbcsefeeobjupdate:enrollmentstatistics")
  81. @XjrLog(value = "招生统计", saveResponseData = true)
  82. public RT<EnrollmentStatisticsInfoVo> getEnrollmentStatisticsInfo(@Valid EnrollmentStatisticsInfoDto dto) {
  83. EnrollmentStatisticsInfoVo enrollmentStatisticsInfoVo = pbCseFeeobjupdateService.getLastEnrollmentStatisticsInfo(dto);
  84. return RT.ok(enrollmentStatisticsInfoVo);
  85. }
  86. @GetMapping(value = "/enrollment-statistics-calendar")
  87. @ApiOperation(value = "招生统计每日动态数据")
  88. @SaCheckPermission("pbcsefeeobjupdate:enrollmentstatisticscalendar")
  89. @XjrLog(value = "招生统计每日动态数据", saveResponseData = true)
  90. public RT<EnrollmentStatisticsCalendarInfoVo> getEnrollmentStatisticsCalendarInfo(@Valid EnrollmentStatisticsCalendarInfoDto dto) {
  91. EnrollmentStatisticsCalendarInfoVo enrollmentStatisticsCalendarInfoVo = pbCseFeeobjupdateService.getLastEnrollmentStatisticsCalendarInfo(dto);
  92. return RT.ok(enrollmentStatisticsCalendarInfoVo);
  93. }
  94. @GetMapping(value = "/enrollment-statistics-graduation")
  95. @ApiOperation(value = "招生统计毕业学校数据")
  96. @SaCheckPermission("pbcsefeeobjupdate:enrollmentstatisticsgraduation")
  97. @XjrLog(value = "招生统计毕业学校数据", saveResponseData = true)
  98. public RT<EnrollmentStatisticsGraduationInfoVo> getEnrollmentStatisticsGraduationInfo(@Valid EnrollmentStatisticsGraduationInfoDto dto) {
  99. EnrollmentStatisticsGraduationInfoVo enrollmentStatisticsGraduationInfoVo = pbCseFeeobjupdateService.getLastEnrollmentStatisticsGraduationInfo(dto);
  100. return RT.ok(enrollmentStatisticsGraduationInfoVo);
  101. }
  102. @GetMapping(value = "/page")
  103. @ApiOperation(value = "列表(分页)")
  104. @SaCheckPermission("pbcsefeeobjupdate:page")
  105. @XjrLog(value = "列表(分页)")
  106. public RT<PageOutput<PbCseFeeobjupdatePageVo>> page(@Valid PbCseFeeobjupdatePageDto dto) {
  107. LambdaQueryWrapper<PbCseFeeobjupdate> queryWrapper = new LambdaQueryWrapper<>();
  108. queryWrapper
  109. .select(PbCseFeeobjupdate.class, x -> VoToColumnUtil.fieldsToColumns(PbCseFeeobjupdatePageVo.class).contains(x.getProperty()))
  110. .orderByDesc(PbCseFeeobjupdate::getCratetime)
  111. ;
  112. IPage<PbCseFeeobjupdate> page = pbCseFeeobjupdateService.page(ConventPage.getPage(dto), queryWrapper);
  113. PageOutput<PbCseFeeobjupdatePageVo> pageOutput = ConventPage.getPageOutput(page, PbCseFeeobjupdatePageVo.class);
  114. return RT.ok(pageOutput);
  115. }
  116. @GetMapping(value = "/info")
  117. @ApiOperation(value = "根据id查询信息")
  118. @SaCheckPermission("pbcsefeeobjupdate:info")
  119. @XjrLog(value = "根据id查询信息", saveResponseData = true)
  120. public RT<PbCseFeeobjupdateVo> info(@RequestParam Long id) {
  121. PbCseFeeobjupdate pbCseFeeobjupdate = pbCseFeeobjupdateService.getById(id);
  122. if (pbCseFeeobjupdate == null) {
  123. return RT.error("找不到此数据!");
  124. }
  125. return RT.ok(BeanUtil.toBean(pbCseFeeobjupdate, PbCseFeeobjupdateVo.class));
  126. }
  127. @PostMapping
  128. @ApiOperation(value = "新增")
  129. @SaCheckPermission("pbcsefeeobjupdate:add")
  130. @XjrLog(value = "新增", saveResponseData = true)
  131. public RT<Boolean> add(@Valid @RequestBody AddPbCseFeeobjupdateDto dto) {
  132. PbCseFeeobjupdate pbCseFeeobjupdate = BeanUtil.toBean(dto, PbCseFeeobjupdate.class);
  133. boolean isSuccess = pbCseFeeobjupdateService.save(pbCseFeeobjupdate);
  134. return RT.ok(isSuccess);
  135. }
  136. @PutMapping
  137. @ApiOperation(value = "修改")
  138. @SaCheckPermission("pbcsefeeobjupdate:edit")
  139. @XjrLog(value = "修改", saveResponseData = true)
  140. public RT<Boolean> update(@Valid @RequestBody UpdatePbCseFeeobjupdateDto dto) {
  141. PbCseFeeobjupdate pbCseFeeobjupdate = BeanUtil.toBean(dto, PbCseFeeobjupdate.class);
  142. return RT.ok(pbCseFeeobjupdateService.updateById(pbCseFeeobjupdate));
  143. }
  144. @DeleteMapping
  145. @ApiOperation(value = "删除")
  146. @SaCheckPermission("pbcsefeeobjupdate:delete")
  147. @XjrLog(value = "删除", saveResponseData = true)
  148. public RT<Boolean> delete(@Valid @RequestBody List<Long> ids) {
  149. return RT.ok(pbCseFeeobjupdateService.removeBatchByIds(ids));
  150. }
  151. @PostMapping("/import")
  152. @ApiOperation(value = "导入")
  153. @SaCheckPermission("pbcsefeeobjupdate:import")
  154. @XjrLog(value = "导入", saveRequestData = false, saveResponseData = true)
  155. public RT<Boolean> importData(@RequestParam MultipartFile file) throws IOException {
  156. List<PbCseFeeobjupdatePageVo> savedDataList = EasyExcel.read(file.getInputStream()).head(PbCseFeeobjupdatePageVo.class).sheet().doReadSync();
  157. Boolean result = pbCseFeeobjupdateService.saveBatch(BeanUtil.copyToList(savedDataList, PbCseFeeobjupdate.class));
  158. return RT.ok(result);
  159. }
  160. @GetMapping("/export")
  161. @ApiOperation(value = "导出")
  162. @SaCheckPermission("pbcsefeeobjupdate:export")
  163. @XjrLog(value = "导出")
  164. public ResponseEntity<byte[]> exportData(@Valid PbCseFeeobjupdatePageDto dto, @RequestParam(defaultValue = "false") Boolean isTemplate) {
  165. List<PbCseFeeobjupdatePageVo> customerList = isTemplate != null && isTemplate ? new ArrayList<>() : page(dto).getData().getList();
  166. ByteArrayOutputStream bot = new ByteArrayOutputStream();
  167. EasyExcel.write(bot, PbCseFeeobjupdatePageVo.class).automaticMergeHead(false).excelType(ExcelTypeEnum.XLSX).sheet().doWrite(customerList);
  168. return RT.fileStream(bot.toByteArray(), "PbCseFeeobjupdate" + ExcelTypeEnum.XLSX.getValue());
  169. }
  170. @GetMapping("/enrollment-statistics-start")
  171. @ApiOperation(value = "触发招生统计")
  172. @SaCheckPermission("pbcsefeeobjupdate:enrollmentstatisticsstart")
  173. @XjrLog(value = "触发招生统计")
  174. public RT<Boolean> exportData() {
  175. EnrollmentStatisticsInfoTask statisticsInfoTask = new EnrollmentStatisticsInfoTask();
  176. statisticsInfoTask.doExecute(pbCseFeeobjupdateService, enrollmentStatisticsInfoService);
  177. return RT.ok(true);
  178. }
  179. }