lwhhszx 1 rok pred
rodič
commit
9fa7d6bc12
17 zmenil súbory, kde vykonal 485 pridanie a 118 odobranie
  1. 49 0
      src/main/java/com/example/xiaoshiweixinback/controller/QuartzTaskController.java
  2. 49 0
      src/main/java/com/example/xiaoshiweixinback/domain/PatentUpdateRecord.java
  3. 42 0
      src/main/java/com/example/xiaoshiweixinback/domain/QuartzTask.java
  4. 17 51
      src/main/java/com/example/xiaoshiweixinback/entity/quartz/QrtzTaskDTO.java
  5. 9 0
      src/main/java/com/example/xiaoshiweixinback/entity/quartzTask/UpdatePatentDTO.java
  6. 18 0
      src/main/java/com/example/xiaoshiweixinback/mapper/PatentUpdateRecordMapper.java
  7. 18 0
      src/main/java/com/example/xiaoshiweixinback/mapper/QuartzTaskMapper.java
  8. 28 19
      src/main/java/com/example/xiaoshiweixinback/service/MonitorService.java
  9. 41 0
      src/main/java/com/example/xiaoshiweixinback/service/PatentUpdateRecordService.java
  10. 22 3
      src/main/java/com/example/xiaoshiweixinback/service/common/OPSService.java
  11. 0 2
      src/main/java/com/example/xiaoshiweixinback/service/exportPatent/PatentExportService.java
  12. 1 1
      src/main/java/com/example/xiaoshiweixinback/service/importPatent/EsDenseVectorService.java
  13. 84 30
      src/main/java/com/example/xiaoshiweixinback/service/importPatent/GetPatentPictureFromWebService.java
  14. 2 3
      src/main/java/com/example/xiaoshiweixinback/service/importPatent/ImportFromWebToEsService.java
  15. 42 6
      src/main/java/com/example/xiaoshiweixinback/service/quartzService/ImportJobService.java
  16. 12 3
      src/main/java/com/example/xiaoshiweixinback/service/quartzService/JobService.java
  17. 51 0
      src/main/java/com/example/xiaoshiweixinback/service/quartzService/QuartzTaskService.java

+ 49 - 0
src/main/java/com/example/xiaoshiweixinback/controller/QuartzTaskController.java

@@ -0,0 +1,49 @@
+package com.example.xiaoshiweixinback.controller;
+
+
+import com.example.xiaoshiweixinback.business.common.Constants;
+import com.example.xiaoshiweixinback.business.common.Response;
+import com.example.xiaoshiweixinback.business.common.base.Records;
+import com.example.xiaoshiweixinback.entity.dto.searchRecord.AddSearchRecordDTO;
+import com.example.xiaoshiweixinback.entity.quartz.QrtzTaskDTO;
+import com.example.xiaoshiweixinback.service.quartzService.QuartzTaskService;
+import io.swagger.v3.oas.annotations.Operation;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@Slf4j
+@RequestMapping(Constants.XIAOSHI_WEIXINBACK + "/quartzTask")
+@RestController
+@RequiredArgsConstructor
+public class QuartzTaskController {
+    @Autowired
+    private QuartzTaskService quartzTaskService;
+    @Operation(summary = "添加定时任务")
+    @PostMapping("/add")
+    public Response add(@RequestBody QrtzTaskDTO qrtzTaskDTO) {
+        Records records = new Records();
+        try {
+           quartzTaskService.addQuartzTask(qrtzTaskDTO);
+        } catch (Exception e) {
+            return Response.error(e.getMessage());
+        }
+        return Response.success(records);
+    }
+
+
+
+    @Operation(summary = "删除定时任务")
+    @GetMapping("/remove")
+    public Response remove(Integer id) {
+        Records records = new Records();
+        try {
+            quartzTaskService.deleteQuartzTask(id);
+        } catch (Exception e) {
+            return Response.error(e.getMessage());
+        }
+        return Response.success(records);
+    }
+
+}

+ 49 - 0
src/main/java/com/example/xiaoshiweixinback/domain/PatentUpdateRecord.java

