lwhhszx 2 år sedan
förälder
incheckning
d70a9b1b90

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

@@ -11,205 +11,4 @@ import java.util.List;
 @Data
 public class ReportDeDTO extends ReportDTO {
 
-    /**
-     * 标的专利/产品号
-     */
-    @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图表分析)")
-    @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;
-
-
 }

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

@@ -0,0 +1,37 @@
+package cn.cslg.report.common.model.dto.invalidReReport;
+
+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 InvalidProcessDTO {
+    /**
+     * 报告id
+     */
+    private Integer reportId;
+
+    /**
+     * 发生时间
+     */
+    private Date occuredTime;
+
+    /**
+     * 流程类型
+     */
+    private Integer processType;
+
+    /**
+     * 地点
+     */
+    private String address;
+
+    /**
+     * 参与人
+     */
+    private String participants;
+}

+ 57 - 0
RMS/src/main/java/cn/cslg/report/controller/InvalidReReport/ArgumentsController.java

@@ -0,0 +1,57 @@
+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.utils.Response;
+import cn.cslg.report.service.business.asso.AssoReportPersonService;
+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.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.io.IOException;
+
+/**
+ * 报告分享管理的Controller层
+ *
+ * @Author lrj
+ * @Data 2023/4/1
+ */
+@Tag(name = "陈述意见管理")
+@Slf4j
+@RequiredArgsConstructor
+@RestController
+@RequestMapping(Constants.REPORT_API + "/arguments")
+public class ArgumentsController {
+    private final AssoReportPersonService assoReportPersonService;
+
+    @Operation(summary = "添加陈述意见")
+    @PostMapping("/add")
+    public String add(@RequestBody ShareReportDTO shareReportDTO) {
+        Integer flag = assoReportPersonService.shareReport(shareReportDTO);
+        return Response.success(flag);
+    }
+
+    @Operation(summary = "删除陈述意见")
+    @PostMapping("/delete")
+    public String delete(@RequestBody ShareReportDTO shareReportDTO) {
+        assoReportPersonService.removeShare(shareReportDTO);
+        return Response.success();
+    }
+
+    @Operation(summary = "修改陈述意见")
+    @PostMapping("/update")
+    public String update(@RequestBody ShareReportDTO shareReportDTO) throws IOException {
+        return Response.success(assoReportPersonService.showShare(shareReportDTO));
+    }
+
+    @Operation(summary = "查询陈述意见")
+    @PostMapping("/query")
+    public String query(@RequestBody ShareReportDTO shareReportDTO) throws IOException {
+        return Response.success(assoReportPersonService.showShare(shareReportDTO));
+    }
+}

+ 57 - 0
RMS/src/main/java/cn/cslg/report/controller/InvalidReReport/ArgumentsScenarioController.java

@@ -0,0 +1,57 @@
+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.utils.Response;
+import cn.cslg.report.service.business.asso.AssoReportPersonService;
+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.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.io.IOException;
+
+/**
+ * 报告分享管理的Controller层
+ *
+ * @Author lrj
+ * @Data 2023/4/1
+ */
+@Tag(name = "陈述意见方案管理")
+@Slf4j
+@RequiredArgsConstructor
+@RestController
+@RequestMapping(Constants.REPORT_API + "/argumentsScenario")
+public class ArgumentsScenarioController {
+    private final AssoReportPersonService assoReportPersonService;
+
+    @Operation(summary = "添加陈述意见方案")
+    @PostMapping("/add")
+    public String add(@RequestBody ShareReportDTO shareReportDTO) {
+        Integer flag = assoReportPersonService.shareReport(shareReportDTO);
+        return Response.success(flag);
+    }
+
+    @Operation(summary = "删除陈述意见方案")
+    @PostMapping("/delete")
+    public String delete(@RequestBody ShareReportDTO shareReportDTO) {
+        assoReportPersonService.removeShare(shareReportDTO);
+        return Response.success();
+    }
+
+    @Operation(summary = "修改陈述意见方案")
+    @PostMapping("/update")
+    public String update(@RequestBody ShareReportDTO shareReportDTO) throws IOException {
+        return Response.success(assoReportPersonService.showShare(shareReportDTO));
+    }
+
+    @Operation(summary = "查询陈述意见方案")
+    @PostMapping("/query")
+    public String query(@RequestBody ShareReportDTO shareReportDTO) throws IOException {
+        return Response.success(assoReportPersonService.showShare(shareReportDTO));
+    }
+}

