chendayu 2 lat temu
rodzic
commit
09799bce55

+ 1 - 1
RMS/src/main/java/cn/cslg/report/common/model/dto/AvoidDesignDirectionDTO.java

@@ -18,7 +18,7 @@ public class AvoidDesignDirectionDTO implements Serializable {
      */
     private Integer reportId;
     /**
-     * 存放特征featureId与回避设计方向littleDirection数据的对象的集合
+     * 拆分好的权要特征解释和回避设计方向littleDirection等数据的对象的集合
      */
     private List<AvoidDesignLittleDirectionDTO> avoidDesignLittleDirectionDTOs;
     /**

+ 25 - 4
RMS/src/main/java/cn/cslg/report/common/model/dto/AvoidDesignLittleDirectionDTO.java

@@ -1,6 +1,10 @@
 package cn.cslg.report.common.model.dto;
 
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * 回避设计方向前端传输DTO类
@@ -8,14 +12,31 @@ import java.io.Serializable;
  * @Author chenyu
  * @Data 2023/2/2
  */
+@Data
 public class AvoidDesignLittleDirectionDTO implements Serializable {
     /**
-     * 特征ID
+     * 权要名
+     */
+    private String RightName;
+    /**
+     * 权要原文
+     */
+    private String content;
+    /**
+     * 权要翻译
+     */
+    private String contentOut;
+    /**
+     * 权要拆分特征
+     */
+    List<AvoidFeatures> features;
+    /**
+     * 报告id
      */
-    private Integer featureId;
+    private Integer reportId;
     /**
-     * 回避设计方向
+     * 专利号
      */
-    private String littleDirection;
+    private String signPatentNo;
 
 }

+ 89 - 0
RMS/src/main/java/cn/cslg/report/common/model/dto/AvoidFeatures.java

@@ -0,0 +1,89 @@
+package cn.cslg.report.common.model.dto;
+
+import cn.cslg.report.common.model.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+/**
+ * 拆分保存特征的前端传输DTO类
+ */
+@Data
+@Accessors(chain = true)
+public class AvoidFeatures {
+    /**
+     * 特征id
+     */
+    private Integer id;
+    /**
+     * 专利号
+     */
+    private String signPatentNo;
+    /**
+     * 特征翻译
+     */
+    private String contentOut;
+    /**
+     * 特征
+     */
+    private String content;
+    /**
+     * 权要ID
+     */
+    private Integer rightId;
+
+    /**
+     * 特征拆分人ID
+     */
+    private Integer partnerId;
+    /**
+     * 是否最终
+     */
+    private Integer isFinal;
+    /**
+     * 所属报告
+     */
+    private Integer reportId;
+    /**
+     * 解释
+     */
+    private String explainText;
+    /**
+     * 拆分类型
+     */
+    private Integer splitBy;
+
+    /**
+     * 拆分方式
+     */
+    private Integer splitType;
+    /**
+     * 权要名
+     */
+    private String rightName;
+    /**
+     * 权要类型 1主权要 0附属权要
+     */
+    private Integer rightType;
+    /**
+     * 特征排序
+     */
+    private Integer featuresOrder;
+    /**
+     * 任务id
+     */
+    private Integer taskId;
+    /**
+     * 特征拆分人IDs
+     */
+    private List<Integer> partnerIds;
+    /**
+     * 回避设计方向
+     */
+    private String littleDirection;
+
+}

+ 3 - 1
RMS/src/main/java/cn/cslg/report/common/model/vo/PatentRightVo.java

@@ -16,7 +16,9 @@ import java.util.List;
 @Data
 @Accessors(chain = true)
 public class PatentRightVo {
-
+    /**
+     * 权要名
+     */
     private String RightName;
     /**
      * 专利号

+ 1 - 0
RMS/src/main/java/cn/cslg/report/controller/AvoidDesignDirectionController.java

@@ -5,6 +5,7 @@ import cn.cslg.report.common.model.dto.AvoidDesignDirectionDTO;
 import cn.cslg.report.common.utils.Response;
 import cn.cslg.report.exception.XiaoShiException;
 import cn.cslg.report.service.IAvoidDesignDirectionService;
+import cn.cslg.report.service.business.FeatureService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;

+ 33 - 0
RMS/src/main/java/cn/cslg/report/mapper/AvoidFeatureMapper.java

@@ -0,0 +1,33 @@
+package cn.cslg.report.mapper;
+
+import cn.cslg.report.common.model.dto.AvoidFeatures;
+import cn.cslg.report.entity.Features;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * 特征表的Mapper层接口(回避设计方案用)
+ *
+ * @Author chenyu
+ * @Data 2023/2/3
+ */
+@Repository
+public interface AvoidFeatureMapper {
+    /**
+     * 批量插入特征数据
+     *
+     * @param features 特征数据
+     * @return 返回受影响的行数
+     */
+    int insertBatch(List<AvoidFeatures> features);
+
+    /**
+     * 根据报告id删除权要特征
+     *
+     * @param reportId 报告id
+     * @return 返回受影响的行数
+     */
+    int deleteByReportId(Integer reportId);
+
+}

+ 36 - 5
RMS/src/main/java/cn/cslg/report/service/impl/AvoidDesignDirectionServiceImpl.java

@@ -2,14 +2,20 @@ package cn.cslg.report.service.impl;
 
 import cn.cslg.report.common.model.dto.AvoidDesignDirectionDTO;
 import cn.cslg.report.common.model.dto.AvoidDesignLittleDirectionDTO;
+import cn.cslg.report.common.model.dto.AvoidFeatures;
+import cn.cslg.report.common.model.vo.PatentRightVo;
 import cn.cslg.report.entity.AssoAvoidDesignWholeLittleDirection;
 import cn.cslg.report.entity.AvoidDesignLittleDirection;
 import cn.cslg.report.entity.AvoidDesignWholeDirection;
+import cn.cslg.report.entity.Features;
 import cn.cslg.report.exception.XiaoShiException;
 import cn.cslg.report.mapper.AssoAvoidDesignWholeLittleDirectionMapper;
 import cn.cslg.report.mapper.AvoidDesignLittleDirectionMapper;
 import cn.cslg.report.mapper.AvoidDesignWholeDirectionMapper;
+import cn.cslg.report.mapper.AvoidFeatureMapper;
 import cn.cslg.report.service.IAvoidDesignDirectionService;
+import cn.cslg.report.service.business.FeatureService;
+import com.alibaba.fastjson.JSON;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
@@ -31,6 +37,7 @@ public class AvoidDesignDirectionServiceImpl implements IAvoidDesignDirectionSer
     private final AvoidDesignWholeDirectionMapper avoidDesignWholeDirectionMapper;  //回避设计总体方向表的Mapper层接口装配
     private final AvoidDesignLittleDirectionMapper avoidDesignLittleDirectionMapper;  //回避设计方向表的Mapper层接口装配
     private final AssoAvoidDesignWholeLittleDirectionMapper assoAvoidDesignWholeLittleDirectionMapper;  //回避设计总体方向和方向关联表的Mapper层接口装配
+    private final AvoidFeatureMapper avoidFeatureMapper;  //特征标的Mapper层接口装配
 
     /**
      * 新增回避设计方案
@@ -41,7 +48,7 @@ public class AvoidDesignDirectionServiceImpl implements IAvoidDesignDirectionSer
     public void addAvoidDesignDirection(AvoidDesignDirectionDTO avoidDesignDirectionDTO) {
         log.info("开始处理【新增回避设计方案】的业务,参数为:{}", avoidDesignDirectionDTO);
 
-        //1.从回避设计方案中取报告reportId和回避设计总体方向wholeDirection,将它们插入回避设计总体方向表
+        //1.从回避设计方案中取报告reportId和回避设计总体方向wholeDirection,将它们插入回避设计总体方向表
         Integer reportId = avoidDesignDirectionDTO.getReportId();
         String wholeDirection = avoidDesignDirectionDTO.getWholeDirection();
         //将获取到的报告reportId与回避设计总体方向wholeDirection数据赋值给回避设计总体方向表实体类后插入
@@ -56,11 +63,35 @@ public class AvoidDesignDirectionServiceImpl implements IAvoidDesignDirectionSer
             throw new XiaoShiException(message);
         }
 
-        //2.从回避设计方案中获取存放特征featureId与回避设计方向littleDirection的DTO对象的集合,将它们插入回避设计方向表
+        //2.从回避设计方案中取出权要特征解释和回避设计方向littleDirection等数据的对象的集合avoidDesignLittleDirectionDTOs,后把相应数据分别插入相应表中
         List<AvoidDesignLittleDirectionDTO> avoidDesignLittleDirectionDTOs = avoidDesignDirectionDTO.getAvoidDesignLittleDirectionDTOs();
-        //将获取到的存放特征featureId与回避设计方向littleDirection的DTO对象的集合复制给新创建的回避设计方向表实体类集合后插入
-        ArrayList<AvoidDesignLittleDirection> avoidDesignLittleDirections = new ArrayList<>();
-        BeanUtils.copyProperties(avoidDesignLittleDirectionDTOs, avoidDesignLittleDirections);
+
+        //先根据报告id把原来的权要特征通通删除
+        log.info("先根据报告id把原来的权要特征通通删除");
+        avoidFeatureMapper.deleteByReportId(reportId);
+
+        //遍历取出每个权要的特征数据插入特征表,插入后取出每个特征的特征featureId和回避设计方向littleDirection存入回避设计方向表
+        List<AvoidDesignLittleDirection> avoidDesignLittleDirections = new ArrayList<>();
+        List<AvoidFeatures> avoidFeatures = new ArrayList<>();
+        for (AvoidDesignLittleDirectionDTO avoidDesignLittleDirectionDTO : avoidDesignLittleDirectionDTOs) {
+            avoidFeatures.addAll(avoidDesignLittleDirectionDTO.getFeatures());
+        }
+        //遍历清空特征集合中前端传来的初始特征id
+        for (AvoidFeatures avoidFeature : avoidFeatures) {
+            avoidFeature.setId(null);
+        }
+        //批量插入特征,插入表中后再遍历取出特征featureId和回避设计方向littleDirection,存入回避设计方向表实体类对象集合
+        log.info("将数据插入特征表,特征数据量:{}个", avoidFeatures.size());
+        avoidFeatureMapper.insertBatch(avoidFeatures);
+        for (AvoidFeatures avoidFeature : avoidFeatures) {
+            Integer featureId = avoidFeature.getId();
+            String littleDirection = avoidFeature.getLittleDirection();
+            AvoidDesignLittleDirection avoidDesignLittleDirection = new AvoidDesignLittleDirection()
+                    .setFeatureId(featureId)
+                    .setLittleDirection(littleDirection);
+            avoidDesignLittleDirections.add(avoidDesignLittleDirection);
+        }
+        //将数据插入回避设计方向表
         log.info("将数据插入回避设计方向表,数据为:{}", avoidDesignLittleDirections);
         rows = avoidDesignLittleDirectionMapper.insertBatch(avoidDesignLittleDirections);
         if (rows != avoidDesignLittleDirections.size()) {

+ 27 - 0
RMS/src/main/resources/mapper/AvoidFeatureMapper.xml

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+
+<mapper namespace="cn.cslg.report.mapper.AvoidFeatureMapper">
+    <!--批量插入特征数据-->
+    <!--int insertBatch(List<AvoidFeatures> features);-->
+    <insert id="insertBatch" useGeneratedKeys="true" keyProperty="id">
+        insert into FEATURES (SIGN_PATENT_NO, CONTENT_OUT, RIGHT_ID, PARTNER_ID, IS_FINAL, REPORT_ID, CONTENT,
+        EXPLAIN_TEXT, SPLIT_BY, RIGHT_NAME, RIGHT_TYPE, FEATURES_ORDER, SPLIT_TYPE, TASK_ID)
+        values
+        <foreach collection="list" item="n" separator=",">
+            (#{n.signPatentNo}, #{n.contentOut}, #{n.rightId}, #{n.partnerId}, #{n.isFinal}, #{n.reportId},
+            #{n.content}, #{n.explainText}, #{n.splitBy}, #{n.rightName}, #{n.rightType}, #{n.featuresOrder},
+            #{n.splitType}, #{n.taskId})
+        </foreach>
+    </insert>
+
+    <!--根据报告id删除权要特征-->
+    <!--int deleteByReportId(Integer reportId);-->
+    <delete id="deleteByReportId">
+        delete
+        from FEATURES
+        where REPORT_ID = #{reportId}
+    </delete>
+
+</mapper>

BIN
RMS/target/classes/cn/cslg/report/common/model/dto/AvoidDesignLittleDirectionDTO.class


BIN
RMS/target/classes/cn/cslg/report/common/model/dto/AvoidFeatures.class


BIN
RMS/target/classes/cn/cslg/report/common/model/vo/PatentRightVo.class


BIN
RMS/target/classes/cn/cslg/report/controller/AvoidDesignDirectionController.class


BIN
RMS/target/classes/cn/cslg/report/mapper/AvoidFeatureMapper.class


BIN
RMS/target/classes/cn/cslg/report/service/impl/AvoidDesignDirectionServiceImpl.class


+ 1 - 1
RMS/target/classes/mapper/AssoAvoidDesignWholeLittleDirectionMapper.xml

@@ -3,7 +3,7 @@
 
 
 <mapper namespace="cn.cslg.report.mapper.AssoAvoidDesignWholeLittleDirectionMapper">
-    <!--批量插入回避设计总体方向和方向关联表数据-->
+    <!--批量插入回避设计总体方向和回避设计方向关联表数据-->
     <!--int insertBatch(List<AssoAvoidDesignWholeLittleDirection> assoAvoidDesignWholeLittleDirections);-->
     <insert id="insertBatch" useGeneratedKeys="true" keyProperty="id">
         insert into ASSO_AVOIDDESIGN_WHOLE_LITTLE_DIRECTION (AVOIDDESIGN_WHOLE_DIRECTION_ID, AVOIDDESIGN_LITTLE_DIRECTION_ID)

+ 27 - 0
RMS/target/classes/mapper/AvoidFeatureMapper.xml

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+
+<mapper namespace="cn.cslg.report.mapper.AvoidFeatureMapper">
+    <!--批量插入特征数据-->
+    <!--int insertBatch(List<AvoidFeatures> features);-->
+    <insert id="insertBatch" useGeneratedKeys="true" keyProperty="id">
+        insert into FEATURES (SIGN_PATENT_NO, CONTENT_OUT, RIGHT_ID, PARTNER_ID, IS_FINAL, REPORT_ID, CONTENT,
+        EXPLAIN_TEXT, SPLIT_BY, RIGHT_NAME, RIGHT_TYPE, FEATURES_ORDER, SPLIT_TYPE, TASK_ID)
+        values
+        <foreach collection="list" item="n" separator=",">
+            (#{n.signPatentNo}, #{n.contentOut}, #{n.rightId}, #{n.partnerId}, #{n.isFinal}, #{n.reportId},
+            #{n.content}, #{n.explainText}, #{n.splitBy}, #{n.rightName}, #{n.rightType}, #{n.featuresOrder},
+            #{n.splitType}, #{n.taskId})
+        </foreach>
+    </insert>
+
+    <!--根据报告id删除权要特征-->
+    <!--int deleteByReportId(Integer reportId);-->
+    <delete id="deleteByReportId">
+        delete
+        from FEATURES
+        where REPORT_ID = #{reportId}
+    </delete>
+
+</mapper>

BIN
RMS/target/test-classes/cn/cslg/report/mapper/ProductMapperTests.class