|
@@ -127,6 +127,90 @@ public class UploadPatentBatchService {
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
|
|
+ * @param projectImportPatentVO 前台传入参数
|
|
|
|
+ * @return uploadParamsVO 返回一个由processData方法填充完数据的Pojo类
|
|
|
|
+ * @date 2022/7/7
|
|
|
|
+ * @name 解析配置文件
|
|
|
|
+ * @description uploadPatentBatch的兄弟方法
|
|
|
|
+ */
|
|
|
|
+ @Async("singleThreadAsyncTaskExecutor")
|
|
|
|
+ public void uploadPatentBatchBro(TaskParams params, ProjectImportPatentVO projectImportPatentVO) {
|
|
|
|
+ Integer total = params.getRowList().size();
|
|
|
|
+ try {
|
|
|
|
+ //先解析Json文件 获得配置文件的Json串
|
|
|
|
+ String getSettingJson = fileUtils.analysisJsonFile();
|
|
|
|
+ //查找需求数据源的对应配置
|
|
|
|
+ List<UploadSettingVO.Column> jsonData = UploadPatentBatchUtil.parsingConfigurationFilesBro(getSettingJson);
|
|
|
|
+
|
|
|
|
+ Map<String, PictureData> pictureDataMap = ExcelUtils.getDataFromExcel(params.getPath());
|
|
|
|
+
|
|
|
|
+ //将数据进行装配并进行数据库操作
|
|
|
|
+ for (int i = 0; i < params.getRowList().size(); i++) {
|
|
|
|
+ //获取每一行的数据
|
|
|
|
+ Map<Object, Object> row = params.getRowList().get(i);
|
|
|
|
+ //基础数据装配
|
|
|
|
+ UploadParamsVO uploadParamsVO = UploadPatentBatchUtil.processData(row, jsonData);
|
|
|
|
+
|
|
|
|
+ //查询数据是否存在 如果存在 返回该条数据 如果不存在 新增一条数据
|
|
|
|
+ getOneOrInsertOne(uploadParamsVO);
|
|
|
|
+
|
|
|
|
+ //专利信息需要特殊处理部分
|
|
|
|
+ //专利信息(摘要附图)数据装配
|
|
|
|
+ PictureData pictureData = pictureDataMap.get(String.valueOf(i + 1));
|
|
|
|
+ if (uploadParamsVO.getPatent() != null) {
|
|
|
|
+ if (uploadParamsVO.getPatent().getId() != null && pictureData != null) {
|
|
|
|
+ uploadParamsVO.getPatent().setAbstractPath(patentImageService.updatePatentImage(uploadParamsVO.getPatent().getId(), pictureData));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //专利信息(代理机构)数据装配
|
|
|
|
+ if (uploadParamsVO.getPatent() != null) {
|
|
|
|
+ if (uploadParamsVO.getPatent().getAgencyId() != null) {
|
|
|
|
+ uploadParamsVO.getPatent().setAgencyId(patentAgencyService.getAgencyStringIdByName(uploadParamsVO.getPatent().getAgencyId()));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ //将装配对象中的数据保存到数据库
|
|
|
|
+ dataToDBBro(params, uploadParamsVO, projectImportPatentVO);
|
|
|
|
+
|
|
|
|
+ //通过WebSocket 在每一次循环结束后 向前端发送完成进度
|
|
|
|
+ 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) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ SpringUtil.getBean(ProjectService.class).setImportPatentTaskStatus(3, params.getTaskId());
|
|
|
|
+ if (FLAG > 0) {
|
|
|
|
+ int successCount = total - FLAG;
|
|
|
|
+ WebSocketServer.sendInfo(Response.error("部分数据上传成功" + "\n" + "成功条数:" + successCount + "失败条数:" + FLAG), params.getUserId());
|
|
|
|
+ }
|
|
|
|
+ FLAG = 0;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
* @param uploadParamsVO 全局类
|
|
* @param uploadParamsVO 全局类
|
|
* @date 2022-7-11
|
|
* @date 2022-7-11
|
|
* @name 数据库交互
|
|
* @name 数据库交互
|
|
@@ -214,6 +298,76 @@ public class UploadPatentBatchService {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * @param uploadParamsVO 全局类
|
|
|
|
+ * @date 2022-7-11
|
|
|
|
+ * @name 数据库交互
|
|
|
|
+ * @description 将装配完毕的VO类向数据库中不同的表进行添加或修改操作(dataToDB兄弟类)
|
|
|
|
+ */
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
+ public void dataToDBBro(TaskParams params, UploadParamsVO uploadParamsVO, ProjectImportPatentVO projectImportPatentVO) {
|
|
|
|
+ try {
|
|
|
|
+ //专利信息 OS_PATENT
|
|
|
|
+ if (uploadParamsVO.getPatent() != null) {
|
|
|
|
+ List<SystemDict> systemDictList = systemDictService.getSystemDictListByType(Collections.singletonList(Constants.PATENT_SIMPLE_STATUS));
|
|
|
|
+ Integer simpleStatus = Integer.parseInt(systemDictList.stream()
|
|
|
|
+ .filter(systemDict -> systemDict.getType().equals(Constants.PATENT_SIMPLE_STATUS) && systemDict.getLabel().equals(uploadParamsVO.getPatentSimpleStatus()))
|
|
|
|
+ .findFirst()
|
|
|
|
+ .orElse(new SystemDict()).getValue());
|
|
|
|
+ uploadParamsVO.getPatent().setSimpleStatus(simpleStatus);
|
|
|
|
+ uploadParamsVO.getPatent().updateById();
|
|
|
|
+ }
|
|
|
|
+ //权利要求 OS_PATENT_RIGHT
|
|
|
|
+ patentRightBusiness(uploadParamsVO);
|
|
|
|
+ //说明书(文本) OS_PATENT_INSTRUCTION_TEXT
|
|
|
|
+ if (uploadParamsVO.getPatentInstructionText() != null) {
|
|
|
|
+ patentInstructionTextBusiness(uploadParamsVO);
|
|
|
|
+ }
|
|
|
|
+ //代理人 OS_PATENT_AGENT
|
|
|
|
+ if (uploadParamsVO.getPatentAgentList() != null) {
|
|
|
|
+ patentAgentBusiness(uploadParamsVO);
|
|
|
|
+ }
|
|
|
|
+ //质押质权人 OS_PATENT_PLEDGE
|
|
|
|
+ if (uploadParamsVO.getPatentPledgeList() != null) {
|
|
|
|
+ patentPledgeBusiness(uploadParamsVO);
|
|
|
|
+ }
|
|
|
|
+ //许可人 OS_PATENT_LICENSOR
|
|
|
|
+ if (uploadParamsVO.getPatentLicensorList() != null) {
|
|
|
|
+ patentLicensorBusiness(uploadParamsVO);
|
|
|
|
+ }
|
|
|
|
+ //简单同族 OS_PATENT_SIMPLEFAMILY
|
|
|
|
+ patentSimplyFamilyBusiness(uploadParamsVO);
|
|
|
|
+ //发明人 OS_PATENT_INVENTOR
|
|
|
|
+ patentInventorBusiness(uploadParamsVO);
|
|
|
|
+ //申请人(原始)/权利人(当前) OS_PATENT_APPLICATION || OS_APPLICATION_ATTR
|
|
|
|
+ if (uploadParamsVO.getPatentApplicantStandardCurrentName() != null && uploadParamsVO.getPatentApplicantOriginalName() != null && uploadParamsVO.getPatentApplicantStandardOriginalName() != null) {
|
|
|
|
+ patentApplicationBusiness(uploadParamsVO);
|
|
|
|
+ }
|
|
|
|
+ //申请人地址 OS_PATENT_APPLICATION
|
|
|
|
+ patentApplicationAddressBusiness(uploadParamsVO);
|
|
|
|
+
|
|
|
|
+ //分类号关联 OS_PATENT_TYPENO
|
|
|
|
+ patentTypeNoBusiness(uploadParamsVO);
|
|
|
|
+ //事务信息 OS_PATENT_AFFAIR
|
|
|
|
+ patentAffairBusiness(uploadParamsVO);
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ if (uploadParamsVO.getPatent() != null) {
|
|
|
|
+ ImportErrorLog importErrorLog = new ImportErrorLog();
|
|
|
|
+ importErrorLog.setPatentId(uploadParamsVO.getPatent().getId())
|
|
|
|
+ .setPatentNo(uploadParamsVO.getPatent().getPatentNo())
|
|
|
|
+ .setCreateTime(new SimpleDateFormat("yyyy-MM-dd 24HI:mm:ss").format(new Date()))
|
|
|
|
+ .setCreateUserId(Integer.parseInt(params.getUserId()))
|
|
|
|
+ .setMistakeMessage(e.getMessage())
|
|
|
|
+ .setProjectId(params.getProjectId());
|
|
|
|
+ importErrorLogMapper.insert(importErrorLog);
|
|
|
|
+ FLAG += 1;
|
|
|
|
+ }
|
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* @param uploadParamsVO 全局类
|
|
* @param uploadParamsVO 全局类
|
|
* @date 2022-7-11
|
|
* @date 2022-7-11
|
|
@@ -433,6 +587,7 @@ List<String> standardName = uploadParamsVO.getPatentApplicantStandardCurrentNam
|
|
patentCustomFieldParams.setProjectId(projectImportPatentVO.getProjectId());
|
|
patentCustomFieldParams.setProjectId(projectImportPatentVO.getProjectId());
|
|
patentCustomFieldParams.setUserId(Integer.parseInt(params.getUserId()));
|
|
patentCustomFieldParams.setUserId(Integer.parseInt(params.getUserId()));
|
|
patentCustomFieldParams.put(uploadParamsVO.getCustomerFieldList().get(i).getKey(), uploadParamsVO.getCustomerFieldList().get(i).getFieldList());
|
|
patentCustomFieldParams.put(uploadParamsVO.getCustomerFieldList().get(i).getKey(), uploadParamsVO.getCustomerFieldList().get(i).getFieldList());
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
patentService.updatePatentCustomField(patentCustomFieldParams);
|
|
patentService.updatePatentCustomField(patentCustomFieldParams);
|