Просмотр исходного кода

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

# Conflicts:
#	RMS/src/main/java/cn/cslg/report/controller/InvalidReReport/ProofController.java
chendayu 2 лет назад
Родитель
Сommit
23e58adb27
17 измененных файлов с 691 добавлено и 78 удалено
  1. 4 0
      RMS/pom.xml
  2. 5 2
      RMS/src/main/java/cn/cslg/report/common/model/dto/ReportDTO.java
  3. 0 14
      RMS/src/main/java/cn/cslg/report/common/model/dto/ReportDeDTO.java
  4. 94 0
      RMS/src/main/java/cn/cslg/report/common/model/dto/invalidReReport/InvalidReasonDTO.java
  5. 23 0
      RMS/src/main/java/cn/cslg/report/common/model/dto/invalidReReport/InvalidReasonSearchDTO.java
  6. 236 0
      RMS/src/main/java/cn/cslg/report/common/model/vo/ReportDeVO.java
  7. 67 0
      RMS/src/main/java/cn/cslg/report/controller/InvalidReReport/InvalidReasonController.java
  8. 4 10
      RMS/src/main/java/cn/cslg/report/controller/ReportController.java
  9. 1 1
      RMS/src/main/java/cn/cslg/report/entity/Report.java
  10. 38 0
      RMS/src/main/java/cn/cslg/report/entity/invalidReReport/AssoInReasonFeatures.java
  11. 0 12
      RMS/src/main/java/cn/cslg/report/entity/invalidReReport/InvalidReason.java
  12. 19 0
      RMS/src/main/java/cn/cslg/report/mapper/InvalidReReport/ArgumentsMapper.java
  13. 14 0
      RMS/src/main/java/cn/cslg/report/mapper/InvalidReReport/InvalidReasonMapper.java
  14. 19 0
      RMS/src/main/java/cn/cslg/report/service/business/InvalidReReport/ArgumentsService.java
  15. 19 0
      RMS/src/main/java/cn/cslg/report/service/business/InvalidReReport/InvalidReReportService.java
  16. 107 0
      RMS/src/main/java/cn/cslg/report/service/business/InvalidReReport/InvalidReasonService.java
  17. 41 39
      RMS/src/main/java/cn/cslg/report/service/business/ReportService.java

+ 4 - 0
RMS/pom.xml

@@ -174,6 +174,10 @@
             <artifactId>pagehelper</artifactId>
             <version>5.3.0</version>
         </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
 
     </dependencies>
 

+ 5 - 2
RMS/src/main/java/cn/cslg/report/common/model/dto/ReportDTO.java

@@ -2,12 +2,15 @@ package cn.cslg.report.common.model.dto;
 
 import cn.cslg.report.common.model.BaseEntity;
 import cn.cslg.report.entity.ReportFiles;
-import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
 
+
 import java.util.Date;
 import java.util.List;
 

+ 0 - 14
RMS/src/main/java/cn/cslg/report/common/model/dto/ReportDeDTO.java

@@ -1,14 +0,0 @@
-package cn.cslg.report.common.model.dto;
-
-import cn.cslg.report.entity.ReportFiles;
-import com.baomidou.mybatisplus.annotation.TableField;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
-import java.util.Date;
-import java.util.List;
-
-@Data
-public class ReportDeDTO extends ReportDTO {
-
-}

+ 94 - 0
RMS/src/main/java/cn/cslg/report/common/model/dto/invalidReReport/InvalidReasonDTO.java

@@ -0,0 +1,94 @@
+package cn.cslg.report.common.model.dto.invalidReReport;
+
+import cn.cslg.report.entity.Features;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.v3.oas.models.security.SecurityScheme;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class InvalidReasonDTO {
+    /**
+     * 无效理由(0权利要求不清楚 1说明书公开不充分 2不具备创造性 3不具备新颖性)
+     */
+    private Integer invalidName;
+
+    /**
+     * 报告id
+     */
+
+    private Integer reportId;
+
+    /**
+     * 涉及内容(0为说明书,其他为权要id
+     */
+
+    private Integer content;
+
+    /**
+     * 选择特征
+     */
+    private List<featuresIn> features;
+    /**
+     * 相关证据
+     */
+
+    private String proofStr;
+
+    /**
+     * 陈述意见
+     */
+
+    private String argument_str;
+
+    /**
+     * 复审委意见
+     */
+    private String comOptions;
+
+    /**
+     * 法院意见
+     */
+    private String courtOptions;
+
+    /**
+     * 证据组合
+     */
+    private List<proofGroupIn> proofGroups;
+
+
+       @Data
+    public static class proofGroupIn{
+           private Integer id;
+        /**
+         * 描述
+         */
+        private String description;
+
+        /**
+         * 陈述意见
+         */
+        private String argument_str;
+
+        private List<Integer> proofIds;
+
+    }
+
+    @Data
+    public static class featuresIn{
+        private Integer id;
+        /**
+         * 特征内容
+         */
+        private String featureStr;
+        /**
+         * 内容起始位置
+         */
+        private Integer position;
+
+
+
+    }
+}