@@ -0,0 +1,49 @@
+package com.example.xiaoshiweixinback.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 专利更新记录表
+ * @TableName patent_update_record
+ */
+@TableName(value ="patent_update_record")
+@Data
+public class PatentUpdateRecord extends BaseEntity<PatentUpdateRecord> {
+    /**
+     * ID
+     */
+    private Integer id;
+
+    /**
+     * 
+     */
+    private Date startTime;
+
+    /**
+     * 
+     */
+    private Date endTime;
+
+    /**
+     * 
+     */
+    private String searchCondition;
+
+    /**
+     * 
+     */
+    private Date createTime;
+
+    /**
+     * 
+     */
+    private String dbType;
+
+}

+ 42 - 0
src/main/java/com/example/xiaoshiweixinback/domain/QuartzTask.java

@@ -0,0 +1,42 @@
+package com.example.xiaoshiweixinback.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import lombok.Data;
+
+/**
+ * 定时任务
+ * @TableName quartz_task
+ */
+@TableName(value ="quartz_task")
+@Data
+public class QuartzTask extends BaseEntity<QuartzTask> {
+    /**
+     * ID
+     */
+    private Integer id;
+
+    /**
+     * 任务类型 0专利导入定时任务
+     */
+    private Integer taskType;
+
+    /**
+     * 参数
+     */
+    private String parameter;
+
+    /**
+     * 
+     */
+    private String cron;
+
+    /**
+     * 是否运行
+     */
+    private Integer ifRun;
+  private String jobClass;
+}

+ 17 - 51
src/main/java/com/example/xiaoshiweixinback/entity/quartz/QrtzTaskDTO.java

@@ -7,6 +7,7 @@ import lombok.Data;
 import lombok.experimental.Accessors;
 import org.springframework.format.annotation.DateTimeFormat;
 
+import java.io.Serializable;
 import java.util.Date;
 
 /**
@@ -15,66 +16,31 @@ import java.util.Date;
  * @Author chenyu
  * @Date 2023/3/27
  */
-@Accessors(chain = true)
 @Data
