Преглед на файлове

Merge remote-tracking branch 'origin/dev' into dev

chendayu преди 2 години
родител
ревизия
48c67d046c

+ 102 - 0
PAS/src/main/java/cn/cslg/pas/common/model/PatentCell.java

@@ -0,0 +1,102 @@
+package cn.cslg.pas.common.model;
+
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 管理员表
+ * </p>
+ *
+ * @author 王岩
+ * @since 2022-03-25
+ */
+@Data
+
+/*数据库中的表对应的类
+ */
+public class PatentCell {
+
+    /**
+     * 管理员用户名
+     */
+    private String patentNo;
+    private String title;
+    private String applications;
+    private String legal;
+    private String url;
+    private String abstrc;
+    private String picUrl;
+    /*
+    申请号
+     */
+    private String applicationNo;
+
+    private String country;
+    private String applicationDate;
+    private String pubilcDate;
+    /*
+    公开授权号
+     */
+    private String publicAccreditNo;
+    /*
+公开授权日
+     */
+    private String publicAccreditDate;
+    /*
+    主分类号
+     */
+    private String mainTypeNo;
+    /*
+      分类号
+       */
+    private String typeNo;
+    /*
+    申请人
+     */
+    private String applicationPerson;
+    /*
+申请人地址
+ */
+    private String applicationAddress;
+    /*
+  发明人
+   */
+    private String inventor;
+
+    /*
+    当前权利人
+     */
+    private String patentApplication;
+    /*
+    范畴分类
+     */
+    private String classical;
+    /*
+    状态
+     */
+    private String statue;
+    /*
+    摘要
+     */
+    private  String abstrText;
+    /*
+    主权要
+     */
+    private String mainRignt;
+    /*
+    权要
+     */
+    private List<String> rights;
+    /*
+    PDF文档
+     */
+    private String PDF;
+    /*
+说明书
+ */
+    private String patentInstructionText;
+
+}

+ 1 - 0
PAS/src/main/java/cn/cslg/pas/common/model/vo/TaskVO.java

@@ -9,4 +9,5 @@ public class TaskVO extends BaseVO {
     private Integer type;
     private String createName;
     private String projectName;
+    private Integer productId;
 }

+ 1 - 1
PAS/src/main/java/cn/cslg/pas/common/utils/Response.java