+ 23 - 0
RMS/src/main/java/cn/cslg/report/common/model/dto/invalidReReport/InvalidReasonSearchDTO.java

@@ -0,0 +1,23 @@
+package cn.cslg.report.common.model.dto.invalidReReport;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class InvalidReasonSearchDTO {
+    /**
+     * 无效理由(0权利要求不清楚 1说明书公开不充分 2不具备创造性 3不具备新颖性)
+     */
+    private Integer invalidName;
+
+    /**
+     * 报告id
+     */
+
+    private Integer reportId;
+
+
+
+
+}

+ 236 - 0
RMS/src/main/java/cn/cslg/report/common/model/vo/ReportDeVO.java

@@ -0,0 +1,236 @@
+package cn.cslg.report.common.model.vo;
+
+import cn.cslg.report.entity.ReportFiles;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+@Accessors(chain = true)
+public class ReportDeVO {
+    /**
+     * 标的专利/产品号
+     */
+    @Schema(description = "标的专利号", required = true)
+    @TableField(value = "SIGN_PATENT_NO")
+    private String signPatentNo;
+
+    /**
+     * 报告名称
+     */
+    @Schema(description = "报告名称", required = true)
+    @TableField(value = "NAME")
+    private String name;
+
+    /**
+     * 产品/技术
+     */
+    @Schema(description = "产品/技术")
+    @TableField(value = "PRO_TEC")
+    private String proTec;
+
+    /**
+     * 报告类别
+     */
+    @Schema(description = "报告类别(0无效分析1第三方意见2稳定性分析3FTO调查4侵权分析5回避设计6图表分析7无效应对)")
+    @TableField(value = "TYPE")
+    private Integer type;
+
+    /**
+     * 报告状态
+     */
+    @Schema(description = "报告状态")
+    @TableField(value = "STATUS")
+    private Integer status;
+
+    /**
+     * 报告生成时间
+     */
+    @Schema(description = "报告生成时间")
+    @TableField(value = "CREATE_TIME")
+    private Date createTime;
+
+    /**
+     * 报告生成文件ID
+     */
+    @Schema(description = "报告生成文件ID")
+    @TableField(value = "REPORT_FILE_ID")
+    private Integer reportFileId;
+
+    /**
+     * 负责人ID
+     */
+    @Schema(description = "负责人ID")
+    @TableField(value = "PERSON_ID")
+    private Integer personId;
+    /**
+     * 负责人ID
+     */
+    @Schema(description = "负责人姓名")
+    @TableField(value = "PERSON_NAME")
+    private String personName;
+
+    /**
+     * 委托人ID
+     */
+    @Schema(description = "委托人ID")
+    @TableField(value = "CLIENT_ID")
+    private Integer clientId;
+
+    /**
+     * 委托人姓名
+     */
+    @Schema(description = "委托人姓名")
+    @TableField(value = "CLIENT_NAME")
+    private String clientName;
+
+    /**
+     * 承担部门ID
+     */
+    @Schema(description = "承担部门ID")
+    @TableField(value = "DEPARTMENT_ID")
+    private Integer departmentId;
+
+    /**
+     * 承担部门名称
+     */
+    @Schema(description = "承担部门名称")
+    @TableField(value = "DEPARTMENT_NAME")
+    private String departmentName;
+
+    /**
+     * 关联报告ID
+     */
+    @Schema(description = "关联报告ID")
+    @TableField(value = "ASSOCIATE_REPORT_ID")
+    private Integer associateReportId;
+
+    /**
+     * 关联报告名称
+     */
+    @Schema(description = "关联报告名称")
+    @TableField(value = "ASSOCIATE_REPORT_NAME")
+    private String associateReportName;
+
+    /**
+     * 应用场景
+     */
+    @Schema(description = "应用场景")
+
+    @TableField("SCENARIO_ID")
+    private String scenarioId;
+    /**
+     * 调查类型
+     */
+    @Schema(description = "调查类型")
+    @TableField(value = "IT_FLAG")
+    private Integer itFlag;
+
+    /**
+     * 专题库ID
+     */
+    @Schema(description = "专题库ID")
+    @TableField(value = "PROJECT_ID")
+    private Integer projectId;
+
+    /**
+     * 卷号
+     */
+    @Schema(description = "卷号")
+    @TableField(value = "VOLUME_NUMBER")
+    private String volumeNumber;
+    /**
+     * 拆分根据
+     */
+    @Schema(description = "拆分根据")
+    @TableField(value = "SPLIT_BY")
+    private Integer splitBy;
+    /**
+     * 拆分类型
+     */
+    @Schema(description = "拆分类型")
+    @TableField(value = "SPLIT_TYPE")
+    private Integer splitType;
+
+    /**
+     * 创建人ID
+     */
+    @Schema(description = "创建人ID")
+    @TableField(value = "CREATE_PERSON_ID")
+    private Integer createPersonId;
+    /**
+     * 创建人姓名
+     */
+    @Schema(description = "创建人姓名")
+    @TableField(value = "CREATE_PERSON_NAME")
+    private String createPersonName;
+    /**
+     * 备注
+     */
+    @Schema(description = "REMARK")
+    @TableField(value = "REMARK")
+    private String remark;
+
+    /**
+     * 结论id
+     */
+    @Schema(description = "结论id")
+    @TableField(value = "CONCLUSION_ID")
+    private String conclusionId;
+
+
+    /**
+     * 核心结论
+     */
+    @Schema(description = "核心结论")
+    @TableField(value = "CRON_CONCLUSION")
+    private String cronConclusion;
+
+    @Schema(description = "登录人在报告中的角色 0创建人,1负责人,2分享人")
+    @TableField(exist = false)
+    private List<Integer> loginRole;
+    /**
+     * 文件
+     */
+    @TableField(exist = false)
+    private List<ReportFiles> reportFiles;
+    /**
+     * 场景列表
+     */
+    @TableField(exist = false)
+    private List<String> scenarioList;
+
+    @TableField(exist = false)
+    private List<String> scenarioNames;
+
+    @TableField(exist = false)
+    private List<String> conclusionIds;
+    @TableField(exist = false )
+    private List<String> conclusions;
+
+    //以下是无效应对报告使用的字段 ↓
+    /**
+     * 案件编号
+     */
+    private String caseNumber;
+    /**
+     * 发文序号
+     */
+    private String issueNumber;
+    /**
+     * 发明创造名称
+     */
+    private String inventionName;
+    /**
+     * 专利权人
+     */
+    private String currentApplication;
+    /**
+     * 无效宣告请求人
+     */
+    private String invalidApplication;
+}