+ 57 - 0
RMS/src/main/java/cn/cslg/report/controller/InvalidReReport/InvalidProcessController.java

@@ -0,0 +1,57 @@
+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.utils.Response;
+import cn.cslg.report.service.business.InvalidReReport.InvalidProcessService;
+import cn.cslg.report.service.business.asso.AssoReportPersonService;
+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 org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * 报告分享管理的Controller层
+ *
+ * @Author lrj
+ * @Data 2023/4/1
+ */
+@Tag(name = "无效事务管理")
+@Slf4j
+@RequiredArgsConstructor
+@RestController
+@RequestMapping(Constants.REPORT_API + "/invalidProcess")
+public class InvalidProcessController {
+    private final InvalidProcessService invalidProcessService;
+
+    @Operation(summary = "添加无效事务")
+    @PostMapping("/add")
+    public String add(String invalidProcessStr, List<MultipartFile> files) {
+        Integer flag = invalidProcessService.addInvalidProcess(invalidProcessStr,files);
+        return Response.success(flag);
+    }
+
+    @Operation(summary = "删除无效事务")
+    @PostMapping("/delete")
+    public String delete(int id) {
+        invalidProcessService.removeInvalidProcess(id);
+        return Response.success();
+    }
+
+    @Operation(summary = "修改无效事务")
+    @PostMapping("/update")
+    public String update(String invalidProcessStr,List<MultipartFile> files) throws IOException {
+        return Response.success(invalidProcessService.addInvalidProcess(invalidProcessStr,files));
+    }
+
+    @Operation(summary = "查询无效事务")
+    @GetMapping("/query")
+    public String query(int reportId) throws IOException {
+        return Response.success(invalidProcessService.queryInvalidProcess(reportId));
+    }
+}

+ 53 - 0
RMS/src/main/java/cn/cslg/report/controller/InvalidReReport/ProofController.java

@@ -0,0 +1,53 @@
+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.utils.Response;
+import cn.cslg.report.service.business.asso.AssoReportPersonService;
+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.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.io.IOException;
+
+/**
+ * 报告分享管理的Controller层
+ *
+ * @Author lrj
+ * @Data 2023/4/1
+ */
+@Tag(name = "无效应对证据管理")
+@Slf4j
+@RequiredArgsConstructor
+@RestController
+@RequestMapping(Constants.REPORT_API + "/proof")
+public class ProofController {
+    private final AssoReportPersonService assoReportPersonService;
+
+    @Operation(summary = "上传专利文献证据(文件)")
+    @PostMapping("/addPatentProofByFile")
+    public String add(@RequestBody ShareReportDTO shareReportDTO) {
+        Integer flag = assoReportPersonService.shareReport(shareReportDTO);
+        return Response.success(flag);
+    }
+
+    @Operation(summary = "上传非专利文献证据")
+    @PostMapping("/addProofByFile")
+    public String addProofByFile(@RequestBody ShareReportDTO shareReportDTO) {
+        assoReportPersonService.removeShare(shareReportDTO);
+        return Response.success();
+    }
+
+    @Operation(summary = "上传专利文献证据(专利号)")
+    @PostMapping("/addPatentFile")
+    public String addPatentFile(@RequestBody ShareReportDTO shareReportDTO) throws IOException {
+
+        return Response.success(assoReportPersonService.showShare(shareReportDTO));
+    }
+
+}

+ 48 - 0
RMS/src/main/java/cn/cslg/report/controller/InvalidReReport/ProofDetailController.java

