lwhhszx преди 1 година
родител
ревизия
7f30375117

+ 3 - 1
src/main/java/cn/cslg/pas/common/dto/business/UpdateReportProjectDTO.java

@@ -68,5 +68,7 @@ public class UpdateReportProjectDTO {
     @Schema(description = "产品或技术")
     private String productOrTech;
     @Schema(description = "关联报告")
-    private Integer AssoReportId;
+    private Integer assoReportId;
+    @Schema(description = "梳理意见")
+    private String cardingOpinion;
 }

+ 9 - 8
src/main/java/cn/cslg/pas/common/vo/business/ReportProjectVO.java

@@ -109,13 +109,13 @@ public class ReportProjectVO {
 
 
     /**
-     *标的专利号
+     * 标的专利号
      */
-    @Schema(description= "标的专利号")
+    @Schema(description = "标的专利号")
     private String signPatentNo;
 
     /**
-     *标的产品号
+     * 标的产品号
      */
     @Schema(description = "标的产品号")
     private Integer signProjectId;
@@ -124,7 +124,7 @@ public class ReportProjectVO {
      * 状态
      */
     @Schema(description = "状态")
-    private  Integer status;
+    private Integer status;
 
     @Schema(description = "报告类型")
     private String statusName;
@@ -166,7 +166,6 @@ public class ReportProjectVO {
     private String invalidApplication;
 
 
-
     /**
      * 结论论述
      */
@@ -174,7 +173,6 @@ public class ReportProjectVO {
     private String cronDescription;
 
 
-
     /**
      * 创建人
      */
@@ -187,7 +185,7 @@ public class ReportProjectVO {
     @Schema(description = "创建人")
     private String createName;
 
-    @Schema(description= "创建时间")
+    @Schema(description = "创建时间")
     private Date createTime;
 
     @Schema(description = "事件id")
@@ -223,5 +221,8 @@ public class ReportProjectVO {
     @Schema(description = "主被动类型")
     private Integer actType;
     @Schema(description = "专利类型")
-   private Integer patentType;
+    private Integer patentType;
+    @Schema(description = "梳理意见")
+    private String cardingOpinion;
+
 }

+ 7 - 1
src/main/java/cn/cslg/pas/domain/business/ReportProject.java

@@ -110,8 +110,14 @@ public class ReportProject extends BaseEntity<ReportProject> {
     private Integer actType;
 
     /**
-     * 主被动类型
+     * 专利类型
      */
     @TableField(value = "patent_type")
     private Integer patentType;
+    /**
+     * 梳理意见
+     */
+    @TableField(value = "carding_opinion")
+    private String cardingOpinion;
+
 }

+ 27 - 5
src/main/java/cn/cslg/pas/service/business/FeatureService.java

@@ -4,6 +4,7 @@ import cn.cslg.pas.common.TreeBuild;
 import cn.cslg.pas.common.dto.QuerySplitDTO;
 import cn.cslg.pas.common.dto.business.SelectClaimDTO;
 import cn.cslg.pas.common.dto.invalidDTO.QueryClaimSplitHistoryDTO;
+import cn.cslg.pas.common.dto.invalidDTO.UpdateFeatureDTO;
 import cn.cslg.pas.common.model.cronModel.PersonnelVO;
 import cn.cslg.pas.common.model.cronModel.Records;
 import cn.cslg.pas.common.utils.CacheUtils;
@@ -56,7 +57,7 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Feature> {
     private AssoGroupFeatureService assoGroupFeatureService;
 
     @Transactional(rollbackFor = Exception.class)
-    public List<PatentRightVo>  splitPatentFeature(SplitVO splitVO) throws IOException {
+    public List<PatentRightVo> splitPatentFeature(SplitVO splitVO) throws IOException {
         String patentNo = splitVO.getPatentNo();
         Integer projectId = splitVO.getProjectId();
         Integer splitType = splitVO.getSplitType();
@@ -457,10 +458,31 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Feature> {
         return allFeatures;
     }
 
-    public void saveBatchFeature(){
-
-
-
+    public void saveBatchFeature(UpdateFeatureDTO updateFeatureDTO) {
+        List<UpdateFeatureDTO.ChangedFeatures> features = updateFeatureDTO.getFeaturesList();
+        Integer projectId = updateFeatureDTO.getProjectId();
+        if (features == null) {
+            features = new ArrayList<>();
+        }
+        if (projectId == null) {
+            throw new XiaoShiException("未选择报告");
+        }
+        LambdaQueryWrapper<ReportProject> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(ReportProject::getProjectId, projectId);
+        ReportProject reportProject = reportProjectService.getOne(queryWrapper, false);
+        if (reportProject == null) {
+            throw new XiaoShiException("报告不存在");
+        }
+        String signPatentNo = reportProject.getSignPatentNo();
+
+        //根据标的专利号和报告id查询拆分信息
+        LambdaQueryWrapper<PatentSplitMessage> queryWrapper1 = new LambdaQueryWrapper<>();
+        queryWrapper1.eq(PatentSplitMessage::getPatentNo, signPatentNo)
+                .eq(PatentSplitMessage::getProjectId, projectId);
+        PatentSplitMessage patentSplitMessage =patentSplitMessageService.getOne(queryWrapper1,false);
+        if(patentSplitMessage==null){
+            throw  new XiaoShiException("未进行拆分过");
+        }
 
     }
 }

+ 3 - 2
src/main/java/cn/cslg/pas/service/business/ProofGroupService.java

@@ -80,7 +80,6 @@ public class ProofGroupService extends ServiceImpl<ProofGroupMapper, ProofGroup>
                 throw new XiaoShiException("查询无效法条错误");
             }
             Integer invalidStatutesId = invalidStatutes.getId();
-            List<ProofGroup> proofGroups = new ArrayList<>();
             if (id != null) {
                 //单个更新
                 ProofGroup proofGroup = this.getById(id);
@@ -96,6 +95,7 @@ public class ProofGroupService extends ServiceImpl<ProofGroupMapper, ProofGroup>
                 //批量新增
 
                 //如果证据组合说明不为空
+                List<ProofGroup> proofGroups = new ArrayList<>();
                 if (!descriptions.isEmpty()) {
                     descriptions.forEach(item -> {
                         ProofGroup proofGroup = new ProofGroup();
@@ -109,8 +109,9 @@ public class ProofGroupService extends ServiceImpl<ProofGroupMapper, ProofGroup>
                     proofGroups.add(proofGroup);
                 }
                 this.saveBatch(proofGroups);
+                proofGroupIds = proofGroups.stream().map(ProofGroup::getId).collect(Collectors.toList());
             }
-            proofGroupIds = proofGroups.stream().map(ProofGroup::getId).collect(Collectors.toList());
+
         } else {
             throw new XiaoShiException("参数不能为空");
         }

+ 23 - 11
src/main/java/cn/cslg/pas/service/business/invalidReport/EvidenceReasonService.java

@@ -89,7 +89,7 @@ public class EvidenceReasonService extends ServiceImpl<EvidenceReasonMapper, Evi
         if (gen.equals(0)) {
             LambdaQueryWrapper<AssoGroupFeature> queryWrapper = new LambdaQueryWrapper<>();
             queryWrapper.eq(AssoGroupFeature::getGroupId, groupId)
-                    .eq(AssoGroupFeature::getGroupId, gen);
+                    .eq(AssoGroupFeature::getFeatureGen, gen);
             List<AssoGroupFeature> assoGroupFeatures = assoGroupFeatureService.list(queryWrapper);
             assoIds = assoGroupFeatures.stream().map(AssoGroupFeature::getId).collect(Collectors.toList());
         }
@@ -118,12 +118,12 @@ public class EvidenceReasonService extends ServiceImpl<EvidenceReasonMapper, Evi
                     assoGroupFeature.insert();
                     featureGroupId = assoGroupFeature.getId();
                 } else {
+                    AssoGroupFeature assoGroupFeature = assoGroupFeatureService.getById(featureGroupId);
+                    assoGroupFeature.setFeatureId(featureId);
+                    assoGroupFeature.setFeatureOrder(featureOrder);
+                    assoGroupFeature.updateById();
                     assoIds.remove(featureGroupId);
                 }
-                if (assoIds.size() != 0) {
-                    //删除关联以及历史
-                    assoGroupFeatureService.removeAssoWithHistory(assoIds);
-                }
             }
 
             //添加无效理由
@@ -140,6 +140,11 @@ public class EvidenceReasonService extends ServiceImpl<EvidenceReasonMapper, Evi
             assoFeatureReason.setGen(gen);
             assoFeatureReason.insert();
         }
+
+        if (assoIds.size() != 0) {
+            //删除关联以及历史
+            assoGroupFeatureService.removeAssoWithHistory(assoIds);
+        }
         return true;
 
     }
@@ -159,6 +164,7 @@ public class EvidenceReasonService extends ServiceImpl<EvidenceReasonMapper, Evi
             EvidenceReason evidenceReason = this.getById(id);
             evidenceReason.setEvidenceText(addEvidenceReasonsDTO.getEvidenceText());
             evidenceReason.setDescription(addEvidenceReasonsDTO.getEvidenceDescription());
+            evidenceReason.updateById();
         }
         //添加无效理由和证据关联
 
@@ -168,12 +174,12 @@ public class EvidenceReasonService extends ServiceImpl<EvidenceReasonMapper, Evi
 
     private void addAssoReasonLiterature(List<Integer> literatureIds, Integer reasonId) {
         List<AssoReasonLiterature> assoReasonLiteratures = new ArrayList<>();
-        if (literatureIds == null || literatureIds.size() == 0) {
-            return;
-        }
         LambdaQueryWrapper<AssoReasonLiterature> queryWrapper1 = new LambdaQueryWrapper<>();
         queryWrapper1.eq(AssoReasonLiterature::getReasonId, reasonId);
         assoReasonLiteratureService.remove(queryWrapper1);
+        if (literatureIds == null || literatureIds.size() == 0) {
+            return;
+        }
 
         literatureIds.forEach(item -> {
             AssoReasonLiterature assoReasonLiterature = new AssoReasonLiterature();
@@ -192,8 +198,9 @@ public class EvidenceReasonService extends ServiceImpl<EvidenceReasonMapper, Evi
         Integer gen = queryEvidenceReasonDTO.getGen();
         //根据证据组合id 查询特征
         LambdaQueryWrapper<AssoGroupFeature> assFWrapper = new LambdaQueryWrapper<>();
-        assFWrapper.eq(AssoGroupFeature::getGroupId, groupId);
-        assFWrapper.eq(AssoGroupFeature::getFeatureGen, 0);
+        assFWrapper.eq(AssoGroupFeature::getGroupId, groupId)
+                .and(wrapper -> wrapper.eq(AssoGroupFeature::getFeatureGen, 0).or().eq(AssoGroupFeature::getOperateMode, 2));
+
         List<AssoGroupFeature> assoGroupFeatures = assoGroupFeatureService.list(assFWrapper);
         List<QueryEvidenceReasonVO> queryEvidenceReasonVOS = new ArrayList<>();
         if (assoGroupFeatures != null && assoGroupFeatures.size() != 0) {
@@ -218,7 +225,12 @@ public class EvidenceReasonService extends ServiceImpl<EvidenceReasonMapper, Evi
                 queryWrapper1.eq(AssoFeatureReason::getGFeatureId, newFeatureGroupId);
                 queryWrapper1.eq(AssoFeatureReason::getGen, gen);
                 List<AssoFeatureReason> assoFeatureReasons = assoFeatureReasonService.list(queryWrapper1);
-
+                if (assoFeatureReasons.size() == 0) {
+                    AssoFeatureReason assoFeatureReason = new AssoFeatureReason();
+                    assoFeatureReason.setReasonId(-1);
+                    assoFeatureReason.setGFeatureId(newFeatureGroupId);
+                    assoFeatureReasons.add(assoFeatureReason);
+                }
                 if (assoFeatureReasons.size() != 0) {
                     for (AssoFeatureReason assoFeatureReason : assoFeatureReasons) {
                         //装载特征信息

+ 1 - 1
src/main/resources/mapper/AssoGroupFeatureMapper.xml

@@ -29,6 +29,6 @@
             and feature_gen &lt;= #{gen}
         </where>
         order by feature_gen desc limit 9999) a
-        group by a.group_id, a.feature_order order by a.feature_order desc
+        group by a.group_id, a.feature_order order by a.feature_order desc limit 1;
     </select>
 </mapper>

+ 1 - 1
src/main/resources/mapper/ReportProjectMapper.xml

@@ -13,7 +13,7 @@
         patentType,rp.case_number as
         caseNumber ,rp.issue_number as issueNumber ,rp.invalid_application as invalidApplication ,rp.cron_description as
         cronDescription,rp.act_type as actType ,rp.patent_type as patentType ,rp.current_application as
-        currentApplication, rp.invention_name as inventionName,p.contract_no as contractNo from report as rp left join project as p
+        currentApplication, rp.invention_name as inventionName,p.contract_no as contractNo,rp.carding_opinion from report as rp left join project as p
         on rp.project_id =p.id left join asso_report_cron arc on p.id =arc.project_id
         left join asso_project_event as aspe on p.id =aspe.project_id
         <if test="sql1!=''">