SysFileController.java 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. package com.onemap.file.controller;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.onemap.common.core.domain.UploadZipDTO;
  4. import com.onemap.common.core.web.controller.BaseController;
  5. import com.onemap.common.core.web.domain.RequestResult;
  6. import com.onemap.file.domain.ShpFileDTO;
  7. import com.onemap.file.domain.TSpotFileDto;
  8. import com.onemap.system.api.domain.GhtgCl;
  9. import org.slf4j.Logger;
  10. import org.slf4j.LoggerFactory;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.web.bind.annotation.*;
  13. import org.springframework.web.multipart.MultipartFile;
  14. import com.onemap.common.core.domain.R;
  15. import com.onemap.common.core.utils.file.FileUtils;
  16. import com.onemap.file.service.ISysFileService;
  17. import com.onemap.system.api.domain.SysFile;
  18. import com.onemap.system.api.RemoteApplyService;
  19. import javax.annotation.Resource;
  20. import java.util.ArrayList;
  21. import java.util.List;
  22. import java.util.Map;
  23. /**
  24. * 文件请求处理
  25. *
  26. * @author onemap
  27. */
  28. @RestController
  29. public class SysFileController extends BaseController {
  30. private static final Logger log = LoggerFactory.getLogger(SysFileController.class);
  31. @Autowired
  32. private ISysFileService sysFileService;
  33. @Autowired
  34. private RemoteApplyService applyService;
  35. /**
  36. * 文件上传
  37. *
  38. * @param file 文件
  39. * @param businessType 业务类型
  40. */
  41. @PostMapping("/upload")
  42. public R<SysFile> upload(MultipartFile file, String businessType) {
  43. try {
  44. // 上传并返回访问地址
  45. String url = sysFileService.uploadFile(file, businessType);
  46. SysFile sysFile = new SysFile();
  47. sysFile.setName(FileUtils.getName(url));
  48. sysFile.setUrl(url);
  49. return R.ok(sysFile);
  50. } catch (Exception e) {
  51. log.error("上传文件失败", e);
  52. return R.fail(e.getMessage());
  53. }
  54. }
  55. /**
  56. * 图斑压缩包文件上传
  57. *
  58. * @param file 文件
  59. */
  60. @PostMapping("/uploadSpotZip")
  61. public RequestResult uploadSpotZip(MultipartFile[] files, String uploaduser) {
  62. try {
  63. // 上传并返回访问地址
  64. for (MultipartFile file : files) {
  65. RequestResult res = sysFileService.uploadSpotZip(file, uploaduser);
  66. if (res.isSuccess()) {
  67. TSpotFileDto dto = (TSpotFileDto) res.get("data");
  68. applyService.supervisehandle(dto.getId());
  69. }
  70. }
  71. return RequestResult.success("上传成功!");
  72. } catch (Exception e) {
  73. e.printStackTrace();
  74. return RequestResult.error("上传失败!", null);
  75. }
  76. }
  77. /**
  78. * 图斑压缩包文件列表获取
  79. */
  80. @GetMapping("/spotfileList")
  81. public RequestResult spotfileList(String uploaduser) {
  82. try {
  83. RequestResult res = sysFileService.spotfileList(uploaduser);
  84. return res;
  85. } catch (Exception e) {
  86. e.printStackTrace();
  87. return RequestResult.error("查询失败!", null);
  88. }
  89. }
  90. /**
  91. * 图斑压缩包文件删除
  92. */
  93. @DeleteMapping("/spotfileDelete")
  94. public RequestResult spotfileDelete(String id) {
  95. try {
  96. RequestResult res = sysFileService.spotfileDelete(id);
  97. if (res.isSuccess()) {
  98. applyService.supervisedelete(id);
  99. }
  100. return res;
  101. } catch (Exception e) {
  102. e.printStackTrace();
  103. return RequestResult.error("删除失败!", null);
  104. }
  105. }
  106. /**
  107. * 文件上传(大文件分片上传)
  108. *
  109. * @param file
  110. * @param chunk
  111. * @param chunks
  112. * @param name
  113. * @param md5
  114. * @return
  115. */
  116. @PostMapping("/splitFileUpload")
  117. public R<SysFile> splitFileUpload(@RequestParam("file") MultipartFile file,
  118. @RequestParam("chunk") int chunk,
  119. @RequestParam("chunks") int chunks,
  120. @RequestParam("name") String name,
  121. @RequestParam("md5") String md5) {
  122. try {
  123. // 上传并返回访问地址
  124. String url = sysFileService.splitFileUpload(file, chunk, chunks, name, md5);
  125. SysFile sysFile = new SysFile();
  126. sysFile.setName(FileUtils.getName(url));
  127. sysFile.setUrl(url);
  128. return R.ok(sysFile);
  129. } catch (Exception e) {
  130. log.error("上传文件失败", e);
  131. return R.fail(e.getMessage());
  132. }
  133. }
  134. /**
  135. * 上传附件,图片
  136. *
  137. * @param files 文件列表
  138. * @return 文件地址集合
  139. */
  140. @PostMapping("/uploadAppendix")
  141. public R<List<SysFile>> uploadAppendix(MultipartFile[] files) {
  142. try {
  143. List<SysFile> sysFileList = new ArrayList<>();
  144. // 上传并返回访问地址
  145. for (MultipartFile file : files) {
  146. String url = sysFileService.uploadAppendix(file);
  147. SysFile sysFile = new SysFile();
  148. sysFile.setName(FileUtils.getName(url));
  149. sysFile.setUrl(url);
  150. sysFileList.add(sysFile);
  151. }
  152. return R.ok(sysFileList);
  153. } catch (Exception e) {
  154. log.error("上传文件失败", e);
  155. return R.fail(e.getMessage());
  156. }
  157. }
  158. /**
  159. * shp压缩包文件上传
  160. *
  161. * @param file 文件
  162. */
  163. @PostMapping("/uploadShpZip")
  164. public RequestResult uploadShpZip(MultipartFile file) {
  165. try {
  166. RequestResult res = sysFileService.uploadShpZip(file);
  167. return res;
  168. } catch (Exception e) {
  169. e.printStackTrace();
  170. return RequestResult.error("上传失败!", null);
  171. }
  172. }
  173. /**
  174. * shp压缩包文件上传****智慧选址
  175. *
  176. * @param file 文件
  177. */
  178. @PostMapping("/uploadZhxzZip")
  179. public RequestResult uploadZhxzZip(MultipartFile file) {
  180. try {
  181. RequestResult res = sysFileService.uploadZhxzZip(file);
  182. return res;
  183. } catch (Exception e) {
  184. e.printStackTrace();
  185. return RequestResult.error("上传失败!", null);
  186. }
  187. }
  188. /**
  189. * 压缩包文件上传
  190. *
  191. * @param file 文件
  192. */
  193. @PostMapping("/uploadZip")
  194. public UploadZipDTO uploadZip(MultipartFile file) {
  195. try {
  196. UploadZipDTO res = sysFileService.uploadZip(file);
  197. return res;
  198. } catch (Exception e) {
  199. e.printStackTrace();
  200. return new UploadZipDTO();
  201. }
  202. }
  203. /**
  204. * shp压缩包文件上传
  205. *
  206. * @param file 文件
  207. */
  208. @PostMapping("/uploadTgcl")
  209. public GhtgCl uploadTgcl(MultipartFile file, Integer type) {
  210. try {
  211. GhtgCl res = sysFileService.uploadTgcl(file, type);
  212. return res;
  213. } catch (Exception e) {
  214. e.printStackTrace();
  215. return null;
  216. }
  217. }
  218. /**
  219. * 获取shp文件相应的geojson
  220. */
  221. @GetMapping("/getShpGeoJson")
  222. public String getShpGeoJson(String shpfile) {
  223. try {
  224. String res = sysFileService.getShpGeoJson(shpfile);
  225. return res;
  226. } catch (Exception e) {
  227. e.printStackTrace();
  228. return null;
  229. }
  230. }
  231. }