Parcourir la source

7/30 外部检索逻辑更改

lwhhszx il y a 1 an
Parent
commit
ed3f5e0bbf

+ 13 - 0
src/main/java/cn/cslg/pas/common/utils/DateUtils.java

@@ -553,6 +553,19 @@ public class DateUtils {
     }
 
     /**
+     * 获取几天之后的日期
+     *
+     * @param date yyyy-MM-dd HH:mm:ss
+     * @param day  加减的天数
+     */
+    public static Date getDate(Date date, int day) {
+        Calendar cal = Calendar.getInstance();
+            cal.setTime(date);
+            cal.add(Calendar.DAY_OF_MONTH, day);
+            return cal.getTime();
+    }
+
+    /**
      * 获取某个日期 在加上 秒数的时间
      *
      * @param beforeDate yyyy-MM-dd HH:mm:ss

+ 87 - 0
src/main/java/cn/cslg/pas/common/utils/DateUtils2.java

@@ -114,4 +114,91 @@ public class DateUtils2 {
             throw new RuntimeException("时间转化格式错误" + "[dateString=" + dateString + "]" + "[FORMAT_STRING=" + FORMAT_STRING + "]");
         }
     }
+
+    /**
+     * 获取第几个星期
+     *
+     * @param date
+     * @return
+     */
+    public static int getDateWeekIndex(Date date) {
+        Calendar calendar = Calendar.getInstance(Locale.getDefault());
+        calendar.setTime(date); // 注意月份是从0开始的,即0=1月,1=2月,...
+        // 获取周数可能依赖于Calendar的设置,这里使用默认设置
+        int weekOfYear = calendar.get(Calendar.WEEK_OF_YEAR);
+        return weekOfYear;
+    }
+
+
+    /**
+     * 获取第几个月
+     *
+     * @param date
+     * @return
+     */
+    public static int getDateMonthIndex(Date date) {
+        Calendar calendar = Calendar.getInstance(Locale.getDefault());
+        calendar.setTime(date); // 注意月份是从0开始的,即0=1月,1=2月,...
+        // 获取周数可能依赖于Calendar的设置,这里使用默认设置
+        int month = calendar.get(Calendar.MONTH) + 1;
+        return month;
+    }
+
+
+    /**
+     * 获取第几个季度
+     *
+     * @param date
+     * @return
+     */
+    public static int getDateQuarterIndex(Date date) {
+        Calendar calendar = Calendar.getInstance(Locale.getDefault());
+        calendar.setTime(date); // 注意月份是从0开始的,即0=1月,1=2月,...
+        // 获取周数可能依赖于Calendar的设置,这里使用默认设置
+        int month = calendar.get(Calendar.MONTH) + 1;
+        int quarter;
+
+        if (month >= Calendar.JANUARY && month <= Calendar.MARCH) {
+            quarter = 1;
+        } else if (month >= Calendar.APRIL && month <= Calendar.JUNE) {
+            quarter = 2;
+        } else if (month >= Calendar.JULY && month <= Calendar.SEPTEMBER) {
+            quarter = 3;
+        } else {
+            quarter = 4;
+        }
+        return quarter;
+    }
+
+    public static int getDateYear(Date date) {
+        Calendar calendar = Calendar.getInstance(Locale.getDefault());
+        calendar.setTime(date); // 注意月份是从0开始的,即0=1月,1=2月,...
+        // 获取周数可能依赖于Calendar的设置,这里使用默认设置
+        int year = calendar.get(Calendar.YEAR);
+        return year;
+    }
+
+
+    public static String getDateIndexStr(Date date, String type) {
+        StringBuilder dateStr = new StringBuilder();
+        int year = DateUtils2.getDateYear(date);
+        dateStr.append(year);
+        switch (type) {
+            case "week":
+                int week = DateUtils2.getDateWeekIndex(date);
+                dateStr.append("第" + week + "周");
+                break;
+            case "month":
+                int month = DateUtils2.getDateMonthIndex(date);
+                dateStr.append("第" + month + "月");
+                break;
+            case "quarter":
+                int quarter = DateUtils2.getDateQuarterIndex(date);
+                dateStr.append("第" + quarter + "季度");
+                break;
+        }
+        String reDate = dateStr.toString();
+        return reDate;
+    }
+
 }

+ 1 - 1
src/main/java/cn/cslg/pas/common/vo/ImportTaskAMVO.java

@@ -1,7 +1,6 @@
 package cn.cslg.pas.common.vo;
 
 import cn.cslg.pas.common.dto.es.EsCustomFieldDTO;
-import com.baomidou.mybatisplus.annotation.TableField;
 import lombok.Data;
 
 import java.util.List;
@@ -96,4 +95,5 @@ public class ImportTaskAMVO {
     private String patentNoStr;
     private List<EsCustomFieldDTO> fieldDTOS;
     private Integer pdfType;
+    private String updateCycle;
 }

+ 24 - 28
src/main/java/cn/cslg/pas/service/business/ImportTaskService.java

