瀏覽代碼

Merge remote-tracking branch 'origin/master' into prod_test

lrj 7 月之前
父節點
當前提交
721f3a357c

+ 4 - 2
src/main/java/cn/cslg/pas/common/dto/business/ReportProjectDTO.java

@@ -11,6 +11,7 @@ import java.util.List;
 
 /**
  * 报告
+ *
  * @Author lirj
  * @Date 2023/11/1
  */
@@ -60,7 +61,7 @@ public class ReportProjectDTO {
     @Schema(description = "结论论述")
     private String cronDescription;
     @Schema(description = "事件集合")
-    List<ProjectEventDTO>  events;
+    List<ProjectEventDTO> events;
     @Schema(description = "文件guids")
     private List<String> fileGuids;
     @Schema(description = "核心结论")
@@ -91,5 +92,6 @@ public class ReportProjectDTO {
     private String rightHolderAgency;
     @Schema(description = "案件阶段")
     private String caseStage;
-
+    @Schema(description = "参与人id")
+    private List<String> involvedPersonIds;
 }

+ 2 - 0
src/main/java/cn/cslg/pas/common/dto/business/UpdateReportProjectDTO.java

@@ -82,4 +82,6 @@ public class UpdateReportProjectDTO {
     private String rightHolderAgency;
     @Schema(description = "案件阶段")
     private String caseStage;
+    @Schema(description = "参与人id")
+    private List<String> involvedPersonIds;
 }

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

@@ -238,4 +238,6 @@ public class ReportProjectVO {
     @Schema(description = "案件阶段")
     private String caseStage;
     private List<String> rightHolder;
+    @Schema(description = "参与人")
+    private List<SimplePersonVO> involvedPersons;
 }

+ 57 - 2
src/main/java/cn/cslg/pas/service/business/AssoProjectPersonService.java

@@ -23,6 +23,8 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -54,7 +56,7 @@ public class AssoProjectPersonService extends ServiceImpl<AssoProjectPersonMappe
      */
     public List<Integer> addProjectShare(AddProjectPersonDTO addProjectPersonDTO) {
         PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        Integer roleType =3;
+        Integer roleType = 3;
         List<Integer> reIds = new ArrayList<>();
         List<String> personIds = addProjectPersonDTO.getPersonIds();
         Integer projectId = addProjectPersonDTO.getProjectId();
@@ -63,7 +65,7 @@ public class AssoProjectPersonService extends ServiceImpl<AssoProjectPersonMappe
         queryWrapper.select(AssoProjectPerson::getPersonId);
         queryWrapper.in(AssoProjectPerson::getPersonId, personIds)
                 .eq(AssoProjectPerson::getProjectId, projectId)
-                .eq(AssoProjectPerson::getRole,roleType);
+                .eq(AssoProjectPerson::getRole, roleType);
         List<AssoProjectPerson> assoProjectPersonList = this.list(queryWrapper);
         List<String> ids = assoProjectPersonList.stream().map(AssoProjectPerson::getPersonId).collect(Collectors.toList());
         if (ids != null) {
@@ -220,4 +222,57 @@ public class AssoProjectPersonService extends ServiceImpl<AssoProjectPersonMappe
         }
         return personIds;
     }
+
+    public List<AssoProjectPerson> queryIfExist(Integer roleType, List<String> personIds, Integer projectId) {
+        List<AssoProjectPerson> assoProjectPersonList = new ArrayList<>();
+        if (personIds == null || personIds.size() == 0) {
+
+        }
+        LambdaQueryWrapper<AssoProjectPerson> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(AssoProjectPerson::getProjectId, projectId)
+                .eq(AssoProjectPerson::getPersonId, personIds)
+                .eq(AssoProjectPerson::getRole, roleType);
+        return assoProjectPersonList;
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    public void addProjectPeople(Integer roleType, Integer projectId, List<String> personIds) {
+        if (!CollectionUtils.isEmpty(personIds)) {
+            List<AssoProjectPerson> assoProjectPersonList = new ArrayList<>();
+            personIds.forEach(item -> {
+                AssoProjectPerson assoProjectPerson = new AssoProjectPerson();
+                assoProjectPerson.setPersonId(item);
+                assoProjectPerson.setRole(roleType);
+                assoProjectPerson.setProjectId(projectId);
+                assoProjectPerson.setCreateId(loginUtils.getId().toString());
+                assoProjectPersonList.add(assoProjectPerson);
+            });
+            this.saveBatch(assoProjectPersonList);
+        }
+
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    public void updateProjectPeople(Integer roleType, Integer projectId, List<String> personIds) {
+        LambdaQueryWrapper<AssoProjectPerson> assoProjectPersonLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        assoProjectPersonLambdaQueryWrapper.eq(AssoProjectPerson::getProjectId, projectId)
+                .eq(AssoProjectPerson::getRole, roleType);
+        this.remove(assoProjectPersonLambdaQueryWrapper);
+        /**
+         *装载参与人
+         */
+        if (!CollectionUtils.isEmpty(personIds)) {
+            List<AssoProjectPerson> assoProjectPersonList = new ArrayList<>();
+            personIds.forEach(item -> {
+                AssoProjectPerson assoProjectPerson = new AssoProjectPerson();
+                assoProjectPerson.setPersonId(item);
+                assoProjectPerson.setRole(roleType);
+                assoProjectPerson.setProjectId(projectId);
+                assoProjectPerson.setCreateId(loginUtils.getId().toString());
+                assoProjectPersonList.add(assoProjectPerson);
+            });
+            this.saveBatch(assoProjectPersonList);
+        }
+
+    }
 }

+ 0 - 1
src/main/java/cn/cslg/pas/service/business/PatentDigProjectService.java

@@ -468,7 +468,6 @@ public class PatentDigProjectService extends ServiceImpl<PatentDigProjectMapper,
         LambdaQueryWrapper<AssoProjectPerson> assoProjectPersonLambdaQueryWrapper = new LambdaQueryWrapper<>();
         assoProjectPersonLambdaQueryWrapper.eq(AssoProjectPerson::getProjectId, projectUpdateDTO.getId());
         assoProjectPersonService.remove(assoProjectPersonLambdaQueryWrapper);
-
         /**
          *装载参与人
          */

+ 50 - 12
src/main/java/cn/cslg/pas/service/business/ReportProjectService.java

@@ -44,6 +44,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
@@ -80,6 +81,9 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
     private AssoReportCronService assoReportCronService;
 
     @Autowired
+    private AssoProjectPersonService assoProjectPersonService;
+
+    @Autowired
     private CacheUtils cacheUtils;
 
     @Autowired
@@ -118,7 +122,8 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
     @Transactional(rollbackFor = Exception.class)
     public Object queryMessage(QueryRequest queryRequest) throws Exception {
         String tableName = "reportProject";
-        Boolean ifInvalidReport =  queryRequest.getIfInvalidReport();;
+        Boolean ifInvalidReport = queryRequest.getIfInvalidReport();
+        ;
         if (ifInvalidReport != null && ifInvalidReport) {
             tableName = "invalidReportProject";
         }
@@ -269,7 +274,7 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
         //获取登陆人信息 用于设置创建人
         PersonnelVO personnelVO = new PersonnelVO();
 
-            personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+        personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
 
         String userId = personnelVO.getId();
 
@@ -332,7 +337,6 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
             assoProject.insert();
         }
 
-
         /**
          * 装载reportProject
          */
@@ -416,6 +420,10 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
             assoReportCronService.saveBatch(assoReportCrons);
         }
 
+        List<String> involvedPersonIds = reportProjectDTO.getInvolvedPersonIds();
+
+        //添加项目的参与人
+        assoProjectPersonService.addProjectPeople(1, project.getId(), involvedPersonIds);
         /**
          * 复制信息
          */
@@ -435,6 +443,7 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
 
 
         }
