PdmConstructTeamController.java 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. package com.ruoyi.powerdistribution.controller;
  2. import java.io.InputStream;
  3. import java.util.List;
  4. import javax.servlet.http.HttpServletRequest;
  5. import javax.servlet.http.HttpServletResponse;
  6. import com.alibaba.excel.EasyExcel;
  7. import com.alibaba.excel.enums.CellExtraTypeEnum;
  8. import com.alibaba.fastjson.JSON;
  9. import com.ruoyi.powerdistribution.domain.excel.ConstructTeam;
  10. import com.ruoyi.powerdistribution.domain.vo.PdmConstructTeamVo;
  11. import org.springframework.security.access.prepost.PreAuthorize;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.web.bind.annotation.GetMapping;
  14. import org.springframework.web.bind.annotation.PostMapping;
  15. import org.springframework.web.bind.annotation.PutMapping;
  16. import org.springframework.web.bind.annotation.DeleteMapping;
  17. import org.springframework.web.bind.annotation.PathVariable;
  18. import org.springframework.web.bind.annotation.RequestBody;
  19. import org.springframework.web.bind.annotation.RequestMapping;
  20. import org.springframework.web.bind.annotation.RestController;
  21. import com.ruoyi.common.annotation.Log;
  22. import com.ruoyi.common.core.controller.BaseController;
  23. import com.ruoyi.common.core.domain.AjaxResult;
  24. import com.ruoyi.common.enums.BusinessType;
  25. import com.ruoyi.powerdistribution.domain.PdmConstructTeam;
  26. import com.ruoyi.powerdistribution.service.IPdmConstructTeamService;
  27. import com.ruoyi.common.utils.poi.ExcelUtil;
  28. import com.ruoyi.common.core.page.TableDataInfo;
  29. import org.springframework.web.multipart.MultipartFile;
  30. import com.ruoyi.powerdistribution.util.DynamicEasyExcelConstructTeamListener;
  31. /**
  32. * 配网工程队伍施工小组信息Controller
  33. *
  34. * @author ruoyi
  35. * @date 2025-01-20
  36. */
  37. @RestController
  38. @RequestMapping("/powerdistribution/constructTeam")
  39. public class PdmConstructTeamController extends BaseController
  40. {
  41. @Autowired
  42. private IPdmConstructTeamService pdmConstructTeamService;
  43. /**
  44. * 查询配网工程队伍施工小组信息列表
  45. */
  46. @GetMapping("/list")
  47. public TableDataInfo list(PdmConstructTeam pdmConstructTeam)
  48. {
  49. startPage();
  50. List<PdmConstructTeam> list = pdmConstructTeamService.selectPdmConstructTeamList(pdmConstructTeam);
  51. return getDataTable(list);
  52. }
  53. /**
  54. * 导出配网工程队伍施工小组信息列表
  55. */
  56. @Log(title = "配网工程队伍施工小组信息", businessType = BusinessType.EXPORT)
  57. @PostMapping("/export")
  58. public void export(HttpServletResponse response, PdmConstructTeam pdmConstructTeam)
  59. {
  60. List<PdmConstructTeam> list = pdmConstructTeamService.selectPdmConstructTeamList(pdmConstructTeam);
  61. ExcelUtil<PdmConstructTeam> util = new ExcelUtil<PdmConstructTeam>(PdmConstructTeam.class);
  62. util.exportExcel(response, list, "配网工程队伍施工小组信息数据");
  63. }
  64. /**
  65. * 获取配网工程队伍施工小组信息详细信息
  66. */
  67. @GetMapping(value = "/{id}")
  68. public AjaxResult getInfo(@PathVariable("id") Long id)
  69. {
  70. return success(pdmConstructTeamService.selectPdmConstructTeamById(id));
  71. }
  72. /**
  73. * 新增配网工程队伍施工小组信息
  74. */
  75. @Log(title = "配网工程队伍施工小组信息", businessType = BusinessType.INSERT)
  76. @PostMapping
  77. public AjaxResult add(@RequestBody PdmConstructTeamVo pdmConstructTeam)
  78. {
  79. if(pdmConstructTeam.getId()!=null)
  80. return toAjax(pdmConstructTeamService.updatePdmConstructTeam(pdmConstructTeam));
  81. return toAjax(pdmConstructTeamService.insertPdmConstructTeam(pdmConstructTeam));
  82. }
  83. /**
  84. * 修改配网工程队伍施工小组信息
  85. */
  86. @Log(title = "配网工程队伍施工小组信息", businessType = BusinessType.UPDATE)
  87. @PutMapping
  88. public AjaxResult edit(@RequestBody PdmConstructTeamVo pdmConstructTeam)
  89. {
  90. return toAjax(pdmConstructTeamService.updatePdmConstructTeam(pdmConstructTeam));
  91. }
  92. /**
  93. * 删除配网工程队伍施工小组信息
  94. */
  95. @Log(title = "配网工程队伍施工小组信息", businessType = BusinessType.DELETE)
  96. @DeleteMapping("/{ids}")
  97. public AjaxResult remove(@PathVariable Long[] ids)
  98. {
  99. return toAjax(pdmConstructTeamService.deletePdmConstructTeamByIds(ids));
  100. }
  101. @PostMapping("/import")
  102. public void importExcel(HttpServletRequest request, MultipartFile file) {
  103. try {
  104. InputStream inputStream = file.getInputStream();
  105. /**
  106. *DynamicEasyExcelConstructTeamListener:导入监听类
  107. * 1:是正文起始行,用于处理合并单元格
  108. **/
  109. DynamicEasyExcelConstructTeamListener listener = new DynamicEasyExcelConstructTeamListener(request,1);
  110. //读取全部sheet使用extraRead(CellExtraTypeEnum.MERGE).doReadAll()
  111. /**
  112. * headRowNumber(1):1是正文起始行
  113. * CellExtraTypeEnum.MERGE:读取合并单元格
  114. * CellExtraTypeEnum.COMMENT:读取批注
  115. * CellExtraTypeEnum.HYPERLINK:读取超链接
  116. * extraRead(CellExtraTypeEnum.MERGE).doReadAll():如果多sheet,直接使用这个方法
  117. **/
  118. EasyExcel.read(inputStream, ConstructTeam.class,listener).headRowNumber(1).extraRead(CellExtraTypeEnum.MERGE).sheet(0).doRead();
  119. inputStream.close();
  120. pdmConstructTeamService.importExcel(listener.getDataList());
  121. //System.out.println(JSON.toJSON(listener.getDataList()));
  122. } catch (Exception e) {
  123. throw new RuntimeException(e);
  124. }
  125. }
  126. }