TFileOperateController.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. package com.steerinfo.ems.tfileoperate.controller;
  2. import com.steerinfo.auth.utils.JwtUtil;
  3. import com.steerinfo.ems.Utils.DateUtils;
  4. import com.steerinfo.ems.emssecuernode.model.EmsSecuerNode;
  5. import com.steerinfo.ems.emssecuernode.service.IEmsSecuerNodeService;
  6. import com.steerinfo.framework.controller.BaseRESTfulController;
  7. import com.steerinfo.framework.controller.RESTfulResult;
  8. import com.steerinfo.framework.service.pagehelper.PageList;
  9. import com.steerinfo.framework.utils.collection.ListUtils;
  10. import com.steerinfo.ems.tfileoperate.model.TFileOperate;
  11. import com.steerinfo.ems.tfileoperate.service.ITFileOperateService;
  12. import com.steerinfo.ftp.uploadfile.model.UploadFile;
  13. import com.steerinfo.ftp.uploadfile.utils.FtpFileUtil;
  14. import com.steerinfo.ftp.uploadfile.utils.IDutils;
  15. import io.swagger.annotations.ApiImplicitParam;
  16. import io.swagger.annotations.ApiImplicitParams;
  17. import io.swagger.annotations.ApiOperation;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.context.annotation.Primary;
  20. import org.springframework.web.bind.annotation.*;
  21. import org.springframework.web.multipart.MultipartFile;
  22. import java.io.InputStream;
  23. import java.text.SimpleDateFormat;
  24. import java.util.*;
  25. import java.math.BigDecimal;
  26. /**
  27. * TFileOperate RESTful接口:
  28. * @author generator
  29. * @version 1.0-SNAPSHORT 2023-05-10 02:31
  30. * 类描述
  31. * 修订历史:
  32. * 日期:2023-05-10
  33. * 作者:generator
  34. * 参考:
  35. * 描述:TFileOperate RESTful接口
  36. * @see null
  37. * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved.
  38. */
  39. @RestController
  40. @RequestMapping("/${api.version}/tfileoperates")
  41. public class TFileOperateController extends BaseRESTfulController {
  42. @Autowired
  43. IEmsSecuerNodeService NodeService;
  44. @Autowired
  45. FtpFileUtil ftpFileUtil;
  46. @Autowired
  47. ITFileOperateService tFileOperateService;
  48. @ApiOperation(value="获取列表", notes="分页查询")
  49. @ApiImplicitParams({
  50. @ApiImplicitParam(name = "pageNum", value = "查询页数", required = false, dataType = "Integer"),
  51. @ApiImplicitParam(name = "pageSize", value = "每页记录数", required = false, dataType = "Integer")
  52. })
  53. //@RequiresPermissions("tfileoperate:view")
  54. @GetMapping(value = "/")
  55. public RESTfulResult list(@RequestParam HashMap parmas,Integer pageNum, Integer pageSize){
  56. PageList<TFileOperate> list = tFileOperateService.queryForPage(parmas, pageNum, pageSize);
  57. return success(list);
  58. }
  59. @ApiOperation(value="获取列表", notes="分页模糊查询")
  60. @ApiImplicitParams({
  61. @ApiImplicitParam(name = "pageNum", value = "查询页数", required = false, dataType = "Integer"),
  62. @ApiImplicitParam(name = "pageSize", value = "每页记录数", required = false, dataType = "Integer")
  63. })
  64. //@RequiresPermissions("tfileoperate:view")
  65. @GetMapping(value = "/like/")
  66. public RESTfulResult listLike(@RequestParam HashMap parmas,Integer pageNum, Integer pageSize){
  67. PageList<TFileOperate> list = tFileOperateService.queryLikeForPage(parmas, pageNum, pageSize);
  68. return success(list);
  69. }
  70. @ApiOperation(value="创建", notes="根据TFileOperate对象创建")
  71. @ApiImplicitParam(name = "tFileOperate", value = "详细实体tFileOperate", required = true, dataType = "TFileOperate")
  72. //@RequiresPermissions("tfileoperate:create")
  73. @PostMapping(value = "/")
  74. public RESTfulResult add(@ModelAttribute TFileOperate model){
  75. TFileOperate tFileOperate = tFileOperateService.add(model);
  76. return success(tFileOperate);
  77. }
  78. @ApiOperation(value="获取详细信息", notes="根据url的id来获取详细信息")
  79. @ApiImplicitParam(paramType = "path", name = "id", value = "ID", required = true, dataType = "String")
  80. //@RequiresPermissions("tfileoperate:view")
  81. @GetMapping(value = "/{id}")
  82. public RESTfulResult get(@PathVariable String id){
  83. TFileOperate tFileOperate = tFileOperateService.getById(id);
  84. return success(tFileOperate);
  85. }
  86. @ApiOperation(value="更新详细信息", notes="根据url的id来指定更新对象,并根据传过来的tFileOperate信息来更新详细信息")
  87. @ApiImplicitParams({
  88. @ApiImplicitParam(paramType = "path", name = "id", value = "ID", required = true, dataType = "String"),
  89. @ApiImplicitParam(name = "tFileOperate", value = "详细实体tFileOperate", required = true, dataType = "TFileOperate")
  90. })
  91. //@RequiresPermissions("tfileoperate:update")
  92. @PutMapping(value = "/{id}", produces = "application/json;charset=UTF-8")
  93. public RESTfulResult update(@PathVariable String id, @RequestBody TFileOperate model){
  94. model.setId(id);
  95. TFileOperate tFileOperate = tFileOperateService.modify(model);
  96. return success(tFileOperate);
  97. }
  98. @ApiOperation(value="删除", notes="根据url的id来指定删除对象")
  99. @ApiImplicitParam(paramType = "path", name = "id", value = "ID", required = true, dataType = "String")
  100. //@RequiresPermissions("tfileoperate:delete")
  101. @DeleteMapping(value = "/{id}")//String
  102. public RESTfulResult delete(@PathVariable String id){
  103. List<String> list = Arrays.asList(id.split(","));
  104. String path = null;
  105. if(ListUtils.isNotEmpty(list)) {
  106. List<String> ids = ListUtils.convertList(list);
  107. for (String item : ids) {
  108. TFileOperate t = tFileOperateService.getById(item);
  109. path = t.getFilePath();
  110. try {
  111. if (ftpFileUtil.deleteFile(path)){
  112. }else{
  113. return failed(null,"部分文件删除失败");
  114. }
  115. } catch (Exception e) {
  116. return failed(null,"删除失败");
  117. }
  118. }
  119. }
  120. return success();
  121. }
  122. @PostMapping("/fileUpload")
  123. public RESTfulResult fileUpload(@ModelAttribute MultipartFile[] files, String id){
  124. String filesid = "";
  125. if (files.length>0){
  126. for (int i = 0; i <files.length ; i++) {
  127. try {
  128. String userId = JwtUtil.getUseridByToken();
  129. //获取系统时间
  130. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("/yyyy/MM/dd");
  131. String simpleDateFormat1 = DateUtils.getCurrentTime("yyyy-MM-dd HH:mm:ss");
  132. //获取文件名
  133. String oldName = files[i].getOriginalFilename();
  134. int begin = files[i].getOriginalFilename().indexOf(".");
  135. int last = files[i].getOriginalFilename().length();
  136. String type = files[i].getOriginalFilename().substring(begin, last);
  137. //取当前时间的长整形值包含毫秒
  138. String newName = IDutils.getImageName();
  139. //重新命名文件
  140. newName = newName + oldName.substring(oldName.lastIndexOf("."));
  141. String filePath = simpleDateFormat.format(new Date());
  142. //获取输入流
  143. InputStream inputStream = files[i].getInputStream();
  144. boolean result = ftpFileUtil.uploadToFtp(inputStream, filePath, newName, false);
  145. inputStream.close();
  146. if (result) {
  147. TFileOperate uploadFile = new TFileOperate();
  148. uploadFile.setFileName(oldName);
  149. uploadFile.setFilePath(filePath + "/" + newName);
  150. uploadFile.setNodeId(id);
  151. uploadFile.setCreateman(JwtUtil.getUseridByToken());
  152. uploadFile.setCreatetime(simpleDateFormat1);
  153. uploadFile.setFileType(type);
  154. uploadFile.setId("file"+UUID.randomUUID().toString().substring(1,18).trim().replace("-",""));
  155. uploadFile.setBz(" ");
  156. uploadFile.setUpdateman(" ");
  157. uploadFile.setUpdatetime(" ");
  158. TFileOperate model = tFileOperateService.add(uploadFile);
  159. if (model != null) {
  160. filesid += "," + model.getId();
  161. }
  162. } else {
  163. return failed(null, "上传文件失败");
  164. }
  165. } catch (Exception e) {
  166. e.getMessage();
  167. }
  168. }
  169. }
  170. if (!filesid.isEmpty()){
  171. EmsSecuerNode emsSecuerNode= new EmsSecuerNode();
  172. emsSecuerNode.setId(id);
  173. emsSecuerNode.setItemtype((short) 200);
  174. emsSecuerNode.setItemstatus((short) 200);
  175. NodeService.modify(emsSecuerNode);
  176. }
  177. return success(filesid);
  178. }
  179. @PostMapping("/fileUploa2")
  180. public RESTfulResult fileUpload2(@ModelAttribute MultipartFile files, String id){
  181. String filesid = "";
  182. if (!files.isEmpty()){
  183. try {
  184. String userId = JwtUtil.getUseridByToken();
  185. //获取系统时间
  186. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("/yyyy/MM/dd");
  187. String simpleDateFormat1 = DateUtils.getCurrentTime("yyyy-MM-dd HH:mm:ss");
  188. //获取文件名
  189. String oldName = files.getOriginalFilename();
  190. int begin = files.getOriginalFilename().indexOf(".");
  191. int last = files.getOriginalFilename().length();
  192. String type = files.getOriginalFilename().substring(begin, last);
  193. //取当前时间的长整形值包含毫秒
  194. String newName = IDutils.getImageName();
  195. //重新命名文件
  196. newName = newName + oldName.substring(oldName.lastIndexOf("."));
  197. String filePath = simpleDateFormat.format(new Date());
  198. //获取输入流
  199. InputStream inputStream = files.getInputStream();
  200. boolean result = ftpFileUtil.uploadToFtp(inputStream, filePath, newName, false);
  201. inputStream.close();
  202. if (result) {
  203. TFileOperate uploadFile = new TFileOperate();
  204. uploadFile.setFileName(oldName);
  205. uploadFile.setFilePath(filePath + "/" + newName);
  206. uploadFile.setId(id);
  207. uploadFile.setFileType(type);
  208. uploadFile.setBz(" ");
  209. uploadFile.setUpdateman(JwtUtil.getUseridByToken());
  210. uploadFile.setUpdatetime(simpleDateFormat1);
  211. TFileOperate model = tFileOperateService.modify(uploadFile);
  212. if (model != null) {
  213. filesid += "," + model.getId();
  214. }
  215. } else {
  216. return failed(null, "上传文件失败");
  217. }
  218. } catch (Exception e) {
  219. e.getMessage();
  220. }
  221. }
  222. return success(filesid);
  223. }
  224. }