@@ -208,10 +208,10 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
                     if (resultMap == null || (Integer) resultMap.get("total") == 0) {
                         ThrowException.throwXiaoShiException("未检索到相关专利");
                     } else {
-                        List<StarPatentVO> starPatentVOS =(List<StarPatentVO>)resultMap.get("records");
-                        StarPatentVO starPatentVO =starPatentVOS.get(0);
-                      String pDStr =  starPatentVO.getPD();
-                        Date publicDate =  DateUtils2.formStrToDate(pDStr);
+                        List<StarPatentVO> starPatentVOS = (List<StarPatentVO>) resultMap.get("records");
+                        StarPatentVO starPatentVO = starPatentVOS.get(0);
+                        String pDStr = starPatentVO.getPD();
+                        Date publicDate = DateUtils2.formStrToDate(pDStr);
                         importTask.setUpdateToDate(publicDate);
                         importTask.setAllNum((Integer) resultMap.get("total"));
                     }
@@ -506,12 +506,9 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
         } else if ((sqls.get(0) == null || sqls.get(0).equals("")) && !rootSql.equals("")) {
             sqls.set(0, rootSql);
         }
-
         return sqls;
-
     }
 
-
     public Integer addPdfTask(AddImportPDFTaskDTO addImportPDFTaskDTO) {
         String fileGuid = addImportPDFTaskDTO.getFileGuid();
         Integer pdfType = addImportPDFTaskDTO.getPdfType();
@@ -531,21 +528,20 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
         schedulingTaskService.startTask();
         return importTask.getId();
     }
-    public void addImportTaskByCondition(ImportTaskCondition importTaskCondition){
-         //根据id查询最近更新的任务
-        LambdaQueryWrapper<ImportTask> queryWrapper =new LambdaQueryWrapper<>();
-        queryWrapper.eq(ImportTask::getImportTaskConditionId,importTaskCondition.getId())
-                .orderByDesc(ImportTask::getUpdateToDate);
-        ImportTask lastImportTask =this.getOne(queryWrapper);
 
-        String condition =importTaskCondition.getSearchCondition();
-        if(lastImportTask !=null&&lastImportTask.getUpdateToDate()!=null)
-        {
-           String dateStr= DateUtils2.dateTimeToPatentStr(lastImportTask.getUpdateToDate());
-            condition =condition+"and PD="+dateStr;
+    public void addImportTaskByCondition(ImportTaskCondition importTaskCondition) {
+        //根据id查询最近更新的任务
+        LambdaQueryWrapper<ImportTask> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(ImportTask::getImportTaskConditionId, importTaskCondition.getId())
+                .orderByDesc(ImportTask::getUpdateToDate);
+        ImportTask lastImportTask = this.getOne(queryWrapper);
+        String condition = importTaskCondition.getSearchCondition();
+        if (lastImportTask != null && lastImportTask.getUpdateToDate() != null) {
+            String dateStr = DateUtils2.dateTimeToPatentStr(lastImportTask.getUpdateToDate());
+            condition = condition + "and PD>" + dateStr;
         }
         PatentStarListDTO patentStarListDto = new PatentStarListDTO()
-                .setCurrentQuery(condition )
+                .setCurrentQuery(condition)
                 .setPageNum(1)
                 .setRowCount(10)
                 .setDBType(importTaskCondition.getDbType());
@@ -555,18 +551,15 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
             Map<String, Object> resultMap = patentStarApiService.patentStarSearchApi(patentStarListDto);
             if (resultMap == null || (Integer) resultMap.get("total") == 0) {
                 return;
-            }
-            else {
-                List<StarPatentVO> starPatentVOS =(List<StarPatentVO>)resultMap.get("records");
-                StarPatentVO starPatentVO =starPatentVOS.get(0);
-                String pDStr =  starPatentVO.getPD();
-                Date publicDate =   DateUtils2.formStrToDate(pDStr);
+            } else {
+                List<StarPatentVO> starPatentVOS = (List<StarPatentVO>) resultMap.get("records");
+                StarPatentVO starPatentVO = starPatentVOS.get(0);
+                String pDStr = starPatentVO.getPD();
+                Date publicDate = DateUtils2.formStrToDate(pDStr);
                 importTask.setUpdateToDate(publicDate);
                 importTask.setAllNum((Integer) resultMap.get("total"));
             }
-        }
-
-        catch (Exception e){
+        } catch (Exception e) {
             e.printStackTrace();
 
         }
@@ -575,6 +568,9 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
         importTask.setType(importTaskCondition.getType());
         importTask.setSearchCondition(condition);
         importTask.setCreateId(importTaskCondition.getCreateId());
+        Date date = new Date();
+        Date toDate = DateUtils.getDate(date, -7);
+        importTask.setUpdateToDate(toDate);
         importTask.insert();
 
     }

+ 0 - 4
src/main/java/cn/cslg/pas/service/importPatent/ImportFromWebToEsService.java

@@ -358,9 +358,5 @@ public class ImportFromWebToEsService implements PatentImportImp {
     }
 
 
-    private void loadPatent(StarPatentVO starPatentVO, Patent patent) {
 
-
-
-    }
 }

