|
@@ -1,17 +1,19 @@
|
|
package cn.cslg.pas.service;
|
|
package cn.cslg.pas.service;
|
|
|
|
|
|
|
|
+import cn.cslg.pas.common.core.base.Constants;
|
|
|
|
+import cn.cslg.pas.common.model.dto.TaskWebSocketDTO;
|
|
import cn.cslg.pas.common.model.params.*;
|
|
import cn.cslg.pas.common.model.params.*;
|
|
import cn.cslg.pas.common.model.vo.ProjectImportPatentVO;
|
|
import cn.cslg.pas.common.model.vo.ProjectImportPatentVO;
|
|
import cn.cslg.pas.common.model.vo.TaskParams;
|
|
import cn.cslg.pas.common.model.vo.TaskParams;
|
|
import cn.cslg.pas.common.model.vo.UploadParamsVO;
|
|
import cn.cslg.pas.common.model.vo.UploadParamsVO;
|
|
import cn.cslg.pas.common.model.vo.UploadSettingVO;
|
|
import cn.cslg.pas.common.model.vo.UploadSettingVO;
|
|
-import cn.cslg.pas.common.utils.ExcelUtils;
|
|
|
|
-import cn.cslg.pas.common.utils.FileUtils;
|
|
|
|
-import cn.cslg.pas.common.utils.UploadPatentBatchUtil;
|
|
|
|
|
|
+import cn.cslg.pas.common.utils.*;
|
|
import cn.cslg.pas.domain.*;
|
|
import cn.cslg.pas.domain.*;
|
|
|
|
+import cn.hutool.extra.spring.SpringUtil;
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
import org.apache.poi.ss.usermodel.PictureData;
|
|
import org.apache.poi.ss.usermodel.PictureData;
|
|
import org.springframework.context.annotation.Lazy;
|
|
import org.springframework.context.annotation.Lazy;
|
|
|
|
+import org.springframework.scheduling.annotation.Async;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
@@ -21,7 +23,7 @@ import java.util.stream.Collectors;
|
|
@Service
|
|
@Service
|
|
@RequiredArgsConstructor(onConstructor_ = {@Lazy})
|
|
@RequiredArgsConstructor(onConstructor_ = {@Lazy})
|
|
public class UploadPatentBatchService {
|
|
public class UploadPatentBatchService {
|
|
- private final FileUtils fileUtils = new FileUtils();
|
|
|
|
|
|
+ private final FileUtils fileUtils;
|
|
private final PatentImageService patentImageService;
|
|
private final PatentImageService patentImageService;
|
|
private final PatentService patentService;
|
|
private final PatentService patentService;
|
|
private final PatentAgencyService patentAgencyService;
|
|
private final PatentAgencyService patentAgencyService;
|
|
@@ -39,7 +41,9 @@ public class UploadPatentBatchService {
|
|
private final PatentLabelService patentLabelService;
|
|
private final PatentLabelService patentLabelService;
|
|
private final PatentClassNumberLinkService patentClassNumberLinkService;
|
|
private final PatentClassNumberLinkService patentClassNumberLinkService;
|
|
|
|
|
|
|
|
+ @Async("singleThreadAsyncTaskExecutor")
|
|
public void uploadPatentBatch(TaskParams params, ProjectImportPatentVO projectImportPatentVO) {
|
|
public void uploadPatentBatch(TaskParams params, ProjectImportPatentVO projectImportPatentVO) {
|
|
|
|
+ Integer total = params.getRowList().size();
|
|
try {
|
|
try {
|
|
//先解析Json文件 获得配置文件的Json串
|
|
//先解析Json文件 获得配置文件的Json串
|
|
String getSettingJson = fileUtils.analysisJsonFile();
|
|
String getSettingJson = fileUtils.analysisJsonFile();
|
|
@@ -63,11 +67,37 @@ public class UploadPatentBatchService {
|
|
PictureData pictureData = pictureDataMap.get(String.valueOf(i + 1));
|
|
PictureData pictureData = pictureDataMap.get(String.valueOf(i + 1));
|
|
uploadParamsVO.getPatent().setAbstractPath(patentImageService.updatePatentImage(uploadParamsVO.getPatent().getId(), pictureData));
|
|
uploadParamsVO.getPatent().setAbstractPath(patentImageService.updatePatentImage(uploadParamsVO.getPatent().getId(), pictureData));
|
|
//专利信息(代理机构)数据装配
|
|
//专利信息(代理机构)数据装配
|
|
- uploadParamsVO.getPatent().setAgencyId(patentAgencyService.getAgencyStringIdByName(uploadParamsVO.getPatent().getAgencyId()));
|
|
|
|
|
|
+ if (uploadParamsVO.getPatent().getAgencyId() != null) {
|
|
|
|
+ uploadParamsVO.getPatent().setAgencyId(patentAgencyService.getAgencyStringIdByName(uploadParamsVO.getPatent().getAgencyId()));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
|
|
//将装配对象中的数据保存到数据库
|
|
//将装配对象中的数据保存到数据库
|
|
dataToDB(uploadParamsVO, projectImportPatentVO);
|
|
dataToDB(uploadParamsVO, projectImportPatentVO);
|
|
|
|
+ WebSocketServer.sendInfo(Response.websocket(new TaskWebSocketDTO()
|
|
|
|
+ .setTaskId(params.getTaskId())
|
|
|
|
+ .setProjectId(projectImportPatentVO.getProjectId())
|
|
|
|
+ .setComplete(false)
|
|
|
|
+ .setIndex(i)
|
|
|
|
+ .setTaskType(Constants.TASK_IMPORT_PATENT)
|
|
|
|
+ .setPercentage(total == 0 ? 0 : Math.round((total.equals(i) ? (i * 1D) : (i + 1D)) / total * 100D))
|
|
|
|
+ .setFileName("")
|
|
|
|
+ .setOldName(params.getOldName())
|
|
|
|
+ .setUrl("")
|
|
|
|
+ .setTotal(total), ResponseEnum.PATENT_IMPORT_TASK_SUCCESS), params.getUserId());
|
|
}
|
|
}
|
|
|
|
+ SpringUtil.getBean(ProjectService.class).setImportPatentTaskStatus(2, params.getTaskId());
|
|
|
|
+ WebSocketServer.sendInfo(Response.websocket(new TaskWebSocketDTO()
|
|
|
|
+ .setTaskId(params.getTaskId())
|
|
|
|
+ .setProjectId(projectImportPatentVO.getProjectId())
|
|
|
|
+ .setComplete(true)
|
|
|
|
+ .setIndex(total)
|
|
|
|
+ .setTaskType(Constants.TASK_IMPORT_PATENT)
|
|
|
|
+ .setPercentage(100L)
|
|
|
|
+ .setFileName("")
|
|
|
|
+ .setOldName(params.getOldName())
|
|
|
|
+ .setUrl("")
|
|
|
|
+ .setTotal(total), ResponseEnum.PATENT_IMPORT_TASK_SUCCESS), params.getUserId());
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
@@ -105,6 +135,7 @@ public class UploadPatentBatchService {
|
|
//发明人
|
|
//发明人
|
|
//表:OS_PATENT_INVENTOR
|
|
//表:OS_PATENT_INVENTOR
|
|
patentInventorBusiness(uploadParamsVO);
|
|
patentInventorBusiness(uploadParamsVO);
|
|
|
|
+ patentInventorAddressBusiness(uploadParamsVO);
|
|
//申请人/权利人
|
|
//申请人/权利人
|
|
//表:OS_APPLICATION_ATTR
|
|
//表:OS_APPLICATION_ATTR
|
|
//权利人
|
|
//权利人
|
|
@@ -122,7 +153,7 @@ public class UploadPatentBatchService {
|
|
patentProjectFolderPatentLinkBusiness(uploadParamsVO, projectImportPatentVO);
|
|
patentProjectFolderPatentLinkBusiness(uploadParamsVO, projectImportPatentVO);
|
|
//标签
|
|
//标签
|
|
//表:OS_PATENT_LABEL
|
|
//表:OS_PATENT_LABEL
|
|
- patentLabelBusiness(uploadParamsVO, projectImportPatentVO);
|
|
|
|
|
|
+ //patentLabelBusiness(uploadParamsVO, projectImportPatentVO);
|
|
//分类号关联
|
|
//分类号关联
|
|
//表:OS_PATENT_TYPENO
|
|
//表:OS_PATENT_TYPENO
|
|
patentTypeNoBusiness(uploadParamsVO);
|
|
patentTypeNoBusiness(uploadParamsVO);
|
|
@@ -168,9 +199,11 @@ public class UploadPatentBatchService {
|
|
private void patentAgentBusiness(UploadParamsVO uploadParamsVO) {
|
|
private void patentAgentBusiness(UploadParamsVO uploadParamsVO) {
|
|
PatentAgentParams patentAgentParams = new PatentAgentParams();
|
|
PatentAgentParams patentAgentParams = new PatentAgentParams();
|
|
patentAgentParams.setPatentId(uploadParamsVO.getPatent().getId());
|
|
patentAgentParams.setPatentId(uploadParamsVO.getPatent().getId());
|
|
|
|
+
|
|
List<String> agentList = uploadParamsVO.getPatentAgentList().stream().map(PatentAgent::getName).collect(Collectors.toList());
|
|
List<String> agentList = uploadParamsVO.getPatentAgentList().stream().map(PatentAgent::getName).collect(Collectors.toList());
|
|
patentAgentParams.setAgent(agentList);
|
|
patentAgentParams.setAgent(agentList);
|
|
|
|
|
|
|
|
+
|
|
patentAgentService.updatePatentAgent(patentAgentParams);
|
|
patentAgentService.updatePatentAgent(patentAgentParams);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -219,6 +252,16 @@ public class UploadPatentBatchService {
|
|
patentInventorService.updatePatentInventor(patentInventorParams);
|
|
patentInventorService.updatePatentInventor(patentInventorParams);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private void patentInventorAddressBusiness(UploadParamsVO uploadParamsVO) {
|
|
|
|
+ PatentInventorAddressParams patentInventorAddressParams = new PatentInventorAddressParams();
|
|
|
|
+ List<String> addressList = uploadParamsVO.getPatentInventorList().stream().map(PatentInventor::getAddress).collect(Collectors.toList());
|
|
|
|
+ patentInventorAddressParams.setAddress(addressList);
|
|
|
|
+ patentInventorAddressParams.setFirstAddress(uploadParamsVO.getFirstAddress());
|
|
|
|
+ patentInventorAddressParams.setPatentId(uploadParamsVO.getPatent().getId());
|
|
|
|
+
|
|
|
|
+ patentInventorService.updatePatentInventorAddress(patentInventorAddressParams);
|
|
|
|
+ }
|
|
|
|
+
|
|
private void patentCurrentApplicationBusiness(UploadParamsVO uploadParamsVO) {
|
|
private void patentCurrentApplicationBusiness(UploadParamsVO uploadParamsVO) {
|
|
patentApplicantLinkService.updatePatentApplicantLink(uploadParamsVO.getPatentApplicantCurrentName(), uploadParamsVO.getPatentApplicantStandardCurrentName(), 1, uploadParamsVO.getPatent().getId());
|
|
patentApplicantLinkService.updatePatentApplicantLink(uploadParamsVO.getPatentApplicantCurrentName(), uploadParamsVO.getPatentApplicantStandardCurrentName(), 1, uploadParamsVO.getPatent().getId());
|
|
}
|
|
}
|
|
@@ -243,8 +286,12 @@ public class UploadPatentBatchService {
|
|
PatentLabelParams patentLabelParams = new PatentLabelParams();
|
|
PatentLabelParams patentLabelParams = new PatentLabelParams();
|
|
patentLabelParams.setPatentId(uploadParamsVO.getPatent().getId());
|
|
patentLabelParams.setPatentId(uploadParamsVO.getPatent().getId());
|
|
patentLabelParams.setProjectId(projectImportPatentVO.getProjectId());
|
|
patentLabelParams.setProjectId(projectImportPatentVO.getProjectId());
|
|
- List<String> labelList = uploadParamsVO.getPatentLabelList().stream().map(PatentLabel::getName).collect(Collectors.toList());
|
|
|
|
- patentLabelParams.setLabel(labelList);
|
|
|
|
|
|
+ if (uploadParamsVO.getPatentLabelList().get(0).getName() != null) {
|
|
|
|
+ List<String> labelList = uploadParamsVO.getPatentLabelList().stream().map(PatentLabel::getName).collect(Collectors.toList());
|
|
|
|
+ patentLabelParams.setLabel(labelList);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
|
|
patentLabelService.updatePatentLabel(patentLabelParams);
|
|
patentLabelService.updatePatentLabel(patentLabelParams);
|
|
}
|
|
}
|