|
@@ -12,12 +12,14 @@ import cn.cslg.report.common.utils.SecurityUtils.LoginUtils;
|
|
|
import cn.cslg.report.entity.CompareFiles;
|
|
|
import cn.cslg.report.entity.ImportTask;
|
|
|
import cn.cslg.report.entity.Task;
|
|
|
+import cn.cslg.report.service.business.CompareFilesService;
|
|
|
import cn.cslg.report.service.business.ImportTaskService;
|
|
|
import cn.hutool.core.collection.IterUtil;
|
|
|
import cn.hutool.poi.excel.ExcelUtil;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import io.swagger.v3.oas.models.security.SecurityScheme;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
@@ -37,6 +39,7 @@ import java.io.IOException;
|
|
|
import java.text.ParseException;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
+import java.util.function.Function;
|
|
|
|
|
|
@Slf4j
|
|
|
@Service
|
|
@@ -47,6 +50,7 @@ public class BaseService {
|
|
|
private final LoginUtils loginUtils;
|
|
|
private final CacheUtils cacheUtils;
|
|
|
private final ImportTaskService importTaskService;
|
|
|
+ private final CompareFilesService compareFilesService;
|
|
|
|
|
|
/**
|
|
|
* @return 1.生成验证码的base64转码 2.生成的UUID 与Redis里面的验证码KEY值一致
|
|
@@ -295,6 +299,12 @@ public class BaseService {
|
|
|
|
|
|
@Async()
|
|
|
public void uploadToPCS(ImportTask importTask, Boolean asCompare) {
|
|
|
+ //根据报告id获得所有对比文件
|
|
|
+ QueryWrapper<CompareFiles> comWrapper = new QueryWrapper<>();
|
|
|
+ comWrapper.select("DISTINCT PATENT_NO").lambda()
|
|
|
+ .eq(CompareFiles::getReportId, importTask.getReportId());
|
|
|
+ Function<Object, String> f = (o -> o.toString());
|
|
|
+ List<String> comPatentNos = compareFilesService.listObjs(comWrapper, f);
|
|
|
Integer total = importTask.getImportCount();
|
|
|
List<List<Object>> fileHead = new ArrayList<>();
|
|
|
//解析excel文件并保存进map里
|
|
@@ -327,11 +337,12 @@ public class BaseService {
|
|
|
//判断是否直接作为对比文件
|
|
|
if (asCompare != null && asCompare) {
|
|
|
if (jsonObject.get("code").toString().equals("200")) {
|
|
|
- CompareFiles compareFiles = new CompareFiles();
|
|
|
- compareFiles.setReportId(importTask.getReportId());
|
|
|
- compareFiles.setPatentNo(jsonObject.get("data").toString());
|
|
|
- compareFiles.insert();
|
|
|
-
|
|
|
+ if (!comPatentNos.contains(jsonObject.get("data").toString())) {
|
|
|
+ CompareFiles compareFiles = new CompareFiles();
|
|
|
+ compareFiles.setReportId(importTask.getReportId());
|
|
|
+ compareFiles.setPatentNo(jsonObject.get("data").toString());
|
|
|
+ compareFiles.insert();
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
if ((int) rowIndex == taskParams.getTotal()) {
|
|
@@ -353,7 +364,7 @@ public class BaseService {
|
|
|
.setFileName("")
|
|
|
.setOldName(taskParams.getOldName())
|
|
|
.setUrl("")
|
|
|
- .setTotal(total), ResponseEnum.PATENT_IMPORT_TASK_SUCCESS),null);
|
|
|
+ .setTotal(total), ResponseEnum.PATENT_IMPORT_TASK_SUCCESS), null);
|
|
|
} catch (IOException | ParseException e) {
|
|
|
importTask.setState(3);
|
|
|
importTask.updateById();
|