Browse Source

RMS调用接口 2022/11/11

lwhhszx 2 years ago
parent
commit
cadbd13820

+ 26 - 0
PAS/src/main/java/cn/cslg/pas/common/utils/UploadPatentBatchUtil.java

@@ -51,6 +51,32 @@ public class UploadPatentBatchUtil {
     }
 
     /**
+     * @param getSettingJson        配置文件解析出的Json串
+     * @return uploadParamsVO 返回一个由processData方法填充完数据的Pojo类
+     * @date 2022/7/7
+     * @name 解析配置文件
+     * @description 通过与前段传入参数中的数据源ID进行比对从而得到对应数据源的配置(parsingConfigurationFiles的兄弟方法)
+     */
+    public static List<UploadSettingVO.Column> parsingConfigurationFilesBro( String getSettingJson) {
+        //将 Json 转换为 对象数组
+        List<UploadSettingVO> test = JsonUtils.jsonToList(getSettingJson, UploadSettingVO.class);
+        //创建一个存放单一数据源的对象 这个对象存放的是 我们需要使用哪一个数据源的配置数据 所以只存一个 正常在Json文件里面会有多个数据源 也就是多条数据
+        List<UploadSettingVO.Column> jsonData = new ArrayList<>();
+        //开始将前端传入的数据源参数与 Json 中解析出来的 sourceId(数据来源ID) 进行比对 并将比对中的那一条数据放入上方定义的 jsonData 中 用于后续使用
+        for (int i = 0; i < Objects.requireNonNull(test).size(); i++) {
+            //提取一个常量
+            UploadSettingVO constant = Objects.requireNonNull(test).get(i);
+            //判断 如果说 Json 解析出来的 List<T> 中的 sourceId 和传入参数的 sourceId 匹配成功 则开始装配数据
+            if (constant.getSourceId().equals("1")) {
+                //填充数据
+                jsonData = constant.getColumn();
+            }
+        }
+        //返回填充好的数据
+        return jsonData;
+    }
+
+    /**
      * @param row      任务参数
      * @param jsonData 处理好后转换为Pojo类的配置文件数据
      * @return uploadParamsVO 返回一个填充完数据的Pojo类

+ 11 - 0
PAS/src/main/java/cn/cslg/pas/controller/ClientController.java

@@ -58,5 +58,16 @@ public class ClientController {
         return clientService.getAllClient();
     }
 
+    @GetMapping("getAllClient")
+    @Operation(summary = "获得客户")
+    public String getAllClient(Integer id) {
+        return Response.success(clientService.getClientByTenant(id));
+    }
+    @GetMapping("getClientName")
+    @Operation(summary = "获得客户名称")
+    public String getClientName(Integer id) {
+        return Response.success(clientService.getClientName(id));
+    }
+
 }
 

+ 24 - 4
PAS/src/main/java/cn/cslg/pas/controller/PatentController.java

@@ -2,6 +2,7 @@ package cn.cslg.pas.controller;
 
 import cn.cslg.pas.common.core.annotation.Permission;
 import cn.cslg.pas.common.core.base.Constants;
+import cn.cslg.pas.common.model.dto.PatentDTO;
 import cn.cslg.pas.common.utils.SecurityUtils.LoginUtils;
 import cn.cslg.pas.common.utils.auth.checkAuth;
 import cn.cslg.pas.domain.Patent;
@@ -10,6 +11,7 @@ import cn.cslg.pas.common.utils.JsonUtils;
 import cn.cslg.pas.common.utils.Response;
 import cn.cslg.pas.common.utils.ResponseEnum;
 import cn.cslg.pas.common.utils.StringUtils;
+import cn.cslg.pas.domain.PatentRight;
 import cn.cslg.pas.service.*;
 import cn.cslg.pas.common.utils.CacheUtils;
 import cn.dev33.satoken.stp.StpUtil;
@@ -44,6 +46,7 @@ public class PatentController {
     private final CacheUtils cacheUtils;
     private final ProjectFieldPatentLinkService projectFieldPatentLinkService;
     private final LoginUtils loginUtils;
+    private  final PatentRightService patentRightService;
 
     @GetMapping("/read/total")
     @Operation(summary = "专利阅读状态统计")
@@ -71,13 +74,18 @@ public class PatentController {
         return Response.success(patentService.getPatentDTOById(id, projectId));
     }
 
-    @GetMapping("id")
-    @Operation(summary = "根据专利号获取专利ID")
+    @GetMapping("patentNo")
+    @Operation(summary = "根据专利号获取专利所有信息")
     public String getPatentIdByPatentNo(String patentNo) {
+        PatentDTO patentDTO =patentService.getPatentDTOById(patentNo);
+        return Response.success(patentDTO);
+    }
+    @GetMapping("id")
+    @Operation(summary = "根据专利号获取专利")
+    public String getPatentByPatentNo(String patentNo) {
         Patent patent = patentService.getByPatentNo(patentNo);
-        return Response.success(patent == null ? 0 : patent.getId());
+        return Response.success(patent);
     }
-
     @PostMapping("ids")
     @Operation(summary = "根据范围获取专利ID")
     public String getPatentListIds(@RequestBody PatentVO params) {
@@ -159,4 +167,16 @@ public class PatentController {
     public String getBetweenPatentList(@RequestBody PatentVO params) {
         return Response.success(patentService.getBetweenPatentList(params));
     }
+    @GetMapping("right")
+    @Operation(summary = "根据专利号获得专利的权要")
+    public String getRightList(String patentNo) {
+        List<PatentRight> patentRights =patentRightService.getPatentRightByPatentNo(patentNo);
+        return Response.success(patentRights);
+    }
+    @GetMapping("getPatentNos")
+    @Operation(summary = "根据专题库号获得专利号")
+    public String getPatentNos(Integer projectId) {
+      String res =patentService.getPatentNos(projectId);
+        return Response.success(res);
+    }
 }

+ 13 - 0
PAS/src/main/java/cn/cslg/pas/controller/ProjectImportController.java

@@ -59,6 +59,19 @@ public class ProjectImportController {
         return Response.success(true);
     }
 
+    @PostMapping("sysPatent")
+    @Operation(summary = "导入专利")
+    public String importSysPatent(MultipartFile file, String json) {
+        ProjectImportPatentVO params = JsonUtils.jsonToPojo(json, ProjectImportPatentVO.class);
+        if (params == null) {
+            return Response.error("参数错误");
+        }
+        TaskParams taskParams = projectService.getImportPatentTaskParamsBro(file);
+        //projectService.importPatent(taskParams, params);
+        uploadPatentBatchService.uploadPatentBatchBro(taskParams, params);
+        return Response.success(true);
+    }
+
     @GetMapping("list")
     @Operation(summary = "导入任务列表")
     public String getPageList(ProjectImportVO params) {

+ 6 - 0
PAS/src/main/java/cn/cslg/pas/controller/ReportController.java

@@ -20,6 +20,7 @@ import org.springframework.context.annotation.Lazy;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.Date;
+import java.util.List;
 
 @Tag(name = "报告")
 @RestController
@@ -43,6 +44,11 @@ public class ReportController {
         return Response.success(reportService.getReportById(id));
     }
 
+    @PostMapping("delete")
+    @Operation(summary = "删除报告")
+    public String deleteById(@RequestBody List<Integer> ids) {
+        return Response.success(reportService.deleteById(ids));
+    }
     @checkAuth(FunId = "/workspace/folder/analyticSystem/generateReport")
     @Permission(roles = {1})
     @PostMapping("add")

+ 5 - 0
PAS/src/main/java/cn/cslg/pas/service/ClientService.java

@@ -77,6 +77,11 @@ public class ClientService extends ServiceImpl<ClientMapper, Client> {
         queryWrapper.eq(Client::getName, name);
         return this.getOne(queryWrapper);
     }
+    public String getClientName(Integer id) {
+        LambdaQueryWrapper<Client> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(Client::getId, id);
+        return this.getOne(queryWrapper).getName();
+    }
 
     public List<Client> getClientByTenant(Integer tenantId) {
         LambdaQueryWrapper<Client> queryWrapper = new LambdaQueryWrapper<>();

+ 13 - 0
PAS/src/main/java/cn/cslg/pas/service/PatentRightService.java

@@ -2,7 +2,9 @@ package cn.cslg.pas.service;
 
 import cn.cslg.pas.common.model.params.PatentRightParams;
 import cn.cslg.pas.common.utils.PatentUtils;
+import cn.cslg.pas.common.utils.Response;
 import cn.cslg.pas.common.utils.StringUtils;
+import cn.cslg.pas.domain.Patent;
 import cn.cslg.pas.domain.PatentRight;
 import cn.cslg.pas.mapper.PatentRightMapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -28,6 +30,15 @@ public class PatentRightService extends ServiceImpl<PatentRightMapper, PatentRig
 
     private final PatentService patentService;
 
+    public List<PatentRight> getPatentRightByPatentNo(String patentNo)
+    {
+     Patent patent = patentService.getByPatentNo(patentNo);
+        LambdaQueryWrapper<PatentRight> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(PatentRight::getPatentId, patent.getId());
+        queryWrapper.orderByAsc(PatentRight::getSort);
+        return this.list(queryWrapper);
+    }
+
     public List<PatentRight> getPatentRightByPatentId(Integer patentId) {
         LambdaQueryWrapper<PatentRight> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(PatentRight::getPatentId, patentId);
@@ -123,4 +134,6 @@ public class PatentRightService extends ServiceImpl<PatentRightMapper, PatentRig
             this.saveOrUpdateBatch(patentRightList);
         }
     }
+
+
 }

+ 86 - 0
PAS/src/main/java/cn/cslg/pas/service/PatentService.java

@@ -541,6 +541,83 @@ public class PatentService extends ServiceImpl<PatentMapper, Patent> {
         return patentDTO;
     }
 
+    public PatentDTO getPatentDTOById(String patentNo) {
+        LambdaQueryWrapper<Patent> wrapper =new LambdaQueryWrapper<>();
+        wrapper.eq(Patent::getPatentNo,patentNo);
+        Patent patent = this.list(wrapper).get(0);
+        //如果未查出专利则返回为空
+        if(patent ==null)
+        {return null;}
+        PatentDTO patentDTO = new PatentDTO();
+        BeanUtils.copyProperties(patent, patentDTO);
+        List<SystemDict> systemDictList = systemDictService.getSystemDictListByType(Arrays.asList(Constants.PATENT_TYPE, Constants.PATENT_SIMPLE_STATUS, Constants.COUNTRIES));
+        List<PatentClassNumberLink> patentClassNumberLinkList = patentClassNumberLinkService.getPatentClassNumberLinkByPatentIds(Collections.singletonList(patent.getId()));
+
+
+        if (patent.getPriorityNo() != null) {
+            patentDTO.setPriorityNo(patent.getPriorityNo());
+        } else {
+            patentDTO.setPriorityNo("");
+        }
+
+        if (patent.getPriorityCountry() != null) {
+            if (patent.getPriorityCountry().contains("\\|")) {
+                List<String> countryList = StringUtils.changeStringToString(patent.getPriorityCountry().replaceAll(" ", ""), "\\|");
+                patentDTO.setPriorityCountry(countryList);
+            } else if (patent.getPriorityCountry().contains(",")) {
+                List<String> countryList = StringUtils.changeStringToString(patent.getPriorityCountry().replaceAll(" ", ""), ",");
+                patentDTO.setPriorityCountry(countryList);
+            } else if (patent.getPriorityCountry().contains(";")) {
+                List<String> countryList = StringUtils.changeStringToString(patent.getPriorityCountry().replaceAll(" ", ""), ";");
+                patentDTO.setPriorityCountry(countryList);
+            }
+        } else {
+            patentDTO.setPriorityCountry(Collections.singletonList(""));
+        }
+
+
+        patentDTO.setApplicationDate(DateUtils.formatDate(patent.getApplicationDate(), DateUtils.YYYY_MM_DD));
+        patentDTO.setPriorityDate(DateUtils.formatDate(patent.getPriorityDate(), DateUtils.YYYY_MM_DD));
+        patentDTO.setPublicDate(DateUtils.formatDate(patent.getPublicDate(), DateUtils.YYYY_MM_DD));
+        patentDTO.setPublicAccreditDate(DateUtils.formatDate(patent.getPublicAccreditDate(), DateUtils.YYYY_MM_DD));
+        patentDTO.setFirstPublicDate(DateUtils.formatDate(patent.getFirstPublicDate(), DateUtils.YYYY_MM_DD));
+        patentDTO.setSimpleStatus(systemDictList.stream().filter(systemDict -> systemDict.getType().equals(Constants.PATENT_SIMPLE_STATUS) && systemDict.getValue().equals(String.valueOf(patent.getSimpleStatus()))).findFirst().orElse(new SystemDict()).getLabel());
+        patentDTO.setType(systemDictList.stream().filter(systemDict -> systemDict.getType().equals(Constants.PATENT_TYPE) && systemDict.getValue().equals(String.valueOf(patent.getType()))).findFirst().orElse(new SystemDict()).getLabel());
+        patentDTO.setApplicant(patentApplicantService.getPatentApplicantByPatentId(patent.getId()));
+        patentDTO.setInventor(patentInventorService.getPatentInventorByPatentId(patent.getId()));
+        if (StringUtils.isNotEmpty(patent.getAgencyId())) {
+            patentDTO.setAgency(patentAgencyService.getPatentAgencyById(Integer.parseInt(patent.getAgencyId())));
+        } else {
+            PatentAgency patentAgency = new PatentAgency();
+            patentAgency.setName("");
+            patentDTO.setAgency(patentAgency);
+        }
+        patentDTO.setAgent(patentAgentService.getPatentAgentByPatentId(patent.getId()));
+        patentDTO.setAffair(patentAffairService.getPatentAffairByPatentId(patent.getId()));
+        if (StringUtils.isNotEmpty(patent.getPriorityCountry())) {
+            List<String> priorityList = PatentUtils.formatValue(patent.getPriorityCountry());
+            List<String> priorityCountryList = new ArrayList<>();
+            for (String priorityCountry : priorityList) {
+                priorityCountryList.add(systemDictList.stream().filter(systemDict -> systemDict.getType().equals(Constants.COUNTRIES) && systemDict.getValue().equals(priorityCountry)).findFirst().orElse(new SystemDict()).getLabel());
+            }
+            patentDTO.setPriorityCountry(priorityCountryList);
+        }
+        patentDTO.setInstruction(patentInstructionTextService.getPatentInstructionTextByPatentId(patent.getId()));
+        patentDTO.setRights(patentRightService.getPatentRightByPatentId(patent.getId()));
+        patentDTO.setImage(patentImageService.getPatentImageByPatentId(patent.getId()));
+        patentDTO.setPdf(patentInstructionService.getPatentInstructionByPatentNo(patent.getPatentNo()));
+        patentDTO.setIpc(patentClassNumberLinkList.stream().filter(patentClassNumberLink -> patentClassNumberLink.getType().equals(Constants.PATENT_CLASS_NUMBER_IPC) && patentClassNumberLink.getMain().equals(1)).findFirst().orElse(new PatentClassNumberLink()).getCode());
+        patentDTO.setUpc(patentClassNumberLinkList.stream().filter(patentClassNumberLink -> patentClassNumberLink.getType().equals(Constants.PATENT_CLASS_NUMBER_UPC) && patentClassNumberLink.getMain().equals(1)).findFirst().orElse(new PatentClassNumberLink()).getCode());
+        patentDTO.setIpcList(patentClassNumberLinkList.stream().filter(patentClassNumber -> patentClassNumber.getType().equals(Constants.PATENT_CLASS_NUMBER_IPC)).map(PatentClassNumberLink::getCode).distinct().collect(Collectors.toList()));
+        patentDTO.setCpcList(patentClassNumberLinkList.stream().filter(patentClassNumber -> patentClassNumber.getType().equals(Constants.PATENT_CLASS_NUMBER_CPC)).map(PatentClassNumberLink::getCode).distinct().collect(Collectors.toList()));
+        patentDTO.setUpcList(patentClassNumberLinkList.stream().filter(patentClassNumber -> patentClassNumber.getType().equals(Constants.PATENT_CLASS_NUMBER_UPC)).map(PatentClassNumberLink::getCode).distinct().collect(Collectors.toList()));
+        patentDTO.setLocList(patentClassNumberLinkList.stream().filter(patentClassNumber -> patentClassNumber.getType().equals(Constants.PATENT_CLASS_NUMBER_LOC)).map(PatentClassNumberLink::getCode).distinct().collect(Collectors.toList()));
+        return patentDTO;
+    }
+
+
+
+
     public List<Integer> getQueryPatentIds(PatentVO params) {
         if (params.getSelected() != null && params.getSelected().size() != 0 && params.getSelectId() != null && params.getSelectId()) {
             return params.getSelected().stream().distinct().collect(Collectors.toList());
@@ -1169,4 +1246,13 @@ public class PatentService extends ServiceImpl<PatentMapper, Patent> {
         patentInventorMergeService.importPatentInventorMergeLink(projectId, importPatentInventorList, importPatentInventorMergeList);
         patentApplicantMergeLinkService.importPatentApplicantMergeLink(projectId, importPatentApplicantList, importPatentApplicantMergeLinkList);
     }
+    public  String  getPatentNos(Integer projectId){
+        LambdaQueryWrapper<ProjectPatentLink> wrapper =new LambdaQueryWrapper<>();
+   wrapper.select(ProjectPatentLink::getPatentId).eq(ProjectPatentLink::getProjectId,projectId);
+    List<ProjectPatentLink>    projectPatentLinkList = projectPatentLinkService.list(wrapper);
+   List<Integer>  patentId =  projectPatentLinkList.stream().map(ProjectPatentLink::getPatentId).collect(Collectors.toList());
+
+        return Response.success();
+    }
+
 }

+ 26 - 0
PAS/src/main/java/cn/cslg/pas/service/ProjectService.java

@@ -499,6 +499,32 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
         return taskParams;
     }
 
+    //获得
+    public TaskParams getImportPatentTaskParamsBro(MultipartFile file) {
+        //上传文档
+        UploadFileDTO fileDTO = fileUtils.uploadFile(file);
+        //获得文档保存的路径
+        String path = fileUtils.getPath(fileDTO.getPath());
+        List<List<Object>> rowList = new ArrayList<>();
+        //解析excel文件并保存进map里
+        List<Map<Object, Object>> mapList = new ArrayList<>();
+        ExcelUtil.readBySax(path, -1, (sheetIndex, rowIndex, row) -> rowList.add(row));
+        for (int i = 1; i < rowList.size(); i++) {
+            mapList.add(IterUtil.toMap(rowList.get(0), rowList.get(i)));
+        }
+        TaskParams taskParams = new TaskParams();
+        taskParams.setPath(path);
+        taskParams.setTaskType(1);
+        taskParams.setRowList(mapList);
+        taskParams.setUserId(String.valueOf(loginUtils.getId()));
+        taskParams.setOldName(file.getOriginalFilename());
+        return taskParams;
+    }
+
+
+
+
+
     @Transactional(propagation = Propagation.NOT_SUPPORTED)
     public void setImportPatentTaskStatus(Integer status, Integer taskId) {
         taskService.updateStatus(taskId, status, DateUtils.getDateTime());

+ 7 - 0
PAS/src/main/java/cn/cslg/pas/service/ReportService.java

@@ -541,4 +541,11 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
         });
         return dataList;
     }
+
+    //根据Id删除报告
+    public String deleteById(List<Integer> ids){
+        this.deleteById(ids);
+        return Response.success();
+
+    }
 }

+ 155 - 0
PAS/src/main/java/cn/cslg/pas/service/UploadPatentBatchService.java

@@ -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 全局类
      * @date 2022-7-11
      * @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 全局类
      * @date 2022-7-11
@@ -433,6 +587,7 @@ List<String>  standardName = uploadParamsVO.getPatentApplicantStandardCurrentNam
             patentCustomFieldParams.setProjectId(projectImportPatentVO.getProjectId());
             patentCustomFieldParams.setUserId(Integer.parseInt(params.getUserId()));
             patentCustomFieldParams.put(uploadParamsVO.getCustomerFieldList().get(i).getKey(), uploadParamsVO.getCustomerFieldList().get(i).getFieldList());
+
         }
 
         patentService.updatePatentCustomField(patentCustomFieldParams);