zero před 1 rokem
rodič
revize
ca793f7661

+ 13 - 0
src/main/java/cn/cslg/pas/common/vo/EditInventionPointVO.java

@@ -0,0 +1,13 @@
+package cn.cslg.pas.common.vo;
+
+import lombok.Data;
+
+@Data
+public class EditInventionPointVO {
+
+    private String patentId;
+
+    private Integer projectId;
+
+    private String inventionPoint;
+}

+ 20 - 5
src/main/java/cn/cslg/pas/service/business/NoveltyProjectService.java

@@ -9,14 +9,13 @@ import cn.cslg.pas.common.utils.CacheUtils;
 import cn.cslg.pas.common.utils.LoginUtils;
 import cn.cslg.pas.common.vo.DepartmentVO;
 import cn.cslg.pas.common.vo.QueryNoveltyProjectVO;
-import cn.cslg.pas.domain.business.AssoProjectFile;
-import cn.cslg.pas.domain.business.AssoTechnicalCaseFile;
-import cn.cslg.pas.domain.business.NoveltyProject;
-import cn.cslg.pas.domain.business.Project;
+import cn.cslg.pas.domain.BaseEntity;
+import cn.cslg.pas.domain.business.*;
 import cn.cslg.pas.exception.XiaoShiException;
 import cn.cslg.pas.mapper.AssoTechnicalCaseFileMapper;
 import cn.cslg.pas.mapper.NoveltyProjectMapper;
 import cn.cslg.pas.mapper.ProjectMapper;
+import cn.cslg.pas.mapper.TechnicalCaseMapper;
 import cn.cslg.pas.service.common.FileManagerService;
 import cn.cslg.pas.service.permissions.PermissionService;
 import com.alibaba.fastjson.JSON;
@@ -63,9 +62,11 @@ public class NoveltyProjectService extends ServiceImpl<NoveltyProjectMapper, Nov
     @Autowired
     private AssoTechnicalCaseFileMapper assoTechnicalCaseFileMapper;
 
+    @Autowired
+    private TechnicalCaseMapper technicalCaseMapper;
+
 
     public Records queryNoveltyProject(QueryNoveltyProjectDTO vo) throws IOException {
-        vo.setCurrent(vo.getCurrent() - 1);
         //查询数据库
         List<QueryNoveltyProjectVO> noveltyProjectVOS = noveltyProjectMapper.queryNoveltyProject(vo);
         this.loadNoveltyProjectVOS(noveltyProjectVOS);
@@ -305,7 +306,21 @@ public class NoveltyProjectService extends ServiceImpl<NoveltyProjectMapper, Nov
     }
 
     public void deleteNoveltyProject(NoveltyProjectIdDTO vo) {
+        //删除关联的查新详情
         this.remove(new LambdaQueryWrapper<NoveltyProject>().eq(NoveltyProject::getProjectId, vo.getProjectId()));
+        //查询技术方案
+        TechnicalCase technicalCase = technicalCaseMapper.selectOne(new LambdaQueryWrapper<TechnicalCase>()
+                .eq(TechnicalCase::getProjectId, vo.getProjectId()));
+        //删除关联的技术方案图片
+        List<AssoTechnicalCaseFile> technicalCaseFiles = assoTechnicalCaseFileMapper.selectList(new LambdaQueryWrapper<AssoTechnicalCaseFile>()
+                .eq(AssoTechnicalCaseFile::getTechnicalCaseId, technicalCase.getId()));
+        if (!CollectionUtils.isEmpty(technicalCaseFiles)) {
+            List<Integer> collect = technicalCaseFiles.stream().map(BaseEntity::getId).collect(Collectors.toList());
+            assoTechnicalCaseFileMapper.deleteBatchIds(collect);
+        }
+        //删除关联的技术方案
+        technicalCaseMapper.deleteById(technicalCase.getId());
+        //删除本身报告
         projectMapper.deleteById(vo.getProjectId());
     }
 }