+ 2 - 1
src/main/java/cn/cslg/pas/service/importPatent/SavePatentToEsThread.java

@@ -139,6 +139,8 @@ public class SavePatentToEsThread extends Thread {
                     esProductPatentService.addProductPatent(patentId, importTaskAMVO.getProductId());
                 }
 
+
+
                 //保存和自定义字段关联
                 if (importTaskAMVO.getFieldDTOS() != null && importTaskAMVO.getFieldDTOS().size() > 0) {
                     for (EsCustomFieldDTO esCustomFieldDTO : importTaskAMVO.getFieldDTOS()
@@ -236,5 +238,4 @@ return  patent;
     }
 
 
-    p
 }

+ 14 - 2
src/main/java/cn/cslg/pas/service/importPatent/SchedulingTaskService.java

@@ -40,6 +40,8 @@ public class SchedulingTaskService {
     @Autowired
     private ReportProjectService reportProjectService;
     private List<ImportTaskAMVO> importTaskAMVOS;
+    @Autowired
+    private WebVOTransformService webVOTransformService;
 
     public void startTask() {
         Integer freeCount = Constants.MAX_IMPORT_TASK_COUNT - threadPoolTaskExecutor.getActiveCount();
@@ -83,8 +85,8 @@ public class SchedulingTaskService {
     }
 
     public List<ImportTaskAMVO> loadTaskAMVOS(List<ImportTask> importTaskList) {
-        //根据projectId 获得报告类型
 
+        //根据projectId 获得报告类型
         List<ImportTaskAMVO> importTaskAMVOS = new ArrayList<>();
         List<Integer> taskConditionIds = new ArrayList<>();
         List<ImportTaskCondition> importTaskConditions = new ArrayList<>();
@@ -114,11 +116,21 @@ public class SchedulingTaskService {
                 importTaskAMVO.setPatentNoStr(importTaskCondition.getPatentNos());
                 importTaskAMVO.setPdfType(importTaskCondition.getPdfType());
                 if (importTaskCondition.getCustomFields() != null) {
-
                     JSONArray jsonArray = JSONArray.parseArray(importTaskCondition.getCustomFields());
                     List<EsCustomFieldDTO> dtos = jsonArray.toJavaList(EsCustomFieldDTO.class);
                     importTaskAMVO.setFieldDTOS(dtos);
                 }
+
+                //定时任务
+                if (importTaskCondition.getIfCycle() != null && importTaskCondition.getIfCycle()) {
+                    List<EsCustomFieldDTO> dtoList = webVOTransformService.getEsCustomFieldDTOList(importTaskAMVO);
+                    if (importTaskAMVO.getFieldDTOS() == null) {
+                        importTaskAMVO.setFieldDTOS(dtoList);
+                    } else {
+                        importTaskAMVO.getFieldDTOS().addAll(dtoList);
+                    }
+                }
+
                 LambdaQueryWrapper<ReportProject> rQueryWrapper = new LambdaQueryWrapper<>();
                 rQueryWrapper.eq(ReportProject::getProjectId, importTaskCondition.getProjectId());
                 ReportProject reportProject = reportProjectService.getOne(rQueryWrapper, false);

+ 9 - 4
src/main/java/cn/cslg/pas/service/importPatent/WebVOTransformService.java

@@ -4,6 +4,7 @@ import cn.cslg.pas.common.core.IgnoreDTDEntityResolver;
 import cn.cslg.pas.common.dto.UploadPatentWebDTO;
 import cn.cslg.pas.common.dto.es.EsCustomFieldDTO;
 import cn.cslg.pas.common.utils.DateUtils;
+import cn.cslg.pas.common.utils.DateUtils2;
 import cn.cslg.pas.common.utils.esDataForm.AddressSplitter;
 import cn.cslg.pas.common.utils.esDataForm.PatentClassifySplitter;
 import cn.cslg.pas.common.vo.ImportTaskAMVO;
@@ -840,13 +841,17 @@ public class WebVOTransformService {
     }
 
 
-    public  List<EsCustomFieldDTO> getEsCustomFieldDTOList(ImportTaskAMVO importTaskAMVO){
-        UploadParamsVO.Field field =new UploadParamsVO.Field();
+    public List<EsCustomFieldDTO> getEsCustomFieldDTOList(ImportTaskAMVO importTaskAMVO) {
+        UploadParamsVO.Field field = new UploadParamsVO.Field();
         field.setKey("定时跟新:6");
-        String value ="";
-        List<EsCustomFieldDTO> esCustomFieldDTOList = customFieldService.getFieldDTOByStrings(uploadParamsVO.getCustomerFieldList(), importTaskAMVO.getProjectId(),null);
+        Date date = new Date();
+        String cycle = DateUtils2.getDateIndexStr(date, importTaskAMVO.getUpdateCycle());
 
+        field.setFieldList(Arrays.asList(cycle));
 
+        List<EsCustomFieldDTO> esCustomFieldDTOList = customFieldService.getFieldDTOByStrings(Arrays.asList(field), importTaskAMVO.getProjectId(), null);
+
+        return esCustomFieldDTOList;
     }