xiexiang 1 год назад
Родитель
Сommit
5885679b45

+ 5 - 0
src/main/java/cn/cslg/pas/common/dto/business/ReportProjectDTO.java

@@ -70,4 +70,9 @@ public class ReportProjectDTO {
     private Integer AssoReportId;
     @Schema(description = "是否直接完成")
     private Boolean ifFinish;
+    @Schema(description = "是否有第二次无效理由")
+    private Boolean ifSecondInvalid;
+    @Schema(description = "主被动类型")
+    private Integer actType;
+
 }

+ 5 - 0
src/main/java/cn/cslg/pas/common/vo/business/ReportProjectVO.java

@@ -217,4 +217,9 @@ public class ReportProjectVO {
     private List<Integer> cronIds;
     @Schema(description = "文件信息")
     private List<SystemFile> systemFileList;
+
+    @Schema(description = "是否有第二次无效理由")
+    private Boolean ifSecondInvalid;
+    @Schema(description = "主被动类型")
+    private Integer actType;
 }

+ 39 - 0
src/main/java/cn/cslg/pas/domain/business/InvalidStatutes.java

@@ -0,0 +1,39 @@
+package cn.cslg.pas.domain.business;
+
+import cn.cslg.pas.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+/**
+ * 无效法条
+ * @Author xiexiang
+ * @Date 2023/12/22
+ */
+@Data
+@TableName("invalid_statutes")
+public class InvalidStatutes extends BaseEntity<InvalidStatutes> {
+    /**
+     * 法条id
+     */
+    @TableField(value = "statutes_id")
+    private Integer statutesId;
+
+    /**
+     * 权利要求id
+     */
+    @TableField(value = "claim_id")
+    private Integer claimId;
+
+    /**
+     * 报告id
+     */
+    @TableField(value = "project_id")
+    private Integer projectId;
+
+    /**
+     * 陈述意见
+     */
+    @TableField(value = "present_opinions")
+    private String presentOpinions;
+}

+ 13 - 0
src/main/java/cn/cslg/pas/domain/business/ReportProject.java

@@ -4,6 +4,7 @@ package cn.cslg.pas.domain.business;
 import cn.cslg.pas.domain.BaseEntity;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 /**
@@ -95,4 +96,16 @@ public class ReportProject extends BaseEntity<ReportProject> {
 
     @TableField(value = "split_type")
     private Integer splitType;
+
+    /**
+     * 是否有第二次无效理由
+     */
+    @TableField(value = "if_second_invalid")
+    private Boolean ifSecondInvalid;
+
+    /**
+     * 主被动类型
+     */
+    @TableField(value = "act_type")
+    private Integer actType;
 }

+ 13 - 0
src/main/java/cn/cslg/pas/mapper/InvalidStatutesMapper.java

@@ -0,0 +1,13 @@
+package cn.cslg.pas.mapper;
+
+import cn.cslg.pas.domain.business.InvalidStatutes;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @Author xiexiang
+ * @Date 2023/12/22
+ */
+@Repository
+public interface InvalidStatutesMapper extends BaseMapper<InvalidStatutes> {
+}

+ 4 - 25
src/main/java/cn/cslg/pas/service/business/FTOCompareRecordService.java

