SubjectController.java 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. package com.bowintek.practice.controller;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.bowintek.practice.filter.exception.BaseResponse;
  4. import com.bowintek.practice.filter.exception.RespGenerstor;
  5. import com.bowintek.practice.model.SrSubject;
  6. import com.bowintek.practice.model.SrSubjectfield;
  7. import com.bowintek.practice.services.service.AccountService;
  8. import com.bowintek.practice.services.service.SubjectService;
  9. import com.bowintek.practice.services.service.UserService;
  10. import com.bowintek.practice.util.DateUtils;
  11. import com.bowintek.practice.util.ExcelHelper;
  12. import com.bowintek.practice.util.JsonMapper;
  13. import com.bowintek.practice.util.MapUtils;
  14. import com.bowintek.practice.vo.PositionModel;
  15. import com.fasterxml.jackson.core.type.TypeReference;
  16. import com.fasterxml.jackson.databind.ObjectMapper;
  17. import com.github.pagehelper.PageInfo;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.web.bind.annotation.*;
  20. import javax.servlet.http.HttpServletResponse;
  21. import java.util.ArrayList;
  22. import java.util.Arrays;
  23. import java.util.List;
  24. import java.util.Map;
  25. @RestController
  26. @RequestMapping(value = "/api/subject")
  27. public class SubjectController {
  28. @Autowired
  29. private SubjectService subjectService;
  30. @Autowired
  31. private JsonMapper jsonMapper;
  32. @Autowired
  33. private UserService userService;
  34. @Autowired
  35. private AccountService accountService;
  36. @Autowired
  37. private MapUtils mapUtils;
  38. @Autowired
  39. private DateUtils dateUtils;
  40. @ResponseBody
  41. @GetMapping("/getList")
  42. public BaseResponse<PageInfo<SrSubject>> getList(@RequestParam("page") int page, @RequestParam("rows") int rows,
  43. String subjectName, String tabName, String tabCode) throws Exception {
  44. PageInfo<SrSubject> result = subjectService.getList(page, rows, subjectName, tabName,
  45. tabCode, null);
  46. return RespGenerstor.success(result);
  47. }
  48. @ResponseBody
  49. @PostMapping("/saveSubject")
  50. public BaseResponse saveSubject(@RequestBody JSONObject reqMap) {
  51. int count = 0;
  52. try {
  53. SrSubject dataModel = reqMap.getObject("dataModel", SrSubject.class);
  54. List<SrSubjectfield> fieldList = reqMap.getJSONArray("fieldList").toJavaList(SrSubjectfield.class);
  55. count = subjectService.saveSubject(dataModel, fieldList, accountService.getLoginUserID());
  56. } catch (Exception e) {
  57. return RespGenerstor.fail("-1", "程序异常:" + e.getMessage());
  58. }
  59. return RespGenerstor.success(count);
  60. }
  61. @ResponseBody
  62. @GetMapping("/getSubject")
  63. public BaseResponse<SrSubject> getSubject(String subjectId) {
  64. SrSubject model = subjectService.getSubject(subjectId);
  65. return RespGenerstor.success(model);
  66. }
  67. @ResponseBody
  68. @GetMapping("/getFieldList")
  69. public BaseResponse<List<SrSubjectfield>> getFieldList(String subjectId) throws Exception {
  70. List<SrSubjectfield> result = subjectService.getFieldList(subjectId);
  71. return RespGenerstor.success(result);
  72. }
  73. @ResponseBody
  74. @PostMapping("/delete")
  75. public BaseResponse delete(@RequestBody List<String> idList) {
  76. Integer result = subjectService.delete(idList);
  77. if (result <= 0) {
  78. return RespGenerstor.fail("1003", "数据已经被使用");
  79. }
  80. return RespGenerstor.success(1);
  81. }
  82. @ResponseBody
  83. @GetMapping("/exportSubject")
  84. public void exportSubject(HttpServletResponse response,
  85. @RequestParam(required = false) List<String> idList,
  86. String subjectName, String tabName, String tabCode) throws Exception {
  87. List<SrSubject> dataList = subjectService.getList(1, 9999, subjectName, tabName,
  88. tabCode, idList).getList();
  89. ExcelHelper excelHelper = new ExcelHelper();
  90. ExcelHelper.ExcelData data = excelHelper.new ExcelData();
  91. data.setTitles(Arrays.asList(new String[]{"主题名称", "表编码", "表名称", "描述", "创建时间", "创建人", "是否有外键字段"}));
  92. List<List<Object>> rowData = new ArrayList();
  93. for (SrSubject item : dataList) {
  94. List<Object> row = new ArrayList();
  95. row.add(item.getSubjectName());
  96. row.add(item.getTabCode());
  97. row.add(item.getTabName());
  98. row.add(item.getTabDesc());
  99. row.add(dateUtils.dateToStr(item.getCreateTime()));
  100. row.add(item.getCreatedName());
  101. row.add(item.getIsReferences() == 1 ? "是" : "否");
  102. rowData.add(row);
  103. }
  104. data.setRows(rowData);
  105. excelHelper.exportExcel(response, data);
  106. }
  107. }