OrderTaskImageController.java 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. package com.ydtech.modules.order.controller;
  2. import com.ydtech.core.page.BaseController;
  3. import com.ydtech.core.page.HttpResult;
  4. import com.ydtech.exception.SystemException;
  5. import com.ydtech.modules.esm.model.InsTaskImage;
  6. import com.ydtech.modules.esm.service.InsTaskImageService;
  7. import com.ydtech.modules.order.convert.InsTaskImageConvert;
  8. import com.ydtech.modules.order.entity.po.InsUploadFiles;
  9. import com.ydtech.modules.order.entity.vo.InsTaskImageVo;
  10. import com.ydtech.modules.order.entity.vo.InsTaskImagesVo;
  11. import com.ydtech.modules.order.service.InsTaskImagesService;
  12. import com.ydtech.modules.order.service.InsUploadFilesService;
  13. import com.ydtech.utils.ImageCompressionUtils;
  14. import com.ydtech.utils.StringUtils;
  15. import com.ydtech.utils.idgen.IdGenerate;
  16. import com.ydtech.validation.annotation.CheckObjectNotNull;
  17. import io.swagger.annotations.Api;
  18. import io.swagger.annotations.ApiOperation;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.web.bind.annotation.*;
  21. import org.springframework.web.multipart.MultipartFile;
  22. import javax.servlet.http.HttpServletRequest;
  23. import javax.validation.constraints.NotBlank;
  24. import java.io.IOException;
  25. import java.util.Base64;
  26. import java.util.Date;
  27. import java.util.List;
  28. @Api(tags = "影像")
  29. @RequestMapping("/ins/taskImage")
  30. @RestController
  31. public class OrderTaskImageController extends BaseController {
  32. private final InsTaskImageService insTaskImageService;
  33. private final InsUploadFilesService insUploadFilesService;
  34. @Autowired
  35. private InsTaskImagesService insTaskImagesService;
  36. public OrderTaskImageController(InsTaskImageService insTaskImageService, InsUploadFilesService insUploadFilesService) {
  37. this.insTaskImageService = insTaskImageService;
  38. this.insUploadFilesService = insUploadFilesService;
  39. }
  40. @PostMapping(value = "/uploadImage")
  41. @ApiOperation(value = "上传影像")
  42. public HttpResult uploadImage(@RequestBody InsTaskImageVo insTaskImageVo) {
  43. InsTaskImage record = InsTaskImageConvert.INSTANCE.toInsTaskImage(insTaskImageVo);
  44. // 将数据存入数据库
  45. if (record.getTaskid() == null || record.getTaskid().equalsIgnoreCase("")) {
  46. throw new SystemException("任务号taskid不能为空");
  47. }
  48. if (record.getImgtype() == null || record.getImgtype().equalsIgnoreCase("")) {
  49. throw new SystemException("图片类型imgtype不能为空");
  50. }
  51. if (record.getImgList() == null || record.getImgList().isEmpty()) {
  52. throw new SystemException("图片列表imgList不能为空");
  53. }
  54. this.insTaskImageService.delete(record.getTaskid(), record.getImgtype());
  55. for (int i = 1; i <= record.getImgList().size(); i++) {
  56. String image = record.getImgList().get(i - 1);
  57. // 空文件不上传
  58. if (StringUtils.isNullOrEmpty(image)) {
  59. continue;
  60. }
  61. record.setId(IdGenerate.nextId());
  62. record.setCreator(getUserName());
  63. record.setCreatetime(new Date());
  64. record.setImage(image);
  65. this.insTaskImageService.insert(record);
  66. }
  67. return HttpResult.ok();
  68. }
  69. @PostMapping(value = "/uploadImages")
  70. @ApiOperation(value = "新上传影像")
  71. public HttpResult uploadImages(@RequestBody InsTaskImagesVo insTaskImagesVo, HttpServletRequest request) {
  72. return insTaskImagesService.uploadImages(insTaskImagesVo, getJwtUserName(request));
  73. }
  74. @GetMapping(value = "/findById")
  75. @ApiOperation(value = "根据任务号查询")
  76. public HttpResult findById(@RequestParam String taskid, String imgtype) {
  77. if (taskid == null || taskid.equalsIgnoreCase("")) {
  78. return HttpResult.ok("任务号taskid不能为空");
  79. }
  80. if (imgtype == null || imgtype.equalsIgnoreCase("")) {
  81. return HttpResult.ok("图片类型imgtype不能为空");
  82. }
  83. List<InsTaskImage> selectList = this.insTaskImageService.selectList(" where taskid=? and imgtype=?", new Object[]{taskid, imgtype});
  84. return HttpResult.ok(selectList);
  85. }
  86. @GetMapping(value = "/findByQuoteNo")
  87. @ApiOperation(value = "根据报价号查询")
  88. public HttpResult findByQuoteNo(@RequestParam @NotBlank(message = "报价号ID不能为空") String quoteNo) {
  89. return this.insTaskImagesService.findByQuoteNo(quoteNo);
  90. }
  91. @PostMapping("/imageCompression")
  92. @ApiOperation(value = "图片压缩")
  93. public HttpResult imageCompression(@RequestParam(value = "file") MultipartFile file) {
  94. try {
  95. // 转换后的图片
  96. byte[] bytes_bytes = ImageCompressionUtils.compressPicForScale(file.getBytes(), 100);
  97. String s = Base64.getEncoder().encodeToString(bytes_bytes);
  98. return HttpResult.ok("转换成功", s);
  99. } catch (Exception e) {
  100. e.printStackTrace();
  101. throw new SystemException("图片压缩失败");
  102. }
  103. }
  104. @PostMapping("/uploadFile")
  105. @ApiOperation(value = "文件上传")
  106. public HttpResult uploadFile(@CheckObjectNotNull(message = "上传文件不能为空") MultipartFile multipartFile, String type, HttpServletRequest request) throws IOException {
  107. InsUploadFiles insUploadFiles = insUploadFilesService.uploadFile(multipartFile, getJwtUserName(request), type);
  108. return HttpResult.ok(insUploadFiles);
  109. }
  110. }