@@ -447,16 +447,16 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
      */
     public TortCompareRecordVO getFTOAssitResult(String patentNo, Integer taskId, Integer type) {
         TortCompareRecordVO tortCompareRecordVO = new TortCompareRecordVO();
-        // 发起人从任务进入,没有报告id,有taskId
+        // 发起人从协同任务进入,没有报告id
         // 根据taskId查询报告id
         Integer projectId = tortCompareRecordService.getProjectIdByTaskId(taskId);
         tortCompareRecordVO.setProjectId(projectId);
         try {
             List<PatentRightVo> patentRightVos = new ArrayList<>();
             //根据专利号和报告id查询权要
+
             Integer compareTaskId = this.getAssoTaskId(patentNo, taskId);
             List<RePatentClaim> patentRights = featureService.getRightListByNo(patentNo);
-
             Integer splitMessageId = this.getSplitId(projectId, patentNo, compareTaskId);
             LambdaQueryWrapper<Feature> wrapper = new LambdaQueryWrapper<>();
             wrapper
@@ -569,7 +569,7 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
             //新建权要层信息
             List<TortRightVO> tortRightVOS = new ArrayList<>();
             //遍历装载权要层信息
-            Integer lastTaskId = this.getLastTaskId(projectId, patentNo);
+            Integer lastTaskId = this.getAssoTaskId(patentNo, taskId);
             patentRightVos.forEach(item -> {
                 TortRightVO tortRightVO = new TortRightVO();
                 BeanUtils.copyProperties(item, tortRightVO);
@@ -683,7 +683,7 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
             throw new UnLoginException("未登录");
         }
         try {
-            Integer lastTaskId = this.getLastTaskId(projectId, patentNo);
+            Integer lastTaskId = this.getAssoTaskId(patentNo, taskId);
             //首先是根据projectId,以及ifOriginal为false、ifFinal为true这几个条件删除表中的最终数据(最开始的数据)
             LambdaQueryWrapper<FTOCompareRecord> removeWrapper = new LambdaQueryWrapper<>();
             removeWrapper.eq(FTOCompareRecord::getProjectId, projectId)
@@ -964,27 +964,6 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
     }
 
     /**
-     * 根据两个参数从拆分信息表中查询taskId
-     * @param projectId
-     * @param patentNo
-     * @return
-     */
-    public Integer getLastTaskId(Integer projectId, String patentNo){
-        //根据报告id和专利号查询最新的对比结果的任务id
-        LambdaQueryWrapper<PatentSplitMessage> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper
-                .eq(PatentSplitMessage::getProjectId, projectId)
-                .eq(PatentSplitMessage::getPatentNo, patentNo)
-                .orderByDesc(PatentSplitMessage::getCreateTime);
-        List<PatentSplitMessage> patentSplitMessages = patentSplitMessageService.list(queryWrapper);
-        Integer lastTaskId = null;
-        if (!patentSplitMessages.isEmpty()) {
-            lastTaskId = patentSplitMessages.get(0).getTaskId();
-        }
-        return lastTaskId;
-    }
-
-    /**
      * 根据projectId和patentNo从对比结果表中查询最终结果,肯定不为空!
      * @param projectId
      * @param patentNo

+ 16 - 0
src/main/java/cn/cslg/pas/service/business/InvalidStatutesService.java

@@ -0,0 +1,16 @@
+package cn.cslg.pas.service.business;
+
+import cn.cslg.pas.domain.business.InvalidStatutes;
+import cn.cslg.pas.mapper.InvalidStatutesMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Author xiexiang
+ * @Date 2023/12/22
+ */
+@Slf4j
+@Service
+public class InvalidStatutesService extends ServiceImpl<InvalidStatutesMapper, InvalidStatutes> {
+}

+ 10 - 0
src/main/java/cn/cslg/pas/service/business/ProjectService.java

@@ -5,8 +5,11 @@ import cn.cslg.pas.domain.business.Project;
 import cn.cslg.pas.mapper.AssoProductPersonMapper;
 import cn.cslg.pas.mapper.ProjectMapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Optional;
+
 /**
  * 项目业务层
  * @Author lirj
@@ -14,4 +17,11 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
+    @Autowired
+    private ProjectMapper projectMapper;
+
+    public Optional<Project> getByIdOpt(Integer id) {
+        Project project = projectMapper.selectById(id);
+        return Optional.ofNullable(project);
+    }
 }

+ 6 - 1
src/main/java/cn/cslg/pas/service/business/ProjectTaskService.java

@@ -201,7 +201,7 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
         projectTask.insert();
         //如果assoTaskId为空,就设置
         if (projectTask.getAssoTaskId() == null) {
-            if (projectTask.getType() == 6 || projectTask.getType() == 7) {
+            if (projectTask.getType() ==1 || projectTask.getType() == 6 || projectTask.getType() == 7) {
                 projectTask.setAssoTaskId(projectTask.getId());
                 projectTask.updateById();
             }
@@ -1167,4 +1167,9 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
         }
         assoTaskFieldService.saveBatch(assoTaskFields);
     }
+
+    public Optional<ProjectTask> getByIdOpt(Integer id) {
+        ProjectTask projectTask = projectTaskMapper.selectById(id);
+        return Optional.ofNullable(projectTask);
+    }
 }

+ 49 - 6
src/main/java/cn/cslg/pas/service/business/TaskHandleResultService.java

@@ -9,9 +9,7 @@ import cn.cslg.pas.common.utils.LoginUtils;
 import cn.cslg.pas.common.utils.StringUtils;
 import cn.cslg.pas.common.vo.business.GetHandleResultFileVO;
 import cn.cslg.pas.common.vo.business.HandleResultFileVO;
-import cn.cslg.pas.domain.business.AssoHandleResultFile;
-import cn.cslg.pas.domain.business.ProjectTask;
-import cn.cslg.pas.domain.business.TaskHandleResult;
+import cn.cslg.pas.domain.business.*;
 import cn.cslg.pas.exception.UnLoginException;
 import cn.cslg.pas.exception.XiaoShiException;
 import cn.cslg.pas.mapper.TaskHandleResultMapper;
@@ -27,6 +25,7 @@ import org.springframework.stereotype.Service;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Optional;
 import java.util.stream.Collectors;
 
 /**
@@ -53,6 +52,12 @@ public class TaskHandleResultService extends ServiceImpl<TaskHandleResultMapper,
     @Autowired
     private FileManagerService fileManagerService;
 
+    @Autowired
+    private ProjectService projectService;
+
+    @Autowired
+    private ReportProjectService reportProjectService;
+
     /**
      * 添加任务处理结果
      * @param taskHandleResultDTO
@@ -90,8 +95,9 @@ public class TaskHandleResultService extends ServiceImpl<TaskHandleResultMapper,
         Integer currentTaskId = taskHandleResult.getTaskId();
         //根据任务id查询任务类型
         ProjectTask currentProjectTask = projectTaskService.getById(currentTaskId);
-        //如果当前处理的是审核任务,进入以下流程
-        if (currentProjectTask.getType() == 5) {
+        //如果当前处理的是审核任务或者项目开卷审核任务,进入以下流程
+        Integer taskType = currentProjectTask.getType();
+        if (taskType == 5 || taskType == 1) {
             //判断下一个审核人
             String nextAuditor = taskHandleResult.getNextAuditor();
             if (StringUtils.isNotEmpty(nextAuditor)) {
@@ -105,7 +111,9 @@ public class TaskHandleResultService extends ServiceImpl<TaskHandleResultMapper,
                 //审核任务
                 projectTaskDTO.setType(5);
                 //所属流程
-                projectTaskDTO.setProcessId(projectTask.getProcessId());
+                if (taskType == 5) {
+                    projectTaskDTO.setProcessId(projectTask.getProcessId());
+                }
                 //审核人
                 projectTaskDTO.setHandler(taskHandleResult.getNextAuditor());
                 //是否内部人员
@@ -147,6 +155,41 @@ public class TaskHandleResultService extends ServiceImpl<TaskHandleResultMapper,
                         );
                         projectTaskService.updateBatchById(projectTasks);
                     }
+                    //如果是 项目开卷审核任务 需要将项目的状态设置为完成
+                    if (taskType == 1) {
+//                        ProjectTask projectTask1 = projectTaskService.getById(projectTask.getAssoTaskId());
+//                        if (projectTask1 != null) {
+//                            Integer projectId = projectTask1.getProjectId();
+//                            Project project = projectService.getById(projectId);
+//                            if (project != null) {
+//                                Integer projectType = project.getType();
+//                                if (projectType == 2) {
+//                                    LambdaQueryWrapper<ReportProject> queryWrapper1 = new LambdaQueryWrapper<>();
+//                                    queryWrapper1.eq(ReportProject::getProjectId, projectId);
+//                                    ReportProject reportProject = reportProjectService.getOne(queryWrapper1, false);
+//                                    if (reportProject != null) {
+//                                        reportProject.setStatus(3);
+//                                        reportProject.updateById();
+//                                    }
+//                                }
+//                            }
+//                        }
+
+                        Optional<ProjectTask> optionalProjectTask = projectTaskService.getByIdOpt(projectTask.getAssoTaskId());
+                        optionalProjectTask.ifPresent(task -> {
+                            Integer projectId = task.getProjectId();
+                            projectService.getByIdOpt(projectId).ifPresent(project -> {
+                                if (project.getType() == 2) {
+                                    reportProjectService.lambdaUpdate()
+                                            .set(ReportProject::getStatus, 3)
+                                            .eq(ReportProject::getProjectId, projectId)
+                                            .update();
+                                }
+                            });
+                        });
+
+
+                    }
                 }
             }
         } else {