|
@@ -1,26 +1,129 @@
|
|
|
package cn.cslg.pas.service;
|
|
|
|
|
|
+import cn.cslg.pas.common.core.base.Constants;
|
|
|
+import cn.cslg.pas.common.model.params.PatentInstructionTextParams;
|
|
|
import cn.cslg.pas.common.model.vo.ProjectImportPatentVO;
|
|
|
import cn.cslg.pas.common.model.vo.TaskParams;
|
|
|
import cn.cslg.pas.common.model.vo.UploadParamsVO;
|
|
|
+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.domain.Patent;
|
|
|
+import cn.cslg.pas.domain.SystemDict;
|
|
|
+import org.apache.poi.ss.usermodel.PictureData;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
@Service
|
|
|
public class UploadPatentBatchService {
|
|
|
@Resource
|
|
|
private final FileUtils fileUtils = new FileUtils();
|
|
|
+ @Resource
|
|
|
+ private PatentImageService patentImageService;
|
|
|
+ @Resource
|
|
|
+ private PatentService patentService;
|
|
|
+ @Resource
|
|
|
+ private SystemDictService systemDictService;
|
|
|
+ @Resource
|
|
|
+ private PatentAgencyService patentAgencyService;
|
|
|
+ @Resource
|
|
|
+ private PatentInstructionTextService patentInstructionTextService;
|
|
|
+
|
|
|
|
|
|
public void uploadPatentBatch(TaskParams params, ProjectImportPatentVO projectImportPatentVO) {
|
|
|
- //先解析Json文件 获得配置文件的Json串
|
|
|
- String getSettingJson = fileUtils.analysisJsonFile();
|
|
|
- //开始处理并装配数据
|
|
|
- UploadParamsVO uploadParamsVO = UploadPatentBatchUtil.parsingConfigurationFiles(params, projectImportPatentVO, getSettingJson);
|
|
|
- System.out.println(uploadParamsVO);
|
|
|
+ try {
|
|
|
+ //先解析Json文件 获得配置文件的Json串
|
|
|
+ String getSettingJson = fileUtils.analysisJsonFile();
|
|
|
+ //查找需求数据源的对应配置
|
|
|
+ List<UploadSettingVO.Column> jsonData = UploadPatentBatchUtil.parsingConfigurationFiles(projectImportPatentVO, getSettingJson);
|
|
|
+
|
|
|
+ List<SystemDict> systemDictList = systemDictService.getSystemDictListByType(Arrays.asList(Constants.PATENT_TYPE, Constants.PATENT_SIMPLE_STATUS));
|
|
|
+ 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));
|
|
|
+ uploadParamsVO.getPatent().setAbstractPath(patentImageService.updatePatentImage(uploadParamsVO.getPatent().getId(), pictureData));
|
|
|
+ //专利信息(代理机构)数据装配
|
|
|
+ uploadParamsVO.getPatent().setAgencyId(patentAgencyService.getAgencyStringIdByName(uploadParamsVO.getPatent().getAgencyId()));
|
|
|
+
|
|
|
+ //权利要求数据装配
|
|
|
+// for (int j = 0; j < uploadParamsVO.getPatentRightList().size(); j++) {
|
|
|
+// uploadParamsVO.getPatentRightList().get(j).setPatentId(uploadParamsVO.getPatent().getId());
|
|
|
+// }
|
|
|
+
|
|
|
+ //说明书(文本)数据装配
|
|
|
+ uploadParamsVO.getPatentInstructionText().setPatentId(uploadParamsVO.getPatent().getId());
|
|
|
+
|
|
|
+ //将装配对象中的数据保存到数据库
|
|
|
+ dataToDB(uploadParamsVO);
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @param uploadParamsVO 全局类
|
|
|
+ * @date 2022-7-11
|
|
|
+ * @name 数据库交互
|
|
|
+ * @description 将装配完毕的VO类向数据库中不同的表进行添加或修改操作
|
|
|
+ */
|
|
|
+ private void dataToDB(UploadParamsVO uploadParamsVO) {
|
|
|
+ //专利信息的数据库业务操作
|
|
|
+ //表:OS_PATENT
|
|
|
+ uploadParamsVO.getPatent().updateById();
|
|
|
+
|
|
|
+ //权利要求的数据库业务操作
|
|
|
+ //表:OS_PATENT_RIGHT
|
|
|
+ patentRightBusiness(uploadParamsVO);
|
|
|
+
|
|
|
+ //说明书(文本)的数据库业务操作
|
|
|
+ //表:OS_PATENT_RIGHT
|
|
|
+ patentInstructionTextBusiness(uploadParamsVO);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void patentRightBusiness(UploadParamsVO uploadParamsVO) {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private void patentInstructionTextBusiness(UploadParamsVO uploadParamsVO) {
|
|
|
+ patentInstructionTextService.updatePatentInstructionText(uploadParamsVO.getPatentInstructionText());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param uploadParamsVO 全局类
|
|
|
+ * @date 2022-7-11
|
|
|
+ * @name 工具方法
|
|
|
+ * @description 查询数据是否存在 如果存在 返回该条数据 如果不存在 新增一条数据
|
|
|
+ */
|
|
|
+ private void getOneOrInsertOne(UploadParamsVO uploadParamsVO) {
|
|
|
+ //用专利号查询该条数据是否存在
|
|
|
+ Patent patent = patentService.getByPatentNo(uploadParamsVO.getPatent().getPatentNo());
|
|
|
+
|
|
|
+ //如果不存在就新增一条
|
|
|
+ if (patent == null) {
|
|
|
+ uploadParamsVO.getPatent().insert();
|
|
|
+ } else {
|
|
|
+ uploadParamsVO.getPatent().setId(patent.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
|