Ver Fonte

导入开发

lwhhszx há 2 anos atrás
pai
commit
7419b3f9cd

+ 30 - 13
PAS/src/main/java/cn/cslg/pas/service/upLoadPatent/PantentQueueService.java

@@ -1,9 +1,18 @@
 package cn.cslg.pas.service.upLoadPatent;
 
 import cn.cslg.pas.common.model.vo.UploadParamsVO;
+import cn.cslg.pas.common.model.vo.UploadSettingVO;
+import cn.cslg.pas.common.utils.ReadExcelUtils;
+import cn.cslg.pas.domain.PatentData;
+import cn.cslg.pas.domain.Task;
+import lombok.RequiredArgsConstructor;
 import org.apache.poi.ss.formula.functions.T;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
 
+import java.io.IOException;
 import java.util.LinkedList;
+import java.util.List;
 import java.util.Queue;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.locks.Condition;
@@ -13,29 +22,38 @@ import java.util.concurrent.locks.ReentrantLock;
 /** 将专利信息存入队列或从队列取出
  * @author 李仁杰
  */
+@Service
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class PantentQueueService {
+    private final ExcuteDataToVOService excuteDataToVOService;
+    private final ExcuteUploadSettingService excuteUploadSettingService;
     private Queue<UploadParamsVO> queue = new LinkedList<>();
     private Boolean flag =false;
     private CountDownLatch latch = new CountDownLatch(10);
     //将专利信息存入队列
-    public void addPatnetToQueue() throws InterruptedException {
-        Boolean t =false;
+    public void addPatnetToQueue(Task task) throws InterruptedException {
         try {
-            for(int i=0;i<10;i++){
-                UploadParamsVO up = new UploadParamsVO();
-                up.setFirstAddress(i+"");
-                System.out.println("进入队列" + up.getFirstAddress());
-                queue.add(up);
+            //获得文件路径
+            String filePath=task.getUrl();
+            //检查文件合法性
+            Integer totalRow =  ReadExcelUtils.textExcel(filePath);
+            //解析配置信息
+            List<UploadSettingVO.Column> jsonData =excuteUploadSettingService.ExcuteUploadSetting(task.getProductId()+"");
+            for(int i=0;i<totalRow;i++){
+                PatentData patentData = ReadExcelUtils.readExcelOneRow(filePath,i);
+                UploadParamsVO  uploadParamsVO =excuteDataToVOService.fileToPatentVO(patentData,jsonData);
+                queue.add(uploadParamsVO);
                 //通知消费者线程
                 latch.countDown();
-                Thread.sleep(1000);
             }
-        }
-        finally {
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
         }
 
         flag=true;
     }
+
     //将专利信息从队列取出
     public void pushPantentToDb() throws InterruptedException {
         try {
@@ -50,9 +68,8 @@ public class PantentQueueService {
                     }
                 }
                 else{
-//                    Thread.sleep(5000);
-//                    t=queue.remove();
-//                    System.out.println("出队列"+t);
+                    UploadParamsVO uploadParamsVO=queue.remove();
+                    System.out.println("出队列"+uploadParamsVO);
                 }
             }
 

+ 32 - 0
PAS/src/main/java/cn/cslg/pas/service/upLoadPatent/scheduleTaskService.java

@@ -1,12 +1,44 @@
 package cn.cslg.pas.service.upLoadPatent;
 
 
+import cn.cslg.pas.common.model.vo.UploadParamsVO;
+import cn.cslg.pas.common.model.vo.UploadSettingVO;
+import cn.cslg.pas.common.utils.ReadExcelUtils;
+import cn.cslg.pas.domain.PatentData;
+import cn.cslg.pas.domain.Task;
+import lombok.RequiredArgsConstructor;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 
+import java.io.IOException;
+import java.util.List;
+
 /**
  * 调度任务类
  * @autor 李仁杰
  */
 @Service
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class scheduleTaskService {
+ private final ExcuteDataToVOService excuteDataToVOService;
+ private final ExcuteUploadSettingService excuteUploadSettingService;
+    //执行Excel导入任务
+    public void executeExcelTask(Task task) throws IOException {
+        //获得文件路径
+        String filePath=task.getUrl();
+        //检查文件合法性
+      Integer totalRow =  ReadExcelUtils.textExcel(filePath);
+         //解析配置信息
+        List<UploadSettingVO.Column> jsonData =excuteUploadSettingService.ExcuteUploadSetting(task.getProductId()+"");
+         for(int i=0;i<totalRow;i++){
+         PatentData patentData = ReadExcelUtils.readExcelOneRow(filePath,i);
+             UploadParamsVO  uploadParamsVO =excuteDataToVOService.fileToPatentVO(patentData,jsonData);
+
+         }
+
+
+
+
+
+    }
 }