ElectricStationController.java 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. package com.jiayue.biz.controller;
  2. import cn.hutool.core.io.FileUtil;
  3. import cn.hutool.core.util.StrUtil;
  4. import com.jiayue.biz.domain.FanTower;
  5. import com.jiayue.biz.domain.StationInfo;
  6. import com.jiayue.biz.dto.StationInfoDto;
  7. import com.jiayue.biz.service.ElectricStationService;
  8. import com.jiayue.biz.service.StationInfoService;
  9. import com.jiayue.biz.util.CommonUtil;
  10. import com.jiayue.common.core.controller.BaseController;
  11. import com.jiayue.common.core.domain.AjaxResult;
  12. import lombok.AllArgsConstructor;
  13. import lombok.extern.slf4j.Slf4j;
  14. import org.apache.commons.io.FileUtils;
  15. import org.springframework.web.bind.annotation.*;
  16. import org.springframework.web.multipart.MultipartFile;
  17. import java.io.File;
  18. import java.io.IOException;
  19. import java.nio.charset.StandardCharsets;
  20. import java.util.ArrayList;
  21. import java.util.List;
  22. @RestController
  23. @RequestMapping("/dataQuery/electricStation")
  24. @AllArgsConstructor
  25. @Slf4j
  26. public class ElectricStationController extends BaseController {
  27. private final ElectricStationService electricStationService;
  28. private final StationInfoService stationInfoService;
  29. @GetMapping("/selectElectricStation")
  30. public AjaxResult selectElectricStation() {
  31. return AjaxResult.success(stationInfoService.selectStationInfoDto());
  32. }
  33. @DeleteMapping
  34. public AjaxResult delElectricStation(@RequestBody StationInfoDto stationInfoDto) {
  35. stationInfoService.delStationInfo(stationInfoDto);
  36. return AjaxResult.success("200");
  37. }
  38. @PutMapping
  39. public AjaxResult updateElectricStation(@RequestBody StationInfoDto stationInfoDto) {
  40. stationInfoService.updateStationInfo(stationInfoDto);
  41. return AjaxResult.success("200");
  42. }
  43. @PostMapping
  44. public AjaxResult saveElectricStation(@RequestBody StationInfoDto stationInfoDto) {
  45. stationInfoService.saveStationInfo(stationInfoDto);
  46. return AjaxResult.success("200");
  47. }
  48. /**
  49. * 更新场站风机坐标数据
  50. *
  51. * @param file
  52. * @param projectNo
  53. * @return
  54. */
  55. @PostMapping("/fantowerFile")
  56. public AjaxResult uploadProjectFile(@RequestParam("file") MultipartFile file, @RequestParam("stationId") String stationId) {
  57. try {
  58. // 得到上传文件后缀
  59. String originalName = file.getOriginalFilename();
  60. String fileUrl = CommonUtil.getRealPath() + File.separator + "fantowerFile" + File.separator;
  61. // 复制文件
  62. File targetFile = new File(fileUrl, originalName);
  63. if (targetFile.exists()) {
  64. FileUtils.delete(targetFile);
  65. }
  66. FileUtils.writeByteArrayToFile(targetFile, file.getBytes());
  67. log.info("坐标文件上传成功:{} ,更新记录信息", fileUrl + originalName);
  68. //读取上传文件的内容
  69. List<String> fileStrList = FileUtil.readLines(targetFile, StandardCharsets.UTF_8);
  70. if (null == fileStrList || fileStrList.isEmpty()) {
  71. return success("读取文件内容为空");
  72. }
  73. String stationCode = fileStrList.get(0).split("\t")[1];
  74. if (!stationId.equals(stationCode)) {
  75. return error("读取文件内容不正确,填写的场站ID:" + stationCode + ",与选择的场站编号不符合");
  76. }
  77. StationInfo stationInfo = stationInfoService.getOneStationInfoByCode(stationCode);
  78. //风机型号
  79. String fjTypeStr = fileStrList.get(1);
  80. if (fjTypeStr.startsWith("fengji")) {
  81. log.info("上传文件风机型号信息:{}", fjTypeStr);
  82. String fjType = fjTypeStr.split("\t")[1];
  83. log.info("上传文件风机型号:{}", fjType);
  84. List<FanTower> fanTowerList = new ArrayList<>();
  85. for (int i = 2; i < fileStrList.size(); i++) {
  86. String fjStr = fileStrList.get(i);
  87. if (StrUtil.isNotBlank(fjStr)) {
  88. if (fjStr.startsWith("fengji")) {
  89. fjType = fjStr.split("\t")[1];
  90. continue;
  91. }
  92. String[] fjStrArr = fjStr.split("\t");
  93. FanTower fanTower = new FanTower();
  94. fanTower.setId(fjStrArr[0]);
  95. fanTower.setFanModel(fjType);
  96. fanTower.setFanName(fjStrArr[1]);
  97. fanTower.setLongitudeFan(fjStrArr[2].trim());
  98. fanTower.setLatitudeFan(fjStrArr[3].trim());
  99. fanTowerList.add(fanTower);
  100. }
  101. }
  102. stationInfo.setFanTowerList(fanTowerList);
  103. } else {
  104. return success("读取文件内容不正确,未填写风机型号信息");
  105. }
  106. stationInfoService.saveStation(stationInfo);
  107. log.info("根据上传文件内容更新项目信息完成");
  108. } catch (IOException e) {
  109. logger.error("保存文件到服务器(本地)失败", e);
  110. }
  111. return success("文件上传成功");
  112. }
  113. }