@@ -0,0 +1,48 @@
+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.utils.Response;
+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.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.io.IOException;
+
+@Tag(name = "无效应对证据详情管理")
+@Slf4j
+@RequiredArgsConstructor
+@RestController
+@RequestMapping(Constants.REPORT_API + "/proofDetail")
+public class ProofDetailController {
+    @Operation(summary = "添加证据详情")
+    @PostMapping("/addProofDetail")
+    public String addProofDetail() throws IOException {
+
+        return Response.success();
+    }
+
+    @Operation(summary = "删除证据详情")
+    @PostMapping("/removeProofDetail")
+    public String removeProofDetail() throws IOException {
+        return Response.success();
+    }
+
+    @Operation(summary = "修改证据详情")
+    @PostMapping("/updateProofDetail")
+    public String updateProofDetail() throws IOException {
+        return Response.success();
+    }
+
+    @Operation(summary = "查找证据详情")
+    @PostMapping("/queryProofDetail")
+    public String queryProofDetail() throws IOException {
+        return Response.success();
+    }
+}

+ 57 - 0
RMS/src/main/java/cn/cslg/report/controller/InvalidReReport/ProofGroupController.java

@@ -0,0 +1,57 @@
+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.utils.Response;
+import cn.cslg.report.service.business.asso.AssoReportPersonService;
+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.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.io.IOException;
+
+/**
+ * 报告分享管理的Controller层
+ *
+ * @Author lrj
+ * @Data 2023/4/1
+ */
+@Tag(name = "证据组合管理")
+@Slf4j
+@RequiredArgsConstructor
+@RestController
+@RequestMapping(Constants.REPORT_API + "/proofGroup")
+public class ProofGroupController {
+    private final AssoReportPersonService assoReportPersonService;
+
+    @Operation(summary = "添加证据组合")
+    @PostMapping("/add")
+    public String add(@RequestBody ShareReportDTO shareReportDTO) {
+        Integer flag = assoReportPersonService.shareReport(shareReportDTO);
+        return Response.success(flag);
+    }
+
+    @Operation(summary = "删除证据组合")
+    @PostMapping("/delete")
+    public String delete(@RequestBody ShareReportDTO shareReportDTO) {
+        assoReportPersonService.removeShare(shareReportDTO);
+        return Response.success();
+    }
+
+    @Operation(summary = "修改证据组合")
+    @PostMapping("/update")
+    public String addPatentFile(@RequestBody ShareReportDTO shareReportDTO) throws IOException {
+        return Response.success(assoReportPersonService.showShare(shareReportDTO));
+    }
+
+    @Operation(summary = "查询证据组合")
+    @PostMapping("/query")
+    public String query(@RequestBody ShareReportDTO shareReportDTO) throws IOException {
+        return Response.success(assoReportPersonService.showShare(shareReportDTO));
+    }
+}

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

@@ -14,7 +14,7 @@ import java.util.Date;
  * @Date 2023/6/28
  */
 @Data