+
         //返回id
         return project.getId();
     }
@@ -459,7 +468,7 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
         //获取登陆人信息 用于设置创建人
         PersonnelVO personnelVO = new PersonnelVO();
 
-            personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+        personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
 
         String userId = personnelVO.getId();
         /**
@@ -598,6 +607,14 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
             });
             assoReportCronService.saveBatch(assoReportCrons);
         }
+
+
+        /**
+         *装载参与人
+         */
+        List<String> involvedPersonIds = updateReportProjectDTO.getInvolvedPersonIds();
+        assoProjectPersonService.updateProjectPeople(1,project.getId(),involvedPersonIds);
+
         //返回id
         return project.getId();
     }
@@ -624,6 +641,7 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
         List<AssoProject> assoProjects = new ArrayList<>();
         List<String> patentNos = new ArrayList<>();
         List<Patent> patentList = new ArrayList<>();
+        List<AssoProjectPerson> assoProjectPersonList = new ArrayList<>();
         reportProjectVOs.forEach(
                 item -> {
 
@@ -662,13 +680,6 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
         List<AssoProjectFile> assoEventFiles = new ArrayList<>();
 
 
-        //查询创建人名称
-        if (createIds.size() != 0) {
-            String res = permissionService.getPersonnelByIdsFromPCS(createIds);
-            JSONObject jsonObject = JSONObject.parseObject(res);
-            personnels = JSONObject.parseArray(jsonObject.getString("data"), Personnel.class);
-        }
-
         //查询部门名称
         if (departmentIds.size() != 0) {
             String json = permissionService.getDepartmentByIdsFromPCS(departmentIds);
@@ -708,9 +719,22 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
             LambdaQueryWrapper<AssoProject> queryWrapper1 = new LambdaQueryWrapper<>();
             queryWrapper1.in(AssoProject::getAssoProjectId, ids);
             assoProjects = assoProjectService.list(queryWrapper1);
-        }
 
+            //查询和参与人关联
+            LambdaQueryWrapper<AssoProjectPerson> projectPersonLambdaQueryWrapper = new LambdaQueryWrapper<>();
+            projectPersonLambdaQueryWrapper.in(AssoProjectPerson::getProjectId, ids)
+                    .eq(AssoProjectPerson::getRole, 1);
+            assoProjectPersonList = assoProjectPersonService.list(projectPersonLambdaQueryWrapper);
+            List<String> personIds = assoProjectPersonList.stream().map(AssoProjectPerson::getPersonId).collect(Collectors.toList());
+            createIds.addAll(personIds);
+        }
 
+        //查询创建人名称
+        if (createIds.size() != 0) {
+            String res = permissionService.getPersonnelByIdsFromPCS(createIds);
+            JSONObject jsonObject = JSONObject.parseObject(res);
+            personnels = JSONObject.parseArray(jsonObject.getString("data"), Personnel.class);
+        }
         //查询文件
         if (guids.size() != 0) {
             try {
@@ -779,6 +803,20 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
                 }
             }
 
+            //装载参与人
+            List<SimplePersonVO> simplePersonVOS = new ArrayList<>();
+            List<AssoProjectPerson> assoProjectPersonTmps = assoProjectPersonList.stream().filter(item -> item.getProjectId().equals(reportProjectVO.getId())).collect(Collectors.toList());
+            List<String> personIds = assoProjectPersonTmps.stream().map(AssoProjectPerson::getPersonId).collect(Collectors.toList());
+            if (!CollectionUtils.isEmpty(personIds)) {
+                List<Personnel> personneltmps = personnels.stream().filter(item -> personIds.contains(item.getId())).collect(Collectors.toList());
+                personneltmps.forEach(item -> {
+                    SimplePersonVO simplePersonVO = new SimplePersonVO();
+                    simplePersonVO.setPersonId(item.getId());
+                    simplePersonVO.setPersonName(item.getPersonnelName());
+                    simplePersonVOS.add(simplePersonVO);
+                });
+            }
+            reportProjectVO.setInvolvedPersons(simplePersonVOS);
 
             //装载部门
             if (reportProjectVO.getDepartmentId() != null) {