@@ -21,7 +21,7 @@ public class Response {
 
     public static String successBut(Object data) {
         Response response = new Response();
-        response.setCode(201);
+        response.setResultEnum(ResponseEnum.SUCCESSBUT);
         response.setData(data);
         return JsonUtils.objectToJson(response);
     }

+ 1 - 0
PAS/src/main/java/cn/cslg/pas/common/utils/ResponseEnum.java

@@ -21,6 +21,7 @@ public enum ResponseEnum {
     PATENT_IMPORT_TASK_ERROR(803, "专利导入专利失败"),
     PATENT_EXPORT_TASK_ERROR(804, "专利导出专利失败"),
     SYSTEM_ERROR(500, "系统异常"),
+    SUCCESSBUT(200, "请求成功"),
     ERROR(0, "请求失败");
 
     private Integer code;

+ 6 - 2
PAS/src/main/java/cn/cslg/pas/controller/ProductPatentController.java

@@ -42,7 +42,11 @@ public class ProductPatentController {
     @PostMapping("/add")
     @Operation(summary = "添加产品相关专利")
     public String addPatents(@RequestBody ProductPatentDTO patentDTO) {
-        assoProductPatentService.addPatents(patentDTO);
+
+        List<String> notQuery = assoProductPatentService.addPatents(patentDTO);
+        if (notQuery.size() > 0) {
+            return Response.successBut(notQuery);
+        }
         return Response.success(true);
     }
 
@@ -53,7 +57,7 @@ public class ProductPatentController {
         if (patentNos.size() == 0) {
             return Response.success("删除成功");
         }
-        return Response.successBut(patentNos);
+        return Response.success(patentNos);
     }
 
     @PostMapping("/importPatents")

+ 8 - 5
PAS/src/main/java/cn/cslg/pas/controller/SystemController.java

@@ -1,6 +1,7 @@
 package cn.cslg.pas.controller;
 
 import cn.cslg.pas.common.core.base.Constants;
+import cn.cslg.pas.common.model.PatentCell;
 import cn.cslg.pas.common.model.QueryPatentVO;
 import cn.cslg.pas.common.model.vo.PatentVO;
 import cn.cslg.pas.common.model.vo.TaskVO;
@@ -41,6 +42,7 @@ public class SystemController {
     private final SystemDictService systemDictService;
     private final PatentService patentService;
     private final PatentFieldService patentFieldService;
+    private final UploadPatentBatchService uploadPatentBatchService;
 
     @PostMapping("dict")
     @Operation(summary = "根据类型获得字典")
@@ -81,11 +83,12 @@ public class SystemController {
         return Response.success(patentFieldService.getPageList(projectId));
     }
 
-    @PostMapping("gcease1")
-    @Operation(summary = "测试11111")
-    public List<Integer> getAllClient1() {
-        return new ArrayList<>();
-    }
+    @PostMapping("/patentCellTODb")
+    @Operation(summary = "获得所有对比文件详细信息")
+    public String   getPatentDTOListForRMS(@RequestBody PatentCell patentCell) {
+        uploadPatentBatchService.dataToDBCell(patentCell);
+        return Response.success();
 
+    }
 }
 

+ 66 - 6
PAS/src/main/java/cn/cslg/pas/service/UploadPatentBatchService.java

@@ -1,6 +1,7 @@
 package cn.cslg.pas.service;
 
 import cn.cslg.pas.common.core.base.Constants;
+import cn.cslg.pas.common.model.PatentCell;
 import cn.cslg.pas.common.model.dto.TaskWebSocketDTO;
 import cn.cslg.pas.common.model.params.*;
 import cn.cslg.pas.common.model.vo.ProjectImportPatentVO;
@@ -376,7 +377,6 @@ public class UploadPatentBatchService {
             patentRightParams.setSelfContent(uploadParamsVO.getSelfContent());
         }
         patentRightService.updatePatentRight(patentRightParams);
-
         patentRightService.importAuthority(patentRightParams);
     }
 
@@ -591,19 +591,15 @@ public class UploadPatentBatchService {
             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));
@@ -617,7 +613,6 @@ public class UploadPatentBatchService {
                     if (uploadParamsVO.getPatent().getAgencyId() != null) {
                         uploadParamsVO.getPatent().setAgencyId(patentAgencyService.getAgencyStringIdByName(uploadParamsVO.getPatent().getAgencyId()));
                     }
-
                 }
                 //将装配对象中的数据保存到数据库
                 dataToDBBro(params, uploadParamsVO);
@@ -657,4 +652,69 @@ public class UploadPatentBatchService {
             FLAG = 0;
         }
     }
+
+    /**
+
+     * @date 2022-7-11
+     * @name 数据库交互
+     * @description 将装配完毕的VO类向数据库中不同的表进行添加或修改操作(dataToDB兄弟类)
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void dataToDBCell(PatentCell patentCell) {
+        UploadParamsVO uploadParamsVO =new UploadParamsVO();
+        uploadParamsVO.setPatent(new Patent());
+        uploadParamsVO.getPatent().setPatentNo(patentCell.getPatentNo());
+        getOneOrInsertOne(uploadParamsVO);
+        uploadParamsVO.setSimpleStatus(patentCell.getStatue());
+        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();
+            }
+            uploadParamsVO.setPatentRight(new PatentRight());
+            uploadParamsVO.getPatentRight().setContent(StringUtils.join(patentCell.getRights(),""));
+            uploadParamsVO.setSelfContent(patentCell.getMainRignt());
+            //权利要求 OS_PATENT_RIGHT
+            patentRightBusiness(uploadParamsVO);
+            //说明书(文本) OS_PATENT_INSTRUCTION_TEXT
+            uploadParamsVO.setPatentInstructionText(new PatentInstructionText());
+            uploadParamsVO.getPatentInstructionText().setManual(patentCell.getPatentInstructionText());
+            if (uploadParamsVO.getPatentInstructionText() != null) {
+                patentInstructionTextBusiness(uploadParamsVO);
+            }
+            //简单同族 OS_PATENT_SIMPLEFAMILY
+            patentSimplyFamilyBusiness(uploadParamsVO);
+            //发明人 OS_PATENT_INVENTOR
+            patentInventorBusiness(uploadParamsVO);
+            //申请人(原始)/权利人(当前) OS_PATENT_APPLICATION || OS_APPLICATION_ATTR
+            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();
+        }
+    }
+
 }

+ 19 - 8
PAS/src/main/java/cn/cslg/pas/service/asso/AssoProductPatentService.java

@@ -51,13 +51,23 @@ public class AssoProductPatentService extends ServiceImpl<AssoProductPatentMappe
     /**
      * 给产品添加相关专利
      */