+ 67 - 0
RMS/src/main/java/cn/cslg/report/controller/InvalidReReport/InvalidReasonController.java

@@ -0,0 +1,67 @@
+package cn.cslg.report.controller.InvalidReReport;
+
+import cn.cslg.report.common.core.base.Constants;
+import cn.cslg.report.common.model.dto.ShareReportDTO;
+import cn.cslg.report.common.model.dto.invalidReReport.InvalidReasonDTO;
+import cn.cslg.report.common.utils.Response;
+import cn.cslg.report.entity.invalidReReport.InvalidReason;
+import cn.cslg.report.service.business.InvalidReReport.InvalidReasonService;
+import cn.cslg.report.service.business.InvalidReReport.ProofService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * 无效理由据管理的控制层
+ *
+ * @Author lrj
+ * @Data 2023/4/1
+ */
+@Tag(name = "无效理由和证据管理")
+@Slf4j
+@RequiredArgsConstructor
+@RestController
+@RequestMapping(Constants.REPORT_API + "/invalidReason")
+public class InvalidReasonController {
+    private final InvalidReasonService invalidReasonService;
+
+    @Operation(summary = "添加无效理由和证据")
+    @PostMapping("/addInvalidReason")
+    public String addInvalidReason(@RequestBody InvalidReasonDTO invalidReasonDTO) {
+       invalidReasonService.addInvalidReason(invalidReasonDTO);
+        return Response.success();
+    }
+
+
+    @Operation(summary = "删除无效理由和证据")
+    @PostMapping("/deleteInvalidReason")
+    public String deleteInvalidReason(@RequestBody List<Integer> ids) {
+        invalidReasonService.deleteInvalidReason(ids);
+        return Response.success();
+    }
+
+
+    @Operation(summary = "更新无效理由和证据")
+    @PostMapping("/updateInvalidReason")
+    public String updateInvalidReason(@RequestBody InvalidReasonDTO invalidReasonDTO) throws IOException {
+
+        return Response.success();
+    }
+    @Operation(summary = "查找无效理由和证据")
+    @GetMapping("/queryInvalidReason")
+    public String queryInvalidReason(int reportId) throws IOException {
+
+        return Response.success();
+    }
+    @Operation(summary = "查询无效理由和证据详情")
+    @PostMapping("/queryInvalidReasonDetail")
+    public String queryInvalidReasonDetail(@RequestBody InvalidReasonDTO InvalidReasonDTO) throws IOException {
+
+        return Response.success();
+    }
+}

