FzssController.java 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. package com.onemap.analyse.controller;
  2. import com.fasterxml.jackson.core.JsonProcessingException;
  3. import com.onemap.analyse.domain.FzxzReport;
  4. import com.onemap.analyse.domain.calculation.FzxzCalc;
  5. import com.onemap.analyse.domain.vo.DkReportVo;
  6. import com.onemap.analyse.domain.vo.SelectPilotVo;
  7. import com.onemap.analyse.service.IFzssService;
  8. import com.onemap.analyse.domain.HgxfxEntityDTO;
  9. import com.onemap.analyse.service.IReportService;
  10. import com.onemap.analyse.utils.UnitsUtil;
  11. import com.onemap.common.core.utils.file.FileUtils;
  12. import com.onemap.common.core.web.controller.BaseController;
  13. import com.onemap.common.core.web.domain.RequestResult;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.beans.factory.annotation.Value;
  16. import org.springframework.web.bind.annotation.*;
  17. import javax.annotation.Resource;
  18. import javax.servlet.http.HttpServletRequest;
  19. import javax.servlet.http.HttpServletResponse;
  20. import java.io.IOException;
  21. import java.text.SimpleDateFormat;
  22. import java.util.ArrayList;
  23. import java.util.Date;
  24. import java.util.HashMap;
  25. import java.util.Map;
  26. @RestController
  27. @RequestMapping("/fzss")
  28. public class FzssController extends BaseController {
  29. @Autowired
  30. private IFzssService fzssService;
  31. @Value("${Hgxfx.tempWin}")
  32. public String tempWin;
  33. @Value("${Hgxfx.tempLinux}")
  34. public String tempLinux;
  35. // 报告服务
  36. @Resource
  37. private IReportService iReportService;
  38. /**
  39. * 新建辅助选址
  40. *
  41. * @param
  42. * @return
  43. */
  44. @PostMapping("/AddFzxz")
  45. public RequestResult AddFzxz(@RequestBody SelectPilotVo selectPilotVo) throws JsonProcessingException {
  46. // TODO xmlx:项目类型
  47. if (selectPilotVo.getYdmjbegin() != null) {
  48. selectPilotVo.setYdmjbegin((float) (UnitsUtil.muToM2(selectPilotVo.getYdmjbegin())));
  49. }
  50. if (selectPilotVo.getYdmjend() != null) {
  51. selectPilotVo.setYdmjend((float) (UnitsUtil.muToM2(selectPilotVo.getYdmjend())));
  52. }
  53. // 存储规划参数
  54. FzxzCalc fzxzCalc = fzssService.saveScheduleParam(selectPilotVo);
  55. // 开始规划任务
  56. RequestResult res = fzssService.startSchedule(fzxzCalc);
  57. return res;
  58. }
  59. /**
  60. * 获取选址结果
  61. *
  62. * @param bsm
  63. * @return
  64. */
  65. @GetMapping("/GetXzjg")
  66. public RequestResult GetXzjg(String bsm) {
  67. RequestResult res = fzssService.GetXzjg(bsm);
  68. return res;
  69. }
  70. /**
  71. * 获取选址结果列表
  72. *
  73. * @param startTime
  74. * @param endTime
  75. * @param name
  76. * @return
  77. */
  78. @GetMapping("/GetXzResList")
  79. public RequestResult GetXzResList(String startTime, String endTime, String name, Integer pageNum, Integer pageSize) {
  80. RequestResult res = fzssService.GetXzResList(startTime, endTime, name, pageNum, pageSize);
  81. return res;
  82. }
  83. /**
  84. * 删除选址结果
  85. *
  86. * @return
  87. */
  88. @DeleteMapping("/DelXzRes")
  89. public RequestResult DelXzRes(String bsm) {
  90. RequestResult res = fzssService.DelXzRes(bsm);
  91. return res;
  92. }
  93. /**
  94. * 通过选择的方案生成报告
  95. *
  96. * @return
  97. */
  98. @PostMapping("/DownloadLandReport")
  99. public RequestResult SaveWordFile(@RequestBody DkReportVo dkReportVo) {
  100. FzxzReport fzxzReport = iReportService.createReport(dkReportVo.getBsm(), dkReportVo.getDkIds());
  101. Map<String, String> resMap = new HashMap<>();
  102. resMap.put("fxbg", fzxzReport.getReportfile());
  103. return RequestResult.success("查询成功!", resMap);
  104. }
  105. @GetMapping("/DownloadReport")
  106. public void fileDownload(String filePath, HttpServletResponse response) throws IOException {
  107. String path = tempWin;
  108. // windows 使用 tempWin, linux 使用 tempLinux
  109. System.out.println("####获取操作系统名称####");
  110. System.out.println("os.name: " + System.getProperty("os.name").toLowerCase());
  111. if (System.getProperty("os.name").toLowerCase().contains("linux")) {
  112. path = tempLinux;
  113. }
  114. String realFileName = path + filePath;
  115. response.setCharacterEncoding("utf-8");
  116. response.setContentType("multipart/form-data");
  117. response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document");
  118. String fileType = filePath.substring(filePath.lastIndexOf(".") + 1);
  119. String time = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
  120. String downloadName = time + "." + fileType;
  121. response.setHeader("Content-Disposition", "attachment;fileName=\"" + downloadName + "\"");
  122. FileUtils.writeBytes(realFileName, response.getOutputStream());
  123. }
  124. }