chendayu преди 2 години
родител
ревизия
c9a415735e

+ 1 - 1
PAS/src/main/java/cn/cslg/pas/common/core/CreateTaskThread.java

@@ -42,7 +42,7 @@ public class CreateTaskThread implements InitializingBean {
             List<Integer> doingTaskIds = doingTasks.stream().map(Task::getId).collect(Collectors.toList());
             if (doingTaskIds.size() > 0) {
                 //先将进行中的任务(项目重启后进行中的任务仅会有1个)的id先存入任务队列,再将其余存入
-                pantentQueueService.taskQueueAddTask(Arrays.asList(doingTaskIds.get(0)));
+                pantentQueueService.taskQueueAddTask(doingTaskIds);
                 taskIds.removeAll(doingTaskIds);
             }
             pantentQueueService.taskQueueAddTask(taskIds);

+ 2 - 1
PAS/src/main/java/cn/cslg/pas/common/model/dto/QrtzTaskAddNewDTO.java

@@ -31,7 +31,8 @@ public class QrtzTaskAddNewDTO {
     /**
      * 需要检索的数据库类型("CN"/"WD")
      */
-    private String DBType;
+    @JsonProperty(value = "DBType")
+    private String dBType;
     /**
      * 下载起始条数位置(如2表示从第二个专利开始下载)
      */

+ 43 - 0
PAS/src/main/java/cn/cslg/pas/common/model/dto/QueryTaskDTO.java

@@ -0,0 +1,43 @@
+package cn.cslg.pas.common.model.dto;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 查询任务DTO类
+ *
+ * @Author chenyu
+ * @Date 2023/7/7
+ */
+@Accessors(chain = true)
+@Data
+public class QueryTaskDTO extends PageDTO2 implements Serializable {
+    /**
+     * 专题库id
+     */
+    private Integer projectId;
+    /**
+     * 报告id
+     */
+    private Integer reportId;
+    /**
+     * 创建人名称
+     */
+    private String createName;
+    /**
+     * 任务类型1(0普通任务 1定时任务)
+     */
+    private Integer taskType;
+    /**
+     * 任务类型2(1Excel导入 3欧专局导入 4专利之星导入)
+     */
+    private Integer taskType2;
+    /**
+     * 任务状态(0等待中 1进行中 2已完成 4已暂停)
+     */
+    private List<Integer> taskStatus;
+
+}

+ 129 - 0
PAS/src/main/java/cn/cslg/pas/common/model/vo/QueryTaskVO.java

@@ -0,0 +1,129 @@
+package cn.cslg.pas.common.model.vo;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 查询任务返回VO类
+ *
+ * @Author chenyu
+ * @Date 2023/7/7
+ */
+@Accessors(chain = true)
+@Data
+public class QueryTaskVO implements Serializable {
+    /**
+     * 主键
+     */
+    private Integer id;
+    /**
+     * 任务类型 1.Excel导入专利任务 2.导出 3.Epo欧专局导入 4.专利之星导入
+     */
+    private Integer type;
+    /**
+     * 创建人
+     */
+    private Integer createBy;
+    /**
+     * 开始时间
+     */
+    private Integer startTime;
+    /**
+     * 专题库id
+     */
+    private Integer projectId;
+    /**
+     * 报告id
+     */
+    private Integer reportId;
+    /**
+     * 专利总数量
+     */
+    private Integer total;
+    /**
+     * 完成时间
+     */
+    private Integer endTime;
+    /**
+     * 任务状态(0.队列中 1.进行中 2.已完成 4.已暂停)
+     */
+    private Integer status;
+    /**
+     * 文件名(Excel导入的任务的任务名称)
+     */
+    private String fileName;
+    /**
+     * 文件大小(Excel导入的任务的文件大小)
+     */
+    private Long fileSize;
+    /**
+     * 成功条数
+     */
+    private Integer successNum;
+    /**
+     * 失败条数
+     */
+    private Integer defaultNum;
+    /**
+     * 文件原名称(Excel导入的任务的文件名称)
+     */
+    private String oldName;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    //以上若是网站导入的任务,则以下为关联任务条件表数据;以上若是Excel导入的任务,则以下都是null
+    /**
+     * 任务类型1 (0普通任务 1定时任务)
+     */
+    private Integer taskType;
+    /**
+     * 检索式
+     */
+    private String conditions;
+    /**
+     * 下载字段
+     */
+    private String configCells;
+    /**
+     * 任务名称
+     */
+    private String taskName;
+    /**
+     * 排序字段
+     */
+    private String orderBy;
+    /**
+     * 排序类型
+     */
+    private String orderByType;
+    /**
+     * 检索数据库类型
+     */
+    private String DBType;
+    /**
+     * 下载起始条数位置
+     */
+    private Integer startNumber;
+    /**
+     * 下载终止条数位置
+     */
+    private Integer endNumber;
+    /**
+     * 需要额外下载的专利
+     */
+    private String isAddPatentNos;
+    /**
+     * 起止条数中不需要下载的专利
+     */
+    private String isDeletePatentNos;
+    /**
+     * 创建人名称
+     */
+    private String createName;
+
+}

+ 2 - 1
PAS/src/main/java/cn/cslg/pas/common/utils/Response.java

@@ -44,7 +44,8 @@ public class Response {
 
     public static Response fail(Object data) {
         Response response = new Response();
-        response.setResultEnum(ResponseEnum.ERROR);
+        response.setCode(ResponseEnum.ERROR.getCode());
+        response.setMessage(data + "");
         response.setData(data);
         return response;
     }

+ 11 - 1
PAS/src/main/java/cn/cslg/pas/controller/TaskController.java

@@ -1,7 +1,9 @@
 package cn.cslg.pas.controller;
 
 import cn.cslg.pas.common.core.base.Constants;
+import cn.cslg.pas.common.model.dto.PageDTO2;
 import cn.cslg.pas.common.model.dto.QrtzTaskAddNewDTO;
+import cn.cslg.pas.common.model.dto.QueryTaskDTO;
 import cn.cslg.pas.common.model.vo.ProjectImportPatentVO;
 import cn.cslg.pas.common.model.vo.TaskVO;
 import cn.cslg.pas.common.utils.JsonUtils;
@@ -47,6 +49,13 @@ public class TaskController {
         return Response.success(taskService.getPageList(params));
     }
 
+
+    @PostMapping("/queryTasks")
+    @Operation(summary = "查询任务列表")
+    public String queryTasks(@RequestBody QueryTaskDTO queryTaskDTO) throws IOException {
+        return Response.success(taskService.queryTasks(queryTaskDTO));
+    }
+
     @PostMapping("delete")
     @Operation(summary = "删除任务")
     public String delete(Integer id) {
@@ -67,9 +76,10 @@ public class TaskController {
     }
 
     @PostMapping("addTask")
-    @Operation(summary = "新增导入专利任务")
+    @Operation(summary = "新增网站导入专利任务")
     public String add(@RequestBody QrtzTaskAddNewDTO qrtzTaskAddNewDTO) throws IOException, SchedulerException {
         log.info("开始处理【新增网站导入专利任务】的请求,请求参数为:{}", qrtzTaskAddNewDTO);
+
         AssoOsTaskQrtzTask assoOsTaskQrtzTask = new AssoOsTaskQrtzTask();
         //新增欧专局网站导入任务
         if (qrtzTaskAddNewDTO.getTaskType2().equals(3)) {

+ 2 - 2
PAS/src/main/java/cn/cslg/pas/controller/outApi/PatentStarController.java

@@ -28,8 +28,8 @@ public class PatentStarController {
     @PostMapping("/select")
     @Operation(summary = "一般检索接口")
     public String getAreaList(@RequestBody @Validated PatentStarListDto patentStarListDto) throws IOException {
-          Map<String,Object> map =  patentStarApiService.patentStarSearchApi(patentStarListDto);
-        if(map==null){
+        Map<String, Object> map = patentStarApiService.patentStarSearchApi(patentStarListDto);
+        if (map == null) {
             return Response.error("检索失败,请检查检索式");
         }
         return Response.success(map);

+ 8 - 2
PAS/src/main/java/cn/cslg/pas/domain/Task.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -34,7 +35,7 @@ public class Task extends BaseEntity<Task> {
     private Integer createBy;
 
     /**
-     * 创建时间
+     * 开始时间
      */
     @TableField("ctime")
     private Integer startTime;
@@ -47,7 +48,7 @@ public class Task extends BaseEntity<Task> {
     /**
      * 报告id
      */
-    @TableField("rid")
+    @TableField("report_id")
     private Integer reportId;
 
     /**
@@ -123,6 +124,11 @@ public class Task extends BaseEntity<Task> {
      */
     @TableField("qrtz_task_id")
     private Integer qrtzTaskId;
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
 
 
     @TableField(exist = false)

+ 2 - 2
PAS/src/main/java/cn/cslg/pas/domain/asso/AssoOsTaskQrtzTask.java

@@ -100,11 +100,11 @@ public class AssoOsTaskQrtzTask implements Serializable {
      * 需要额外下载的专利
      */
     @TableField(value = "isadd_patentnos")
-    private List<String> isAddPatentNos;
+    private String isAddPatentNos;
     /**
      * 起止条数中不需要下载的专利
      */
     @TableField(value = "isdelete_patentnos")
-    private List<String> isDeletePatentNos;
+    private String isDeletePatentNos;
 
 }

+ 2 - 3
PAS/src/main/java/cn/cslg/pas/service/ProjectService.java

@@ -548,10 +548,9 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
         assoStructurePatentMapper.deleteByProjectId(id);
         //陈宇 ↓ 删除任务表(os_task)数据
         List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getProjectId, id));
-        Task task = tasks.get(0);
-        taskService.removeById(task.getId());
+        taskService.removeByIds(tasks.stream().map(Task::getId).collect(Collectors.toList()));
         //陈宇 ↓ 删除任务和任务条件关联表(asso_osTask_qrtzTask)数据
-        assoOsTaskQrtzTaskService.removeById(task.getQrtzTaskId());
+        assoOsTaskQrtzTaskService.removeByIds(tasks.stream().map(Task::getQrtzTaskId).collect(Collectors.toList()));
 
         return Response.success();
     }

+ 0 - 8
PAS/src/main/java/cn/cslg/pas/service/getPatentStarPart/GetPatentStarPartService.java

@@ -246,19 +246,11 @@ public class GetPatentStarPartService {
         nameMap.put(0, "发生日期");
         nameMap.put(1, "法律状态");
         nameMap.put(2, "详细法律状态");
-//        nameMap.put(3, "IPC分类");
-//        nameMap.put(4, "申请号");
-//        nameMap.put(5, "申请日");
-//        nameMap.put(6, "变更编号");
         nameMap.put(3, "详细信息");
         for (ChinaLeagalStatus chinaLeagalStatus : chinaLeagalStatuses) {
             contentMap.put(0, chinaLeagalStatus.getLegalDate());
             contentMap.put(1, chinaLeagalStatus.getLegalStatus());
             contentMap.put(2, chinaLeagalStatus.getLegalStatusInfo());
-//            contentMap.put(3, chinaLeagalStatus.getIPC());
-//            contentMap.put(4, chinaLeagalStatus.getSHENQINGH());
-//            contentMap.put(5, chinaLeagalStatus.getSHENQINGR());
-//            contentMap.put(6, chinaLeagalStatus.getBIANGENGSXCODE());
             contentMap.put(3, chinaLeagalStatus.getDETAIL());
             ArrayList<KeyValueVO.InpadocData> inpadocDatas = new ArrayList<>();
             for (int i = 0; i < 4; i++) {

+ 85 - 87
PAS/src/main/java/cn/cslg/pas/service/outApi/PatentStarApiService.java

@@ -43,47 +43,47 @@ import java.util.regex.Pattern;
 
 public class PatentStarApiService {
 
-   public static String formatValue(String value){
-       return  value.replace("~",">");
-   }
+    public static String formatValue(String value) {
+        return value.replace("~", ">");
+    }
 
-   public static String formQuery(String query){
-       query = query
-               .replace(" AND ", "*")
-               .replace(" OR ", "+")
-               .replace(" NOT ", "-");
+    public static String formQuery(String query) {
+        query = query
+                .replace(" AND ", "*")
+                .replace(" OR ", "+")
+                .replace(" NOT ", "-");
 
-       //记录偏移量
-       int t =0;
-      StringBuilder query2 =new StringBuilder(query);
-      //匹配形如ab=(cd OR ef);
-       String regexOrg = "([^=^\\+^\\(^\\)]+=\\([^=^\\)]+\\))+?";
-       Pattern patternOrg = Pattern.compile(regexOrg);
-       Matcher matcherOrg = patternOrg.matcher(query);
-       while (matcherOrg.find()){
-           String a = matcherOrg.group();
-         String[] bc =a.split("=");
-         String b =bc[0];
-         b.length();
-         query2.delete(matcherOrg.start()+t,matcherOrg.start()+b.length()+1+t);
-         t=t-b.length()-1;
-         String c= bc[1];
-           String regexOrg1 = "([^\\+^\\*^\\-^\\(^\\)])+";
-           Pattern patternOrg1 = Pattern.compile(regexOrg1);
-           Matcher matcherOrg1 = patternOrg1.matcher(c);
-           while (matcherOrg1.find()){
-               String r =matcherOrg1.group();
-               System.out.println(r);
-        query2.insert(matcherOrg.start()+b.length()+1+matcherOrg1.start()+t,b+"=");
-           t=t+b.length()+1;
-           }
-       }
-       System.out.println(query2);
-       return query2.toString();
-   }
+        //记录偏移量
+        int t = 0;
+        StringBuilder query2 = new StringBuilder(query);
+        //匹配形如ab=(cd OR ef);
+        String regexOrg = "([^=^\\+^\\(^\\)]+=\\([^=^\\)]+\\))+?";
+        Pattern patternOrg = Pattern.compile(regexOrg);
+        Matcher matcherOrg = patternOrg.matcher(query);
+        while (matcherOrg.find()) {
+            String a = matcherOrg.group();
+            String[] bc = a.split("=");
+            String b = bc[0];
+            b.length();
+            query2.delete(matcherOrg.start() + t, matcherOrg.start() + b.length() + 1 + t);
+            t = t - b.length() - 1;
+            String c = bc[1];
+            String regexOrg1 = "([^\\+^\\*^\\-^\\(^\\)])+";
+            Pattern patternOrg1 = Pattern.compile(regexOrg1);
+            Matcher matcherOrg1 = patternOrg1.matcher(c);
+            while (matcherOrg1.find()) {
+                String r = matcherOrg1.group();
+                System.out.println(r);
+                query2.insert(matcherOrg.start() + b.length() + 1 + matcherOrg1.start() + t, b + "=");
+                t = t + b.length() + 1;
+            }
+        }
+        System.out.println(query2);
+        return query2.toString();
+    }
 
     public static String formatQuery(String query) {
-       query= PatentStarApiService.formQuery(query);
+        query = PatentStarApiService.formQuery(query);
         StringBuilder sb = new StringBuilder(query);
         String regex = "(?<=[\\(\\)\\+\\-=\\*])[^\\*^\\-^\\+^\\(^\\)]+?(?=[\\(\\+\\-=\\)\\*])";
         Pattern pattern = Pattern.compile(regex);
@@ -113,7 +113,7 @@ public class PatentStarApiService {
             int len2 = end2 - start2;
             int diff = len2 - len1;
             if (diff > 0) {
-                sb.replace(start1, end1,formatValue(query.substring(start2, end2)));
+                sb.replace(start1, end1, formatValue(query.substring(start2, end2)));
                 sb.replace(start2 + diff, end2 + diff, query.substring(start1, end1));
             } else {
                 sb.replace(start2, end2, query.substring(start1, end1));
@@ -126,34 +126,33 @@ public class PatentStarApiService {
     }
 
     //装载专利信息
-    public void loadStarPatentVOS(List<StarPatentVO> starPatentVOS){
-        starPatentVOS.forEach(item->{
-            if(item.getPublicNo()!=null&&!item.getPublicNo().equals("")){
+    public void loadStarPatentVOS(List<StarPatentVO> starPatentVOS) {
+        starPatentVOS.forEach(item -> {
+            if (item.getPublicNo() != null && !item.getPublicNo().equals("")) {
                 item.setPatentNo(item.getPublicNo());
-            }
-            else if(item.getAnnounceNo()!=null&&!item.getAnnounceNo().equals("")){
+            } else if (item.getAnnounceNo() != null && !item.getAnnounceNo().equals("")) {
                 item.setPublicNo(item.getAnnounceNo());
                 item.setPatentNo(item.getAnnounceNo());
             }
             item.setApplicant(new ArrayList<>());
             item.setAgent(new ArrayList<>());
             item.setIpcList(Arrays.asList(item.getIpcListStr().split(";")));
-            List<String> applicants =   Arrays.asList( item.getApplicantStr().split(";"));
+            List<String> applicants = Arrays.asList(item.getApplicantStr().split(";"));
             //装载申请人
             applicants.forEach(
-                    tem->{
-                        PatentApplicant patentApplicant =new PatentApplicant();
+                    tem -> {
+                        PatentApplicant patentApplicant = new PatentApplicant();
                         patentApplicant.setType(2);
                         patentApplicant.setDataType(2);
                         patentApplicant.setName(tem);
                         item.getApplicant().add(patentApplicant);
                     }
             );
-            if(item.getCurrentApplicantStr()!=null&&item.getCurrentApplicantStr()!=""){
-                List<String> cApplicants =   Arrays.asList(item.getCurrentApplicantStr().split(";"));
+            if (item.getCurrentApplicantStr() != null && item.getCurrentApplicantStr() != "") {
+                List<String> cApplicants = Arrays.asList(item.getCurrentApplicantStr().split(";"));
                 cApplicants.forEach(
-                        tem->{
-                            PatentApplicant patentApplicant =new PatentApplicant();
+                        tem -> {
+                            PatentApplicant patentApplicant = new PatentApplicant();
                             patentApplicant.setType(2);
                             patentApplicant.setDataType(1);
                             patentApplicant.setName(tem);
@@ -162,49 +161,50 @@ public class PatentStarApiService {
                 );
             }
             //代理机构
-            if(item.getAgencyStr()!=null&&item.getAgencyStr()!=""){
-                PatentAgency patentAgency =new PatentAgency();
+            if (item.getAgencyStr() != null && item.getAgencyStr() != "") {
+                PatentAgency patentAgency = new PatentAgency();
                 patentAgency.setName(item.getAgencyStr().split(" ")[0]);
                 item.setAgency(patentAgency);
             }
             //发明人
-            if(item.getInventorStr()!=null&&item.getInventorStr()!=""){
+            if (item.getInventorStr() != null && item.getInventorStr() != "") {
                 item.setInventor(new ArrayList<>());
-                List<String> inventors =   Arrays.asList(item.getInventorStr().split(";"));
+                List<String> inventors = Arrays.asList(item.getInventorStr().split(";"));
                 inventors.forEach(
-                        tem->{
-                            PatentInventor patentInventor =new PatentInventor();
+                        tem -> {
+                            PatentInventor patentInventor = new PatentInventor();
                             patentInventor.setName(tem);
-                            item.getInventor().add(patentInventor);;
+                            item.getInventor().add(patentInventor);
+                            ;
                         }
                 );
             }
             //代理人
-            if(item.getAgentStr()!=null&&item.getAgentStr()!=""){
-                List<String> agent =   Arrays.asList(item.getAgentStr().split(";"));
+            if (item.getAgentStr() != null && item.getAgentStr() != "") {
+                List<String> agent = Arrays.asList(item.getAgentStr().split(";"));
                 agent.forEach(
-                        tem->{
-                            PatentAgent patentAgent =new PatentAgent();
+                        tem -> {
+                            PatentAgent patentAgent = new PatentAgent();
                             patentAgent.setName(tem);
                             item.getAgent().add(patentAgent);
                         }
                 );
             }
             //附图
-            String apN=item.getApplicationNo().replace(".","");
-        item.setAbstractPath(this.getPictureApi(apN.substring(2)));
-            if(item.getLG()!=null){
-             switch (item.getLG()){
-                 case 1:
-                     item.setSimpleStatus("有效");
-                     break;
-                 case 2:
-                     item.setSimpleStatus("失效");
-                     break;
-                 case 3:
-                     item.setSimpleStatus("审中");
-                     break;
-             }
+            String apN = item.getApplicationNo().replace(".", "");
+            item.setAbstractPath(this.getPictureApi(apN.substring(2)));
+            if (item.getLG() != null) {
+                switch (item.getLG()) {
+                    case 1:
+                        item.setSimpleStatus("有效");
+                        break;
+                    case 2:
+                        item.setSimpleStatus("失效");
+                        break;
+                    case 3:
+                        item.setSimpleStatus("审中");
+                        break;
+                }
             }
             //法律状态
         });
@@ -212,13 +212,12 @@ public class PatentStarApiService {
 
 
     public Map<String, Object> patentStarSearchApi(PatentStarListDto patentStarListDto) throws IOException {
-       try {
-           String formQuery = patentStarListDto.getCurrentQuery();
-           patentStarListDto.setCurrentQuery(PatentStarApiService.formatQuery(formQuery));
-       }
-catch (Exception e){
-           return null;
-}
+        try {
+            String formQuery = patentStarListDto.getCurrentQuery();
+            patentStarListDto.setCurrentQuery(PatentStarApiService.formatQuery(formQuery));
+        } catch (Exception e) {
+            return null;
+        }
 
         String json = JSONObject.toJSONString(patentStarListDto);
         String url = "http://s.patentstar.com.cn/SearchAPI/PatentSearch/ResultGet";
@@ -246,7 +245,7 @@ catch (Exception e){
             // 判断请求是否成功
             if (response.isSuccessful()) {
                 JSONObject jsonObject = JSONObject.parseObject(Objects.requireNonNull(response.body()).string());
-                if(jsonObject.get("Ret").equals(500)){
+                if (jsonObject.get("Ret").equals(500)) {
                     return null;
                 }
                 JSONObject Data = (JSONObject) jsonObject.get("Data");
@@ -257,14 +256,13 @@ catch (Exception e){
                 Map<String, Object> reMap = new HashMap<>();
                 reMap.put("size", patentStarListDto.getRowCount());
                 reMap.put("current", patentStarListDto.getPageNum());
-                reMap.put("records",starPatentVOS);
+                reMap.put("records", starPatentVOS);
                 reMap.put("total", Data.get("HitCount"));
                 return reMap;
             }
-        }
-        catch (IOException e) {
+        } catch (IOException e) {
             e.printStackTrace();
-            return  null;
+            return null;
         }
         return null;
     }

+ 195 - 74
PAS/src/main/java/cn/cslg/pas/service/upLoadPatent/ExcutePatentDataStar.java

@@ -1,7 +1,9 @@
 package cn.cslg.pas.service.upLoadPatent;
 
+import cn.cslg.pas.common.model.dto.PatentDTO;
 import cn.cslg.pas.common.model.dto.UploadFileDTO;
 import cn.cslg.pas.common.model.outApi.PatentStarListDto;
+import cn.cslg.pas.common.model.vo.KeyValueVO;
 import cn.cslg.pas.common.model.vo.UploadParamsVO;
 import cn.cslg.pas.common.model.vo.outApi.StarPatentVO;
 import cn.cslg.pas.common.utils.FileUtils;
@@ -14,21 +16,20 @@ import cn.cslg.pas.service.UploadPatentBatchService;
 import cn.cslg.pas.service.asso.AssoOsTaskQrtzTaskService;
 import cn.cslg.pas.service.outApi.PatentStarApiService;
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.fileupload.FileItem;
 import org.apache.commons.fileupload.disk.DiskFileItemFactory;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.commons.CommonsMultipartFile;
 
 import java.io.*;
 import java.net.URL;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -42,7 +43,6 @@ import java.util.regex.Pattern;
 @RequiredArgsConstructor
 @Service
 public class ExcutePatentDataStar implements IExcutePatentData {
-    private final AssoOsTaskQrtzTaskService assoOsTaskQrtzTaskService;
     private final PatentStarApiService patentStarApiService;
     private final FileUtils fileUtils;
     private final PantentQueueService pantentQueueService;
@@ -69,79 +69,106 @@ public class ExcutePatentDataStar implements IExcutePatentData {
         List<String> isAddPatentNos = task.getIsAddPatentNos();  //需要额外下载的专利号
         List<String> isDeletePatentNos = task.getIsDeletePatentNos();  //起止条数中不需要下载的专利号
 
+        //下载isAdd中的专利 ↓
+        if (isAddPatentNos != null && isAddPatentNos.size() > 0) {
+            downLoadIsAddPatentNos(isAddPatentNos, task, orderBy, orderByType, dbType, cells);
+        }
 
-
-
-
-
-
-
-
-        //定义每次检索的页码
-        int pageNum = 0;
-        //定义每次检索的专利数量(当前定义每次检索50件)
-        int size = 50;
-        //1.根据专利总数量count遍历检索专利
-        for (int i = successNum; i < total; i += size) {
-            pageNum++;
-            PatentStarListDto patentStarListDto = new PatentStarListDto()
-                    .setCurrentQuery(conditions)
-                    .setOrderBy(orderBy)
-                    .setOrderByType(orderByType)
-                    .setPageNum(pageNum)
-                    .setRowCount(size)
-                    .setDBType(dbType);
-            //调用一般接口返回一批专利著录相关数据
-            Map<String, Object> resultMap = patentStarApiService.patentStarSearchApi(patentStarListDto);
-            if (resultMap == null || (Integer) resultMap.get("total") == 0) {
-                ThrowException.throwXiaoShiException("发生未知错误");
+        //下载起止条数中的专利 ↓
+        if (endNumber != 0) {
+            int startPage;  //检索开始页数
+            int startNum;  //检索开始页数的开始专利位置
+            int endPage;  //检索结束页数
+            int endNum;  //检索结束页数的结束专利位置
+            if (startNumber % 50 != 0) {
+                startPage = startNumber / 50 + 1;
+                startNum = startNumber % 50;
+            } else {
+                startPage = startNumber / 50;
+                startNum = 50;
+            }
+            if (endNumber % 50 != 0) {
+                endPage = endNumber / 50 + 1;
+                endNum = endNumber % 50;
+            } else {
+                endPage = endNumber / 50;
+                endNum = 50;
             }
 
-            List<StarPatentVO> starPatents = (List<StarPatentVO>) resultMap.get("records");
-            //遍历这一批专利(50个)
-            for (int j = 0; j < starPatents.size(); j++) {
-                //判断若任务状态为已暂停,则结束生产
-                if (pTaskId.equals(task.getId()) && pTaskStatus == 4) {
-                    return;
+            //根据计算出的起止页数,一页一页检索
+            int pageNum = startPage;
+            for (int i = startPage; i <= endPage; i++) {
+                PatentStarListDto patentStarListDto = new PatentStarListDto()
+                        .setCurrentQuery(conditions)
+                        .setOrderBy(orderBy)
+                        .setOrderByType(orderByType)
+                        .setPageNum(pageNum++)
+                        .setRowCount(50)
+                        .setDBType(dbType);
+                //调用一般接口返回一批专利著录相关数据
+                Map<String, Object> resultMap = patentStarApiService.patentStarSearchApi(patentStarListDto);
+                if (resultMap == null || (Integer) resultMap.get("total") == 0) {
+                    ThrowException.throwXiaoShiException("未检索到相关专利");
                 }
-                try {
-                    UploadParamsVO uploadParamsVO = new UploadParamsVO();
-                    setPatentZhuLu(starPatents.get(j), uploadParamsVO);
-                    //保存专利基础数据(专利表"os_patent"),因为需要先拿到专利id供其他消费者部分使用
-                    uploadPatentBatchService.getOneOrInsertOne(uploadParamsVO);
 
-                    PQueueData pQueueData = new PQueueData()
-                            .setTask(task)
-                            .setStarPatent(starPatents.get(j))
-                            .setUploadParamsVO(uploadParamsVO);
-                    //装载专利著录
-                    if (cells.contains("1")) {
-                        pantentQueueService.zhuluToPQueue(pQueueData);
+                List<StarPatentVO> starPatents = (List<StarPatentVO>) resultMap.get("records");
+                //遍历这一页的专利
+                for (int j = 0; j < starPatents.size(); j++) {
+                    //判断若任务状态为已暂停,则结束生产
+                    if (pTaskId.equals(task.getId()) && pTaskStatus == 4) {
+                        return;
                     }
-                    //装载权要
-                    if (cells.contains("2")) {
-                        pantentQueueService.rightToPQueue(pQueueData);
+                    //若是第一页,并且还没遍历到所需起始专利位置,则跳过,继续遍历下一个,直到遍历到起所需起始专利,才开始下载
+                    if (i == startPage && j < startNum - 1) {
+                        continue;
                     }
-                    //装载说明书文本
-                    if (cells.contains("3")) {
-                        pantentQueueService.instructionTextToPQueue(pQueueData);
+                    //若是最后一页,并且遍历到了所需终止专利位置,则下载结束
+                    if (i == endPage && j == endNum) {
+                        return;
                     }
-                    //装载说明书pdf
-                    if (cells.contains("4")) {
-                        pantentQueueService.instructionPDFToPQueue(pQueueData);
+                    //若当前遍历到的专利号是需要删除的专利,则跳过,不下载它
+                    if (isDeletePatentNos != null && isDeletePatentNos.size() > 0 && isDeletePatentNos.contains(starPatents.get(j).getApplicationNo())) {
+                        continue;
                     }
-                    //装载摘要附图
-                    if (cells.contains("6")) {
-                        pantentQueueService.imageToPQueue(pQueueData);
+                    try {
+                        UploadParamsVO uploadParamsVO = new UploadParamsVO();
+                        setPatentZhuLu(starPatents.get(j), uploadParamsVO);
+                        //保存专利基础数据(专利表"os_patent"),因为需要先拿到专利id供其他消费者部分使用
+                        uploadPatentBatchService.getOneOrInsertOne(uploadParamsVO);
+
+                        PQueueData pQueueData = new PQueueData()
+                                .setTask(task)
+                                .setStarPatent(starPatents.get(j))
+                                .setUploadParamsVO(uploadParamsVO);
+                        //装载专利著录
+                        if (cells.contains("1")) {
+                            pantentQueueService.zhuluToPQueue(pQueueData);
+                        }
+                        //装载权要
+                        if (cells.contains("2")) {
+                            pantentQueueService.rightToPQueue(pQueueData);
+                        }
+                        //装载说明书文本
+                        if (cells.contains("3")) {
+                            pantentQueueService.instructionTextToPQueue(pQueueData);
+                        }
+                        //装载说明书pdf
+                        if (cells.contains("4")) {
+                            pantentQueueService.instructionPDFToPQueue(pQueueData);
+                        }
+                        //装载摘要附图
+                        if (cells.contains("6")) {
+                            pantentQueueService.imageToPQueue(pQueueData);
+                        }
+
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                        //继续下一个专利
                     }
 
-                } catch (Exception e) {
-                    e.printStackTrace();
-                    //继续下一个专利
                 }
 
             }
-
         }
 
 
@@ -280,19 +307,41 @@ public class ExcutePatentDataStar implements IExcutePatentData {
         }
 
         //以下 ↓装载的是调用"获得中国专利法律状态"接口返回的专利相关数据
+        PatentAffair patentAffair = new PatentAffair();
         String cnLegalApiStr = patentStarApiService.getCnLegalApi(appNo);
         List<ChinaLeagalStatus> chinaLeagalStatuses = JSON.parseArray(cnLegalApiStr, ChinaLeagalStatus.class);
-        ChinaLeagalStatus chinaLeagalStatus = chinaLeagalStatuses.get(0);
-        //装载事务表的status(公开|授权|驳回|权力转移。。。)
-        PatentAffair patentAffair = new PatentAffair();
-        patentAffair.setStatus(chinaLeagalStatus.getLegalStatus());
-        if (chinaLeagalStatus.getLegalDate() != null && !chinaLeagalStatus.getLegalDate().equals("")) {
-            patentAffair.setDateTime(Integer.parseInt(chinaLeagalStatus.getLegalDate()));
+        ArrayList<KeyValueVO> lst = new ArrayList<>();
+        HashMap<Integer, String> nameMap = new HashMap<>();
+        HashMap<Integer, String> contentMap = new HashMap<>();
+        nameMap.put(0, "发生日期");
+        nameMap.put(1, "法律状态");
+        nameMap.put(2, "详细法律状态");
+        nameMap.put(3, "详细信息");
+        for (int i = 0; i < chinaLeagalStatuses.size(); i++) {
+            if (i == 0) {
+                patentAffair.setStatus(chinaLeagalStatuses.get(i).getLegalStatus());
+            }
+            contentMap.put(0, chinaLeagalStatuses.get(i).getLegalDate());
+            contentMap.put(1, chinaLeagalStatuses.get(i).getLegalStatus());
+            contentMap.put(2, chinaLeagalStatuses.get(i).getLegalStatusInfo());
+            contentMap.put(3, chinaLeagalStatuses.get(i).getDETAIL());
+            ArrayList<KeyValueVO.InpadocData> inpadocDatas = new ArrayList<>();
+            for (int j = 0; j < 4; j++) {
+                KeyValueVO.InpadocData inpadocData = new KeyValueVO.InpadocData();
+                inpadocData.setName(nameMap.get(j));
+                inpadocData.setContent(contentMap.get(j));
+                inpadocDatas.add(inpadocData);
+            }
+            KeyValueVO keyValueVO = new KeyValueVO();
+            keyValueVO.setInpadocData(inpadocDatas);
+            lst.add(keyValueVO);
         }
-        uploadParamsVO.setPatentAffair(patentAffair);
-
+        //装载事务表的status(公开|授权|驳回|权力转移。。。)
         //最后将 patent装载到 uploadParamsVO
         uploadParamsVO.setPatent(patent);
+        String content = JSONObject.toJSONString(lst);
+        patentAffair.setContent(content);
+        uploadParamsVO.setPatentAffair(patentAffair);
 
     }
 
@@ -314,12 +363,13 @@ public class ExcutePatentDataStar implements IExcutePatentData {
             String cnFullXmlStr = patentStarApiService.getCnFullXmlApi(appNo);
 
             //使用正则表达式拼接出权要原文
-            String regex = "(?<=<claim-text>)[\\w\\W]+?(?=</claim-text>)";
+            String regex = "(?<=<claim id=.{1,110}>)[\\w\\W]+?(?=</claim>)";
             Pattern compile = Pattern.compile(regex);
             Matcher matcher = compile.matcher(cnFullXmlStr);
             StringBuilder builder = new StringBuilder();
             while (matcher.find()) {
-                builder.append(matcher.group()).append("\r\n");
+                String right = matcher.group().replaceAll("<.*?>", "");
+                builder.append(right).append("\r\n");
             }
 
             String patentRightText = builder + "";
@@ -500,6 +550,77 @@ public class ExcutePatentDataStar implements IExcutePatentData {
 
     }
 
+    /**
+     * 下载指定多个专利号专利
+     *
+     * @param isAddPatentNos 多个专利号
+     */
+    public void downLoadIsAddPatentNos(List<String> isAddPatentNos, Task task, String orderBy, String orderByType, String dbType, List<String> cells) throws IOException {
+        String conditions = "(AN=(" + StringUtils.join(isAddPatentNos, " OR ") + "))";
+
+        int pageNum = 1;
+        for (int i = 0; i < isAddPatentNos.size(); i += 50) {
+            PatentStarListDto patentStarListDto = new PatentStarListDto()
+                    .setCurrentQuery(conditions)
+                    .setOrderBy(orderBy)
+                    .setOrderByType(orderByType)
+                    .setPageNum(pageNum++)
+                    .setRowCount(50)
+                    .setDBType(dbType);
+            Map<String, Object> resultMap = patentStarApiService.patentStarSearchApi(patentStarListDto);
+            if (resultMap == null || (Integer) resultMap.get("total") == 0) {
+                ThrowException.throwXiaoShiException("发生未知错误,一般接口未检索出专利");
+            }
+
+            List<StarPatentVO> starPatents = (List<StarPatentVO>) resultMap.get("records");
+            //遍历这一页的专利
+            for (StarPatentVO starPatent : starPatents) {
+                //判断若任务状态为已暂停,则结束生产
+                if (pTaskId.equals(task.getId()) && pTaskStatus == 4) {
+                    return;
+                }
+                try {
+                    UploadParamsVO uploadParamsVO = new UploadParamsVO();
+                    setPatentZhuLu(starPatent, uploadParamsVO);
+                    //保存专利基础数据(专利表"os_patent"),因为需要先拿到专利id供其他消费者部分使用
+                    uploadPatentBatchService.getOneOrInsertOne(uploadParamsVO);
+
+                    PQueueData pQueueData = new PQueueData()
+                            .setTask(task)
+                            .setStarPatent(starPatent)
+                            .setUploadParamsVO(uploadParamsVO);
+                    //装载专利著录
+                    if (cells.contains("1")) {
+                        pantentQueueService.zhuluToPQueue(pQueueData);
+                    }
+                    //装载权要
+                    if (cells.contains("2")) {
+                        pantentQueueService.rightToPQueue(pQueueData);
+                    }
+                    //装载说明书文本
+                    if (cells.contains("3")) {
+                        pantentQueueService.instructionTextToPQueue(pQueueData);
+                    }
+                    //装载说明书pdf
+                    if (cells.contains("4")) {
+                        pantentQueueService.instructionPDFToPQueue(pQueueData);
+                    }
+                    //装载摘要附图
+                    if (cells.contains("6")) {
+                        pantentQueueService.imageToPQueue(pQueueData);
+                    }
+
+                } catch (Exception e) {
+                    e.printStackTrace();
+                    //继续下一个专利
+                }
+
+            }
+        }
+
+    }
+
+
     public void setTaskStatus(Integer taskId, Integer taskStatus) {
         this.pTaskId = taskId;
         this.pTaskStatus = taskStatus;

+ 17 - 9
PAS/src/main/java/cn/cslg/pas/service/upLoadPatent/PantentQueueService.java

@@ -95,8 +95,10 @@ public class PantentQueueService {
                 //线程被唤醒后 ↓
                 if (taskQueueList.size() > 0) {
                     //从任务队列中取出第一个task任务,同时将其从任务队列中剔除
-                    task = taskService.getById(taskQueueList.remove(0));
+                    Integer taskId = taskQueueList.remove(0);
+                    task = taskService.getById(taskId);
                     //判断任务状态,若已不存在或已暂停,则跳过继续取下一个任务
+                    System.out.println(task);
                     if (task == null || task.getStatus() == 4) {
                         continue;
                     }
@@ -111,9 +113,14 @@ public class PantentQueueService {
                         task.setOrderByType(assoOsTaskQrtzTask.getOrderByType());
                         task.setDBType(assoOsTaskQrtzTask.getDBType());
                         task.setStartNumber(assoOsTaskQrtzTask.getStartNumber());
+                        task.setEndNumber(assoOsTaskQrtzTask.getEndNumber());
                         task.setEndTime(assoOsTaskQrtzTask.getEndNumber());
-                        task.setIsAddPatentNos(assoOsTaskQrtzTask.getIsAddPatentNos());
-                        task.setIsDeletePatentNos(assoOsTaskQrtzTask.getIsDeletePatentNos());
+                        if (assoOsTaskQrtzTask.getIsAddPatentNos() != null && !assoOsTaskQrtzTask.getIsAddPatentNos().equals("")) {
+                            task.setIsAddPatentNos(Arrays.asList(assoOsTaskQrtzTask.getIsAddPatentNos().split(",")));
+                        }
+                        if (assoOsTaskQrtzTask.getIsDeletePatentNos() != null && !assoOsTaskQrtzTask.getIsDeletePatentNos().equals("")) {
+                            task.setIsDeletePatentNos(Arrays.asList(assoOsTaskQrtzTask.getIsDeletePatentNos().split(",")));
+                        }
                         task.setConditions(assoOsTaskQrtzTask.getConditions());
                     }
 
@@ -371,12 +378,13 @@ public class PantentQueueService {
                         //与报告关联入库(调用报告系统接口)
                         outInterfaceService.importAssoReportPatentNo(queueData.getTask().getReportId(), queueData.getUploadParamsVO().getPatent().getPatentNo(), queueData.getUploadParamsVO().getPatent().getName());
                     }
-
-                    ProjectImportPatentVO projectImportPatentVO = JsonUtils.jsonToPojo(queueData.getTask().getPramJson(), ProjectImportPatentVO.class);
-                    //自定义字段标引与专利关联入库
-                    uploadPatentToDBService.uploadAssoFieldPat(queueData.getUploadParamsVO(), projectImportPatentVO);
-                    //文件夹与专利关联入库
-                    uploadPatentToDBService.uploadAssoPorPat(queueData.getUploadParamsVO(), projectImportPatentVO);
+                    if (queueData.getTask().getPramJson() != null && !queueData.getTask().getPramJson().equals("")) {
+                        ProjectImportPatentVO projectImportPatentVO = JsonUtils.jsonToPojo(queueData.getTask().getPramJson(), ProjectImportPatentVO.class);
+                        //自定义字段标引与专利关联入库
+                        uploadPatentToDBService.uploadAssoFieldPat(queueData.getUploadParamsVO(), projectImportPatentVO);
+                        //文件夹与专利关联入库
+                        uploadPatentToDBService.uploadAssoPorPat(queueData.getUploadParamsVO(), projectImportPatentVO);
+                    }
                     //Websocket发送message:通过WebSocket 在每一次循环结束后 向前端发送完成进度
                     sendMessage(queueData);
                 } else {

+ 39 - 11
PAS/src/main/java/cn/cslg/pas/service/upLoadPatent/UploadTaskService.java

@@ -4,14 +4,13 @@ import cn.cslg.pas.common.model.PersonnelVO;
 import cn.cslg.pas.common.model.dto.QrtzTaskAddNewDTO;
 import cn.cslg.pas.common.model.dto.UploadFileDTO;
 import cn.cslg.pas.common.model.outApi.PatentStarListDto;
-import cn.cslg.pas.common.utils.CacheUtils;
-import cn.cslg.pas.common.utils.FileUtils;
-import cn.cslg.pas.common.utils.ReadExcelUtils;
+import cn.cslg.pas.common.utils.*;
 import cn.cslg.pas.common.utils.SecurityUtils.LoginUtils;
-import cn.cslg.pas.common.utils.ThrowException;
+import cn.cslg.pas.domain.Project;
 import cn.cslg.pas.domain.SerachBiblioData;
 import cn.cslg.pas.domain.WebLoginConfig;
 import cn.cslg.pas.domain.asso.AssoOsTaskQrtzTask;
+import cn.cslg.pas.service.ProjectService;
 import cn.cslg.pas.service.TaskService;
 import cn.cslg.pas.service.WebLoginConfigService;
 import cn.cslg.pas.service.asso.AssoOsTaskQrtzTaskService;
@@ -20,6 +19,7 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
@@ -46,6 +46,7 @@ public class UploadTaskService {
     private final LoginUtils loginUtils;
     private final WebLoginConfigService webLoginConfigService;
     private final PatentStarApiService patentStarApiService;
+    private final ProjectService projectService;
 
     /**
      * 新增Excel导入任务
@@ -125,16 +126,28 @@ public class UploadTaskService {
      * @param qrtzTaskAddNewDTO 前台参数(检索信息conditions、专题库id、下载字段configCells等)
      */
     public AssoOsTaskQrtzTask addPatentStarTask(QrtzTaskAddNewDTO qrtzTaskAddNewDTO) throws IOException {
-        Integer webId = qrtzTaskAddNewDTO.getConfigId();  //取出网站id
+        log.info("开始处理【新增专利之星下载接口导入专利】的业务,参数为:{}", qrtzTaskAddNewDTO);
+
+        //检查任务合法性1(判断要导入的专题库或报告是否存在)
+        if (qrtzTaskAddNewDTO.getProjectId() != null) {
+            Project project = projectService.getById(qrtzTaskAddNewDTO.getProjectId());
+            if (project == null) {
+                ThrowException.throwXiaoShiException("该专题库已不存在,请尝试刷新页面");
+            }
+        }
+        if (qrtzTaskAddNewDTO.getReportId() != null) {
+            //查询报告是否存在,若不存在则抛出异常信息 "该报告已不存在,请尝试刷新页面"
+        }
 
-        //检查任务合法性1(根据网站配置id和登陆人所属租户id,看是否有网站导入任务的权限)
+        //检查任务合法性2(根据网站配置id和登陆人所属租户id,看是否有网站导入任务的权限)
+        Integer webId = qrtzTaskAddNewDTO.getConfigId();
         PersonnelVO personnelVO = cacheUtils.getLoginUserPersonnel(loginUtils.getId());  //获取登陆人信息
         WebLoginConfig webLoginConfig = webLoginConfigService.getLoginConfig(webId, personnelVO.getTenantId());  //根据网站id获得配置
         if (webLoginConfig == null) {
             ThrowException.throwXiaoShiException("未配置网站登录信息");
         }
 
-        //检查任务合法性2(根据检索式信息调用一般检索接口,看是否能检索出专利)
+        //检查任务合法性3(根据检索式信息调用一般检索接口,看是否能检索出专利)
         PatentStarListDto patentStarListDto = new PatentStarListDto()
                 .setCurrentQuery(qrtzTaskAddNewDTO.getConditions())
                 .setOrderBy(qrtzTaskAddNewDTO.getOrderBy())
@@ -148,7 +161,18 @@ public class UploadTaskService {
         }
 
         //获取专利总数量
-        Integer total = (Integer) resultMap.get("total");
+        Integer total;
+        if (qrtzTaskAddNewDTO.getEndNumber() != 0) {
+            total = qrtzTaskAddNewDTO.getEndNumber() - qrtzTaskAddNewDTO.getStartNumber() + 1;
+            if (qrtzTaskAddNewDTO.getIsDeletePatentNos() != null) {
+                total = total - qrtzTaskAddNewDTO.getIsDeletePatentNos().size();
+            }
+            if (qrtzTaskAddNewDTO.getIsAddPatentNos() != null) {
+                total = total + qrtzTaskAddNewDTO.getIsAddPatentNos().size();
+            }
+        } else {
+            total = qrtzTaskAddNewDTO.getIsAddPatentNos().size();
+        }
 
         //新增任务与任务条件关联表("asso_osTask_qrtzTask")数据
         AssoOsTaskQrtzTask assoOsTaskQrtzTask = new AssoOsTaskQrtzTask();
@@ -165,9 +189,13 @@ public class UploadTaskService {
                 .setOrderByType(qrtzTaskAddNewDTO.getOrderByType())
                 .setDBType(qrtzTaskAddNewDTO.getDBType())
                 .setStartNumber(qrtzTaskAddNewDTO.getStartNumber())
-                .setEndNumber(qrtzTaskAddNewDTO.getEndNumber())
-                .setIsAddPatentNos(qrtzTaskAddNewDTO.getIsAddPatentNos())
-                .setIsDeletePatentNos(qrtzTaskAddNewDTO.getIsDeletePatentNos());
+                .setEndNumber(qrtzTaskAddNewDTO.getEndNumber());
+        if (qrtzTaskAddNewDTO.getIsAddPatentNos() != null && qrtzTaskAddNewDTO.getIsAddPatentNos().size() > 0) {
+            assoOsTaskQrtzTask.setIsAddPatentNos(StringUtils.join(qrtzTaskAddNewDTO.getIsAddPatentNos(), ","));
+        }
+        if (qrtzTaskAddNewDTO.getIsDeletePatentNos() != null && qrtzTaskAddNewDTO.getIsDeletePatentNos().size() > 0) {
+            assoOsTaskQrtzTask.setIsDeletePatentNos(StringUtils.join(qrtzTaskAddNewDTO.getIsDeletePatentNos(), ","));
+        }
         List<String> cells = qrtzTaskAddNewDTO.getConfigCells();
         if (cells == null) {
             assoOsTaskQrtzTask.setConfigCells("");