-    public int addPatents(ProductPatentDTO patentDTO) {
-        patentDTO.setIsIn(0);
-        List<String> patentNos = this.baseMapper.getPatentNos(patentDTO);
-        if (patentNos.size() == 0) {
-            return -1;
+    @Transactional
+    public List<String> addPatents(ProductPatentDTO patentDTO) {
+        List<String> orgPatentNos = new ArrayList<>();
+        if (patentDTO.getPatentNo() != null) {
+            patentDTO.setPatentNo(patentDTO.getPatentNo().replace(" ", ""));
+            if(!patentDTO.getPatentNo().equals("")) {
+                String[] strs = patentDTO.getPatentNo().split("\\|");
+                orgPatentNos = new ArrayList<>(Arrays.asList(strs));
+                patentDTO.setIsIn(0);
+                List<String> patentNos = this.baseMapper.getPatentNos(patentDTO);
+                orgPatentNos.removeAll(patentNos);
+                if (patentNos.size() > 0) {
+                    this.baseMapper.insertBatch(patentNos, patentDTO.getProductId());
+                }
+            }
         }
-        return this.baseMapper.insertBatch(patentNos, patentDTO.getProductId());
+        return orgPatentNos;
     }
 
 
@@ -78,8 +88,9 @@ public class AssoProductPatentService extends ServiceImpl<AssoProductPatentMappe
     public List<String> deletePatents(ProductPatentDTO patentDTO) {
         patentDTO.setIsIn(1);
         List<String> patentNos = new ArrayList<>();
-        if (patentDTO.getStartNumber() != null && patentDTO.getEndNumber() != null && patentDTO.getEndNumber() > patentDTO.getStartNumber()) {
-            patentDTO.setEndNumber(patentDTO.getEndNumber() - patentDTO.getStartNumber() + 1);
+        if (patentDTO.getStartNumber() != null && patentDTO.getEndNumber() != null && patentDTO.getEndNumber() >= patentDTO.getStartNumber()) {
+            patentDTO.setStartNumber(patentDTO.getStartNumber() - 1);
+            patentDTO.setEndNumber(patentDTO.getEndNumber() - patentDTO.getStartNumber());
             patentNos = this.baseMapper.getPatentNos(patentDTO);
         }
         if (patentDTO.getPatentNos() != null && patentDTO.getPatentNos().size() > 0) {

+ 1 - 1
PAS/src/main/resources/mapper/AssoProductPatentMapper.xml

@@ -134,7 +134,7 @@
                 and h.code like concat("%", #{params.numberUpc}, "%")
             </if>
             <if test="params.patentNo !=null and params.patentNo !=''">
-                and a.patentNo = #{params.patentNo}
+                and a.patentNo REGEXP  #{params.patentNo}
             </if>
             <if test="params.applicationNo !=null and params.applicationNo !=''">
                 and a.applicationNo like concat("%", #{params.applicationNo}, "%")

+ 3 - 0
PAS/src/main/resources/mapper/TaskMapper.xml

@@ -21,6 +21,9 @@
             <if test="params.projectId != null">
                 and a.tid = #{params.projectId}
             </if>
+            <if test="params.productId != null">
+                and a.product_id = #{params.productId}
+            </if>
             <if test="params.projectName != '' and params.projectName != null">
                 and c.name like concat('%', #{params.projectName}, '%')
             </if>