GetPatentPictureFromExcelService.java 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. package com.example.xiaoshiweixinback.service.importPatent;
  2. import cn.hutool.core.util.IdUtil;
  3. import com.example.xiaoshiweixinback.business.utils.FileUtils;
  4. import com.example.xiaoshiweixinback.business.utils.FormatUtil;
  5. import com.example.xiaoshiweixinback.domain.es.Patent;
  6. import com.example.xiaoshiweixinback.domain.es.PatentClassify;
  7. import com.example.xiaoshiweixinback.domain.es.PatentVector;
  8. import com.example.xiaoshiweixinback.entity.dto.patent.UploadPatentWebDTO;
  9. import com.example.xiaoshiweixinback.service.common.FileManagerService;
  10. import com.example.xiaoshiweixinback.service.common.GetVectorService;
  11. import org.apache.poi.ss.usermodel.PictureData;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.beans.factory.annotation.Configurable;
  14. import org.springframework.stereotype.Service;
  15. import java.io.File;
  16. import java.util.ArrayList;
  17. import java.util.List;
  18. @Configurable
  19. @Service
  20. public class GetPatentPictureFromExcelService {
  21. @Autowired
  22. private FileManagerService fileManagerService;
  23. @Autowired
  24. private GetFiguresService getFiguresService;
  25. @Autowired
  26. private EsService esService;
  27. @Autowired
  28. private GetVectorService getVectorService;
  29. public void run(UploadPatentWebDTO uploadPatentWebDTO) {
  30. PictureData pictureData = uploadPatentWebDTO.getPictureData();
  31. try {
  32. if (pictureData != null) {
  33. String ext = pictureData.suggestFileExtension();
  34. byte[] data = pictureData.getData();
  35. String picName = IdUtil.simpleUUID();
  36. File file = FileUtils.getFileByBytes(data, picName, "." + ext);
  37. this.tem(file, uploadPatentWebDTO.getPatent(), 0);
  38. }
  39. } catch (Exception e) {
  40. }
  41. }
  42. public void tem(File file, Patent patent, Integer i) throws Exception {
  43. String guid = FormatUtil.getPictureFormat(patent.getAppNo()) + i;
  44. fileManagerService.uploadFileWithGuid(file, guid);
  45. PatentVector patentVectorOrg = esService.getVectorByIndex(patent.getAppNo(), i);
  46. if (patentVectorOrg != null) {
  47. return;
  48. }
  49. PatentVector patentVector = new PatentVector();
  50. patentVector.setAppNo(patent.getAppNo());
  51. patentVector.setTitle(patent.getTitle());
  52. patentVector.setRightHolder(patent.getApplicant());
  53. patentVector.setAppDate(patent.getAppDate());
  54. patentVector.setAbstractStr(patent.getAbstractStr());
  55. patentVector.setAppCountry("US");
  56. patentVector.setLoc(patent.getLoc());
  57. patentVector.setImageIndex(i);
  58. patentVector.setGuid(guid);
  59. List<String> stringList = getVectorService.getVectorByFile(file);
  60. List<Float> floats = new ArrayList<>();
  61. stringList.forEach(item -> {
  62. Float a = Float.parseFloat(item);
  63. floats.add(a);
  64. });
  65. org.apache.commons.io.FileUtils.deleteQuietly(file);
  66. patentVector.setMyVector(floats);
  67. esService.addPatentVector(patentVector);
  68. }
  69. }