ElectricFieldController.java 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. package com.jiayue.ipfcst.console.controller;
  2. import com.jiayue.ipfcst.aop.SaveValidate;
  3. import com.jiayue.ipfcst.common.core.web.vo.ResponseVO;
  4. import com.jiayue.ipfcst.common.data.constant.enums.ElectricFieldTypeEnum;
  5. import com.jiayue.ipfcst.common.data.entity.ElectricField;
  6. import com.jiayue.ipfcst.console.service.ElectricFieldService;
  7. import com.jiayue.ipfcst.console.service.OverHaulPlanService;
  8. import com.jiayue.ipfcst.console.service.SysParameterService;
  9. import lombok.extern.slf4j.Slf4j;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.web.bind.annotation.*;
  12. import javax.servlet.http.HttpServletResponse;
  13. import java.io.BufferedOutputStream;
  14. import java.io.IOException;
  15. import java.net.URLEncoder;
  16. import java.nio.charset.StandardCharsets;
  17. import java.util.ArrayList;
  18. import java.util.HashMap;
  19. import java.util.List;
  20. import java.util.Map;
  21. /**
  22. * 场站信息restful接口
  23. *
  24. * @author tl
  25. * @version 3.0
  26. * @since 2020/6/28 10:12
  27. */
  28. @RestController
  29. @RequestMapping("/electricField")
  30. @Slf4j
  31. public class ElectricFieldController {
  32. @Autowired
  33. ElectricFieldService electricFieldService;
  34. @Autowired
  35. SysParameterService sysParameterService;
  36. @Autowired
  37. OverHaulPlanService overHaulPlanService;
  38. /**
  39. * 新增场站信息
  40. *
  41. * @param electricField 场站实体参数
  42. * @return 执行结果
  43. */
  44. @PostMapping(value = "/")
  45. @SaveValidate
  46. public ResponseVO saveElectricField(@RequestBody ElectricField electricField) {
  47. try {
  48. electricFieldService.add(electricField);
  49. return ResponseVO.success();
  50. } catch (Exception e) {
  51. e.printStackTrace();
  52. log.error(" 保存场站信息异常");
  53. return ResponseVO.fail();
  54. }
  55. }
  56. /**
  57. * 更新场站信息
  58. *
  59. * @param electricField 场站实体参数
  60. * @return 执行结果
  61. */
  62. @PostMapping(value = "/updateElectricField")
  63. @SaveValidate
  64. public ResponseVO updateElectricField(@RequestBody ElectricField electricField) {
  65. try {
  66. this.electricFieldService.update(electricField);
  67. return ResponseVO.success();
  68. } catch (Exception e) {
  69. e.printStackTrace();
  70. log.error(" 更新场站信息异常");
  71. return ResponseVO.fail();
  72. }
  73. }
  74. /**
  75. * 获取场站信息
  76. *
  77. * @return 所有场站信息
  78. */
  79. @GetMapping(value = "/getElectricField")
  80. public ResponseVO getElectricField() {
  81. try {
  82. List<ElectricField> electricFieldList = this.electricFieldService.getAll();
  83. return ResponseVO.success(electricFieldList);
  84. } catch (Exception e) {
  85. e.printStackTrace();
  86. log.error(" 获取场站信息异常");
  87. return ResponseVO.success(null);
  88. }
  89. }
  90. /**
  91. * 获取场站信息
  92. *
  93. * @return 所有场站信息
  94. */
  95. @GetMapping(value = "/getElectricField/{stationCode}")
  96. public ResponseVO getElectricFieldByStationCode(@PathVariable String stationCode) {
  97. try {
  98. ElectricField electricField = this.electricFieldService.findByStationCode(stationCode);
  99. return ResponseVO.success(electricField);
  100. } catch (Exception e) {
  101. e.printStackTrace();
  102. log.error(" 获取场站信息异常");
  103. return ResponseVO.success(null);
  104. }
  105. }
  106. @DeleteMapping(value = "/{stationCode}")
  107. @SaveValidate
  108. public ResponseVO deleteElectricField(@PathVariable String stationCode) {
  109. try {
  110. electricFieldService.delete(stationCode);
  111. return ResponseVO.success();
  112. } catch (Exception e) {
  113. e.printStackTrace();
  114. log.error(" 删除场站信息异常");
  115. return ResponseVO.fail();
  116. }
  117. }
  118. /**
  119. * 功能描述: <br>
  120. * 〈返回场站类型〉
  121. *
  122. * @param: []
  123. * @Return: com.jiayue.ipfcst.console.dto.ResponseBean
  124. * @Author: YH
  125. * @Date: 2020/3/3 14:08
  126. */
  127. @GetMapping(value = "/getElType")
  128. public ResponseVO getElType() {
  129. List<Map<String, Object>> elType = new ArrayList<>();
  130. Map<String, Object> map;
  131. try {
  132. for (ElectricFieldTypeEnum e : ElectricFieldTypeEnum.values()) {
  133. map = new HashMap<>();
  134. map.put("label", e.getMessage());
  135. map.put("key", e.name());
  136. map.put("value", e.name());
  137. elType.add(map);
  138. }
  139. return ResponseVO.success(elType);
  140. } catch (Exception e) {
  141. e.printStackTrace();
  142. log.error(" 获取场站类型异常");
  143. return ResponseVO.fail(elType);
  144. }
  145. }
  146. //导出所有场站
  147. @RequestMapping(value = "/export")
  148. public void export(HttpServletResponse response) {
  149. BufferedOutputStream bos = null;
  150. try {
  151. StringBuilder templateContent = new StringBuilder();
  152. response.setCharacterEncoding("UTF-8");
  153. List<ElectricField> electricFieldList = electricFieldService.getAll();
  154. String header = "\"场站编号\"" + "," + "\"场站名称\"" + "," + "\"场站标识\"" + "," + "\"别名\"" + "," + "\"装机容量\"" + "," + "\"并网设备数\"" + "," + "\"场站经度\"" + "," + "\"场站纬度\"" + "," + "\"场站类型\"" + "," + "\"入库时间\"" + "," + "\"场站海拔\"" + "," + "\"场站所属公司\"" + "," + "\"场站位置\"" + "," + "\"场站面积\"" + "\r\n";
  155. StringBuilder content = new StringBuilder();
  156. for (ElectricField electricField : electricFieldList) {
  157. content.append(electricField.getStationCode()).append(",");
  158. content.append(electricField.getName()).append(",");
  159. content.append(electricField.getSign()).append(",");
  160. content.append(electricField.getNetSubstationName()).append(",");
  161. content.append(electricField.getCapacity()).append(",");
  162. content.append(electricField.getGridCE()).append(",");
  163. content.append(electricField.getLongitude()).append(",");
  164. content.append(electricField.getLatitude()).append(",");
  165. content.append(electricField.getElectricFieldTypeEnum().getMessage()).append(",");
  166. content.append(electricField.getInterval()).append(",");
  167. content.append(electricField.getAltitude()).append(",");
  168. content.append(electricField.getCompany()).append(",");
  169. content.append(electricField.getLocation()).append(",");
  170. content.append(electricField.getArea()).append(",");
  171. content.append("\r\n");
  172. }
  173. templateContent.append(header);
  174. templateContent.append(content);
  175. response.setContentType("application/x-msdownload;charset=UTF-8");// 文件下载必须配置为application/x-msdownload
  176. response.setHeader("Content-disposition", "attachment; filename=" + URLEncoder.encode("场站信息数据.csv", "UTF-8"));// 中文文件名必须使用URLEncoder.encode进行转码
  177. byte[] templateContentBytes = templateContent.toString().getBytes(StandardCharsets.UTF_8);
  178. bos = new BufferedOutputStream(response.getOutputStream());// 向response中写入文件流
  179. bos.write(new byte[]{(byte) 0xEF, (byte) 0xBB, (byte) 0xBF});// 指定csv文件用UTF-8字符集打开
  180. bos.write(templateContentBytes);
  181. response.flushBuffer();
  182. } catch (Exception e) {
  183. log.error("系统错误:" + e.getMessage(), e);
  184. throw new RuntimeException(e);
  185. } finally {
  186. if (bos != null)
  187. try {
  188. bos.close();
  189. } catch (IOException e) {
  190. log.error("系统错误:" + e.getMessage(), e);
  191. }
  192. }
  193. }
  194. }