|
@@ -19,7 +19,9 @@ import java.util.concurrent.locks.Condition;
|
|
|
import java.util.concurrent.locks.Lock;
|
|
|
import java.util.concurrent.locks.ReentrantLock;
|
|
|
|
|
|
-/** 将专利信息存入队列或从队列取出
|
|
|
+/**
|
|
|
+ * 将专利信息存入队列或从队列取出
|
|
|
+ *
|
|
|
* @author 李仁杰
|
|
|
*/
|
|
|
@Service
|
|
@@ -28,20 +30,22 @@ public class PantentQueueService {
|
|
|
private final ExcuteDataToVOService excuteDataToVOService;
|
|
|
private final ExcuteUploadSettingService excuteUploadSettingService;
|
|
|
private Queue<UploadParamsVO> queue = new LinkedList<>();
|
|
|
- private Boolean flag =false;
|
|
|
+ private Boolean flag = false;
|
|
|
private CountDownLatch latch = new CountDownLatch(10);
|
|
|
+
|
|
|
//将专利信息存入队列
|
|
|
public void addPatnetToQueue(Task task) throws InterruptedException {
|
|
|
try {
|
|
|
//获得文件路径
|
|
|
- String filePath=task.getUrl();
|
|
|
+ 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);
|
|
|
+ Integer totalRow = ReadExcelUtils.textExcel(filePath);
|
|
|
+ //根据数据来源id(如1:智慧芽)解析数据源配置文件信息
|
|
|
+ List<UploadSettingVO.Column> jsonData = excuteUploadSettingService.ExcuteUploadSetting("1");
|
|
|
+ //遍历专利总数量,在循环中保存专利
|
|
|
+ for (int i = 1; i <= totalRow; i++) {
|
|
|
+ PatentData patentData = ReadExcelUtils.readExcelOneRow(filePath, i);
|
|
|
+ UploadParamsVO uploadParamsVO = excuteDataToVOService.fileToPatentVO(patentData, jsonData);
|
|
|
queue.add(uploadParamsVO);
|
|
|
//通知消费者线程
|
|
|
latch.countDown();
|
|
@@ -51,25 +55,23 @@ public class PantentQueueService {
|
|
|
} finally {
|
|
|
}
|
|
|
|
|
|
- flag=true;
|
|
|
+ flag = true;
|
|
|
}
|
|
|
|
|
|
//将专利信息从队列取出
|
|
|
public void pushPantentToDb() throws InterruptedException {
|
|
|
try {
|
|
|
- while(true){
|
|
|
- if(queue.isEmpty()){
|
|
|
- if(flag){
|
|
|
+ while (true) {
|
|
|
+ if (queue.isEmpty()) {
|
|
|
+ if (flag) {
|
|
|
System.out.println("退出循环");
|
|
|
return;
|
|
|
- }
|
|
|
- else{
|
|
|
+ } else {
|
|
|
latch.countDown();
|
|
|
}
|
|
|
- }
|
|
|
- else{
|
|
|
- UploadParamsVO uploadParamsVO=queue.remove();
|
|
|
- System.out.println("出队列"+uploadParamsVO);
|
|
|
+ } else {
|
|
|
+ UploadParamsVO uploadParamsVO = queue.remove();
|
|
|
+ System.out.println("出队列" + uploadParamsVO);
|
|
|
}
|
|
|
}
|
|
|
|