+ 4 - 10
RMS/src/main/java/cn/cslg/report/controller/ReportController.java

@@ -3,19 +3,14 @@ package cn.cslg.report.controller;
 import cn.cslg.report.common.core.base.Constants;
 import cn.cslg.report.common.model.dto.ConclusionDTO;
 import cn.cslg.report.common.model.dto.ReportDTO;
-import cn.cslg.report.common.model.dto.ReportDeDTO;
-import cn.cslg.report.common.model.vo.FileVO;
+import cn.cslg.report.common.model.vo.ReportDeVO;
 import cn.cslg.report.common.model.vo.ReportVO;
 import cn.cslg.report.common.utils.Response;
 import cn.cslg.report.common.utils.StringUtils;
 import cn.cslg.report.common.utils.auth.checkAuth;
-import cn.cslg.report.entity.InvalidRecord;
-import cn.cslg.report.entity.LitigationHistory;
-import cn.cslg.report.entity.Report;
 import cn.cslg.report.entity.ReportReferences;
 import cn.cslg.report.service.business.*;
 import com.alibaba.fastjson.JSONObject;
-import com.google.gson.JsonObject;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
@@ -153,14 +148,13 @@ public class ReportController {
     }
 
 
-    @GetMapping(value = "reReportDetail")
+    @GetMapping(value = "/reReportDetail")
     @Operation(summary = "返回报告详情")
     @Transactional(rollbackFor = Exception.class)