-@TableName
+@TableName(value="INVALID_PROCESS")
 public class InvalidProcess extends BaseEntity<InvalidProcess> {
     /**
      * 报告id

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

@@ -21,7 +21,7 @@ public class OralExam extends BaseEntity<OralExam> {
      * 地点
      */
     @TableField("ADDRESS")
-    private Integer address;
+    private String address;
 
     /**
      * 参与人

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

@@ -13,7 +13,7 @@ import java.util.Date;
  * @Date 2023/6/28
  */
 @Data
-@TableName
+@TableName(value="")
 public class ProofDetail extends BaseEntity<ProofDetail> {
     /**
      * 证据id

+ 99 - 0
RMS/src/main/java/cn/cslg/report/service/BaseService.java

@@ -391,4 +391,103 @@ public class BaseService {
 
     }
 
+    /**
+     * 添加证据文献
+     * @param importTask
+     * @param asCompare
+     */
+    @Async()
+    public void addPatentProof(ImportTask importTask, Boolean asCompare) {
+        //根据报告id获得所有对比文件
+        QueryWrapper<CompareFiles> comWrapper = new QueryWrapper<>();
+        comWrapper.select("DISTINCT PATENT_NO").lambda()
+                .eq(CompareFiles::getReportId, importTask.getReportId());
+        Function<Object, String> f = (o -> o.toString());
+        List<String> comPatentNos = compareFilesService.listObjs(comWrapper, f);
+        Integer total = importTask.getImportCount();
+        List<List<Object>> fileHead = new ArrayList<>();
+        //解析excel文件并保存进map里
+        ExcelUtil.readBySax(fileUtils.getSystemPath() + importTask.getFilePath(), -1, (sheetIndex, rowIndex, row) ->
+                {
+                    if (rowIndex == 0) {
+                        fileHead.add(row);
+                    } else {
+                        Integer i = Math.toIntExact(rowIndex - 1);
+                        List<Map<Object, Object>> mapList = new ArrayList<>();
+                        mapList.add(IterUtil.toMap(fileHead.get(0), row));
+                        TaskParams taskParams = new TaskParams();
+                        taskParams.setPath(fileUtils.getSystemPath() + importTask.getFilePath());
+                        taskParams.setTaskType(1);
+                        taskParams.setOldName(importTask.getTaskName());
+                        taskParams.setTotal(importTask.getImportCount());
+                        taskParams.setTaskId(importTask.getId());
+                        taskParams.setRowList(mapList);
+                        taskParams.setUserId(String.valueOf(importTask.getCreateUserId()));
+                        taskParams.setIndex((int) rowIndex);
+                        try {
+                            String res = outInterfaceService.importPatents(taskParams);
+                            JSONObject jsonObject = JSONObject.parseObject(res);
+                            if (jsonObject.get("code").toString().equals("0")) {
+                                importTask.setState(3);
+                                importTask.updateById();
+                                WebSocketServer.sendInfo(Response.error("部分数据上传成功" + "\n" + "成功条数:" + i + "失败条数:" + (total - i)), taskParams.getUserId());
+                                throw new PermissionException("上传失败");
+                            }
+                            //判断是否直接作为对比文件
+                            if (asCompare != null && asCompare) {
+                                if (jsonObject.get("code").toString().equals("200")) {
+                                    if (!comPatentNos.contains(jsonObject.get("data").toString())) {
+                                        CompareFiles compareFiles = new CompareFiles();
+                                        compareFiles.setReportId(importTask.getReportId());
+                                        compareFiles.setPatentNo(jsonObject.get("data").toString());
+                                        compareFiles.insert();
+                                    }
+                                }
+                            }
+                            if ((int) rowIndex == taskParams.getTotal()) {
+                                importTask.setState(1);
+                                SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+                                Date date = new Date(System.currentTimeMillis());
+                                importTask.setFinishTime(formatter.parse(formatter.format(date)));
+                                importTask.updateById();
+                            }
+
+                            //通过WebSocket 在每一次循环结束后 向前端发送完成进度
+                            WebSocketServer.sendInfo(Response.websocket(new TaskWebSocketDTO()
+                                    .setTaskId(taskParams.getTaskId())
+                                    .setComplete(false)
+                                    .setIndex((int) rowIndex)
+                                    .setTaskType(Constants.TASK_IMPORT_PATENT)
+                                    .setPercentage(total == 0 ? 0 : Math.round((total.equals(i) ? (i * 1D) : (i + 1D)) / total * 100D))
+                                    .setFileName("")
+                                    .setOldName(taskParams.getOldName())
+                                    .setUrl("")
+                                    .setTotal(total), ResponseEnum.PATENT_IMPORT_TASK_SUCCESS), null);
+                        } catch (IOException | ParseException e) {
+                            importTask.setState(3);
+                            importTask.updateById();
+                            e.printStackTrace();
+                            WebSocketServer.sendInfo(Response.error("部分数据上传成功" + "\n" + "成功条数:" + i + "失败条数:" + (total - i)), taskParams.getUserId());
+                            return;
+                        }
+                    }
+                }
+        );
+        WebSocketServer.sendInfo(Response.websocket(new TaskWebSocketDTO()
+                .setTaskId(importTask.getId())
+                .setComplete(true)
+                .setIndex(total)
+                .setTaskType(Constants.TASK_IMPORT_PATENT)
+                .setPercentage(100L)
+                .setFileName("")
+                .setOldName(importTask.getTaskName())
+                .setUrl("")
+                .setTotal(total), ResponseEnum.PATENT_IMPORT_TASK_SUCCESS), null);
+        ImportTask importTask1 = importTaskService.getById(importTask.getId());
+        importTask1.setState(2);
+        importTask1.updateById();
+
+    }
+
 }

+ 59 - 0
RMS/src/main/java/cn/cslg/report/service/business/InvalidReReport/InvalidProcessService.java

@@ -0,0 +1,59 @@
+package cn.cslg.report.service.business.InvalidReReport;
+
+import cn.cslg.report.common.model.dto.invalidReReport.InvalidProcessDTO;
+import cn.cslg.report.common.utils.Response;
+import cn.cslg.report.entity.Template;
+import cn.cslg.report.mapper.TemplateMapper;
+import com.alibaba.fastjson.JSONObject;
+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;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+
+@Service
+@Slf4j
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+public class InvalidProcessService extends ServiceImpl<TemplateMapper, Template> {
+    //无效事务添加
+    public Integer addInvalidProcess(String invalidProcessStr, List<MultipartFile> files) {
+        InvalidProcessDTO invalidProcessDTO = JSONObject.parseObject(invalidProcessStr, InvalidProcessDTO.class);
+        // 判断无效事务的类型
+          // 判断无效事务的时间是否为空
+          //若是口审记录则添加口审记录接着添加无效事务
+              //口审记录要判断 参与人,地点是否为空
+          //若是文件则上传文件并添加无效事务
+
+        return 0;
+
+    }
+
+    //删除无效事务
+    public String removeInvalidProcess(int id) {
+        //根据无效事务id删除无效事务
+          return  "";
+
+    }
+
+    //修改无效事务
+    public String updateInvalidProcess(String invalidProcessStr, List<MultipartFile> files) {
+        InvalidProcessDTO invalidProcessDTO = JSONObject.parseObject(invalidProcessStr, InvalidProcessDTO.class);
+        // 判断无效事务的类型
+          // 判断无效事务的时间是否为空
+        //若是口审记录则修改口审记录接着修改无效事务
+        //口审记录要判断 参与人,地点是否为空
+        //若是文件则上传文件并添加无效事务
+        return "";
+    }
+
+    //查找无效事务
+    public String queryInvalidProcess(int ReportId) {
+        //根据报告id,根据时间排序返回所有的无效事务。
+        return Response.success();
+
+    }
+}

+ 39 - 0
RMS/src/main/java/cn/cslg/report/service/business/InvalidReReport/ProofDetailService.java

@@ -0,0 +1,39 @@
+package cn.cslg.report.service.business.InvalidReReport;
+
+import cn.cslg.report.common.utils.Response;
+import cn.cslg.report.entity.Template;
+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 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 ProofDetailService extends ServiceImpl<TemplateMapper, Template> {
+    //上传专利文献证据(文件)
+    public String addProofDetail(Template template) {
+
+    return "";
+    }
+
+    //上传非专利文献证据
+    public String deleteProofDetail(Template template) {
+          return  "";
+    }
+
+    //上传专利文献证据(专利号)
+    public String addPatentFile(Template template) {
+        LambdaQueryWrapper<Template> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(Template::getReportType, template.getReportType());
+        IPage<Template> templateIPage = this.page(new Page<>(template.getCurrent(), template.getSize()), wrapper);
+        return Response.success(templateIPage);
+
+    }
+}

+ 43 - 0
RMS/src/main/java/cn/cslg/report/service/business/InvalidReReport/ProofService.java

@@ -0,0 +1,43 @@
+package cn.cslg.report.service.business.InvalidReReport;
+
+import cn.cslg.report.common.utils.Response;
+import cn.cslg.report.entity.Template;
+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 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 ProofService extends ServiceImpl<TemplateMapper, Template> {
+    //上传专利文献证据(文件)
+    public String addPatentProofByFile(Template template) {
+        LambdaQueryWrapper<Template> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(Template::getReportType, template.getReportType());
+        IPage<Template> templateIPage = this.page(new Page<>(template.getCurrent(), template.getSize()), wrapper);
+        return Response.success(templateIPage);
+
+    }
+
+    //上传非专利文献证据
+    public String addProofByFile(Template template) {
+          return  "";
+
+    }
+
+    //上传专利文献证据(专利号)
+    public String addPatentFile(Template template) {
+        LambdaQueryWrapper<Template> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(Template::getReportType, template.getReportType());
+        IPage<Template> templateIPage = this.page(new Page<>(template.getCurrent(), template.getSize()), wrapper);
+        return Response.success(templateIPage);
+
+    }
+}