-public class QrtzTaskDTO {
-    private Integer id;
-    private Integer projectId;
-
-    private String taskName;
-
-
-    private Integer taskType;
-    /**
-     * 状态(0等待中 1进行中 2成功 3失败 4等待下一次执行 5取消 6暂停)
-     */
-    @TableField(value = "task_state")
-    private Integer taskState;
-    /**
-     * 检索信息
-     */
-    @TableField(value = "conditions")
-    private String conditions;
-    /**
-     * cron表达式
-     */
-    @TableField(value = "crons")
-    private String crons;
-    /**
-     * 下载字段
-     */
-    @TableField(value = "config_cells")
-    private String configCells;
+public class QrtzTaskDTO  implements Serializable {
     /**
-     * 网站id
+     * ID
      */
-    @TableField(value = "config_id")
-    private Integer configId;
+    private Integer id;
+
     /**
-     * 创建人id
+     * 任务类型 0专利导入定时任务
      */
-    @TableField(value = "create_person_id")
-    private Integer createPersonId;
+    private Integer taskType;
+
     /**
-     * 创建人名称
+     * 参数
      */
-    @TableField(value = "create_person_name")
-    private String createName;
-    @TableField(value = "tenant_id")
-    private Integer tenantId;
+    private String parameter;
+
     /**
-     * 创建时间
+     *
      */
-    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
-    @TableField(value = "create_time")
-    private Date createTime;
+    private String cron;
+
     /**
-     * 最后修改时间
+     * 是否运行
      */
-    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
-    @TableField(value = "modified_time")
-    private Date modifiedTime;
-
+    private Integer ifRun;
+    private String jobClass;
 }

+ 9 - 0
src/main/java/com/example/xiaoshiweixinback/entity/quartzTask/UpdatePatentDTO.java

@@ -0,0 +1,9 @@
+package com.example.xiaoshiweixinback.entity.quartzTask;
+
+import lombok.Data;
+
+@Data
+public class UpdatePatentDTO {
+    private String dbType;
+    private String searchCondition;
+}

+ 18 - 0
src/main/java/com/example/xiaoshiweixinback/mapper/PatentUpdateRecordMapper.java

@@ -0,0 +1,18 @@
+package com.example.xiaoshiweixinback.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.example.xiaoshiweixinback.domain.PatentUpdateRecord;
+
+/**
+* @author admin
+* @description 针对表【patent_update_record(专利更新记录表)】的数据库操作Mapper
+* @createDate 2024-05-06 11:29:12
+* @Entity xiaoshiweixinback.domain.PatentUpdateRecord
+*/
+public interface PatentUpdateRecordMapper extends BaseMapper<PatentUpdateRecord> {
+
+}
+
+
+
+

+ 18 - 0
src/main/java/com/example/xiaoshiweixinback/mapper/QuartzTaskMapper.java

@@ -0,0 +1,18 @@
+package com.example.xiaoshiweixinback.mapper;
+
+import com.example.xiaoshiweixinback.domain.QuartzTask;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+* @author admin
+* @description 针对表【quartz_task(定时任务)】的数据库操作Mapper
+* @createDate 2024-05-06 13:58:36
+* @Entity xiaoshiweixinback.domain.QuartzTask
+*/
+public interface QuartzTaskMapper extends BaseMapper<QuartzTask> {
+
+}
+
+
+
+

+ 28 - 19
src/main/java/com/example/xiaoshiweixinback/service/MonitorService.java

@@ -27,6 +27,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @author admin
@@ -40,9 +41,10 @@ public class MonitorService extends ServiceImpl<MonitorMapper, Monitor> {
     private final AssoPersonProductService assoPersonProductService;
     @Lazy
     @Autowired
-    private  ProductService productService;
+    private ProductService productService;
     private final CacheUtil cacheUtil;
     private final ProductMapper productMapper;
+
     /**
      * 添加监控
      *
@@ -67,15 +69,15 @@ public class MonitorService extends ServiceImpl<MonitorMapper, Monitor> {
             BeanUtils.copyProperties(addMonitoringDTO, productAddDTO);
             productId = productService.addOrUpdateProduct(productAddDTO);
         }
-          LambdaQueryWrapper<Monitor> queryWrapper =new LambdaQueryWrapper<>();
-        queryWrapper.eq(Monitor::getCreateId,personnelVO.getUuid())
-                    .eq(Monitor::getProductId,productId);
-        Monitor monitor =this.getOne(queryWrapper,false);
-        if(monitor!=null){
+        LambdaQueryWrapper<Monitor> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(Monitor::getCreateId, personnelVO.getUuid())
+                .eq(Monitor::getProductId, productId);
+        Monitor monitor = this.getOne(queryWrapper, false);
+        if (monitor != null) {
             return productId;
         }
         //添加监控
-         monitor = new Monitor();
+        monitor = new Monitor();
         monitor.setCreateId(personnelVO.getUuid());
         monitor.setMonitorPeriod(monitorPeriod);
         monitor.setProductId(productId);
@@ -118,27 +120,27 @@ public class MonitorService extends ServiceImpl<MonitorMapper, Monitor> {
 
     /**
      * 查询监控信息
+     *
      * @param selectMonitoringDTO
      * @return
      */
     public Records selectMonitoring(SelectMonitoringDTO selectMonitoringDTO) {
-        Long current =selectMonitoringDTO.getCurrent();
-        Long size =selectMonitoringDTO.getSize();
+        Long current = selectMonitoringDTO.getCurrent();
+        Long size = selectMonitoringDTO.getSize();
         PersonnelVO personnelVO = cacheUtil.getLoginUser(LoginUtils.getToken());
-        GetProductDTO getProductDTO =new GetProductDTO();
+        GetProductDTO getProductDTO = new GetProductDTO();
         getProductDTO.setSize(size);
         getProductDTO.setCurrent(current);
         getProductDTO.setPersonUuid(personnelVO.getUuid());
         List<ProductVO> productVOS = productMapper.getMonitoringProduct(getProductDTO);
-          Long total =productMapper.getMonitoringProductCount(getProductDTO);
-          try {
-              productService.loadProduct(productVOS, false);
-
-          }
-          catch (Exception e){
-              throw new BusinessException("607","装载错误");
-          }
-        Records records =new Records();
+        Long total = productMapper.getMonitoringProductCount(getProductDTO);
+        try {
+            productService.loadProduct(productVOS, false);
+
+        } catch (Exception e) {
+            throw new BusinessException("607", "装载错误");
+        }
+        Records records = new Records();
         records.setTotal(total);
         records.setData(productVOS);
         records.setSize(size);
@@ -147,6 +149,13 @@ public class MonitorService extends ServiceImpl<MonitorMapper, Monitor> {
     }
 
 
+    public void getAllMonitor() {
+        LambdaQueryWrapper<Monitor> queryWrapper = new LambdaQueryWrapper<>();
+        List<Monitor> monitors = this.list(queryWrapper);
+        List<Integer> productIds = monitors.stream().map(Monitor::getProductId).collect(Collectors.toList());
+
+
+    }
 }
 
 

+ 41 - 0
src/main/java/com/example/xiaoshiweixinback/service/PatentUpdateRecordService.java

@@ -0,0 +1,41 @@
+package com.example.xiaoshiweixinback.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.example.xiaoshiweixinback.domain.PatentUpdateRecord;
+import com.example.xiaoshiweixinback.mapper.PatentUpdateRecordMapper;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+
+/**
+* @author admin
+* @description 针对表【patent_update_record(专利更新记录表)】的数据库操作Service实现
+* @createDate 2024-05-06 11:29:12
+*/
+@Service
+public class PatentUpdateRecordService extends ServiceImpl<PatentUpdateRecordMapper, PatentUpdateRecord>{
+    public PatentUpdateRecord getLastRecord(String dbType){
+        LambdaQueryWrapper<PatentUpdateRecord> queryWrapper =new LambdaQueryWrapper<>();
+        queryWrapper.orderByDesc(PatentUpdateRecord::getCreateTime)
+                .eq(PatentUpdateRecord::getDbType,dbType);
+        PatentUpdateRecord patentUpdateRecord =  this.getOne(queryWrapper,false);
+         return patentUpdateRecord;
+
+    }
+
+    public PatentUpdateRecord addLastRecord(String dbType,String searchCondition){
+        PatentUpdateRecord patentUpdateRecord =new PatentUpdateRecord();
+        PatentUpdateRecord lastRecord =this.getLastRecord(dbType);
+        patentUpdateRecord.setDbType(dbType);
+        patentUpdateRecord.setStartTime(lastRecord.getStartTime());
+        patentUpdateRecord.setEndTime(new Date());
+        patentUpdateRecord.setSearchCondition(searchCondition);
+        patentUpdateRecord.insert();
+        return  patentUpdateRecord;
+    }
+}
+
+
+
+

+ 22 - 3
src/main/java/com/example/xiaoshiweixinback/service/common/OPSService.java

@@ -98,9 +98,9 @@ public class OPSService {
                 getFuTuParamsDTO.setType("application/tiff");
                 getFuTuParamsDTO.setLink(image.getUrlLink());
                 byte[] buffer = this.getPatentFile(getFuTuParamsDTO);
-               BufferedImage bufferedImage= ImageUtil.getByByte(buffer);
-               String name =rootPath + publicNo + "_" + (i - 1) + ".jpg";
-                ImageUtil.cutImage(bufferedImage,0,300,name);
+                BufferedImage bufferedImage = ImageUtil.getByByte(buffer);
+                String name = rootPath + publicNo + "_" + (i - 1) + ".jpg";
+                ImageUtil.cutImage(bufferedImage, 0, 300, name);
             }
         } else {
             return;
@@ -108,5 +108,24 @@ public class OPSService {
 
     }
 
+    public List<File> getImageFiles(ImagesInfoVO image, String publicNo) throws Exception {
+        List<File> files = new ArrayList<>();
+        if (image != null) {
+            Integer num = image.getNumberOfPages();
+            for (int i = 1; i < num + 1; i++) {
+                GetFuTuParamsDTO getFuTuParamsDTO = new GetFuTuParamsDTO();
+                getFuTuParamsDTO.setPage(i);
+                getFuTuParamsDTO.setType("application/tiff");
+                getFuTuParamsDTO.setLink(image.getUrlLink());
+                byte[] buffer = this.getPatentFile(getFuTuParamsDTO);
+                BufferedImage bufferedImage = ImageUtil.getByByte(buffer);
+                String name = publicNo + "_" + (i - 1) + ".jpg";
+                File file = ImageUtil.cutImage(bufferedImage, 0, 300, name);
+                files.add(file);
+            }
+        }
+        return files;
+
+    }
 
 }

+ 0 - 2
src/main/java/com/example/xiaoshiweixinback/service/exportPatent/PatentExportService.java

@@ -50,7 +50,6 @@ public class PatentExportService {
      * @return
      * @throws IOException
      */
-    @Async
     public String exportPatent(List<String> patentNos) throws IOException {
         try (ByteArrayOutputStream out = new ByteArrayOutputStream()) {
             String patentExportJson = ExcuteConfigUtils.excuteConfigJson();
@@ -86,7 +85,6 @@ public class PatentExportService {
                 cell.setCellValue(headers.get(i));
             }
 
-
             Integer total = patentNos.size();
             Integer defaultNum = 0;
 

+ 1 - 1
src/main/java/com/example/xiaoshiweixinback/service/importPatent/EsDenseVectorService.java

@@ -128,7 +128,7 @@ public class EsDenseVectorService {
             throw new BusinessException("608", "检索式错误,请重新输入");
         }
         GetImageVO imageVO = this.getImageList(dto.getProductId(), file, dto.getDescription());
-        List<Float> imageList = imageVO.getImageList();
+        List<Float> imageList = null;
         List<String> getGuids = imageVO.getGetGuids();
         if (!CollectionUtils.isEmpty(imageList)) {
             String source = "cosineSimilarity(params.queryVector, 'my_vector') + 1.0";

+ 84 - 30
src/main/java/com/example/xiaoshiweixinback/service/importPatent/GetPatentPictureFromWebService.java

@@ -2,16 +2,22 @@ package com.example.xiaoshiweixinback.service.importPatent;
 
 import com.example.xiaoshiweixinback.business.utils.FileUtils;
 import com.example.xiaoshiweixinback.business.utils.FormatUtil;
+import com.example.xiaoshiweixinback.business.utils.ImageUtil;
 import com.example.xiaoshiweixinback.domain.es.Patent;
 import com.example.xiaoshiweixinback.domain.es.PatentClassify;
 import com.example.xiaoshiweixinback.domain.es.PatentVector;
 import com.example.xiaoshiweixinback.entity.dto.patent.UploadPatentWebDTO;
+import com.example.xiaoshiweixinback.entity.ops.GetFuTuParamsDTO;
+import com.example.xiaoshiweixinback.entity.ops.ImagesInfoVO;
 import com.example.xiaoshiweixinback.service.common.FileManagerService;
 import com.example.xiaoshiweixinback.service.common.GetVectorService;
+import com.example.xiaoshiweixinback.service.common.OPSService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.awt.image.BufferedImage;
 import java.io.File;
+import java.io.FileFilter;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -27,42 +33,62 @@ public class GetPatentPictureFromWebService {
     private EsService esService;
     @Autowired
     private GetVectorService getVectorService;
+    @Autowired
+    private OPSService opsService;
 
     public void getPatentPicture(UploadPatentWebDTO uploadPatentWebDTO) {
+       String appNo=uploadPatentWebDTO.getPatent().getAppNo();
+       if(appNo.contains("CN")){
+           this.getCNPatentPicture(uploadPatentWebDTO);
+       }
+       else {
+           this.getWdPatentPicture(uploadPatentWebDTO);
+       }
+    }
+
+    public void getCNPatentPicture(UploadPatentWebDTO uploadPatentWebDTO) {
         try {
 
-            String pictureUrl = patentStarApiService.getPictureApi(uploadPatentWebDTO.getStarPatentVO().getRowApplicationNo());
+            List<String> pictureUrls = patentStarApiService.getExternalFigure(uploadPatentWebDTO.getStarPatentVO().getRowApplicationNo());
+            Patent patent = uploadPatentWebDTO.getPatent();
+            if (pictureUrls != null && pictureUrls.size()>0) {
+                for (int i=0;i<pictureUrls.size();i++){
+                    String pictureUrl =pictureUrls.get(i);
+                    File file = FileUtils.getPictureFileByUrl(pictureUrl);
+                    String guid = FormatUtil.getPictureFormat(uploadPatentWebDTO.getStarPatentVO().getApplicationNo());
+                    fileManagerService.uploadFileWithGuid(file, guid);
+                    PatentVector patentVectorOrg = esService.getVectorByIndex(patent.getAppNo(), 0);
+                    if (patentVectorOrg != null) {
+                        return;
+                    }
+                    this.addPatentVector(uploadPatentWebDTO, file, i);
+                }
+
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    public void getWdPatentPicture(UploadPatentWebDTO uploadPatentWebDTO) {
+        try {
             Patent patent = uploadPatentWebDTO.getPatent();
-            if (pictureUrl != null && !pictureUrl.contains("408")) {
-                File file = FileUtils.getPictureFileByUrl(pictureUrl);
-                String guid = FormatUtil.getPictureFormat(uploadPatentWebDTO.getStarPatentVO().getApplicationNo());
-                fileManagerService.uploadFileWithGuid(file, guid);
-              PatentVector patentVectorOrg =  esService.getVectorByIndex(patent.getAppNo(),0);
-                if(patentVectorOrg!=null){
-                    return;
+            String appNo = patent.getAppNo();
+            List<ImagesInfoVO> imagesInfoVOS = opsService.getImageInfos(patent.getPublicNo());
+            ImagesInfoVO infoVO = imagesInfoVOS.stream().filter(item -> item.getImageType().equals("Drawing")).findFirst().orElse(null);
+            List<File> files = opsService.getImageFiles(infoVO, appNo);
+            if (files != null && files.size() > 0) {
+                for (int i = 0; i < files.size(); i++) {
+                    String guid = FormatUtil.getPictureFormat(uploadPatentWebDTO.getStarPatentVO().getApplicationNo());
+                    File file = files.get(i);
+                    fileManagerService.uploadFileWithGuid(file, guid);
+                    PatentVector patentVectorOrg = esService.getVectorByIndex(patent.getAppNo(), 0);
+                    if (patentVectorOrg != null) {
+                        return;
+                    }
+                    this.addPatentVector(uploadPatentWebDTO, file, i);
                 }
-                PatentVector patentVector = new PatentVector();
-                patentVector.setAppNo(patent.getAppNo());
-                patentVector.setTitle(patent.getTitle());
-                patentVector.setRightHolder(patent.getRightHolder());
-                patentVector.setAppDate(patent.getAppDate());
-                patentVector.setAbstractStr(patent.getAbstractStr());
-                patentVector.setAppCountry(patent.getAppCountry());
-                PatentClassify patentClassify =new PatentClassify();
-                patentClassify.setLevel1(uploadPatentWebDTO.getStarPatentVO().getMainIpc());
-                patentVector.setLoc(Arrays.asList(patentClassify));
-                patentVector.setImageIndex(0);
-                patentVector.setGuid(guid);
-                List<String> stringList = getVectorService.getVectorByFile(file);
-                List<Float> floats =new ArrayList<>();
-                stringList.forEach(item->{
-                    Float a =Float.parseFloat(item);
-                    floats.add(a);
-
-                });
-                org.apache.commons.io.FileUtils.deleteQuietly(file);
-                patentVector.setMyVector(floats);
-                esService.addPatentVector(patentVector);
             }
 
         } catch (Exception e) {
@@ -71,4 +97,32 @@ public class GetPatentPictureFromWebService {
     }
 
 
+    public void addPatentVector(UploadPatentWebDTO uploadPatentWebDTO, File file, Integer index) throws Exception {
+        String guid = FormatUtil.getPictureFormat(uploadPatentWebDTO.getStarPatentVO().getApplicationNo());
+
+        Patent patent = uploadPatentWebDTO.getPatent();
+        PatentVector patentVector = new PatentVector();
+        patentVector.setAppNo(patent.getAppNo());
+        patentVector.setTitle(patent.getTitle());
+        patentVector.setRightHolder(patent.getRightHolder());
+        patentVector.setAppDate(patent.getAppDate());
+        patentVector.setAbstractStr(patent.getAbstractStr());
+        patentVector.setAppCountry(patent.getAppCountry());
+        PatentClassify patentClassify = new PatentClassify();
+        patentClassify.setLevel1(uploadPatentWebDTO.getStarPatentVO().getMainIpc());
+        patentVector.setLoc(Arrays.asList(patentClassify));
+        patentVector.setImageIndex(index);
+        patentVector.setGuid(guid);
+        List<String> stringList = getVectorService.getVectorByFile(file);
+        List<Float> floats = new ArrayList<>();
+        stringList.forEach(item -> {
+            Float a = Float.parseFloat(item);
+            floats.add(a);
+
+        });
+        org.apache.commons.io.FileUtils.deleteQuietly(file);
+        patentVector.setMyVector(floats);
+        esService.addPatentVector(patentVector);
+    }
+
 }

+ 2 - 3
src/main/java/com/example/xiaoshiweixinback/service/importPatent/ImportFromWebToEsService.java

@@ -34,11 +34,11 @@ private GetPatentPictureFromWebService getPatentPictureFromWebService;
 private GetFiguresService getFiguresService;
     public Boolean ImportTask(ImportTaskAMVO importTaskAMVO) {
 
-        return excuteLessThan10000(importTaskAMVO);
+        return importToEs(importTaskAMVO);
     }
 
 
-    private Boolean excuteLessThan10000(ImportTaskAMVO importTaskAMVO) {
+    private Boolean importToEs(ImportTaskAMVO importTaskAMVO) {
         Boolean ifHaveGet = false;
         try {
             String orderBy = importTaskAMVO.getOrderBy();  //排序字段
@@ -131,7 +131,6 @@ private GetFiguresService getFiguresService;
                         getCataloguingFromWebService.loadPatentMessage(uploadPatentWebDTO);
                          savePatentToEsService.saveOrUpdate(uploadPatentWebDTO);
                          getPatentPictureFromWebService.getPatentPicture(uploadPatentWebDTO);
-                        getFiguresService.getFigures(uploadPatentWebDTO);
                         ifHaveGet = true;
                         index += 1;
                         System.out.println(index);

+ 42 - 6
src/main/java/com/example/xiaoshiweixinback/service/quartzService/ImportJobService.java

@@ -1,13 +1,49 @@
 package com.example.xiaoshiweixinback.service.quartzService;
 
-public class ImportJobService {
+import com.alibaba.fastjson.JSONArray;
+import com.example.xiaoshiweixinback.domain.PatentUpdateRecord;
+import com.example.xiaoshiweixinback.entity.dto.patent.ImportTaskAMVO;
+import com.example.xiaoshiweixinback.entity.quartz.QrtzTaskDTO;
+import com.example.xiaoshiweixinback.entity.quartz.QuartzVO;
+import com.example.xiaoshiweixinback.entity.quartzTask.UpdatePatentDTO;
+import com.example.xiaoshiweixinback.service.PatentUpdateRecordService;
+import com.example.xiaoshiweixinback.service.importPatent.ImportFromWebToEsService;
+import lombok.RequiredArgsConstructor;
+import org.quartz.DisallowConcurrentExecution;
+import org.quartz.JobDataMap;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.springframework.scheduling.quartz.QuartzJobBean;
+import org.springframework.stereotype.Service;
 
-    /**
-     * 定时导入专利
-     */
-    public  void timingImportPatent(){
-       //获取上次导入的信息
+import java.util.List;
 
+@DisallowConcurrentExecution
+@RequiredArgsConstructor
+public class ImportJobService extends QuartzJobBean {
+    private final ImportFromWebToEsService importFromWebToEsService;
+    private final PatentUpdateRecordService patentUpdateRecordService;
+
+    @Override
+    public void executeInternal(JobExecutionContext context) throws JobExecutionException {
+        JobDataMap jobDataMap = context.getTrigger().getJobDataMap();
+        QrtzTaskDTO qrtzTask = (QrtzTaskDTO) jobDataMap.get("qrtzTask");
+        String parameter = qrtzTask.getParameter();
+        if (parameter != null) {
+            List<UpdatePatentDTO> updatePatentDTOS = JSONArray.parseArray(parameter, UpdatePatentDTO.class);
+            for (UpdatePatentDTO updatePatentDTO : updatePatentDTOS) {
+//            PatentUpdateRecord patentUpdateRecord= patentUpdateRecordService.addLastRecord(updatePatentDTO.getDbType(),updatePatentDTO.getSearchCondition());
+                ImportTaskAMVO importTaskAMVO = new ImportTaskAMVO();
+                importTaskAMVO.setSearchCondition(updatePatentDTO.getSearchCondition());
+                importTaskAMVO.setOrderBy("AD");
+                importTaskAMVO.setOrderByType("DESC");
+                importTaskAMVO.setDbType(updatePatentDTO.getDbType());
+                importFromWebToEsService.ImportTask(importTaskAMVO);
+
+            }
+
+
+        }
 
     }
 }

+ 12 - 3
src/main/java/com/example/xiaoshiweixinback/service/quartzService/JobService.java

@@ -1,6 +1,7 @@
 package com.example.xiaoshiweixinback.service.quartzService;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.example.xiaoshiweixinback.business.exception.BusinessException;
 import com.example.xiaoshiweixinback.entity.quartz.QrtzTaskDTO;
 import com.example.xiaoshiweixinback.entity.quartz.QuartzVO;
 import lombok.RequiredArgsConstructor;
@@ -67,7 +68,7 @@ public class JobService {
         JobDataMap jobDataMap = new JobDataMap();
         jobDataMap.put("qrtzTask", qrtzTask);
         TriggerKey oldTriggerKey = TriggerKey.triggerKey(quartzVO.getTriggerName(), quartzVO.getTriggerGroupName());
-        CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(qrtzTask.getCrons());
+        CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(qrtzTask.getCron());
         CronTrigger cronTrigger = TriggerBuilder.newTrigger()
                 .withIdentity(oldTriggerKey).usingJobData(jobDataMap).withSchedule(scheduleBuilder).build();
         try {
@@ -85,12 +86,20 @@ public class JobService {
     @Transactional
     public void addJob(QrtzTaskDTO qrtzTask) throws SchedulerException {
         //添加一条任务记录
+        Class  jobClass= null;
+        try {
+              jobClass  = Class.forName(qrtzTask.getJobClass());
+
+        }
+        catch (Exception e){
+            throw new BusinessException("607","未找到类");
+        }
         QuartzVO quartzVO = this.generateQuartzVO(qrtzTask.getId());
         JobDataMap jobDataMap = new JobDataMap();
         jobDataMap.put("qrtzTask", qrtzTask);
-        CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(qrtzTask.getCrons());
+        CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(qrtzTask.getCron());
         JobDetail jobDetail = JobBuilder
-                .newJob(TaskAddJob.class)
+                .newJob(jobClass)
                 .withIdentity(quartzVO.getJobName(), quartzVO.getJobGroupName())
                 .build();
         Trigger trigger = TriggerBuilder

+ 51 - 0
src/main/java/com/example/xiaoshiweixinback/service/quartzService/QuartzTaskService.java

@@ -0,0 +1,51 @@
+package com.example.xiaoshiweixinback.service.quartzService;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.example.xiaoshiweixinback.business.exception.BusinessException;
+import com.example.xiaoshiweixinback.domain.QuartzTask;
+import com.example.xiaoshiweixinback.entity.quartz.QrtzTaskDTO;
+import com.example.xiaoshiweixinback.mapper.QuartzTaskMapper;
+import com.example.xiaoshiweixinback.service.quartzService.JobService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * @author admin
+ * @description 针对表【quartz_task(定时任务)】的数据库操作Service实现
+ * @createDate 2024-05-06 13:58:36
+ */
+@Service
+public class QuartzTaskService extends ServiceImpl<QuartzTaskMapper, QuartzTask> {
+    @Autowired
+    private JobService jobService;
+@Transactional(rollbackFor = Exception.class)
+    public void addQuartzTask(QrtzTaskDTO qrtzTaskDTO) {
+        QuartzTask quartzTask = new QuartzTask();
+        BeanUtils.copyProperties(qrtzTaskDTO, quartzTask);
+        quartzTask.insert();
+        qrtzTaskDTO.setId(quartzTask.getId());
+        try {
+            jobService.addJob(qrtzTaskDTO);
+
+        } catch (Exception e) {
+            throw new BusinessException("607", "添加定时任务失败");
+        }
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    public void deleteQuartzTask(Integer taskId) {
+        this.removeById(taskId);
+        try {
+            jobService.deleteJob(taskId);
+        } catch (Exception e) {
+            throw new BusinessException("607", "删除失败");
+        }
+
+    }
+}
+
+
+
+