-    public String addConclusions(int reportId) throws IOException {
-        ReportDeDTO reportDeDTO = reportService.reReportDetail(reportId);
+    public String addConclusions(Integer reportId) throws IOException {
+        ReportDeVO reportDeDTO = reportService.reReportDetail(reportId);
         if (reportDeDTO == null) {
             return Response.error("报告不存在");
-
         }
         return Response.success(reportDeDTO);
     }

+ 1 - 1
RMS/src/main/java/cn/cslg/report/entity/Report.java

@@ -43,7 +43,7 @@ public class  Report extends BaseEntity<Report> {
     /**
      * 报告类别
      */
-    @Schema(description = "报告类别(0无效分析1第三方意见2稳定性分析3FTO调查4侵权分析5回避设计6图表分析)")
+    @Schema(description = "报告类别(0无效分析1第三方意见2稳定性分析3FTO调查4侵权分析5回避设计6图表分析7无效应对)")
     @TableField(value = "TYPE")
     private Integer type;
 

+ 38 - 0
RMS/src/main/java/cn/cslg/report/entity/invalidReReport/AssoInReasonFeatures.java

@@ -0,0 +1,38 @@
+package cn.cslg.report.entity.invalidReReport;
+
+import cn.cslg.report.common.model.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 陈述意见表
+ *
+ * @Author xiexiang
+ * @Date 2023/6/28
+ */
+@Data
+@TableName(value = "ASSO_INREASON_FEATURES")
+public class AssoInReasonFeatures extends BaseEntity<AssoInReasonFeatures> {
+    /**
+     * 特征id
+     */
+    @TableField("FEATURES_ID")
+    private Integer featuresID;
+
+    /**
+     * 无效理由id
+     */
+    @TableField("INREASON_ID")
+    private Integer invalidReasonId;
+
+    /**
+     * 创建人
+     */
+    @TableField("POSITION")
+    private Integer position;
+
+
+}

+ 0 - 12
RMS/src/main/java/cn/cslg/report/entity/invalidReReport/InvalidReason.java

@@ -47,18 +47,6 @@ public class InvalidReason extends BaseEntity<InvalidReason> {
     private String argument_str;
 
     /**
-     * 权要id
-     */
-    @TableField("RIGHT_ID")
-    private Integer rightId;
-
-    /**
-     * 特征id
-     */
-    @TableField("FEATURE_ID")
-    private Integer featureId;
-
-    /**
      * 复审委意见
      */
     @TableField("COM_OPTIONS")

+ 19 - 0
RMS/src/main/java/cn/cslg/report/mapper/InvalidReReport/ArgumentsMapper.java

@@ -0,0 +1,19 @@
+package cn.cslg.report.mapper.InvalidReReport;
+
+import cn.cslg.report.entity.invalidReReport.Arguments;
+import cn.cslg.report.entity.invalidReReport.AssoArguments;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ *
+ *陈述意见Mapper层
+ * @Author 李仁杰
+ * @Date 2023/6/30
+ */
+@Repository
+public interface ArgumentsMapper extends BaseMapper<Arguments> {
+
+
+}
+

+ 14 - 0
RMS/src/main/java/cn/cslg/report/mapper/InvalidReReport/InvalidReasonMapper.java

@@ -0,0 +1,14 @@
+package cn.cslg.report.mapper.InvalidReReport;
+
+import cn.cslg.report.entity.invalidReReport.InvalidReReport;
+import cn.cslg.report.entity.invalidReReport.InvalidReason;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 无效应对报告的Mapper层接口
+ *
+ * @Author chenyu
+ * @Date 2023/7/3
+ */
+public interface InvalidReasonMapper extends BaseMapper<InvalidReason> {
+}

+ 19 - 0
RMS/src/main/java/cn/cslg/report/service/business/InvalidReReport/ArgumentsService.java

@@ -0,0 +1,19 @@
+package cn.cslg.report.service.business.InvalidReReport;
+
+import cn.cslg.report.entity.invalidReReport.Arguments;
+import cn.cslg.report.entity.invalidReReport.AssoArguments;
+import cn.cslg.report.mapper.InvalidReReport.ArgumentsMapper;
+import cn.cslg.report.mapper.InvalidReReport.AssoArgumentsMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+
+
+@Service
+@Slf4j
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+public class ArgumentsService extends ServiceImpl<ArgumentsMapper,Arguments> {
+
+}

+ 19 - 0
RMS/src/main/java/cn/cslg/report/service/business/InvalidReReport/InvalidReReportService.java

@@ -0,0 +1,19 @@
+package cn.cslg.report.service.business.InvalidReReport;
+
+import cn.cslg.report.entity.invalidReReport.InvalidReReport;
+import cn.cslg.report.mapper.InvalidReReport.InvalidReReportMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Author xiexiang
+ * @Date 2023/7/3
+ */
+@Service
+@Slf4j
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+public class InvalidReReportService extends ServiceImpl<InvalidReReportMapper, InvalidReReport> {
+}

+ 107 - 0
RMS/src/main/java/cn/cslg/report/service/business/InvalidReReport/InvalidReasonService.java

@@ -0,0 +1,107 @@
+package cn.cslg.report.service.business.InvalidReReport;
+
+import cn.cslg.report.common.model.dto.ShareReportDTO;
+import cn.cslg.report.common.model.dto.invalidReReport.InvalidReasonDTO;
+import cn.cslg.report.common.utils.Response;
+import cn.cslg.report.entity.Template;
+import cn.cslg.report.entity.invalidReReport.InvalidReason;
+import cn.cslg.report.mapper.InvalidReReport.InvalidReasonMapper;
+import cn.cslg.report.mapper.TemplateMapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import io.swagger.v3.oas.annotations.Operation;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.io.IOException;
+import java.util.List;
+
+
+@Service
+@Slf4j
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+public class InvalidReasonService extends ServiceImpl<InvalidReasonMapper, InvalidReason> {
+    /**
+     * 添加无效理由和证据
+     * @param invalidReasonDTO 无效理由和证据Dto类
+     * @return
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public String addInvalidReason(InvalidReasonDTO invalidReasonDTO) {
+      //判断invalidName的类型
+        // 若类型为2,3则proofGroups不能为空,features不能为空
+
+        //复制DTO类字段到InvalidReason实体类并保存入库
+        //若类型为2,3根据proofGroups保存 proofGroup
+        //若类型为2,3检查features是否有交集(根据位置和字符串长度判断)若有则返回
+        //若类型为2,3根据features保存 Feature(标的专利号(根据报告id查询标的专利号),权要id(DTO类的content字段),特征内容,报告id)
+        //若类型为2,3根据features保存 feature和 invalidReson关联表(特征id,invalidReasonId,位置)
+        return Response.success();
+
+    }
+
+    /**
+     *
+     * @param ids 无效理由id
+     * @return
+     * @throws IOException
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public String deleteInvalidReason(List<Integer> ids) {
+          //判断ids是否为空 ,为空则返回
+         //根据ids删除feature和 invalidReson关联表内容
+        //根据ids删除proofGroup表内容
+        //根据ids删除InvalidReason内容
+        return Response.success();
+    }
+
+    /**
+     * 更新无效理由和证据
+     * @param invalidReasonDTO
+     * @return
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public  String updateInvalidReason(@RequestBody InvalidReasonDTO invalidReasonDTO) {
+        //判断invalidName的类型
+        // 若类型为2,3则proofGroups不能为空,features不能为空
+        //复制DTO类字段到InvalidReason实体类并更新入库
+        //若类型为2,3根据proofGroups更新 proofGroup
+           //查询该无效应对报告的所有证据组合
+           //过滤出proofGroups的id,和无效应对报告的所有证据组合id作差,并且删除所有的差值证据组合
+          //若 proofGroups里的对象的id为空则直接插入
+          //若 proofGroups里的对象的id不为空则更新
+        //若类型为2,3检查features是否有交集(根据位置和字符串长度判断)若有则返回
+        //查询该无效应对报告的所有特征和无效理由关联记录
+        //过滤出features的id,和无效应对报告的所有特征和无效理由关联记录的特征id作差,并且删除所有的差值的特征和无效理由关联记录;
+     //若类型为2,3检查id为空的features和查出来的features以及本列表中的features是否有交集(根据位置和字符串长度判断)若有则抛出异常
+        //无则插入
+        return Response.success();
+
+    }
+
+    /**
+     * 更新无效理由和证据
+     * @param
+     * @return
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public  String queryInvalidReason(int reportId) {
+        //根据报告id查询无效理由
+        ///若类型为2,3则查询证据组合和特征并装载
+        return Response.success();
+
+    }
+
+    public String queryInvalidReasonDetail(@RequestBody ShareReportDTO shareReportDTO) throws IOException {
+        //根据报告id查询无效理由
+        ///若类型为2,3则查询证据组合和特征并装载
+        return Response.success();
+    }
+}

+ 41 - 39
RMS/src/main/java/cn/cslg/report/service/business/ReportService.java

@@ -11,10 +11,11 @@ import cn.cslg.report.entity.*;
 import cn.cslg.report.entity.asso.AssoReportFile;
 import cn.cslg.report.entity.asso.AssoReportPerson;
 import cn.cslg.report.entity.invalidReReport.InvalidReReport;
+import cn.cslg.report.exception.XiaoShiException;
 import cn.cslg.report.mapper.ReportMapper;
 import cn.cslg.report.service.*;
+import cn.cslg.report.service.business.InvalidReReport.InvalidReReportService;
 import cn.cslg.report.service.business.asso.AssoReportPersonService;
-import cn.cslg.report.service.impl.InvalidReReportServiceImpl;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -64,7 +65,7 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
     private final AssoReportPersonService assoReportPersonService;
     private final IAssoEventReportService assoEventReportService;
     private final IFollowUpService followUpService;
-    private final InvalidReReportServiceImpl invalidReReportService;
+    private final InvalidReReportService invalidReReportService;
 
     private Report loadReport(ReportDTO reportDto) {
         Report report = new Report();
@@ -139,19 +140,7 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
             report.setConclusionId(null);
         }
         report.insert();
-
-        //TODO 当是无效应对报告时,在无效应对报告表里插入信息
-        if (reportDto.getType().equals(7)) {
-            PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-            InvalidReReport invalidReReport = new InvalidReReport();
-            BeanUtils.copyProperties(reportDto, invalidReReport);
-            invalidReReport.setReportId(report.getId());
-            invalidReReport.setCreateId(personnelVO.getId());
-            //无效应对报告数据入库
-            log.info("无效应对报告表新增数据");
-            invalidReReportService.save(invalidReReport);
-        }
-
+        //TODO 当是无效应对报告时,在无效应对报告里插入信息
         if (files != null && files.size() != 0) {
             //当
             if (report.getStatus() != 3) {
@@ -445,22 +434,6 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
             List<Integer> fileIdList = reportFileService.uploadFiles(files);
             assoReportFileService.addAsso(reportDto.getId(), fileIdList);
         }
-        report.updateById();
-
-        //TODO 当是无效应对报告,修改无效应对报告表数据
-        if (reportDto.getType().equals(7)) {
-            List<InvalidReReport> invalidReReports = invalidReReportService.list(new LambdaQueryWrapper<InvalidReReport>().eq(InvalidReReport::getReportId, report.getId()));
-            if (invalidReReports != null && invalidReReports.size() > 0) {
-                InvalidReReport invalidReReport = invalidReReports.get(0);
-                InvalidReReport updateInvalidReReport = new InvalidReReport();
-                BeanUtils.copyProperties(reportDto, updateInvalidReReport);
-                updateInvalidReReport.setId(invalidReReport.getId());
-                //无效应对报告表修改数据
-                log.info("无效应对报告表修改数据");
-                invalidReReportService.updateById(updateInvalidReReport);
-            }
-        }
-
         return report.updateById();
 
     }
@@ -498,8 +471,8 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
         reportReferencesService.deleteByReportId(id);
         //删除对比信息
         compareMessageService.deleteByreportID(id);
-        //TODO 当是无效应对报告,删除无效应对报告表数据
-        invalidReReportService.remove(new LambdaQueryWrapper<InvalidReReport>().eq(InvalidReReport::getReportId, id));
+        //TODO 当时无效应对报告时
+
 
         Boolean dele = this.removeById(id);
         if (dele == true) {
@@ -734,16 +707,45 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
     }
 
     /**
+     * @autor 谢翔
      * @param ReportId
      * @return
-     * @autor 谢翔
      */
-    public ReportDeDTO reReportDetail(int ReportId) {
-        ReportDeDTO reportDeDTO = null;
+    public ReportDeVO reReportDetail(Integer reportId) {
+        ReportDeVO reportDeVO = new ReportDeVO();
+        //检测传入参数合法性
+        if(reportId == null && reportId <=0){
+            throw new XiaoShiException("传入参数异常");
+        }
         //根据报告id获得报告
+        Report report = this.getById(reportId);
         //若根据报告id未获取到报告返回空
-        //若报告为无效应对报告则从无效应对报告表中获得无效对应报告拓展信息
-        //装载报告信息,无效对应报告拓展信息到ReportDeDTO并返回
-        return reportDeDTO;
+        if(report == null){
+            return null;
+        }
+        List<Report> reports = new ArrayList<>();
+        reports.add(report);
+        try {
+            //调用this.reportData装载报告
+            List<Report> reports1 = this.reportData(reports);
+            Report report1 = reports1.get(0);
+            //若报告为无效应对报告则从无效应对报告表中获得无效对应报告拓展信息
+            if(report1.getType().equals(7)){
+                LambdaQueryWrapper<InvalidReReport> queryWrapper = new LambdaQueryWrapper<>();
+                queryWrapper.eq(InvalidReReport::getReportId, report1.getId());
+                InvalidReReport invalidReReport = invalidReReportService.getOne(queryWrapper);
+                if(invalidReReport == null){
+                    throw new XiaoShiException("未查询到无效应对报告信息");
+                }
+                //装载报告信息,无效对应报告拓展信息到ReportDeDTO并返回
+                BeanUtils.copyProperties(report1, reportDeVO);
+                BeanUtils.copyProperties(invalidReReport, reportDeVO);
+            } else {
+                BeanUtils.copyProperties(report1, reportDeVO);
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return reportDeVO;
     }
 }