+ 20 - 9
src/main/java/cn/cslg/pas/service/business/TechnicalCaseService.java

@@ -8,6 +8,7 @@ import cn.cslg.pas.common.model.cronModel.PersonnelVO;
 import cn.cslg.pas.common.model.cronModel.SystemFile;
 import cn.cslg.pas.common.utils.CacheUtils;
 import cn.cslg.pas.common.utils.LoginUtils;
+import cn.cslg.pas.common.vo.EditInventionPointVO;
 import cn.cslg.pas.common.vo.QueryInventionPointVO;
 import cn.cslg.pas.common.vo.TechnicalCaseVO;
 import cn.cslg.pas.domain.BaseEntity;
@@ -118,13 +119,15 @@ public class TechnicalCaseService extends ServiceImpl<TechnicalCaseMapper, Techn
             caseIdDTO.setProjectId(technicalCase.getProjectId());
 
             //保存es
-            String technicalCasePatentId = this.selectTechnicalCasePatent(technicalCase.getProjectId());
-            TechnicalCasePatent casePatent = new TechnicalCasePatent();
-            casePatent.setProjectId(vo.getProjectId());
-            casePatent.setInventionPoint(technicalCase.getInventionPoint());
-            Integer count = this.updateTechnicalCasePatent(casePatent, technicalCasePatentId);
-            if (count > 0) {
-                throw new XiaoShiException("发明点更新Es失败");
+            EditInventionPointVO pointVO = this.selectTechnicalCasePatent(technicalCase.getProjectId());
+            if (!pointVO.getInventionPoint().equals(vo.getInventionPoint())) {
+                TechnicalCasePatent casePatent = new TechnicalCasePatent();
+//            casePatent.setProjectId(vo.getProjectId());
+                casePatent.setInventionPoint(vo.getInventionPoint());
+                Integer count = this.updateTechnicalCasePatent(casePatent, pointVO.getPatentId());
+                if (count > 0) {
+                    throw new XiaoShiException("发明点更新Es失败");
+                }
             }
         }
 
@@ -233,7 +236,8 @@ public class TechnicalCaseService extends ServiceImpl<TechnicalCaseMapper, Techn
     }
 
     //查询TechnicalCasePatent
-    public String selectTechnicalCasePatent(Integer projectId) throws Exception {
+    public EditInventionPointVO selectTechnicalCasePatent(Integer projectId) throws Exception {
+        EditInventionPointVO pointVO = new EditInventionPointVO();
         SearchRequest.Builder builder = new SearchRequest.Builder();
         //设置查询索引
         builder.index("technical_case_patent");
@@ -241,7 +245,14 @@ public class TechnicalCaseService extends ServiceImpl<TechnicalCaseMapper, Techn
         builder.query(query);
         SearchResponse<TechnicalCasePatent> response = client.search(builder.build(), TechnicalCasePatent.class);
         List<Hit<TechnicalCasePatent>> hits = response.hits().hits();
-        return hits.get(0).id();
+        for (Hit<TechnicalCasePatent> hit : hits) {
+            pointVO.setPatentId(hit.id());
+            TechnicalCasePatent patent = hit.source();
+            pointVO.setProjectId(patent.getProjectId());
+            pointVO.setInventionPoint(patent.getInventionPoint());
+            break;
+        }
+        return pointVO;
     }
 
     //添加TechnicalCasePatent

+ 5 - 2
src/main/resources/mapper/NoveltyProjectMapper.xml

@@ -39,10 +39,13 @@
         left join technical_case tc on tc.project_id = p.id
         <where>
             <if test="vo.projectId != null">
-                and np.project_id = #{vo.projectId}
+                np.project_id = #{vo.projectId}
             </if>
         </where>
-        limit #{vo.current},#{vo.size};
+        <if test="vo.current != null and vo.size != null">
+            limit
+            #{(vo.current -1) * vo.size},#{vo.size}
+        </if>
     </select>
 
     <select id="queryNoveltyProjectCount" resultType="java.lang.Long">